Chromium Code Reviews| Index: content/browser/renderer_host/resource_scheduler_filter.cc |
| diff --git a/content/browser/renderer_host/resource_scheduler_filter.cc b/content/browser/renderer_host/resource_scheduler_filter.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fe846b29db507594f5c84be30ea9234ad7ddb140 |
| --- /dev/null |
| +++ b/content/browser/renderer_host/resource_scheduler_filter.cc |
| @@ -0,0 +1,53 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
willchan no longer on Chromium
2012/11/21 09:04:30
I don't know the browser<=>renderer IPCs very well
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/browser/renderer_host/resource_scheduler_filter.h" |
| + |
| +#include "content/browser/renderer_host/resource_dispatcher_host_impl.h" |
| +#include "content/browser/renderer_host/resource_scheduler.h" |
| +#include "content/common/view_messages.h" |
| +#include "content/public/common/page_transition_types.h" |
| + |
| +namespace content { |
| + |
| +ResourceSchedulerFilter::ResourceSchedulerFilter(int child_id) |
| + : child_id_(child_id), |
| + resource_scheduler_(ResourceDispatcherHostImpl::Get()->scheduler()) { |
| +} |
| + |
| +ResourceSchedulerFilter::~ResourceSchedulerFilter() { |
| +} |
| + |
| +bool ResourceSchedulerFilter::OnMessageReceived(const IPC::Message& message, |
| + bool* message_was_ok) { |
| + switch (message.type()) { |
| + case ViewHostMsg_RenderViewReady::ID: |
| + resource_scheduler_->OnCreate(child_id_, message.routing_id()); |
| + break; |
| + |
| + case ViewHostMsg_FrameNavigate::ID: { |
| + PickleIterator iter(message); |
| + ViewHostMsg_FrameNavigate_Params params; |
| + if (!IPC::ParamTraits<ViewHostMsg_FrameNavigate_Params>::Read( |
| + &message, &iter, ¶ms)) { |
| + break; |
| + } |
| + if (PageTransitionIsMainFrame(params.transition)) { |
| + resource_scheduler_->OnNavigate(child_id_, message.routing_id()); |
| + } |
| + break; |
| + } |
| + |
| + case ViewHostMsg_UpdateRect::ID: |
| + resource_scheduler_->OnPaint(child_id_, message.routing_id()); |
| + break; |
| + |
| + default: |
| + break; |
| + } |
| + |
| + return false; |
| +} |
| + |
| +} // namespace content |