Closed Bug 1093224 Opened 10 years ago Closed 2 years ago

BBC iPlayer NS_ERROR_FAILURE thrown in XUL application

Categories

(Core :: JavaScript Engine, defect)

31 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: ngh, Unassigned)

References

Details

(Whiteboard: [platform-rel-BBCiPlayer][platform-rel-BBC])

Attachments

(1 file, 1 obsolete file)

Attached file iPlayer-xul-test-case.tar.gz (obsolete) —
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36

Steps to reproduce:

- Create simple XUL app to load BBC iPlayer (http://www.bbc.co.uk/iplayer) (see attached for simple XUL app test case).  
- Run firefox with -app argument pointing to test case, or xulrunner <test-case-app>
- Click on any video
- *Fails*

Tested on latest XULRunner 33.1 runtime (x86_64).  Test case passes on XULRunner 30.0, fails on 31.0.  My limited understanding of the issue thinks it may be related to bug #985135.

Works fine on Firefox 31.0 when not launched with -app argument.

Platform is Linux x86_64 with Adobe Flash v11.2.202.411


Actual results:

Video page loads then throws and video does not load:

JavaScript error: http://emp.bbci.co.uk/emp/bump-3/bump-3.js, line 3: NS_ERROR_FAILURE:



Expected results:

Video should play.
Can someone at QA verify this please
Keywords: qawanted
Updated test-case with socks proxy prefs commented out.
Attachment #8516092 - Attachment is obsolete: true
Can you pin down which exact API call is throwing?  Exceptions in minified files are exciting...
Flags: needinfo?(ngh)
Having a hard time getting more information out of it because adding remote debugging to the attached test case seems to be broken when following these instructions:
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/XULRunner/Debugging_XULRunner_applications#Browser_Debugger

JavaScript error: , line 0: uncaught exception: 2147746065

Any good ideas on how to proceed?  I'm thinking a HTTP proxy w/ js-beautifier hooks to rewrite javascript and maybe nail down a line number.
Flags: needinfo?(ngh)
That, or trying to create an offline version of the site using "save page as: complete" and if that reproduces beautifying the JS in it....
Been trying for the last few hours to beautify bump-3.js.  It's odd, I have a HTTP proxy running that beautifies *.js and it's working fine for other minified scripts but won't catch this bump-3.js script for beautification.  Possibly because Content-Encoding: gzip.  I don't know.

Saving the page locally and beautifying it offline then pointing my app to the local HTML didn't seem to work either.
Got it.  Applied a /etc/hosts hack to serve up bump-3.js beautified locally.

Error is thrown as expected but this time on a more useful line number
JavaScript error: http://emp.bbci.co.uk/emp/bump-3/bump-3.js, line 2551: NS_ERROR_FAILURE: 

2547     function r(e, i) {
2548         e({
2549             productCompatible: i.requestWMP,
2550             isWindowsPhone: t.get().os.winphone,
2551             hasNotify: window.external && "notify" in window.external
2552         })
2553     }

window.external throws NS_ERROR_FAILURE.  Typing window.external into the jsconsole throws the same error.

JavaScript error: javascript:%20window.external, line 1: NS_ERROR_FAILURE: 

I think we're getting somewhere!  Now what the hell is window.external used for? *back to the googles*
I set $browser.contentWindow.wrappedJSObject.external = false; in XUL javascript to prevent that error, which it does, but still the video doesn't load.  :(
The last two are also seen in Windows 8.1 would it be better to make a new bug for this one?
Flags: needinfo?(bzbarsky)
> Now what the hell is window.external used for?

It's the sidebar.

A new bug depending on this one might make sense.  But it's really not clear what's going on here and what broke things, if it's not just the window.external issue.  Someone bisecting on nightlies would be pretty helpful.
Flags: needinfo?(bzbarsky)
Yeah, I kinda feel like there are two things at play here.  One being window.external failure (not sure if that is by design for XUL apps or not).  The other being an unknown factor still preventing iPlayer from functioning.
We could fix window.external to just return null in that situation, I guess...
Whiteboard: [platform-rel-BBC]
Whiteboard: [platform-rel-BBC] → [platform-rel-BBCiPlayer][platform-rel-BBC]
platform-rel: --- → ?
platform-rel: ? → -
platform-rel: - → ---
Keywords: qawanted
Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: