| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/autofill/content/renderer/page_click_tracker.h" | 5 #include "components/autofill/content/renderer/page_click_tracker.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "components/autofill/content/renderer/form_autofill_util.h" | 8 #include "components/autofill/content/renderer/form_autofill_util.h" |
| 9 #include "components/autofill/content/renderer/page_click_listener.h" | 9 #include "components/autofill/content/renderer/page_click_listener.h" |
| 10 #include "components/autofill/core/common/autofill_util.h" | 10 #include "components/autofill/core/common/autofill_util.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 : content::RenderFrameObserver(render_frame), | 69 : content::RenderFrameObserver(render_frame), |
| 70 focused_node_was_last_clicked_(false), | 70 focused_node_was_last_clicked_(false), |
| 71 was_focused_before_now_(false), | 71 was_focused_before_now_(false), |
| 72 listener_(listener), | 72 listener_(listener), |
| 73 legacy_(this) { | 73 legacy_(this) { |
| 74 } | 74 } |
| 75 | 75 |
| 76 PageClickTracker::~PageClickTracker() { | 76 PageClickTracker::~PageClickTracker() { |
| 77 } | 77 } |
| 78 | 78 |
| 79 void PageClickTracker::FocusedNodeChanged(const WebNode& node) { |
| 80 was_focused_before_now_ = false; |
| 81 |
| 82 if (IsKeyboardAccessory() && IsUserGesture()) { |
| 83 focused_node_was_last_clicked_ = true; |
| 84 DoFocusChangeComplete(); |
| 85 } |
| 86 } |
| 87 |
| 88 bool PageClickTracker::IsUserGesture() const { |
| 89 return WebUserGestureIndicator::isProcessingUserGesture(); |
| 90 } |
| 91 |
| 92 bool PageClickTracker::IsKeyboardAccessory() const { |
| 93 return IsKeyboardAccessoryEnabled(); |
| 94 } |
| 95 |
| 79 void PageClickTracker::OnMouseDown(const WebNode& mouse_down_node) { | 96 void PageClickTracker::OnMouseDown(const WebNode& mouse_down_node) { |
| 80 focused_node_was_last_clicked_ = !mouse_down_node.isNull() && | 97 focused_node_was_last_clicked_ = !mouse_down_node.isNull() && |
| 81 mouse_down_node.focused(); | 98 mouse_down_node.focused(); |
| 82 | 99 |
| 83 if (IsKeyboardAccessoryEnabled()) | 100 if (IsKeyboardAccessory()) |
| 84 DoFocusChangeComplete(); | 101 DoFocusChangeComplete(); |
| 85 } | 102 } |
| 86 | 103 |
| 87 void PageClickTracker::FocusedNodeChanged(const WebNode& node) { | |
| 88 was_focused_before_now_ = false; | |
| 89 | |
| 90 if (IsKeyboardAccessoryEnabled() && | |
| 91 WebUserGestureIndicator::isProcessingUserGesture()) { | |
| 92 focused_node_was_last_clicked_ = true; | |
| 93 DoFocusChangeComplete(); | |
| 94 } | |
| 95 } | |
| 96 | |
| 97 void PageClickTracker::FocusChangeComplete() { | 104 void PageClickTracker::FocusChangeComplete() { |
| 98 if (IsKeyboardAccessoryEnabled()) | 105 if (IsKeyboardAccessory()) |
| 99 return; | 106 return; |
| 100 | 107 |
| 101 DoFocusChangeComplete(); | 108 DoFocusChangeComplete(); |
| 102 } | 109 } |
| 103 | 110 |
| 104 void PageClickTracker::DoFocusChangeComplete() { | 111 void PageClickTracker::DoFocusChangeComplete() { |
| 112 LOG(ERROR) << __FUNCTION__; |
| 105 WebNode focused_node = render_frame()->GetFocusedElement(); | 113 WebNode focused_node = render_frame()->GetFocusedElement(); |
| 106 if (focused_node_was_last_clicked_ && !focused_node.isNull()) { | 114 if (focused_node_was_last_clicked_ && !focused_node.isNull()) { |
| 107 const WebInputElement input_element = GetTextWebInputElement(focused_node); | 115 const WebInputElement input_element = GetTextWebInputElement(focused_node); |
| 108 if (!input_element.isNull()) { | 116 if (!input_element.isNull()) { |
| 109 listener_->FormControlElementClicked(input_element, | 117 listener_->FormControlElementClicked(input_element, |
| 110 was_focused_before_now_); | 118 was_focused_before_now_); |
| 111 } else { | 119 } else { |
| 112 const WebTextAreaElement textarea_element = | 120 const WebTextAreaElement textarea_element = |
| 113 GetWebTextAreaElement(focused_node); | 121 GetWebTextAreaElement(focused_node); |
| 114 if (!textarea_element.isNull()) { | 122 if (!textarea_element.isNull()) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 135 | 143 |
| 136 void PageClickTracker::Legacy::OnMouseDown(const WebNode& mouse_down_node) { | 144 void PageClickTracker::Legacy::OnMouseDown(const WebNode& mouse_down_node) { |
| 137 tracker_->OnMouseDown(mouse_down_node); | 145 tracker_->OnMouseDown(mouse_down_node); |
| 138 } | 146 } |
| 139 | 147 |
| 140 void PageClickTracker::Legacy::FocusChangeComplete() { | 148 void PageClickTracker::Legacy::FocusChangeComplete() { |
| 141 tracker_->FocusChangeComplete(); | 149 tracker_->FocusChangeComplete(); |
| 142 } | 150 } |
| 143 | 151 |
| 144 } // namespace autofill | 152 } // namespace autofill |
| OLD | NEW |