Chromium Code Reviews| Index: chrome/renderer/plugins/chrome_plugin_placeholder.h |
| diff --git a/chrome/renderer/plugins/chrome_plugin_placeholder.h b/chrome/renderer/plugins/chrome_plugin_placeholder.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..268788738c2a065adbb5744dca5fb3ee3abea5eb |
| --- /dev/null |
| +++ b/chrome/renderer/plugins/chrome_plugin_placeholder.h |
| @@ -0,0 +1,107 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
|
Jói
2013/09/09 17:46:17
This file and the next seem to be modifications/ex
aberent
2013/09/10 13:24:01
I think 50 is the default. I will try lowering it
Bernhard Bauer
2013/09/10 13:47:10
FTR, you can delete individual patch sets, so it's
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_RENDERER_PLUGINS_CHROME_PLUGIN_PLACEHOLDER_H_ |
| +#define CHROME_RENDERER_PLUGINS_CHROME_PLUGIN_PLACEHOLDER_H_ |
| + |
| +#include "components/plugins/renderer/plugin_placeholder.h" |
| + |
| +struct ChromeViewHostMsg_GetPluginInfo_Status; |
| + |
| +class ChromePluginPlaceholder : public PluginPlaceholder, |
| + public content::RenderProcessObserver, |
| + public content::ContextMenuClient { |
| + public: |
| + ChromePluginPlaceholder(content::RenderView* render_view, |
|
Bernhard Bauer
2013/09/09 17:28:07
Do we ever directly construct this object outside
aberent
2013/09/10 13:24:01
Done.
|
| + WebKit::WebFrame* frame, |
| + const WebKit::WebPluginParams& params, |
| + const std::string& html_data, |
| + const string16& title); |
| + virtual ~ChromePluginPlaceholder(); |
| + |
| + static ChromePluginPlaceholder* CreateBlockedPlugin( |
| + content::RenderView* render_view, |
| + WebKit::WebFrame* frame, |
| + const WebKit::WebPluginParams& params, |
| + const content::WebPluginInfo& info, |
| + const std::string& identifier, |
| + const string16& name, |
| + int resource_id, |
| + const string16& message); |
| + |
| +#if defined(ENABLE_MOBILE_YOUTUBE_PLUGIN) |
| + // Placeholder for old style embedded youtube video on mobile device. For old |
| + // style embedded youtube video, it has a url in the form of |
| + // http://www.youtube.com/v/VIDEO_ID. This placeholder replaces the url with a |
| + // simple html page and clicking the play image redirects the user to the |
| + // mobile youtube app. |
| + static ChromePluginPlaceholder* CreateMobileYoutubePlugin( |
| + content::RenderView* render_view, |
| + WebKit::WebFrame* frame, |
| + const WebKit::WebPluginParams& params); |
| +#endif |
| + |
| + // Creates a new WebViewPlugin with a MissingPlugin as a delegate. |
| + static ChromePluginPlaceholder* CreateMissingPlugin( |
| + content::RenderView* render_view, |
| + WebKit::WebFrame* frame, |
| + const WebKit::WebPluginParams& params); |
| + |
| + static ChromePluginPlaceholder* CreateErrorPlugin( |
| + content::RenderView* render_view, |
| + const base::FilePath& plugin_path); |
| + |
| + void SetStatus(const ChromeViewHostMsg_GetPluginInfo_Status& status); |
| + |
| +#if defined(ENABLE_PLUGIN_INSTALLATION) |
| + int32 CreateRoutingId(); |
| +#endif |
| + |
| + private: |
| + // content::RenderViewObserver (via PluginPlaceholder) override: |
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| + |
| + // WebViewPlugin::Delegate (via PluginPlaceholder) methods: |
| + virtual void ShowContextMenu(const WebKit::WebMouseEvent&) OVERRIDE; |
| + |
| + // content::RenderProcessObserver methods: |
| + virtual void PluginListChanged() OVERRIDE; |
| + |
| + // content::ContextMenuClient methods: |
| + virtual void OnMenuAction(int request_id, unsigned action) OVERRIDE; |
| + virtual void OnMenuClosed(int request_id) OVERRIDE; |
| + virtual void OpenAboutPlugins() OVERRIDE; |
| + |
| + // Local methods: |
|
Bernhard Bauer
2013/09/09 17:28:07
Super-nit: For blocks of virtual methods it makes
aberent
2013/09/10 13:24:01
Done.
|
| + void OnLoadBlockedPlugins(const std::string& identifier); |
| + void OnSetIsPrerendering(bool is_prerendering); |
| +#if defined(ENABLE_PLUGIN_INSTALLATION) |
| + void OnDidNotFindMissingPlugin(); |
| + void OnFoundMissingPlugin(const string16& plugin_name); |
| + void OnStartedDownloadingPlugin(); |
| + void OnFinishedDownloadingPlugin(); |
| + void OnErrorDownloadingPlugin(const std::string& error); |
| + void OnCancelledDownloadingPlugin(); |
| +#endif |
| + |
| + // We use a scoped_ptr so we can forward-declare the struct; it's defined in |
| + // an IPC message file which can't be easily included in other header files. |
| + scoped_ptr<ChromeViewHostMsg_GetPluginInfo_Status> status_; |
| + |
| + string16 title_; |
| + |
| +#if defined(ENABLE_PLUGIN_INSTALLATION) |
| + // |routing_id()| is the routing ID of our associated RenderView, but we have |
| + // a separate routing ID for messages specific to this placeholder. |
| + int32 placeholder_routing_id_; |
| +#endif |
| + |
| + bool has_host_; |
| + int context_menu_request_id_; // Nonzero when request pending. |
| + string16 plugin_name_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ChromePluginPlaceholder); |
| +}; |
| + |
| +#endif // CHROME_RENDERER_PLUGINS_CHROME_PLUGIN_PLACEHOLDER_H_ |