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 10namespace 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. 17class 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