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

Side by Side Diff: content/renderer/service_worker/embedded_worker_dispatcher.cc

Issue 1908313003: Shows the error message while fetching the SW script in the DevTools console. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: incorporated falken'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/renderer/service_worker/embedded_worker_dispatcher.h" 5 #include "content/renderer/service_worker/embedded_worker_dispatcher.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "content/child/child_process.h" 12 #include "content/child/child_process.h"
13 #include "content/child/scoped_child_process_reference.h" 13 #include "content/child/scoped_child_process_reference.h"
14 #include "content/child/thread_safe_sender.h" 14 #include "content/child/thread_safe_sender.h"
15 #include "content/child/worker_thread_registry.h" 15 #include "content/child/worker_thread_registry.h"
16 #include "content/common/devtools_messages.h" 16 #include "content/common/devtools_messages.h"
17 #include "content/common/service_worker/embedded_worker_messages.h" 17 #include "content/common/service_worker/embedded_worker_messages.h"
18 #include "content/public/common/content_client.h" 18 #include "content/public/common/content_client.h"
19 #include "content/renderer/render_thread_impl.h" 19 #include "content/renderer/render_thread_impl.h"
20 #include "content/renderer/service_worker/embedded_worker_devtools_agent.h" 20 #include "content/renderer/service_worker/embedded_worker_devtools_agent.h"
21 #include "content/renderer/service_worker/service_worker_context_client.h" 21 #include "content/renderer/service_worker/service_worker_context_client.h"
22 #include "third_party/WebKit/public/platform/WebString.h" 22 #include "third_party/WebKit/public/platform/WebString.h"
23 #include "third_party/WebKit/public/platform/WebURL.h" 23 #include "third_party/WebKit/public/platform/WebURL.h"
24 #include "third_party/WebKit/public/web/WebConsoleMessage.h"
24 #include "third_party/WebKit/public/web/WebEmbeddedWorker.h" 25 #include "third_party/WebKit/public/web/WebEmbeddedWorker.h"
25 #include "third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h" 26 #include "third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h"
26 27
27 namespace content { 28 namespace content {
28 29
29 // A thin wrapper of WebEmbeddedWorker which also adds and releases process 30 // A thin wrapper of WebEmbeddedWorker which also adds and releases process
30 // references automatically. 31 // references automatically.
31 class EmbeddedWorkerDispatcher::WorkerWrapper { 32 class EmbeddedWorkerDispatcher::WorkerWrapper {
32 public: 33 public:
33 WorkerWrapper(blink::WebEmbeddedWorker* worker, int devtools_agent_route_id) 34 WorkerWrapper(blink::WebEmbeddedWorker* worker, int devtools_agent_route_id)
(...skipping 15 matching lines...) Expand all
49 EmbeddedWorkerDispatcher::~EmbeddedWorkerDispatcher() {} 50 EmbeddedWorkerDispatcher::~EmbeddedWorkerDispatcher() {}
50 51
51 bool EmbeddedWorkerDispatcher::OnMessageReceived( 52 bool EmbeddedWorkerDispatcher::OnMessageReceived(
52 const IPC::Message& message) { 53 const IPC::Message& message) {
53 bool handled = true; 54 bool handled = true;
54 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDispatcher, message) 55 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDispatcher, message)
55 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorker) 56 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorker)
56 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorker) 57 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorker)
57 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload, 58 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
58 OnResumeAfterDownload) 59 OnResumeAfterDownload)
60 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_AddMessageToConsole,
61 OnAddMessageToConsole)
59 IPC_MESSAGE_UNHANDLED(handled = false) 62 IPC_MESSAGE_UNHANDLED(handled = false)
60 IPC_END_MESSAGE_MAP() 63 IPC_END_MESSAGE_MAP()
61 return handled; 64 return handled;
62 } 65 }
63 66
64 void EmbeddedWorkerDispatcher::WorkerContextDestroyed( 67 void EmbeddedWorkerDispatcher::WorkerContextDestroyed(
65 int embedded_worker_id) { 68 int embedded_worker_id) {
66 if (ContainsKey(stop_worker_times_, embedded_worker_id)) { 69 if (ContainsKey(stop_worker_times_, embedded_worker_id)) {
67 base::TimeTicks stop_time = stop_worker_times_[embedded_worker_id]; 70 base::TimeTicks stop_time = stop_worker_times_[embedded_worker_id];
68 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TerminateThread.Time", 71 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TerminateThread.Time",
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 TRACE_EVENT0("ServiceWorker", 129 TRACE_EVENT0("ServiceWorker",
127 "EmbeddedWorkerDispatcher::OnResumeAfterDownload"); 130 "EmbeddedWorkerDispatcher::OnResumeAfterDownload");
128 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id); 131 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
129 if (!wrapper) { 132 if (!wrapper) {
130 LOG(WARNING) << "Got OnResumeAfterDownload for nonexistent worker"; 133 LOG(WARNING) << "Got OnResumeAfterDownload for nonexistent worker";
131 return; 134 return;
132 } 135 }
133 wrapper->worker()->resumeAfterDownload(); 136 wrapper->worker()->resumeAfterDownload();
134 } 137 }
135 138
139 void EmbeddedWorkerDispatcher::OnAddMessageToConsole(
140 int embedded_worker_id,
141 ConsoleMessageLevel level,
142 const std::string& message) {
143 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
144 if (!wrapper)
145 return;
146 blink::WebConsoleMessage::Level target_level =
147 blink::WebConsoleMessage::LevelLog;
148 switch (level) {
149 case CONSOLE_MESSAGE_LEVEL_DEBUG:
150 target_level = blink::WebConsoleMessage::LevelDebug;
151 break;
152 case CONSOLE_MESSAGE_LEVEL_LOG:
153 target_level = blink::WebConsoleMessage::LevelLog;
154 break;
155 case CONSOLE_MESSAGE_LEVEL_WARNING:
156 target_level = blink::WebConsoleMessage::LevelWarning;
157 break;
158 case CONSOLE_MESSAGE_LEVEL_ERROR:
159 target_level = blink::WebConsoleMessage::LevelError;
160 break;
161 }
162 wrapper->worker()->addMessageToConsole(blink::WebConsoleMessage(
163 target_level, blink::WebString::fromUTF8(message)));
164 }
165
136 } // namespace content 166 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/service_worker/embedded_worker_dispatcher.h ('k') | third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698