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

Side by Side Diff: content/browser/devtools/protocol/service_worker_handler.cc

Issue 1030103003: Report error messages to DevTools window. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: incorporated falken's comment Created 5 years, 9 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698