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 "components/autofill/content/renderer/form_autofill_util.h" | 7 #include "components/autofill/content/renderer/form_autofill_util.h" |
8 #include "components/autofill/content/renderer/page_click_listener.h" | 8 #include "components/autofill/content/renderer/page_click_listener.h" |
9 #include "content/public/renderer/render_view.h" | 9 #include "content/public/renderer/render_view.h" |
10 #include "third_party/WebKit/public/platform/WebString.h" | 10 #include "third_party/WebKit/public/platform/WebString.h" |
(...skipping 28 matching lines...) Expand all Loading... | |
39 return WebInputElement(); | 39 return WebInputElement(); |
40 const WebInputElement* input = blink::toWebInputElement(&element); | 40 const WebInputElement* input = blink::toWebInputElement(&element); |
41 if (!autofill::IsTextInput(input)) | 41 if (!autofill::IsTextInput(input)) |
42 return WebInputElement(); | 42 return WebInputElement(); |
43 return *input; | 43 return *input; |
44 } | 44 } |
45 | 45 |
46 // Checks to see if a text field was the previously selected node and is now | 46 // Checks to see if a text field was the previously selected node and is now |
47 // losing its focus. | 47 // losing its focus. |
48 bool DidSelectedTextFieldLoseFocus(const WebNode& newly_clicked_node) { | 48 bool DidSelectedTextFieldLoseFocus(const WebNode& newly_clicked_node) { |
49 blink::WebNode focused_node = newly_clicked_node.document().focusedNode(); | 49 blink::WebElement focused_element = |
50 newly_clicked_node.document().focusedElement(); | |
50 | 51 |
51 if (focused_node.isNull() || GetTextWebInputElement(focused_node).isNull()) | 52 if (focused_element.isNull() || |
53 GetTextWebInputElement(focused_element).isNull()) | |
52 return false; | 54 return false; |
53 | 55 |
54 return focused_node != newly_clicked_node; | 56 return focused_element != newly_clicked_node; |
55 } | 57 } |
56 | 58 |
57 } // namespace | 59 } // namespace |
58 | 60 |
59 namespace autofill { | 61 namespace autofill { |
60 | 62 |
61 PageClickTracker::PageClickTracker(content::RenderView* render_view, | 63 PageClickTracker::PageClickTracker(content::RenderView* render_view, |
62 PageClickListener* listener) | 64 PageClickListener* listener) |
63 : content::RenderViewObserver(render_view), | 65 : content::RenderViewObserver(render_view), |
64 was_focused_(false), | 66 was_focused_(false), |
(...skipping 14 matching lines...) Expand all Loading... | |
79 last_node_clicked_.isNull()) { | 81 last_node_clicked_.isNull()) { |
80 return; | 82 return; |
81 } | 83 } |
82 | 84 |
83 // We are only interested in text field clicks. | 85 // We are only interested in text field clicks. |
84 const WebInputElement input_element = | 86 const WebInputElement input_element = |
85 GetTextWebInputElement(last_node_clicked_); | 87 GetTextWebInputElement(last_node_clicked_); |
86 if (input_element.isNull()) | 88 if (input_element.isNull()) |
87 return; | 89 return; |
88 | 90 |
89 bool is_focused = (last_node_clicked_ == render_view()->GetFocusedNode()); | 91 bool is_focused = (last_node_clicked_ == render_view()->GetFocusedElement()); |
90 listener_->InputElementClicked(input_element, was_focused_, is_focused); | 92 listener_->InputElementClicked(input_element, was_focused_, is_focused); |
91 } | 93 } |
92 | 94 |
93 void PageClickTracker::DidFinishDocumentLoad(blink::WebFrame* frame) { | 95 void PageClickTracker::DidFinishDocumentLoad(blink::WebFrame* frame) { |
94 tracked_frames_.push_back(frame); | 96 tracked_frames_.push_back(frame); |
95 frame->document().addEventListener("mousedown", this, false); | 97 frame->document().addEventListener("mousedown", this, false); |
96 } | 98 } |
97 | 99 |
98 void PageClickTracker::FrameDetached(blink::WebFrame* frame) { | 100 void PageClickTracker::FrameDetached(blink::WebFrame* frame) { |
99 std::vector<blink::WebFrame*>::iterator iter = | 101 std::vector<blink::WebFrame*>::iterator iter = |
(...skipping 26 matching lines...) Expand all Loading... | |
126 // Node may be null if the target was an SVG instance element from a <use> | 128 // Node may be null if the target was an SVG instance element from a <use> |
127 // tree and the tree has been rebuilt due to an earlier event. | 129 // tree and the tree has been rebuilt due to an earlier event. |
128 return; | 130 return; |
129 | 131 |
130 HandleTextFieldMaybeLosingFocus(node); | 132 HandleTextFieldMaybeLosingFocus(node); |
131 | 133 |
132 // We are only interested in text field clicks. | 134 // We are only interested in text field clicks. |
133 if (GetTextWebInputElement(node).isNull()) | 135 if (GetTextWebInputElement(node).isNull()) |
134 return; | 136 return; |
135 | 137 |
136 last_node_clicked_ = node; | 138 last_node_clicked_ = node; |
Ilya Sherman
2014/02/26 21:28:54
nit: node -> element? Please consider updating al
| |
137 was_focused_ = (node.document().focusedNode() == last_node_clicked_); | 139 was_focused_ = (node.document().focusedElement() == last_node_clicked_); |
138 } | 140 } |
139 | 141 |
140 void PageClickTracker::HandleTextFieldMaybeLosingFocus( | 142 void PageClickTracker::HandleTextFieldMaybeLosingFocus( |
141 const WebNode& newly_clicked_node) { | 143 const WebNode& newly_clicked_node) { |
142 if (DidSelectedTextFieldLoseFocus(newly_clicked_node)) | 144 if (DidSelectedTextFieldLoseFocus(newly_clicked_node)) |
143 listener_->InputElementLostFocus(); | 145 listener_->InputElementLostFocus(); |
144 } | 146 } |
145 | 147 |
146 } // namespace autofill | 148 } // namespace autofill |
OLD | NEW |