| Index: content/browser/loader/resource_scheduler_filter.cc
|
| diff --git a/content/browser/loader/resource_scheduler_filter.cc b/content/browser/loader/resource_scheduler_filter.cc
|
| index 0738ec188fe60a084f4165712d6abecbbeaa57d9..71719eec59014d0be0d9223a1da6d71aabbbbc0c 100644
|
| --- a/content/browser/loader/resource_scheduler_filter.cc
|
| +++ b/content/browser/loader/resource_scheduler_filter.cc
|
| @@ -4,71 +4,46 @@
|
|
|
| #include "content/browser/loader/resource_scheduler_filter.h"
|
|
|
| -#include <stdint.h>
|
| -
|
| -#include "base/macros.h"
|
| #include "content/browser/loader/resource_dispatcher_host_impl.h"
|
| #include "content/browser/loader/resource_scheduler.h"
|
| #include "content/common/frame_messages.h"
|
| -#include "content/common/view_messages.h"
|
| +#include "ipc/ipc_message_macros.h"
|
| #include "ui/base/page_transition_types.h"
|
|
|
| namespace content {
|
| -namespace {
|
| -const uint32_t kFilteredMessageClasses[] = {
|
| - FrameMsgStart, ViewMsgStart,
|
| -};
|
| -} // namespace
|
|
|
| ResourceSchedulerFilter::ResourceSchedulerFilter(int child_id)
|
| - : BrowserMessageFilter(
|
| - kFilteredMessageClasses, arraysize(kFilteredMessageClasses)),
|
| - child_id_(child_id) {
|
| -}
|
| + : BrowserMessageFilter(FrameMsgStart), child_id_(child_id) {}
|
|
|
| -ResourceSchedulerFilter::~ResourceSchedulerFilter() {
|
| -}
|
| +ResourceSchedulerFilter::~ResourceSchedulerFilter() {}
|
|
|
| bool ResourceSchedulerFilter::OnMessageReceived(const IPC::Message& message) {
|
| - ResourceScheduler* scheduler =
|
| - ResourceDispatcherHostImpl::Get()->scheduler();
|
| - // scheduler can be NULL during shutdown, in which case it's ok to ignore the
|
| - // renderer's messages.
|
| + ResourceScheduler* scheduler = ResourceDispatcherHostImpl::Get()->scheduler();
|
| if (!scheduler)
|
| return false;
|
| + IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(ResourceSchedulerFilter, message, scheduler)
|
| + IPC_MESSAGE_HANDLER(FrameHostMsg_DidCommitProvisionalLoad,
|
| + OnDidCommitProvisionalLoad)
|
| + IPC_MESSAGE_HANDLER(FrameHostMsg_WillInsertBody, OnWillInsertBody)
|
| + IPC_END_MESSAGE_MAP()
|
| + return false;
|
| +}
|
|
|
| - switch (message.type()) {
|
| - case FrameHostMsg_DidCommitProvisionalLoad::ID: {
|
| - base::PickleIterator iter(message);
|
| - FrameHostMsg_DidCommitProvisionalLoad_Params params;
|
| - if (!IPC::ParamTraits<FrameHostMsg_DidCommitProvisionalLoad_Params>::Read(
|
| - &message, &iter, ¶ms)) {
|
| - break;
|
| - }
|
| - if (ui::PageTransitionIsMainFrame(params.transition) &&
|
| - !params.was_within_same_page) {
|
| - // We need to track the RenderViewHost routing_id because of downstream
|
| - // dependencies (crbug.com/392171 DownloadRequestHandle,
|
| - // SaveFileManager, ResourceDispatcherHostImpl, MediaStreamUIProxy,
|
| - // SpeechRecognitionDispatcherHost and possibly others). They look up
|
| - // the view based on the ID stored in the resource requests.
|
| - // Once those dependencies are unwound or moved to RenderFrameHost
|
| - // (crbug.com/304341) we can move the client to be based on the
|
| - // routing_id of the RenderFrameHost.
|
| - scheduler->OnNavigate(child_id_, params.render_view_routing_id);
|
| - }
|
| - break;
|
| - }
|
| -
|
| - case ViewHostMsg_WillInsertBody::ID:
|
| - scheduler->OnWillInsertBody(child_id_, message.routing_id());
|
| - break;
|
| -
|
| - default:
|
| - break;
|
| +void ResourceSchedulerFilter::OnDidCommitProvisionalLoad(
|
| + ResourceScheduler* scheduler,
|
| + const FrameHostMsg_DidCommitProvisionalLoad_Params& params) {
|
| + // TODO(csharrison): This isn't quite right for OOPIF, as we *do* want to
|
| + // propagate OnNavigate to the client associated with the OOPIF's RVH. This
|
| + // should not result in show-stopping bugs, just poorer loading performance.
|
| + if (ui::PageTransitionIsMainFrame(params.transition) &&
|
| + !params.was_within_same_page) {
|
| + scheduler->OnNavigate(child_id_, params.render_view_routing_id);
|
| }
|
| +}
|
|
|
| - return false;
|
| +void ResourceSchedulerFilter::OnWillInsertBody(ResourceScheduler* scheduler,
|
| + int render_view_routing_id) {
|
| + scheduler->OnWillInsertBody(child_id_, render_view_routing_id);
|
| }
|
|
|
| } // namespace content
|
|
|