| Index: components/scheduler/renderer/web_view_scheduler_impl.cc
|
| diff --git a/components/scheduler/renderer/web_view_scheduler_impl.cc b/components/scheduler/renderer/web_view_scheduler_impl.cc
|
| index 28bc2163e10c4aa418a4cb0f6057bc3a76afc208..658fdbbe8a9aa96432ee3d6150c9c3bebd2acaff 100644
|
| --- a/components/scheduler/renderer/web_view_scheduler_impl.cc
|
| +++ b/components/scheduler/renderer/web_view_scheduler_impl.cc
|
| @@ -5,6 +5,9 @@
|
| #include "components/scheduler/renderer/web_view_scheduler_impl.h"
|
|
|
| #include "base/logging.h"
|
| +#include "components/scheduler/base/virtual_time_domain.h"
|
| +#include "components/scheduler/child/scheduler_tqm_delegate.h"
|
| +#include "components/scheduler/renderer/renderer_scheduler_impl.h"
|
| #include "components/scheduler/renderer/web_frame_scheduler_impl.h"
|
| #include "third_party/WebKit/public/platform/WebFrameScheduler.h"
|
|
|
| @@ -15,7 +18,7 @@ WebViewSchedulerImpl::WebViewSchedulerImpl(
|
| RendererSchedulerImpl* renderer_scheduler)
|
| : web_view_(web_view),
|
| renderer_scheduler_(renderer_scheduler),
|
| - background_(false) {}
|
| + page_in_background_(false) {}
|
|
|
| WebViewSchedulerImpl::~WebViewSchedulerImpl() {
|
| // TODO(alexclarke): Find out why we can't rely on the web view outliving the
|
| @@ -25,17 +28,29 @@ WebViewSchedulerImpl::~WebViewSchedulerImpl() {
|
| }
|
| }
|
|
|
| -void WebViewSchedulerImpl::setPageInBackground(bool background) {
|
| - background_ = background;
|
| - // TODO(alexclarke): Do something with this flag.
|
| +void WebViewSchedulerImpl::setPageInBackground(bool page_in_background) {
|
| + if (page_in_background_ == page_in_background)
|
| + return;
|
| +
|
| + page_in_background_ = page_in_background;
|
| +
|
| + for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) {
|
| + frame_scheduler->SetPageInBackground(page_in_background_);
|
| + }
|
| }
|
|
|
| -blink::WebPassOwnPtr<blink::WebFrameScheduler>
|
| -WebViewSchedulerImpl::createFrameScheduler() {
|
| +scoped_ptr<WebFrameSchedulerImpl>
|
| +WebViewSchedulerImpl::createWebFrameSchedulerImpl() {
|
| scoped_ptr<WebFrameSchedulerImpl> frame_scheduler(
|
| new WebFrameSchedulerImpl(renderer_scheduler_, this));
|
| + frame_scheduler->SetPageInBackground(page_in_background_);
|
| frame_schedulers_.insert(frame_scheduler.get());
|
| - return blink::adoptWebPtr(frame_scheduler.release());
|
| + return frame_scheduler.Pass();
|
| +}
|
| +
|
| +blink::WebPassOwnPtr<blink::WebFrameScheduler>
|
| +WebViewSchedulerImpl::createFrameScheduler() {
|
| + return blink::adoptWebPtr(createWebFrameSchedulerImpl().release());
|
| }
|
|
|
| void WebViewSchedulerImpl::Unregister(WebFrameSchedulerImpl* frame_scheduler) {
|
|
|