Closed Bug 1610377 Opened 4 years ago Closed 4 years ago

Intermittent remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index - Got 2, expected 0

Categories

(Remote Protocol :: Agent, defect, P1)

Unspecified
All
defect

Tracking

(firefox-esr68 unaffected, firefox73 unaffected, firefox74 disabled, firefox75 fixed)

RESOLVED FIXED
Firefox 75
Tracking Status
firefox-esr68 --- unaffected
firefox73 --- unaffected
firefox74 --- disabled
firefox75 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: whimboo)

References

(Regression)

Details

(Keywords: intermittent-failure, Whiteboard: [puppeteer-beta-mvp][stockwell needswork:owner])

Attachments

(2 files, 1 obsolete file)

Filed by: rmaries [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=285674373&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/ENUxK_TpTB-1C5ahm-ZXYg/runs/0/artifacts/public/logs/live_backing.log


[task 2020-01-20T20:31:16.910Z] 20:31:16 INFO - TEST-START | remote/test/browser/page/browser_getNavigationHistory.js
[task 2020-01-20T20:31:18.841Z] 20:31:18 INFO - TEST-INFO | started process screentopng
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-INFO | screentopng: exit 0
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - Buffered messages logged at 20:31:16
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - Entering test bound singleEntry
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - CDP server started
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - Buffered messages logged at 20:31:17
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - CDP client instantiated
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.170Z] 20:31:19 INFO - CDP client closed
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - CDP server stopped
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - Leaving test bound singleEntry
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - Entering test bound multipleEntriesWithLastIndex
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - CDP server started
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - CDP client instantiated
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - Buffered messages logged at 20:31:18
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - CDP client closed
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - CDP server stopped
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - Leaving test bound multipleEntriesWithLastIndex
[task 2020-01-20T20:31:19.171Z] 20:31:19 INFO - Entering test bound multipleEntriesWithFirstIndex
[task 2020-01-20T20:31:19.174Z] 20:31:19 INFO - CDP server started
[task 2020-01-20T20:31:19.174Z] 20:31:19 INFO - CDP client instantiated
[task 2020-01-20T20:31:19.174Z] 20:31:19 INFO - Buffered messages finished
[task 2020-01-20T20:31:19.175Z] 20:31:19 INFO - TEST-UNEXPECTED-FAIL | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index - Got 2, expected 0
[task 2020-01-20T20:31:19.175Z] 20:31:19 INFO - Stack trace:
[task 2020-01-20T20:31:19.176Z] 20:31:19 INFO - chrome://mochikit/content/browser-test.js:test_is:1320
[task 2020-01-20T20:31:19.176Z] 20:31:19 INFO - chrome://mochitests/content/browser/remote/test/browser/page/head.js:assertHistoryEntries:16
[task 2020-01-20T20:31:19.176Z] 20:31:19 INFO - chrome://mochitests/content/browser/remote/test/browser/page/browser_getNavigationHistory.js:multipleEntriesWithFirstIndex:41
[task 2020-01-20T20:31:19.176Z] 20:31:19 INFO - chrome://mochitests/content/browser/remote/test/browser/head.js:fn:67
[task 2020-01-20T20:31:19.176Z] 20:31:19 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1062
[task 2020-01-20T20:31:19.177Z] 20:31:19 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1097
[task 2020-01-20T20:31:19.177Z] 20:31:19 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:925
[task 2020-01-20T20:31:19.177Z] 20:31:19 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:808
[task 2020-01-20T20:31:19.178Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-20T20:31:19.178Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.179Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.179Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.182Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.182Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.184Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.184Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.184Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.185Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.185Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.185Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.186Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.187Z] 20:31:19 INFO - CDP client closed
[task 2020-01-20T20:31:19.187Z] 20:31:19 INFO - CDP server stopped
[task 2020-01-20T20:31:19.187Z] 20:31:19 INFO - Leaving test bound multipleEntriesWithFirstIndex
[task 2020-01-20T20:31:19.188Z] 20:31:19 INFO - Entering test bound locationRedirect
[task 2020-01-20T20:31:19.188Z] 20:31:19 INFO - CDP server started
[task 2020-01-20T20:31:19.465Z] 20:31:19 INFO - CDP client instantiated
[task 2020-01-20T20:31:19.587Z] 20:31:19 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://example.com/browser/remote/test/browser/page/doc_empty.html" line: 0}]
[task 2020-01-20T20:31:19.627Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-20T20:31:19.629Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-20T20:31:19.632Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-20T20:31:19.632Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-20T20:31:19.632Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-20T20:31:19.634Z] 20:31:19 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-20T20:31:19.662Z] 20:31:19 INFO - CDP client closed
[task 2020-01-20T20:31:19.679Z] 20:31:19 INFO - CDP server stopped
[task 2020-01-20T20:31:19.679Z] 20:31:19 INFO - Leaving test bound locationRedirect
[task 2020-01-20T20:31:19.691Z] 20:31:19 INFO - GECKO(3495) | MEMORY STAT | vsize 3103MB | residentFast 414MB | heapAllocated 164MB
[task 2020-01-20T20:31:19.691Z] 20:31:19 INFO - TEST-OK | remote/test/browser/page/browser_getNavigationHistory.js | took 2774ms
[task 2020-01-20T20:31:19.700Z] 20:31:19 INFO - checking window state

