Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Side by Side Diff: content/renderer/media/crypto/pepper_cdm_wrapper_impl.h

Issue 222973003: Conversion of content_shell target to use WebLocalFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove some TODOs Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_
7 7
8 #if !defined(ENABLE_PEPPER_CDMS) 8 #if !defined(ENABLE_PEPPER_CDMS)
9 #error This file should only be included when ENABLE_PEPPER_CDMS is defined 9 #error This file should only be included when ENABLE_PEPPER_CDMS is defined
10 #endif 10 #endif
11 11
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "content/renderer/media/crypto/pepper_cdm_wrapper.h" 15 #include "content/renderer/media/crypto/pepper_cdm_wrapper.h"
16 // TODO(dcheng): Temporary. Convert back to a forward declare.
17 #include "third_party/WebKit/public/web/WebLocalFrame.h"
16 18
17 namespace blink { 19 namespace blink {
18 class WebFrame;
19 class WebHelperPlugin; 20 class WebHelperPlugin;
20 } 21 }
21 22
22 namespace content { 23 namespace content {
23 24
24 class ContentDecryptorDelegate; 25 class ContentDecryptorDelegate;
25 class PepperPluginInstanceImpl; 26 class PepperPluginInstanceImpl;
26 27
27 // Deleter for blink::WebHelperPlugin. 28 // Deleter for blink::WebHelperPlugin.
28 struct WebHelperPluginDeleter { 29 struct WebHelperPluginDeleter {
29 void operator()(blink::WebHelperPlugin* plugin) const; 30 void operator()(blink::WebHelperPlugin* plugin) const;
30 }; 31 };
31 32
32 // Implements a wrapper on blink::WebHelperPlugin so that the plugin gets 33 // Implements a wrapper on blink::WebHelperPlugin so that the plugin gets
33 // destroyed properly. It owns all the objects derived from WebHelperPlugin 34 // destroyed properly. It owns all the objects derived from WebHelperPlugin
34 // (WebPlugin, PepperPluginInstanceImpl, ContentDecryptionDelegate), and will 35 // (WebPlugin, PepperPluginInstanceImpl, ContentDecryptionDelegate), and will
35 // free them as necessary when this wrapper is destroyed. In particular, it 36 // free them as necessary when this wrapper is destroyed. In particular, it
36 // takes a reference to PepperPluginInstanceImpl so it won't go away until 37 // takes a reference to PepperPluginInstanceImpl so it won't go away until
37 // this object is destroyed. 38 // this object is destroyed.
38 // 39 //
39 // Implemented so that lower layers in Chromium don't need to be aware of 40 // Implemented so that lower layers in Chromium don't need to be aware of
40 // blink:: objects. 41 // blink:: objects.
41 class PepperCdmWrapperImpl : public PepperCdmWrapper { 42 class PepperCdmWrapperImpl : public PepperCdmWrapper {
42 public: 43 public:
43 static scoped_ptr<PepperCdmWrapper> Create(blink::WebFrame* frame, 44 static scoped_ptr<PepperCdmWrapper> Create(blink::WebLocalFrame* frame,
44 const std::string& pluginType); 45 const std::string& pluginType);
45 46
46 virtual ~PepperCdmWrapperImpl(); 47 virtual ~PepperCdmWrapperImpl();
47 48
48 // Returns the ContentDecryptorDelegate* associated with this plugin. 49 // Returns the ContentDecryptorDelegate* associated with this plugin.
49 virtual ContentDecryptorDelegate* GetCdmDelegate() OVERRIDE; 50 virtual ContentDecryptorDelegate* GetCdmDelegate() OVERRIDE;
50 51
51 private: 52 private:
52 typedef scoped_ptr<blink::WebHelperPlugin, WebHelperPluginDeleter> 53 typedef scoped_ptr<blink::WebHelperPlugin, WebHelperPluginDeleter>
53 ScopedHelperPlugin; 54 ScopedHelperPlugin;
54 55
55 // Takes ownership of |helper_plugin| and |plugin_instance|. 56 // Takes ownership of |helper_plugin| and |plugin_instance|.
56 PepperCdmWrapperImpl( 57 PepperCdmWrapperImpl(
57 ScopedHelperPlugin helper_plugin, 58 ScopedHelperPlugin helper_plugin,
58 const scoped_refptr<PepperPluginInstanceImpl>& plugin_instance); 59 const scoped_refptr<PepperPluginInstanceImpl>& plugin_instance);
59 60
60 ScopedHelperPlugin helper_plugin_; 61 ScopedHelperPlugin helper_plugin_;
61 scoped_refptr<PepperPluginInstanceImpl> plugin_instance_; 62 scoped_refptr<PepperPluginInstanceImpl> plugin_instance_;
62 63
63 DISALLOW_COPY_AND_ASSIGN(PepperCdmWrapperImpl); 64 DISALLOW_COPY_AND_ASSIGN(PepperCdmWrapperImpl);
64 }; 65 };
65 66
66 } // namespace content 67 } // namespace content
67 68
68 #endif // CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_ 69 #endif // CONTENT_RENDERER_MEDIA_CRYPTO_PEPPER_CDM_WRAPPER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698