• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_COOKIES_VIEW_HANDLER_H_
6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_COOKIES_VIEW_HANDLER_H_
7 #pragma once
8 
9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/cookies_tree_model.h"
11 #include "chrome/browser/ui/webui/options/options_ui.h"
12 
13 class CookiesViewHandler : public OptionsPageUIHandler,
14                            public CookiesTreeModel::Observer {
15  public:
16   CookiesViewHandler();
17   virtual ~CookiesViewHandler();
18 
19   // OptionsPageUIHandler implementation.
20   virtual void GetLocalizedValues(DictionaryValue* localized_strings);
21   virtual void RegisterMessages();
22 
23   // ui::TreeModel::Observer implementation.
24   virtual void TreeNodesAdded(ui::TreeModel* model,
25                               ui::TreeModelNode* parent,
26                               int start,
27                               int count);
28   virtual void TreeNodesRemoved(ui::TreeModel* model,
29                                 ui::TreeModelNode* parent,
30                                 int start,
31                                 int count);
TreeNodeChanged(ui::TreeModel * model,ui::TreeModelNode * node)32   virtual void TreeNodeChanged(ui::TreeModel* model, ui::TreeModelNode* node) {}
33   virtual void TreeModelBeginBatch(CookiesTreeModel* model);
34   virtual void TreeModelEndBatch(CookiesTreeModel* model);
35 
36  private:
37   // Creates the CookiesTreeModel if neccessary.
38   void EnsureCookiesTreeModelCreated();
39 
40   // Updates search filter for cookies tree model.
41   void UpdateSearchResults(const ListValue* args);
42 
43   // Remove all sites data.
44   void RemoveAll(const ListValue* args);
45 
46   // Remove selected sites data.
47   void Remove(const ListValue* args);
48 
49   // Get the tree node using the tree path info in |args| and call
50   // SendChildren to pass back children nodes data to WebUI.
51   void LoadChildren(const ListValue* args);
52 
53   // Get children nodes data and pass it to 'CookiesView.loadChildren' to
54   // update the WebUI.
55   void SendChildren(CookieTreeNode* parent);
56 
57   // The Cookies Tree model
58   scoped_ptr<CookiesTreeModel> cookies_tree_model_;
59 
60   // Flag to indicate whether there is a batch update in progress.
61   bool batch_update_;
62 
63   DISALLOW_COPY_AND_ASSIGN(CookiesViewHandler);
64 };
65 
66 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_COOKIES_VIEW_HANDLER_H_
67