Navigation to the first history index hasn't been finished as it looks like. Maybe on some systems gBrowser.gotoIndex() is asynchronous? None of the other browser chrome tests actually use a promise here for waiting.

Fixing this failure should also fix the other failures (see dependency list).

Blocks: 1610374, 1610378

This also looks to be Linux only, so I will have to take a look at it tomorrow.

OS: Unspecified → Linux
Blocks: 1609156
OS: Linux → All

This actually fails a lot over the last two days. So I'm going to have a look at.

Assignee: nobody → hskupin
Priority: P5 → P1
Whiteboard: [puppeteer-beta-mvp]
Status: NEW → ASSIGNED
Regressed by: 1609163

I just saw the comment from Nika about possibly deprecating the docShell.gotoIndex() API. So the change as proposed here wouldn't be ideal.

Nika, which API should be used instead? Is it gBrowser.gotoIndex(), or would that also be affected? Also for which kind of event I would have to wait for in the parent process to ensure that the command has been finished? Thanks.

Flags: needinfo?(nika)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #5)

I just saw the comment from Nika about possibly deprecating the docShell.gotoIndex() API. So the change as proposed here wouldn't be ideal.

Nika, which API should be used instead? Is it gBrowser.gotoIndex(), or would that also be affected?

I would not recommend making this change as it is written, as it's not compatible with the changes we're planning to do with Session History for Fission (see bug 1467221 and it's blockers). The gBrowser.gotoIndex API is unlikely to be affected by these changes, as it already exists only in the parent process, and can be rewired internally to call our new in-parent APIs as we move session history state into the parent.

The operation of navigating a document, either through history or otherwise, is fundamentally asynchronous, as we may have to perform network requests, and likely need to talk to the content process, so you'll definitely need to add code to wait for the history navigation to complete.

Also for which kind of event I would have to wait for in the parent process to ensure that the command has been finished? Thanks.

I don't know off the top of my head if there is a specific event to listen to. History navigations can vary a lot in how they are actually executed, as the document could be (off the top of my head): an anchor navigation, a pushstate navigation, a bfcache restore, a network load, a subframe (pushstate,anchor,load), or a combination of any of the above. Any of these requests could also end up being canceled, and never complete.

For specific test cases, it's possible to know the correct type of event to wait for, and wait for it, but in general it's hard to know exactly what type of navigation will be performed. I'll ni? :smaug in case he knows of a good way, though.

AFAICT this is for use in the remote debugger API, which I'm not familiar with the definition for. Is it necessary for this API to wait for the load to complete? I would expect this and other navigation APIs to start the navigation, but not wait for the document to be fully navigated, like the web-exposed history.go(...) API.

FYI, the session history information which you're reading from the content process is already somewhat available in the parent using Session Restore, which is how things such as a long press on the back button are handled. In the future, we are planning to not have this information available in child processes at all. It would be better to avoid reading this information from the content process if possible.

Flags: needinfo?(nika) → needinfo?(bugs)

There are 48 total failures in the last 7 days on

  • linux1804-64 debug and opt
  • linux1804-64-asan opt
  • macosx1014-64 debug (2 failures)
  • windows7-32 debug (5 failures)
  • windows7-32-shippable opt (8 failures)

Recent failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=286517358&repo=autoland&lineNumber=2391

[task 2020-01-26T06:04:12.277Z] 06:04:12 INFO - TEST-START | remote/test/browser/page/browser_getNavigationHistory.js
[task 2020-01-26T06:04:13.957Z] 06:04:13 INFO - TEST-INFO | started process screentopng
[task 2020-01-26T06:04:14.270Z] 06:04:14 INFO - TEST-INFO | screentopng: exit 0
[task 2020-01-26T06:04:14.270Z] 06:04:14 INFO - Buffered messages logged at 06:04:12
[task 2020-01-26T06:04:14.271Z] 06:04:14 INFO - Entering test bound singleEntry
[task 2020-01-26T06:04:14.271Z] 06:04:14 INFO - CDP server started
[task 2020-01-26T06:04:14.272Z] 06:04:14 INFO - CDP client instantiated
[task 2020-01-26T06:04:14.273Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-26T06:04:14.273Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-26T06:04:14.274Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.275Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.275Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.276Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.276Z] 06:04:14 INFO - CDP client closed
[task 2020-01-26T06:04:14.278Z] 06:04:14 INFO - CDP server stopped
[task 2020-01-26T06:04:14.278Z] 06:04:14 INFO - Leaving test bound singleEntry
[task 2020-01-26T06:04:14.279Z] 06:04:14 INFO - Entering test bound multipleEntriesWithLastIndex
[task 2020-01-26T06:04:14.279Z] 06:04:14 INFO - CDP server started
[task 2020-01-26T06:04:14.280Z] 06:04:14 INFO - Buffered messages logged at 06:04:13
[task 2020-01-26T06:04:14.280Z] 06:04:14 INFO - CDP client instantiated
[task 2020-01-26T06:04:14.281Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-26T06:04:14.282Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-26T06:04:14.284Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.285Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.285Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.286Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.286Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.287Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.287Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.288Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.288Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.289Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.289Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.290Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.291Z] 06:04:14 INFO - CDP client closed
[task 2020-01-26T06:04:14.292Z] 06:04:14 INFO - CDP server stopped
[task 2020-01-26T06:04:14.292Z] 06:04:14 INFO - Leaving test bound multipleEntriesWithLastIndex
[task 2020-01-26T06:04:14.293Z] 06:04:14 INFO - Entering test bound multipleEntriesWithFirstIndex
[task 2020-01-26T06:04:14.293Z] 06:04:14 INFO - CDP server started
[task 2020-01-26T06:04:14.294Z] 06:04:14 INFO - CDP client instantiated
[task 2020-01-26T06:04:14.294Z] 06:04:14 INFO - Buffered messages finished
[task 2020-01-26T06:04:14.296Z] 06:04:14 INFO - TEST-UNEXPECTED-FAIL | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index - Got 2, expected 0
[task 2020-01-26T06:04:14.296Z] 06:04:14 INFO - Stack trace:
[task 2020-01-26T06:04:14.297Z] 06:04:14 INFO - chrome://mochikit/content/browser-test.js:test_is:1320
[task 2020-01-26T06:04:14.297Z] 06:04:14 INFO - chrome://mochitests/content/browser/remote/test/browser/page/head.js:assertHistoryEntries:16
[task 2020-01-26T06:04:14.298Z] 06:04:14 INFO - chrome://mochitests/content/browser/remote/test/browser/page/browser_getNavigationHistory.js:multipleEntriesWithFirstIndex:41
[task 2020-01-26T06:04:14.298Z] 06:04:14 INFO - chrome://mochitests/content/browser/remote/test/browser/head.js:fn:67
[task 2020-01-26T06:04:14.299Z] 06:04:14 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1062
[task 2020-01-26T06:04:14.299Z] 06:04:14 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1097
[task 2020-01-26T06:04:14.299Z] 06:04:14 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:925
[task 2020-01-26T06:04:14.300Z] 06:04:14 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:808
[task 2020-01-26T06:04:14.300Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-26T06:04:14.300Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.301Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.301Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.302Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.302Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.303Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.304Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.304Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.305Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.306Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.306Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.307Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.307Z] 06:04:14 INFO - CDP client closed
[task 2020-01-26T06:04:14.307Z] 06:04:14 INFO - CDP server stopped
[task 2020-01-26T06:04:14.307Z] 06:04:14 INFO - Leaving test bound multipleEntriesWithFirstIndex
[task 2020-01-26T06:04:14.307Z] 06:04:14 INFO - Entering test bound locationRedirect
[task 2020-01-26T06:04:14.308Z] 06:04:14 INFO - CDP server started
[task 2020-01-26T06:04:14.456Z] 06:04:14 INFO - CDP client instantiated
[task 2020-01-26T06:04:14.553Z] 06:04:14 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://example.com/browser/remote/test/browser/page/doc_empty.html" line: 0}]
[task 2020-01-26T06:04:14.576Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Got expected current index -
[task 2020-01-26T06:04:14.577Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | Found expected count of history entries -
[task 2020-01-26T06:04:14.577Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has an id set -
[task 2020-01-26T06:04:14.578Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct URL set -
[task 2020-01-26T06:04:14.578Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct user typed URL set -
[task 2020-01-26T06:04:14.582Z] 06:04:14 INFO - TEST-PASS | remote/test/browser/page/browser_getNavigationHistory.js | History entry has the correct title set -
[task 2020-01-26T06:04:14.617Z] 06:04:14 INFO - CDP client closed
[task 2020-01-26T06:04:14.625Z] 06:04:14 INFO - CDP server stopped
[task 2020-01-26T06:04:14.626Z] 06:04:14 INFO - Leaving test bound locationRedirect
[task 2020-01-26T06:04:14.654Z] 06:04:14 INFO - GECKO(3538) | MEMORY STAT | vsize 3183MB | residentFast 405MB | heapAllocated 161MB
[task 2020-01-26T06:04:14.654Z] 06:04:14 INFO - TEST-OK | remote/test/browser/page/browser_getNavigationHistory.js | took 2380ms
[task 2020-01-26T06:04:14.694Z] 06:04:14 INFO - checking window state

Whiteboard: [puppeteer-beta-mvp] → [puppeteer-beta-mvp][stockwell needswork:owner]

(In reply to :Nika Layzell (ni? for response) from comment #6)

I would not recommend making this change as it is written, as it's not compatible with the changes we're planning to do with Session History for Fission (see bug 1467221 and it's blockers). The gBrowser.gotoIndex API is unlikely to be affected by these changes, as it already exists only in the parent process, and can be rewired internally to call our new in-parent APIs as we move session history state into the parent.

That is good to know. I will keep the code as is then.

AFAICT this is for use in the remote debugger API, which I'm not familiar with the definition for. Is it necessary for this API to wait for the load to complete? I would expect this and other navigation APIs to start the navigation, but not wait for the document to be fully navigated, like the web-

In this specific case it would be important to wait for the current index of history to have been updated. That is what we currently fail on. If there is no event I might have to poll for it.

FYI, the session history information which you're reading from the content process is already somewhat available in the parent using Session Restore, which is how things such as a long press on the back button are handled. In the future, we are planning to not have this information available in child processes at all. It would be better to avoid reading this information from the content process if possible.

Thanks. I would have to search how to get this information from. I would propose to make it a follow-up bug because it's not needed to fix this test failure.

I hope the links I gave on IRC were useful for this bug. If not, needinfo me again :)

Flags: needinfo?(bugs)

Update: this has 47 total failures in the last 7 days and 129 total failures in the last 30, most of them on linux1804-64 opt: https://treeherder.mozilla.org/intermittent-failures.html#/bugdetails?startday=2020-01-10&endday=2020-02-09&tree=trunk&bug=1610377
Recent failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=288084411&repo=autoland
Henrik, any updates on this? Thank you.

Flags: needinfo?(hskupin)

(In reply to Olli Pettay [:smaug] from comment #10)

I hope the links I gave on IRC were useful for this bug. If not, needinfo me again :)

Olli, due to a Catalina upgrade on my MBP I lost all the patches which were saved under .hg locally. Sadly this folder wasn't backuped. :/

Maybe you can remember what you proposed I should do here? Basically I now know that I have to do all the navigation in the parent process, and as such should also listen there for the page load events or by using a web progress listener. Whereby I might not have to wait for the page to be loaded, but only for the requested index in the history to be set.

Flags: needinfo?(bugs)

Short update. I was able to move all the code from the framescript into the parent process, and access the session history via SessionStore.getSessionHistory(). As such this code helps in making the remote agent more fission compatible.

I still have to check what to wait for in the parent process.

Flags: needinfo?(hskupin)

Checking the code of navigateToHistoryEntry in CDP, and the _go() method in Puppeteer, it is clear that this method doesn't wait for the navigation to be completed.

So I'm only updating the browser chrome tests, to wait for the right index to be set when using gBrowser.gotoIndex().

Flags: needinfo?(bugs)
Attachment #9122643 - Attachment is obsolete: true
Pushed by hskupin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6f15878925ca
[remote] Move session history navigation code into the parent process. r=remote-protocol-reviewers,maja_zf
https://hg.mozilla.org/integration/autoland/rev/d45350ccf8aa
[remote] Wait for history index selected when using gBrowser.gotoIndex(). r=remote-protocol-reviewers,maja_zf
Pushed by malexandru@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bf5ac2c3466b
Fix lint error in remote/test/browser/page/head.js a=lint-fix

No need to uplift AFAICT since this suite doesn't run on Beta.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: