Closed Bug 1371405 Opened 7 years ago Closed 7 years ago

Clean up commands that manipulate the Window

Categories

(Testing :: geckodriver, enhancement)

Version 3
enhancement
Not set
normal

Tracking

(firefox56 fixed)

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: automatedtester, Assigned: automatedtester)

References

Details

Attachments

(4 files, 3 obsolete files)

I have been looking into the Window wdspec tests and spotted a few areas that could do with a clean up so that we return the valid commands.
Assignee: nobody → dburns
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review151708

::: testing/geckodriver/Cargo.toml:30
(Diff revision 1)
>  slog = "1"
>  slog-atomic = "0.4"
>  slog-stdlog = "1"
>  slog-stream = "1"
>  uuid = "0.1.18"
> -webdriver = "0.26.0"
> +webdriver = {path = "/Users/dburns/development/geckodriver/webdriver-rust"}

This is due to changes in https://github.com/AutomatedTester/webdriver-rust/commit/514e8aa111f95d69258a7e8244bf89fd6282d4b4 which might be required. Needs to be reverted when ready to push

::: testing/geckodriver/src/marionette.rs:873
(Diff revision 1)
> +                     ErrorStatus::UnknownError,
> +                     "Failed to find y field").as_i64(),
> +            ErrorStatus::UnknownError,
> +            "Failed to interpret y as integer");
> +
> +        Result<WindowRectResponse::new(x, y, width, height), _>

This is not exactly right but not sure the right thing. It doesnt currently compile because of the return
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review151708

> This is due to changes in https://github.com/AutomatedTester/webdriver-rust/commit/514e8aa111f95d69258a7e8244bf89fd6282d4b4 which might be required. Needs to be reverted when ready to push

You also revert to 0.25.x in the TOML. Maybe you don't have the latest code locally? Or is that related to this override?

> This is not exactly right but not sure the right thing. It doesnt currently compile because of the return

Isn't that just `Ok(...)`?
Comment on attachment 8876039 [details]
Bug 1371405 - Simplify window commands for matches and the data they return;

https://reviewboard.mozilla.org/r/147302/#review151722

::: commit-message-dd9f8:5
(Diff revision 1)
> +Bug 1371405 - Align SetWindowRect command with other WindowRect commands; r?jgraham
> +
> +This moves SetWindowRect command to be similar to other Window rect
> +commands. It also corrects the return type which, while very similar,
> +was return ElementRect type.

Looks like this makes my changes on bug 1371555 obsolete.
Comment on attachment 8876038 [details]
Bug 1371405 - Correct height error message when validating GetWindowRect responses;

https://reviewboard.mozilla.org/r/147300/#review151732
Attachment #8876038 - Flags: review?(james) → review+
Comment on attachment 8876039 [details]
Bug 1371405 - Simplify window commands for matches and the data they return;

https://reviewboard.mozilla.org/r/147302/#review151738

::: testing/geckodriver/src/marionette.rs:813
(Diff revision 1)
> -                let x = try_opt!(
> -                    try_opt!(resp.result.find("x"),
> +                let width = try_opt!(
> +                    try_opt!(resp.result.find("width"),
>                               ErrorStatus::UnknownError,
> -                             "Failed to find x field").as_f64(),
> +                             "Failed to find width field").as_u64(),
>                      ErrorStatus::UnknownError,
> -                    "Failed to interpret x as float");
> +                    "Failed to interpret width as integer");

We believe that it's possible for this to return fractional pixels on (hidpi) Windows, which is why it's using the float types.
Attachment #8876039 - Flags: review?(james) → review-
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review151740

