cookies_view_handler.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
197bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten// Copyright (c) 2012 The Chromium Authors. All rights reserved. 297bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten// Use of this source code is governed by a BSD-style license that can be 397bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten// found in the LICENSE file. 497bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 597bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_COOKIES_VIEW_HANDLER_H_ 697bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#define CHROME_BROWSER_UI_WEBUI_OPTIONS_COOKIES_VIEW_HANDLER_H_ 797bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 897bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#include "base/compiler_specific.h" 997bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#include "base/memory/scoped_ptr.h" 1097bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#include "chrome/browser/browsing_data/cookies_tree_model.h" 1197bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten#include "chrome/browser/ui/webui/options/options_ui.h" 1297bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 1397bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kastenclass CookiesTreeModelUtil; 1497bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 1597bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kastennamespace options { 1697bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 1797bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kastenclass CookiesViewHandler : public OptionsPageUIHandler, 1897bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten public CookiesTreeModel::Observer { 1997bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten public: 20b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten CookiesViewHandler(); 2197bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten virtual ~CookiesViewHandler(); 2297bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 2397bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten // OptionsPageUIHandler implementation. 2497bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten virtual void GetLocalizedValues( 2597bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten base::DictionaryValue* localized_strings) OVERRIDE; 2697bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten virtual void RegisterMessages() OVERRIDE; 2797bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 28b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // CookiesTreeModel::Observer implementation. 29b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten virtual void TreeNodesAdded(ui::TreeModel* model, 3097bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten ui::TreeModelNode* parent, 31b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten int start, 3297bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten int count) OVERRIDE; 33b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten virtual void TreeNodesRemoved(ui::TreeModel* model, 34b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten ui::TreeModelNode* parent, 35b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten int start, 36ad1ab1d13a9b043202b9d5cdc1d8c4ef66cbbca8Glenn Kasten int count) OVERRIDE; 3797bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten virtual void TreeNodeChanged(ui::TreeModel* model, 38b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten ui::TreeModelNode* node) OVERRIDE {} 39b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten virtual void TreeModelBeginBatch(CookiesTreeModel* model) OVERRIDE; 40b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten virtual void TreeModelEndBatch(CookiesTreeModel* model) OVERRIDE; 4197bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 42b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten private: 4397bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten // Creates the CookiesTreeModel if neccessary. 44b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void EnsureCookiesTreeModelCreated(); 45b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 46b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Updates search filter for cookies tree model. 47b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void UpdateSearchResults(const base::ListValue* args); 48b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 49b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Remove all sites data. 50b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void RemoveAll(const base::ListValue* args); 51b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 52b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Remove selected sites data. 53b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void Remove(const base::ListValue* args); 54b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 55b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Get the tree node using the tree path info in |args| and call 56b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // SendChildren to pass back children nodes data to WebUI. 57b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void LoadChildren(const base::ListValue* args); 58b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 59b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Get children nodes data and pass it to 'CookiesView.loadChildren' to 60b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // update the WebUI. 61b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten void SendChildren(const CookieTreeNode* parent); 62b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 63b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten // Reloads the CookiesTreeModel and passes the nodes to 6497bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten // 'CookiesView.loadChildren' to update the WebUI. 6597bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten void ReloadCookies(const base::ListValue* args); 6697bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 6797bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten // The Cookies Tree model 6897bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten scoped_ptr<CookiesTreeModel> cookies_tree_model_; 6997bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 7097bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten // Flag to indicate whether there is a batch update in progress. 71b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten bool batch_update_; 72b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 73b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten scoped_ptr<CookiesTreeModelUtil> model_util_; 74b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 75b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten DISALLOW_COPY_AND_ASSIGN(CookiesViewHandler); 7697bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten}; 77b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten 7897bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten} // namespace options 7997bdbe13fc48640babe6c1ce270660476f04c3dfGlenn Kasten 80b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_COOKIES_VIEW_HANDLER_H_ 81b66b0745d45f4c0c7620749185f7fb3306804ce3Glenn Kasten