New issue
Advanced search Search tips

Issue 676139 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug
Proj-Servicification

Blocking:
issue 673806
issue 674304



Sign in to add a comment

Update WebContentsObserver to have PlzNavigate methods

Project Member Reported by mariakho...@chromium.org, Dec 20 2016

Issue description

web_contents_observer.cc has new methods to watch navigation:

virtual void DidStartNavigation(NavigationHandle* navigation_handle) {}
virtual void DidRedirectNavigation(NavigationHandle* navigation_handle) {}
virtual void ReadyToCommitNavigation(NavigationHandle* navigation_handle) {}
virtual void DidFinishNavigation(NavigationHandle* navigation_handle) {}

they are a replacement for these deprecated methods that we currently watch in Java:

virtual void DidStartNavigationToPendingEntry(const GURL& url,
                                              ReloadType reload_type) {}
virtual void DidStartProvisionalLoadForFrame(
      RenderFrameHost* render_frame_host,
      const GURL& validated_url,
      bool is_error_page) {}
virtual void DidCommitProvisionalLoadForFrame(
      RenderFrameHost* render_frame_host,
      const GURL& url,
      ui::PageTransition transition_type) {}
virtual void DidFailProvisionalLoad(
      RenderFrameHost* render_frame_host,
      const GURL& validated_url,
      int error_code,
      const base::string16& error_description,
      bool was_ignored_by_handler) {}
virtual void DidNavigateMainFrame(
      const LoadCommittedDetails& details,
      const FrameNavigateParams& params) {}
virtual void DidNavigateAnyFrame(
      RenderFrameHost* render_frame_host,
      const LoadCommittedDetails& details,
      const FrameNavigateParams& params) {}

We need to update WebContentsObserver.java to provide API for observing web contents through new methods and update the current observers to use the new methods.

These methods should work correctly both with and without PlzNavigate feature enabled, but to test with PlzNavigate, use --enable-browser-side-navigation switch.

Also, here's the design doc for the new API: https://docs.google.com/document/d/1ICLLQoC9EsZ-bWH4ZKRhPCIoZKn6pOj02SlGl6SKH6Y/edit#heading=h.fmxjmgvbgg7x
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 7 2017

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

commit a4b7ae7967b24e8963eedc201171c34695d88f06
Author: shaktisahu <shaktisahu@chromium.org>
Date: Sat Jan 07 01:41:19 2017

WebContentsObserver and TabObserver update for PlzNavigate

This CL updates the WebContentsObserver and TabObserver interface to
add the new methods for PlzNavigate. The old and deprecated methods are
still there and will be removed in a subsequent CL including the usages
of the interface.

BUG= 676139 

Review-Url: https://codereview.chromium.org/2604543002
Cr-Commit-Position: refs/heads/master@{#442132}

[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/content/browser/android/web_contents_observer_proxy.cc
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/content/browser/android/web_contents_observer_proxy.h
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java
[modify] https://crrev.com/a4b7ae7967b24e8963eedc201171c34695d88f06/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java

Project Member

Comment 2 by bugdroid1@chromium.org, Feb 10 2017

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

commit 53e1c483fe44e3544dbd872911c2914777e992e6
Author: shaktisahu <shaktisahu@chromium.org>
Date: Fri Feb 10 07:42:07 2017

PlzNavigate: Chrome UI changes for new methods of WebContentsObserver

This CL hooks up the new WebContentsObserver and TabObserver methods
to the clank front-end and removes the old methods.

API cheat sheet: https://docs.google.com/document/d/1HTLT1PI2LiS7rh29eW2OSh2zG-xqFEynv-T7vn39OLc
Content Navigation design doc: https://docs.google.com/document/d/1ICLLQoC9EsZ-bWH4ZKRhPCIoZKn6pOj02SlGl6SKH6Y

BUG= 676139 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2642303002
Cr-Commit-Position: refs/heads/master@{#449562}

[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/android_webview/java/src/org/chromium/android_webview/AwWebContentsObserver.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/android_webview/javatests/src/org/chromium/android_webview/test/AwWebContentsObserverTest.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/customtabs/PostMessageHandler.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/browser/android/web_contents_observer_proxy.cc
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/browser/android/web_contents_observer_proxy.h
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/public/android/java/src/org/chromium/content_public/browser/WebContentsObserver.java
[modify] https://crrev.com/53e1c483fe44e3544dbd872911c2914777e992e6/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestWebContentsObserver.java

Comment 3 by jam@chromium.org, Feb 13 2017

Status: Fixed (was: Assigned)
Thank you!

Comment 4 by laforge@google.com, Nov 7 2017

Components: Internals>Network>Service

Comment 5 by laforge@google.com, Nov 7 2017

Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.

Sign in to add a comment