Closed Bug 1089938 Opened 10 years ago Closed 9 years ago

[e10s] Selenium WebDriver does not work

Categories

(Firefox :: General, defect)

31 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX
Tracking Status
e10s m8+ ---

People

(Reporter: automatedtester, Assigned: automatedtester)

References

Details

Raising this early and will investigate but currently with E10s we have 

230 failed, 150 passed, 4 skipped, 2 deselected, 7 xfailed, 91 error in 262.99 seconds

On release Firefox we pass all tests. I will look at the different failures and raise as a blocker on this bug.
To run 
* checkout https://github.com/AutomatedTester/selenium/tree/e10s 
* update https://github.com/AutomatedTester/selenium/blob/e10s/py/selenium/webdriver/firefox/firefox_binary.py#L147 to where your nightly is (I should make that a CLI argument)
* run ./go test_py from the command prompt (it's going to steal focus so go get a coffee)
Its been a while, can you try again?
Flags: needinfo?(dburns)
This is still happening. 

This time I was able to get more meaningful info out from the error. We are unable to start up httpd.js inside our addon. https://github.com/SeleniumHQ/selenium/blob/master/javascript/firefox-driver/js/webdriverserver.js#L48

> this.server_ 

STR:

1) git clone https://github.com/AutomatedTester/selenium.git
2) cd into repo
3) git fetch origin
4) git co e10s
5) ./go test_py

If you want to use your own Firefox binary you will need to update the path in https://github.com/AutomatedTester/selenium/blob/e10s/py/selenium/webdriver/firefox/firefox_binary.py#L147
Flags: needinfo?(dburns)
Assignee: nobody → gkrizsanits
I could reproduce the failure. It seems like the problem is indeed caused by the driver addon. There is a lot of changes going on around addons, see: https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/

The most urgent issue is that I think the addon is not e10s ready (see: https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox), in particular I think the problem that you are running into is that the addon registers services in chrome.manifest and those services won't be available from the content process.
For a workaround to that problem I suggest using Components.manager.nsIComponentRegistrar.registerFactory(CLASS_ID, CLASS_NAME, CONTRACT_ID, FACTORY); from script instead.

But in general the addon seem to be complex, and porting will not be trivial. I wonder how does the Google Chrome driver work, maybe it's easier to adopt that driver. I will bring up this problem during our next meeting about e10s addon compatibility.
Oh, I thought we have a contact person in this bug from Selenium...

David, do you know someone from Selenium by any chance?
Flags: needinfo?(dburns)
(In reply to Gabor Krizsanits [:krizsa :gabor] from comment #6)
> Oh, I thought we have a contact person in this bug from Selenium...
> 
> David, do you know someone from Selenium by any chance?

yes, me :)
Flags: needinfo?(dburns)
(In reply to Gabor Krizsanits [:krizsa :gabor] from comment #5)
> I could reproduce the failure. It seems like the problem is indeed caused by
> the driver addon. There is a lot of changes going on around addons, see:
> https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-
> add-ons/
> 
> The most urgent issue is that I think the addon is not e10s ready (see:
> https://developer.mozilla.org/en-US/Add-ons/
> Working_with_multiprocess_Firefox), in particular I think the problem that
> you are running into is that the addon registers services in chrome.manifest
> and those services won't be available from the content process.
> For a workaround to that problem I suggest using
> Components.manager.nsIComponentRegistrar.registerFactory(CLASS_ID,
> CLASS_NAME, CONTRACT_ID, FACTORY); from script instead.

I will try this and see if this gives us a little breathing room.

> 
> But in general the addon seem to be complex, and porting will not be
> trivial. I wonder how does the Google Chrome driver work, maybe it's easier
> to adopt that driver. I will bring up this problem during our next meeting
> about e10s addon compatibility.

We are working on a FirefoxDriver replacement, called Marionette (may have noticed it on Treeherder and in B2G) and is mostly complete but to get it up to the same level as the current FirefoxDriver will take time (FirefoxDriver has many battle scars )
Kev, there were some discussions about selenium signing and e10s issues, I don't know where did that discussion lead to... Could you give us some update? Or needinfo whoever is driving it forward currently?
Flags: needinfo?(kev)
Things are looking good, thanks to David:

<AutomatedTester> I can tell you now and save you a vidyo. I am planning on shipping Marionette (Mn on Treeherder) as a WebDriver replacement which will mean we dont need to worry about this
<AutomatedTester> I am literally about to release another Alpha to the Selenium WebDriver commumity
Flags: needinfo?(kev)
(In reply to Gabor Krizsanits [:krizsa :gabor] from comment #10)
> Things are looking good, thanks to David:
> 
> <AutomatedTester> I can tell you now and save you a vidyo. I am planning on
> shipping Marionette (Mn on Treeherder) as a WebDriver replacement which will
> mean we dont need to worry about this
> <AutomatedTester> I am literally about to release another Alpha to the
> Selenium WebDriver commumity

This is good news. Can david take ownership of this bug? Sounds like he's working on upgrading this add-on.
Flags: needinfo?(gkrizsanits)
(In reply to Jim Mathies [:jimm] from comment #11)
> This is good news. Can david take ownership of this bug? Sounds like he's
> working on upgrading this add-on.

Yeah I think that makes sense. David, let me know if you do mind it.
Assignee: gkrizsanits → dburns
Flags: needinfo?(gkrizsanits)
Resolving since there is not much I can do, other than maybe cry ;)

Marionette will be a WebDriver replacement and the Selenium community are with us on this.

(p.s. between Addon-signing and e10s we killed WebDriver. Having something in tree will hopefully help us not break things in the future)
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → INCOMPLETE
Resolution: INCOMPLETE → WONTFIX
You need to log in before you can comment on or make changes to this bug.