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

Unified Diff: components/scheduler/renderer/web_frame_scheduler_impl.cc

Issue 1447563002: Implement frame attribution (FrameBlamer) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make sure blame context is initialized early enough Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/scheduler/renderer/web_frame_scheduler_impl.cc
diff --git a/components/scheduler/renderer/web_frame_scheduler_impl.cc b/components/scheduler/renderer/web_frame_scheduler_impl.cc
index f5b86bdcb5b22db9386ac36a560125e5dca7fbcf..fba6b691b5c96ded5f4c44566bfd3f9bd137b95e 100644
--- a/components/scheduler/renderer/web_frame_scheduler_impl.cc
+++ b/components/scheduler/renderer/web_frame_scheduler_impl.cc
@@ -4,30 +4,38 @@
#include "components/scheduler/renderer/web_frame_scheduler_impl.h"
+#include "base/trace_event/blame_context.h"
#include "components/scheduler/base/real_time_domain.h"
#include "components/scheduler/base/virtual_time_domain.h"
#include "components/scheduler/child/web_task_runner_impl.h"
#include "components/scheduler/renderer/auto_advancing_virtual_time_domain.h"
#include "components/scheduler/renderer/renderer_scheduler_impl.h"
#include "components/scheduler/renderer/web_view_scheduler_impl.h"
+#include "third_party/WebKit/public/platform/BlameContext.h"
#include "third_party/WebKit/public/platform/WebString.h"
namespace scheduler {
WebFrameSchedulerImpl::WebFrameSchedulerImpl(
RendererSchedulerImpl* renderer_scheduler,
- WebViewSchedulerImpl* parent_web_view_scheduler)
+ WebViewSchedulerImpl* parent_web_view_scheduler,
+ base::trace_event::BlameContext* blame_context)
: renderer_scheduler_(renderer_scheduler),
parent_web_view_scheduler_(parent_web_view_scheduler),
+ blame_context_(blame_context),
frame_visible_(true),
page_visible_(true) {}
WebFrameSchedulerImpl::~WebFrameSchedulerImpl() {
- if (loading_task_queue_.get())
+ if (loading_task_queue_.get()) {
loading_task_queue_->UnregisterTaskQueue();
+ loading_task_queue_->SetBlameContext(nullptr);
+ }
- if (timer_task_queue_.get())
+ if (timer_task_queue_.get()) {
timer_task_queue_->UnregisterTaskQueue();
+ timer_task_queue_->SetBlameContext(nullptr);
+ }
if (parent_web_view_scheduler_)
parent_web_view_scheduler_->Unregister(this);
@@ -47,6 +55,7 @@ blink::WebTaskRunner* WebFrameSchedulerImpl::loadingTaskRunner() {
if (!loading_web_task_runner_) {
loading_task_queue_ =
renderer_scheduler_->NewLoadingTaskRunner("frame_loading_tq");
+ loading_task_queue_->SetBlameContext(blame_context_);
if (parent_web_view_scheduler_->virtual_time_domain()) {
loading_task_queue_->SetTimeDomain(
parent_web_view_scheduler_->virtual_time_domain());
@@ -61,6 +70,7 @@ blink::WebTaskRunner* WebFrameSchedulerImpl::timerTaskRunner() {
if (!timer_web_task_runner_) {
timer_task_queue_ =
renderer_scheduler_->NewTimerTaskRunner("frame_timer_tq");
+ timer_task_queue_->SetBlameContext(blame_context_);
if (parent_web_view_scheduler_->virtual_time_domain()) {
timer_task_queue_->SetTimeDomain(
parent_web_view_scheduler_->virtual_time_domain());
@@ -73,12 +83,6 @@ blink::WebTaskRunner* WebFrameSchedulerImpl::timerTaskRunner() {
return timer_web_task_runner_.get();
}
-void WebFrameSchedulerImpl::setFrameOrigin(
- const blink::WebSecurityOrigin& origin) {
- origin_ = origin;
- // TODO(skyostil): Associate the task queues with this origin.
-}
-
void WebFrameSchedulerImpl::setPageVisible(bool page_visible) {
DCHECK(parent_web_view_scheduler_);
if (page_visible_ == page_visible)
@@ -117,5 +121,4 @@ void WebFrameSchedulerImpl::OnVirtualTimeDomainChanged() {
}
}
-
} // namespace scheduler
« no previous file with comments | « components/scheduler/renderer/web_frame_scheduler_impl.h ('k') | components/scheduler/renderer/web_view_scheduler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698