Workarounds for Google Calendar, Twitter focus
By Hallvord R. M. Steenhallvors. Thursday, July 8, 2010 12:43:11 PM
Changed patches
PATCH-260 Westjet browser sniffing warns against Opera
This site used to have a really broken constantly re-loading "warning page" for "unsupported" browsers. They've fixed that, so we removed this patch in March - but as the site is still sniffing and warning against using Opera, we might as well keep the patch active. Now restored.
Removed patches
DSK-187263 GMail deletes messages on End key presses (core fix)
Added patches
PATCH-251 Newsday.com: delayed document.write overwrites the page content
A number of sites call document.write() by mistake after the page is finished loading, overwriting it with some small ad or invisible graphics for user tracking. Here is one offender. There are two reasons Opera encounters this: the most important is browser sniffing, but I also believe an IE bug or feature makes IE ignore document.write() under some circumstances. If a page calls document.write() when IE is in this quirky mode, they will overwrite the page in a browser with a less buggy document.write() support.
Opera Mini found and patched this first, since the problem also applies to Desktop we now push the patch here too.
PATCH-262 Layout regression squishes event detail edit screen on Google Calendar
This makes Google Calendar usable again, saving the Desktop guys from feeling more pain because they took in a last-minute untested fix they should have left alone..
Just don't do it again, OK?PATCH-261 Hide broken implementation of showModalDialog to make object detection reliable
window.showModalDialog() is an IE invention which is sneaking into the HTML5 standard in spite of my silent dislike of it. Thanks to David Bloom at Google we noticed that we've accidentally shipped a half-baked and dysfunctional implementation of it. This breaks object detection since window.showModalDialog exists and is a function - to make object detection work for developers who want to write replacement functions we ship a small patch that deletes the reference to the broken implementation.
PATCH-263 Twitter tries to focus a display:none TEXTAREA, removing focus from main status update box
Hi Rafael, sorry it's taken me a while since you reported it but finally the patch is out. The status box on Twitter should no longer loose focus when the page is finished loading
There's also a core bug on making Opera ignore attempts at calling focus() on an element with display:none.
PATCH-264 @mentions feature requires correct cancellation of enter keys
Here's one that hopefully will make Facebook happily enable @mentions for Opera users. They pointed out that if enabled, confirming a @mentions entry with the enter key would also insert a line break. The reason is that calling event.preventDefault() from keydown doesn't stop the default action of a key in Opera - you need to prevent the keypress event's default action. (This is a very silly incompatibility which we'll fix in an upcoming key event rewrite).
So, calling Facebook: we've worked around the bug so you don't have to, do you have a moment to remove the Opera detection from this statement? As you can see from the screenshot it works pretty well now..
this.suppressMentions=(ua.opera()||ua.firefox()<3||ua.safariPreWebkit()||ua.iphone());
Thanks in advance









