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

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

Issue 2903833002: Reland: Update TextSelection for non-user initiated events
Patch Set: Add test for JS cursor movement Created 3 years, 5 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
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | no next file » | 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 1617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1628 return; 1628 return;
1629 1629
1630 #if BUILDFLAG(ENABLE_PLUGINS) 1630 #if BUILDFLAG(ENABLE_PLUGINS)
1631 if (focused_pepper_plugin_) { 1631 if (focused_pepper_plugin_) {
1632 focused_pepper_plugin_->render_frame()->OnImeSetComposition( 1632 focused_pepper_plugin_->render_frame()->OnImeSetComposition(
1633 text, underlines, selection_start, selection_end); 1633 text, underlines, selection_start, selection_end);
1634 return; 1634 return;
1635 } 1635 }
1636 #endif 1636 #endif
1637 ImeEventGuard guard(this); 1637 ImeEventGuard guard(this);
1638 input_handler_->set_ime_composition_replacement(replacement_range.IsValid());
1638 blink::WebInputMethodController* controller = GetInputMethodController(); 1639 blink::WebInputMethodController* controller = GetInputMethodController();
1639 if (!controller || 1640 if (!controller ||
1640 !controller->SetComposition( 1641 !controller->SetComposition(
1641 WebString::FromUTF16(text), 1642 WebString::FromUTF16(text),
1642 WebVector<WebCompositionUnderline>(underlines), 1643 WebVector<WebCompositionUnderline>(underlines),
1643 replacement_range.IsValid() 1644 replacement_range.IsValid()
1644 ? WebRange(replacement_range.start(), replacement_range.length()) 1645 ? WebRange(replacement_range.start(), replacement_range.length())
1645 : WebRange(), 1646 : WebRange(),
1646 selection_start, selection_end)) { 1647 selection_start, selection_end)) {
1647 // If we failed to set the composition text, then we need to let the browser 1648 // If we failed to set the composition text, then we need to let the browser
1648 // process to cancel the input method's ongoing composition session, to make 1649 // process to cancel the input method's ongoing composition session, to make
1649 // sure we are in a consistent state. 1650 // sure we are in a consistent state.
1650 Send(new InputHostMsg_ImeCancelComposition(routing_id())); 1651 Send(new InputHostMsg_ImeCancelComposition(routing_id()));
1651 } 1652 }
1653 input_handler_->set_ime_composition_replacement(false);
1652 UpdateCompositionInfo(false /* not an immediate request */); 1654 UpdateCompositionInfo(false /* not an immediate request */);
1653 } 1655 }
1654 1656
1655 void RenderWidget::OnImeCommitText( 1657 void RenderWidget::OnImeCommitText(
1656 const base::string16& text, 1658 const base::string16& text,
1657 const std::vector<WebCompositionUnderline>& underlines, 1659 const std::vector<WebCompositionUnderline>& underlines,
1658 const gfx::Range& replacement_range, 1660 const gfx::Range& replacement_range,
1659 int relative_cursor_pos) { 1661 int relative_cursor_pos) {
1660 if (!ShouldHandleImeEvents()) 1662 if (!ShouldHandleImeEvents())
1661 return; 1663 return;
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
2385 // browser side (https://crbug.com/669219). 2387 // browser side (https://crbug.com/669219).
2386 // If there is no WebFrameWidget, then there will be no 2388 // If there is no WebFrameWidget, then there will be no
2387 // InputMethodControllers for a WebLocalFrame. 2389 // InputMethodControllers for a WebLocalFrame.
2388 return nullptr; 2390 return nullptr;
2389 } 2391 }
2390 return static_cast<blink::WebFrameWidget*>(GetWebWidget()) 2392 return static_cast<blink::WebFrameWidget*>(GetWebWidget())
2391 ->GetActiveWebInputMethodController(); 2393 ->GetActiveWebInputMethodController();
2392 } 2394 }
2393 2395
2394 } // namespace content 2396 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698