Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: chrome/browser/resources/options2/cookies_list.js

Issue 10096013: Merge 132375 - Fix cookies list. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1084/src/
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('options', function() { 5 cr.define('options', function() {
6 /** @const */ var DeletableItemList = options.DeletableItemList; 6 /** @const */ var DeletableItemList = options.DeletableItemList;
7 /** @const */ var DeletableItem = options.DeletableItem; 7 /** @const */ var DeletableItem = options.DeletableItem;
8 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; 8 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
9 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; 9 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel;
10 10
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 */ 607 */
608 var CookiesList = cr.ui.define('list'); 608 var CookiesList = cr.ui.define('list');
609 609
610 CookiesList.prototype = { 610 CookiesList.prototype = {
611 __proto__: DeletableItemList.prototype, 611 __proto__: DeletableItemList.prototype,
612 612
613 /** @inheritDoc */ 613 /** @inheritDoc */
614 decorate: function() { 614 decorate: function() {
615 DeletableItemList.prototype.decorate.call(this); 615 DeletableItemList.prototype.decorate.call(this);
616 this.classList.add('cookie-list'); 616 this.classList.add('cookie-list');
617 this.data_ = []; 617 this.dataModel = new ArrayDataModel([]);
618 this.dataModel = new ArrayDataModel(this.data_);
619 this.addEventListener('keydown', this.handleKeyLeftRight_.bind(this)); 618 this.addEventListener('keydown', this.handleKeyLeftRight_.bind(this));
620 var sm = new ListSingleSelectionModel(); 619 var sm = new ListSingleSelectionModel();
621 sm.addEventListener('change', this.cookieSelectionChange_.bind(this)); 620 sm.addEventListener('change', this.cookieSelectionChange_.bind(this));
622 sm.addEventListener('leadIndexChange', this.cookieLeadChange_.bind(this)); 621 sm.addEventListener('leadIndexChange', this.cookieLeadChange_.bind(this));
623 this.selectionModel = sm; 622 this.selectionModel = sm;
624 this.infoNodes = {}; 623 this.infoNodes = {};
625 this.fixedHeight = false; 624 this.fixedHeight = false;
626 var doc = this.ownerDocument; 625 var doc = this.ownerDocument;
627 // Create a table for each type of site data (e.g. cookies, databases, 626 // Create a table for each type of site data (e.g. cookies, databases,
628 // etc.) and save it so that we can reuse it for all origins. 627 // etc.) and save it so that we can reuse it for all origins.
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 // We use the cached expanded item in order to allow it to maintain some 731 // We use the cached expanded item in order to allow it to maintain some
733 // state (like its fixed height, and which bubble is selected). 732 // state (like its fixed height, and which bubble is selected).
734 if (this.expandedItem && this.expandedItem.origin == data) 733 if (this.expandedItem && this.expandedItem.origin == data)
735 return this.expandedItem; 734 return this.expandedItem;
736 return new CookieListItem(data, this); 735 return new CookieListItem(data, this);
737 }, 736 },
738 737
739 // from options.DeletableItemList 738 // from options.DeletableItemList
740 /** @inheritDoc */ 739 /** @inheritDoc */
741 deleteItemAtIndex: function(index) { 740 deleteItemAtIndex: function(index) {
742 var item = this.data_[index]; 741 var item = this.dataModel.item(index);
743 if (item) { 742 if (item) {
744 var pathId = item.pathId; 743 var pathId = item.pathId;
745 if (pathId) 744 if (pathId)
746 chrome.send('removeCookie', [pathId]); 745 chrome.send('removeCookie', [pathId]);
747 } 746 }
748 }, 747 },
749 748
750 /** 749 /**
751 * Insert the given list of cookie tree nodes at the given index. 750 * Insert the given list of cookie tree nodes at the given index.
752 * Both CookiesList and CookieTreeNode implement this API. 751 * Both CookiesList and CookieTreeNode implement this API.
753 * @param {Array.<Object>} data The data objects for the nodes to add. 752 * @param {Array.<Object>} data The data objects for the nodes to add.
754 * @param {number} start The index at which to start inserting the nodes. 753 * @param {number} start The index at which to start inserting the nodes.
755 */ 754 */
756 insertAt: function(data, start) { 755 insertAt: function(data, start) {
757 spliceTreeNodes(data, start, this.dataModel); 756 spliceTreeNodes(data, start, this.dataModel);
758 }, 757 },
759 758
760 /** 759 /**
761 * Remove a cookie tree node from the given index. 760 * Remove a cookie tree node from the given index.
762 * Both CookiesList and CookieTreeNode implement this API. 761 * Both CookiesList and CookieTreeNode implement this API.
763 * @param {number} index The index of the tree node to remove. 762 * @param {number} index The index of the tree node to remove.
764 */ 763 */
765 remove: function(index) { 764 remove: function(index) {
766 if (index < this.data_.length) 765 if (index < this.dataModel.length)
767 this.dataModel.splice(index, 1); 766 this.dataModel.splice(index, 1);
768 }, 767 },
769 768
770 /** 769 /**
771 * Clears the list. 770 * Clears the list.
772 * Both CookiesList and CookieTreeNode implement this API. 771 * Both CookiesList and CookieTreeNode implement this API.
773 * It is used by CookiesList.loadChildren(). 772 * It is used by CookiesList.loadChildren().
774 */ 773 */
775 clear: function() { 774 clear: function() {
776 parentLookup = {}; 775 parentLookup = {};
777 this.data_ = []; 776 this.dataModel.splice(0, this.dataModel.length);
778 this.dataModel = new ArrayDataModel(this.data_);
779 this.redraw(); 777 this.redraw();
780 }, 778 },
781 779
782 /** 780 /**
783 * Add tree nodes by given parent. 781 * Add tree nodes by given parent.
784 * @param {Object} parent The parent node. 782 * @param {Object} parent The parent node.
785 * @param {number} start The index at which to start inserting the nodes. 783 * @param {number} start The index at which to start inserting the nodes.
786 * @param {Array} nodesData Nodes data array. 784 * @param {Array} nodesData Nodes data array.
787 * @private 785 * @private
788 */ 786 */
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 parent.clear(); 844 parent.clear();
847 this.addByParent_(parent, 0, children); 845 this.addByParent_(parent, 0, children);
848 parent.endBatchUpdates(); 846 parent.endBatchUpdates();
849 }, 847 },
850 }; 848 };
851 849
852 return { 850 return {
853 CookiesList: CookiesList 851 CookiesList: CookiesList
854 }; 852 };
855 }); 853 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698