Galileo # Thursday, July 8, 2010 1:55:57 PM
P.S: If you happen to have some time to check these 2 scripts, http://userscripts.org/scripts/show/8861 and http://userscripts.org/scripts/show/46560. They cause the chat scroll problem but the creator of facebook ads says he doesn't touch the chat box. I have made comments for both scripts http://userscripts.org/topics/54951 & http://userscripts.org/topics/55184 (t125 username, Galileo it taken
Charles SchlossChas4 # Thursday, July 8, 2010 2:26:48 PM
Daniel HendrycksDanielHendrycks # Thursday, July 8, 2010 4:12:10 PM
Originally posted by sitepatching:
Did you show Facebook this with their contact tools (e.g. their help forum)?
setsutekh # Thursday, July 8, 2010 4:36:49 PM
d4rkn1ght # Thursday, July 8, 2010 6:20:34 PM
Mağruf ÇolakoğluZAHEK # Thursday, July 8, 2010 8:16:50 PM
Rafael Luikrafaelluik # Thursday, July 8, 2010 9:06:42 PM
Twitter is working very fine now.
Now they just have to fix the border-radius issue I reported them.
It's great to see Facebook @mentions case is moving forward.
Many thanks for this update!!!
ouzowtfouzoWTF # Friday, July 9, 2010 1:17:33 AM
So far I have two bugs with Opera 10.6 preventing me from using 10.6 exclusively and not having to use 10.54 sometimes
MyOpera team, please fix this!fearphage # Friday, July 9, 2010 1:35:34 AM
Hallvord R. M. Steenhallvors # Friday, July 9, 2010 9:13:00 AM
Originally posted by DanielHendrycks:
The OTW/Developer relations team at Opera is discussing this with Facebook developers.
Originally posted by sutekh:
Hm.. That is actually a really bogus message, it's from the eBay patch but the code that runs does not actually make any modifications. I'll look into it.
Originally posted by ouzoWTF:
I'll look at that - if you set up a test account and PM me the login I promise to get to it even faster
Originally posted by fearphage:
For now 10.50 but that's a bit arbitrary, if someone sticks to 10.10 we can probably ship it in a file for this version too
ouzowtfouzoWTF # Friday, July 9, 2010 9:57:45 AM
Originally posted by hallvors:
Done
Cutting Spoonhellspork # Friday, July 9, 2010 5:05:17 PM
Originally posted by sutekh:
Hey, you're right! That's hilarious...and troubling?
If Opera is applying patches for short URLs to longer URLs that contain the shorter string, this could explain why some browserjs and userjs seem to cause trouble on unrelated websites. I'll be keeping my console open for a while, see if any sites I visit have a similar symptom.
Unregistered user # Saturday, July 10, 2010 10:15:43 AM
Hallvord R. M. Steenhallvors # Sunday, July 11, 2010 11:15:14 PM
Originally posted by anonymous:
I know indexOf() on domain name is flawed. It is a compromise between correctness, performance and security (remember that all code we want to run needs to be signed, so if we split the file into smaller per-domain pieces plus one generic file we'd potentially have a lot more signature checking to do).
Plus a nod to readability - it's easy to see what's going on.
indexOf() on domain name is imprecise - but it is fast, and that matters when we run it hundreds of times at the start of loading every page and every IFRAME with scripting inside that page. This code is going to run quite a lot during your browsing session.. In my experience indexOf() has been correct enough for this purpose in so far I don't remember a single case where a patch running on the wrong site due to a sloppy indexOf() check has actually broken that site..
I'm not wedded to the current approach, but we have made a few attempts at improving it and not found a really elegant replacement. We will probably keep trying new ideas from time to time, and suggestions are welcome (especially from people who know C since I'm obviously coming from the JavaScript / User JS side of things - "when all you have is a hammer" etc.).
Unregistered user # Monday, July 12, 2010 4:18:38 PM
Cutting Spoonhellspork # Monday, July 12, 2010 5:15:02 PM
On the core side, new logic patches have made many browser.js fixes unnecessary. One may view browser.js as an intermediate fix pending better core logic. As a user, I feel that this has worked well for me. I also have the recourse of user js for certain offending pages, but I understand that this is not for everyone.
I suppose the real question is whether a simple test of TLD length could be fitted with minimal performance hit. Such as, only if a patch appears to match, snip and check the lengths of the two strings.
Unregistered user # Monday, July 12, 2010 6:53:37 PM
Hallvord R. M. Steenhallvors # Monday, July 12, 2010 7:11:34 PM
if(opera.isMainDomainPart('ebay')){ ... }which is worth considering now when we have a real TLD database..
Rafald.i.z. # Monday, July 12, 2010 7:29:26 PM
That's slightly off-topic but I'm not sure if you know how Opera debugging tools work. They use scope API which is exactly the thing that you are saying it should have. For 90% of things it does, it does them through specially exposed core API's. What you see as a Dragonfly is just a frontend (or UI) for scope. You can write c++ native application that does the same things as Dragonfly if you are brave enough.
Daniel HendrycksDanielHendrycks # Monday, July 12, 2010 9:53:55 PM
Unregistered user # Tuesday, July 13, 2010 5:15:55 PM
Cutting Spoonhellspork # Tuesday, July 13, 2010 6:26:04 PM
Daniel HendrycksDanielHendrycks # Tuesday, July 13, 2010 7:08:41 PM
It does not load at all.
José Batistawyldkat # Tuesday, July 13, 2010 7:09:00 PM
http://my.opera.com/community/forums/topic.dml?id=568301&t=1279048130&page=1#comment5852782
Unregistered user # Monday, July 19, 2010 10:02:07 AM
Hallvord R. M. Steenhallvors # Monday, July 19, 2010 12:18:32 PM
Cutting Spoonhellspork # Monday, July 19, 2010 5:41:04 PM
Hallvord R. M. Steenhallvors # Wednesday, July 21, 2010 11:57:37 AM
Originally posted by DanielHendrycks:
This is now tracked as CORE-31456, described as "overflow:hidden hides background image in a transformed (rotated) element"
Originally posted by wyldkat:
Interesting. I didn't know we behave differently if classid is set (seems we apply more heuristics to guess what the content is and what plugin should be used if there is no classid?).
Cutting Spoonhellspork # Wednesday, July 21, 2010 7:05:38 PM
Ola P. Kleivenolak # Thursday, July 22, 2010 3:20:51 PM
If empty or non-existing the usual object handling kicks in.
As d.i.z points out, Opera gets different code from Gecko/WebKit.
Pierre De Grootepierredegroote # Friday, September 3, 2010 7:39:29 AM
Ola P. Kleivenolak # Friday, September 3, 2010 9:21:13 AM
Hallvord R. M. Steenhallvors # Tuesday, September 14, 2010 4:27:29 AM
flos # Saturday, May 14, 2011 3:29:09 AM
Opera 11.10 Build 2092