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

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

Issue 2949903002: Fix search engine promo from web search action mode in CCTs. (Closed)
Patch Set: Clear statics in junit code Created 3 years, 6 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
« no previous file with comments | « no previous file | chrome/android/java_sources.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
index 291faa36c799f685170a523ab45ded9f8d8d1010..0d899e64db9c4283c0e24c231269add26836c915 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java
@@ -10,8 +10,11 @@ import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
+import org.chromium.base.Callback;
+import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.firstrun.FirstRunStatus;
+import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.tab.Tab;
@@ -63,7 +66,14 @@ public class ChromeActionModeCallback implements ActionMode.Callback {
if (!mHelper.isActionModeValid()) return true;
if (item.getItemId() == R.id.select_action_menu_web_search) {
- search();
+ final String selectedText = mHelper.getSelectedText();
+ Callback<Boolean> callback = new Callback<Boolean>() {
+ @Override
+ public void onResult(Boolean result) {
+ if (result != null && result) search(selectedText);
+ }
+ };
+ LocaleManager.getInstance().showSearchEnginePromoIfNeeded(mTab.getActivity(), callback);
mHelper.finishActionMode();
} else {
return mHelper.onActionItemClicked(mode, item);
@@ -83,21 +93,29 @@ public class ChromeActionModeCallback implements ActionMode.Callback {
}
}
- private void search() {
- RecordUserAction.record("MobileActionMode.WebSearch");
- if (mTab.getTabModelSelector() == null) return;
-
- String query = ActionModeCallbackHelper.sanitizeQuery(mHelper.getSelectedText(),
- ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH);
- if (TextUtils.isEmpty(query)) return;
-
+ /**
+ * Generate the LoadUrlParams necessary to load the specified search query.
+ */
+ @VisibleForTesting
+ protected LoadUrlParams generateUrlParamsForSearch(String query) {
String url = TemplateUrlService.getInstance().getUrlForSearchQuery(query);
String headers = GeolocationHeader.getGeoHeader(url, mTab);
LoadUrlParams loadUrlParams = new LoadUrlParams(url);
loadUrlParams.setVerbatimHeaders(headers);
loadUrlParams.setTransitionType(PageTransition.GENERATED);
- mTab.getTabModelSelector().openNewTab(loadUrlParams,
+ return loadUrlParams;
+ }
+
+ private void search(String searchText) {
+ RecordUserAction.record("MobileActionMode.WebSearch");
+ if (mTab.getTabModelSelector() == null) return;
+
+ String query = ActionModeCallbackHelper.sanitizeQuery(
+ searchText, ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH);
+ if (TextUtils.isEmpty(query)) return;
+
+ mTab.getTabModelSelector().openNewTab(generateUrlParamsForSearch(query),
TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, mTab.isIncognito());
}
}
« no previous file with comments | « no previous file | chrome/android/java_sources.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698