Commit 4bd261aa authored by changwan's avatar changwan Committed by Commit bot

This is the necessary change in the upstream to fix the issue.

Pipe DidStartNavigationToPendingEntry to WebContentsObserver and TabObserver.

BUG=442726

Review URL: https://codereview.chromium.org/877163005

Cr-Commit-Position: refs/heads/master@{#313866}
parent c77b18bf
...@@ -108,6 +108,9 @@ public class EmptyTabObserver implements TabObserver { ...@@ -108,6 +108,9 @@ public class EmptyTabObserver implements TabObserver {
@Override @Override
public void onDidDetachInterstitialPage(Tab tab) { } public void onDidDetachInterstitialPage(Tab tab) { }
@Override
public void onDidStartNavigationToPendingEntry(Tab tab, String url) { }
@Override @Override
public void onBackgroundColorChanged(Tab tab, int color) { } public void onBackgroundColorChanged(Tab tab, int color) { }
......
...@@ -578,6 +578,13 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, ...@@ -578,6 +578,13 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
observer.onDidDetachInterstitialPage(Tab.this); observer.onDidDetachInterstitialPage(Tab.this);
} }
} }
@Override
public void didStartNavigationToPendingEntry(String url) {
for (TabObserver observer : mObservers) {
observer.onDidStartNavigationToPendingEntry(Tab.this, url);
}
}
} }
/** /**
......
...@@ -260,6 +260,8 @@ public interface TabObserver { ...@@ -260,6 +260,8 @@ public interface TabObserver {
*/ */
public void onDidDetachInterstitialPage(Tab tab); public void onDidDetachInterstitialPage(Tab tab);
public void onDidStartNavigationToPendingEntry(Tab tab, String url);
/** /**
* Called when the background color for the tab has changed. * Called when the background color for the tab has changed.
* @param tab The notifying {@link Tab}. * @param tab The notifying {@link Tab}.
......
...@@ -335,6 +335,20 @@ void WebContentsObserverAndroid::DidFirstVisuallyNonEmptyPaint() { ...@@ -335,6 +335,20 @@ void WebContentsObserverAndroid::DidFirstVisuallyNonEmptyPaint() {
env, obj.obj()); env, obj.obj());
} }
void WebContentsObserverAndroid::DidStartNavigationToPendingEntry(
const GURL& url,
NavigationController::ReloadType reload_type) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
if (obj.is_null())
return;
ScopedJavaLocalRef<jstring> jstring_url(
ConvertUTF8ToJavaString(env, url.spec()));
Java_WebContentsObserver_didStartNavigationToPendingEntry(env, obj.obj(),
jstring_url.obj());
}
bool RegisterWebContentsObserverAndroid(JNIEnv* env) { bool RegisterWebContentsObserverAndroid(JNIEnv* env) {
return RegisterNativesImpl(env); return RegisterNativesImpl(env);
} }
......
...@@ -32,46 +32,45 @@ class WebContentsObserverAndroid : public WebContentsObserver { ...@@ -32,46 +32,45 @@ class WebContentsObserverAndroid : public WebContentsObserver {
void Destroy(JNIEnv* env, jobject obj); void Destroy(JNIEnv* env, jobject obj);
private: private:
virtual void RenderViewReady() override; void RenderViewReady() override;
virtual void RenderProcessGone( void RenderProcessGone(base::TerminationStatus termination_status) override;
base::TerminationStatus termination_status) override; void DidStartLoading(RenderViewHost* render_view_host) override;
virtual void DidStartLoading(RenderViewHost* render_view_host) override; void DidStopLoading(RenderViewHost* render_view_host) override;
virtual void DidStopLoading(RenderViewHost* render_view_host) override; void DidFailProvisionalLoad(RenderFrameHost* render_frame_host,
virtual void DidFailProvisionalLoad( const GURL& validated_url,
RenderFrameHost* render_frame_host, int error_code,
const GURL& validated_url, const base::string16& error_description) override;
int error_code, void DidFailLoad(RenderFrameHost* render_frame_host,
const base::string16& error_description) override; const GURL& validated_url,
virtual void DidFailLoad(RenderFrameHost* render_frame_host, int error_code,
const GURL& validated_url, const base::string16& error_description) override;
int error_code, void DidNavigateMainFrame(const LoadCommittedDetails& details,
const base::string16& error_description) override; const FrameNavigateParams& params) override;
virtual void DidNavigateMainFrame(const LoadCommittedDetails& details, void DidNavigateAnyFrame(RenderFrameHost* render_frame_host,
const FrameNavigateParams& params) override; const LoadCommittedDetails& details,
virtual void DidNavigateAnyFrame(RenderFrameHost* render_frame_host, const FrameNavigateParams& params) override;
const LoadCommittedDetails& details, void DocumentAvailableInMainFrame() override;
const FrameNavigateParams& params) override; void DidFirstVisuallyNonEmptyPaint() override;
virtual void DocumentAvailableInMainFrame() override; void DidStartProvisionalLoadForFrame(RenderFrameHost* render_frame_host,
virtual void DidFirstVisuallyNonEmptyPaint() override; const GURL& validated_url,
virtual void DidStartProvisionalLoadForFrame( bool is_error_page,
RenderFrameHost* render_frame_host, bool is_iframe_srcdoc) override;
const GURL& validated_url, void DidCommitProvisionalLoadForFrame(
bool is_error_page,
bool is_iframe_srcdoc) override;
virtual void DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host, RenderFrameHost* render_frame_host,
const GURL& url, const GURL& url,
ui::PageTransition transition_type) override; ui::PageTransition transition_type) override;
virtual void DidFinishLoad(RenderFrameHost* render_frame_host, void DidFinishLoad(RenderFrameHost* render_frame_host,
const GURL& validated_url) override; const GURL& validated_url) override;
virtual void DocumentLoadedInFrame( void DocumentLoadedInFrame(RenderFrameHost* render_frame_host) override;
RenderFrameHost* render_frame_host) override; void NavigationEntryCommitted(
virtual void NavigationEntryCommitted(
const LoadCommittedDetails& load_details) override; const LoadCommittedDetails& load_details) override;
virtual void WebContentsDestroyed() override; void WebContentsDestroyed() override;
virtual void DidAttachInterstitialPage() override; void DidAttachInterstitialPage() override;
virtual void DidDetachInterstitialPage() override; void DidDetachInterstitialPage() override;
virtual void DidChangeThemeColor(SkColor color) override; void DidChangeThemeColor(SkColor color) override;
void DidStartNavigationToPendingEntry(
const GURL& url,
NavigationController::ReloadType reload_type) override;
void DidFailLoadInternal(bool is_provisional_load, void DidFailLoadInternal(bool is_provisional_load,
bool is_main_frame, bool is_main_frame,
......
...@@ -195,6 +195,14 @@ public abstract class WebContentsObserver { ...@@ -195,6 +195,14 @@ public abstract class WebContentsObserver {
public void didChangeThemeColor(int color) { public void didChangeThemeColor(int color) {
} }
/**
* Called when we started navigation to the pending entry.
* @param url The URL that we are navigating to.
*/
@CalledByNative
public void didStartNavigationToPendingEntry(String url) {
}
/** /**
* Destroy the corresponding native object. * Destroy the corresponding native object.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment