Closed
Bug 719371
Opened 13 years ago
Closed 13 years ago
Selenium's webdriver stops working in Nightly builds starting from 2012-01-12 because it uses XPCOM proxies, which were removed.
Categories
(Firefox :: Extension Compatibility, defect)
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: whimboo, Unassigned)
References
Details
(Keywords: regression)
Starting with the Nightly build of Firefox from 2012-01-12 the extension stopped working when using webdriver. Further investigation with tinderbox builds revealed that one of the following changesets have been caused the regression in the extension:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=4de07a341aab&tochange=17a76e33b6fe
Could this be due to the removal of the XPCOM proxies in bug 675221? The failure we are getting is:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE) [nsIJSCID.createInstance]" nsresult: "0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE)" location: "JS frame :: chrome://fxdriver/content/server.js :: <TOP_LEVEL> :: line 26" data: no]
David or Dave, can one of you please point us to the code of webdriver for this specific module?
Also I wonder about the following error sent by Dave:
Warning: Trying to re-register CID '{e26dbdcd-d3ba-4ded-88c3-6cb07ee3e9e0}' already registered by file:///var/folders/k8/h9q2wfcn6yxdsm_r9_l3fg040000gn/T/tmphm7IRP/extensions/fxdriver@googlecode.com/components/prompt_service.js.
Source File: file:///var/folders/k8/h9q2wfcn6yxdsm_r9_l3fg040000gn/T/tmphm7IRP/extensions/fxdriver@googlecode.com/chrome.manifest
Line: 31
Could this be related to the change in bug 715576?
| Reporter | ||
Comment 1•13 years ago
|
||
Meant to set OS X only. Dave or David, does the same also happen on other platforms? If not it should be related to the changes in bug 715576.
OS: All → Mac OS X
Comment 3•13 years ago
|
||
I need to debug the addon code and see where it is breaking exactly so that it might give us clues
| Reporter | ||
Comment 4•13 years ago
|
||
Thanks David. Bug 675221 changes add-on compatibility.
The following documentation should help us:
https://developer.mozilla.org/en/XPCOM/Making_cross-thread_calls_using_runnables
Blocks: 675221
Comment 5•13 years ago
|
||
tracking through the addon it would appear that when we ask for a service we are getting the following error
Timestamp: 19/01/2012 12:07:43
Error: [Exception... "Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" location: "JS frame :: file:///var/folders/pv/pvsvi3U3HcOHl9KR48n5SU+++TI/-Tmp-/tmpKSHU6B/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///var/folders/pv/pvsvi3U3HcOHl9KR48n5SU+++TI/-Tmp-/tmpKSHU6B/extensions/fxdriver@googlecode.com/components/webdriverserver.js :: WebDriverServer :: line 40" data: no]
Source File: file:///var/folders/pv/pvsvi3U3HcOHl9KR48n5SU+++TI/-Tmp-/tmpKSHU6B/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///var/folders/pv/pvsvi3U3HcOHl9KR48n5SU+++TI/-Tmp-/tmpKSHU6B/extensions/fxdriver@googlecode.com/components/webdriverserver.js
This appears to happen when http://code.google.com/p/selenium/source/browse/trunk/javascript/firefox-driver/extension/components/driver-component.js#67 tries to load webdriverserver.js.
That then tries to get hold of the cert service and that is throwing the error
http://code.google.com/p/selenium/source/browse/trunk/javascript/firefox-driver/extension/components/webdriverserver.js#34
Could this be similar to bug 650858?
Comment 6•13 years ago
|
||
This doesn't appear related at all to bug 715576.
This *may* be related to 675221, but I'm surprised that it showed up in this regression range, because I was only landing the final bits of that bug (the PSM changes all landed well prior to this).
Bug 650858 is very likely related, since the cert override service getter requires initializing PSM and we've had issues there before.
Comment 7•13 years ago
|
||
http://code.google.com/p/selenium/source/browse/trunk/javascript/firefox-driver/extension/components/badCertListener.js#297:
var proxyManager = CC["@mozilla.org/xpcomproxy;1"]
.getService(CI.nsIProxyObjectManager);
nsIProxyObjectManager does not exist in Firefox anymore, as of bug 675221.
Assigning to bsmedberg, as it is his call about whether he wants to revert or delay that change.
See also https://mxr.mozilla.org/addons/search?string=xpcomproxy
and https://mxr.mozilla.org/addons/search?string=nsIProxyObjectManager
(requires special access).
Assignee: nobody → benjamin
Updated•13 years ago
|
Summary: Selenium's webdriver stops working in Nightly builds starting from 2012-01-12 → Selenium's webdriver stops working in Nightly builds starting from 2012-01-12 because it uses XPCOM proxies, which were removed.
Comment 8•13 years ago
|
||
revert or delay which change? Isn't this something webdriver needs to fix? This looks kinda similar to the usage I fixed in bug 675702. Does PSM normally call into nsICertOverrideService on arbitrary threads so that the proxying would be necessary? Note that this usage was already crash-prone because of XPConnect issues with calling QueryInterface on non-main threads.
Assignee: benjamin → nobody
Comment 9•13 years ago
|
||
(In reply to Benjamin Smedberg [:bsmedberg] from comment #8)
> revert or delay which change?
The removal of XPCOM proxies.
> Isn't this something webdriver needs to fix?
Yes. The question is whether we want to break these addons now or later, and whether we expect them to be fixed now or later.
> This looks kinda similar to the usage I fixed in bug 675702. Does PSM
> normally call into nsICertOverrideService on arbitrary threads so that the
> proxying would be necessary?
A few versions ago, PSM accessed the nsICertOverrideService through an XPCOM proxy from the SSL thread to the main thread, but that was changed a few months ago; now there is no SSL thread, PSM (obviously) doesn't use XPCOM proxies anymore, and PSM switched to using a runnable on the main thread for the bad cert processing.
> Note that this usage was already crash-prone
> because of XPConnect issues with calling QueryInterface on non-main threads.
I didn't investigate what Selenium is doing with the XPCOM proxies, whether it even needs to use them at all, or whether there are even multiple threads involved in what Selenium is trying to do.
Comment 10•13 years ago
|
||
I do not intend to revert the XPCOM proxy removal for this extension.
Comment 11•13 years ago
|
||
I have updated the Selenium code. Unfortunately having to support multiple version has made it interesting for when it is compiled.
http://code.google.com/p/selenium/source/detail?r=15994
http://code.google.com/p/selenium/source/detail?r=15999
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
| Reporter | ||
Comment 12•13 years ago
|
||
You fixed the code in Selenium so this bug can be marked as fixed.
Resolution: WONTFIX → FIXED
Comment 13•13 years ago
|
||
FIXED is used for bugs for which we fixed an issue with a patch to our own code. WORKSFORME is (usually) used for the case where an issue is resolved by some other change.
Resolution: FIXED → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•