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