Home | History | Annotate | Download | only in renderer
      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