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 {
@CalledByNative
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.
......
......@@ -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();
......
......@@ -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
......@@ -89,6 +93,11 @@ public class ChromeShellApplication extends ChromiumApplication {
protected void showTermsOfServiceDialog() {
}
@Override
protected void openClearBrowsingData(Tab tab) {
Log.e(TAG, "Clear browsing data not currently supported in Chrome Shell");
}
@Override
protected boolean areParentalControlsEnabled() {
return false;
......
......@@ -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(),
......
......@@ -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();
......
......@@ -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();
......
......@@ -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();
......
......@@ -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.
......
......@@ -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;
}
......
......@@ -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.
......
......@@ -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.
......@@ -24,6 +25,10 @@ public class ChromeNativeTestApplication extends ChromiumApplication {
protected void showTermsOfServiceDialog() {
}
@Override
protected void openClearBrowsingData(Tab tab) {
}
@Override
protected boolean areParentalControlsEnabled() {
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