| OLD | NEW |
| 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/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 blink::mainThreadIsolate()->SetCreateHistogramFunction(CreateHistogram); | 425 blink::mainThreadIsolate()->SetCreateHistogramFunction(CreateHistogram); |
| 426 } | 426 } |
| 427 } | 427 } |
| 428 | 428 |
| 429 RenderThreadImpl* RenderThreadImpl::current() { | 429 RenderThreadImpl* RenderThreadImpl::current() { |
| 430 return lazy_tls.Pointer()->Get(); | 430 return lazy_tls.Pointer()->Get(); |
| 431 } | 431 } |
| 432 | 432 |
| 433 // When we run plugins in process, we actually run them on the render thread, | 433 // When we run plugins in process, we actually run them on the render thread, |
| 434 // which means that we need to make the render thread pump UI events. | 434 // which means that we need to make the render thread pump UI events. |
| 435 RenderThreadImpl::RenderThreadImpl() | 435 RenderThreadImpl::RenderThreadImpl( |
| 436 : ChildThreadImpl(Options::Builder() | 436 scoped_ptr<RendererScheduler> renderer_scheduler) |
| 437 .InBrowserProcess(true) | 437 : ChildThreadImpl( |
| 438 .UseMojoChannel(ShouldUseMojoChannel()) | 438 Options::Builder() |
| 439 .Build()) { | 439 .InBrowserProcess(true) |
| 440 Init(); | 440 .UseMojoChannel(ShouldUseMojoChannel()) |
| 441 } | 441 .WithTaskRunner(renderer_scheduler->DefaultTaskRunner()) |
| 442 | 442 .Build()), |
| 443 RenderThreadImpl::RenderThreadImpl(const std::string& channel_name) | 443 renderer_scheduler_(renderer_scheduler.Pass()) { |
| 444 : ChildThreadImpl(Options::Builder() | |
| 445 .InBrowserProcess(true) | |
| 446 .UseMojoChannel(ShouldUseMojoChannel()) | |
| 447 .WithChannelName(channel_name) | |
| 448 .Build()) { | |
| 449 Init(); | 444 Init(); |
| 450 } | 445 } |
| 451 | 446 |
| 452 RenderThreadImpl::RenderThreadImpl( | 447 RenderThreadImpl::RenderThreadImpl( |
| 453 scoped_ptr<base::MessageLoop> main_message_loop) | 448 const std::string& channel_name, |
| 454 : ChildThreadImpl(Options::Builder() | 449 scoped_ptr<RendererScheduler> renderer_scheduler) |
| 455 .InBrowserProcess(true) | 450 : ChildThreadImpl( |
| 456 .UseMojoChannel(ShouldUseMojoChannel()) | 451 Options::Builder() |
| 457 .Build()), | 452 .InBrowserProcess(true) |
| 453 .UseMojoChannel(ShouldUseMojoChannel()) |
| 454 .WithChannelName(channel_name) |
| 455 .WithTaskRunner(renderer_scheduler->DefaultTaskRunner()) |
| 456 .Build()), |
| 457 renderer_scheduler_(renderer_scheduler.Pass()) { |
| 458 Init(); |
| 459 } |
| 460 |
| 461 RenderThreadImpl::RenderThreadImpl( |
| 462 scoped_ptr<base::MessageLoop> main_message_loop, |
| 463 scoped_ptr<RendererScheduler> renderer_scheduler) |
| 464 : ChildThreadImpl( |
| 465 Options::Builder() |
| 466 .InBrowserProcess(true) |
| 467 .UseMojoChannel(ShouldUseMojoChannel()) |
| 468 .WithTaskRunner(renderer_scheduler->DefaultTaskRunner()) |
| 469 .Build()), |
| 470 renderer_scheduler_(renderer_scheduler.Pass()), |
| 458 main_message_loop_(main_message_loop.Pass()) { | 471 main_message_loop_(main_message_loop.Pass()) { |
| 459 Init(); | 472 Init(); |
| 460 } | 473 } |
| 461 | 474 |
| 462 void RenderThreadImpl::Init() { | 475 void RenderThreadImpl::Init() { |
| 463 TRACE_EVENT_BEGIN_ETW("RenderThreadImpl::Init", 0, ""); | 476 TRACE_EVENT_BEGIN_ETW("RenderThreadImpl::Init", 0, ""); |
| 464 | 477 |
| 465 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( | 478 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( |
| 466 base::PlatformThread::CurrentId(), | 479 base::PlatformThread::CurrentId(), |
| 467 kTraceEventRendererMainThreadSortIndex); | 480 kTraceEventRendererMainThreadSortIndex); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 484 hidden_widget_count_ = 0; | 497 hidden_widget_count_ = 0; |
| 485 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; | 498 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; |
| 486 idle_notifications_to_skip_ = 0; | 499 idle_notifications_to_skip_ = 0; |
| 487 layout_test_mode_ = false; | 500 layout_test_mode_ = false; |
| 488 | 501 |
| 489 appcache_dispatcher_.reset( | 502 appcache_dispatcher_.reset( |
| 490 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl())); | 503 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl())); |
| 491 dom_storage_dispatcher_.reset(new DomStorageDispatcher()); | 504 dom_storage_dispatcher_.reset(new DomStorageDispatcher()); |
| 492 main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher( | 505 main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher( |
| 493 thread_safe_sender())); | 506 thread_safe_sender())); |
| 494 renderer_scheduler_ = RendererScheduler::Create(); | |
| 495 channel()->SetListenerTaskRunner(renderer_scheduler_->DefaultTaskRunner()); | 507 channel()->SetListenerTaskRunner(renderer_scheduler_->DefaultTaskRunner()); |
| 496 embedded_worker_dispatcher_.reset(new EmbeddedWorkerDispatcher()); | 508 embedded_worker_dispatcher_.reset(new EmbeddedWorkerDispatcher()); |
| 497 | 509 |
| 498 // Note: This may reorder messages from the ResourceDispatcher with respect to | 510 // Note: This may reorder messages from the ResourceDispatcher with respect to |
| 499 // other subsystems. | 511 // other subsystems. |
| 500 resource_dispatch_throttler_.reset(new ResourceDispatchThrottler( | 512 resource_dispatch_throttler_.reset(new ResourceDispatchThrottler( |
| 501 static_cast<RenderThread*>(this), renderer_scheduler_.get(), | 513 static_cast<RenderThread*>(this), renderer_scheduler_.get(), |
| 502 base::TimeDelta::FromSecondsD(kThrottledResourceRequestFlushPeriodS), | 514 base::TimeDelta::FromSecondsD(kThrottledResourceRequestFlushPeriodS), |
| 503 kMaxResourceRequestsPerFlushWhenThrottled)); | 515 kMaxResourceRequestsPerFlushWhenThrottled)); |
| 504 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); | 516 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); |
| (...skipping 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1829 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 1841 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
| 1830 mojo::ServiceProviderPtr exposed_services) | 1842 mojo::ServiceProviderPtr exposed_services) |
| 1831 : services(services.Pass()), | 1843 : services(services.Pass()), |
| 1832 exposed_services(exposed_services.Pass()) { | 1844 exposed_services(exposed_services.Pass()) { |
| 1833 } | 1845 } |
| 1834 | 1846 |
| 1835 RenderThreadImpl::PendingRenderFrameConnect::~PendingRenderFrameConnect() { | 1847 RenderThreadImpl::PendingRenderFrameConnect::~PendingRenderFrameConnect() { |
| 1836 } | 1848 } |
| 1837 | 1849 |
| 1838 } // namespace content | 1850 } // namespace content |
| OLD | NEW |