Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/renderer/page_click_tracker.h" | 5 #include "chrome/renderer/page_click_tracker.h" |
| 6 | 6 |
| 7 #include "chrome/common/render_messages.h" | 7 #include "chrome/common/render_messages.h" |
| 8 #include "chrome/renderer/page_click_listener.h" | 8 #include "chrome/renderer/page_click_listener.h" |
| 9 #include "content/common/view_messages.h" | |
| 10 #include "content/public/renderer/render_view.h" | 9 #include "content/public/renderer/render_view.h" |
| 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" |
| 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMMouseEvent.h" | 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMMouseEvent.h" |
| 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h" | 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputElement.h" |
| 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" | 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
| 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
| 17 | 16 |
| 18 using WebKit::WebDOMEvent; | 17 using WebKit::WebDOMEvent; |
| 19 using WebKit::WebDOMMouseEvent; | 18 using WebKit::WebDOMMouseEvent; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 } | 84 } |
| 86 | 85 |
| 87 void PageClickTracker::AddListener(PageClickListener* listener) { | 86 void PageClickTracker::AddListener(PageClickListener* listener) { |
| 88 listeners_.AddObserver(listener); | 87 listeners_.AddObserver(listener); |
| 89 } | 88 } |
| 90 | 89 |
| 91 void PageClickTracker::RemoveListener(PageClickListener* listener) { | 90 void PageClickTracker::RemoveListener(PageClickListener* listener) { |
| 92 listeners_.RemoveObserver(listener); | 91 listeners_.RemoveObserver(listener); |
| 93 } | 92 } |
| 94 | 93 |
| 95 bool PageClickTracker::OnMessageReceived(const IPC::Message& message) { | |
| 96 if (message.type() == ViewMsg_HandleInputEvent::ID) { | |
|
ananta
2011/10/15 00:15:21
This code not needed anymore?
jam
2011/10/15 00:17:10
yeah, i don't know why it got checked in like that
| |
| 97 void* iter = NULL; | |
| 98 const char* data; | |
| 99 int data_length; | |
| 100 if (message.ReadData(&iter, &data, &data_length)) { | |
| 101 const WebInputEvent* input_event = | |
| 102 reinterpret_cast<const WebInputEvent*>(data); | |
| 103 if (WebInputEvent::isMouseEventType(input_event->type)) | |
| 104 DidHandleMouseEvent(*(static_cast<const WebMouseEvent*>(input_event))); | |
| 105 } | |
| 106 } | |
| 107 return false; | |
| 108 } | |
| 109 | |
| 110 void PageClickTracker::DidFinishDocumentLoad(WebKit::WebFrame* frame) { | 94 void PageClickTracker::DidFinishDocumentLoad(WebKit::WebFrame* frame) { |
| 111 tracked_frames_.push_back(frame); | 95 tracked_frames_.push_back(frame); |
| 112 frame->document().addEventListener("mousedown", this, false); | 96 frame->document().addEventListener("mousedown", this, false); |
| 113 } | 97 } |
| 114 | 98 |
| 115 void PageClickTracker::FrameDetached(WebKit::WebFrame* frame) { | 99 void PageClickTracker::FrameDetached(WebKit::WebFrame* frame) { |
| 116 FrameList::iterator iter = | 100 FrameList::iterator iter = |
| 117 std::find(tracked_frames_.begin(), tracked_frames_.end(), frame); | 101 std::find(tracked_frames_.begin(), tracked_frames_.end(), frame); |
| 118 if (iter == tracked_frames_.end()) { | 102 if (iter == tracked_frames_.end()) { |
| 119 // Some frames might never load contents so we may not have a listener on | 103 // Some frames might never load contents so we may not have a listener on |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 139 // We'll get a notification once the mouse event has been processed | 123 // We'll get a notification once the mouse event has been processed |
| 140 // (DidHandleMouseEvent), we'll notify the listener at that point. | 124 // (DidHandleMouseEvent), we'll notify the listener at that point. |
| 141 WebNode node = mouse_event.target(); | 125 WebNode node = mouse_event.target(); |
| 142 // We are only interested in text field clicks. | 126 // We are only interested in text field clicks. |
| 143 if (GetTextWebInputElement(node).isNull()) | 127 if (GetTextWebInputElement(node).isNull()) |
| 144 return; | 128 return; |
| 145 | 129 |
| 146 last_node_clicked_ = node; | 130 last_node_clicked_ = node; |
| 147 was_focused_ = (render_view()->GetFocusedNode() == last_node_clicked_); | 131 was_focused_ = (render_view()->GetFocusedNode() == last_node_clicked_); |
| 148 } | 132 } |
| OLD | NEW |