Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Unified Diff: content/public/android/java/src/org/chromium/content_public/browser/NavigationHandle.java

Issue 2598163002: WebContentsObserver update for PlzNavigate methods (Closed)
Patch Set: Fixed AwWebContentsObserver Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content_public/browser/NavigationHandle.java
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/NavigationHandle.java b/content/public/android/java/src/org/chromium/content_public/browser/NavigationHandle.java
new file mode 100644
index 0000000000000000000000000000000000000000..b223f6aacaef625529676b67bd58efa862e77399
--- /dev/null
+++ b/content/public/android/java/src/org/chromium/content_public/browser/NavigationHandle.java
@@ -0,0 +1,107 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.content_public.browser;
+
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNINamespace;
+import org.chromium.ui.base.PageTransition;
+
+/**
+ * Represents a bundle of information related to a single navigation. NavigationHandles are provided
+ * to several WebContentsObserver methods to allow observers to track specific navigations.
+ */
+@JNINamespace("content")
+public class NavigationHandle {
+ private final String mUrl;
+ private final String mValidatedUrl;
+ private final boolean mIsInMainFrame;
+ private final boolean mIsSamePage;
+ private final int mPageTransition;
+ private final boolean mHasCommitted;
+ private final boolean mIsErrorPage;
+
+ @CalledByNative
+ public static NavigationHandle createNavigationHandle(String url, String validatedUrl,
+ boolean isInMainFrame, boolean isSamePage, int pageTransition, boolean hasCommitted,
+ boolean isErrorPage) {
+ return new NavigationHandle(url, validatedUrl, isInMainFrame, isSamePage, pageTransition,
+ hasCommitted, isErrorPage);
+ }
+
+ /**
+ * Default constructor.
+ */
Maria 2016/12/27 19:31:10 nit: How about a comment about this being construc
+ public NavigationHandle(String url, String validatedUrl, boolean isInMainFrame,
Maria 2016/12/27 19:31:10 I would make this private since nothing on the Jav
+ boolean isSamePage, int pageTransition, boolean hasCommitted, boolean isErrorPage) {
+ this.mUrl = url;
+ this.mValidatedUrl = validatedUrl;
+ this.mIsInMainFrame = isInMainFrame;
+ this.mIsSamePage = isSamePage;
+ this.mPageTransition = pageTransition;
+ this.mHasCommitted = hasCommitted;
+ this.mIsErrorPage = isErrorPage;
+ }
+
+ /**
+ * @return The URL the frame is navigating to.
+ */
+ public String getURL() {
+ return mUrl;
+ }
+
+ /**
+ * @return The validated URL for the navigation.
+ */
+ public String getValidatedURL() {
+ return mValidatedUrl;
+ }
+
+ /**
+ * @return Whether the navigation is happening in the main frame or in a subframe.
+ */
+ public boolean isInMainFrame() {
+ return mIsInMainFrame;
+ }
+
+ /**
+ * Whether the navigation happened within the same page such as fragment navigations or
+ * pushState/replaceState.
+ * @return True if same page.
+ */
+ public boolean isSamePage() {
+ return mIsSamePage;
+ }
+
+ /**
+ * @return Page Transition type associated.
+ */
+ public int getPageTransition() {
+ return mPageTransition;
+ }
+
+ /**
+ * Whether the navigation has committed.
+ * @return True for successful commits or error pages that replace the previous page.
+ * False for errors that leave the user on the previous page.
+ */
+ public boolean hasCommitted() {
+ return mHasCommitted;
+ }
+
+ /**
+ * Whether the navigation resulted in an error page.
+ * @return True if the result is an error page.
+ */
+ public boolean isErrorPage() {
+ return mIsErrorPage;
+ }
+
+ /**
+ * @return Whether or not the navigation is a reload.
+ */
+ public boolean isReload() {
+ return mPageTransition == PageTransition.RELOAD;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698