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::WebFrame* 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 // Opens a youtube app in the current tab. 30 void OpenYoutubeUrlCallback(const webkit_glue::CppArgumentList& args, 31 webkit_glue::CppVariant* result); 32 33 // WebViewPlugin::Delegate (via PluginPlaceholder) method 34 virtual void BindWebFrame(blink::WebFrame* frame) OVERRIDE; 35 36 DISALLOW_COPY_AND_ASSIGN(MobileYouTubePlugin); 37 }; 38 39 } // namespace plugins 40 41 #endif // COMPONENTS_PLUGINS_RENDERER_MOBILE_YOUTUBE_PLUGIN_H_ 42