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

Side by Side Diff: components/scheduler/renderer/web_view_scheduler_impl.cc

Issue 1477353002: Revert of Move throttling of background timers into the renderer scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/scheduler/renderer/web_view_scheduler_impl.h" 5 #include "components/scheduler/renderer/web_view_scheduler_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "components/scheduler/base/virtual_time_domain.h"
9 #include "components/scheduler/child/scheduler_tqm_delegate.h"
10 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
11 #include "components/scheduler/renderer/web_frame_scheduler_impl.h" 8 #include "components/scheduler/renderer/web_frame_scheduler_impl.h"
12 #include "third_party/WebKit/public/platform/WebFrameScheduler.h" 9 #include "third_party/WebKit/public/platform/WebFrameScheduler.h"
13 10
14 namespace scheduler { 11 namespace scheduler {
15 12
16 WebViewSchedulerImpl::WebViewSchedulerImpl( 13 WebViewSchedulerImpl::WebViewSchedulerImpl(
17 blink::WebView* web_view, 14 blink::WebView* web_view,
18 RendererSchedulerImpl* renderer_scheduler) 15 RendererSchedulerImpl* renderer_scheduler)
19 : web_view_(web_view), 16 : web_view_(web_view),
20 renderer_scheduler_(renderer_scheduler), 17 renderer_scheduler_(renderer_scheduler),
21 page_in_background_(false) {} 18 background_(false) {}
22 19
23 WebViewSchedulerImpl::~WebViewSchedulerImpl() { 20 WebViewSchedulerImpl::~WebViewSchedulerImpl() {
24 // TODO(alexclarke): Find out why we can't rely on the web view outliving the 21 // TODO(alexclarke): Find out why we can't rely on the web view outliving the
25 // frame. 22 // frame.
26 for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) { 23 for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) {
27 frame_scheduler->DetachFromWebViewScheduler(); 24 frame_scheduler->DetachFromWebViewScheduler();
28 } 25 }
29 } 26 }
30 27
31 void WebViewSchedulerImpl::setPageInBackground(bool page_in_background) { 28 void WebViewSchedulerImpl::setPageInBackground(bool background) {
32 if (page_in_background_ == page_in_background) 29 background_ = background;
33 return; 30 // TODO(alexclarke): Do something with this flag.
34
35 page_in_background_ = page_in_background;
36
37 for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) {
38 frame_scheduler->SetPageInBackground(page_in_background_);
39 }
40 }
41
42 scoped_ptr<WebFrameSchedulerImpl>
43 WebViewSchedulerImpl::createWebFrameSchedulerImpl() {
44 scoped_ptr<WebFrameSchedulerImpl> frame_scheduler(
45 new WebFrameSchedulerImpl(renderer_scheduler_, this));
46 frame_scheduler->SetPageInBackground(page_in_background_);
47 frame_schedulers_.insert(frame_scheduler.get());
48 return frame_scheduler.Pass();
49 } 31 }
50 32
51 blink::WebPassOwnPtr<blink::WebFrameScheduler> 33 blink::WebPassOwnPtr<blink::WebFrameScheduler>
52 WebViewSchedulerImpl::createFrameScheduler() { 34 WebViewSchedulerImpl::createFrameScheduler() {
53 return blink::adoptWebPtr(createWebFrameSchedulerImpl().release()); 35 scoped_ptr<WebFrameSchedulerImpl> frame_scheduler(
36 new WebFrameSchedulerImpl(renderer_scheduler_, this));
37 frame_schedulers_.insert(frame_scheduler.get());
38 return blink::adoptWebPtr(frame_scheduler.release());
54 } 39 }
55 40
56 void WebViewSchedulerImpl::Unregister(WebFrameSchedulerImpl* frame_scheduler) { 41 void WebViewSchedulerImpl::Unregister(WebFrameSchedulerImpl* frame_scheduler) {
57 DCHECK(frame_schedulers_.find(frame_scheduler) != frame_schedulers_.end()); 42 DCHECK(frame_schedulers_.find(frame_scheduler) != frame_schedulers_.end());
58 frame_schedulers_.erase(frame_scheduler); 43 frame_schedulers_.erase(frame_scheduler);
59 } 44 }
60 45
61 } // namespace scheduler 46 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698