Closed Bug 996013 Opened 10 years ago Closed 8 years ago

Yahoo! Mail breaks in Versions 20 and below due to lack of window.location.origin

Categories

(Web Compatibility :: Site Reports, defect)

Firefox 20
defect
Not set
normal

Tracking

(platform-rel ?)

RESOLVED INVALID
Tracking Status
platform-rel --- ?

People

(Reporter: tdowner, Assigned: karlcow)

References

()

Details

(Whiteboard: [country-all][contactready] [platform-rel-Yahoo!])

Yahoo! recently updated mail, causing users of older Firefox versions (I've seen 19 and below so far, more version may be affected) to not be able to use Yahoo mail. This issue is resolved by updating to Firefox 28.

Users on old versions can't see buttons such as Reply, Delete, etc. In some cases users simply can't access Yahoo! Mail at all.

As we want old versions to update anyway, it would be great if Yahoo could change the messaging for users of older versions to encourage them to update, instead of just presenting a broken experience as happens now
(Moving to Desktop component).

Beyond getting Yahoo! to give a message to our users on older versions, I'm interested to know why exactly this is broken on older versions.
Assignee: english-us → nobody
Component: English US → Desktop
Hmm Interesting.
Using Firefox 29, I spoofed my user agent as Firefox 16 and logged into Yahoo! Mail.
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20120813 Firefox/16.0"

I had no issue and had access to all icons of Yahoo mail. I could create a new mail, see icons, etc. 
So if there are compatibility issues, it seems to be created by using features not yet supported in old versions. There are using YUI3 for their graphics library. (I'm using the neo version of Yahoo! Mail).
Whiteboard: [country-all]
I downloaded 18.0 and indeed, the site is unusably broken. The UI looks the same, but nothing actually works.

On page load I get:

[12:35:37.336] NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: '[JavaScript Error: "uri is undefined" {file: "resource://gre/components/WebContentConverter.js" line: 410}]' when calling method: [nsIWebContentHandlerRegistrar::registerProtocolHandler] @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:70

And then if I click around the page, I get a bunch of TypeErrors:

--
[12:37:42.616] TypeError: A.getActiveTab(...) is undefined @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:67
[12:37:46.451] TypeError: Am is undefined @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:54
--
[12:37:58.450] TypeError: AP is null @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:37
[12:38:01.346] TypeError: A.getActiveTab(...) is undefined @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:67
[12:38:01.751] TypeError: AP is null @ https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:37
Well, perhaps that's the main issue:

if(window.navigator.registerProtocolHandler){
  var Bi=window.location.origin+"/neo/launch?action=compose&To=%s";
...

window.location.origin was implemented in 21: https://bugzilla.mozilla.org/show_bug.cgi?id=828261
See Also: → 828261
So if I add the following to to the combo.js file [1], everything works again in 18:

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}

So we should reach out to Yahoo! and ask that they add a fallback/polyfill for browsers without window.location.origin. They could also ask users to upgrade if they like (but that won't fix the site being broken for those who choose to not upgrade).

This will also break for IE users if and when they add support for registerProtocolHandler (unless they add location.origin at the same time).

[1] <https://s.yimg.com/zz/combo?nq/s/launch/common-neo-base_54_8396.js&nq/s/launch/inbox-conversations_54_8396.js&nq/s/launch/inbox-mail-new_54_8396.js&nq/s/launch/inbox-base_54_8396.js&nq/s/intl/js/launch/lang_en-US_54_8396.js&nq/s/intl/js/launch/conf_us_54_8396.js:70>
Whiteboard: [country-all] → [country-all][contactready]
Summary: Users of old Firefox versions can't use Yahoo! Mail → Yahoo! Mail breaks in Versions 20 and below due to lack of window.location.origin
I will contact someone at Yahoo!
To note that we have other Web Compatibility bugs too. 
See http://arewecompatibleyet.com/#list:custom:yahoo
Assignee: nobody → kdubost
The same symptom now shows up in SeaMonkey 2.27a2.  Yahoo mail has been unusable for a week or more (no buttons, click on navigation column ignored, etc.) and is certainly broken with:
User agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 SeaMonkey/2.27a2
Build identifier: 20140425013001

However, NO problems with a SM 2.28 build!
User agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 SeaMonkey/2.28a1
Build identifier: 20140426003001
This should be irrelevant now, shouldn't it?
platform-rel: --- → ?
Whiteboard: [country-all][contactready] → [country-all][contactready] [platform-rel-Yahoo!]
(In reply to Michał Gołębiowski [:m_gol] from comment #8)
> This should be irrelevant now, shouldn't it?

Yeah, probably. Let's close -- people should really be on newer versions than 20 at this point.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
Product: Tech Evangelism → Web Compatibility
You need to log in before you can comment on or make changes to this bug.