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"
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
{
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
);
29 ~MobileYouTubePlugin() override
;
31 // Opens a youtube app in the current tab.
32 void OpenYoutubeUrlCallback();
34 // WebViewPlugin::Delegate (via PluginPlaceholder) method
35 void BindWebFrame(blink::WebFrame
* frame
) override
;
37 // gin::Wrappable (via PluginPlaceholder) method
38 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_