Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: content/browser/browser_plugin/browser_plugin_guest.h

Issue 1602663003: Framelet Prototype 2016 using Mojo IPC Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Disabled oilpan Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 // container, then this call is a no-op. For guest types that can be 113 // container, then this call is a no-op. For guest types that can be
114 // navigated, this call adds the associated RenderWdigetHostViewGuest to the 114 // navigated, this call adds the associated RenderWdigetHostViewGuest to the
115 // view hierachy and sets up the appropriate RendererPreferences so that this 115 // view hierachy and sets up the appropriate RendererPreferences so that this
116 // guest can navigate and resize offscreen. 116 // guest can navigate and resize offscreen.
117 void Init(); 117 void Init();
118 118
119 // Returns a WeakPtr to this BrowserPluginGuest. 119 // Returns a WeakPtr to this BrowserPluginGuest.
120 base::WeakPtr<BrowserPluginGuest> AsWeakPtr(); 120 base::WeakPtr<BrowserPluginGuest> AsWeakPtr();
121 121
122 // Sets the focus state of the current RenderWidgetHostView. 122 // Sets the focus state of the current RenderWidgetHostView.
123 void SetFocus(RenderWidgetHost* rwh, 123 void SetFocusForRenderWidgetHost(RenderWidgetHost* rwh,
124 bool focused, 124 bool focused,
125 blink::WebFocusType focus_type); 125 blink::WebFocusType focus_type);
126 126
127 // Sets the tooltip text. 127 // Sets the tooltip text.
128 void SetTooltipText(const base::string16& tooltip_text); 128 void SetTooltipText(const base::string16& tooltip_text);
129 129
130 // Sets the lock state of the pointer. Returns true if |allowed| is true and 130 // Sets the lock state of the pointer. Returns true if |allowed| is true and
131 // the mouse has been successfully locked. 131 // the mouse has been successfully locked.
132 bool LockMouse(bool allowed); 132 bool LockMouse(bool allowed);
133 133
134 // Return true if the mouse is locked. 134 // Return true if the mouse is locked.
135 bool mouse_locked() const { return mouse_locked_; } 135 bool mouse_locked() const { return mouse_locked_; }
(...skipping 18 matching lines...) Expand all
154 154
155 WebContentsImpl* embedder_web_contents() const { 155 WebContentsImpl* embedder_web_contents() const {
156 return attached_ ? owner_web_contents_ : nullptr; 156 return attached_ ? owner_web_contents_ : nullptr;
157 } 157 }
158 158
159 // Returns the embedder's RenderWidgetHostView if it is available. 159 // Returns the embedder's RenderWidgetHostView if it is available.
160 // Returns nullptr otherwise. 160 // Returns nullptr otherwise.
161 RenderWidgetHostView* GetOwnerRenderWidgetHostView(); 161 RenderWidgetHostView* GetOwnerRenderWidgetHostView();
162 162
163 bool focused() const { return focused_; } 163 bool focused() const { return focused_; }
164 bool visible() const { return guest_visible_; } 164 bool container_visible() const { return container_visible_; }
165 bool is_in_destruction() { return is_in_destruction_; } 165 bool is_in_destruction() { return is_in_destruction_; }
166 166
167 void UpdateVisibility(); 167 void UpdateVisibility();
168 168
169 BrowserPluginGuestManager* GetBrowserPluginGuestManager() const; 169 BrowserPluginGuestManager* GetBrowserPluginGuestManager() const;
170 170
171 // WebContentsObserver implementation. 171 // WebContentsObserver implementation.
172 void DidCommitProvisionalLoadForFrame( 172 void DidCommitProvisionalLoadForFrame(
173 RenderFrameHost* render_frame_host, 173 RenderFrameHost* render_frame_host,
174 const GURL& url, 174 const GURL& url,
175 ui::PageTransition transition_type) override; 175 ui::PageTransition transition_type) override;
176 176
177 void RenderViewReady() override; 177 void RenderViewReady() override;
178 void RenderProcessGone(base::TerminationStatus status) override; 178 void RenderProcessGone(base::TerminationStatus status) override;
179 bool OnMessageReceived(const IPC::Message& message) override; 179 bool OnMessageReceived(const IPC::Message& message) override;
180 bool OnMessageReceived(const IPC::Message& message, 180 bool OnMessageReceived(const IPC::Message& message,
181 RenderFrameHost* render_frame_host) override; 181 RenderFrameHost* render_frame_host) override;
182 182
183 // GuestHost implementation. 183 // GuestHost implementation.
184 void Attach(int element_instance_id,
185 WebContents* embedder_web_contents,
186 const GuestAttachParams& attach_params) override;
184 int LoadURLWithParams( 187 int LoadURLWithParams(
185 const NavigationController::LoadURLParams& load_params) override; 188 const NavigationController::LoadURLParams& load_params) override;
186 void GuestResizeDueToAutoResize(const gfx::Size& new_size) override; 189 void GuestResizeDueToAutoResize(const gfx::Size& new_size) override;
190 void SetContainerVisible(bool visible) override;
191 void SetFocus(bool focused, blink::WebFocusType focus_type) override;
187 void SizeContents(const gfx::Size& new_size) override; 192 void SizeContents(const gfx::Size& new_size) override;
193 void ForwardInputEvent(const blink::WebInputEvent* event) override;
188 void WillDestroy() override; 194 void WillDestroy() override;
189 195
190 // Exposes the protected web_contents() from WebContentsObserver. 196 // Exposes the protected web_contents() from WebContentsObserver.
191 WebContentsImpl* GetWebContents() const; 197 WebContentsImpl* GetWebContents() const;
192 198
193 gfx::Point GetScreenCoordinates(const gfx::Point& relative_position) const; 199 gfx::Point GetScreenCoordinates(const gfx::Point& relative_position) const;
194 200
195 // This method is called by the RenderWidgetHostViewGuest to inform the 201 // This method is called by the RenderWidgetHostViewGuest to inform the
196 // BrowserPlugin of the potential location of the context menu event (to 202 // BrowserPlugin of the potential location of the context menu event (to
197 // come). The need for this (hack) is that the input events when passed on to 203 // come). The need for this (hack) is that the input events when passed on to
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 has_attached_since_surface_set_ = has_attached; 280 has_attached_since_surface_set_ = has_attached;
275 } 281 }
276 282
277 void set_attached_for_test(bool attached) { 283 void set_attached_for_test(bool attached) {
278 attached_ = attached; 284 attached_ = attached;
279 } 285 }
280 286
281 private: 287 private:
282 class EmbedderVisibilityObserver; 288 class EmbedderVisibilityObserver;
283 289
284 void InitInternal(const BrowserPluginHostMsg_Attach_Params& params, 290 void InitInternal(const GuestAttachParams& params,
285 WebContentsImpl* owner_web_contents); 291 WebContentsImpl* owner_web_contents);
286 292
287 void OnSatisfySequence(int instance_id, const cc::SurfaceSequence& sequence); 293 void OnSatisfySequence(int instance_id, const cc::SurfaceSequence& sequence);
288 void OnRequireSequence(int instance_id, 294 void OnRequireSequence(int instance_id,
289 const cc::SurfaceId& id, 295 const cc::SurfaceId& id,
290 const cc::SurfaceSequence& sequence); 296 const cc::SurfaceSequence& sequence);
291 // Message handlers for messages from embedder. 297 // Message handlers for messages from embedder.
292 void OnCompositorFrameSwappedACK( 298 void OnCompositorFrameSwappedACK(
293 int instance_id, 299 int instance_id,
294 const FrameHostMsg_CompositorFrameSwappedACK_Params& params); 300 const FrameHostMsg_CompositorFrameSwappedACK_Params& params);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 const FrameHostMsg_ShowPopup_Params& params); 385 const FrameHostMsg_ShowPopup_Params& params);
380 #endif 386 #endif
381 void OnShowWidget(int route_id, const gfx::Rect& initial_rect); 387 void OnShowWidget(int route_id, const gfx::Rect& initial_rect);
382 void OnTakeFocus(bool reverse); 388 void OnTakeFocus(bool reverse);
383 void OnUpdateFrameName(int frame_id, 389 void OnUpdateFrameName(int frame_id,
384 bool is_top_level, 390 bool is_top_level,
385 const std::string& name); 391 const std::string& name);
386 392
387 // Called when WillAttach is complete. 393 // Called when WillAttach is complete.
388 void OnWillAttachComplete(WebContentsImpl* embedder_web_contents, 394 void OnWillAttachComplete(WebContentsImpl* embedder_web_contents,
389 const BrowserPluginHostMsg_Attach_Params& params); 395 const GuestAttachParams& params);
390 396
391 // Returns identical message with current browser_plugin_instance_id() if 397 // Returns identical message with current browser_plugin_instance_id() if
392 // the input was created with browser_plugin::kInstanceIdNone, else it returns 398 // the input was created with browser_plugin::kInstanceIdNone, else it returns
393 // the input message unmodified. If no current browser_plugin_instance_id() 399 // the input message unmodified. If no current browser_plugin_instance_id()
394 // is set, or anything goes wrong, the input message is returned. 400 // is set, or anything goes wrong, the input message is returned.
395 IPC::Message* UpdateInstanceIdIfNecessary(IPC::Message* msg) const; 401 IPC::Message* UpdateInstanceIdIfNecessary(IPC::Message* msg) const;
396 402
397 // Forwards all messages from the |pending_messages_| queue to the embedder. 403 // Forwards all messages from the |pending_messages_| queue to the embedder.
398 void SendQueuedMessages(); 404 void SendQueuedMessages();
399 405
(...skipping 11 matching lines...) Expand all
411 // Used to signal if a browser plugin has been attached since the last time 417 // Used to signal if a browser plugin has been attached since the last time
412 // the compositing surface was set. 418 // the compositing surface was set.
413 bool has_attached_since_surface_set_; 419 bool has_attached_since_surface_set_;
414 420
415 // An identifier that uniquely identifies a browser plugin within an embedder. 421 // An identifier that uniquely identifies a browser plugin within an embedder.
416 int browser_plugin_instance_id_; 422 int browser_plugin_instance_id_;
417 gfx::Rect guest_window_rect_; 423 gfx::Rect guest_window_rect_;
418 bool focused_; 424 bool focused_;
419 bool mouse_locked_; 425 bool mouse_locked_;
420 bool pending_lock_request_; 426 bool pending_lock_request_;
421 bool guest_visible_; 427 bool container_visible_;
422 bool embedder_visible_; 428 bool embedder_visible_;
423 // Whether the browser plugin is inside a plugin document. 429 // Whether the browser plugin is inside a plugin document.
424 bool is_full_page_plugin_; 430 bool is_full_page_plugin_;
425 431
426 // Indicates that this BrowserPluginGuest has associated renderer-side state. 432 // Indicates that this BrowserPluginGuest has associated renderer-side state.
427 // This is used to determine whether or not to create a new RenderView when 433 // This is used to determine whether or not to create a new RenderView when
428 // this guest is attached. A BrowserPluginGuest would have renderer-side state 434 // this guest is attached. A BrowserPluginGuest would have renderer-side state
429 // prior to attachment if it is created via a call to window.open and 435 // prior to attachment if it is created via a call to window.open and
430 // maintains a JavaScript reference to its opener. 436 // maintains a JavaScript reference to its opener.
431 bool has_render_view_; 437 bool has_render_view_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 // Weak pointer used to ask GeolocationPermissionContext about geolocation 480 // Weak pointer used to ask GeolocationPermissionContext about geolocation
475 // permission. 481 // permission.
476 base::WeakPtrFactory<BrowserPluginGuest> weak_ptr_factory_; 482 base::WeakPtrFactory<BrowserPluginGuest> weak_ptr_factory_;
477 483
478 DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuest); 484 DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuest);
479 }; 485 };
480 486
481 } // namespace content 487 } // namespace content
482 488
483 #endif // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_ 489 #endif // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_
OLDNEW
« no previous file with comments | « components/resources/framelet_scaled_resources.grdp ('k') | content/browser/browser_plugin/browser_plugin_guest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698