[Webkit-unassigned] [Bug 27202] Inspector: Cookies in Storage Panel
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Aug 7 20:43:20 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=27202
Timothy Hatcher <timothy at hatcher.name> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #32643|review? |review-
Flag| |
--- Comment #8 from Timothy Hatcher <timothy at hatcher.name> 2009-08-07 20:43:19 PDT ---
(From update of attachment 32643)
You should describe more about the change in the ChangeLog. I know this was one
of your first patches, you do great now!
> + * Copyright (C) 2009 Apple Inc. All rights reserved.
You should add your and not Apple on all new files.
> +WebInspector.CookieDataGrid.prototype = {
> +
> + deleteSelectedRow: function(callback)
> + {
> + var node = this.selectedNode;
> + var key = node.data[0];
> + var expire = 'Thu, 01 Jan 1970 00:00:00 GMT'; // (new Date(0)).toGMTString();
> + var evalStr = 'document.cookie = "'+ key + '=; expires=' + expire + '; path=/";' +
> + 'document.cookie = "'+ key + '=; expires=' + expire + '";';
> + WebInspector.console.doEvalInWindow(evalStr, callback);
> + }
> +}
You should need to make a new DataGrid subclass just for this method. Can the
CookieItemsView just handle this one thing?
> + if (this._dataGrid) {
> + this._dataGrid.deleteSelectedRow( this.update.bind(this) );
> + }
No need for the braces. No need for the spaces.
> + buildCookies: function()
> + {
> + var rawCookieString = InspectorController.inspectedWindow().document.cookie;
> + var rawCookies = rawCookieString.split(/;\s*/);
> + var cookies = {};
> + cookies.list = [];
> +
> + if (!(/^\s*$/.test(rawCookieString))) {
> + for (var i = 0, len = rawCookies.length; i < len; ++i) {
> + var cookie = rawCookies[i];
> + var sep = cookie.indexOf('=');
> + var name = cookie.substring(0, sep);
> + var value = cookie.substring(sep+1);
> + cookies.list.push(new WebInspector.Cookie(name, value));
> + }
> + }
> +
> + this._cookies = cookies;
> + return cookies;
> + },
I would be good if the View did this work and not the DatabasesPanel.
> + dataGridForCookies: function()
> + {
> + this.buildCookies();
> + var cookies = this._cookies;
> + if ( !cookies.list.length )
> + return null;
> +
> + var columns = {};
> + columns[0] = {};
> + columns[1] = {};
> + columns[0].title = WebInspector.UIString("Key");
> + columns[0].width = columns[0].title.length;
> + columns[1].title = WebInspector.UIString("Value");
> + columns[1].width = columns[0].title.length;
> +
> + var nodes = [];
> +
> + var list = cookies.list;
> + var length = list.length;
> + for (var index = 0; index < list.length; index++) {
> + var cookie = list[index];
> + var data = {};
> +
> + var key = cookie.key;
> + data[0] = key;
> + if (key.length > columns[0].width)
> + columns[0].width = key.length;
> +
> + var value = cookie.value;
> + data[1] = value;
> + if (value.length > columns[1].width)
> + columns[1].width = value.length;
> +
> + var node = new WebInspector.DataGridNode(data, false);
> + node.selectable = true;
> + nodes.push(node);
> + }
> +
> + var totalColumnWidths = columns[0].width + columns[1].width;
> + width = Math.round((columns[0].width * 100) / totalColumnWidths);
> + const minimumPrecent = 15;
> + if (width < minimumPrecent)
> + width = minimumPrecent;
> + if (width > 100 - minimumPrecent)
> + width = 100 - minimumPrecent;
> + columns[0].width = width;
> + columns[1].width = 100 - width;
> + columns[0].width += "%";
> + columns[1].width += "%";
> +
> + var dataGrid = new WebInspector.CookieDataGrid(columns);
> + var length = nodes.length;
> + for (var i = 0; i < length; ++i)
> + dataGrid.appendChild(nodes[i]);
> + if (length > 0)
> + nodes[0].selected = true;
> + return dataGrid;
> +
> + },
I know this matches how the other data grids are made, but I think this should
be up to the views. This model was done for databases so two views could share
code. But some day we should make DatabasesPanel a very slim Panel subclass
that just manages the sidebar and active view.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list