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

Side by Side Diff: content/renderer/renderer_blink_platform_impl.cc

Issue 1366883002: [Reland] Post loading tasks on the appropriate WebFrameScheduler's queue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a clone method to WebTaskRunner which lets us solve the lifetime issue. Created 5 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer_blink_platform_impl.h" 5 #include "content/renderer/renderer_blink_platform_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 scheduler::RendererScheduler* renderer_scheduler) 230 scheduler::RendererScheduler* renderer_scheduler)
231 : BlinkPlatformImpl(renderer_scheduler->DefaultTaskRunner()), 231 : BlinkPlatformImpl(renderer_scheduler->DefaultTaskRunner()),
232 main_thread_( 232 main_thread_(
233 new scheduler::WebThreadImplForRendererScheduler(renderer_scheduler)), 233 new scheduler::WebThreadImplForRendererScheduler(renderer_scheduler)),
234 clipboard_delegate_(new RendererClipboardDelegate), 234 clipboard_delegate_(new RendererClipboardDelegate),
235 clipboard_(new WebClipboardImpl(clipboard_delegate_.get())), 235 clipboard_(new WebClipboardImpl(clipboard_delegate_.get())),
236 mime_registry_(new RendererBlinkPlatformImpl::MimeRegistry), 236 mime_registry_(new RendererBlinkPlatformImpl::MimeRegistry),
237 sudden_termination_disables_(0), 237 sudden_termination_disables_(0),
238 plugin_refresh_allowed_(true), 238 plugin_refresh_allowed_(true),
239 default_task_runner_(renderer_scheduler->DefaultTaskRunner()), 239 default_task_runner_(renderer_scheduler->DefaultTaskRunner()),
240 loading_task_runner_(renderer_scheduler->LoadingTaskRunner()),
240 web_scrollbar_behavior_(new WebScrollbarBehaviorImpl) { 241 web_scrollbar_behavior_(new WebScrollbarBehaviorImpl) {
241 #if !defined(OS_ANDROID) && !defined(OS_WIN) 242 #if !defined(OS_ANDROID) && !defined(OS_WIN)
242 if (g_sandbox_enabled && sandboxEnabled()) { 243 if (g_sandbox_enabled && sandboxEnabled()) {
243 sandbox_support_.reset(new RendererBlinkPlatformImpl::SandboxSupport); 244 sandbox_support_.reset(new RendererBlinkPlatformImpl::SandboxSupport);
244 } else { 245 } else {
245 DVLOG(1) << "Disabling sandbox support for testing."; 246 DVLOG(1) << "Disabling sandbox support for testing.";
246 } 247 }
247 #endif 248 #endif
248 249
249 // ChildThread may not exist in some tests. 250 // ChildThread may not exist in some tests.
(...skipping 16 matching lines...) Expand all
266 #if !defined(OS_ANDROID) && !defined(OS_WIN) 267 #if !defined(OS_ANDROID) && !defined(OS_WIN)
267 // SandboxSupport contains a map of WebFontFamily objects, which hold 268 // SandboxSupport contains a map of WebFontFamily objects, which hold
268 // WebCStrings, which become invalidated when blink is shut down. Hence, we 269 // WebCStrings, which become invalidated when blink is shut down. Hence, we
269 // need to clear that map now, just before blink::shutdown() is called. 270 // need to clear that map now, just before blink::shutdown() is called.
270 sandbox_support_.reset(); 271 sandbox_support_.reset();
271 #endif 272 #endif
272 } 273 }
273 274
274 //------------------------------------------------------------------------------ 275 //------------------------------------------------------------------------------
275 276
277 scoped_refptr<base::SingleThreadTaskRunner>
278 RendererBlinkPlatformImpl::LoadingTaskRunnerForCurrentThread() {
279 if (loading_task_runner_.get() &&
280 loading_task_runner_->BelongsToCurrentThread()) {
281 return loading_task_runner_;
282 } else {
283 return base::ThreadTaskRunnerHandle::Get();
284 }
285 }
286
276 blink::WebThread* RendererBlinkPlatformImpl::currentThread() { 287 blink::WebThread* RendererBlinkPlatformImpl::currentThread() {
277 if (main_thread_->isCurrentThread()) 288 if (main_thread_->isCurrentThread())
278 return main_thread_.get(); 289 return main_thread_.get();
279 return BlinkPlatformImpl::currentThread(); 290 return BlinkPlatformImpl::currentThread();
280 } 291 }
281 292
282 blink::WebClipboard* RendererBlinkPlatformImpl::clipboard() { 293 blink::WebClipboard* RendererBlinkPlatformImpl::clipboard() {
283 blink::WebClipboard* clipboard = 294 blink::WebClipboard* clipboard =
284 GetContentClient()->renderer()->OverrideWebClipboard(); 295 GetContentClient()->renderer()->OverrideWebClipboard();
285 if (clipboard) 296 if (clipboard)
(...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after
1266 //------------------------------------------------------------------------------ 1277 //------------------------------------------------------------------------------
1267 1278
1268 void RendererBlinkPlatformImpl::MockBatteryStatusChangedForTesting( 1279 void RendererBlinkPlatformImpl::MockBatteryStatusChangedForTesting(
1269 const blink::WebBatteryStatus& status) { 1280 const blink::WebBatteryStatus& status) {
1270 if (!g_test_battery_status_listener) 1281 if (!g_test_battery_status_listener)
1271 return; 1282 return;
1272 g_test_battery_status_listener->updateBatteryStatus(status); 1283 g_test_battery_status_listener->updateBatteryStatus(status);
1273 } 1284 }
1274 1285
1275 } // namespace content 1286 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698