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

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

Issue 2553923002: Remove deprecated ReplicaInputConnection (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « content/renderer/render_widget.h ('k') | testing/variations/fieldtrial_testing_config.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 for_oopif_(false), 365 for_oopif_(false),
366 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), 366 text_input_type_(ui::TEXT_INPUT_TYPE_NONE),
367 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), 367 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT),
368 text_input_flags_(0), 368 text_input_flags_(0),
369 can_compose_inline_(true), 369 can_compose_inline_(true),
370 composition_range_(gfx::Range::InvalidRange()), 370 composition_range_(gfx::Range::InvalidRange()),
371 popup_type_(popup_type), 371 popup_type_(popup_type),
372 pending_window_rect_count_(0), 372 pending_window_rect_count_(0),
373 screen_info_(screen_info), 373 screen_info_(screen_info),
374 device_scale_factor_(screen_info_.device_scale_factor), 374 device_scale_factor_(screen_info_.device_scale_factor),
375 #if defined(OS_ANDROID)
376 text_field_is_dirty_(false),
377 #endif
378 monitor_composition_info_(false), 375 monitor_composition_info_(false),
379 popup_origin_scale_for_emulation_(0.f), 376 popup_origin_scale_for_emulation_(0.f),
380 frame_swap_message_queue_(new FrameSwapMessageQueue()), 377 frame_swap_message_queue_(new FrameSwapMessageQueue()),
381 resizing_mode_selector_(new ResizingModeSelector()), 378 resizing_mode_selector_(new ResizingModeSelector()),
382 has_host_context_menu_location_(false), 379 has_host_context_menu_location_(false),
383 has_focus_(false), 380 has_focus_(false),
384 #if defined(OS_MACOSX) 381 #if defined(OS_MACOSX)
385 text_input_client_observer_(new TextInputClientObserver(this)), 382 text_input_client_observer_(new TextInputClientObserver(this)),
386 #endif 383 #endif
387 focused_pepper_plugin_(nullptr) { 384 focused_pepper_plugin_(nullptr) {
388 DCHECK_NE(routing_id_, MSG_ROUTING_NONE); 385 DCHECK_NE(routing_id_, MSG_ROUTING_NONE);
389 if (!swapped_out) 386 if (!swapped_out)
390 RenderProcess::current()->AddRefProcess(); 387 RenderProcess::current()->AddRefProcess();
391 DCHECK(RenderThread::Get()); 388 DCHECK(RenderThread::Get());
392 device_color_profile_.push_back('0'); 389 device_color_profile_.push_back('0');
393 #if defined(OS_ANDROID)
394 text_input_info_history_.push_back(blink::WebTextInputInfo());
395 #endif
396 390
397 // In tests there may not be a RenderThreadImpl. 391 // In tests there may not be a RenderThreadImpl.
398 if (RenderThreadImpl::current()) { 392 if (RenderThreadImpl::current()) {
399 render_widget_scheduling_state_ = RenderThreadImpl::current() 393 render_widget_scheduling_state_ = RenderThreadImpl::current()
400 ->GetRendererScheduler() 394 ->GetRendererScheduler()
401 ->NewRenderWidgetSchedulingState(); 395 ->NewRenderWidgetSchedulingState();
402 render_widget_scheduling_state_->SetHidden(is_hidden_); 396 render_widget_scheduling_state_->SetHidden(is_hidden_);
403 } 397 }
404 } 398 }
405 399
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 OnRequestCompositionUpdate) 622 OnRequestCompositionUpdate)
629 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto) 623 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto)
630 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter) 624 IPC_MESSAGE_HANDLER(DragMsg_TargetDragEnter, OnDragTargetDragEnter)
631 IPC_MESSAGE_HANDLER(DragMsg_TargetDragOver, OnDragTargetDragOver) 625 IPC_MESSAGE_HANDLER(DragMsg_TargetDragOver, OnDragTargetDragOver)
632 IPC_MESSAGE_HANDLER(DragMsg_TargetDragLeave, OnDragTargetDragLeave) 626 IPC_MESSAGE_HANDLER(DragMsg_TargetDragLeave, OnDragTargetDragLeave)
633 IPC_MESSAGE_HANDLER(DragMsg_TargetDrop, OnDragTargetDrop) 627 IPC_MESSAGE_HANDLER(DragMsg_TargetDrop, OnDragTargetDrop)
634 IPC_MESSAGE_HANDLER(DragMsg_SourceEnded, OnDragSourceEnded) 628 IPC_MESSAGE_HANDLER(DragMsg_SourceEnded, OnDragSourceEnded)
635 IPC_MESSAGE_HANDLER(DragMsg_SourceSystemDragEnded, 629 IPC_MESSAGE_HANDLER(DragMsg_SourceSystemDragEnded,
636 OnDragSourceSystemDragEnded) 630 OnDragSourceSystemDragEnded)
637 #if defined(OS_ANDROID) 631 #if defined(OS_ANDROID)
638 IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck)
639 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate, 632 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate,
640 OnRequestTextInputStateUpdate) 633 OnRequestTextInputStateUpdate)
641 #endif 634 #endif
642 IPC_MESSAGE_UNHANDLED(handled = false) 635 IPC_MESSAGE_UNHANDLED(handled = false)
643 IPC_END_MESSAGE_MAP() 636 IPC_END_MESSAGE_MAP()
644 return handled; 637 return handled;
645 } 638 }
646 639
647 bool RenderWidget::Send(IPC::Message* message) { 640 bool RenderWidget::Send(IPC::Message* message) {
648 // Don't send any messages after the browser has told us to close, and filter 641 // Don't send any messages after the browser has told us to close, and filter
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 if (GetWebWidget()) 1035 if (GetWebWidget())
1043 new_info = GetWebWidget()->textInputInfo(); 1036 new_info = GetWebWidget()->textInputInfo();
1044 const ui::TextInputMode new_mode = 1037 const ui::TextInputMode new_mode =
1045 ConvertWebTextInputMode(new_info.inputMode); 1038 ConvertWebTextInputMode(new_info.inputMode);
1046 1039
1047 bool new_can_compose_inline = CanComposeInline(); 1040 bool new_can_compose_inline = CanComposeInline();
1048 1041
1049 // Only sends text input params if they are changed or if the ime should be 1042 // Only sends text input params if they are changed or if the ime should be
1050 // shown. 1043 // shown.
1051 if (show_ime == ShowIme::IF_NEEDED || 1044 if (show_ime == ShowIme::IF_NEEDED ||
1052 (IsUsingImeThread() && change_source == ChangeSource::FROM_IME) || 1045 change_source == ChangeSource::FROM_IME ||
1053 (text_input_type_ != new_type || text_input_mode_ != new_mode || 1046 text_input_type_ != new_type || text_input_mode_ != new_mode ||
1054 text_input_info_ != new_info || 1047 text_input_info_ != new_info ||
1055 can_compose_inline_ != new_can_compose_inline) 1048 can_compose_inline_ != new_can_compose_inline) {
1056 #if defined(OS_ANDROID)
1057 || text_field_is_dirty_
1058 #endif
1059 ) {
1060 TextInputState params; 1049 TextInputState params;
1061 params.type = new_type; 1050 params.type = new_type;
1062 params.mode = new_mode; 1051 params.mode = new_mode;
1063 params.flags = new_info.flags; 1052 params.flags = new_info.flags;
1064 params.value = new_info.value.utf8(); 1053 params.value = new_info.value.utf8();
1065 params.selection_start = new_info.selectionStart; 1054 params.selection_start = new_info.selectionStart;
1066 params.selection_end = new_info.selectionEnd; 1055 params.selection_end = new_info.selectionEnd;
1067 params.composition_start = new_info.compositionStart; 1056 params.composition_start = new_info.compositionStart;
1068 params.composition_end = new_info.compositionEnd; 1057 params.composition_end = new_info.compositionEnd;
1069 params.can_compose_inline = new_can_compose_inline; 1058 params.can_compose_inline = new_can_compose_inline;
1070 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED); 1059 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED);
1071 #if defined(USE_AURA) 1060 #if defined(OS_ANDROID) || defined(USE_AURA)
1072 params.is_non_ime_change = true; 1061 params.is_non_ime_change = (change_source == ChangeSource::FROM_NON_IME);
1073 #endif
1074 #if defined(OS_ANDROID)
1075 params.is_non_ime_change =
1076 (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_;
1077 if (params.is_non_ime_change)
1078 OnImeEventSentForAck(new_info);
1079 text_field_is_dirty_ = false;
1080 #endif 1062 #endif
1081 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params)); 1063 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params));
1082 1064
1083 text_input_info_ = new_info; 1065 text_input_info_ = new_info;
1084 text_input_type_ = new_type; 1066 text_input_type_ = new_type;
1085 text_input_mode_ = new_mode; 1067 text_input_mode_ = new_mode;
1086 can_compose_inline_ = new_can_compose_inline; 1068 can_compose_inline_ = new_can_compose_inline;
1087 text_input_flags_ = new_info.flags; 1069 text_input_flags_ = new_info.flags;
1088 } 1070 }
1089 } 1071 }
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 focused_pepper_plugin_->render_frame()->OnImeSetComposition( 1507 focused_pepper_plugin_->render_frame()->OnImeSetComposition(
1526 text, underlines, selection_start, selection_end); 1508 text, underlines, selection_start, selection_end);
1527 return; 1509 return;
1528 } 1510 }
1529 #endif 1511 #endif
1530 if (replacement_range.IsValid()) { 1512 if (replacement_range.IsValid()) {
1531 GetWebWidget()->applyReplacementRange( 1513 GetWebWidget()->applyReplacementRange(
1532 WebRange(replacement_range.start(), replacement_range.length())); 1514 WebRange(replacement_range.start(), replacement_range.length()));
1533 } 1515 }
1534 1516
1535 if (!ShouldHandleImeEvent()) 1517 if (!GetWebWidget())
1536 return; 1518 return;
1537 ImeEventGuard guard(this); 1519 ImeEventGuard guard(this);
1538 blink::WebInputMethodController* controller = GetInputMethodController(); 1520 blink::WebInputMethodController* controller = GetInputMethodController();
1539 DCHECK(controller); 1521 DCHECK(controller);
1540 if (!controller || 1522 if (!controller ||
1541 !controller->setComposition( 1523 !controller->setComposition(
1542 text, WebVector<WebCompositionUnderline>(underlines), selection_start, 1524 text, WebVector<WebCompositionUnderline>(underlines), selection_start,
1543 selection_end)) { 1525 selection_end)) {
1544 // If we failed to set the composition text, then we need to let the browser 1526 // If we failed to set the composition text, then we need to let the browser
1545 // process to cancel the input method's ongoing composition session, to make 1527 // process to cancel the input method's ongoing composition session, to make
(...skipping 11 matching lines...) Expand all
1557 focused_pepper_plugin_->render_frame()->OnImeCommitText( 1539 focused_pepper_plugin_->render_frame()->OnImeCommitText(
1558 text, replacement_range, relative_cursor_pos); 1540 text, replacement_range, relative_cursor_pos);
1559 return; 1541 return;
1560 } 1542 }
1561 #endif 1543 #endif
1562 if (replacement_range.IsValid()) { 1544 if (replacement_range.IsValid()) {
1563 GetWebWidget()->applyReplacementRange( 1545 GetWebWidget()->applyReplacementRange(
1564 WebRange(replacement_range.start(), replacement_range.length())); 1546 WebRange(replacement_range.start(), replacement_range.length()));
1565 } 1547 }
1566 1548
1567 if (!ShouldHandleImeEvent()) 1549 if (!GetWebWidget())
1568 return; 1550 return;
1569 ImeEventGuard guard(this); 1551 ImeEventGuard guard(this);
1570 input_handler_->set_handling_input_event(true); 1552 input_handler_->set_handling_input_event(true);
1571 if (auto* controller = GetInputMethodController()) 1553 if (auto* controller = GetInputMethodController())
1572 controller->commitText(text, relative_cursor_pos); 1554 controller->commitText(text, relative_cursor_pos);
1573 input_handler_->set_handling_input_event(false); 1555 input_handler_->set_handling_input_event(false);
1574 UpdateCompositionInfo(false /* not an immediate request */); 1556 UpdateCompositionInfo(false /* not an immediate request */);
1575 } 1557 }
1576 1558
1577 void RenderWidget::OnImeFinishComposingText(bool keep_selection) { 1559 void RenderWidget::OnImeFinishComposingText(bool keep_selection) {
1578 #if BUILDFLAG(ENABLE_PLUGINS) 1560 #if BUILDFLAG(ENABLE_PLUGINS)
1579 if (focused_pepper_plugin_) { 1561 if (focused_pepper_plugin_) {
1580 focused_pepper_plugin_->render_frame()->OnImeFinishComposingText( 1562 focused_pepper_plugin_->render_frame()->OnImeFinishComposingText(
1581 keep_selection); 1563 keep_selection);
1582 return; 1564 return;
1583 } 1565 }
1584 #endif 1566 #endif
1585 1567
1586 if (!ShouldHandleImeEvent()) 1568 if (!GetWebWidget())
1587 return; 1569 return;
1588 ImeEventGuard guard(this); 1570 ImeEventGuard guard(this);
1589 input_handler_->set_handling_input_event(true); 1571 input_handler_->set_handling_input_event(true);
1590 if (auto* controller = GetInputMethodController()) { 1572 if (auto* controller = GetInputMethodController()) {
1591 controller->finishComposingText( 1573 controller->finishComposingText(
1592 keep_selection ? WebInputMethodController::KeepSelection 1574 keep_selection ? WebInputMethodController::KeepSelection
1593 : WebInputMethodController::DoNotKeepSelection); 1575 : WebInputMethodController::DoNotKeepSelection);
1594 } 1576 }
1595 input_handler_->set_handling_input_event(false); 1577 input_handler_->set_handling_input_event(false);
1596 UpdateCompositionInfo(false /* not an immediate request */); 1578 UpdateCompositionInfo(false /* not an immediate request */);
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1794 void RenderWidget::convertWindowToViewport(blink::WebFloatRect* rect) { 1776 void RenderWidget::convertWindowToViewport(blink::WebFloatRect* rect) {
1795 if (IsUseZoomForDSFEnabled()) { 1777 if (IsUseZoomForDSFEnabled()) {
1796 rect->x *= GetOriginalDeviceScaleFactor(); 1778 rect->x *= GetOriginalDeviceScaleFactor();
1797 rect->y *= GetOriginalDeviceScaleFactor(); 1779 rect->y *= GetOriginalDeviceScaleFactor();
1798 rect->width *= GetOriginalDeviceScaleFactor(); 1780 rect->width *= GetOriginalDeviceScaleFactor();
1799 rect->height *= GetOriginalDeviceScaleFactor(); 1781 rect->height *= GetOriginalDeviceScaleFactor();
1800 } 1782 }
1801 } 1783 }
1802 1784
1803 #if defined(OS_ANDROID) 1785 #if defined(OS_ANDROID)
1804 void RenderWidget::OnImeEventSentForAck(const blink::WebTextInputInfo& info) {
1805 text_input_info_history_.push_back(info);
1806 }
1807
1808 void RenderWidget::OnImeEventAck() {
1809 DCHECK_GE(text_input_info_history_.size(), 1u);
1810 text_input_info_history_.pop_front();
1811 }
1812
1813 void RenderWidget::OnRequestTextInputStateUpdate() { 1786 void RenderWidget::OnRequestTextInputStateUpdate() {
1814 DCHECK(!ime_event_guard_); 1787 DCHECK(!ime_event_guard_);
1815 UpdateSelectionBounds(); 1788 UpdateSelectionBounds();
1816 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME); 1789 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
1817 } 1790 }
1818 #endif 1791 #endif
1819 1792
1820 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request, 1793 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request,
1821 bool monitor_request) { 1794 bool monitor_request) {
1822 monitor_composition_info_ = monitor_request; 1795 monitor_composition_info_ = monitor_request;
1823 if (!immediate_request) 1796 if (!immediate_request)
1824 return; 1797 return;
1825 UpdateCompositionInfo(true /* immediate request */); 1798 UpdateCompositionInfo(true /* immediate request */);
1826 } 1799 }
1827 1800
1828 bool RenderWidget::ShouldHandleImeEvent() {
1829 #if defined(OS_ANDROID)
1830 if (!GetWebWidget())
1831 return false;
1832 if (IsUsingImeThread())
1833 return true;
1834
1835 // We cannot handle IME events if there is any chance that the event we are
1836 // receiving here from the browser is based on the state that is different
1837 // from our current one as indicated by |text_input_info_|.
1838 // The states the browser might be in are:
1839 // text_input_info_history_[0] - current state ack'd by browser
1840 // text_input_info_history_[1...N] - pending state changes
1841 for (size_t i = 0u; i < text_input_info_history_.size() - 1u; ++i) {
1842 if (text_input_info_history_[i] != text_input_info_)
1843 return false;
1844 }
1845 return true;
1846 #else
1847 return !!GetWebWidget();
1848 #endif
1849 }
1850
1851 void RenderWidget::OnSetDeviceScaleFactor(float device_scale_factor) { 1801 void RenderWidget::OnSetDeviceScaleFactor(float device_scale_factor) {
1852 if (device_scale_factor_ == device_scale_factor) 1802 if (device_scale_factor_ == device_scale_factor)
1853 return; 1803 return;
1854 1804
1855 device_scale_factor_ = device_scale_factor; 1805 device_scale_factor_ = device_scale_factor;
1856 1806
1857 OnDeviceScaleFactorChanged(); 1807 OnDeviceScaleFactorChanged();
1858 ScheduleComposite(); 1808 ScheduleComposite();
1859 1809
1860 physical_backing_size_ = gfx::ScaleToCeiledSize(size_, device_scale_factor_); 1810 physical_backing_size_ = gfx::ScaleToCeiledSize(size_, device_scale_factor_);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1909 } 1859 }
1910 1860
1911 void RenderWidget::set_next_paint_is_resize_ack() { 1861 void RenderWidget::set_next_paint_is_resize_ack() {
1912 next_paint_flags_ |= ViewHostMsg_UpdateRect_Flags::IS_RESIZE_ACK; 1862 next_paint_flags_ |= ViewHostMsg_UpdateRect_Flags::IS_RESIZE_ACK;
1913 } 1863 }
1914 1864
1915 void RenderWidget::set_next_paint_is_repaint_ack() { 1865 void RenderWidget::set_next_paint_is_repaint_ack() {
1916 next_paint_flags_ |= ViewHostMsg_UpdateRect_Flags::IS_REPAINT_ACK; 1866 next_paint_flags_ |= ViewHostMsg_UpdateRect_Flags::IS_REPAINT_ACK;
1917 } 1867 }
1918 1868
1919 bool RenderWidget::IsUsingImeThread() {
1920 #if defined(OS_ANDROID)
1921 return base::FeatureList::IsEnabled(features::kImeThread);
1922 #else
1923 return false;
1924 #endif
1925 }
1926
1927 void RenderWidget::OnImeEventGuardStart(ImeEventGuard* guard) { 1869 void RenderWidget::OnImeEventGuardStart(ImeEventGuard* guard) {
1928 if (!ime_event_guard_) 1870 if (!ime_event_guard_)
1929 ime_event_guard_ = guard; 1871 ime_event_guard_ = guard;
1930 } 1872 }
1931 1873
1932 void RenderWidget::OnImeEventGuardFinish(ImeEventGuard* guard) { 1874 void RenderWidget::OnImeEventGuardFinish(ImeEventGuard* guard) {
1933 if (ime_event_guard_ != guard) { 1875 if (ime_event_guard_ != guard) {
1934 #if defined(OS_ANDROID) 1876 #if defined(OS_ANDROID)
1935 // In case a from-IME event (e.g. touch) ends up in not-from-IME event 1877 // In case a from-IME event (e.g. touch) ends up in not-from-IME event
1936 // (e.g. long press gesture), we want to treat it as not-from-IME event 1878 // (e.g. long press gesture), we want to treat it as not-from-IME event
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 // Ignore setTouchAction calls that result from synthetic touch events (eg. 2167 // Ignore setTouchAction calls that result from synthetic touch events (eg.
2226 // when blink is emulating touch with mouse). 2168 // when blink is emulating touch with mouse).
2227 if (input_handler_->handling_event_type() != WebInputEvent::TouchStart) 2169 if (input_handler_->handling_event_type() != WebInputEvent::TouchStart)
2228 return; 2170 return;
2229 2171
2230 content::TouchAction content_touch_action = 2172 content::TouchAction content_touch_action =
2231 static_cast<content::TouchAction>(web_touch_action); 2173 static_cast<content::TouchAction>(web_touch_action);
2232 Send(new InputHostMsg_SetTouchAction(routing_id_, content_touch_action)); 2174 Send(new InputHostMsg_SetTouchAction(routing_id_, content_touch_action));
2233 } 2175 }
2234 2176
2235 void RenderWidget::didUpdateTextOfFocusedElementByNonUserInput() {
2236 #if defined(OS_ANDROID)
2237 if (!IsUsingImeThread())
2238 text_field_is_dirty_ = true;
2239 #endif
2240 }
2241
2242 void RenderWidget::RegisterRenderFrameProxy(RenderFrameProxy* proxy) { 2177 void RenderWidget::RegisterRenderFrameProxy(RenderFrameProxy* proxy) {
2243 render_frame_proxies_.AddObserver(proxy); 2178 render_frame_proxies_.AddObserver(proxy);
2244 } 2179 }
2245 2180
2246 void RenderWidget::UnregisterRenderFrameProxy(RenderFrameProxy* proxy) { 2181 void RenderWidget::UnregisterRenderFrameProxy(RenderFrameProxy* proxy) {
2247 render_frame_proxies_.RemoveObserver(proxy); 2182 render_frame_proxies_.RemoveObserver(proxy);
2248 } 2183 }
2249 2184
2250 void RenderWidget::RegisterRenderFrame(RenderFrameImpl* frame) { 2185 void RenderWidget::RegisterRenderFrame(RenderFrameImpl* frame) {
2251 render_frames_.AddObserver(frame); 2186 render_frames_.AddObserver(frame);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2309 blink::WebInputMethodController* RenderWidget::GetInputMethodController() 2244 blink::WebInputMethodController* RenderWidget::GetInputMethodController()
2310 const { 2245 const {
2311 // TODO(ekaramad): Remove this CHECK when GetWebWidget() is 2246 // TODO(ekaramad): Remove this CHECK when GetWebWidget() is
2312 // always a WebFrameWidget. 2247 // always a WebFrameWidget.
2313 CHECK(GetWebWidget()->isWebFrameWidget()); 2248 CHECK(GetWebWidget()->isWebFrameWidget());
2314 return static_cast<blink::WebFrameWidget*>(GetWebWidget()) 2249 return static_cast<blink::WebFrameWidget*>(GetWebWidget())
2315 ->getActiveWebInputMethodController(); 2250 ->getActiveWebInputMethodController();
2316 } 2251 }
2317 2252
2318 } // namespace content 2253 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_widget.h ('k') | testing/variations/fieldtrial_testing_config.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698