Index: chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java |
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 a2e9385f621d736a2f4e3b1c181817056e4f11f5..346a83a51cc94c547934611b45c0a24ffd78fb6f 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromiumApplication.java |
@@ -6,17 +6,23 @@ package org.chromium.chrome.browser; |
import android.app.Activity; |
import android.content.Context; |
+import android.content.Intent; |
import android.os.Build; |
+import android.os.Bundle; |
+import android.util.Log; |
import org.chromium.base.CalledByNative; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.library_loader.LibraryProcessType;; |
import org.chromium.base.library_loader.ProcessInitException; |
+import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; |
import org.chromium.chrome.browser.preferences.LocationSettings; |
+import org.chromium.chrome.browser.preferences.Preferences; |
import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
import org.chromium.chrome.browser.preferences.ProtectedContentPreferences; |
import org.chromium.chrome.browser.preferences.autofill.AutofillPreferences; |
import org.chromium.chrome.browser.preferences.password.ManageSavedPasswordsPreferences; |
+import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferences; |
import org.chromium.content.app.ContentApplication; |
import org.chromium.content.browser.BrowserStartupController; |
@@ -26,6 +32,8 @@ import org.chromium.content.browser.BrowserStartupController; |
*/ |
public abstract class ChromiumApplication extends ContentApplication { |
+ private static final String TAG = "ChromiumApplication"; |
+ |
/** |
* Returns whether the Activity is being shown in multi-window mode. |
*/ |
@@ -96,14 +104,29 @@ public abstract class ChromiumApplication extends ContentApplication { |
* @param tab The tab that triggered the request. |
*/ |
@CalledByNative |
- protected void openClearBrowsingData(Tab tab) {} |
+ protected void openClearBrowsingData(Tab tab) { |
+ Activity activity = tab.getWindowAndroid().getActivity().get(); |
+ if (activity == null) { |
+ Log.e(TAG, |
+ "Attempting to open clear browsing data for a tab without a valid activity"); |
+ return; |
+ } |
+ Intent intent = PreferencesLauncher.createIntentForSettingsPage(activity, |
+ PrivacyPreferences.class.getName()); |
+ Bundle arguments = new Bundle(); |
+ arguments.putBoolean(PrivacyPreferences.SHOW_CLEAR_BROWSING_DATA_EXTRA, true); |
+ intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, arguments); |
+ activity.startActivity(intent); |
+ } |
/** |
* @return Whether parental controls are enabled. Returning true will disable |
* incognito mode. |
*/ |
@CalledByNative |
- protected abstract boolean areParentalControlsEnabled(); |
+ protected boolean areParentalControlsEnabled() { |
+ return PartnerBrowserCustomizations.isIncognitoDisabled(); |
+ } |
// TODO(yfriedman): This is too widely available. Plumb this through ChromeNetworkDelegate |
// instead. |