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

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

Issue 1283223004: Contextual Search Panel should own ContentViewCore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Override wrappers instead of native Created 5 years, 4 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/contextualsearch/ContextualSearchManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
index 26bbaf076e6d5af07989f944954bb9e6381a8bfc..f1ec78fa60e76a54ec2f032283be995bf1122539 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
@@ -51,7 +51,6 @@ import org.chromium.content.browser.ContextualSearchClient;
import org.chromium.content_public.browser.GestureStateListener;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.NavigationEntry;
-import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.content_public.common.ConsoleMessageLevel;
import org.chromium.content_public.common.TopControlsState;
@@ -94,7 +93,6 @@ public class ContextualSearchManager extends ContextualSearchObservable
private final ViewTreeObserver.OnGlobalFocusChangeListener mOnFocusChangeListener;
private final WindowAndroid mWindowAndroid;
- private ContentViewCore mSearchContentViewCore;
private WebContentsObserver mSearchWebContentsObserver;
private final WebContentsDelegateAndroid mWebContentsDelegate;
private ContextualSearchContentViewDelegate mSearchContentViewDelegate;
@@ -226,7 +224,7 @@ public class ContextualSearchManager extends ContextualSearchObservable
public void didAddTab(Tab tab, TabLaunchType type) {
// If we're in the process of promoting this tab, just return and don't mess with
// this state.
- if (tab.getContentViewCore() == mSearchContentViewCore) return;
+ if (tab.getContentViewCore() == mSearchPanelDelegate.getContentViewCore()) return;
hideContextualSearch(StateChangeReason.UNKNOWN);
}
};
@@ -745,8 +743,8 @@ public class ContextualSearchManager extends ContextualSearchObservable
// to coordinate with Chrome-Android folks to come up with a proper fix for this.
// For now, we force the ContentView to be displayed by calling onShow() again
// when a URL is being loaded. See: crbug.com/398206
- if (mIsSearchContentViewShowing && mSearchContentViewCore != null) {
- mSearchContentViewCore.onShow();
+ if (mIsSearchContentViewShowing && mSearchPanelDelegate.getContentViewCore() != null) {
+ mSearchPanelDelegate.getContentViewCore().onShow();
}
}
@@ -770,7 +768,7 @@ public class ContextualSearchManager extends ContextualSearchObservable
*/
@Override
public ContentViewCore getSearchContentViewCore() {
- return mSearchContentViewCore;
+ return mSearchPanelDelegate.getContentViewCore();
}
/**
@@ -786,8 +784,8 @@ public class ContextualSearchManager extends ContextualSearchObservable
*/
private void removeLastSearchVisit() {
if (mSearchRequest != null) {
- nativeRemoveLastSearchVisit(mNativeContextualSearchManagerPtr,
- mSearchRequest.getSearchUrl(), mLoadedSearchUrlTimeMs);
+ mSearchPanelDelegate.removeLastHistoryEntry(mSearchRequest.getSearchUrl(),
+ mLoadedSearchUrlTimeMs);
}
}
@@ -812,9 +810,9 @@ public class ContextualSearchManager extends ContextualSearchObservable
if (isFailure && mSearchRequest.isUsingLowPriority()) {
// We're navigating to an error page, so we want to stop and retry.
// Stop loading the page that displays the error to the user.
- if (mSearchContentViewCore != null) {
+ if (mSearchPanelDelegate.getContentViewCore() != null) {
// When running tests the Content View might not exist.
- mSearchContentViewCore.getWebContents().stop();
+ mSearchPanelDelegate.getContentViewCore().getWebContents().stop();
}
mSearchRequest.setHasFailed();
mSearchRequest.setNormalPriority();
@@ -847,7 +845,7 @@ public class ContextualSearchManager extends ContextualSearchObservable
* Creates a new Content View Core to display search results, if needed.
*/
private void createNewSearchContentViewCoreIfNeeded() {
- if (mSearchContentViewCore == null) {
+ if (mSearchPanelDelegate.getContentViewCore() == null) {
mNetworkCommunicator.createNewSearchContentView();
}
}
@@ -855,24 +853,25 @@ public class ContextualSearchManager extends ContextualSearchObservable
@Override
public void loadUrl(String url) {
createNewSearchContentViewCoreIfNeeded();
- if (mSearchContentViewCore != null && mSearchContentViewCore.getWebContents() != null) {
+ if (mSearchPanelDelegate.getContentViewCore() != null
+ && mSearchPanelDelegate.getContentViewCore().getWebContents() != null) {
mDidLoadAnyUrl = true;
- mSearchContentViewCore.getWebContents().getNavigationController().loadUrl(
- new LoadUrlParams(url));
+ mSearchPanelDelegate.getContentViewCore().getWebContents()
+ .getNavigationController().loadUrl(new LoadUrlParams(url));
}
}
@Override
public void createNewSearchContentView() {
- if (mSearchContentViewCore != null) {
+ if (mSearchPanelDelegate.getContentViewCore() != null) {
mNetworkCommunicator.destroySearchContentView();
}
- mSearchContentViewCore = new ContentViewCore(mActivity);
+ final ContentViewCore cvc = new ContentViewCore(mActivity);
// Adds a ContentViewClient to override the default fullscreen size.
if (!mSearchPanelDelegate.isFullscreenSizePanel()) {
- mSearchContentViewCore.setContentViewClient(new ContentViewClient() {
+ cvc.setContentViewClient(new ContentViewClient() {
@Override
public int getDesiredWidthMeasureSpec() {
return MeasureSpec.makeMeasureSpec(
@@ -889,17 +888,16 @@ public class ContextualSearchManager extends ContextualSearchObservable
});
}
- ContentView cv = new ContentView(mActivity, mSearchContentViewCore);
+ ContentView cv = new ContentView(mActivity, cvc);
// Creates an initially hidden WebContents which gets shown when the panel is opened.
- mSearchContentViewCore.initialize(cv, cv,
+ cvc.initialize(cv, cv,
WebContentsFactory.createWebContents(false, true), mWindowAndroid);
- // Transfers the ownership of the WebContents to the native ContextualSearchManager.
- nativeSetWebContents(mNativeContextualSearchManagerPtr, mSearchContentViewCore,
- mWebContentsDelegate);
+ // Transfers the ownership of the WebContents to the native ContextualSearchPanel.
+ mSearchPanelDelegate.setWebContents(cvc, mWebContentsDelegate);
mSearchWebContentsObserver =
- new WebContentsObserver(mSearchContentViewCore.getWebContents()) {
+ new WebContentsObserver(cvc.getWebContents()) {
@Override
public void didStartLoading(String url) {
mDidPromoteSearchNavigation = false;
@@ -933,17 +931,17 @@ public class ContextualSearchManager extends ContextualSearchObservable
// is completed.
boolean shouldClearHistory =
mSearchRequest != null && mSearchRequest.getHasFailed();
- if (shouldClearHistory && mSearchContentViewCore != null) {
- mSearchContentViewCore.getWebContents().getNavigationController()
+ if (shouldClearHistory && cvc != null) {
+ cvc.getWebContents().getNavigationController()
.clearHistory();
}
}
};
- mSearchContentViewDelegate.setContextualSearchContentViewCore(mSearchContentViewCore);
+ mSearchContentViewDelegate.setContextualSearchContentViewCore(cvc);
mInterceptNavigationDelegate = new InterceptNavigationDelegateImpl();
- nativeSetInterceptNavigationDelegate(mNativeContextualSearchManagerPtr,
- mInterceptNavigationDelegate, mSearchContentViewCore.getWebContents());
+ mSearchPanelDelegate.setInterceptNavigationDelegate(mInterceptNavigationDelegate,
+ cvc.getWebContents());
}
@Override
@@ -989,9 +987,11 @@ public class ContextualSearchManager extends ContextualSearchObservable
// minus the Toolbar height.
//
// This is necessary to fix the bugs: crbug.com/510205 and crbug.com/510206
- mSearchContentViewCore.getWebContents().updateTopControlsState(false, true, false);
+ mSearchPanelDelegate.getContentViewCore().getWebContents()
+ .updateTopControlsState(false, true, false);
} else {
- mSearchContentViewCore.getWebContents().updateTopControlsState(true, false, false);
+ mSearchPanelDelegate.getContentViewCore().getWebContents()
+ .updateTopControlsState(true, false, false);
}
if (!mDidPromoteSearchNavigation
@@ -1010,12 +1010,13 @@ public class ContextualSearchManager extends ContextualSearchObservable
@Override
public void destroySearchContentView() {
- if (mSearchContentViewCore != null && mSearchContentViewDelegate != null) {
- nativeDestroyWebContents(mNativeContextualSearchManagerPtr);
+ if (mSearchPanelDelegate.getContentViewCore() != null
+ && mSearchContentViewDelegate != null) {
+ mSearchPanelDelegate.destroyWebContents();
mSearchContentViewDelegate.releaseContextualSearchContentViewCore();
- mSearchContentViewCore.getWebContents().destroy();
- mSearchContentViewCore.destroy();
- mSearchContentViewCore = null;
+ mSearchPanelDelegate.getContentViewCore().getWebContents().destroy();
+ mSearchPanelDelegate.getContentViewCore().destroy();
+ mSearchPanelDelegate.resetContentViewCore();
if (mSearchWebContentsObserver != null) {
mSearchWebContentsObserver.destroy();
mSearchWebContentsObserver = null;
@@ -1067,9 +1068,9 @@ public class ContextualSearchManager extends ContextualSearchObservable
// this problem, we are ignoring tap gestures in the Search Bar if we don't know what
// to search for.
if (mSearchRequest != null
- && mSearchContentViewCore != null
- && mSearchContentViewCore.getWebContents() != null) {
- String url = getContentViewUrl(mSearchContentViewCore);
+ && mSearchPanelDelegate.getContentViewCore() != null
+ && mSearchPanelDelegate.getContentViewCore().getWebContents() != null) {
+ String url = getContentViewUrl(mSearchPanelDelegate.getContentViewCore());
// If it's a search URL, formats it so the SearchBox becomes visible.
if (mSearchRequest.isContextualSearchUrl(url)) {
@@ -1102,15 +1103,15 @@ public class ContextualSearchManager extends ContextualSearchObservable
@Override
public void resetSearchContentViewScroll() {
- if (mSearchContentViewCore != null) {
- mSearchContentViewCore.scrollTo(0, 0);
+ if (mSearchPanelDelegate.getContentViewCore() != null) {
+ mSearchPanelDelegate.getContentViewCore().scrollTo(0, 0);
}
}
@Override
public float getSearchContentViewVerticalScroll() {
- return mSearchContentViewCore != null
- ? mSearchContentViewCore.computeVerticalScrollOffset() : -1.f;
+ return mSearchPanelDelegate.getContentViewCore() != null
+ ? mSearchPanelDelegate.getContentViewCore().computeVerticalScrollOffset() : -1.f;
}
@Override
@@ -1136,11 +1137,15 @@ public class ContextualSearchManager extends ContextualSearchObservable
// The CVC is created with the search request, but if none was made we'll need
// one in order to display an empty panel.
createNewSearchContentViewCoreIfNeeded();
- if (mSearchContentViewCore != null) mSearchContentViewCore.onShow();
+ if (mSearchPanelDelegate.getContentViewCore() != null) {
+ mSearchPanelDelegate.getContentViewCore().onShow();
+ }
mSearchPanelDelegate.setWasSearchContentViewSeen();
mPolicy.updateCountersForOpen();
} else {
- if (mSearchContentViewCore != null) mSearchContentViewCore.onHide();
+ if (mSearchPanelDelegate.getContentViewCore() != null) {
+ mSearchPanelDelegate.getContentViewCore().onHide();
+ }
}
}
@@ -1313,14 +1318,4 @@ public class ContextualSearchManager extends ContextualSearchObservable
private native void nativeGatherSurroundingText(long nativeContextualSearchManager,
String selection, boolean useResolvedSearchTerm, ContentViewCore baseContentViewCore,
boolean maySendBasePageUrl);
- private native void nativeRemoveLastSearchVisit(
- long nativeContextualSearchManager, String searchUrl, long searchUrlTimeMs);
- private native void nativeSetWebContents(long nativeContextualSearchManager,
- ContentViewCore searchContentViewCore, WebContentsDelegateAndroid delegate);
- private native void nativeDestroyWebContents(long nativeContextualSearchManager);
- private native void nativeReleaseWebContents(long nativeContextualSearchManager);
- private native void nativeDestroyWebContentsFromContentViewCore(
- long nativeContextualSearchManager, ContentViewCore contentViewCore);
- private native void nativeSetInterceptNavigationDelegate(long nativeContextualSearchManager,
- InterceptNavigationDelegate delegate, WebContents webContents);
}

Powered by Google App Engine
This is Rietveld 408576698