summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authornyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-05 02:25:20 +0000
committernyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-05 02:25:20 +0000
commit184ae3f1bdc996fb4e80983ace65586968dd34b1 (patch)
treee7e4e94671ccd356038cd7299b0928a4640f2001 /chrome
parentf91d89e9259db7e7dcddc6051715effbde06112d (diff)
downloadchromium_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')
-rw-r--r--chrome/android/shell/res/menu/main_menu.xml2
-rw-r--r--chrome/android/shell/res/values/strings.xml1
-rw-r--r--chrome/android/testshell/java/DEPS1
-rw-r--r--chrome/android/testshell/java/src/org/chromium/chrome/shell/ChromiumTestShellActivity.java11
-rw-r--r--chrome/android/testshell/java/src/org/chromium/chrome/shell/TestShellSwitches.java13
-rw-r--r--chrome/browser/android/chrome_jni_registrar.cc2
-rw-r--r--chrome/chrome_android.gypi5
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',