Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(548)

Side by Side Diff: chrome/renderer/page_click_tracker.cc

Issue 4120011: Added check in page click tracker to ensure events passed in are mouse events... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/renderer/page_click_listener.h" 7 #include "chrome/renderer/page_click_listener.h"
8 #include "chrome/renderer/render_view.h" 8 #include "chrome/renderer/render_view.h"
9 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" 9 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h"
10 #include "third_party/WebKit/WebKit/chromium/public/WebDOMMouseEvent.h" 10 #include "third_party/WebKit/WebKit/chromium/public/WebDOMMouseEvent.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 listeners_.AddObserver(listener); 94 listeners_.AddObserver(listener);
95 } 95 }
96 96
97 void PageClickTracker::RemoveListener(PageClickListener* listener) { 97 void PageClickTracker::RemoveListener(PageClickListener* listener) {
98 listeners_.RemoveObserver(listener); 98 listeners_.RemoveObserver(listener);
99 } 99 }
100 100
101 void PageClickTracker::handleEvent(const WebDOMEvent& event) { 101 void PageClickTracker::handleEvent(const WebDOMEvent& event) {
102 last_node_clicked_.reset(); 102 last_node_clicked_.reset();
103 103
104 DCHECK(event.isMouseEvent()); 104 if (!event.isMouseEvent())
105 return;
106
105 const WebDOMMouseEvent mouse_event = event.toConst<WebDOMMouseEvent>(); 107 const WebDOMMouseEvent mouse_event = event.toConst<WebDOMMouseEvent>();
106 DCHECK(mouse_event.buttonDown()); 108 DCHECK(mouse_event.buttonDown());
107 if (mouse_event.button() != 0) 109 if (mouse_event.button() != 0)
108 return; // We are only interested in left clicks. 110 return; // We are only interested in left clicks.
109 111
110 // Remember which node has focus before the click is processed. 112 // Remember which node has focus before the click is processed.
111 // We'll get a notification once the mouse event has been processed 113 // We'll get a notification once the mouse event has been processed
112 // (DidHandleMouseEvent), we'll notify the listener at that point. 114 // (DidHandleMouseEvent), we'll notify the listener at that point.
113 last_node_clicked_ = mouse_event.target(); 115 last_node_clicked_ = mouse_event.target();
114 was_focused_ = (GetFocusedNode() == last_node_clicked_); 116 was_focused_ = (GetFocusedNode() == last_node_clicked_);
115 } 117 }
116 118
117 WebNode PageClickTracker::GetFocusedNode() { 119 WebNode PageClickTracker::GetFocusedNode() {
118 WebView* web_view = render_view_->webview(); 120 WebView* web_view = render_view_->webview();
119 if (!web_view) 121 if (!web_view)
120 return WebNode(); 122 return WebNode();
121 123
122 WebFrame* web_frame = web_view->focusedFrame(); 124 WebFrame* web_frame = web_view->focusedFrame();
123 if (!web_frame) 125 if (!web_frame)
124 return WebNode(); 126 return WebNode();
125 127
126 return web_frame->document().focusedNode(); 128 return web_frame->document().focusedNode();
127 } 129 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698