diff options
author | tedchoc@chromium.org <tedchoc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-20 04:25:16 +0000 |
---|---|---|
committer | tedchoc@chromium.org <tedchoc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-20 04:25:16 +0000 |
commit | 46a08e154371078292b2fe4cff9b413f1f50584b (patch) | |
tree | 8593329998c97b4e8c290557b3ea83f97b6496e7 | |
parent | 626a7bfdc5e1a6f84f83b13716c29c37d93b2c54 (diff) | |
download | chromium_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
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; } |