Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / resources / options / cookies_view.js
blob4d496684c428f87e17841876cdf7252ac3be9fa6
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.
5 cr.define('options', function() {
7   var OptionsPage = options.OptionsPage;
9   /////////////////////////////////////////////////////////////////////////////
10   // CookiesView class:
12   /**
13    * Encapsulated handling of the cookies and other site data page.
14    * @constructor
15    */
16   function CookiesView(model) {
17     OptionsPage.call(this, 'cookies',
18                      loadTimeData.getString('cookiesViewPageTabTitle'),
19                      'cookies-view-page');
20   }
22   cr.addSingletonGetter(CookiesView);
24   CookiesView.prototype = {
25     __proto__: OptionsPage.prototype,
27     /**
28      * The timer id of the timer set on search query change events.
29      * @type {number}
30      * @private
31      */
32     queryDelayTimerId_: 0,
34     /**
35      * The most recent search query, empty string if the query is empty.
36      * @type {string}
37      * @private
38      */
39     lastQuery_: '',
41     initializePage: function() {
42       OptionsPage.prototype.initializePage.call(this);
44       var searchBox = this.pageDiv.querySelector('.cookies-search-box');
45       searchBox.addEventListener(
46           'search', this.handleSearchQueryChange_.bind(this));
47       searchBox.onkeydown = function(e) {
48         // Prevent the overlay from handling this event.
49         if (e.keyIdentifier == 'Enter')
50           e.stopPropagation();
51       };
53       this.pageDiv.querySelector('.remove-all-cookies-button').onclick =
54           function(e) {
55             chrome.send('removeAllCookies');
56           };
58       var cookiesList = this.pageDiv.querySelector('.cookies-list');
59       options.CookiesList.decorate(cookiesList);
61       this.addEventListener('visibleChange', this.handleVisibleChange_);
63       this.pageDiv.querySelector('.cookies-view-overlay-confirm').onclick =
64           OptionsPage.closeOverlay.bind(OptionsPage);
65     },
67     /** @override */
68     didShowPage: function() {
69       this.pageDiv.querySelector('.cookies-search-box').value = '';
70       this.lastQuery_ = '';
71     },
73     /**
74      * Search cookie using text in |cookies-search-box|.
75      */
76     searchCookie: function() {
77       this.queryDelayTimerId_ = 0;
78       var filter = this.pageDiv.querySelector('.cookies-search-box').value;
79       if (this.lastQuery_ != filter) {
80         this.lastQuery_ = filter;
81         chrome.send('updateCookieSearchResults', [filter]);
82       }
83     },
85     /**
86      * Handles search query changes.
87      * @param {!Event} e The event object.
88      * @private
89      */
90     handleSearchQueryChange_: function(e) {
91       if (this.queryDelayTimerId_)
92         window.clearTimeout(this.queryDelayTimerId_);
94       this.queryDelayTimerId_ = window.setTimeout(
95           this.searchCookie.bind(this), 500);
96     },
98     initialized_: false,
100     /**
101      * Handler for OptionsPage's visible property change event.
102      * @param {Event} e Property change event.
103      * @private
104      */
105     handleVisibleChange_: function(e) {
106       if (!this.visible)
107         return;
109       chrome.send('reloadCookies');
111       if (!this.initialized_) {
112         this.initialized_ = true;
113         this.searchCookie();
114       } else {
115         this.pageDiv.querySelector('.cookies-list').redraw();
116       }
118       this.pageDiv.querySelector('.cookies-search-box').focus();
119     },
120   };
122   // CookiesViewHandler callbacks.
123   CookiesView.onTreeItemAdded = function(args) {
124     $('cookies-list').addByParentId(args[0], args[1], args[2]);
125   };
127   CookiesView.onTreeItemRemoved = function(args) {
128     $('cookies-list').removeByParentId(args[0], args[1], args[2]);
129   };
131   CookiesView.loadChildren = function(args) {
132     $('cookies-list').loadChildren(args[0], args[1]);
133   };
135   // Export
136   return {
137     CookiesView: CookiesView
138   };