OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ | 5 #ifndef CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ |
6 #define CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ | 6 #define CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ |
7 | 7 |
8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPlugin.h" | 8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPlugin.h" |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 bool ShouldGuestBeFocused() const; | 107 bool ShouldGuestBeFocused() const; |
108 | 108 |
109 // Inform the BrowserPlugin that the guest's contentWindow is ready, | 109 // Inform the BrowserPlugin that the guest's contentWindow is ready, |
110 // and provide it with a routing ID to grab it. | 110 // and provide it with a routing ID to grab it. |
111 void GuestContentWindowReady(int content_window_routing_id); | 111 void GuestContentWindowReady(int content_window_routing_id); |
112 | 112 |
113 // Informs the BrowserPlugin that the guest has started/stopped accepting | 113 // Informs the BrowserPlugin that the guest has started/stopped accepting |
114 // touch events. | 114 // touch events. |
115 void SetAcceptTouchEvents(bool accept); | 115 void SetAcceptTouchEvents(bool accept); |
116 | 116 |
117 // Indicates whether there are any Javascript listeners attached to a | |
118 // provided event_name. | |
119 bool HasListeners(const std::string& event_name); | |
120 // Add a custom event listener to this BrowserPlugin instance. | |
121 bool AddEventListener(const std::string& event_name, | |
122 v8::Local<v8::Function> function); | |
123 // Remove a custom event listener from this BrowserPlugin instance. | |
124 bool RemoveEventListener(const std::string& event_name, | |
125 v8::Local<v8::Function> function); | |
126 // Tells the BrowserPlugin to tell the guest to navigate to the previous | 117 // Tells the BrowserPlugin to tell the guest to navigate to the previous |
127 // navigation entry in the navigation history. | 118 // navigation entry in the navigation history. |
128 void Back(); | 119 void Back(); |
129 // Tells the BrowserPlugin to tell the guest to navigate to the next | 120 // Tells the BrowserPlugin to tell the guest to navigate to the next |
130 // navigation entry in the navigation history. | 121 // navigation entry in the navigation history. |
131 void Forward(); | 122 void Forward(); |
132 // Tells the BrowserPlugin to tell the guest to navigate to a position | 123 // Tells the BrowserPlugin to tell the guest to navigate to a position |
133 // relative to the current index in its navigation history. | 124 // relative to the current index in its navigation history. |
134 void Go(int relativeIndex); | 125 void Go(int relativeIndex); |
135 // Tells the BrowserPlugin to terminate the guest process. | 126 // Tells the BrowserPlugin to terminate the guest process. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 // Initializes the valid events. | 209 // Initializes the valid events. |
219 void InitializeEvents(); | 210 void InitializeEvents(); |
220 | 211 |
221 // Cleanup event listener state to free v8 resources when a BrowserPlugin | 212 // Cleanup event listener state to free v8 resources when a BrowserPlugin |
222 // is destroyed. | 213 // is destroyed. |
223 void RemoveEventListeners(); | 214 void RemoveEventListeners(); |
224 | 215 |
225 // Returns whether |event_name| is a valid event. | 216 // Returns whether |event_name| is a valid event. |
226 bool IsValidEvent(const std::string& event_name); | 217 bool IsValidEvent(const std::string& event_name); |
227 | 218 |
228 // Triggers the event-listeners for |event_name|. | 219 // Triggers the event-listeners for |event_name|. Note that the function |
| 220 // frees all the values in |props|. |
229 void TriggerEvent(const std::string& event_name, | 221 void TriggerEvent(const std::string& event_name, |
230 v8::Local<v8::Object>* event); | 222 std::map<std::string, base::Value*>* props); |
231 | 223 |
232 // Creates and maps transport dib. Overridden in tests. | 224 // Creates and maps transport dib. Overridden in tests. |
233 virtual TransportDIB* CreateTransportDIB(const size_t size); | 225 virtual TransportDIB* CreateTransportDIB(const size_t size); |
234 // Frees up the damage buffer. Overridden in tests. | 226 // Frees up the damage buffer. Overridden in tests. |
235 virtual void FreeDamageBuffer(); | 227 virtual void FreeDamageBuffer(); |
236 | 228 |
237 // Populates BrowserPluginHostMsg_AutoSize_Params object with autosize state. | 229 // Populates BrowserPluginHostMsg_AutoSize_Params object with autosize state. |
238 void PopulateAutoSizeParameters( | 230 void PopulateAutoSizeParameters( |
239 BrowserPluginHostMsg_AutoSize_Params* params) const; | 231 BrowserPluginHostMsg_AutoSize_Params* params) const; |
240 // Informs the guest of an updated autosize state. | 232 // Informs the guest of an updated autosize state. |
(...skipping 25 matching lines...) Expand all Loading... |
266 int min_width_; | 258 int min_width_; |
267 int process_id_; | 259 int process_id_; |
268 std::string storage_partition_id_; | 260 std::string storage_partition_id_; |
269 bool persist_storage_; | 261 bool persist_storage_; |
270 int content_window_routing_id_; | 262 int content_window_routing_id_; |
271 bool plugin_focused_; | 263 bool plugin_focused_; |
272 bool embedder_focused_; | 264 bool embedder_focused_; |
273 // Tracks the visibility of the browser plugin regardless of the whole | 265 // Tracks the visibility of the browser plugin regardless of the whole |
274 // embedder RenderView's visibility. | 266 // embedder RenderView's visibility. |
275 bool visible_; | 267 bool visible_; |
276 typedef std::vector<v8::Local<v8::Function> > EventListenersLocal; | |
277 typedef std::vector<v8::Persistent<v8::Function> > EventListeners; | |
278 typedef std::map<std::string, EventListeners> EventListenerMap; | |
279 EventListenerMap event_listener_map_; | |
280 // Important: Do not add more history state here. | 268 // Important: Do not add more history state here. |
281 // We strongly discourage storing additional history state (such as page IDs) | 269 // We strongly discourage storing additional history state (such as page IDs) |
282 // in the embedder process, at the risk of having incorrect information that | 270 // in the embedder process, at the risk of having incorrect information that |
283 // can lead to broken back/forward logic in apps. | 271 // can lead to broken back/forward logic in apps. |
284 // It's also important that this state does not get modified by any logic in | 272 // It's also important that this state does not get modified by any logic in |
285 // the embedder process. It should only be updated in response to navigation | 273 // the embedder process. It should only be updated in response to navigation |
286 // events in the guest. No assumptions should be made about how the index | 274 // events in the guest. No assumptions should be made about how the index |
287 // will change after a navigation (e.g., for back, forward, or go), because | 275 // will change after a navigation (e.g., for back, forward, or go), because |
288 // the changes are not always obvious. For example, there is a maximum | 276 // the changes are not always obvious. For example, there is a maximum |
289 // number of entries and earlier ones will automatically be pruned. | 277 // number of entries and earlier ones will automatically be pruned. |
290 int current_nav_entry_index_; | 278 int current_nav_entry_index_; |
291 int nav_entry_count_; | 279 int nav_entry_count_; |
292 DISALLOW_COPY_AND_ASSIGN(BrowserPlugin); | 280 DISALLOW_COPY_AND_ASSIGN(BrowserPlugin); |
293 }; | 281 }; |
294 | 282 |
295 } // namespace content | 283 } // namespace content |
296 | 284 |
297 #endif // CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ | 285 #endif // CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ |
OLD | NEW |