Rather than having to `JSON.stringify` and `JSON.parse` each breakpoint in a giant list on `localStorage`, we can leverage IndexedDB to store breakpoints in a more "friendly" way. Additionally, this would allow us to not have to re-serialize all breakpoints when saving an update to a single breakpoint. The restoring process is already "async" (we purposely invoke a timeout so all agents have a chance to respond to the added breakpoints), so the async nature of IndexedDB probably won't be an issue.
<rdar://problem/46746857>
Created attachment 364924 [details] Patch
Comment on attachment 364924 [details] Patch Attachment 364924 [details] did not pass mac-ews (mac): Output: https://webkit-queues.webkit.org/results/11530442 New failing tests: inspector/worker/debugger-pause.html inspector/unit-tests/objectStore/clear.html
Created attachment 364928 [details] Archive of layout-test-results from ews103 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-highsierra Platform: Mac OS X 10.13.6
Comment on attachment 364924 [details] Patch Attachment 364924 [details] did not pass mac-wk2-ews (mac-wk2): Output: https://webkit-queues.webkit.org/results/11530485 New failing tests: inspector/worker/debugger-pause.html inspector/unit-tests/objectStore/clear.html
Created attachment 364929 [details] Archive of layout-test-results from ews105 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews105 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
Comment on attachment 364924 [details] Patch Attachment 364924 [details] did not pass mac-debug-ews (mac): Output: https://webkit-queues.webkit.org/results/11530625 New failing tests: inspector/worker/debugger-pause.html inspector/unit-tests/objectStore/clear.html
Created attachment 364930 [details] Archive of layout-test-results from ews117 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-highsierra Platform: Mac OS X 10.13.6
Created attachment 364948 [details] Patch
Comment on attachment 364948 [details] Patch Attachment 364948 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/11536724 New failing tests: storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html
Created attachment 364953 [details] Archive of layout-test-results from ews124 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews124 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Comment on attachment 364948 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364948&action=review > Source/WebInspectorUI/UserInterface/Models/Breakpoint.js:224 > + type = type || WI.BreakpointAction.Type.Log; Why do this? > Source/WebInspectorUI/UserInterface/Models/Breakpoint.js:292 > + serializeOptions() serializableOptions?
Comment on attachment 364948 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364948&action=review >> Source/WebInspectorUI/UserInterface/Models/Breakpoint.js:224 >> + type = type || WI.BreakpointAction.Type.Log; > > Why do this? Since I removed `WI.Breakpoint.DefaultBreakpointActionType`. I'll put this in the caller. >> Source/WebInspectorUI/UserInterface/Models/Breakpoint.js:292 >> + serializeOptions() > > serializableOptions? This matches the naming scheme of other `serialize*` functions (e.g. `WI.HeapSnapshot.prototype.serializeNode`).
Created attachment 365372 [details] Patch
Comment on attachment 365372 [details] Patch Clearing flags on attachment: 365372 Committed r243226: <https://trac.webkit.org/changeset/243226>
All reviewed patches have been landed. Closing bug.