1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 6#define CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 7 8#include <string> 9 10#include "base/memory/weak_ptr.h" 11#include "chrome/browser/renderer_host/pepper/device_id_fetcher.h" 12#include "ppapi/host/host_message_context.h" 13#include "ppapi/host/resource_host.h" 14 15namespace content { 16class BrowserPpapiHost; 17} 18 19namespace IPC { 20class Message; 21} 22 23namespace chrome { 24class MonitorFinder; 25 26class PepperFlashDRMHost : public ppapi::host::ResourceHost { 27 public: 28 PepperFlashDRMHost(content::BrowserPpapiHost* host, 29 PP_Instance instance, 30 PP_Resource resource); 31 virtual ~PepperFlashDRMHost(); 32 33 // ResourceHost override. 34 virtual int32_t OnResourceMessageReceived( 35 const IPC::Message& msg, 36 ppapi::host::HostMessageContext* context) OVERRIDE; 37 38 private: 39 // IPC message handler. 40 int32_t OnHostMsgGetDeviceID(ppapi::host::HostMessageContext* context); 41 int32_t OnHostMsgGetHmonitor(ppapi::host::HostMessageContext* context); 42 int32_t OnHostMsgMonitorIsExternal(ppapi::host::HostMessageContext* context); 43 44 // Called by the fetcher when the device ID was retrieved, or the empty string 45 // on error. 46 void GotDeviceID(ppapi::host::ReplyMessageContext reply_context, 47 const std::string& id, 48 int32_t result); 49 50 scoped_refptr<DeviceIDFetcher> fetcher_; 51 scoped_refptr<MonitorFinder> monitor_finder_; 52 53 base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_; 54 55 DISALLOW_COPY_AND_ASSIGN(PepperFlashDRMHost); 56}; 57 58} // namespace chrome 59 60#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 61