Chromium Code Reviews| 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 |