pepper_flash_drm_host.h revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
12cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// Use of this source code is governed by a BSD-style license that can be 32cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor// found in the LICENSE file. 42cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 52cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#ifndef CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 62cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#define CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 72cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 82cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include <string> 92cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 102cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "base/memory/weak_ptr.h" 112cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "chrome/browser/renderer_host/pepper/device_id_fetcher.h" 122cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "ppapi/host/host_message_context.h" 132cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "ppapi/host/resource_host.h" 142cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 15e7785040107266d01ebdcc066365f70b7ace371fDouglas Gregornamespace content { 161eb4433ac451dc16f4133a88af2d002ac26c58efMike Stumpclass BrowserPpapiHost; 172cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor} 182cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 192cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregornamespace IPC { 200b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorclass Message; 212cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor} 22a1ee0c548b8aa4aaf93d1917e304e3da13171a08John McCall 237c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattnernamespace chrome { 247c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner 2583d63c78810556d26b62ac4cbae2eda6cdd2570cSteve Naroffclass PepperFlashDRMHost : public ppapi::host::ResourceHost { 2614f79002e58556798e86168c63e48d533287eda5Douglas Gregor public: 273251ceb90b3fec68e86d6dcfa58836e20a7205c3Douglas Gregor PepperFlashDRMHost(content::BrowserPpapiHost* host, 2814f79002e58556798e86168c63e48d533287eda5Douglas Gregor PP_Instance instance, 29bd94500d3aa60092fb0f1e90f53fb0d03fa502a8Douglas Gregor PP_Resource resource); 302bec0410d268779f601bd509e0302a500af7ac6aDouglas Gregor virtual ~PepperFlashDRMHost(); 31ab41e63821dc60ad144d0684df8d79a9eef86b75Douglas Gregor 3217fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor // ResourceHost override. 3317fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor virtual int32_t OnResourceMessageReceived( 342596e429a61602312bdd149786045b8a90cd2d10Daniel Dunbar const IPC::Message& msg, 352cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor ppapi::host::HostMessageContext* context) OVERRIDE; 3614f79002e58556798e86168c63e48d533287eda5Douglas Gregor 37b64c19365deab788753d29c9bc881253c3f16f37Douglas Gregor private: 383c304bd9ec2b4611572d4cbae9e1727bbecb5dc9Chris Lattner // IPC message handler. 392cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor int32_t OnHostMsgGetDeviceID(ppapi::host::HostMessageContext* context); 402cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor int32_t OnHostMsgGetHmonitor(ppapi::host::HostMessageContext* context); 412cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 422cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor // Called by the fetcher when the device ID was retrieved, or the empty string 432cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor // on error. 4412b1c7615d4f9a2edc544be499f895f16ac100edChris Lattner void GotDeviceID(ppapi::host::ReplyMessageContext reply_context, 452cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor const std::string& id); 46bd21828179a61bd0954b082825cfb8a93345f602Benjamin Kramer 472cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor scoped_refptr<DeviceIDFetcher> fetcher_; 482cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 492cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_; 502cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 512cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor DISALLOW_COPY_AND_ASSIGN(PepperFlashDRMHost); 522cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor}; 532cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor 541eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} // namespace chrome 554fed3f47f6b9e31d603c5c2d1f6d8ec2e1241e57Douglas Gregor 562cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FLASH_DRM_HOST_H_ 572cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor