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)

12 Branch
defect
Not set
major

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?
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
This appears to be platform independent
OS: Mac OS X → All
I need to debug the addon code and see where it is breaking exactly so that it might give us clues
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
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?
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.
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
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.
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
(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.
I do not intend to revert the XPCOM proxy removal for this extension.
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
You fixed the code in Selenium so this bug can be marked as fixed.
Resolution: WONTFIX → FIXED
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.