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 CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_BROKER_MESSAGE_FILTER_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_BROKER_MESSAGE_FILTER_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/compiler_specific.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/pp_instance.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/host/resource_message_filter.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace content { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class BrowserPpapiHost; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ppapi { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace host { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct HostMessageContext; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace chrome { 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This filter handles messages for the PepperBrokerHost on the UI thread. 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PepperBrokerMessageFilter : public ppapi::host::ResourceMessageFilter { 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PepperBrokerMessageFilter(PP_Instance instance, 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::BrowserPpapiHost* host); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~PepperBrokerMessageFilter(); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // ppapi::host::ResourceMessageFilter overrides. 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual scoped_refptr<base::TaskRunner> OverrideTaskRunnerForMessage( 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const IPC::Message& message) OVERRIDE; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual int32_t OnResourceMessageReceived( 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const IPC::Message& msg, 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ppapi::host::HostMessageContext* context) OVERRIDE; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int32_t OnIsAllowed(ppapi::host::HostMessageContext* context); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int render_process_id_; 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GURL document_url_; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PepperBrokerMessageFilter); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace chrome 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_BROKER_MESSAGE_FILTER_H_ 52