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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/Tab.java

Issue 666673009: Removing NavigationClient dependencies from Tab. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated doxygen comments. Created 6 years, 2 months 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: chrome/android/java/src/org/chromium/chrome/browser/Tab.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
index c48ba357ee14a3315c78c1992b0d229fc44ec15d..12b70df9e007868e16aab943e00ca9e4042133fa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
@@ -13,7 +13,6 @@ import android.view.View;
import org.chromium.base.CalledByNative;
import org.chromium.base.ObserverList;
-import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager;
@@ -31,9 +30,10 @@ import org.chromium.chrome.browser.toolbar.ToolbarModel;
import org.chromium.content.browser.ContentView;
import org.chromium.content.browser.ContentViewClient;
import org.chromium.content.browser.ContentViewCore;
-import org.chromium.content.browser.NavigationClient;
import org.chromium.content.browser.WebContentsObserver;
import org.chromium.content_public.browser.LoadUrlParams;
+import org.chromium.content_public.browser.NavigationController;
+import org.chromium.content_public.browser.NavigationEntry;
import org.chromium.content_public.browser.NavigationHistory;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.Clipboard;
@@ -72,7 +72,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* unless special care is taken to make sure {@link Tab#incrementIdCounterTo(int)} is called with
* the correct value across all affected {@link Activity}s.
*/
-public class Tab implements NavigationClient {
+public class Tab implements NavigationController {
Ted C 2014/10/22 17:41:33 We shouldn't be doing this. Some of these methods
Yaron 2014/10/22 17:54:04 Ya, I definitely agree with Ted here
AKVT 2014/10/23 13:34:27 Done. Thank you
AKVT 2014/10/23 13:34:27 Done. Thank you
public static final int INVALID_TAB_ID = -1;
/** Used for automatically generating tab ids. */
@@ -383,6 +383,7 @@ public class Tab implements NavigationClient {
/**
* @return Whether or not this tab has a previous navigation entry.
*/
+ @Override
public boolean canGoBack() {
return getWebContents() != null && getWebContents().getNavigationController().canGoBack();
}
@@ -390,6 +391,7 @@ public class Tab implements NavigationClient {
/**
* @return Whether or not this tab has a navigation entry after the current one.
*/
+ @Override
public boolean canGoForward() {
return getWebContents() != null && getWebContents().getNavigationController()
.canGoForward();
@@ -398,6 +400,7 @@ public class Tab implements NavigationClient {
/**
* Goes to the navigation entry before the current one.
*/
+ @Override
public void goBack() {
if (getWebContents() != null) getWebContents().getNavigationController().goBack();
}
@@ -405,6 +408,7 @@ public class Tab implements NavigationClient {
/**
* Goes to the navigation entry after the current one.
*/
+ @Override
public void goForward() {
if (getWebContents() != null) getWebContents().getNavigationController().goForward();
}
@@ -427,8 +431,19 @@ public class Tab implements NavigationClient {
}
/**
+ * @return The pending {@link NavigationEntry} for this tab or {@code null} if none
+ * exists.
+ */
+ @Override
+ public NavigationEntry getPendingEntry() {
+ if (getWebContents() == null) return null;
+ return getWebContents().getNavigationController().getPendingEntry();
+ }
+
+ /**
* Loads the current navigation if there is a pending lazy load (after tab restore).
*/
+ @Override
public void loadIfNecessary() {
if (getWebContents() != null) getWebContents().getNavigationController().loadIfNecessary();
}
@@ -436,7 +451,8 @@ public class Tab implements NavigationClient {
/**
* Requests the current navigation to be loaded upon the next call to loadIfNecessary().
*/
- protected void requestRestoreLoad() {
+ @Override
+ public void requestRestoreLoad() {
if (getWebContents() != null) {
getWebContents().getNavigationController().requestRestoreLoad();
}
@@ -447,33 +463,93 @@ public class Tab implements NavigationClient {
* @param params parameters describing the url load. Note that it is important to set correct
* page transition as it is used for ranking URLs in the history so the omnibox
* can report suggestions correctly.
- * @return FULL_PRERENDERED_PAGE_LOAD or PARTIAL_PRERENDERED_PAGE_LOAD if the page has been
- * prerendered. DEFAULT_PAGE_LOAD if it had not.
- */
- public int loadUrl(LoadUrlParams params) {
- TraceEvent.begin();
-
- // We load the URL from the tab rather than directly from the ContentView so the tab has a
- // chance of using a prerenderer page is any.
- int loadType = nativeLoadUrl(
- mNativeTabAndroid,
- params.getUrl(),
- params.getVerbatimHeaders(),
- params.getPostData(),
- params.getTransitionType(),
- params.getReferrer() != null ? params.getReferrer().getUrl() : null,
- // Policy will be ignored for null referrer url, 0 is just a placeholder.
- // TODO(ppi): Should we pass Referrer jobject and add JNI methods to read it from
- // the native?
- params.getReferrer() != null ? params.getReferrer().getPolicy() : 0,
- params.getIsRendererInitiated());
-
- TraceEvent.end();
+ */
+ @Override
+ public void loadUrl(LoadUrlParams params) {
+ if (getWebContents() != null) getWebContents().getNavigationController().loadUrl(params);
+ }
- for (TabObserver observer : mObservers) {
- observer.onLoadUrl(this, params.getUrl(), loadType);
+ /**
+ * Clears SSL preferences for this Tab.
+ */
+ @Override
+ public void clearSslPreferences() {
+ if (getWebContents() != null) {
+ getWebContents().getNavigationController().clearSslPreferences();
+ }
+ }
+
+ /**
+ * Get Original URL for current Navigation entry of Tab.
+ * @return The original request URL for the current navigation entry, or null if there is no
+ * current entry.
+ */
+ @Override
+ public String getOriginalUrlForVisibleNavigationEntry() {
+ if (getWebContents() == null) return null;
+ return getWebContents().getNavigationController()
+ .getOriginalUrlForVisibleNavigationEntry();
+ }
+
+ /**
+ * Get a copy of the navigation history of NavigationController.
+ * @return navigation history of Tab.
+ */
+ @Override
+ public NavigationHistory getNavigationHistory() {
+ if (getWebContents() == null) return null;
+ return getWebContents().getNavigationController().getNavigationHistory();
+ }
+
+ /**
+ * Clears Tab's page history in both backwards and
+ * forwards directions.
+ */
+ @Override
+ public void clearHistory() {
+ if (getWebContents() != null) getWebContents().getNavigationController().clearHistory();
+ }
+
+ /**
+ * Continue the pending reload.
+ */
+ @Override
+ public void continuePendingReload() {
+ if (getWebContents() != null) {
+ getWebContents().getNavigationController().continuePendingReload();
+ }
+ }
+
+ /**
+ * Cancel the pending reload.
+ */
+ @Override
+ public void cancelPendingReload() {
+ if (getWebContents() != null) {
+ getWebContents().getNavigationController().continuePendingReload();
+ }
+ }
+
+ /**
+ * @param offset The offset into the navigation history.
+ * @return Whether we can move in history by given offset
+ */
+ @Override
+ public boolean canGoToOffset(int offset) {
+ if (getWebContents() == null) return false;
+ return getWebContents().getNavigationController().canGoToOffset(offset);
+ }
+
+ /**
+ * Navigates to the specified offset from the "current entry". Does nothing if the offset is
+ * out of bounds.
+ * @param offset The offset into the navigation history.
+ */
+ @Override
+ public void goToOffset(int offset) {
+ if (getWebContents() != null) {
+ getWebContents().getNavigationController().goToOffset(offset);
}
- return loadType;
}
/**
@@ -557,18 +633,22 @@ public class Tab implements NavigationClient {
/**
* Reloads the current page content.
*/
- public void reload() {
+ @Override
+ public void reload(boolean checkForRepost) {
// TODO(dtrainor): Should we try to rebuild the ContentView if it's frozen?
- if (getWebContents() != null) getWebContents().getNavigationController().reload(true);
+ if (getWebContents() != null) {
+ getWebContents().getNavigationController().reload(checkForRepost);
+ }
}
/**
* Reloads the current page content.
* This version ignores the cache and reloads from the network.
*/
- public void reloadIgnoringCache() {
+ @Override
+ public void reloadIgnoringCache(boolean checkForRepost) {
if (getWebContents() != null) {
- getWebContents().getNavigationController().reloadIgnoringCache(true);
+ getWebContents().getNavigationController().reloadIgnoringCache(checkForRepost);
}
}
@@ -648,6 +728,7 @@ public class Tab implements NavigationClient {
* @param useDesktop If {@code true}, use a desktop user agent. Otherwise use a mobile one.
* @param reloadOnChange Reload the page if the user agent has changed.
*/
+ @Override
public void setUseDesktopUserAgent(boolean useDesktop, boolean reloadOnChange) {
if (getWebContents() != null) {
getWebContents().getNavigationController()
@@ -658,6 +739,7 @@ public class Tab implements NavigationClient {
/**
* @return Whether or not the {@link ContentViewCore} is using a desktop user agent.
*/
+ @Override
public boolean getUseDesktopUserAgent() {
return getWebContents() != null && getWebContents().getNavigationController()
.getUseDesktopUserAgent();

Powered by Google App Engine
This is Rietveld 408576698