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

Side by Side Diff: content/browser/shared_worker/shared_worker_host.cc

Issue 2586863002: Worker: Enable UseCounter for SharedWorkerGlobalScope (Closed)
Patch Set: ready to review Created 3 years, 11 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/shared_worker/shared_worker_host.h" 5 #include "content/browser/shared_worker/shared_worker_host.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "content/browser/devtools/shared_worker_devtools_manager.h" 8 #include "content/browser/devtools/shared_worker_devtools_manager.h"
9 #include "content/browser/message_port_message_filter.h" 9 #include "content/browser/message_port_message_filter.h"
10 #include "content/browser/message_port_service.h" 10 #include "content/browser/message_port_service.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 int render_frame_id) { 123 int render_frame_id) {
124 // Walk all instances and remove all the documents in the frame from their 124 // Walk all instances and remove all the documents in the frame from their
125 // document set. 125 // document set.
126 worker_document_set_->RemoveRenderFrame(render_process_id, render_frame_id); 126 worker_document_set_->RemoveRenderFrame(render_process_id, render_frame_id);
127 if (worker_document_set_->IsEmpty()) { 127 if (worker_document_set_->IsEmpty()) {
128 // This worker has no more associated documents - shut it down. 128 // This worker has no more associated documents - shut it down.
129 TerminateWorker(); 129 TerminateWorker();
130 } 130 }
131 } 131 }
132 132
133 void SharedWorkerHost::CountFeature(uint32_t feature) {
134 if (use_counter_.IsCounted(feature))
135 return;
136 use_counter_.Count(feature);
137 for (const auto& filter_info : filters_) {
138 filter_info.filter()->Send(new ViewMsg_CountFeatureOnSharedWorker(
139 filter_info.route_id(), feature));
140 }
141 }
142
133 void SharedWorkerHost::WorkerContextClosed() { 143 void SharedWorkerHost::WorkerContextClosed() {
134 // Set the closed flag - this will stop any further messages from 144 // Set the closed flag - this will stop any further messages from
135 // being sent to the worker (messages can still be sent from the worker, 145 // being sent to the worker (messages can still be sent from the worker,
136 // for exception reporting, etc). 146 // for exception reporting, etc).
137 closed_ = true; 147 closed_ = true;
138 if (!termination_message_sent_) 148 if (!termination_message_sent_)
139 NotifyWorkerDestroyed(worker_process_id_, worker_route_id_); 149 NotifyWorkerDestroyed(worker_process_id_, worker_route_id_);
140 } 150 }
141 151
152 void SharedWorkerHost::WorkerContextDestroyed() {
153 for (const auto& filter_info : filters_) {
154 filter_info.filter()->Send(
155 new ViewMsg_WorkerDestroyed(filter_info.route_id()));
156 }
157 }
158
142 void SharedWorkerHost::WorkerReadyForInspection() { 159 void SharedWorkerHost::WorkerReadyForInspection() {
143 NotifyWorkerReadyForInspection(worker_process_id_, worker_route_id_); 160 NotifyWorkerReadyForInspection(worker_process_id_, worker_route_id_);
144 } 161 }
145 162
146 void SharedWorkerHost::WorkerScriptLoaded() { 163 void SharedWorkerHost::WorkerScriptLoaded() {
147 UMA_HISTOGRAM_TIMES("SharedWorker.TimeToScriptLoaded", 164 UMA_HISTOGRAM_TIMES("SharedWorker.TimeToScriptLoaded",
148 base::TimeTicks::Now() - creation_time_); 165 base::TimeTicks::Now() - creation_time_);
149 } 166 }
150 167
151 void SharedWorkerHost::WorkerScriptLoadFailed() { 168 void SharedWorkerHost::WorkerScriptLoadFailed() {
152 UMA_HISTOGRAM_TIMES("SharedWorker.TimeToScriptLoadFailed", 169 UMA_HISTOGRAM_TIMES("SharedWorker.TimeToScriptLoadFailed",
153 base::TimeTicks::Now() - creation_time_); 170 base::TimeTicks::Now() - creation_time_);
154 for (const FilterInfo& info : filters_) 171 for (const FilterInfo& info : filters_)
155 info.filter()->Send(new ViewMsg_WorkerScriptLoadFailed(info.route_id())); 172 info.filter()->Send(new ViewMsg_WorkerScriptLoadFailed(info.route_id()));
156 } 173 }
157 174
158 void SharedWorkerHost::WorkerConnected(int message_port_id) { 175 void SharedWorkerHost::WorkerConnected(int message_port_id) {
159 for (const FilterInfo& info : filters_) { 176 for (const FilterInfo& info : filters_) {
160 if (info.message_port_id() != message_port_id) 177 if (info.message_port_id() != message_port_id)
161 continue; 178 continue;
162 info.filter()->Send(new ViewMsg_WorkerConnected(info.route_id())); 179 info.filter()->Send(
180 new ViewMsg_WorkerConnected(info.route_id(), use_counter_.Dump()));
163 return; 181 return;
164 } 182 }
165 } 183 }
166 184
167 void SharedWorkerHost::AllowFileSystem( 185 void SharedWorkerHost::AllowFileSystem(
168 const GURL& url, 186 const GURL& url,
169 std::unique_ptr<IPC::Message> reply_msg) { 187 std::unique_ptr<IPC::Message> reply_msg) {
170 GetContentClient()->browser()->AllowWorkerFileSystem( 188 GetContentClient()->browser()->AllowWorkerFileSystem(
171 url, 189 url,
172 instance_->resource_context(), 190 instance_->resource_context(),
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 return; 289 return;
272 } 290 }
273 } 291 }
274 } 292 }
275 293
276 bool SharedWorkerHost::Send(IPC::Message* message) { 294 bool SharedWorkerHost::Send(IPC::Message* message) {
277 return worker_render_filter_->Send(message); 295 return worker_render_filter_->Send(message);
278 } 296 }
279 297
280 } // namespace content 298 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698