Make sure webrtc::VideoSource is released when WebRtcVideoTrackAdapter is destroyed.
[chromium-blink-merge.git] / components / plugins / renderer / mobile_youtube_plugin.h
blob288daa1ecaf764428078daf3ef99b5193a3948cc
1 // Copyright 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.
5 #ifndef COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_
6 #define COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_
8 #include "components/plugins/renderer/plugin_placeholder.h"
10 namespace plugins {
12 // Class representing placeholders for old style embedded youtube video on
13 // mobile device. For old style embedded youtube video, it has a url in the form
14 // of http://www.youtube.com/v/VIDEO_ID. This placeholder replaces the url with
15 // a simple html page and clicking the play image redirects the user to the
16 // mobile youtube app.
17 class MobileYouTubePlugin : public PluginPlaceholder {
18 public:
19 MobileYouTubePlugin(content::RenderFrame* render_frame,
20 blink::WebLocalFrame* frame,
21 const blink::WebPluginParams& params,
22 base::StringPiece& template_html,
23 GURL placeholderDataUrl);
25 // Whether this is a youtube url.
26 static bool IsYouTubeURL(const GURL& url, const std::string& mime_type);
28 private:
29 virtual ~MobileYouTubePlugin();
31 // Opens a youtube app in the current tab.
32 void OpenYoutubeUrlCallback();
34 // WebViewPlugin::Delegate (via PluginPlaceholder) method
35 virtual void BindWebFrame(blink::WebFrame* frame) OVERRIDE;
37 // gin::Wrappable (via PluginPlaceholder) method
38 virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
39 v8::Isolate* isolate) OVERRIDE;
41 DISALLOW_COPY_AND_ASSIGN(MobileYouTubePlugin);
44 } // namespace plugins
46 #endif // COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_