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

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

Issue 186753002: Chromium plumbing to use the selection root bounds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on Blink patch and OS_ANDROID specific Created 6 years, 9 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 #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/debug/trace_event_synthetic_delay.h" 10 #include "base/debug/trace_event_synthetic_delay.h"
(...skipping 1481 matching lines...) Expand 10 before | Expand all | Expand 10 after
1492 1492
1493 // Check for whether we need to track swap buffers. We need to do that after 1493 // Check for whether we need to track swap buffers. We need to do that after
1494 // layout() because it may have switched us to accelerated compositing. 1494 // layout() because it may have switched us to accelerated compositing.
1495 if (is_accelerated_compositing_active_) 1495 if (is_accelerated_compositing_active_)
1496 using_asynchronous_swapbuffers_ = SupportsAsynchronousSwapBuffers(); 1496 using_asynchronous_swapbuffers_ = SupportsAsynchronousSwapBuffers();
1497 1497
1498 // The following two can result in further layout and possibly 1498 // The following two can result in further layout and possibly
1499 // enable GPU acceleration so they need to be called before any painting 1499 // enable GPU acceleration so they need to be called before any painting
1500 // is done. 1500 // is done.
1501 UpdateTextInputType(); 1501 UpdateTextInputType();
1502 #if defined(OS_ANDROID)
1503 UpdateSelectionRootBounds();
1504 #endif
1502 UpdateSelectionBounds(); 1505 UpdateSelectionBounds();
1503 1506
1504 // Suppress painting if nothing is dirty. This has to be done after updating 1507 // Suppress painting if nothing is dirty. This has to be done after updating
1505 // animations running layout as these may generate further invalidations. 1508 // animations running layout as these may generate further invalidations.
1506 if (!paint_aggregator_.HasPendingUpdate()) { 1509 if (!paint_aggregator_.HasPendingUpdate()) {
1507 TRACE_EVENT0("renderer", "EarlyOut_NoPendingUpdate"); 1510 TRACE_EVENT0("renderer", "EarlyOut_NoPendingUpdate");
1508 InstrumentDidCancelFrame(); 1511 InstrumentDidCancelFrame();
1509 return; 1512 return;
1510 } 1513 }
1511 1514
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 TRACE_EVENT0("gpu", "RenderWidget::willBeginCompositorFrame"); 1880 TRACE_EVENT0("gpu", "RenderWidget::willBeginCompositorFrame");
1878 1881
1879 DCHECK(RenderThreadImpl::current()->compositor_message_loop_proxy().get()); 1882 DCHECK(RenderThreadImpl::current()->compositor_message_loop_proxy().get());
1880 1883
1881 // The following two can result in further layout and possibly 1884 // The following two can result in further layout and possibly
1882 // enable GPU acceleration so they need to be called before any painting 1885 // enable GPU acceleration so they need to be called before any painting
1883 // is done. 1886 // is done.
1884 UpdateTextInputType(); 1887 UpdateTextInputType();
1885 #if defined(OS_ANDROID) 1888 #if defined(OS_ANDROID)
1886 UpdateTextInputState(false, true); 1889 UpdateTextInputState(false, true);
1890 UpdateSelectionRootBounds();
1887 #endif 1891 #endif
1888 UpdateSelectionBounds(); 1892 UpdateSelectionBounds();
1889 } 1893 }
1890 1894
1891 void RenderWidget::didBecomeReadyForAdditionalInput() { 1895 void RenderWidget::didBecomeReadyForAdditionalInput() {
1892 TRACE_EVENT0("renderer", "RenderWidget::didBecomeReadyForAdditionalInput"); 1896 TRACE_EVENT0("renderer", "RenderWidget::didBecomeReadyForAdditionalInput");
1893 FlushPendingInputEventAck(); 1897 FlushPendingInputEventAck();
1894 } 1898 }
1895 1899
1896 void RenderWidget::DidCommitCompositorFrame() { 1900 void RenderWidget::DidCommitCompositorFrame() {
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
2380 DCHECK(!handling_ime_event_); 2384 DCHECK(!handling_ime_event_);
2381 handling_ime_event_ = true; 2385 handling_ime_event_ = true;
2382 } 2386 }
2383 2387
2384 void RenderWidget::FinishHandlingImeEvent() { 2388 void RenderWidget::FinishHandlingImeEvent() {
2385 DCHECK(handling_ime_event_); 2389 DCHECK(handling_ime_event_);
2386 handling_ime_event_ = false; 2390 handling_ime_event_ = false;
2387 // While handling an ime event, text input state and selection bounds updates 2391 // While handling an ime event, text input state and selection bounds updates
2388 // are ignored. These must explicitly be updated once finished handling the 2392 // are ignored. These must explicitly be updated once finished handling the
2389 // ime event. 2393 // ime event.
2394 #if defined(OS_ANDROID)
2395 UpdateSelectionRootBounds();
2396 #endif
2390 UpdateSelectionBounds(); 2397 UpdateSelectionBounds();
2391 #if defined(OS_ANDROID) 2398 #if defined(OS_ANDROID)
2392 UpdateTextInputState(false, false); 2399 UpdateTextInputState(false, false);
2393 #endif 2400 #endif
2394 } 2401 }
2395 2402
2396 void RenderWidget::UpdateTextInputType() { 2403 void RenderWidget::UpdateTextInputType() {
2397 // On Windows, not only an IME but also an on-screen keyboard relies on the 2404 // On Windows, not only an IME but also an on-screen keyboard relies on the
2398 // latest TextInputType to optimize its layout and functionality. Thus 2405 // latest TextInputType to optimize its layout and functionality. Thus
2399 // |input_method_is_active_| is no longer an appropriate condition to suppress 2406 // |input_method_is_active_| is no longer an appropriate condition to suppress
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
2784 2791
2785 void RenderWidget::RegisterSwappedOutChildFrame(RenderFrameImpl* frame) { 2792 void RenderWidget::RegisterSwappedOutChildFrame(RenderFrameImpl* frame) {
2786 swapped_out_frames_.AddObserver(frame); 2793 swapped_out_frames_.AddObserver(frame);
2787 } 2794 }
2788 2795
2789 void RenderWidget::UnregisterSwappedOutChildFrame(RenderFrameImpl* frame) { 2796 void RenderWidget::UnregisterSwappedOutChildFrame(RenderFrameImpl* frame) {
2790 swapped_out_frames_.RemoveObserver(frame); 2797 swapped_out_frames_.RemoveObserver(frame);
2791 } 2798 }
2792 2799
2793 } // namespace content 2800 } // namespace content
OLDNEW
« content/renderer/render_widget.h ('K') | « content/renderer/render_widget.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698