summaryrefslogtreecommitdiff
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r--src/com/android/browser/Controller.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 2d716a8d..f01f58e8 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -688,6 +688,11 @@ public class Controller
return;
}
mSettings.setLastRunPaused(false);
+
+ // delete cookies (and localstorage) early in the resume to
+ // avoid potential races with regular cookie reads and writes.
+ mSettings.clearCookiesExceptWhitelist();
+
mActivityPaused = false;
Tab current = mTabControl.getCurrentTab();
if (current != null) {
@@ -1483,12 +1488,14 @@ public class Controller
boolean canGoForward = false;
boolean isHome = false;
boolean isDesktopUa = false;
+ boolean hasCookiesWhitelisted = false;
boolean isLive = false;
if (tab != null) {
canGoBack = tab.canGoBack();
canGoForward = tab.canGoForward();
isHome = mSettings.getHomePage().equals(tab.getUrl());
isDesktopUa = mSettings.hasDesktopUseragent(tab.getWebView());
+ hasCookiesWhitelisted = mSettings.hasCookiesWhitelisted(tab.getWebView());
isLive = !tab.isSnapshot();
}
final MenuItem back = menu.findItem(R.id.back_menu_id);
@@ -1529,6 +1536,11 @@ public class Controller
menu.setGroupVisible(R.id.SNAPSHOT_MENU, !isLive);
menu.setGroupVisible(R.id.COMBO_MENU, false);
+ // individual Visible needs to be after the group setting
+ final MenuItem cwSwitcher = menu.findItem(R.id.cookies_whitelisted_menu_id);
+ cwSwitcher.setChecked(hasCookiesWhitelisted);
+ cwSwitcher.setVisible(isLive && mSettings.enableDeleteCookies());
+
mUi.updateMenuState(tab, menu);
}
@@ -1656,6 +1668,10 @@ public class Controller
toggleUserAgent();
break;
+ case R.id.cookies_whitelisted_menu_id:
+ toggleCookiesWhitelisted();
+ break;
+
case R.id.window_one_menu_id:
case R.id.window_two_menu_id:
case R.id.window_three_menu_id:
@@ -1693,6 +1709,12 @@ public class Controller
}
@Override
+ public void toggleCookiesWhitelisted() {
+ WebView web = getCurrentWebView();
+ mSettings.toggleCookiesWhitelisted(web);
+ }
+
+ @Override
public void findOnPage() {
getCurrentTopWebView().showFindDialog(null, true);
}