summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortedchoc@chromium.org <tedchoc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-20 04:25:16 +0000
committertedchoc@chromium.org <tedchoc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-20 04:25:16 +0000
commit46a08e154371078292b2fe4cff9b413f1f50584b (patch)
tree8593329998c97b4e8c290557b3ea83f97b6496e7
parent626a7bfdc5e1a6f84f83b13716c29c37d93b2c54 (diff)
downloadchromium_src-46a08e154371078292b2fe4cff9b413f1f50584b.zip
chromium_src-46a08e154371078292b2fe4cff9b413f1f50584b.tar.gz
chromium_src-46a08e154371078292b2fe4cff9b413f1f50584b.tar.bz2
Move ClearBrowsingData from the ToolbarModel to the application
BUG=318769 Review URL: https://codereview.chromium.org/286353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271569 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java7
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java6
-rw-r--r--chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellApplication.java9
-rw-r--r--chrome/browser/android/chromium_application.cc12
-rw-r--r--chrome/browser/android/chromium_application.h7
-rw-r--r--chrome/browser/ui/android/tab_model/tab_model.h2
-rw-r--r--chrome/browser/ui/android/tab_model/tab_model_base.cc6
-rw-r--r--chrome/browser/ui/android/tab_model/tab_model_base.h1
-rw-r--r--chrome/browser/ui/android/tab_model/tab_model_unittest.cc1
-rw-r--r--chrome/browser/ui/webui/history_ui.cc7
-rw-r--r--chrome/test/android/unit_tests_apk/src/org/chromium/chrome/unit_tests_apk/ChromeNativeTestApplication.java5
11 files changed, 42 insertions, 21 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java
index c586f2c..b2812ff 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java
@@ -25,6 +25,13 @@ public abstract class ChromiumApplication extends ContentApplication {
protected abstract void showTermsOfServiceDialog();
/**
+ * Opens the UI to clear browsing data.
+ * @param tab The tab that triggered the request.
+ */
+ @CalledByNative
+ protected abstract void openClearBrowsingData(Tab tab);
+
+ /**
* @return Whether parental controls are enabled. Returning true will disable
* incognito mode.
*/
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java
index 0e2b0a2..50dca1d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelBase.java
@@ -619,12 +619,6 @@ public abstract class TabModelBase implements TabModel {
@CalledByNative
protected abstract Tab createNewTabForDevTools(String url);
- /**
- * Opens the Clear Browsing Data dialog.
- */
- @CalledByNative
- protected abstract void openClearBrowsingData();
-
@CalledByNative
private boolean isSessionRestoreInProgress() {
return mModelDelegate.isSessionRestoreInProgress();
diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellApplication.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellApplication.java
index fe48d05..fba2f20 100644
--- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellApplication.java
+++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellApplication.java
@@ -5,11 +5,13 @@
package org.chromium.chrome.shell;
import android.content.Intent;
+import android.util.Log;
import org.chromium.base.CommandLine;
import org.chromium.base.PathUtils;
import org.chromium.chrome.browser.ChromiumApplication;
import org.chromium.chrome.browser.PKCS11AuthenticationManager;
+import org.chromium.chrome.browser.Tab;
import org.chromium.chrome.browser.UmaUtils;
import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator;
import org.chromium.content.browser.ResourceExtractor;
@@ -21,6 +23,8 @@ import java.util.ArrayList;
* loading the right resources.
*/
public class ChromeShellApplication extends ChromiumApplication {
+ private static final String TAG = "ChromeShellApplication";
+
private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chromeshell";
/**
* icudtl.dat provides ICU (i18n library) with all the necessary data
@@ -90,6 +94,11 @@ public class ChromeShellApplication extends ChromiumApplication {
}
@Override
+ protected void openClearBrowsingData(Tab tab) {
+ Log.e(TAG, "Clear browsing data not currently supported in Chrome Shell");
+ }
+
+ @Override
protected boolean areParentalControlsEnabled() {
return false;
}
diff --git a/chrome/browser/android/chromium_application.cc b/chrome/browser/android/chromium_application.cc
index ff77aa5..4d29802 100644
--- a/chrome/browser/android/chromium_application.cc
+++ b/chrome/browser/android/chromium_application.cc
@@ -5,6 +5,8 @@
#include "chrome/browser/android/chromium_application.h"
#include "base/android/jni_android.h"
+#include "chrome/browser/android/tab_android.h"
+#include "content/public/browser/web_contents.h"
#include "jni/ChromiumApplication_jni.h"
namespace chrome {
@@ -33,6 +35,16 @@ void ChromiumApplication::ShowTermsOfServiceDialog() {
base::android::GetApplicationContext());
}
+void ChromiumApplication::OpenClearBrowsingData(
+ content::WebContents* web_contents) {
+ TabAndroid* tab = TabAndroid::FromWebContents(web_contents);
+ DCHECK(tab);
+ Java_ChromiumApplication_openClearBrowsingData(
+ base::android::AttachCurrentThread(),
+ base::android::GetApplicationContext(),
+ tab->GetJavaObject().obj());
+}
+
bool ChromiumApplication::AreParentalControlsEnabled() {
return Java_ChromiumApplication_areParentalControlsEnabled(
base::android::AttachCurrentThread(),
diff --git a/chrome/browser/android/chromium_application.h b/chrome/browser/android/chromium_application.h
index c2ecef2..6a0ba6d 100644
--- a/chrome/browser/android/chromium_application.h
+++ b/chrome/browser/android/chromium_application.h
@@ -9,6 +9,10 @@
#include "base/basictypes.h"
+namespace content {
+class WebContents;
+}
+
namespace chrome {
namespace android {
@@ -28,6 +32,9 @@ class ChromiumApplication {
// Shows a dialog with the terms of service.
static void ShowTermsOfServiceDialog();
+ // Open the clear browsing data UI.
+ static void OpenClearBrowsingData(content::WebContents* web_contents);
+
// Determines whether parental controls are enabled.
static bool AreParentalControlsEnabled();
diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui/android/tab_model/tab_model.h
index 40d0726..642778f 100644
--- a/chrome/browser/ui/android/tab_model/tab_model.h
+++ b/chrome/browser/ui/android/tab_model/tab_model.h
@@ -54,8 +54,6 @@ class TabModel : public content::NotificationObserver {
// Return true if we are currently restoring sessions asynchronously.
virtual bool IsSessionRestoreInProgress() const = 0;
- virtual void OpenClearBrowsingData() const = 0;
-
protected:
explicit TabModel(Profile* profile);
virtual ~TabModel();
diff --git a/chrome/browser/ui/android/tab_model/tab_model_base.cc b/chrome/browser/ui/android/tab_model/tab_model_base.cc
index 34a5b0b..c32c642 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_base.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_base.cc
@@ -140,12 +140,6 @@ bool TabModelBase::IsSessionRestoreInProgress() const {
env, java_object_.get(env).obj());
}
-void TabModelBase::OpenClearBrowsingData() const {
- JNIEnv* env = AttachCurrentThread();
- Java_TabModelBase_openClearBrowsingData(env,
- java_object_.get(env).obj());
-}
-
void TabModelBase::BroadcastSessionRestoreComplete(JNIEnv* env,
jobject obj) {
TabModel::BroadcastSessionRestoreComplete();
diff --git a/chrome/browser/ui/android/tab_model/tab_model_base.h b/chrome/browser/ui/android/tab_model/tab_model_base.h
index d98ca45..60b4c1e 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_base.h
+++ b/chrome/browser/ui/android/tab_model/tab_model_base.h
@@ -50,7 +50,6 @@ class TabModelBase : public TabModel {
// Return true if we are currently restoring sessions asynchronously.
virtual bool IsSessionRestoreInProgress() const OVERRIDE;
- virtual void OpenClearBrowsingData() const OVERRIDE;
// Instructs the TabModel to broadcast a notification that all tabs are now
// loaded from storage.
diff --git a/chrome/browser/ui/android/tab_model/tab_model_unittest.cc b/chrome/browser/ui/android/tab_model/tab_model_unittest.cc
index 9a195db..85808e8 100644
--- a/chrome/browser/ui/android/tab_model/tab_model_unittest.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_unittest.cc
@@ -41,7 +41,6 @@ class TestTabModel : public TabModel {
return NULL;
}
virtual bool IsSessionRestoreInProgress() const OVERRIDE { return false; }
- virtual void OpenClearBrowsingData() const OVERRIDE {}
virtual TabAndroid* GetTabAt(int index) const OVERRIDE {
return NULL;
}
diff --git a/chrome/browser/ui/webui/history_ui.cc b/chrome/browser/ui/webui/history_ui.cc
index 24f4f78..4eddfeb 100644
--- a/chrome/browser/ui/webui/history_ui.cc
+++ b/chrome/browser/ui/webui/history_ui.cc
@@ -65,8 +65,7 @@
#endif
#if defined(OS_ANDROID)
-#include "chrome/browser/ui/android/tab_model/tab_model.h"
-#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
+#include "chrome/browser/android/chromium_application.h"
#endif
#if !defined(OS_ANDROID) && !defined(OS_IOS)
@@ -642,10 +641,8 @@ void BrowsingHistoryHandler::HandleRemoveVisits(const base::ListValue* args) {
void BrowsingHistoryHandler::HandleClearBrowsingData(
const base::ListValue* args) {
#if defined(OS_ANDROID)
- const TabModel* tab_model = TabModelList::GetTabModelForWebContents(
+ chrome::android::ChromiumApplication::OpenClearBrowsingData(
web_ui()->GetWebContents());
- if (tab_model)
- tab_model->OpenClearBrowsingData();
#else
// TODO(beng): This is an improper direct dependency on Browser. Route this
// through some sort of delegate.
diff --git a/chrome/test/android/unit_tests_apk/src/org/chromium/chrome/unit_tests_apk/ChromeNativeTestApplication.java b/chrome/test/android/unit_tests_apk/src/org/chromium/chrome/unit_tests_apk/ChromeNativeTestApplication.java
index 232428e..cb6f3f1 100644
--- a/chrome/test/android/unit_tests_apk/src/org/chromium/chrome/unit_tests_apk/ChromeNativeTestApplication.java
+++ b/chrome/test/android/unit_tests_apk/src/org/chromium/chrome/unit_tests_apk/ChromeNativeTestApplication.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.unit_tests_apk;
import org.chromium.chrome.browser.ChromiumApplication;
import org.chromium.chrome.browser.PKCS11AuthenticationManager;
+import org.chromium.chrome.browser.Tab;
/**
* A stub implementation of the chrome application to be used in chrome unit_tests.
@@ -25,6 +26,10 @@ public class ChromeNativeTestApplication extends ChromiumApplication {
}
@Override
+ protected void openClearBrowsingData(Tab tab) {
+ }
+
+ @Override
protected boolean areParentalControlsEnabled() {
return false;
}