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

Side by Side Diff: content/renderer/render_widget.cc

Issue 16048003: Fix race between DPI and window size (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
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 #include "content/renderer/render_widget.h" 5 #include "content/renderer/render_widget.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 IPC_MESSAGE_HANDLER(ViewMsg_SwapBuffers_ACK, 330 IPC_MESSAGE_HANDLER(ViewMsg_SwapBuffers_ACK,
331 OnViewContextSwapBuffersComplete) 331 OnViewContextSwapBuffersComplete)
332 IPC_MESSAGE_HANDLER(ViewMsg_SetInputMethodActive, OnSetInputMethodActive) 332 IPC_MESSAGE_HANDLER(ViewMsg_SetInputMethodActive, OnSetInputMethodActive)
333 IPC_MESSAGE_HANDLER(ViewMsg_ImeSetComposition, OnImeSetComposition) 333 IPC_MESSAGE_HANDLER(ViewMsg_ImeSetComposition, OnImeSetComposition)
334 IPC_MESSAGE_HANDLER(ViewMsg_ImeConfirmComposition, OnImeConfirmComposition) 334 IPC_MESSAGE_HANDLER(ViewMsg_ImeConfirmComposition, OnImeConfirmComposition)
335 IPC_MESSAGE_HANDLER(ViewMsg_PaintAtSize, OnPaintAtSize) 335 IPC_MESSAGE_HANDLER(ViewMsg_PaintAtSize, OnPaintAtSize)
336 IPC_MESSAGE_HANDLER(ViewMsg_Repaint, OnRepaint) 336 IPC_MESSAGE_HANDLER(ViewMsg_Repaint, OnRepaint)
337 IPC_MESSAGE_HANDLER(ViewMsg_SmoothScrollCompleted, OnSmoothScrollCompleted) 337 IPC_MESSAGE_HANDLER(ViewMsg_SmoothScrollCompleted, OnSmoothScrollCompleted)
338 IPC_MESSAGE_HANDLER(ViewMsg_SetTextDirection, OnSetTextDirection) 338 IPC_MESSAGE_HANDLER(ViewMsg_SetTextDirection, OnSetTextDirection)
339 IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck) 339 IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck)
340 IPC_MESSAGE_HANDLER(ViewMsg_ScreenInfoChanged, OnScreenInfoChanged)
341 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects) 340 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects)
342 #if defined(OS_ANDROID) 341 #if defined(OS_ANDROID)
343 IPC_MESSAGE_HANDLER(ViewMsg_ImeBatchStateChanged, OnImeBatchStateChanged) 342 IPC_MESSAGE_HANDLER(ViewMsg_ImeBatchStateChanged, OnImeBatchStateChanged)
344 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded) 343 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded)
345 #endif 344 #endif
346 IPC_MESSAGE_HANDLER(ViewMsg_Snapshot, OnSnapshot) 345 IPC_MESSAGE_HANDLER(ViewMsg_Snapshot, OnSnapshot)
347 IPC_MESSAGE_UNHANDLED(handled = false) 346 IPC_MESSAGE_UNHANDLED(handled = false)
348 IPC_END_MESSAGE_MAP() 347 IPC_END_MESSAGE_MAP()
349 return handled; 348 return handled;
350 } 349 }
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } 454 }
456 455
457 // Got a response from the browser after the renderer decided to create a new 456 // Got a response from the browser after the renderer decided to create a new
458 // view. 457 // view.
459 void RenderWidget::OnCreatingNewAck() { 458 void RenderWidget::OnCreatingNewAck() {
460 DCHECK(routing_id_ != MSG_ROUTING_NONE); 459 DCHECK(routing_id_ != MSG_ROUTING_NONE);
461 460
462 CompleteInit(); 461 CompleteInit();
463 } 462 }
464 463
465 void RenderWidget::OnResize(const gfx::Size& new_size, 464 void RenderWidget::OnResize(const ViewMsg_Resize_Params& params) {
466 const gfx::Size& physical_backing_size, 465 screen_info_ = params.screen_info;
467 float overdraw_bottom_height, 466 SetDeviceScaleFactor(screen_info_.deviceScaleFactor);
468 const gfx::Rect& resizer_rect, 467 Resize(params.new_size, params.physical_backing_size,
469 bool is_fullscreen) { 468 params.overdraw_bottom_height, params.resizer_rect,
470 Resize(new_size, physical_backing_size, overdraw_bottom_height, resizer_rect, 469 params.is_fullscreen, SEND_RESIZE_ACK);
471 is_fullscreen, SEND_RESIZE_ACK); 470 size_browser_expects_ = params.new_size;
472 size_browser_expects_ = new_size;
473 } 471 }
474 472
475 void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) { 473 void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) {
476 if (resizer_rect_ != resizer_rect) { 474 if (resizer_rect_ != resizer_rect) {
477 gfx::Rect view_rect(size_); 475 gfx::Rect view_rect(size_);
478 476
479 gfx::Rect old_damage_rect = gfx::IntersectRects(view_rect, resizer_rect_); 477 gfx::Rect old_damage_rect = gfx::IntersectRects(view_rect, resizer_rect_);
480 if (!old_damage_rect.IsEmpty()) 478 if (!old_damage_rect.IsEmpty())
481 paint_aggregator_.InvalidateRect(old_damage_rect); 479 paint_aggregator_.InvalidateRect(old_damage_rect);
482 480
(...skipping 1467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1950 void RenderWidget::OnSmoothScrollCompleted() { 1948 void RenderWidget::OnSmoothScrollCompleted() {
1951 pending_smooth_scroll_gesture_.Run(); 1949 pending_smooth_scroll_gesture_.Run();
1952 } 1950 }
1953 1951
1954 void RenderWidget::OnSetTextDirection(WebTextDirection direction) { 1952 void RenderWidget::OnSetTextDirection(WebTextDirection direction) {
1955 if (!webwidget_) 1953 if (!webwidget_)
1956 return; 1954 return;
1957 webwidget_->setTextDirection(direction); 1955 webwidget_->setTextDirection(direction);
1958 } 1956 }
1959 1957
1960 void RenderWidget::OnScreenInfoChanged(
1961 const WebKit::WebScreenInfo& screen_info) {
1962 screen_info_ = screen_info;
1963 SetDeviceScaleFactor(screen_info.deviceScaleFactor);
1964 }
1965
1966 void RenderWidget::OnUpdateScreenRects(const gfx::Rect& view_screen_rect, 1958 void RenderWidget::OnUpdateScreenRects(const gfx::Rect& view_screen_rect,
1967 const gfx::Rect& window_screen_rect) { 1959 const gfx::Rect& window_screen_rect) {
1968 view_screen_rect_ = view_screen_rect; 1960 view_screen_rect_ = view_screen_rect;
1969 window_screen_rect_ = window_screen_rect; 1961 window_screen_rect_ = window_screen_rect;
1970 Send(new ViewHostMsg_UpdateScreenRects_ACK(routing_id())); 1962 Send(new ViewHostMsg_UpdateScreenRects_ACK(routing_id()));
1971 } 1963 }
1972 1964
1973 #if defined(OS_ANDROID) 1965 #if defined(OS_ANDROID)
1974 void RenderWidget::OnImeBatchStateChanged(bool is_begin) { 1966 void RenderWidget::OnImeBatchStateChanged(bool is_begin) {
1975 Send(new ViewHostMsg_ImeBatchStateChanged_ACK(routing_id(), is_begin)); 1967 Send(new ViewHostMsg_ImeBatchStateChanged_ACK(routing_id(), is_begin));
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
2375 2367
2376 if (!context->Initialize( 2368 if (!context->Initialize(
2377 attributes, 2369 attributes,
2378 false /* bind generates resources */, 2370 false /* bind generates resources */,
2379 CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE) ) 2371 CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE) )
2380 return NULL; 2372 return NULL;
2381 return context.release(); 2373 return context.release();
2382 } 2374 }
2383 2375
2384 } // namespace content 2376 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698