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); |
} |