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

Side by Side Diff: content/renderer/renderer_webstoragearea_impl.cc

Issue 8426003: Histograms for DOMStorage access (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/renderer_webstoragearea_impl.h" 5 #include "content/renderer/renderer_webstoragearea_impl.h"
6 6
7 #include "base/metrics/histogram.h"
8 #include "base/time.h"
7 #include "content/common/dom_storage_messages.h" 9 #include "content/common/dom_storage_messages.h"
8 #include "content/renderer/render_thread_impl.h" 10 #include "content/renderer/render_thread_impl.h"
9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h " 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h "
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
11 13
12 using WebKit::WebStorageNamespace; 14 using WebKit::WebStorageNamespace;
13 using WebKit::WebString; 15 using WebKit::WebString;
14 using WebKit::WebURL; 16 using WebKit::WebURL;
15 17
16 RendererWebStorageAreaImpl::RendererWebStorageAreaImpl( 18 RendererWebStorageAreaImpl::RendererWebStorageAreaImpl(
17 int64 namespace_id, const WebString& origin) { 19 int64 namespace_id, const WebString& origin) {
18 RenderThreadImpl::current()->Send( 20 RenderThreadImpl::current()->Send(
19 new DOMStorageHostMsg_StorageAreaId(namespace_id, origin, 21 new DOMStorageHostMsg_StorageAreaId(namespace_id, origin,
20 &storage_area_id_)); 22 &storage_area_id_));
21 } 23 }
22 24
23 RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() { 25 RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() {
24 } 26 }
25 27
26 unsigned RendererWebStorageAreaImpl::length() { 28 unsigned RendererWebStorageAreaImpl::length() {
27 unsigned length; 29 unsigned length;
30 base::Time start = base::Time::Now();
28 RenderThreadImpl::current()->Send( 31 RenderThreadImpl::current()->Send(
29 new DOMStorageHostMsg_Length(storage_area_id_, &length)); 32 new DOMStorageHostMsg_Length(storage_area_id_, &length));
33 UMA_HISTOGRAM_TIMES("DOMStorage.length", base::Time::Now() - start);
darin (slow to review) 2011/11/01 05:31:49 it seems like we should have a convenience macro f
cbentzel 2011/11/01 11:37:52 Yes. I'll see how common this is. Most of the timi
30 return length; 34 return length;
31 } 35 }
32 36
33 WebString RendererWebStorageAreaImpl::key(unsigned index) { 37 WebString RendererWebStorageAreaImpl::key(unsigned index) {
34 NullableString16 key; 38 NullableString16 key;
39 base::Time start = base::Time::Now();
35 RenderThreadImpl::current()->Send( 40 RenderThreadImpl::current()->Send(
36 new DOMStorageHostMsg_Key(storage_area_id_, index, &key)); 41 new DOMStorageHostMsg_Key(storage_area_id_, index, &key));
42 UMA_HISTOGRAM_TIMES("DOMStorage.key", base::Time::Now() - start);
37 return key; 43 return key;
38 } 44 }
39 45
40 WebString RendererWebStorageAreaImpl::getItem(const WebString& key) { 46 WebString RendererWebStorageAreaImpl::getItem(const WebString& key) {
41 NullableString16 value; 47 NullableString16 value;
48 base::Time start = base::Time::Now();
42 RenderThreadImpl::current()->Send( 49 RenderThreadImpl::current()->Send(
43 new DOMStorageHostMsg_GetItem(storage_area_id_, key, &value)); 50 new DOMStorageHostMsg_GetItem(storage_area_id_, key, &value));
51 UMA_HISTOGRAM_TIMES("DOMStorage.getItem", base::Time::Now() - start);
44 return value; 52 return value;
45 } 53 }
46 54
47 void RendererWebStorageAreaImpl::setItem( 55 void RendererWebStorageAreaImpl::setItem(
48 const WebString& key, const WebString& value, const WebURL& url, 56 const WebString& key, const WebString& value, const WebURL& url,
49 WebStorageArea::Result& result, WebString& old_value_webkit) { 57 WebStorageArea::Result& result, WebString& old_value_webkit) {
50 const size_t kMaxKeyValueLength = WebStorageNamespace::m_localStorageQuota; 58 const size_t kMaxKeyValueLength = WebStorageNamespace::m_localStorageQuota;
51 if (key.length() + value.length() > kMaxKeyValueLength) { 59 if (key.length() + value.length() > kMaxKeyValueLength) {
52 result = ResultBlockedByQuota; 60 result = ResultBlockedByQuota;
53 return; 61 return;
54 } 62 }
55 NullableString16 old_value; 63 NullableString16 old_value;
64 base::Time start = base::Time::Now();
56 RenderThreadImpl::current()->Send(new DOMStorageHostMsg_SetItem( 65 RenderThreadImpl::current()->Send(new DOMStorageHostMsg_SetItem(
57 storage_area_id_, key, value, url, &result, &old_value)); 66 storage_area_id_, key, value, url, &result, &old_value));
67 UMA_HISTOGRAM_TIMES("DOMStorage.setItem", base::Time::Now() - start);
58 old_value_webkit = old_value; 68 old_value_webkit = old_value;
59 } 69 }
60 70
61 void RendererWebStorageAreaImpl::removeItem( 71 void RendererWebStorageAreaImpl::removeItem(
62 const WebString& key, const WebURL& url, WebString& old_value_webkit) { 72 const WebString& key, const WebURL& url, WebString& old_value_webkit) {
63 NullableString16 old_value; 73 NullableString16 old_value;
74 base::Time start = base::Time::Now();
64 RenderThreadImpl::current()->Send( 75 RenderThreadImpl::current()->Send(
65 new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value)); 76 new DOMStorageHostMsg_RemoveItem(storage_area_id_, key, url, &old_value));
77 UMA_HISTOGRAM_TIMES("DOMStorage.removeItem", base::Time::Now() - start);
66 old_value_webkit = old_value; 78 old_value_webkit = old_value;
67 } 79 }
68 80
69 void RendererWebStorageAreaImpl::clear( 81 void RendererWebStorageAreaImpl::clear(
70 const WebURL& url, bool& cleared_something) { 82 const WebURL& url, bool& cleared_something) {
83 base::Time start = base::Time::Now();
71 RenderThreadImpl::current()->Send( 84 RenderThreadImpl::current()->Send(
72 new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something)); 85 new DOMStorageHostMsg_Clear(storage_area_id_, url, &cleared_something));
86 UMA_HISTOGRAM_TIMES("DOMStorage.clear", base::Time::Now() - start);
73 } 87 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698