• 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::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