Unable to run web-platform-tests in geckoview TestRunnerActivity
Categories
(Testing :: web-platform-tests, defect)
Tracking
(firefox67 fixed)
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: gbrown, Assigned: nalexander)
References
Details
(Whiteboard: [geckoview:p2])
Attachments
(3 files, 5 obsolete files)
Reporter | ||
Updated•6 years ago
|
Reporter | ||
Comment 1•6 years ago
|
||
Comment hidden (obsolete) |
Reporter | ||
Comment 3•6 years ago
|
||
Reporter | ||
Comment 4•6 years ago
|
||
Comment 5•6 years ago
|
||
Reporter | ||
Comment 6•6 years ago
|
||
Reporter | ||
Comment 7•6 years ago
|
||
Reporter | ||
Comment 8•6 years ago
|
||
Reporter | ||
Comment 9•6 years ago
|
||
Comment 10•6 years ago
|
||
Comment 12•6 years ago
|
||
Comment 14•6 years ago
|
||
Reporter | ||
Updated•6 years ago
|
Comment 15•6 years ago
|
||
Reporter | ||
Comment 16•6 years ago
|
||
Comment 17•6 years ago
|
||
Reporter | ||
Comment 18•6 years ago
|
||
Comment 19•6 years ago
|
||
Reporter | ||
Comment 20•6 years ago
|
||
Reporter | ||
Comment 21•6 years ago
|
||
Reporter | ||
Comment 22•6 years ago
|
||
Reporter | ||
Updated•6 years ago
|
Comment 24•6 years ago
|
||
Reporter | ||
Comment 25•6 years ago
|
||
Reporter | ||
Comment 26•6 years ago
|
||
Reporter | ||
Updated•6 years ago
|
Comment 27•6 years ago
|
||
Comment 29•6 years ago
|
||
Comment 30•6 years ago
|
||
Comment 31•6 years ago
|
||
Comment 32•6 years ago
|
||
Comment 33•6 years ago
|
||
Once we have marionette support for geckoview, it will also work with the Reference Browser?
Comment 34•6 years ago
|
||
(In reply to Andreas Tolfsen ⦗:ato⦘ from comment #32)
In the review I agree with nalexander’s call that we should uplift
a patch to always populate the permanentKey on GeckoView based
<browser>s with this so that we can tell them apart.
Nick, has someone already started to work on getting permanentKey populated in GeckoView? It feels like a blocker for us.
Assignee | ||
Comment 35•6 years ago
|
||
(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #34)
(In reply to Andreas Tolfsen ⦗:ato⦘ from comment #32)
In the review I agree with nalexander’s call that we should uplift
a patch to always populate the permanentKey on GeckoView based
<browser>s with this so that we can tell them apart.Nick, has someone already started to work on getting permanentKey populated in GeckoView? It feels like a blocker for us.
Not that I am aware of, so I filed Bug 1520226 to track this work. I expect that if you insert
browser.permanentKey = {};
around https://searchfox.org/mozilla-central/source/mobile/android/chrome/geckoview/geckoview.js#381 this will Just Work.
Assignee | ||
Comment 36•6 years ago
|
||
This lays the foundation for Marionette to work inside
GeckoView-consuming Apps.
Depends on D17577
Assignee | ||
Comment 37•6 years ago
|
||
This just adds a layer of indirection between existing startup paths and a
new startup path that GeckoView(-consumers) will exploit.
Depends on D17578
Assignee | ||
Comment 38•6 years ago
|
||
Depends on D17579
Assignee | ||
Comment 39•6 years ago
|
||
Hi folks! The attached patch sequence splits the existing sequence into parts, applying the review comments and the suggested approach for a new startup notification.
./mach try fuzzy -q "'marionette | 'opt-web-platform"
is at https://treeherder.mozilla.org/#/jobs?repo=try&revision=56c59b40ac731cd17542bea81210754846ec4d79
With some small tweaks, ./mach -v wpt testing/web-platform/tests/infrastructure/assumptions/allowed-to-play.html --package-name=org.mozilla.{gecko.test,geckoview_example}
definitely invokes Marionette and does some things, but it totally does not work because these apps don't support multiple tabs. E.g., in logs:
01-24 22:59:17.789 5372 5387 I Gecko : 1548370757789 Marionette DEBUG 2 -> [0,3,"WebDriver:GetWindowHandle",{}]
01-24 22:59:17.790 5372 5387 I Gecko : 1548370757790 Marionette DEBUG 2 <- [1,3,null,{"value":"2147483649"}]
01-24 22:59:17.801 5372 5387 I Gecko : 1548370757801 Marionette DEBUG 2 -> [0,4,"WebDriver:ExecuteScript",{"script":"document.title = 'TestRunnerManager-1';","newSandbox":false,"args":[],"filename":"testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executormarionette.py","sandbox":null,"line":61}]
01-24 22:59:17.805 5427 5442 D GeckoViewContent[C]: handleEvent: DOMTitleChanged
01-24 22:59:17.805 5372 5387 I Gecko : 1548370757805 Marionette DEBUG 2 <- [1,4,null,{"value":null}]
01-24 22:59:17.808 5372 5387 I Gecko : 1548370757808 Marionette DEBUG 2 -> [0,5,"WebDriver:SetTimeouts",{"script":45000}]
01-24 22:59:17.809 5372 5387 I Gecko : 1548370757809 Marionette DEBUG 2 <- [1,5,null,{"value":null}]
01-24 22:59:17.813 5372 5387 I Gecko : 1548370757813 Marionette DEBUG 2 -> [0,6,"WebDriver:GetWindowHandles",{}]
01-24 22:59:17.813 5372 5387 I Gecko : 1548370757813 Marionette DEBUG 2 <- [1,6,null,["2147483649"]]
01-24 22:59:17.816 5372 5387 I Gecko : 1548370757816 Marionette DEBUG 2 -> [0,7,"WebDriver:SwitchToWindow",{"focus":true,"name":"2147483649"}]
01-24 22:59:17.817 5372 5387 I Gecko : 1548370757817 Marionette DEBUG 2 <- [1,7,null,{"value":null}]
01-24 22:59:17.827 5372 5387 I Gecko : 1548370757827 Marionette DEBUG 2 -> [0,8,"WebDriver:ExecuteScript",{"script":"window.open('about:blank', '4f8ac1fb-bdc2-46c8-ab84-9328dfaf2b04', 'noopener')","ne ... ,"filename":"testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executormarionette.py","sandbox":null,"line":61}]
01-24 22:59:17.832 5372 5387 D GeckoViewNavigation: handleOpenUri: uri=about:blank where=3 flags=0
01-24 22:59:17.834 5372 5387 I Gecko : 1548370757834 Marionette DEBUG 2 <- [1,8,null,{"value":null}]
01-24 22:59:17.835 5372 5387 D GeckoViewNavigation: handleNewSession: uri=about:blank where=3 flags=0
01-24 22:59:17.924 5372 5414 D EGL_emulation: eglCreateContext: 0xe129c080: maj 2 min 0 rcv 2
01-24 22:59:17.926 5372 5414 D EGL_emulation: eglMakeCurrent: 0xe129c080: ver 2 0 (tinfo 0xe2fd2760)
01-24 22:59:17.951 5372 5414 I GeckoConsole: OpenGL compositor Initialized Succesfully.
01-24 22:59:17.951 5372 5414 I GeckoConsole: Version: OpenGL ES 2.0 (OpenGL ES 3.0 SwiftShader 4.0.0.1)
01-24 22:59:17.951 5372 5414 I GeckoConsole: Vendor: Google (Google Inc.)
01-24 22:59:17.951 5372 5414 I GeckoConsole: Renderer: Android Emulator OpenGL ES Translator (Google SwiftShader)
01-24 22:59:17.951 5372 5414 I GeckoConsole: FBO Texture Target: TEXTURE_2D
01-24 22:59:17.963 5372 5387 I Gecko : 1548370757962 Marionette TRACE Received observer notification toplevel-window-ready
01-24 22:59:17.974 5372 5387 I Gecko : 1548370757974 Marionette DEBUG 2 -> [0,9,"WebDriver:GetWindowHandles",{}]
01-24 22:59:17.975 5372 5387 I Gecko : 1548370757975 Marionette DEBUG 2 <- [1,9,null,["2147483649"]]
Observe that the second call to GetWindowHandles
returns the same set as the first. It's not clear that any of our GeckoView-based browsers handle window.open
in the way that wpt tests require, but I'd like to make progress on that in a separate ticket.
Comment 40•6 years ago
|
||
That sounds great. Please note that I could start working on the further integration once bug 1520226 has been fixed.
Comment 41•6 years ago
|
||
(In reply to Nick Alexander :nalexander [he/him] from comment #39)
01-24 22:59:17.827 5372 5387 I Gecko : 1548370757827 Marionette DEBUG 2 -> [0,8,"WebDriver:ExecuteScript",{"script":"window.open('about:blank', '4f8ac1fb-bdc2-46c8-ab84-9328dfaf2b04', 'noopener')","ne ... ,"filename":"testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executormarionette.py","sandbox":null,"line":61}]
01-24 22:59:17.832 5372 5387 D GeckoViewNavigation: handleOpenUri: uri=about:blank where=3 flags=0
01-24 22:59:17.834 5372 5387 I Gecko : 1548370757834 Marionette DEBUG 2 <- [1,8,null,{"value":null}]
01-24 22:59:17.835 5372 5387 D GeckoViewNavigation: handleNewSession: uri=about:blank where=3 flags=0
01-24 22:59:17.924 5372 5414 D EGL_emulation: eglCreateContext: 0xe129c080: maj 2 min 0 rcv 2
01-24 22:59:17.926 5372 5414 D EGL_emulation: eglMakeCurrent: 0xe129c080: ver 2 0 (tinfo 0xe2fd2760)
01-24 22:59:17.951 5372 5414 I GeckoConsole: OpenGL compositor Initialized Succesfully.
01-24 22:59:17.951 5372 5414 I GeckoConsole: Version: OpenGL ES 2.0 (OpenGL ES 3.0 SwiftShader 4.0.0.1)
01-24 22:59:17.951 5372 5414 I GeckoConsole: Vendor: Google (Google Inc.)
01-24 22:59:17.951 5372 5414 I GeckoConsole: Renderer: Android Emulator OpenGL ES Translator (Google SwiftShader)
01-24 22:59:17.951 5372 5414 I GeckoConsole: FBO Texture Target: TEXTURE_2D
01-24 22:59:17.963 5372 5387 I Gecko : 1548370757962 Marionette TRACE Received observer notification toplevel-window-ready
01-24 22:59:17.974 5372 5387 I Gecko : 1548370757974 Marionette DEBUG 2 -> [0,9,"WebDriver:GetWindowHandles",{}]
01-24 22:59:17.975 5372 5387 I Gecko : 1548370757975 Marionette DEBUG 2 <- [1,9,null,["2147483649"]]Observe that the second call to `GetWindowHandles` returns the same set as the first. It's not clear that _any_ of our GeckoView-based browsers handle `window.open` in the way that wpt tests require, but I'd like to make progress on that in a separate ticket.
Note that the execute script call returns too early, means before the toplevel-window-ready
notification has been received. This could cause race conditions, also because the parent process might not have been informed about the new tab. Basically you should use self.marionette.open(type="tab")
to open a new tab, which will take care of all of this. I recently added this via bug 1504756.
Assignee | ||
Comment 42•6 years ago
|
||
Depends on D17579
Assignee | ||
Comment 43•6 years ago
|
||
Note that the execute script call returns too early, means before the
toplevel-window-ready
notification has been received.
whimboo: I flagged you to review a patch that ensure this doesn't happen. It's not clear to me that it's necessary, but you can address that.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 44•6 years ago
|
||
Comment on attachment 9038984 [details]
Bug 1524673 - Make Marionette part of remote debugging within GeckoView. r?snorp,whimboo
Spun out into Bug 1524673.
Comment 45•6 years ago
|
||
(In reply to Nick Alexander :nalexander [he/him] from comment #43)
Note that the execute script call returns too early, means before the
toplevel-window-ready
notification has been received.whimboo: I flagged you to review a patch that ensure this doesn't happen. It's not clear to me that it's necessary, but you can address that.
Oh I reviewed the patch before seeing this comment. I think that we don't need it because that case happens later and not during startup of Marionette. The underlying problem will be fixed when we can land a fix for bug 1522790.
Updated•6 years ago
|
Comment 46•6 years ago
|
||
Updated•6 years ago
|
Comment 47•6 years ago
|
||
Comment on attachment 9038984 [details]
Bug 1524673 - Make Marionette part of remote debugging within GeckoView. r?snorp,whimboo
Revision D17580 was moved to bug 1524673. Setting attachment 9038984 [details] to obsolete.
Comment 48•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/d1654e2c218e
https://hg.mozilla.org/mozilla-central/rev/5ef017963ce3
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Description
•