| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/public/web/WebPlugin.h" | 8 #include "third_party/WebKit/public/web/WebPlugin.h" |
| 9 | 9 |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 // Get Browser Plugin's DOM Node attribute |attribute_name|'s value. | 53 // Get Browser Plugin's DOM Node attribute |attribute_name|'s value. |
| 54 std::string GetDOMAttributeValue(const std::string& attribute_name) const; | 54 std::string GetDOMAttributeValue(const std::string& attribute_name) const; |
| 55 // Checks if the attribute |attribute_name| exists in the DOM. | 55 // Checks if the attribute |attribute_name| exists in the DOM. |
| 56 bool HasDOMAttribute(const std::string& attribute_name) const; | 56 bool HasDOMAttribute(const std::string& attribute_name) const; |
| 57 | 57 |
| 58 // Get the allowtransparency attribute value. | 58 // Get the allowtransparency attribute value. |
| 59 bool GetAllowTransparencyAttribute() const; | 59 bool GetAllowTransparencyAttribute() const; |
| 60 // Parse the allowtransparency attribute and adjust transparency of | 60 // Parse the allowtransparency attribute and adjust transparency of |
| 61 // BrowserPlugin accordingly. | 61 // BrowserPlugin accordingly. |
| 62 void ParseAllowTransparencyAttribute(); | 62 void ParseAllowTransparencyAttribute(); |
| 63 // Get the src attribute value of the BrowserPlugin instance. | |
| 64 std::string GetSrcAttribute() const; | |
| 65 // Parse the src attribute value of the BrowserPlugin instance. | |
| 66 bool ParseSrcAttribute(std::string* error_message); | |
| 67 // Get the autosize attribute value. | 63 // Get the autosize attribute value. |
| 68 bool GetAutoSizeAttribute() const; | 64 bool GetAutoSizeAttribute() const; |
| 69 // Parses the autosize attribute value. | 65 // Parses the autosize attribute value. |
| 70 void ParseAutoSizeAttribute(); | 66 void ParseAutoSizeAttribute(); |
| 71 // Get the maxheight attribute value. | 67 // Get the maxheight attribute value. |
| 72 int GetMaxHeightAttribute() const; | 68 int GetMaxHeightAttribute() const; |
| 73 // Get the maxwidth attribute value. | 69 // Get the maxwidth attribute value. |
| 74 int GetMaxWidthAttribute() const; | 70 int GetMaxWidthAttribute() const; |
| 75 // Get the minheight attribute value. | 71 // Get the minheight attribute value. |
| 76 int GetMinHeightAttribute() const; | 72 int GetMinHeightAttribute() const; |
| 77 // Get the minwidth attribute value. | 73 // Get the minwidth attribute value. |
| 78 int GetMinWidthAttribute() const; | 74 int GetMinWidthAttribute() const; |
| 79 // Parse the minwidth, maxwidth, minheight, and maxheight attribute values. | 75 // Parse the minwidth, maxwidth, minheight, and maxheight attribute values. |
| 80 void ParseSizeContraintsChanged(); | 76 void ParseSizeContraintsChanged(); |
| 81 // The partition identifier string is stored as UTF-8. | |
| 82 std::string GetPartitionAttribute() const; | |
| 83 // This method can be successfully called only before the first navigation for | |
| 84 // this instance of BrowserPlugin. If an error occurs, the |error_message| is | |
| 85 // set appropriately to indicate the failure reason. | |
| 86 bool ParsePartitionAttribute(std::string* error_message); | |
| 87 // True if the partition attribute can be removed. | 77 // True if the partition attribute can be removed. |
| 88 bool CanRemovePartitionAttribute(std::string* error_message); | 78 bool CanRemovePartitionAttribute(std::string* error_message); |
| 89 | 79 |
| 90 bool InAutoSizeBounds(const gfx::Size& size) const; | 80 bool InAutoSizeBounds(const gfx::Size& size) const; |
| 91 | 81 |
| 92 // Get the guest's DOMWindow proxy. | 82 // Get the guest's DOMWindow proxy. |
| 93 NPObject* GetContentWindow() const; | 83 NPObject* GetContentWindow() const; |
| 94 | 84 |
| 95 // Returns whether the guest process has crashed. | 85 // Returns whether the guest process has crashed. |
| 96 bool guest_crashed() const { return guest_crashed_; } | 86 bool guest_crashed() const { return guest_crashed_; } |
| 97 // Returns whether this BrowserPlugin has requested an instance ID. | |
| 98 bool HasNavigated() const; | |
| 99 // Returns whether this BrowserPlugin has allocated an instance ID. | 87 // Returns whether this BrowserPlugin has allocated an instance ID. |
| 100 bool HasGuestInstanceID() const; | 88 bool HasGuestInstanceID() const; |
| 101 | 89 |
| 102 // Informs the guest of an updated focus state. | 90 // Informs the guest of an updated focus state. |
| 103 void UpdateGuestFocusState(); | 91 void UpdateGuestFocusState(); |
| 104 // Indicates whether the guest should be focused. | 92 // Indicates whether the guest should be focused. |
| 105 bool ShouldGuestBeFocused() const; | 93 bool ShouldGuestBeFocused() const; |
| 106 | 94 |
| 107 // Embedder's device scale factor changed, we need to update the guest | 95 // Embedder's device scale factor changed, we need to update the guest |
| 108 // renderer. | 96 // renderer. |
| 109 void UpdateDeviceScaleFactor(float device_scale_factor); | 97 void UpdateDeviceScaleFactor(float device_scale_factor); |
| 110 | 98 |
| 111 // A request to enable hardware compositing. | 99 // A request to enable hardware compositing. |
| 112 void EnableCompositing(bool enable); | 100 void EnableCompositing(bool enable); |
| 113 | 101 |
| 114 // Called when a guest instance ID has been allocated by the browser process. | |
| 115 void OnInstanceIDAllocated(int guest_instance_id); | |
| 116 // Provided that a guest instance ID has been allocated, this method attaches | 102 // Provided that a guest instance ID has been allocated, this method attaches |
| 117 // this BrowserPlugin instance to that guest. |extra_params| are parameters | 103 // this BrowserPlugin instance to that guest. |extra_params| are parameters |
| 118 // passed in by the content embedder to the browser process. | 104 // passed in by the content embedder to the browser process. |
| 119 void Attach(int guest_instance_id, | 105 void Attach(int guest_instance_id, |
| 120 scoped_ptr<base::DictionaryValue> extra_params); | 106 scoped_ptr<base::DictionaryValue> extra_params); |
| 121 | 107 |
| 122 // Notify the plugin about a compositor commit so that frame ACKs could be | 108 // Notify the plugin about a compositor commit so that frame ACKs could be |
| 123 // sent, if needed. | 109 // sent, if needed. |
| 124 void DidCommitCompositorFrame(); | 110 void DidCommitCompositorFrame(); |
| 125 | 111 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 // Gets the Min Height value used for auto size. | 202 // Gets the Min Height value used for auto size. |
| 217 int GetAdjustedMinHeight() const; | 203 int GetAdjustedMinHeight() const; |
| 218 // Gets the Min Width value used for auto size. | 204 // Gets the Min Width value used for auto size. |
| 219 int GetAdjustedMinWidth() const; | 205 int GetAdjustedMinWidth() const; |
| 220 | 206 |
| 221 // Virtual to allow for mocking in tests. | 207 // Virtual to allow for mocking in tests. |
| 222 virtual float GetDeviceScaleFactor() const; | 208 virtual float GetDeviceScaleFactor() const; |
| 223 | 209 |
| 224 void ShowSadGraphic(); | 210 void ShowSadGraphic(); |
| 225 | 211 |
| 226 // Parses the attributes of the browser plugin from the element's attributes | |
| 227 // and sets them appropriately. | |
| 228 void ParseAttributes(); | |
| 229 | |
| 230 // Triggers the event-listeners for |event_name|. Note that the function | 212 // Triggers the event-listeners for |event_name|. Note that the function |
| 231 // frees all the values in |props|. | 213 // frees all the values in |props|. |
| 232 void TriggerEvent(const std::string& event_name, | 214 void TriggerEvent(const std::string& event_name, |
| 233 std::map<std::string, base::Value*>* props); | 215 std::map<std::string, base::Value*>* props); |
| 234 | 216 |
| 235 // Populates BrowserPluginHostMsg_ResizeGuest_Params with resize state. | 217 // Populates BrowserPluginHostMsg_ResizeGuest_Params with resize state. |
| 236 void PopulateResizeGuestParameters( | 218 void PopulateResizeGuestParameters( |
| 237 BrowserPluginHostMsg_ResizeGuest_Params* params, | 219 BrowserPluginHostMsg_ResizeGuest_Params* params, |
| 238 const gfx::Rect& view_size, | 220 const gfx::Rect& view_size, |
| 239 bool needs_repaint); | 221 bool needs_repaint); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 bool paint_ack_received_; | 272 bool paint_ack_received_; |
| 291 gfx::Rect plugin_rect_; | 273 gfx::Rect plugin_rect_; |
| 292 float last_device_scale_factor_; | 274 float last_device_scale_factor_; |
| 293 // Bitmap for crashed plugin. Lazily initialized, non-owning pointer. | 275 // Bitmap for crashed plugin. Lazily initialized, non-owning pointer. |
| 294 SkBitmap* sad_guest_; | 276 SkBitmap* sad_guest_; |
| 295 bool guest_crashed_; | 277 bool guest_crashed_; |
| 296 scoped_ptr<BrowserPluginHostMsg_ResizeGuest_Params> pending_resize_params_; | 278 scoped_ptr<BrowserPluginHostMsg_ResizeGuest_Params> pending_resize_params_; |
| 297 bool is_auto_size_state_dirty_; | 279 bool is_auto_size_state_dirty_; |
| 298 // Maximum size constraint for autosize. | 280 // Maximum size constraint for autosize. |
| 299 gfx::Size max_auto_size_; | 281 gfx::Size max_auto_size_; |
| 300 std::string storage_partition_id_; | |
| 301 bool persist_storage_; | |
| 302 bool valid_partition_id_; | |
| 303 int content_window_routing_id_; | 282 int content_window_routing_id_; |
| 304 bool plugin_focused_; | 283 bool plugin_focused_; |
| 305 // Tracks the visibility of the browser plugin regardless of the whole | 284 // Tracks the visibility of the browser plugin regardless of the whole |
| 306 // embedder RenderView's visibility. | 285 // embedder RenderView's visibility. |
| 307 bool visible_; | 286 bool visible_; |
| 308 | 287 |
| 309 const bool auto_navigate_; | 288 const bool auto_navigate_; |
| 310 std::string html_string_; | 289 std::string html_string_; |
| 311 | 290 |
| 312 WebCursor cursor_; | 291 WebCursor cursor_; |
| 313 | 292 |
| 314 gfx::Size last_view_size_; | 293 gfx::Size last_view_size_; |
| 315 bool before_first_navigation_; | |
| 316 bool mouse_locked_; | 294 bool mouse_locked_; |
| 317 | 295 |
| 318 // BrowserPlugin outlives RenderViewImpl in Chrome Apps and so we need to | 296 // BrowserPlugin outlives RenderViewImpl in Chrome Apps and so we need to |
| 319 // store the BrowserPlugin's BrowserPluginManager in a member variable to | 297 // store the BrowserPlugin's BrowserPluginManager in a member variable to |
| 320 // avoid accessing the RenderViewImpl. | 298 // avoid accessing the RenderViewImpl. |
| 321 const scoped_refptr<BrowserPluginManager> browser_plugin_manager_; | 299 const scoped_refptr<BrowserPluginManager> browser_plugin_manager_; |
| 322 | 300 |
| 323 // Used for HW compositing. | 301 // Used for HW compositing. |
| 324 scoped_refptr<ChildFrameCompositingHelper> compositing_helper_; | 302 scoped_refptr<ChildFrameCompositingHelper> compositing_helper_; |
| 325 | 303 |
| 326 // Used to identify the plugin to WebBindings. | 304 // Used to identify the plugin to WebBindings. |
| 327 scoped_ptr<struct _NPP> npp_; | 305 scoped_ptr<struct _NPP> npp_; |
| 328 | 306 |
| 329 // URL for the embedder frame. | 307 // URL for the embedder frame. |
| 330 const GURL embedder_frame_url_; | 308 const GURL embedder_frame_url_; |
| 331 | 309 |
| 332 std::vector<EditCommand> edit_commands_; | 310 std::vector<EditCommand> edit_commands_; |
| 333 | 311 |
| 334 // Weak factory used in v8 |MakeWeak| callback, since the v8 callback might | 312 // Weak factory used in v8 |MakeWeak| callback, since the v8 callback might |
| 335 // get called after BrowserPlugin has been destroyed. | 313 // get called after BrowserPlugin has been destroyed. |
| 336 base::WeakPtrFactory<BrowserPlugin> weak_ptr_factory_; | 314 base::WeakPtrFactory<BrowserPlugin> weak_ptr_factory_; |
| 337 | 315 |
| 338 DISALLOW_COPY_AND_ASSIGN(BrowserPlugin); | 316 DISALLOW_COPY_AND_ASSIGN(BrowserPlugin); |
| 339 }; | 317 }; |
| 340 | 318 |
| 341 } // namespace content | 319 } // namespace content |
| 342 | 320 |
| 343 #endif // CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ | 321 #endif // CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_H_ |
| OLD | NEW |