Open Bug 1504359 Opened 6 years ago Updated 1 year ago

"Execute Script" values incorrectly interpreted as arrays

Categories

(Remote Protocol :: Marionette, defect, P2)

Version 3
defect

Tracking

(Not tracked)

People

(Reporter: jugglinmike, Unassigned)

References

(Blocks 1 open bug)

Details

If the result of "Execute Script" or "Execute Async Script" is an "arguments"
object or a proxied array instance, the value should be serialized as a JSON
object. Geckodriver serializes the value as an Array.

Tests for this behavior have been submitted to the web-platform-tests project:
https://github.com/web-platform-tests/wpt/pull/13880

    $ ./_venv/bin/geckodriver --version
    geckodriver 0.23.0 (a6493a0b53a3 2018-11-02 06:40 +0000)

    The source code of this program is available from
    testing/geckodriver in https://hg.mozilla.org/mozilla-central.

    This program is subject to the terms of the Mozilla Public License 2.0.
    You can obtain a copy of the license at https://mozilla.org/MPL/2.0/.
    $ ./_venv/browsers/nightly/firefox/firefox --version
    Mozilla Firefox 65.0a1
This is actually a bug in Marionette:

> [task 2018-11-04T22:32:13.028Z] 22:32:13     INFO - PID 7684 | 1541370733019	Marionette	TRACE	0 -> [0,3,"WebDriver:ExecuteScript",{"args":[],"script":"\n        function func() {\n            return arguments;\n        }\n        return func(\"foo\", \"bar\");\n        "}]
> [task 2018-11-04T22:32:13.032Z] 22:32:13     INFO - PID 7684 | 1541370733028	Marionette	TRACE	0 <- [1,3,null,{"value":["foo","bar"]}]
Blocks: webdriver
Component: geckodriver → Marionette
Priority: -- → P2
The definition of a "collection" in WebDriver is currently being discussed, so it's probably best to hold off on change until that's complete:

https://github.com/w3c/webdriver/issues/1347
Severity: normal → S3
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.