Home | History | Annotate | Download | only in options
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_CLEAR_BROWSER_DATA_HANDLER_H_
      6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_CLEAR_BROWSER_DATA_HANDLER_H_
      7 
      8 #include "base/prefs/pref_member.h"
      9 #include "chrome/browser/browsing_data/browsing_data_remover.h"
     10 #include "chrome/browser/ui/webui/options/options_ui.h"
     11 
     12 namespace options {
     13 
     14 // Clear browser data handler page UI handler.
     15 class ClearBrowserDataHandler : public OptionsPageUIHandler,
     16                                 public BrowsingDataRemover::Observer {
     17  public:
     18   ClearBrowserDataHandler();
     19   virtual ~ClearBrowserDataHandler();
     20 
     21   // OptionsPageUIHandler implementation.
     22   virtual void GetLocalizedValues(
     23       base::DictionaryValue* localized_strings) OVERRIDE;
     24   virtual void InitializeHandler() OVERRIDE;
     25   virtual void InitializePage() OVERRIDE;
     26 
     27   // WebUIMessageHandler implementation.
     28   virtual void RegisterMessages() OVERRIDE;
     29 
     30   void UpdateInfoBannerVisibility();
     31 
     32  private:
     33   // Javascript callback to start clearing data.
     34   void HandleClearBrowserData(const base::ListValue* value);
     35 
     36   // BrowsingDataRemover::Observer implementation.
     37   // Closes the dialog once all requested data has been removed.
     38   virtual void OnBrowsingDataRemoverDone() OVERRIDE;
     39 
     40   // Updates UI when the pref to allow clearing history changes.
     41   virtual void OnBrowsingHistoryPrefChanged();
     42 
     43   // If non-null it means removal is in progress. BrowsingDataRemover takes care
     44   // of deleting itself when done.
     45   BrowsingDataRemover* remover_;
     46 
     47   // Keeps track of whether clearing LSO data is supported.
     48   BooleanPrefMember clear_plugin_lso_data_enabled_;
     49 
     50   // Keeps track of whether Pepper Flash is enabled and thus Flapper-specific
     51   // settings and removal options (e.g. Content Licenses) are available.
     52   BooleanPrefMember pepper_flash_settings_enabled_;
     53 
     54   // Keeps track of whether deleting browsing history and downloads is allowed.
     55   BooleanPrefMember allow_deleting_browser_history_;
     56 
     57   DISALLOW_COPY_AND_ASSIGN(ClearBrowserDataHandler);
     58 };
     59 
     60 }  // namespace options
     61 
     62 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CLEAR_BROWSER_DATA_HANDLER_H_
     63