| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ | 5 #ifndef CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ |
| 6 #define CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ | 6 #define CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "googleurl/src/gurl.h" | 21 #include "googleurl/src/gurl.h" |
| 22 #include "ipc/ipc_message.h" | 22 #include "ipc/ipc_message.h" |
| 23 #include "webkit/glue/webplugin.h" | 23 #include "webkit/glue/webplugin.h" |
| 24 | 24 |
| 25 class PluginChannel; | 25 class PluginChannel; |
| 26 | 26 |
| 27 namespace base { | 27 namespace base { |
| 28 class WaitableEvent; | 28 class WaitableEvent; |
| 29 } | 29 } |
| 30 | 30 |
| 31 namespace webkit_glue { | 31 class WebPluginDelegateImpl; |
| 32 class WebPluginDelegate; | |
| 33 } | |
| 34 | 32 |
| 35 // This is an implementation of WebPlugin that proxies all calls to the | 33 // This is an implementation of WebPlugin that proxies all calls to the |
| 36 // renderer. | 34 // renderer. |
| 37 class WebPluginProxy : public webkit_glue::WebPlugin { | 35 class WebPluginProxy : public webkit_glue::WebPlugin { |
| 38 public: | 36 public: |
| 39 // Creates a new proxy for WebPlugin, using the given sender to send the | 37 // Creates a new proxy for WebPlugin, using the given sender to send the |
| 40 // marshalled WebPlugin calls. | 38 // marshalled WebPlugin calls. |
| 41 WebPluginProxy(PluginChannel* channel, | 39 WebPluginProxy(PluginChannel* channel, |
| 42 int route_id, | 40 int route_id, |
| 43 const GURL& page_url); | 41 const GURL& page_url); |
| 44 ~WebPluginProxy(); | 42 ~WebPluginProxy(); |
| 45 | 43 |
| 46 void set_delegate(webkit_glue::WebPluginDelegate* d) { delegate_ = d; } | 44 void set_delegate(WebPluginDelegateImpl* d) { delegate_ = d; } |
| 47 | 45 |
| 48 // WebPlugin overrides | 46 // WebPlugin overrides |
| 49 void SetWindow(gfx::PluginWindowHandle window); | 47 void SetWindow(gfx::PluginWindowHandle window); |
| 50 void WillDestroyWindow(gfx::PluginWindowHandle window); | 48 void WillDestroyWindow(gfx::PluginWindowHandle window); |
| 51 #if defined(OS_WIN) | 49 #if defined(OS_WIN) |
| 52 void SetWindowlessPumpEvent(HANDLE pump_messages_event); | 50 void SetWindowlessPumpEvent(HANDLE pump_messages_event); |
| 53 // Returns true on success. | 51 // Returns true on success. |
| 54 bool SetModalDialogEvent(HANDLE modal_dialog_event); | 52 bool SetModalDialogEvent(HANDLE modal_dialog_event); |
| 55 #endif | 53 #endif |
| 56 void CancelResource(int id); | 54 void CancelResource(int id); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 | 156 |
| 159 typedef base::hash_map<int, webkit_glue::WebPluginResourceClient*> | 157 typedef base::hash_map<int, webkit_glue::WebPluginResourceClient*> |
| 160 ResourceClientMap; | 158 ResourceClientMap; |
| 161 ResourceClientMap resource_clients_; | 159 ResourceClientMap resource_clients_; |
| 162 | 160 |
| 163 scoped_refptr<PluginChannel> channel_; | 161 scoped_refptr<PluginChannel> channel_; |
| 164 int route_id_; | 162 int route_id_; |
| 165 uint32 cp_browsing_context_; | 163 uint32 cp_browsing_context_; |
| 166 NPObject* window_npobject_; | 164 NPObject* window_npobject_; |
| 167 NPObject* plugin_element_; | 165 NPObject* plugin_element_; |
| 168 webkit_glue::WebPluginDelegate* delegate_; | 166 WebPluginDelegateImpl* delegate_; |
| 169 gfx::Rect damaged_rect_; | 167 gfx::Rect damaged_rect_; |
| 170 bool waiting_for_paint_; | 168 bool waiting_for_paint_; |
| 171 scoped_ptr<base::WaitableEvent> modal_dialog_event_; | 169 scoped_ptr<base::WaitableEvent> modal_dialog_event_; |
| 172 // The url of the main frame hosting the plugin. | 170 // The url of the main frame hosting the plugin. |
| 173 GURL page_url_; | 171 GURL page_url_; |
| 174 | 172 |
| 175 #if defined(OS_WIN) | 173 #if defined(OS_WIN) |
| 176 // Variables used for desynchronized windowless plugin painting. See note in | 174 // Variables used for desynchronized windowless plugin painting. See note in |
| 177 // webplugin_delegate_proxy.h for how this works. | 175 // webplugin_delegate_proxy.h for how this works. |
| 178 | 176 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 194 scoped_ptr<TransportDIB> windowless_dib_; | 192 scoped_ptr<TransportDIB> windowless_dib_; |
| 195 scoped_ptr<TransportDIB> background_dib_; | 193 scoped_ptr<TransportDIB> background_dib_; |
| 196 scoped_ptr<skia::PlatformCanvas> windowless_canvas_; | 194 scoped_ptr<skia::PlatformCanvas> windowless_canvas_; |
| 197 scoped_ptr<skia::PlatformCanvas> background_canvas_; | 195 scoped_ptr<skia::PlatformCanvas> background_canvas_; |
| 198 #endif | 196 #endif |
| 199 | 197 |
| 200 ScopedRunnableMethodFactory<WebPluginProxy> runnable_method_factory_; | 198 ScopedRunnableMethodFactory<WebPluginProxy> runnable_method_factory_; |
| 201 }; | 199 }; |
| 202 | 200 |
| 203 #endif // CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ | 201 #endif // CHROME_PLUGIN_PLUGIN_WEBPLUGIN_PROXY_H__ |
| OLD | NEW |