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