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

Side by Side Diff: content/browser/service_worker/embedded_worker_instance.cc

Issue 1893313007: DevTools: Attach all Service Workers except for old redundant ones. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: incorporated pfeldman's comment Created 4 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/service_worker/embedded_worker_instance.h" 5 #include "content/browser/service_worker/embedded_worker_instance.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 ServiceWorkerDevToolsManager::GetInstance()->WorkerDestroyed( 49 ServiceWorkerDevToolsManager::GetInstance()->WorkerDestroyed(
50 worker_process_id, worker_route_id); 50 worker_process_id, worker_route_id);
51 } 51 }
52 52
53 void NotifyWorkerStopIgnoredOnUI(int worker_process_id, int worker_route_id) { 53 void NotifyWorkerStopIgnoredOnUI(int worker_process_id, int worker_route_id) {
54 DCHECK_CURRENTLY_ON(BrowserThread::UI); 54 DCHECK_CURRENTLY_ON(BrowserThread::UI);
55 ServiceWorkerDevToolsManager::GetInstance()->WorkerStopIgnored( 55 ServiceWorkerDevToolsManager::GetInstance()->WorkerStopIgnored(
56 worker_process_id, worker_route_id); 56 worker_process_id, worker_route_id);
57 } 57 }
58 58
59 void NotifyWorkerVersionInstalledOnUI(int worker_process_id,
60 int worker_route_id) {
61 DCHECK_CURRENTLY_ON(BrowserThread::UI);
62 ServiceWorkerDevToolsManager::GetInstance()->WorkerVersionInstalled(
63 worker_process_id, worker_route_id);
64 }
65
66 void NotifyWorkerVersionDoomedOnUI(int worker_process_id, int worker_route_id) {
67 DCHECK_CURRENTLY_ON(BrowserThread::UI);
68 ServiceWorkerDevToolsManager::GetInstance()->WorkerVersionDoomed(
69 worker_process_id, worker_route_id);
70 }
71
59 void RegisterToWorkerDevToolsManagerOnUI( 72 void RegisterToWorkerDevToolsManagerOnUI(
60 int process_id, 73 int process_id,
61 const ServiceWorkerContextCore* service_worker_context, 74 const ServiceWorkerContextCore* service_worker_context,
62 const base::WeakPtr<ServiceWorkerContextCore>& service_worker_context_weak, 75 const base::WeakPtr<ServiceWorkerContextCore>& service_worker_context_weak,
63 int64_t service_worker_version_id, 76 int64_t service_worker_version_id,
64 const GURL& url, 77 const GURL& url,
65 const GURL& scope, 78 const GURL& scope,
79 bool is_installed,
66 const base::Callback<void(int worker_devtools_agent_route_id, 80 const base::Callback<void(int worker_devtools_agent_route_id,
67 bool wait_for_debugger)>& callback) { 81 bool wait_for_debugger)>& callback) {
68 DCHECK_CURRENTLY_ON(BrowserThread::UI); 82 DCHECK_CURRENTLY_ON(BrowserThread::UI);
69 int worker_devtools_agent_route_id = MSG_ROUTING_NONE; 83 int worker_devtools_agent_route_id = MSG_ROUTING_NONE;
70 bool wait_for_debugger = false; 84 bool wait_for_debugger = false;
71 if (RenderProcessHost* rph = RenderProcessHost::FromID(process_id)) { 85 if (RenderProcessHost* rph = RenderProcessHost::FromID(process_id)) {
72 // |rph| may be NULL in unit tests. 86 // |rph| may be NULL in unit tests.
73 worker_devtools_agent_route_id = rph->GetNextRoutingID(); 87 worker_devtools_agent_route_id = rph->GetNextRoutingID();
74 wait_for_debugger = 88 wait_for_debugger =
75 ServiceWorkerDevToolsManager::GetInstance()->WorkerCreated( 89 ServiceWorkerDevToolsManager::GetInstance()->WorkerCreated(
76 process_id, worker_devtools_agent_route_id, 90 process_id, worker_devtools_agent_route_id,
77 ServiceWorkerDevToolsManager::ServiceWorkerIdentifier( 91 ServiceWorkerDevToolsManager::ServiceWorkerIdentifier(
78 service_worker_context, service_worker_context_weak, 92 service_worker_context, service_worker_context_weak,
79 service_worker_version_id, url, scope)); 93 service_worker_version_id, url, scope),
94 is_installed);
80 } 95 }
81 BrowserThread::PostTask( 96 BrowserThread::PostTask(
82 BrowserThread::IO, 97 BrowserThread::IO,
83 FROM_HERE, 98 FROM_HERE,
84 base::Bind(callback, worker_devtools_agent_route_id, wait_for_debugger)); 99 base::Bind(callback, worker_devtools_agent_route_id, wait_for_debugger));
85 } 100 }
86 101
87 void SetupMojoOnUIThread( 102 void SetupMojoOnUIThread(
88 int process_id, 103 int process_id,
89 int thread_id, 104 int thread_id,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 141 }
127 142
128 void NotifyWorkerStopIgnored() { 143 void NotifyWorkerStopIgnored() {
129 DCHECK(CalledOnValidThread()); 144 DCHECK(CalledOnValidThread());
130 BrowserThread::PostTask(BrowserThread::UI, 145 BrowserThread::PostTask(BrowserThread::UI,
131 FROM_HERE, 146 FROM_HERE,
132 base::Bind(NotifyWorkerStopIgnoredOnUI, 147 base::Bind(NotifyWorkerStopIgnoredOnUI,
133 process_id_, agent_route_id_)); 148 process_id_, agent_route_id_));
134 } 149 }
135 150
151 void NotifyWorkerVersionInstalled() {
152 DCHECK(CalledOnValidThread());
153 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
154 base::Bind(NotifyWorkerVersionInstalledOnUI,
155 process_id_, agent_route_id_));
156 }
157
158 void NotifyWorkerVersionDoomed() {
159 DCHECK(CalledOnValidThread());
160 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
161 base::Bind(NotifyWorkerVersionDoomedOnUI,
162 process_id_, agent_route_id_));
163 }
164
136 int agent_route_id() const { return agent_route_id_; } 165 int agent_route_id() const { return agent_route_id_; }
137 166
138 private: 167 private:
139 const int process_id_; 168 const int process_id_;
140 const int agent_route_id_; 169 const int agent_route_id_;
141 DISALLOW_COPY_AND_ASSIGN(DevToolsProxy); 170 DISALLOW_COPY_AND_ASSIGN(DevToolsProxy);
142 }; 171 };
143 172
144 // A handle for a worker process managed by ServiceWorkerProcessManager on the 173 // A handle for a worker process managed by ServiceWorkerProcessManager on the
145 // UI thread. 174 // UI thread.
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 params->settings.data_saver_enabled = settings.data_saver_enabled; 338 params->settings.data_saver_enabled = settings.data_saver_enabled;
310 339
311 // Register the instance to DevToolsManager on UI thread. 340 // Register the instance to DevToolsManager on UI thread.
312 const int64_t service_worker_version_id = params->service_worker_version_id; 341 const int64_t service_worker_version_id = params->service_worker_version_id;
313 const GURL& scope = params->scope; 342 const GURL& scope = params->scope;
314 GURL script_url(params->script_url); 343 GURL script_url(params->script_url);
315 BrowserThread::PostTask( 344 BrowserThread::PostTask(
316 BrowserThread::UI, FROM_HERE, 345 BrowserThread::UI, FROM_HERE,
317 base::Bind(RegisterToWorkerDevToolsManagerOnUI, process_id, 346 base::Bind(RegisterToWorkerDevToolsManagerOnUI, process_id,
318 instance_->context_.get(), instance_->context_, 347 instance_->context_.get(), instance_->context_,
319 service_worker_version_id, script_url, scope, 348 service_worker_version_id, script_url, scope, is_installed_,
320 base::Bind(&StartTask::OnRegisteredToDevToolsManager, 349 base::Bind(&StartTask::OnRegisteredToDevToolsManager,
321 weak_factory_.GetWeakPtr(), base::Passed(&params), 350 weak_factory_.GetWeakPtr(), base::Passed(&params),
322 is_new_process))); 351 is_new_process)));
323 } 352 }
324 353
325 void OnRegisteredToDevToolsManager( 354 void OnRegisteredToDevToolsManager(
326 std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params, 355 std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params,
327 bool is_new_process, 356 bool is_new_process,
328 int worker_devtools_agent_route_id, 357 int worker_devtools_agent_route_id,
329 bool wait_for_debugger) { 358 bool wait_for_debugger) {
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", 600 TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
572 inflight_start_task_.get(), "OnURLJobCreated"); 601 inflight_start_task_.get(), "OnURLJobCreated");
573 if (!step_time_.is_null()) { 602 if (!step_time_.is_null()) {
574 base::TimeDelta duration = UpdateStepTime(); 603 base::TimeDelta duration = UpdateStepTime();
575 if (inflight_start_task_->is_installed()) 604 if (inflight_start_task_->is_installed())
576 ServiceWorkerMetrics::RecordTimeToURLJob( 605 ServiceWorkerMetrics::RecordTimeToURLJob(
577 duration, inflight_start_task_->start_situation()); 606 duration, inflight_start_task_->start_situation());
578 } 607 }
579 } 608 }
580 609
610 void EmbeddedWorkerInstance::OnWorkerVersionInstalled() {
611 if (devtools_proxy_)
612 devtools_proxy_->NotifyWorkerVersionInstalled();
613 }
614
615 void EmbeddedWorkerInstance::OnWorkerVersionDoomed() {
616 if (devtools_proxy_)
617 devtools_proxy_->NotifyWorkerVersionDoomed();
618 }
619
581 void EmbeddedWorkerInstance::OnThreadStarted(int thread_id) { 620 void EmbeddedWorkerInstance::OnThreadStarted(int thread_id) {
582 if (!inflight_start_task_) 621 if (!inflight_start_task_)
583 return; 622 return;
584 TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", 623 TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
585 inflight_start_task_.get(), "OnThreadStarted"); 624 inflight_start_task_.get(), "OnThreadStarted");
586 625
587 starting_phase_ = THREAD_STARTED; 626 starting_phase_ = THREAD_STARTED;
588 if (!step_time_.is_null()) { 627 if (!step_time_.is_null()) {
589 base::TimeDelta duration = UpdateStepTime(); 628 base::TimeDelta duration = UpdateStepTime();
590 if (inflight_start_task_->is_installed()) 629 if (inflight_start_task_->is_installed())
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 case SCRIPT_READ_FINISHED: 849 case SCRIPT_READ_FINISHED:
811 return "Script read finished"; 850 return "Script read finished";
812 case STARTING_PHASE_MAX_VALUE: 851 case STARTING_PHASE_MAX_VALUE:
813 NOTREACHED(); 852 NOTREACHED();
814 } 853 }
815 NOTREACHED() << phase; 854 NOTREACHED() << phase;
816 return std::string(); 855 return std::string();
817 } 856 }
818 857
819 } // namespace content 858 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/embedded_worker_instance.h ('k') | content/browser/service_worker/service_worker_version.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698