diff options
author | nyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-05 02:25:20 +0000 |
---|---|---|
committer | nyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-05 02:25:20 +0000 |
commit | 184ae3f1bdc996fb4e80983ace65586968dd34b1 (patch) | |
tree | e7e4e94671ccd356038cd7299b0928a4640f2001 /chrome | |
parent | f91d89e9259db7e7dcddc6051715effbde06112d (diff) | |
download | chromium_src-184ae3f1bdc996fb4e80983ace65586968dd34b1.zip chromium_src-184ae3f1bdc996fb4e80983ace65586968dd34b1.tar.gz chromium_src-184ae3f1bdc996fb4e80983ace65586968dd34b1.tar.bz2 |
Add UI hook for distilling web pages for test shell.
This adds the Java hooks needed and a menu option to distill the current
web page in the test shell.
BUG=319881
NOTRY=true
Review URL: https://codereview.chromium.org/185113002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
7 files changed, 33 insertions, 2 deletions
diff --git a/chrome/android/shell/res/menu/main_menu.xml b/chrome/android/shell/res/menu/main_menu.xml index 4235001..09d2114 100644 --- a/chrome/android/shell/res/menu/main_menu.xml +++ b/chrome/android/shell/res/menu/main_menu.xml @@ -12,6 +12,8 @@ android:title="@string/signin_sign_in" /> <item android:id="@+id/print" android:title="@string/print_menu" /> + <item android:id="@+id/distill_page" + android:title="@string/distill_page_menu" /> </group> <group android:id="@+id/PHONE_ICON_MENU_ITEMS" diff --git a/chrome/android/shell/res/values/strings.xml b/chrome/android/shell/res/values/strings.xml index 1081327..df212c1 100644 --- a/chrome/android/shell/res/values/strings.xml +++ b/chrome/android/shell/res/values/strings.xml @@ -15,5 +15,6 @@ <string name="signout_title">Do you want to sign out?</string> <string name="signout_sign_out">Sign out</string> <string name="signout_cancel">Cancel</string> + <string name="distill_page_menu">Distill page</string> <string name="browser_process_initialization_failed">Initialization failed.</string> </resources> diff --git a/chrome/android/testshell/java/DEPS b/chrome/android/testshell/java/DEPS index 0d019e1..fcb5e7b 100644 --- a/chrome/android/testshell/java/DEPS +++ b/chrome/android/testshell/java/DEPS @@ -1,3 +1,4 @@ include_rules = [ + "+components/dom_distiller/android/java", "+content/public/android/java", ] diff --git a/chrome/android/testshell/java/src/org/chromium/chrome/shell/ChromiumTestShellActivity.java b/chrome/android/testshell/java/src/org/chromium/chrome/shell/ChromiumTestShellActivity.java index f82d707..349afc1 100644 --- a/chrome/android/testshell/java/src/org/chromium/chrome/shell/ChromiumTestShellActivity.java +++ b/chrome/android/testshell/java/src/org/chromium/chrome/shell/ChromiumTestShellActivity.java @@ -28,6 +28,7 @@ import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; import org.chromium.chrome.browser.printing.PrintingControllerFactory; import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.shell.sync.SyncController; +import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.content.browser.ActivityContentVideoViewClient; import org.chromium.content.browser.BrowserStartupController; import org.chromium.content.browser.ContentView; @@ -42,6 +43,7 @@ import org.chromium.ui.base.WindowAndroid; */ public class ChromiumTestShellActivity extends Activity implements AppMenuPropertiesDelegate { private static final String TAG = "ChromiumTestShellActivity"; + private static final String CHROME_DISTILLER_SCHEME = "chrome-distiller"; private WindowAndroid mWindow; private TabManager mTabManager; @@ -233,6 +235,12 @@ public class ChromiumTestShellActivity extends Activity implements AppMenuProper mPrintingController.startPrint(new TabPrinter(getActiveTab())); } return true; + case R.id.distill_page: + TestShellTab activeTab = getActiveTab(); + String viewUrl = DomDistillerUrlUtils.getDistillerViewUrlFromUrl( + CHROME_DISTILLER_SCHEME, getActiveTab().getUrl()); + activeTab.loadUrlWithSanitization(viewUrl); + return true; case R.id.back_menu_id: if (getActiveTab().canGoBack()) getActiveTab().goBack(); return true; @@ -283,6 +291,9 @@ public class ChromiumTestShellActivity extends Activity implements AppMenuProper menu.findItem(R.id.print).setVisible(ApiCompatibilityUtils.isPrintingSupported()); + menu.findItem(R.id.distill_page).setVisible( + CommandLine.getInstance().hasSwitch(TestShellSwitches.ENABLE_DOM_DISTILLER)); + menu.setGroupVisible(R.id.MAIN_MENU, true); } diff --git a/chrome/android/testshell/java/src/org/chromium/chrome/shell/TestShellSwitches.java b/chrome/android/testshell/java/src/org/chromium/chrome/shell/TestShellSwitches.java new file mode 100644 index 0000000..809661a --- /dev/null +++ b/chrome/android/testshell/java/src/org/chromium/chrome/shell/TestShellSwitches.java @@ -0,0 +1,13 @@ +// Copyright 2014 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.chrome.shell; + +/** + * Command line switches for the shell. + */ +public abstract class TestShellSwitches { + // Enable the DOM Distiller. + public static final String ENABLE_DOM_DISTILLER = "enable-dom-distiller"; +} diff --git a/chrome/browser/android/chrome_jni_registrar.cc b/chrome/browser/android/chrome_jni_registrar.cc index 446a99d..1c4b0b8 100644 --- a/chrome/browser/android/chrome_jni_registrar.cc +++ b/chrome/browser/android/chrome_jni_registrar.cc @@ -62,6 +62,7 @@ #include "chrome/browser/ui/android/toolbar/toolbar_model_android.h" #include "chrome/browser/ui/android/website_settings_popup_android.h" #include "components/autofill/core/browser/android/component_jni_registrar.h" +#include "components/dom_distiller/android/component_jni_registrar.h" #include "components/navigation_interception/component_jni_registrar.h" #include "components/web_contents_delegate_android/component_jni_registrar.h" @@ -76,6 +77,7 @@ namespace android { static base::android::RegistrationMethod kChromeRegisteredMethods[] = { // Register JNI for components we depend on. + { "DomDistiller", dom_distiller::android::RegisterDomDistiller }, { "NavigationInterception", navigation_interception::RegisterNavigationInterceptionJni }, { "WebContentsDelegateAndroid", diff --git a/chrome/chrome_android.gypi b/chrome/chrome_android.gypi index 8292d4b..4f1adde 100644 --- a/chrome/chrome_android.gypi +++ b/chrome/chrome_android.gypi @@ -49,10 +49,11 @@ 'target_name': 'chromium_testshell', 'type': 'none', 'dependencies': [ - '../media/media.gyp:media_java', - 'chrome.gyp:chrome_java', + 'chrome_java', 'chromium_testshell_paks', 'libchromiumtestshell', + '../components/components.gyp:dom_distiller_core_java', + '../media/media.gyp:media_java', ], 'variables': { 'apk_name': 'ChromiumTestShell', |