::: testing/geckodriver/src/marionette.rs:848
(Diff revision 1)
>  
> +    fn validate_window_rect(&self, resp: MarionetteResponse) -> WebDriverResult<WindowRectResponse> {
> +        let width = try_opt!(
> +            try_opt!(resp.result.find("width"),
> +                     ErrorStatus::UnknownError,
> +                     "Failed to find width field").as_u64(),

I think this should be floats throughout.
Attachment #8876040 - Flags: review?(james) → review-
Comment on attachment 8876037 [details]
Bug 1371405 - Move to RectResponse aligning with the WebDriver crate;

https://reviewboard.mozilla.org/r/147298/#review151752

::: commit-message-128c9:1
(Diff revision 1)
> +Bug 1371405 - Maximize Window Command should return Window Rect dimensions; r?ato
> +
> +The Maximize Window Command from WebDriver should return the Window
> +Rect dimensions to the local end as described in
> +https://w3c.github.io/webdriver/webdriver-spec.html#maximize-window

I don’t feel it’s appropriate to use “should”-language in the commit message.  It should describe what the patch is _changing_ not what the could _ought_ to behave like.

Also two nits regarding the casing in the commit message:

s/Command/command/g
s/Window Rect/window rect/g

::: testing/geckodriver/src/marionette.rs:773
(Diff revision 1)
> +            MaximizeWindow => {
> +                let width = try_opt!(
> +                    try_opt!(resp.result.find("width"),
> +                             ErrorStatus::UnknownError,
> +                             "Failed to find width field").as_u64(),
> +                    ErrorStatus::UnknownError,
> +                    "Failed to interpret width as integer");
> +
> +                let height = try_opt!(
> +                    try_opt!(resp.result.find("height"),
> +                             ErrorStatus::UnknownError,
> +                             "Failed to find height field").as_u64(),
> +                    ErrorStatus::UnknownError,
> +                    "Failed to interpret height as integer");
> +
> +                let x = try_opt!(
> +                    try_opt!(resp.result.find("x"),
> +                             ErrorStatus::UnknownError,
> +                             "Failed to find x field").as_i64(),
> +                    ErrorStatus::UnknownError,
> +                    "Failed to interpret x as integer");
> +
> +                let y = try_opt!(
> +                    try_opt!(resp.result.find("y"),
> +                             ErrorStatus::UnknownError,
> +                             "Failed to find y field").as_i64(),
> +                    ErrorStatus::UnknownError,
> +                    "Failed to interpret y as integer");
> +
> +                WebDriverResponse::WindowRect(WindowRectResponse {x: x,
> +                                                                  y: y,
> +                                                                  width: width,
> +                                                                  height: height})
> +            },

We already have this code under the matching of the GetWindowRect response.  So instead of copying and repeating it, you could simply match on both:

> MaximiseWindow | GetWindowRect => { … }
Attachment #8876037 - Flags: review?(ato) → review-
Comment on attachment 8876038 [details]
Bug 1371405 - Correct height error message when validating GetWindowRect responses;

https://reviewboard.mozilla.org/r/147300/#review151756

::: commit-message-5ca1d:1
(Diff revision 1)
> +Bug 1371405 - Correct height error message when validating messages; r?jgraham

s/messages/GetWindowRect response/ for clarity.
Comment on attachment 8876039 [details]
Bug 1371405 - Simplify window commands for matches and the data they return;

https://reviewboard.mozilla.org/r/147302/#review151758

::: commit-message-dd9f8:3
(Diff revision 1)
> +Bug 1371405 - Align SetWindowRect command with other WindowRect commands; r?jgraham
> +
> +This moves SetWindowRect command to be similar to other Window rect

s/Window/window/
Comment on attachment 8876039 [details]
Bug 1371405 - Simplify window commands for matches and the data they return;

https://reviewboard.mozilla.org/r/147302/#review151738

> We believe that it's possible for this to return fractional pixels on (hidpi) Windows, which is why it's using the float types.

Although now I note that this would require changes in the WebDriver library too, so this is fine.
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review151762

::: testing/geckodriver/src/marionette.rs:742
(Diff revision 1)
>                      ErrorStatus::UnknownError,
>                      "Failed to interpret width as float");
>  
>                  WebDriverResponse::ElementRect(ElementRectResponse::new(x, y, width, height))
>              },
>              MaximizeWindow => {

As ato points out you don't need a helper function, just an | in the match.
Comment on attachment 8876037 [details]
Bug 1371405 - Move to RectResponse aligning with the WebDriver crate;

https://reviewboard.mozilla.org/r/147298/#review151752

> We already have this code under the matching of the GetWindowRect response.  So instead of copying and repeating it, you could simply match on both:
> 
> > MaximiseWindow | GetWindowRect => { … }

This gets fixed in the final patch of this series
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review152360

::: testing/geckodriver/Cargo.toml:30
(Diff revision 3)
>  slog = "1"
>  slog-atomic = "0.4"
>  slog-stdlog = "1"
>  slog-stream = "1"
>  uuid = "0.1.18"
> -webdriver = "0.26.0"
> +webdriver = {path = "/Users/dburns/development/geckodriver/webdriver-rust"}

This is still picking up a local webdriver crate.  Re-raising an issue on this as the last ones appears to have been auto-resolved.

::: testing/geckodriver/src/marionette.rs:739
(Diff revision 3)
> -            MaximizeWindow => {
> -                let width = try_opt!(
> +            FullscreenWindow | MaximizeWindow | GetWindowRect => {
> +                WebDriverResponse::WindowRect(self.validate_window_rect(resp).unwrap())
> -                    try_opt!(resp.result.find("width"),
> -                             ErrorStatus::UnknownError,
> -                             "Failed to find width field").as_u64(),
> -                    ErrorStatus::UnknownError,
> -                    "Failed to interpret width as integer");
> -
> -                let height = try_opt!(
> -                    try_opt!(resp.result.find("height"),
> -                             ErrorStatus::UnknownError,
> -                             "Failed to find height field").as_u64(),
> -                    ErrorStatus::UnknownError,
> -                    "Failed to interpret height as integer");
> -
> -                let x = try_opt!(
> -                    try_opt!(resp.result.find("x"),
> -                             ErrorStatus::UnknownError,
> -                             "Failed to find x field").as_i64(),
> -                    ErrorStatus::UnknownError,
> -                    "Failed to interpret x as integer");
> -
> -                let y = try_opt!(
> -                    try_opt!(resp.result.find("y"),
> -                             ErrorStatus::UnknownError,
> -                             "Failed to find y field").as_i64(),
> -                    ErrorStatus::UnknownError,
> -                    "Failed to interpret y as integer");
> -
> -                WebDriverResponse::WindowRect(WindowRectResponse {x: x,
> -                                                                  y: y,
> -                                                                  width: width,
> -                                                                  height: height})
>              },
>              SetWindowRect(_) => {
> -                let width = try_opt!(
> +                WebDriverResponse::WindowRect(self.validate_window_rect(resp).unwrap())

I don’t understand why the deserialisation has been moved to a separate self.validate_window_rect function and why SetWindowRect isn’t part of the above multi-match on FullscreenWindow, MaximizeWindow, and GetWindowRect.

It also feels like this patch is making the first patch in the series superfluous.  I think you should consider reworking the order in which you introduce these changes so it’s clearer.
Attachment #8876040 - Flags: review-
Comment on attachment 8876037 [details]
Bug 1371405 - Move to RectResponse aligning with the WebDriver crate;

https://reviewboard.mozilla.org/r/147298/#review152362

See my comments on the “Simplify WindowRect validation from Marionette” patch.
Attachment #8876037 - Flags: review?(ato) → review-
Comment on attachment 8876216 [details]
Bug 1371405 - Move to RectResponse aligning with the WebDriver crate;

https://reviewboard.mozilla.org/r/147664/#review152364
Attachment #8876216 - Flags: review?(ato) → review+
Comment on attachment 8876039 [details]
Bug 1371405 - Simplify window commands for matches and the data they return;

https://reviewboard.mozilla.org/r/147302/#review152964
Attachment #8876039 - Flags: review?(james) → review+
Comment on attachment 8876040 [details]
Bug 1371405 - Simplify WindowRect validation from Marionette;

https://reviewboard.mozilla.org/r/147304/#review152966
Attachment #8876040 - Flags: review?(james) → review-
Attachment #8876038 - Attachment is obsolete: true
Attachment #8876040 - Attachment is obsolete: true
Attachment #8876216 - Attachment is obsolete: true
Comment on attachment 8876037 [details]
Bug 1371405 - Move to RectResponse aligning with the WebDriver crate;

https://reviewboard.mozilla.org/r/147298/#review153470

::: commit-message-128c9:3
(Diff revision 4)
> +Bug 1371405 - Move to RectResponse aligning with the WebDriver crate; r?ato
> +
> +This uses the merged RectResponse from the WebDriver crate.It also moves the

Nit: Space before “It”.
Attachment #8876037 - Flags: review?(ato) → review+
Comment on attachment 8879139 [details]
Bug 1371405: Update Cookie handling code to align with WebDriver crate;

https://reviewboard.mozilla.org/r/150468/#review155130

::: commit-message-0cb34:4
(Diff revision 1)
> +Bug 1371405: Update Cookie handling code to align with WebDriver crate; r?ato
> +
> +Details of changes to WebDriver Crate can be found at
> +https://github.com/mozilla/webdriver-rust/pull/102

FWIW a link to the actual commit is more authoritative than a link to a PR, which may or may not have been merged.

::: testing/geckodriver/src/marionette.rs:775
(Diff revision 1)
>              GetNamedCookie(ref name) => {
> -                let mut cookies = try!(self.process_cookies(&resp.result));
> -                cookies.retain(|x| x.name == *name);
> -                WebDriverResponse::Cookie(CookieResponse::new(cookies))
> +                let mut cookie = try!(self.process_cookies(&resp.result));
> +                cookie.retain(|x| x.name == *name);
> +                WebDriverResponse::Cookie(CookieResponse { value : cookie.remove(0) })
>              }

This is a functional change.  Please return a CookiesResponse as before.  I will fix this in https://bugzilla.mozilla.org/show_bug.cgi?id=1372595.
Attachment #8879139 - Flags: review?(ato) → review+
(In reply to Andreas Tolfsen from comment #7)

A session cookie is a cookie where "Max-Age" or "Expires" are not provided. The date the cookie expires is unknown and the cookie is deleted when the session ends. In dev tools, the column "Expires" has the value "Session" for a session cookie.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
https://tools.ietf.org/html/rfc6265#section-4.1.2.2

Now, when a cookie is created, Firefox first sets the expiry to the maximum of an int64 and then updates the value if the "Max-Age" or "Expiries" is provided.

So knowing if it's a session cookie is relevant to avoid returning the default value of either `nsICookie2::expiry` (INT64_MAX) or `nsICookie::expires` (0).

The issue is that the fix now evaluates nsICookie2#expiry instead of nsICookie#expires to return null, but still compares the result against 0, which will never be true for a session cookie since the `nsICookie2#expiry` will be INT64_MAX.

There's at least 3 ways to determine if the cookie is a session cookie:
 nsICookie::expires == 0
 nsICookie2::expiry > Number.MAX_SAFE_INTEGER  (superior to year 292837)
 nsICookie2::isSesson

Note that the comment from the commit states that the expiry does not exist on nsICookie. It's not true since nsICookie2 inherits the members from nsICookie and nsICookie#expires can be called on nsICookie2.

Regarding the specification, the old protocol (Wire) says that the property should be omitted if the expiry is not available:
https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#cookie-json-object

But the new specification (W3C) doesn't provide any rule on whether the `expiry` should be omitted, 0 or null to get a session cookie. There's a rule to add a cookie where the expiry time should be either omitted or an integer superior or equal to 0 and inferior to an uint64.

There's also a rule on adding a cookie where it should have an expiry of 20 years into the future if the field is omitted.
But I think this rule is a mistake, first because 20 years in the future is a valid expiry date and second because it will prevent the cookie from being deleted once the browser is closed.
Florent: You are commenting on a bug that is unrelated to cookies.
AutomatedTester is pulling in a new version of the webdriver crate which
necessitates some type updates to make it compile.  My suggestion to him
was to not make any API changes as part of this patch.

I have a small API change in the patches associated with
https://bugzilla.mozilla.org/show_bug.cgi?id=1372595 that will fix the
problem he is trying to correct.  But neither this bug or the one I
linked to, deals specifically with WebDriver conformance.  I have filed
https://bugzilla.mozilla.org/show_bug.cgi?id=1372582 about that, which
you are welcome to provide your feedback to.

Your input is valuable , but I sense that there are a number of
specification related issues we need to deal with before we can start
work on https://bugzilla.mozilla.org/show_bug.cgi?id=1372582.  As I note
below, it would be of great value if you raised relevant specification
bugs against https://github.com/w3c/webdriver so we could fix the
specification before we do any serious work on this.

(In reply to Florent BREHERET from comment #46)

> Regarding the specification, the old protocol (Wire) says that
> the property should be omitted if the expiry is not available:
> https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#cookie-js
> on- object
>
> But the new specification (W3C) doesn't provide any rule on
> whether the `expiry` should be omitted, 0 or null to get a session
> cookie. There's a rule to add a cookie where the expiry time should be
> either omitted or an integer superior or equal to 0 and inferior to an
> uint64.

I suggest you file a bug against the WebDriver specification on this.

> There's also a rule on adding a cookie where it should have an expiry
> of 20 years into the future if the field is omitted.  But I think this
> rule is a mistake, first because 20 years in the future is a valid
> expiry date and second because it will prevent the cookie from being
> deleted once the browser is closed.

Ditto.  You should be aware that this is likely to break backwards
compatibility, but that that in itself might not be a bad thing to
correct in the specification.
Comment on attachment 8879138 [details]
Bug 1371405 - Update vendored WebDriver crate;

https://reviewboard.mozilla.org/r/150466/#review155614
Attachment #8879138 - Flags: review?(james) → review+
Pushed by dburns@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/311c7c91fd52
Simplify window commands for matches and the data they return; r=jgraham
https://hg.mozilla.org/integration/autoland/rev/c8347eba0b64
Move to RectResponse aligning with the WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/3c648baf694f
Update Cookie handling code to align with WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/289753493fdf
Update vendored WebDriver crate; r=jgraham
sorry david had to back this out for bustage like https://treeherder.mozilla.org/logviewer.html#?job_id=108539915&repo=autoland
Flags: needinfo?(dburns)
Pushed by dburns@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6731e1742804
Simplify window commands for matches and the data they return; r=jgraham
https://hg.mozilla.org/integration/autoland/rev/2165c3e795b8
Move to RectResponse aligning with the WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/9f4ce21f8652
Update Cookie handling code to align with WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/010032851619
Update vendored WebDriver crate; r=jgraham
Backed out for failing webdriver/contexts.py | contexts.py::test_window_size_types:

https://hg.mozilla.org/integration/autoland/rev/75b728151a2c27cc66c9b60f31c84fbf574a0fee
https://hg.mozilla.org/integration/autoland/rev/f937a959512a5897a55a826715c11679b293b0de
https://hg.mozilla.org/integration/autoland/rev/ef58b152cd8a5a882518a81c6d5b12f52b514e36
https://hg.mozilla.org/integration/autoland/rev/8969219f432f65be17329bdff3fb88d3fd449e2c

First push with jobs run and failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=79f9200b6cc1a7109b57d44be2f0fc8219b49bb5&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-resultStatus=success&filter-searchStr=Wd
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=108582769&repo=autoland

[task 2017-06-20T15:22:56.814433Z] 15:22:56     INFO - TEST-START | /webdriver/contexts.py
[task 2017-06-20T15:22:57.038072Z] 15:22:57     INFO - STDOUT: ============================= test session starts ==============================
[task 2017-06-20T15:22:57.038415Z] 15:22:57     INFO - STDOUT: platform linux2 -- Python 2.7.12, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- /home/worker/workspace/build/venv/bin/python
[task 2017-06-20T15:22:57.038697Z] 15:22:57     INFO - STDOUT: cachedir: tests/web-platform/tests/webdriver/.cache
[task 2017-06-20T15:22:57.038998Z] 15:22:57     INFO - STDOUT: rootdir: /home/worker/workspace/build/tests/web-platform/tests/webdriver, inifile: 
[task 2017-06-20T15:22:57.039264Z] 15:22:57     INFO - STDOUT: plugins: mozlog-3.4
[task 2017-06-20T15:22:57.039545Z] 15:22:57     INFO - STDOUT: collecting ... 
[task 2017-06-20T15:22:57.060011Z] 15:22:57     INFO - STDOUT: collected 3 items
[task 2017-06-20T15:22:57.060528Z] 15:22:57     INFO - STDOUT: tests/web-platform/tests/webdriver/contexts.py::test_window_size_types 
[task 2017-06-20T15:22:57.177276Z] 15:22:57     INFO - PID 1129 | 1497972177171	geckodriver::marionette	INFO	Starting browser /home/worker/workspace/build/application/firefox/firefox with args ["-marionette"]
[task 2017-06-20T15:23:00.264606Z] 15:23:00     INFO - PID 1129 | 1497972180258	Marionette	INFO	Listening on port 2828
[task 2017-06-20T15:23:00.346188Z] 15:23:00     INFO - PID 1129 | 1497972180341	Marionette	DEBUG	loaded listener.js
[task 2017-06-20T15:23:00.388105Z] 15:23:00     INFO - STDOUT: PASSED
[task 2017-06-20T15:23:00.450101Z] 15:23:00     INFO - STDOUT: tests/web-platform/tests/webdriver/contexts.py::test_window_resize 
[task 2017-06-20T15:23:00.579108Z] 15:23:00     INFO - STDOUT: FAILED
[task 2017-06-20T15:23:00.615359Z] 15:23:00     INFO - STDOUT: tests/web-platform/tests/webdriver/contexts.py::test_window_position_types 
[task 2017-06-20T15:23:00.757289Z] 15:23:00     INFO - STDOUT: FAILED
[task 2017-06-20T15:23:00.785474Z] 15:23:00     INFO - STDOUT: =================================== FAILURES ===================================
[task 2017-06-20T15:23:00.786405Z] 15:23:00     INFO - STDOUT: ______________________________ test_window_resize ______________________________
[task 2017-06-20T15:23:00.786564Z] 15:23:00     INFO - STDOUT: session = <webdriver.client.Session object at 0x7f6237c9e710>
[task 2017-06-20T15:23:00.787919Z] 15:23:00     INFO - STDOUT:     def test_window_resize(session):
[task 2017-06-20T15:23:00.788334Z] 15:23:00     INFO - STDOUT:         if not window_size_supported(session):
[task 2017-06-20T15:23:00.788869Z] 15:23:00     INFO - STDOUT:             pytest.skip()
[task 2017-06-20T15:23:00.789272Z] 15:23:00     INFO - STDOUT:     
[task 2017-06-20T15:23:00.790966Z] 15:23:00     INFO - STDOUT:         # setting the window size by webdriver is synchronous
[task 2017-06-20T15:23:00.791626Z] 15:23:00     INFO - STDOUT:         # so we should see the results immediately
[task 2017-06-20T15:23:00.792057Z] 15:23:00     INFO - STDOUT:     
[task 2017-06-20T15:23:00.792757Z] 15:23:00     INFO - STDOUT:         session.window.size = (400, 500)
[task 2017-06-20T15:23:00.793156Z] 15:23:00     INFO - STDOUT:         assert session.window.size == (400, 500)
[task 2017-06-20T15:23:00.793862Z] 15:23:00     INFO - STDOUT:     
[task 2017-06-20T15:23:00.794118Z] 15:23:00     INFO - STDOUT:         session.window.size = (500, 600)
[task 2017-06-20T15:23:00.794633Z] 15:23:00     INFO - STDOUT: >       assert session.window.size == (500, 600)
[task 2017-06-20T15:23:00.795244Z] 15:23:00     INFO - STDOUT: E       assert (400, 500) == (500, 600)
[task 2017-06-20T15:23:00.795617Z] 15:23:00     INFO - STDOUT: E         At index 0 diff: 400 != 500
[task 2017-06-20T15:23:00.796051Z] 15:23:00     INFO - STDOUT: E         Full diff:
[task 2017-06-20T15:23:00.796541Z] 15:23:00     INFO - STDOUT: E         - (400, 500)
[task 2017-06-20T15:23:00.796997Z] 15:23:00     INFO - STDOUT: E         ?  ^    ^
[task 2017-06-20T15:23:00.797452Z] 15:23:00     INFO - STDOUT: E         + (500, 600)
[task 2017-06-20T15:23:00.798041Z] 15:23:00     INFO - STDOUT: E         ?  ^    ^
[task 2017-06-20T15:23:00.798335Z] 15:23:00     INFO - STDOUT: tests/web-platform/tests/webdriver/contexts.py:51: AssertionError
[task 2017-06-20T15:23:00.798752Z] 15:23:00     INFO - STDOUT: __________________________ test_window_position_types __________________________
[task 2017-06-20T15:23:00.799233Z] 15:23:00     INFO - STDOUT: http = <support.http_request.HTTPRequest object at 0x7f62374ed8d0>
[task 2017-06-20T15:23:00.799730Z] 15:23:00     INFO - STDOUT: session = <webdriver.client.Session object at 0x7f6237c9e710>
[task 2017-06-20T15:23:00.800416Z] 15:23:00     INFO - 
[task 2017-06-20T15:23:00.800869Z] 15:23:00     INFO - TEST-PASS | /webdriver/contexts.py | contexts.py::test_window_size_types 
[task 2017-06-20T15:23:00.800946Z] 15:23:00     INFO - TEST-UNEXPECTED-FAIL | /webdriver/contexts.py | contexts.py::test_window_resize 
[task 2017-06-20T15:23:00.801439Z] 15:23:00     INFO - session = <webdriver.client.Session object at 0x7f6237c9e710>
[task 2017-06-20T15:23:00.801597Z] 15:23:00     INFO - 
[task 2017-06-20T15:23:00.801850Z] 15:23:00     INFO -     def test_window_resize(session):
[task 2017-06-20T15:23:00.802213Z] 15:23:00     INFO -         if not window_size_supported(session):
[task 2017-06-20T15:23:00.802699Z] 15:23:00     INFO -             pytest.skip()
[task 2017-06-20T15:23:00.802848Z] 15:23:00     INFO -     
[task 2017-06-20T15:23:00.803145Z] 15:23:00     INFO -         # setting the window size by webdriver is synchronous
[task 2017-06-20T15:23:00.803491Z] 15:23:00     INFO -         # so we should see the results immediately
[task 2017-06-20T15:23:00.803738Z] 15:23:00     INFO -     
[task 2017-06-20T15:23:00.804015Z] 15:23:00     INFO -         session.window.size = (400, 500)
[task 2017-06-20T15:23:00.804818Z] 15:23:00     INFO -         assert session.window.size == (400, 500)
[task 2017-06-20T15:23:00.804868Z] 15:23:00     INFO -     
[task 2017-06-20T15:23:00.805055Z] 15:23:00     INFO -         session.window.size = (500, 600)
[task 2017-06-20T15:23:00.805428Z] 15:23:00     INFO - >       assert session.window.size == (500, 600)
[task 2017-06-20T15:23:00.805807Z] 15:23:00     INFO - E       assert (400, 500) == (500, 600)
[task 2017-06-20T15:23:00.806080Z] 15:23:00     INFO - E         At index 0 diff: 400 != 500
[task 2017-06-20T15:23:00.806358Z] 15:23:00     INFO - E         Full diff:
[task 2017-06-20T15:23:00.806715Z] 15:23:00     INFO - E         - (400, 500)
[task 2017-06-20T15:23:00.807044Z] 15:23:00     INFO - E         ?  ^    ^
[task 2017-06-20T15:23:00.807337Z] 15:23:00     INFO - E         + (500, 600)
[task 2017-06-20T15:23:00.807718Z] 15:23:00     INFO - E         ?  ^    ^
[task 2017-06-20T15:23:00.808053Z] 15:23:00     INFO - 
[task 2017-06-20T15:23:00.808332Z] 15:23:00     INFO - tests/web-platform/tests/webdriver/contexts.py:51: AssertionError
[task 2017-06-20T15:23:00.808947Z] 15:23:00     INFO - .
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s 9e1845b06926 -d f7af9bce9793: rebasing 402951:9e1845b06926 "Bug 1371405 - Simplify window commands for matches and the data they return; r=jgraham"
merging testing/geckodriver/src/marionette.rs
rebasing 402952:f9a0c0c95f79 "Bug 1371405 - Move to RectResponse aligning with the WebDriver crate; r=ato"
merging testing/geckodriver/src/marionette.rs
rebasing 402953:d846a05167dd "Bug 1371405: Update Cookie handling code to align with WebDriver crate; r=ato"
merging testing/geckodriver/src/marionette.rs
rebasing 402954:c4472beca40c "Bug 1371405 - Update vendored WebDriver crate; r=jgraham" (tip)
merging testing/geckodriver/Cargo.lock
merging testing/geckodriver/Cargo.toml
merging third_party/rust/cookie/.cargo-checksum.json
merging third_party/rust/cookie/Cargo.toml
merging third_party/rust/cookie/README.md
merging third_party/rust/cookie/src/builder.rs
merging third_party/rust/cookie/src/jar.rs
merging third_party/rust/cookie/src/lib.rs
merging third_party/rust/cookie/src/parse.rs
merging third_party/rust/webdriver/.cargo-checksum.json
merging third_party/rust/webdriver/Cargo.toml
merging third_party/rust/webdriver/src/response.rs
warning: conflicts while merging third_party/rust/cookie/.cargo-checksum.json! (edit, then use 'hg resolve --mark')
warning: conflicts while merging third_party/rust/webdriver/.cargo-checksum.json! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s 3c0524c30e08 -d f7af9bce9793: rebasing 403003:3c0524c30e08 "Bug 1371405 - Simplify window commands for matches and the data they return; r=jgraham"
merging testing/geckodriver/src/marionette.rs
rebasing 403004:d4d06e58c9fb "Bug 1371405 - Move to RectResponse aligning with the WebDriver crate; r=ato"
merging testing/geckodriver/src/marionette.rs
rebasing 403005:9324ed1315d2 "Bug 1371405: Update Cookie handling code to align with WebDriver crate; r=ato"
merging testing/geckodriver/src/marionette.rs
rebasing 403006:c3113f2282c3 "Bug 1371405 - Update vendored WebDriver crate; r=jgraham" (tip)
merging testing/geckodriver/Cargo.lock
merging testing/geckodriver/Cargo.toml
merging third_party/rust/cookie/.cargo-checksum.json
merging third_party/rust/cookie/Cargo.toml
merging third_party/rust/cookie/README.md
merging third_party/rust/cookie/src/builder.rs
merging third_party/rust/cookie/src/jar.rs
merging third_party/rust/cookie/src/lib.rs
merging third_party/rust/cookie/src/parse.rs
merging third_party/rust/webdriver/.cargo-checksum.json
merging third_party/rust/webdriver/Cargo.toml
merging third_party/rust/webdriver/src/response.rs
warning: conflicts while merging third_party/rust/cookie/.cargo-checksum.json! (edit, then use 'hg resolve --mark')
warning: conflicts while merging third_party/rust/webdriver/.cargo-checksum.json! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Pushed by dburns@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ed0db5cf371b
Simplify window commands for matches and the data they return; r=jgraham
https://hg.mozilla.org/integration/autoland/rev/b6a2dca14f02
Move to RectResponse aligning with the WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/20a4ef2a0e41
Update Cookie handling code to align with WebDriver crate; r=ato
https://hg.mozilla.org/integration/autoland/rev/7eeebffbdc3e
Update vendored WebDriver crate; r=jgraham
Flags: needinfo?(dburns)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: