12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_FILTER_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_FILTER_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/browser_message_filter.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace content { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This class listens for incoming ViewHostMsgs that are applicable to the 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// ResourceScheduler and invokes the appropriate notifications. It must be 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// inserted before the RenderMessageFilter, because the ResourceScheduler runs 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// on the IO thread and we want to see the messages before the view messages are 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// bounced to the UI thread. 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ResourceSchedulerFilter : public BrowserMessageFilter { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit ResourceSchedulerFilter(int child_id); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // BrowserMessageFilter methods: 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~ResourceSchedulerFilter(); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int child_id_; 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace content 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_FILTER_H_ 33