OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/devtools/protocol/service_worker_handler.h" | 5 #include "content/browser/devtools/protocol/service_worker_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/containers/scoped_ptr_hash_map.h" | 8 #include "base/containers/scoped_ptr_hash_map.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/utf_string_conversions.h" |
10 #include "content/browser/devtools/service_worker_devtools_agent_host.h" | 11 #include "content/browser/devtools/service_worker_devtools_agent_host.h" |
11 #include "content/browser/devtools/service_worker_devtools_manager.h" | 12 #include "content/browser/devtools/service_worker_devtools_manager.h" |
12 #include "content/browser/frame_host/frame_tree.h" | 13 #include "content/browser/frame_host/frame_tree.h" |
13 #include "content/browser/frame_host/frame_tree_node.h" | 14 #include "content/browser/frame_host/frame_tree_node.h" |
14 #include "content/browser/frame_host/render_frame_host_impl.h" | 15 #include "content/browser/frame_host/render_frame_host_impl.h" |
15 #include "content/browser/service_worker/service_worker_context_core.h" | 16 #include "content/browser/service_worker/service_worker_context_core.h" |
16 #include "content/browser/service_worker/service_worker_context_watcher.h" | 17 #include "content/browser/service_worker/service_worker_context_watcher.h" |
17 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 18 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
18 #include "content/browser/service_worker/service_worker_version.h" | 19 #include "content/browser/service_worker/service_worker_version.h" |
19 #include "content/public/browser/browser_context.h" | 20 #include "content/public/browser/browser_context.h" |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 if (!context_) | 243 if (!context_) |
243 return Response::InternalError("Could not connect to the context"); | 244 return Response::InternalError("Could not connect to the context"); |
244 enabled_ = true; | 245 enabled_ = true; |
245 | 246 |
246 ServiceWorkerDevToolsManager::GetInstance()->AddObserver(this); | 247 ServiceWorkerDevToolsManager::GetInstance()->AddObserver(this); |
247 | 248 |
248 context_watcher_ = new ServiceWorkerContextWatcher( | 249 context_watcher_ = new ServiceWorkerContextWatcher( |
249 context_, base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, | 250 context_, base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, |
250 weak_factory_.GetWeakPtr()), | 251 weak_factory_.GetWeakPtr()), |
251 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, | 252 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, |
| 253 weak_factory_.GetWeakPtr()), |
| 254 base::Bind(&ServiceWorkerHandler::OnErrorReported, |
252 weak_factory_.GetWeakPtr())); | 255 weak_factory_.GetWeakPtr())); |
253 context_watcher_->Start(); | 256 context_watcher_->Start(); |
254 | 257 |
255 UpdateHosts(); | 258 UpdateHosts(); |
256 return Response::OK(); | 259 return Response::OK(); |
257 } | 260 } |
258 | 261 |
259 Response ServiceWorkerHandler::Disable() { | 262 Response ServiceWorkerHandler::Disable() { |
260 if (!enabled_) | 263 if (!enabled_) |
261 return Response::OK(); | 264 return Response::OK(); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 void ServiceWorkerHandler::OnWorkerVersionUpdated( | 366 void ServiceWorkerHandler::OnWorkerVersionUpdated( |
364 const std::vector<ServiceWorkerVersionInfo>& versions) { | 367 const std::vector<ServiceWorkerVersionInfo>& versions) { |
365 std::vector<scoped_refptr<ServiceWorkerVersion>> version_values; | 368 std::vector<scoped_refptr<ServiceWorkerVersion>> version_values; |
366 for (const auto& version : versions) { | 369 for (const auto& version : versions) { |
367 version_values.push_back(CreateVersionDictionaryValue(version)); | 370 version_values.push_back(CreateVersionDictionaryValue(version)); |
368 } | 371 } |
369 client_->WorkerVersionUpdated( | 372 client_->WorkerVersionUpdated( |
370 WorkerVersionUpdatedParams::Create()->set_versions(version_values)); | 373 WorkerVersionUpdatedParams::Create()->set_versions(version_values)); |
371 } | 374 } |
372 | 375 |
| 376 void ServiceWorkerHandler::OnErrorReported( |
| 377 int64 registration_id, |
| 378 int64 version_id, |
| 379 const ServiceWorkerContextObserver::ErrorInfo& info) { |
| 380 client_->WorkerErrorReported( |
| 381 WorkerErrorReportedParams::Create()->set_error_message( |
| 382 ServiceWorkerErrorMessage::Create() |
| 383 ->set_error_message(base::UTF16ToUTF8(info.error_message)) |
| 384 ->set_registration_id(base::Int64ToString(registration_id)) |
| 385 ->set_version_id(base::Int64ToString(version_id)) |
| 386 ->set_source_url(info.source_url.spec()) |
| 387 ->set_line_number(info.line_number) |
| 388 ->set_column_number(info.column_number))); |
| 389 } |
| 390 |
373 void ServiceWorkerHandler::DispatchProtocolMessage( | 391 void ServiceWorkerHandler::DispatchProtocolMessage( |
374 DevToolsAgentHost* host, | 392 DevToolsAgentHost* host, |
375 const std::string& message) { | 393 const std::string& message) { |
376 | 394 |
377 auto it = attached_hosts_.find(host->GetId()); | 395 auto it = attached_hosts_.find(host->GetId()); |
378 if (it == attached_hosts_.end()) | 396 if (it == attached_hosts_.end()) |
379 return; // Already disconnected. | 397 return; // Already disconnected. |
380 | 398 |
381 client_->DispatchMessage( | 399 client_->DispatchMessage( |
382 DispatchMessageParams::Create()-> | 400 DispatchMessageParams::Create()-> |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 return; | 445 return; |
428 host->DetachClient(); | 446 host->DetachClient(); |
429 client_->WorkerTerminated(WorkerTerminatedParams::Create()-> | 447 client_->WorkerTerminated(WorkerTerminatedParams::Create()-> |
430 set_worker_id(host->GetId())); | 448 set_worker_id(host->GetId())); |
431 attached_hosts_.erase(it); | 449 attached_hosts_.erase(it); |
432 } | 450 } |
433 | 451 |
434 } // namespace service_worker | 452 } // namespace service_worker |
435 } // namespace devtools | 453 } // namespace devtools |
436 } // namespace content | 454 } // namespace content |
OLD | NEW |