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

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

Issue 1675613002: service worker: use 200 OK for update requests even in the no update case (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: asan and fix win compile? Created 4 years, 10 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 "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 EmbeddedWorkerDispatcher::EmbeddedWorkerDispatcher() : weak_factory_(this) {} 46 EmbeddedWorkerDispatcher::EmbeddedWorkerDispatcher() : weak_factory_(this) {}
47 47
48 EmbeddedWorkerDispatcher::~EmbeddedWorkerDispatcher() {} 48 EmbeddedWorkerDispatcher::~EmbeddedWorkerDispatcher() {}
49 49
50 bool EmbeddedWorkerDispatcher::OnMessageReceived( 50 bool EmbeddedWorkerDispatcher::OnMessageReceived(
51 const IPC::Message& message) { 51 const IPC::Message& message) {
52 bool handled = true; 52 bool handled = true;
53 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDispatcher, message) 53 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDispatcher, message)
54 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorker) 54 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorker)
55 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorker) 55 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorker)
56 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
57 OnResumeAfterDownload)
56 IPC_MESSAGE_UNHANDLED(handled = false) 58 IPC_MESSAGE_UNHANDLED(handled = false)
57 IPC_END_MESSAGE_MAP() 59 IPC_END_MESSAGE_MAP()
58 return handled; 60 return handled;
59 } 61 }
60 62
61 void EmbeddedWorkerDispatcher::WorkerContextDestroyed( 63 void EmbeddedWorkerDispatcher::WorkerContextDestroyed(
62 int embedded_worker_id) { 64 int embedded_worker_id) {
63 if (ContainsKey(stop_worker_times_, embedded_worker_id)) { 65 if (ContainsKey(stop_worker_times_, embedded_worker_id)) {
64 base::TimeTicks stop_time = stop_worker_times_[embedded_worker_id]; 66 base::TimeTicks stop_time = stop_worker_times_[embedded_worker_id];
65 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TerminateThread.Time", 67 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TerminateThread.Time",
(...skipping 24 matching lines...) Expand all
90 92
91 blink::WebEmbeddedWorkerStartData start_data; 93 blink::WebEmbeddedWorkerStartData start_data;
92 start_data.scriptURL = params.script_url; 94 start_data.scriptURL = params.script_url;
93 start_data.userAgent = base::UTF8ToUTF16(GetContentClient()->GetUserAgent()); 95 start_data.userAgent = base::UTF8ToUTF16(GetContentClient()->GetUserAgent());
94 start_data.waitForDebuggerMode = 96 start_data.waitForDebuggerMode =
95 params.wait_for_debugger ? 97 params.wait_for_debugger ?
96 blink::WebEmbeddedWorkerStartData::WaitForDebugger : 98 blink::WebEmbeddedWorkerStartData::WaitForDebugger :
97 blink::WebEmbeddedWorkerStartData::DontWaitForDebugger; 99 blink::WebEmbeddedWorkerStartData::DontWaitForDebugger;
98 start_data.v8CacheOptions = 100 start_data.v8CacheOptions =
99 static_cast<blink::WebSettings::V8CacheOptions>(params.v8_cache_options); 101 static_cast<blink::WebSettings::V8CacheOptions>(params.v8_cache_options);
102 start_data.pauseAfterDownloadMode =
103 params.pause_after_download
104 ? blink::WebEmbeddedWorkerStartData::PauseAfterDownload
105 : blink::WebEmbeddedWorkerStartData::DontPauseAfterDownload;
100 106
101 wrapper->worker()->startWorkerContext(start_data); 107 wrapper->worker()->startWorkerContext(start_data);
102 workers_.AddWithID(wrapper.release(), params.embedded_worker_id); 108 workers_.AddWithID(wrapper.release(), params.embedded_worker_id);
103 } 109 }
104 110
105 void EmbeddedWorkerDispatcher::OnStopWorker(int embedded_worker_id) { 111 void EmbeddedWorkerDispatcher::OnStopWorker(int embedded_worker_id) {
106 TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerDispatcher::OnStopWorker"); 112 TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerDispatcher::OnStopWorker");
107 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id); 113 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
108 if (!wrapper) { 114 if (!wrapper) {
109 LOG(WARNING) << "Got OnStopWorker for nonexistent worker"; 115 LOG(WARNING) << "Got OnStopWorker for nonexistent worker";
110 return; 116 return;
111 } 117 }
112 118
113 // This should eventually call WorkerContextDestroyed. (We may need to post 119 // This should eventually call WorkerContextDestroyed. (We may need to post
114 // a delayed task to forcibly abort the worker context if we find it 120 // a delayed task to forcibly abort the worker context if we find it
115 // necessary) 121 // necessary)
116 stop_worker_times_[embedded_worker_id] = base::TimeTicks::Now(); 122 stop_worker_times_[embedded_worker_id] = base::TimeTicks::Now();
117 wrapper->worker()->terminateWorkerContext(); 123 wrapper->worker()->terminateWorkerContext();
118 } 124 }
119 125
126 void EmbeddedWorkerDispatcher::OnResumeAfterDownload(int embedded_worker_id) {
127 TRACE_EVENT0("ServiceWorker",
128 "EmbeddedWorkerDispatcher::OnResumeAfterDownload");
129 WorkerWrapper* wrapper = workers_.Lookup(embedded_worker_id);
130 if (!wrapper) {
131 LOG(WARNING) << "Got OnResumeAfterDownload for nonexistent worker";
132 return;
133 }
134 wrapper->worker()->resumeAfterDownload();
135 }
136
120 } // namespace content 137 } // 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