Commit 46a08e15 authored by tedchoc@chromium.org's avatar tedchoc@chromium.org

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
parent 626a7bfd
...@@ -24,6 +24,13 @@ public abstract class ChromiumApplication extends ContentApplication { ...@@ -24,6 +24,13 @@ public abstract class ChromiumApplication extends ContentApplication {
@CalledByNative @CalledByNative
protected abstract void showTermsOfServiceDialog(); 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 * @return Whether parental controls are enabled. Returning true will disable
* incognito mode. * incognito mode.
......
...@@ -619,12 +619,6 @@ public abstract class TabModelBase implements TabModel { ...@@ -619,12 +619,6 @@ public abstract class TabModelBase implements TabModel {
@CalledByNative @CalledByNative
protected abstract Tab createNewTabForDevTools(String url); protected abstract Tab createNewTabForDevTools(String url);
/**
* Opens the Clear Browsing Data dialog.
*/
@CalledByNative
protected abstract void openClearBrowsingData();
@CalledByNative @CalledByNative
private boolean isSessionRestoreInProgress() { private boolean isSessionRestoreInProgress() {
return mModelDelegate.isSessionRestoreInProgress(); return mModelDelegate.isSessionRestoreInProgress();
......
...@@ -5,11 +5,13 @@ ...@@ -5,11 +5,13 @@
package org.chromium.chrome.shell; package org.chromium.chrome.shell;
import android.content.Intent; import android.content.Intent;
import android.util.Log;
import org.chromium.base.CommandLine; import org.chromium.base.CommandLine;
import org.chromium.base.PathUtils; import org.chromium.base.PathUtils;
import org.chromium.chrome.browser.ChromiumApplication; import org.chromium.chrome.browser.ChromiumApplication;
import org.chromium.chrome.browser.PKCS11AuthenticationManager; import org.chromium.chrome.browser.PKCS11AuthenticationManager;
import org.chromium.chrome.browser.Tab;
import org.chromium.chrome.browser.UmaUtils; import org.chromium.chrome.browser.UmaUtils;
import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator; import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator;
import org.chromium.content.browser.ResourceExtractor; import org.chromium.content.browser.ResourceExtractor;
...@@ -21,6 +23,8 @@ import java.util.ArrayList; ...@@ -21,6 +23,8 @@ import java.util.ArrayList;
* loading the right resources. * loading the right resources.
*/ */
public class ChromeShellApplication extends ChromiumApplication { public class ChromeShellApplication extends ChromiumApplication {
private static final String TAG = "ChromeShellApplication";
private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chromeshell"; private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chromeshell";
/** /**
* icudtl.dat provides ICU (i18n library) with all the necessary data * icudtl.dat provides ICU (i18n library) with all the necessary data
...@@ -89,6 +93,11 @@ public class ChromeShellApplication extends ChromiumApplication { ...@@ -89,6 +93,11 @@ public class ChromeShellApplication extends ChromiumApplication {
protected void showTermsOfServiceDialog() { protected void showTermsOfServiceDialog() {
} }
@Override
protected void openClearBrowsingData(Tab tab) {
Log.e(TAG, "Clear browsing data not currently supported in Chrome Shell");
}
@Override @Override
protected boolean areParentalControlsEnabled() { protected boolean areParentalControlsEnabled() {
return false; return false;
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include "chrome/browser/android/chromium_application.h" #include "chrome/browser/android/chromium_application.h"
#include "base/android/jni_android.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" #include "jni/ChromiumApplication_jni.h"
namespace chrome { namespace chrome {
...@@ -33,6 +35,16 @@ void ChromiumApplication::ShowTermsOfServiceDialog() { ...@@ -33,6 +35,16 @@ void ChromiumApplication::ShowTermsOfServiceDialog() {
base::android::GetApplicationContext()); 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() { bool ChromiumApplication::AreParentalControlsEnabled() {
return Java_ChromiumApplication_areParentalControlsEnabled( return Java_ChromiumApplication_areParentalControlsEnabled(
base::android::AttachCurrentThread(), base::android::AttachCurrentThread(),
......
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
#include "base/basictypes.h" #include "base/basictypes.h"
namespace content {
class WebContents;
}
namespace chrome { namespace chrome {
namespace android { namespace android {
...@@ -28,6 +32,9 @@ class ChromiumApplication { ...@@ -28,6 +32,9 @@ class ChromiumApplication {
// Shows a dialog with the terms of service. // Shows a dialog with the terms of service.
static void ShowTermsOfServiceDialog(); static void ShowTermsOfServiceDialog();
// Open the clear browsing data UI.
static void OpenClearBrowsingData(content::WebContents* web_contents);
// Determines whether parental controls are enabled. // Determines whether parental controls are enabled.
static bool AreParentalControlsEnabled(); static bool AreParentalControlsEnabled();
......
...@@ -54,8 +54,6 @@ class TabModel : public content::NotificationObserver { ...@@ -54,8 +54,6 @@ class TabModel : public content::NotificationObserver {
// Return true if we are currently restoring sessions asynchronously. // Return true if we are currently restoring sessions asynchronously.
virtual bool IsSessionRestoreInProgress() const = 0; virtual bool IsSessionRestoreInProgress() const = 0;
virtual void OpenClearBrowsingData() const = 0;
protected: protected:
explicit TabModel(Profile* profile); explicit TabModel(Profile* profile);
virtual ~TabModel(); virtual ~TabModel();
......
...@@ -140,12 +140,6 @@ bool TabModelBase::IsSessionRestoreInProgress() const { ...@@ -140,12 +140,6 @@ bool TabModelBase::IsSessionRestoreInProgress() const {
env, java_object_.get(env).obj()); 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, void TabModelBase::BroadcastSessionRestoreComplete(JNIEnv* env,
jobject obj) { jobject obj) {
TabModel::BroadcastSessionRestoreComplete(); TabModel::BroadcastSessionRestoreComplete();
......
...@@ -50,7 +50,6 @@ class TabModelBase : public TabModel { ...@@ -50,7 +50,6 @@ class TabModelBase : public TabModel {
// Return true if we are currently restoring sessions asynchronously. // Return true if we are currently restoring sessions asynchronously.
virtual bool IsSessionRestoreInProgress() const OVERRIDE; virtual bool IsSessionRestoreInProgress() const OVERRIDE;
virtual void OpenClearBrowsingData() const OVERRIDE;
// Instructs the TabModel to broadcast a notification that all tabs are now // Instructs the TabModel to broadcast a notification that all tabs are now
// loaded from storage. // loaded from storage.
......
...@@ -41,7 +41,6 @@ class TestTabModel : public TabModel { ...@@ -41,7 +41,6 @@ class TestTabModel : public TabModel {
return NULL; return NULL;
} }
virtual bool IsSessionRestoreInProgress() const OVERRIDE { return false; } virtual bool IsSessionRestoreInProgress() const OVERRIDE { return false; }
virtual void OpenClearBrowsingData() const OVERRIDE {}
virtual TabAndroid* GetTabAt(int index) const OVERRIDE { virtual TabAndroid* GetTabAt(int index) const OVERRIDE {
return NULL; return NULL;
} }
......
...@@ -65,8 +65,7 @@ ...@@ -65,8 +65,7 @@
#endif #endif
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
#include "chrome/browser/ui/android/tab_model/tab_model.h" #include "chrome/browser/android/chromium_application.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
#endif #endif
#if !defined(OS_ANDROID) && !defined(OS_IOS) #if !defined(OS_ANDROID) && !defined(OS_IOS)
...@@ -642,10 +641,8 @@ void BrowsingHistoryHandler::HandleRemoveVisits(const base::ListValue* args) { ...@@ -642,10 +641,8 @@ void BrowsingHistoryHandler::HandleRemoveVisits(const base::ListValue* args) {
void BrowsingHistoryHandler::HandleClearBrowsingData( void BrowsingHistoryHandler::HandleClearBrowsingData(
const base::ListValue* args) { const base::ListValue* args) {
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
const TabModel* tab_model = TabModelList::GetTabModelForWebContents( chrome::android::ChromiumApplication::OpenClearBrowsingData(
web_ui()->GetWebContents()); web_ui()->GetWebContents());
if (tab_model)
tab_model->OpenClearBrowsingData();
#else #else
// TODO(beng): This is an improper direct dependency on Browser. Route this // TODO(beng): This is an improper direct dependency on Browser. Route this
// through some sort of delegate. // through some sort of delegate.
......
...@@ -6,6 +6,7 @@ package org.chromium.chrome.unit_tests_apk; ...@@ -6,6 +6,7 @@ package org.chromium.chrome.unit_tests_apk;
import org.chromium.chrome.browser.ChromiumApplication; import org.chromium.chrome.browser.ChromiumApplication;
import org.chromium.chrome.browser.PKCS11AuthenticationManager; 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. * A stub implementation of the chrome application to be used in chrome unit_tests.
...@@ -24,6 +25,10 @@ public class ChromeNativeTestApplication extends ChromiumApplication { ...@@ -24,6 +25,10 @@ public class ChromeNativeTestApplication extends ChromiumApplication {
protected void showTermsOfServiceDialog() { protected void showTermsOfServiceDialog() {
} }
@Override
protected void openClearBrowsingData(Tab tab) {
}
@Override @Override
protected boolean areParentalControlsEnabled() { protected boolean areParentalControlsEnabled() {
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment