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

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

Issue 2881073003: Support DataSaver for SharedWorker (Closed)
Patch Set: fix #include "public/web/WebDataSaverFlag.h" Created 3 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/service_worker_process_manager.h" 5 #include "content/browser/service_worker/service_worker_process_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
11 11
12 #include "content/browser/renderer_host/render_process_host_impl.h" 12 #include "content/browser/renderer_host/render_process_host_impl.h"
13 #include "content/browser/service_worker/service_worker_context_wrapper.h" 13 #include "content/browser/service_worker/service_worker_context_wrapper.h"
14 #include "content/common/service_worker/embedded_worker_settings.h" 14 #include "content/common/service_worker/embedded_worker_settings.h"
15 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/content_browser_client.h" 16 #include "content/public/browser/content_browser_client.h"
17 #include "content/public/browser/site_instance.h" 17 #include "content/public/browser/site_instance.h"
18 #include "content/public/common/child_process_host.h" 18 #include "content/public/common/child_process_host.h"
19 #include "content/public/common/content_client.h" 19 #include "content/public/common/content_client.h"
20 #include "third_party/WebKit/public/web/WebDataSaverFlag.h"
20 #include "url/gurl.h" 21 #include "url/gurl.h"
21 22
22 namespace content { 23 namespace content {
23 24
24 namespace { 25 namespace {
25 26
26 // Functor to sort by the .second element of a struct. 27 // Functor to sort by the .second element of a struct.
27 struct SecondGreater { 28 struct SecondGreater {
28 template <typename Value> 29 template <typename Value>
29 bool operator()(const Value& lhs, const Value& rhs) { 30 bool operator()(const Value& lhs, const Value& rhs) {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 const EmbeddedWorkerSettings&)>& callback) { 165 const EmbeddedWorkerSettings&)>& callback) {
165 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { 166 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
166 BrowserThread::PostTask( 167 BrowserThread::PostTask(
167 BrowserThread::UI, FROM_HERE, 168 BrowserThread::UI, FROM_HERE,
168 base::Bind(&ServiceWorkerProcessManager::AllocateWorkerProcess, 169 base::Bind(&ServiceWorkerProcessManager::AllocateWorkerProcess,
169 weak_this_, embedded_worker_id, pattern, script_url, 170 weak_this_, embedded_worker_id, pattern, script_url,
170 can_use_existing_process, callback)); 171 can_use_existing_process, callback));
171 return; 172 return;
172 } 173 }
173 174
174 // This |EmbeddedWorkerSettings| only populates |data_saver_enabled|, 175 // This |EmbeddedWorkerSettings| only populates |data_saver_flag|,
175 // but in general, this function will populate settings from prefs, while 176 // but in general, this function will populate settings from prefs, while
176 // the caller will be responsible for populating settings from other sources, 177 // the caller will be responsible for populating settings from other sources,
177 // such as command line switches. 178 // such as command line switches.
178 EmbeddedWorkerSettings settings; 179 EmbeddedWorkerSettings settings;
179 settings.data_saver_enabled = 180 settings.data_saver_flag =
180 GetContentClient()->browser()->IsDataSaverEnabled(browser_context_); 181 GetContentClient()->browser()->IsDataSaverEnabled(browser_context_)
182 ? blink::WebDataSaverFlag::kEnabled
183 : blink::WebDataSaverFlag::kDisabled;
181 184
182 if (process_id_for_test_ != ChildProcessHost::kInvalidUniqueID) { 185 if (process_id_for_test_ != ChildProcessHost::kInvalidUniqueID) {
183 // Let tests specify the returned process ID. Note: We may need to be able 186 // Let tests specify the returned process ID. Note: We may need to be able
184 // to specify the error code too. 187 // to specify the error code too.
185 int result = can_use_existing_process ? process_id_for_test_ 188 int result = can_use_existing_process ? process_id_for_test_
186 : new_process_id_for_test_; 189 : new_process_id_for_test_;
187 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 190 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
188 base::Bind(callback, SERVICE_WORKER_OK, result, 191 base::Bind(callback, SERVICE_WORKER_OK, result,
189 false /* is_new_process */, settings)); 192 false /* is_new_process */, settings));
190 return; 193 return;
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 namespace std { 342 namespace std {
340 // Destroying ServiceWorkerProcessManagers only on the UI thread allows the 343 // Destroying ServiceWorkerProcessManagers only on the UI thread allows the
341 // member WeakPtr to safely guard the object's lifetime when used on that 344 // member WeakPtr to safely guard the object's lifetime when used on that
342 // thread. 345 // thread.
343 void default_delete<content::ServiceWorkerProcessManager>::operator()( 346 void default_delete<content::ServiceWorkerProcessManager>::operator()(
344 content::ServiceWorkerProcessManager* ptr) const { 347 content::ServiceWorkerProcessManager* ptr) const {
345 content::BrowserThread::DeleteSoon( 348 content::BrowserThread::DeleteSoon(
346 content::BrowserThread::UI, FROM_HERE, ptr); 349 content::BrowserThread::UI, FROM_HERE, ptr);
347 } 350 }
348 } // namespace std 351 } // namespace std
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698