• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_
6 #define COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_
7 
8 #include "components/plugins/renderer/plugin_placeholder.h"
9 
10 namespace plugins {
11 
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);
24 
25   // Whether this is a youtube url.
26   static bool IsYouTubeURL(const GURL& url, const std::string& mime_type);
27 
28  private:
29   virtual ~MobileYouTubePlugin();
30 
31   // Opens a youtube app in the current tab.
32   void OpenYoutubeUrlCallback();
33 
34   // WebViewPlugin::Delegate (via PluginPlaceholder) method
35   virtual void BindWebFrame(blink::WebFrame* frame) OVERRIDE;
36 
37   // gin::Wrappable (via PluginPlaceholder) method
38   virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
39       v8::Isolate* isolate) OVERRIDE;
40 
41   DISALLOW_COPY_AND_ASSIGN(MobileYouTubePlugin);
42 };
43 
44 }  // namespace plugins
45 
46 #endif  // COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_
47