diff options
| -rw-r--r-- | chromium/content/renderer/render_frame_impl.cc | 4 | ||||
| -rw-r--r-- | chromium/content/renderer/render_view_impl.cc | 1 | ||||
| -rw-r--r-- | chromium/content/renderer/render_widget.cc | 1 | ||||
| -rw-r--r-- | chromium/content/renderer/render_widget.h | 5 |
4 files changed, 10 insertions, 1 deletions
diff --git a/chromium/content/renderer/render_frame_impl.cc b/chromium/content/renderer/render_frame_impl.cc index a3ba1f6a0b9..1e6c3f28f8a 100644 --- a/chromium/content/renderer/render_frame_impl.cc +++ b/chromium/content/renderer/render_frame_impl.cc @@ -2977,7 +2977,9 @@ void RenderFrameImpl::requestNotificationPermission( } void RenderFrameImpl::didChangeSelection(bool is_empty_selection) { - if (!GetRenderWidget()->handling_input_event() && !handling_select_range_) + if (!GetRenderWidget()->handling_input_event() + && !GetRenderWidget()->handling_find_op() + && !handling_select_range_) return; diff --git a/chromium/content/renderer/render_view_impl.cc b/chromium/content/renderer/render_view_impl.cc index dbb231f3fdf..e3704e1f271 100644 --- a/chromium/content/renderer/render_view_impl.cc +++ b/chromium/content/renderer/render_view_impl.cc @@ -2364,6 +2364,7 @@ blink::WebPlugin* RenderViewImpl::GetWebPluginForFind() { void RenderViewImpl::OnFind(int request_id, const base::string16& search_text, const WebFindOptions& options) { + base::AutoReset<bool> handling_find_op(&handling_find_op_, true); WebFrame* main_frame = webview()->mainFrame(); blink::WebPlugin* plugin = GetWebPluginForFind(); // Check if the plugin still exists in the document. diff --git a/chromium/content/renderer/render_widget.cc b/chromium/content/renderer/render_widget.cc index d0a6ca3df3f..aec5bf61f8e 100644 --- a/chromium/content/renderer/render_widget.cc +++ b/chromium/content/renderer/render_widget.cc @@ -491,6 +491,7 @@ RenderWidget::RenderWidget(blink::WebPopupType popup_type, display_mode_(blink::WebDisplayModeUndefined), has_focus_(false), handling_input_event_(false), + handling_find_op_(false), handling_event_overscroll_(nullptr), handling_ime_event_(false), handling_event_type_(WebInputEvent::Undefined), diff --git a/chromium/content/renderer/render_widget.h b/chromium/content/renderer/render_widget.h index f62a383d674..71f288f5b5c 100644 --- a/chromium/content/renderer/render_widget.h +++ b/chromium/content/renderer/render_widget.h @@ -129,6 +129,7 @@ class CONTENT_EXPORT RenderWidget blink::WebDisplayMode display_mode() const { return display_mode_; } bool is_hidden() const { return is_hidden_; } bool handling_input_event() const { return handling_input_event_; } + bool handling_find_op() const { return handling_find_op_; } // Temporary for debugging purposes... bool closing() const { return closing_; } bool is_swapped_out() { return is_swapped_out_; } @@ -680,6 +681,10 @@ class CONTENT_EXPORT RenderWidget // Are we currently handling an input event? bool handling_input_event_; + // Indicates that a find operation is in process (OnFind). + // Used to clear currently selected text in a RenderWidget. + bool handling_find_op_; + // Used to intercept overscroll notifications while an event is being // handled. If the event causes overscroll, the overscroll metadata can be // bundled in the event ack, saving an IPC. Note that we must continue |
