Bug 123750

Summary: Web Inspector: localStorage inspector very slow on big values
Product: WebKit Reporter: Derk-Jan Hartman <hartman.wiki>
Component: Web InspectorAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, joepeck, timothy, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
URL: https://test2.wikipedia.org
Attachments:
Description Flags
[PATCH] Proposed Fix none

Derk-Jan Hartman
Reported 2013-11-04 11:18:36 PST
Currently Wikipedia is testing caching JavaScript in localStorage. In testing this, I noticed that trying to inspect localStorage using Safari becomes almost impossible. When trying to represent the value in the inspector, it seems to want to display the entire value in the row, which takes upto a minute. The inspector should be smarter about this and recognize that a very big value is not fully suite to be represented like this, but should be shown using a file like representation.
Attachments
[PATCH] Proposed Fix (6.69 KB, patch)
2016-02-09 14:25 PST, Joseph Pecoraro
no flags
Radar WebKit Bug Importer
Comment 1 2013-11-04 11:18:46 PST
Timothy Hatcher
Comment 2 2013-11-04 11:36:28 PST
I agree, the current presentation does not live up how people are using LocalStorage now. Even the Inspector itself dumps large values into LocalStorage that it can't show. Detecting large values and letting you view them full-view would be great. Thanks for the bug and Wikipedia test case!
Derk-Jan Hartman
Comment 3 2015-02-19 00:33:21 PST
still a problem
Derk-Jan Hartman
Comment 4 2015-06-30 13:15:48 PDT
This seems possibly even worse in Safari 9 beta.
Joseph Pecoraro
Comment 5 2015-06-30 13:26:10 PDT
Since DOMStorage has string keys/values how about we snip the strings to something like 50-100 characters. Given: window.localStorage.key = "Really really really really really really long string"; The inspector could show something like: | "key" | "Really really really..." | With some way to fetch the completely value. This is similar to RemoteObject previews, which abbreviates strings to 100 characters.
Timothy Hatcher
Comment 6 2015-06-30 15:02:13 PDT
Sounds great to me!
Derk-Jan Hartman
Comment 7 2016-02-09 13:52:31 PST
This crash still happens, and it still annoys me about once a week, when I accidentally press the localStorage tab on a wikipedia and related websites.
Joseph Pecoraro
Comment 8 2016-02-09 14:25:54 PST
Created attachment 270954 [details] [PATCH] Proposed Fix
Joseph Pecoraro
Comment 9 2016-02-09 14:26:49 PST
One thing worth considering is that we could have the backend truncate before sending to the frontend, avoiding sending megabytes of text over the protocol. However, we may want to update how we display things in the frontend, so this just leaves it a frontend decision to truncate for display only.
WebKit Commit Bot
Comment 10 2016-02-09 15:42:55 PST
Comment on attachment 270954 [details] [PATCH] Proposed Fix Clearing flags on attachment: 270954 Committed r196342: <http://trac.webkit.org/changeset/196342>
WebKit Commit Bot
Comment 11 2016-02-09 15:42:57 PST
All reviewed patches have been landed. Closing bug.
Derk-Jan Hartman
Comment 12 2016-02-22 03:38:27 PST
Tested in nightly. Works like a charm !! I'm super happy with this change, thx so much for listening.
Note You need to log in before you can comment on or make changes to this bug.