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

Side by Side Diff: content/browser/frame_host/render_widget_host_view_guest.cc

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, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "content/browser/frame_host/render_widget_host_view_guest.h" 5 #include "content/browser/frame_host/render_widget_host_view_guest.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 127
128 void RenderWidgetHostViewGuest::SetBounds(const gfx::Rect& rect) { 128 void RenderWidgetHostViewGuest::SetBounds(const gfx::Rect& rect) {
129 SetSize(rect.size()); 129 SetSize(rect.size());
130 } 130 }
131 131
132 void RenderWidgetHostViewGuest::Focus() { 132 void RenderWidgetHostViewGuest::Focus() {
133 // InterstitialPageImpl focuses views directly, so we place focus logic here. 133 // InterstitialPageImpl focuses views directly, so we place focus logic here.
134 // InterstitialPages are not WebContents, and so BrowserPluginGuest does not 134 // InterstitialPages are not WebContents, and so BrowserPluginGuest does not
135 // have direct access to the interstitial page's RenderWidgetHost. 135 // have direct access to the interstitial page's RenderWidgetHost.
136 if (guest_) 136 if (guest_)
137 guest_->SetFocus(host_, true, blink::WebFocusTypeNone); 137 guest_->SetFocusForRenderWidgetHost(host_, true, blink::WebFocusTypeNone);
138 } 138 }
139 139
140 bool RenderWidgetHostViewGuest::HasFocus() const { 140 bool RenderWidgetHostViewGuest::HasFocus() const {
141 if (!guest_) 141 if (!guest_)
142 return false; 142 return false;
143 return guest_->focused(); 143 return guest_->focused();
144 } 144 }
145 145
146 #if defined(USE_AURA) 146 #if defined(USE_AURA)
147 void RenderWidgetHostViewGuest::ProcessAckedTouchEvent( 147 void RenderWidgetHostViewGuest::ProcessAckedTouchEvent(
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 211
212 void RenderWidgetHostViewGuest::Destroy() { 212 void RenderWidgetHostViewGuest::Destroy() {
213 // The RenderWidgetHost's destruction led here, so don't call it. 213 // The RenderWidgetHost's destruction led here, so don't call it.
214 DestroyGuestView(); 214 DestroyGuestView();
215 215
216 if (platform_view_) // The platform view might have been destroyed already. 216 if (platform_view_) // The platform view might have been destroyed already.
217 platform_view_->Destroy(); 217 platform_view_->Destroy();
218 } 218 }
219 219
220 gfx::Size RenderWidgetHostViewGuest::GetPhysicalBackingSize() const { 220 gfx::Size RenderWidgetHostViewGuest::GetPhysicalBackingSize() const {
221 return RenderWidgetHostViewBase::GetPhysicalBackingSize(); 221 blink::WebScreenInfo screen_info;
222 RenderWidgetHostViewBase* embedder_view = GetOwnerRenderWidgetHostView();
223 if (embedder_view)
224 embedder_view->GetScreenInfo(&screen_info);
225 return gfx::ScaleToCeiledSize(size_, screen_info.deviceScaleFactor);
222 } 226 }
223 227
224 base::string16 RenderWidgetHostViewGuest::GetSelectedText() const { 228 base::string16 RenderWidgetHostViewGuest::GetSelectedText() const {
225 return platform_view_->GetSelectedText(); 229 return platform_view_->GetSelectedText();
226 } 230 }
227 231
228 void RenderWidgetHostViewGuest::SetTooltipText( 232 void RenderWidgetHostViewGuest::SetTooltipText(
229 const base::string16& tooltip_text) { 233 const base::string16& tooltip_text) {
230 if (guest_) 234 if (guest_)
231 guest_->SetTooltipText(tooltip_text); 235 guest_->SetTooltipText(tooltip_text);
(...skipping 15 matching lines...) Expand all
247 guest_->SwapCompositorFrame(output_surface_id, host_->GetProcess()->GetID(), 251 guest_->SwapCompositorFrame(output_surface_id, host_->GetProcess()->GetID(),
248 host_->GetRoutingID(), std::move(frame)); 252 host_->GetRoutingID(), std::move(frame));
249 return; 253 return;
250 } 254 }
251 255
252 cc::RenderPass* root_pass = 256 cc::RenderPass* root_pass =
253 frame->delegated_frame_data->render_pass_list.back().get(); 257 frame->delegated_frame_data->render_pass_list.back().get();
254 258
255 gfx::Size frame_size = root_pass->output_rect.size(); 259 gfx::Size frame_size = root_pass->output_rect.size();
256 float scale_factor = frame->metadata.device_scale_factor; 260 float scale_factor = frame->metadata.device_scale_factor;
257
258 // Check whether we need to recreate the cc::Surface, which means the child 261 // Check whether we need to recreate the cc::Surface, which means the child
259 // frame renderer has changed its output surface, or size, or scale factor. 262 // frame renderer has changed its output surface, or size, or scale factor.
260 if (output_surface_id != last_output_surface_id_ && surface_factory_) { 263 if (output_surface_id != last_output_surface_id_ && surface_factory_) {
261 surface_factory_->Destroy(surface_id_); 264 surface_factory_->Destroy(surface_id_);
262 surface_factory_.reset(); 265 surface_factory_.reset();
263 } 266 }
264 if (output_surface_id != last_output_surface_id_ || 267 if (output_surface_id != last_output_surface_id_ ||
265 frame_size != current_surface_size_ || 268 frame_size != current_surface_size_ ||
266 scale_factor != current_surface_scale_factor_ || 269 scale_factor != current_surface_scale_factor_ ||
267 guest_->has_attached_since_surface_set()) { 270 guest_->has_attached_since_surface_set()) {
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 if (gesture_event.type == blink::WebInputEvent::GestureScrollUpdate && 706 if (gesture_event.type == blink::WebInputEvent::GestureScrollUpdate &&
704 gesture_event.data.scrollUpdate.inertial) { 707 gesture_event.data.scrollUpdate.inertial) {
705 return; 708 return;
706 } 709 }
707 host_->ForwardGestureEvent(gesture_event); 710 host_->ForwardGestureEvent(gesture_event);
708 return; 711 return;
709 } 712 }
710 } 713 }
711 714
712 } // namespace content 715 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_plugin/browser_plugin_guest.cc ('k') | content/public/browser/browser_plugin_guest_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698