Changeset 259744 in webkit
- Timestamp:
- Apr 8, 2020, 12:16:34 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 10 added
- 16 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/inspector/storage/clearDOMStorageItems-expected.txt (added)
-
LayoutTests/inspector/storage/clearDOMStorageItems.html (added)
-
LayoutTests/inspector/storage/domStorage-events-expected.txt (modified) (2 diffs)
-
LayoutTests/inspector/storage/domStorage-events.html (modified) (4 diffs)
-
LayoutTests/inspector/storage/getDOMStorageItems-expected.txt (added)
-
LayoutTests/inspector/storage/getDOMStorageItems.html (added)
-
LayoutTests/inspector/storage/removeDOMStorageItem-expected.txt (added)
-
LayoutTests/inspector/storage/removeDOMStorageItem.html (added)
-
LayoutTests/inspector/storage/resources (added)
-
LayoutTests/inspector/storage/resources/storage-utilities.js (added)
-
LayoutTests/inspector/storage/setDOMStorageItem-expected.txt (added)
-
LayoutTests/inspector/storage/setDOMStorageItem.html (added)
-
Source/JavaScriptCore/ChangeLog (modified) (1 diff)
-
Source/JavaScriptCore/inspector/protocol/DOMStorage.json (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/inspector/agents/InspectorDOMStorageAgent.cpp (modified) (1 diff)
-
Source/WebCore/inspector/agents/InspectorDOMStorageAgent.h (modified) (1 diff)
-
Source/WebInspectorUI/ChangeLog (modified) (1 diff)
-
Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/Models/DOMStorageObject.js (modified) (4 diffs)
-
Source/WebInspectorUI/UserInterface/Protocol/DOMStorageObserver.js (modified) (1 diff)
-
Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js (modified) (3 diffs)
-
Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js (modified) (3 diffs)
-
Source/WebInspectorUI/UserInterface/Views/DataGrid.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r259736 r259744 1 2020-04-08 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Storage: cannot clear out multiple or all local storage entries 4 https://bugs.webkit.org/show_bug.cgi?id=209867 5 6 Reviewed by Timothy Hatcher. 7 8 * inspector/storage/clearDOMStorageItems.html: Added. 9 * inspector/storage/clearDOMStorageItems-expected.txt: Added. 10 * inspector/storage/domStorage-events.html: 11 * inspector/storage/domStorage-events-expected.txt: 12 * inspector/storage/getDOMStorageItems.html: Added. 13 * inspector/storage/getDOMStorageItems-expected.txt: Added. 14 * inspector/storage/removeDOMStorageItem.html: Added. 15 * inspector/storage/removeDOMStorageItem-expected.txt: Added. 16 * inspector/storage/setDOMStorageItem.html: Added. 17 * inspector/storage/setDOMStorageItem-expected.txt: Added. 18 * inspector/storage/resources/storage-utilities.js: Added. 19 (clearStorages): 20 (TestPage.registerInitializer.InspectorTest.Storage.async logEntries): 21 1 22 2020-04-08 Diego Pino Garcia <dpino@igalia.com> 2 23 -
trunk/LayoutTests/inspector/storage/domStorage-events-expected.txt
r220119 r259744 14 14 PASS: Should update key 'x'. 15 15 PASS: Should have oldValue 'value1'. 16 PASS: Should have new value 'value2'.16 PASS: Should have newValue 'value2'. 17 17 PASS: WI.DOMStorageObject.Event.ItemRemoved 18 18 PASS: Should remove key 'x'. … … 30 30 PASS: Should update key 'x'. 31 31 PASS: Should have oldValue 'value1'. 32 PASS: Should have new value 'value2'.32 PASS: Should have newValue 'value2'. 33 33 PASS: WI.DOMStorageObject.Event.ItemRemoved 34 34 PASS: Should remove key 'x'. -
trunk/LayoutTests/inspector/storage/domStorage-events.html
r236766 r259744 26 26 if (count === 1) { 27 27 InspectorTest.pass("WI.DOMStorageObject.Event.ItemAdded"); 28 InspectorTest.expect That(event.data.key ==="foo", "Should add key 'foo'.");29 InspectorTest.expect That(event.data.value ==="value1", "Should have value 'value1'.");28 InspectorTest.expectEqual(event.data.key, "foo", "Should add key 'foo'."); 29 InspectorTest.expectEqual(event.data.value, "value1", "Should have value 'value1'."); 30 30 return; 31 31 } … … 33 33 if (count === 2) { 34 34 InspectorTest.pass("WI.DOMStorageObject.Event.ItemAdded"); 35 InspectorTest.expect That(event.data.key ==="x", "Should add key 'x'.");36 InspectorTest.expect That(event.data.value ==="xvalue", "Should have value 'xvalue'.");35 InspectorTest.expectEqual(event.data.key, "x", "Should add key 'x'."); 36 InspectorTest.expectEqual(event.data.value, "xvalue", "Should have value 'xvalue'."); 37 37 return; 38 38 } … … 44 44 .then((event) => { 45 45 InspectorTest.pass("WI.DOMStorageObject.Event.ItemRemoved"); 46 InspectorTest.expect That(event.data.key ==="foo", "Should remove key 'x'.");46 InspectorTest.expectEqual(event.data.key, "foo", "Should remove key 'x'."); 47 47 }); 48 48 … … 50 50 .then((event) => { 51 51 InspectorTest.pass("WI.DOMStorageObject.Event.ItemUpdated"); 52 InspectorTest.expect That(event.data.key ==="foo", "Should update key 'x'.");53 InspectorTest.expect That(event.data.oldValue ==="value1", "Should have oldValue 'value1'.");54 InspectorTest.expect That(event.data.value === "value2", "Should have new value 'value2'.");52 InspectorTest.expectEqual(event.data.key, "foo", "Should update key 'x'."); 53 InspectorTest.expectEqual(event.data.oldValue, "value1", "Should have oldValue 'value1'."); 54 InspectorTest.expectEqual(event.data.newValue, "value2", "Should have newValue 'value2'."); 55 55 }); 56 56 -
trunk/Source/JavaScriptCore/ChangeLog
r259742 r259744 1 2020-04-08 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Storage: cannot clear out multiple or all local storage entries 4 https://bugs.webkit.org/show_bug.cgi?id=209867 5 6 Reviewed by Timothy Hatcher. 7 8 * inspector/protocol/DOMStorage.json: 9 Add a `clearDOMStorageItems` command instead of calling `removeDOMStorageItem` for each key. 10 1 11 2020-04-08 Yusuke Suzuki <ysuzuki@apple.com> 2 12 -
trunk/Source/JavaScriptCore/inspector/protocol/DOMStorage.json
r251227 r259744 53 53 { "name": "key", "type": "string" } 54 54 ] 55 }, 56 { 57 "name": "clearDOMStorageItems", 58 "parameters": [ 59 { "name": "storageId", "$ref": "StorageId" } 60 ] 55 61 } 56 62 ], -
trunk/Source/WebCore/ChangeLog
r259737 r259744 1 2020-04-08 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Storage: cannot clear out multiple or all local storage entries 4 https://bugs.webkit.org/show_bug.cgi?id=209867 5 6 Reviewed by Timothy Hatcher. 7 8 Tests: inspector/storage/clearDOMStorageItems.html 9 inspector/storage/getDOMStorageItems.html 10 inspector/storage/removeDOMStorageItem.html 11 inspector/storage/setDOMStorageItem.html 12 13 * inspector/agents/InspectorDOMStorageAgent.h: 14 * inspector/agents/InspectorDOMStorageAgent.cpp: 15 (WebCore::InspectorDOMStorageAgent::clearDOMStorageItems): Added. 16 Add a `clearDOMStorageItems` command instead of calling `removeDOMStorageItem` for each key. 17 1 18 2020-04-08 Kenneth Russell <kbr@chromium.org> 2 19 -
trunk/Source/WebCore/inspector/agents/InspectorDOMStorageAgent.cpp
r249132 r259744 146 146 } 147 147 148 void InspectorDOMStorageAgent::clearDOMStorageItems(ErrorString& errorString, const JSON::Object& storageId) 149 { 150 Frame* frame; 151 auto storageArea = findStorageArea(errorString, storageId, frame); 152 if (!storageArea) { 153 errorString = "Missing storage for given storageId"_s; 154 return; 155 } 156 157 storageArea->clear(frame); 158 } 159 148 160 String InspectorDOMStorageAgent::storageId(Storage& storage) 149 161 { -
trunk/Source/WebCore/inspector/agents/InspectorDOMStorageAgent.h
r250996 r259744 65 65 void setDOMStorageItem(ErrorString&, const JSON::Object& storageId, const String& key, const String& value) override; 66 66 void removeDOMStorageItem(ErrorString&, const JSON::Object& storageId, const String& key) override; 67 void clearDOMStorageItems(ErrorString&, const JSON::Object& storageId) override; 67 68 68 69 // InspectorInstrumentation -
trunk/Source/WebInspectorUI/ChangeLog
r259741 r259744 1 2020-04-08 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Storage: cannot clear out multiple or all local storage entries 4 https://bugs.webkit.org/show_bug.cgi?id=209867 5 6 Reviewed by Timothy Hatcher. 7 8 * UserInterface/Models/DOMStorageObject.js: 9 (WI.DOMStorageObject.prototype.removeItem): 10 (WI.DOMStorageObject.prototype.setItem): 11 (WI.DOMStorageObject.prototype.clear): Added. 12 (WI.DOMStorageObject.prototype.itemsCleared): 13 (WI.DOMStorageObject.prototype.itemRemoved): 14 (WI.DOMStorageObject.prototype.itemAdded): 15 (WI.DOMStorageObject.prototype.itemUpdated): 16 Add some assertions. 17 18 * UserInterface/Views/DOMStorageContentView.js: 19 (WI.DOMStorageContentView): 20 (WI.DOMStorageContentView.prototype.get navigationItems): 21 (WI.DOMStorageContentView.prototype._handleClearNavigationItemClicked): Added. 22 Add a "Clear" navigation item that calls the new `DOMStorage.clearDOMStorageItems`. 23 24 * UserInterface/Views/DataGrid.js: 25 (WI.DataGrid.prototype.removeChild): 26 If the removed item was selected, select the next (or previous if there is no next) item. 27 28 * UserInterface/Views/CookieStorageContentView.js: 29 (WI.CookieStorageContentView): 30 (WI.CookieStorageContentView.prototype.get navigationItems): 31 (WI.CookieStorageContentView.prototype._handleClearNavigationItemClicked): Added. 32 Drive-by: also add a "Clear" navigation item that calls `Page.deleteCookie` for each row. 33 34 * UserInterface/Protocol/DOMStorageObserver.js: 35 (WI.DOMStorageObserver.prototype.domStorageItemUpdated): 36 * UserInterface/Controllers/DOMStorageManager.js: 37 (WI.DOMStorageManager.prototype.itemUpdated): 38 Drive-by: rename `value` to `newValue` to match the protocol. 39 40 * Localizations/en.lproj/localizedStrings.js: 41 1 42 2020-04-08 Devin Rousso <drousso@apple.com> 2 43 -
trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
r259437 r259744 265 265 localizedStrings["Clamp to sRGB"] = "Clamp to sRGB"; 266 266 localizedStrings["Classes"] = "Classes"; 267 localizedStrings["Clear Cookies"] = "Clear Cookies"; 267 268 localizedStrings["Clear Filters"] = "Clear Filters"; 269 localizedStrings["Clear Local Storage"] = "Clear Local Storage"; 268 270 localizedStrings["Clear Log"] = "Clear Log"; 269 271 localizedStrings["Clear Network Items (%s)"] = "Clear Network Items (%s)"; 272 localizedStrings["Clear Session Storage"] = "Clear Session Storage"; 270 273 localizedStrings["Clear Timeline (%s)"] = "Clear Timeline (%s)"; 271 274 localizedStrings["Clear focus"] = "Clear focus"; -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js
r251227 r259744 132 132 } 133 133 134 itemUpdated(storageId, key, oldValue, value)135 { 136 console.assert(this._enabled); 137 138 let domStorage = this._domStorageForIdentifier(storageId); 139 if (domStorage) 140 domStorage.itemUpdated(key, oldValue, value);134 itemUpdated(storageId, key, oldValue, newValue) 135 { 136 console.assert(this._enabled); 137 138 let domStorage = this._domStorageForIdentifier(storageId); 139 if (domStorage) 140 domStorage.itemUpdated(key, oldValue, newValue); 141 141 } 142 142 -
trunk/Source/WebInspectorUI/UserInterface/Models/DOMStorageObject.js
r251227 r259744 76 76 removeItem(key) 77 77 { 78 console.assert(this._entries.has(key)); 79 78 80 let target = WI.assumingMainTarget(); 79 target.DOMStorageAgent.removeDOMStorageItem(this._id, key);81 return target.DOMStorageAgent.removeDOMStorageItem(this._id, key); 80 82 } 81 83 … … 83 85 { 84 86 let target = WI.assumingMainTarget(); 85 target.DOMStorageAgent.setDOMStorageItem(this._id, key, value);87 return target.DOMStorageAgent.setDOMStorageItem(this._id, key, value); 86 88 } 89 90 clear() 91 { 92 let target = WI.assumingMainTarget(); 93 94 // COMPATIBILITY (iOS 13.4): DOMStorage.clearDOMStorageItems did not exist yet. 95 if (!target.hasCommand("DOMStorage.clearDOMStorageItems")) { 96 let promises = []; 97 for (let key of this._entries.keys()) 98 promises.push(this.removeItem(key)); 99 return Promise.all(promises); 100 } 101 102 return target.DOMStorageAgent.clearDOMStorageItems(this._id); 103 } 104 105 // DOMStorageManager 87 106 88 107 itemsCleared() 89 108 { 90 109 this._entries.clear(); 110 91 111 this.dispatchEventToListeners(WI.DOMStorageObject.Event.ItemsCleared); 92 112 } … … 94 114 itemRemoved(key) 95 115 { 96 this._entries.delete(key); 116 let removed = this._entries.delete(key); 117 console.assert(removed); 118 97 119 this.dispatchEventToListeners(WI.DOMStorageObject.Event.ItemRemoved, {key}); 98 120 } … … 100 122 itemAdded(key, value) 101 123 { 124 console.assert(!this._entries.has(key)); 102 125 this._entries.set(key, value); 126 103 127 this.dispatchEventToListeners(WI.DOMStorageObject.Event.ItemAdded, {key, value}); 104 128 } 105 129 106 itemUpdated(key, oldValue, value)130 itemUpdated(key, oldValue, newValue) 107 131 { 108 this._entries.set(key, value); 109 this.dispatchEventToListeners(WI.DOMStorageObject.Event.ItemUpdated, {key, oldValue, value}); 132 console.assert(this._entries.get(key) === oldValue); 133 this._entries.set(key, newValue); 134 135 this.dispatchEventToListeners(WI.DOMStorageObject.Event.ItemUpdated, {key, oldValue, newValue}); 110 136 } 111 137 }; -
trunk/Source/WebInspectorUI/UserInterface/Protocol/DOMStorageObserver.js
r251227 r259744 44 44 } 45 45 46 domStorageItemUpdated(storageId, key, oldValue, value)46 domStorageItemUpdated(storageId, key, oldValue, newValue) 47 47 { 48 WI.domStorageManager.itemUpdated(storageId, key, oldValue, value);48 WI.domStorageManager.itemUpdated(storageId, key, oldValue, newValue); 49 49 } 50 50 }; -
trunk/Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js
r259173 r259744 43 43 this._refreshButtonNavigationItem = new WI.ButtonNavigationItem("cookie-storage-refresh", WI.UIString("Refresh"), "Images/ReloadFull.svg", 13, 13); 44 44 this._refreshButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._refreshButtonClicked, this); 45 46 this._clearButtonNavigationItem = new WI.ButtonNavigationItem("cookie-storage-clear", WI.UIString("Clear Cookies"), "Images/NavigationItemTrash.svg", 15, 15); 47 this._clearButtonNavigationItem.visibilityPriority = WI.NavigationItem.VisibilityPriority.Low; 48 this._clearButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._handleClearNavigationItemClicked, this); 45 49 } 46 50 … … 53 57 navigationItems.push(this._setCookieButtonNavigationItem); 54 58 navigationItems.push(this._refreshButtonNavigationItem); 59 navigationItems.push(this._clearButtonNavigationItem); 55 60 return navigationItems; 56 61 } … … 391 396 { 392 397 this._reloadCookies(); 398 } 399 400 _handleClearNavigationItemClicked(event) 401 { 402 let target = WI.assumingMainTarget(); 403 for (let cookie of this._cookies.splice(0)) 404 target.PageAgent.deleteCookie(cookie.name, cookie.url); 405 406 this._table.reloadData(); 393 407 } 394 408 -
trunk/Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js
r253161 r259744 56 56 this._filterBarNavigationItem.filterBar.addEventListener(WI.FilterBar.Event.FilterDidChange, this._handleFilterBarFilterDidChange, this); 57 57 58 let clearButtonLabel = representedObject.isLocalStorage() ? WI.UIString("Clear Local Storage") : WI.UIString("Clear Session Storage"); 59 this._clearButtonNavigationItem = new WI.ButtonNavigationItem("dom-storage-clear", clearButtonLabel, "Images/NavigationItemTrash.svg", 15, 15); 60 this._clearButtonNavigationItem.visibilityPriority = WI.NavigationItem.VisibilityPriority.Low; 61 this._clearButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._handleClearNavigationItemClicked, this); 62 58 63 this._populate(); 59 64 } … … 63 68 get navigationItems() 64 69 { 65 return [this._filterBarNavigationItem]; 70 return [ 71 this._filterBarNavigationItem, 72 new WI.DividerNavigationItem, 73 this._clearButtonNavigationItem, 74 ]; 66 75 } 67 76 … … 291 300 this._dataGrid.filterText = this._filterBarNavigationItem.filterBar.filters.text || ""; 292 301 } 302 303 _handleClearNavigationItemClicked(event) 304 { 305 this.representedObject.clear(); 306 } 293 307 }; 294 308 -
trunk/Source/WebInspectorUI/UserInterface/Views/DataGrid.js
r259437 r259744 1231 1231 return; 1232 1232 1233 let wasSelected = this.selectedNode === child || child.selected; 1234 1233 1235 child.deselect(); 1234 1236 child._detach(); … … 1241 1243 child.nextSibling.previousSibling = child.previousSibling; 1242 1244 1245 let nextChildToSelect = wasSelected ? (child.nextSibling || child.previousSibling) : null; 1246 1243 1247 child.dataGrid = null; 1244 1248 child.parent = null; … … 1248 1252 if (this.children.length <= 0) 1249 1253 this.hasChildren = false; 1254 else if (nextChildToSelect) 1255 nextChildToSelect.select(); 1250 1256 1251 1257 console.assert(!child.isPlaceholderNode, "Shouldn't delete the placeholder node.");
Note:
See TracChangeset
for help on using the changeset viewer.