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

Issue 10383123: Switch to using the async DomStorage IPC messages and add a caching layer … (Closed)

Created:
8 years, 7 months ago by michaeln
Modified:
8 years, 6 months ago
Reviewers:
ericu, jsbell
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, Peter Beverloo, Pan, abarth-chromium
Visibility:
Public.

Description

Fix the DomStorage is "wicked slow" bug by adding a renderer side cache and using a predominantly async IPC message protocol. - use DomStorageCachedArea + DomStorageProxy - an ipc message throttling mechanism to defend against misbehaving usage - less chatty storage event propagation - diable sudden termination when domstorage messages are pending to allow changes to be flushed thru to the backend on page unload - deleted the obsolete sync message types and handlers BUG=94382, 128482 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=139602

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Patch Set 10 : #

Patch Set 11 : #

Patch Set 12 : #

Patch Set 13 : #

Patch Set 14 : #

Total comments: 21

Patch Set 15 : #

Patch Set 16 : #

Patch Set 17 : #

Patch Set 18 : #

Patch Set 19 : #

Patch Set 20 : #

Patch Set 21 : #

Patch Set 22 : #

Patch Set 23 : #

Patch Set 24 : #

Patch Set 25 : #

Patch Set 26 : #

Patch Set 27 : #

Patch Set 28 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+390 lines, -223 lines) Patch
M content/browser/dom_storage/dom_storage_message_filter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +4 lines, -15 lines 0 comments Download
M content/browser/dom_storage/dom_storage_message_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5 chunks +24 lines, -80 lines 0 comments Download
M content/common/dom_storage_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 chunks +10 lines, -53 lines 0 comments Download
M content/renderer/dom_storage/dom_storage_dispatcher.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +25 lines, -6 lines 0 comments Download
M content/renderer/dom_storage/dom_storage_dispatcher.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 4 chunks +275 lines, -4 lines 0 comments Download
M content/renderer/dom_storage/webstoragearea_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 chunks +9 lines, -5 lines 0 comments Download
M content/renderer/dom_storage/webstoragearea_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +28 lines, -56 lines 0 comments Download
M content/renderer/render_thread_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +4 lines, -0 lines 0 comments Download
M webkit/dom_storage/dom_storage_area.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 4 chunks +4 lines, -4 lines 0 comments Download
M webkit/dom_storage/dom_storage_types.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +7 lines, -0 lines 0 comments Download

Messages

Total messages: 21 (0 generated)
Pan
About this CL, actually we have got similar ideas to optimize webstorage performance by cache ...
8 years, 7 months ago (2012-05-15 05:34:13 UTC) #1
michaeln
In general, yes there is behavior change that goes along with this new strategy. That ...
8 years, 7 months ago (2012-05-16 02:30:25 UTC) #2
michaeln
> we have got similar ideas Also, who is "we"? I'm glad you have an ...
8 years, 7 months ago (2012-05-16 03:08:43 UTC) #3
Pan
On 2012/05/16 02:30:25, michaeln wrote: > In general, yes there is behavior change that goes ...
8 years, 7 months ago (2012-05-16 13:27:23 UTC) #4
Pan
On 2012/05/16 03:08:43, michaeln wrote: > > we have got similar ideas > > Also, ...
8 years, 7 months ago (2012-05-16 13:36:42 UTC) #5
michaeln
I expect to be committing this change in a week or so. Actually i'll probably ...
8 years, 7 months ago (2012-05-16 19:16:49 UTC) #6
michaeln
I opened a bug for this instead of sending that mail. https://code.google.com/p/chromium/issues/detail?id=128482 > This is ...
8 years, 7 months ago (2012-05-17 03:15:24 UTC) #7
michaeln
hi eric and josh i think this dom storage work is ready for review. this ...
8 years, 7 months ago (2012-05-21 23:34:54 UTC) #8
michaeln
https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc File content/browser/dom_storage/dom_storage_message_filter.cc (right): https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc#newcode200 content/browser/dom_storage/dom_storage_message_filter.cc:200: host_->HasAreaOpen(area->namespace_id(), area->origin())) { The HasAreaOpen(...) call is the chattiness ...
8 years, 7 months ago (2012-05-22 00:37:54 UTC) #9
ericu
https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc File content/browser/dom_storage/dom_storage_message_filter.cc (right): https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc#newcode116 content/browser/dom_storage/dom_storage_message_filter.cc:116: Send(new DOMStorageMsg_AsyncOperationComplete(true)); Won't your MessageThrottlingFilter count this message and ...
8 years, 7 months ago (2012-05-22 23:23:35 UTC) #10
michaeln
thnx for looking... no new snapshot yet https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc File content/browser/dom_storage/dom_storage_message_filter.cc (right): https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc#newcode116 content/browser/dom_storage/dom_storage_message_filter.cc:116: Send(new DOMStorageMsg_AsyncOperationComplete(true)); ...
8 years, 7 months ago (2012-05-23 00:38:51 UTC) #11
michaeln
new snapshot, i'm still working on unittests (not included here) https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc File content/browser/dom_storage/dom_storage_message_filter.cc (right): https://chromiumcodereview.appspot.com/10383123/diff/11027/content/browser/dom_storage/dom_storage_message_filter.cc#newcode116 ...
8 years, 7 months ago (2012-05-23 22:37:28 UTC) #12
michaeln
Darin brought up a good point about having to ensure that changes get flushed during ...
8 years, 7 months ago (2012-05-25 01:07:46 UTC) #13
michaeln
Added renderer side flushing on shutdown logic to DomStorageDispatcher in #18, still have to add ...
8 years, 7 months ago (2012-05-25 01:59:59 UTC) #14
michaeln
ptal
8 years, 7 months ago (2012-05-25 19:04:32 UTC) #15
jsbell
lgtm but my review was fairly cursor (gardening distractions)
8 years, 7 months ago (2012-05-25 22:38:03 UTC) #16
michaeln
On 2012/05/25 22:38:03, jsbell wrote: > lgtm but my review was fairly cursor (gardening distractions) ...
8 years, 7 months ago (2012-05-25 23:38:09 UTC) #17
michaeln
I've split out the changes to DomStorageTaskRunner to another CL because i'm going to see ...
8 years, 6 months ago (2012-05-29 19:07:21 UTC) #18
ericu
Looks fine apart from this one lifetime issue. https://chromiumcodereview.appspot.com/10383123/diff/11027/content/renderer/dom_storage/dom_storage_dispatcher.cc File content/renderer/dom_storage/dom_storage_dispatcher.cc (right): https://chromiumcodereview.appspot.com/10383123/diff/11027/content/renderer/dom_storage/dom_storage_dispatcher.cc#newcode75 content/renderer/dom_storage/dom_storage_dispatcher.cc:75: DomStorageCachedArea* ...
8 years, 6 months ago (2012-05-30 00:44:11 UTC) #19
michaeln
> What do you think? I think if the most notable thing is whether a ...
8 years, 6 months ago (2012-05-30 01:06:24 UTC) #20
ericu
8 years, 6 months ago (2012-05-30 01:34:31 UTC) #21
;'>

LGTM

Powered by Google App Engine
This is Rietveld 408576698