Chromium Code Reviews| 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 // A BrowserPluginGuest is the browser side of a browser <--> embedder | 5 // A BrowserPluginGuest is the browser side of a browser <--> embedder |
| 6 // renderer channel. A BrowserPlugin (a WebPlugin) is on the embedder | 6 // renderer channel. A BrowserPlugin (a WebPlugin) is on the embedder |
| 7 // renderer side of browser <--> embedder renderer communication. | 7 // renderer side of browser <--> embedder renderer communication. |
| 8 // | 8 // |
| 9 // BrowserPluginGuest lives on the UI thread of the browser process. Any | 9 // BrowserPluginGuest lives on the UI thread of the browser process. Any |
| 10 // messages about the guest render process that the embedder might be interested | 10 // messages about the guest render process that the embedder might be interested |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 #include "base/compiler_specific.h" | 26 #include "base/compiler_specific.h" |
| 27 #include "base/macros.h" | 27 #include "base/macros.h" |
| 28 #include "base/memory/linked_ptr.h" | 28 #include "base/memory/linked_ptr.h" |
| 29 #include "base/memory/weak_ptr.h" | 29 #include "base/memory/weak_ptr.h" |
| 30 #include "base/values.h" | 30 #include "base/values.h" |
| 31 #include "build/build_config.h" | 31 #include "build/build_config.h" |
| 32 #include "content/common/edit_command.h" | 32 #include "content/common/edit_command.h" |
| 33 #include "content/common/input/input_event_ack_state.h" | 33 #include "content/common/input/input_event_ack_state.h" |
| 34 #include "content/public/browser/browser_plugin_guest_delegate.h" | 34 #include "content/public/browser/browser_plugin_guest_delegate.h" |
| 35 #include "content/public/browser/guest_host.h" | 35 #include "content/public/browser/guest_host.h" |
| 36 #include "content/public/browser/guest_mode.h" | |
|
Charlie Reis
2016/09/21 22:18:21
nit: Stale.
EhsanK
2016/09/22 22:55:43
Done.
| |
| 36 #include "content/public/browser/readback_types.h" | 37 #include "content/public/browser/readback_types.h" |
| 37 #include "content/public/browser/web_contents_observer.h" | 38 #include "content/public/browser/web_contents_observer.h" |
| 38 #include "third_party/WebKit/public/platform/WebDragOperation.h" | 39 #include "third_party/WebKit/public/platform/WebDragOperation.h" |
| 39 #include "third_party/WebKit/public/platform/WebFocusType.h" | 40 #include "third_party/WebKit/public/platform/WebFocusType.h" |
| 40 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" | 41 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" |
| 41 #include "third_party/WebKit/public/web/WebDragStatus.h" | 42 #include "third_party/WebKit/public/web/WebDragStatus.h" |
| 42 #include "third_party/WebKit/public/web/WebInputEvent.h" | 43 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 43 #include "ui/base/ime/text_input_mode.h" | 44 #include "ui/base/ime/text_input_mode.h" |
| 44 #include "ui/base/ime/text_input_type.h" | 45 #include "ui/base/ime/text_input_type.h" |
| 45 #include "ui/gfx/geometry/rect.h" | 46 #include "ui/gfx/geometry/rect.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 246 | 247 |
| 247 // Find the given |search_text| in the page. Returns true if the find request | 248 // Find the given |search_text| in the page. Returns true if the find request |
| 248 // is handled by this browser plugin guest. | 249 // is handled by this browser plugin guest. |
| 249 bool HandleFindForEmbedder(int request_id, | 250 bool HandleFindForEmbedder(int request_id, |
| 250 const base::string16& search_text, | 251 const base::string16& search_text, |
| 251 const blink::WebFindOptions& options); | 252 const blink::WebFindOptions& options); |
| 252 bool HandleStopFindingForEmbedder(StopFindAction action); | 253 bool HandleStopFindingForEmbedder(StopFindAction action); |
| 253 | 254 |
| 254 void ResendEventToEmbedder(const blink::WebInputEvent& event); | 255 void ResendEventToEmbedder(const blink::WebInputEvent& event); |
| 255 | 256 |
| 257 // TODO(ekaramad): Remove this once https://crbug.com/642826 is resolved. | |
| 258 bool can_use_cross_process_frames() const { | |
| 259 return can_use_cross_process_frames_; | |
| 260 } | |
| 261 | |
| 256 protected: | 262 protected: |
| 257 | 263 |
| 258 // BrowserPluginGuest is a WebContentsObserver of |web_contents| and | 264 // BrowserPluginGuest is a WebContentsObserver of |web_contents| and |
| 259 // |web_contents| has to stay valid for the lifetime of BrowserPluginGuest. | 265 // |web_contents| has to stay valid for the lifetime of BrowserPluginGuest. |
| 260 // Constructor protected for testing. | 266 // Constructor protected for testing. |
| 261 BrowserPluginGuest(bool has_render_view, | 267 BrowserPluginGuest(bool has_render_view, |
| 262 WebContentsImpl* web_contents, | 268 WebContentsImpl* web_contents, |
| 263 BrowserPluginGuestDelegate* delegate); | 269 BrowserPluginGuestDelegate* delegate); |
| 264 | 270 |
| 265 // Protected for testing. | 271 // Protected for testing. |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 439 | 445 |
| 440 // Ignore the URL dragged into guest that is coming from guest. | 446 // Ignore the URL dragged into guest that is coming from guest. |
| 441 bool ignore_dragged_url_; | 447 bool ignore_dragged_url_; |
| 442 | 448 |
| 443 // This is a queue of messages that are destined to be sent to the embedder | 449 // This is a queue of messages that are destined to be sent to the embedder |
| 444 // once the guest is attached to a particular embedder. | 450 // once the guest is attached to a particular embedder. |
| 445 std::deque<linked_ptr<IPC::Message> > pending_messages_; | 451 std::deque<linked_ptr<IPC::Message> > pending_messages_; |
| 446 | 452 |
| 447 BrowserPluginGuestDelegate* const delegate_; | 453 BrowserPluginGuestDelegate* const delegate_; |
| 448 | 454 |
| 455 // Whether or not this BrowserPluginGuest can use cross process frames. This | |
| 456 // means when we have --use-cross-process-frames-for-guests on, the | |
| 457 // WebContents associated with this BrowserPluginGuest has OOPIF structure. | |
| 458 bool can_use_cross_process_frames_; | |
| 459 | |
| 449 // Weak pointer used to ask GeolocationPermissionContext about geolocation | 460 // Weak pointer used to ask GeolocationPermissionContext about geolocation |
| 450 // permission. | 461 // permission. |
| 451 base::WeakPtrFactory<BrowserPluginGuest> weak_ptr_factory_; | 462 base::WeakPtrFactory<BrowserPluginGuest> weak_ptr_factory_; |
| 452 | 463 |
| 453 DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuest); | 464 DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuest); |
| 454 }; | 465 }; |
| 455 | 466 |
| 456 } // namespace content | 467 } // namespace content |
| 457 | 468 |
| 458 #endif // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_ | 469 #endif // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_ |
| OLD | NEW |