diff options
Diffstat (limited to 'src/com/android/browser/Controller.java')
| -rw-r--r-- | src/com/android/browser/Controller.java | 22 |
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); } |
