New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 783506 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

Generic navigation token for navigation traceability between layers

Project Member Reported by pfeldman@chromium.org, Nov 10 2017

Issue description

Automation drivers such as WebDriver and attribution services such as UKM require navigation traceability. There should be a way to tell which document has been created as a result of which navigation. It should be possible to say which document lifecycle events are caused by which navigation, etc.
 

Comment 1 by kozy@chromium.org, Nov 10 2017

Cc: caseq@chromium.org lushnikov@chromium.org
Owner: pfeldman@chromium.org
Status: Assigned (was: Unconfirmed)
Should we assign this issue?

Comment 2 by creis@chromium.org, Nov 10 2017

Cc: clamy@chromium.org creis@chromium.org dcheng@chromium.org
Components: UI>Browser>Navigation
Is this bug for the longer-term TODO of having navigation provide this token, or for the shorter-term work in https://chromium-review.googlesource.com/c/chromium/src/+/747805 for having a DevTools-specific one?  (That affects who it should be assigned to.)  :)
Owner: ----
Status: Available (was: Assigned)
Ah, it got into our triage process.

This should be a longer term bug that Charlie and Daniel would own.
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f20fc9d81712fa570e8ce581353a47cce19f0607

commit f20fc9d81712fa570e8ce581353a47cce19f0607
Author: Pavel Feldman <pfeldman@chromium.org>
Date: Fri Nov 17 09:13:30 2017

DevTools: introduce the devtools_navigation_token and plumb it from the browser into renderer.

For automation, driver-initiated navigations over the devtools protocol,
|devtools_navigation_token| is used to tag the navigation. This navigation
token lands on the DocumentLoader instance in Blink. This way subsequent Blink-level
frame lifecycle events can be associated this navigation.

At this point, navigation token can be generated both, on the browser and on the
renderer side. But it is never sent from the renderer to the browser as a part
of the IPC message or mojo call. Eventually, it might be replaced with the token
reliably generated on the browser side that would be able to cross the renderer-
browser boundary.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I30f374a11660d4c5323063a9b2caa07ec64b1ef5
Bug:  783506 
Reviewed-on: https://chromium-review.googlesource.com/747805
Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517348}
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/common/frame.mojom
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/renderer/render_frame_impl.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/test/test_render_frame.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/content/test/test_render_frame_host.cc
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/DEPS
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/exported/WebFrameTest.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/inspector/IdentifiersFactory.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/inspector/IdentifiersFactory.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/loader/DocumentLoader.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/loader/FrameLoadRequest.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/loader/FrameLoadRequest.h
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/Source/core/loader/FrameLoader.cpp
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/public/DEPS
[modify] https://crrev.com/f20fc9d81712fa570e8ce581353a47cce19f0607/third_party/WebKit/public/web/WebLocalFrame.h

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3

commit 6ad0a6e52cd2efbe42a71db2408ea557eb5000f3
Author: Pavel Feldman <pfeldman@chromium.org>
Date: Sat Nov 18 03:47:47 2017

DevTools: pass devtools_navigation_token into DocumentLoader constructors / factories.

This change does not change the semantics, only plumbs the token through the
constructor instead of a separate setter.

Change-Id: I85151adfb4fe3817954f85517ccc8d2ccdc1de38
Bug:  783506 
Reviewed-on: https://chromium-review.googlesource.com/764554
Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517697}
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.cpp
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.h
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/exported/WebDocumentLoaderImpl.cpp
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/exported/WebDocumentLoaderImpl.h
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/DocumentLoader.h
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/FrameLoader.cpp
[modify] https://crrev.com/6ad0a6e52cd2efbe42a71db2408ea557eb5000f3/third_party/WebKit/Source/core/loader/FrameLoader.h

Status: Fixed (was: Available)

Sign in to add a comment