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

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

Issue 1314903007: Implement WebFrameScheduler and WebPageScheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Responding to feedback Created 5 years, 3 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/scheduler/renderer/web_frame_scheduler_impl.h"
6
7 #include "components/scheduler/child/web_task_runner_impl.h"
8 #include "components/scheduler/renderer/renderer_scheduler.h"
9 #include "components/scheduler/renderer/web_page_scheduler_impl.h"
10 #include "third_party/WebKit/public/platform/WebString.h"
11 #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
12
13 namespace scheduler {
14
15 WebFrameSchedulerImpl::WebFrameSchedulerImpl(
16 RendererScheduler* render_scheduler,
17 WebPageSchedulerImpl* parent_page_scheduler)
18 : render_scheduler_(render_scheduler),
19 parent_page_scheduler_(parent_page_scheduler),
20 visible_(true) {}
21
22 WebFrameSchedulerImpl::~WebFrameSchedulerImpl() {
23 if (loading_task_queue_.get())
24 loading_task_queue_->UnregisterTaskQueue();
25
26 if (timer_task_queue_.get())
27 timer_task_queue_->UnregisterTaskQueue();
28
29 parent_page_scheduler_->Unregister(this);
30 }
31
32 void WebFrameSchedulerImpl::setFrameVisible(bool visible) {
33 visible_ = visible;
34 // TODO(alexclarke): Do something with this flag.
35 }
36
37 blink::WebTaskRunner* WebFrameSchedulerImpl::loadingTaskRunner() {
38 if (!loading_web_task_runner_.get()) {
39 loading_task_queue_ =
40 render_scheduler_->NewLoadingTaskRunner("frame_loading_tq");
41 loading_task_queue_->SetOrigin(origin_);
42 loading_web_task_runner_.reset(new WebTaskRunnerImpl(loading_task_queue_));
43 }
44 return loading_web_task_runner_.get();
45 }
46
47 blink::WebTaskRunner* WebFrameSchedulerImpl::timerTaskRunner() {
48 if (!timer_web_task_runner_.get()) {
49 timer_task_queue_ = render_scheduler_->NewTimerTaskRunner("frame_timer_tq");
50 timer_task_queue_->SetOrigin(origin_);
51 timer_web_task_runner_.reset(new WebTaskRunnerImpl(timer_task_queue_));
52 }
53 return timer_web_task_runner_.get();
54 }
55
56 void WebFrameSchedulerImpl::setFrameOrigin(
57 const blink::WebSecurityOrigin* origin) {
58 DCHECK(origin);
59 origin_ = origin->toString().utf8();
60
61 if (loading_task_queue_.get())
62 loading_task_queue_->SetOrigin(origin_);
63
64 if (timer_task_queue_.get())
65 timer_task_queue_->SetOrigin(origin_);
66 }
67
68 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698