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

Side by Side Diff: components/test_runner/event_sender.cc

Issue 1391393002: Fire pointerup/down events for corresponding mouse events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/test_runner/event_sender.h" 5 #include "components/test_runner/event_sender.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 using blink::WebString; 42 using blink::WebString;
43 using blink::WebTouchEvent; 43 using blink::WebTouchEvent;
44 using blink::WebTouchPoint; 44 using blink::WebTouchPoint;
45 using blink::WebVector; 45 using blink::WebVector;
46 using blink::WebView; 46 using blink::WebView;
47 47
48 namespace test_runner { 48 namespace test_runner {
49 49
50 namespace { 50 namespace {
51 51
52 WebMouseEvent::Button GetButtonTypeFromButtonNumber(int button_code) {
53 switch (button_code) {
54 case -1:
55 return WebMouseEvent::ButtonNone;
56 case 0:
57 return WebMouseEvent::ButtonLeft;
58 case 1:
59 return WebMouseEvent::ButtonMiddle;
60 case 2:
61 return WebMouseEvent::ButtonRight;
62 }
63 NOTREACHED();
64 return WebMouseEvent::ButtonNone;
65 }
66
67 int GetWebMouseEventModifierForButton(WebMouseEvent::Button button) {
68 switch (button) {
69 case WebMouseEvent::ButtonNone:
70 return 0;
71 case WebMouseEvent::ButtonLeft:
72 return WebMouseEvent::LeftButtonDown;
73 case WebMouseEvent::ButtonMiddle:
74 return WebMouseEvent::MiddleButtonDown;
75 case WebMouseEvent::ButtonRight:
76 return WebMouseEvent::RightButtonDown;
77 }
78 NOTREACHED();
79 return 0;
80 }
81
52 void InitMouseEvent(WebInputEvent::Type t, 82 void InitMouseEvent(WebInputEvent::Type t,
53 WebMouseEvent::Button b, 83 WebMouseEvent::Button b,
54 const WebPoint& pos, 84 const WebPoint& pos,
55 double time_stamp, 85 double time_stamp,
56 int click_count, 86 int click_count,
57 int modifiers, 87 int modifiers,
58 WebMouseEvent* e) { 88 WebMouseEvent* e) {
59 e->type = t; 89 e->type = t;
60 e->button = b; 90 e->button = b;
61 e->modifiers = modifiers; 91 e->modifiers = modifiers | GetWebMouseEventModifierForButton(b);
62 e->x = pos.x; 92 e->x = pos.x;
63 e->y = pos.y; 93 e->y = pos.y;
64 e->globalX = pos.x; 94 e->globalX = pos.x;
65 e->globalY = pos.y; 95 e->globalY = pos.y;
66 e->timeStampSeconds = time_stamp; 96 e->timeStampSeconds = time_stamp;
67 e->clickCount = click_count; 97 e->clickCount = click_count;
68 } 98 }
69 99
70 int GetKeyModifier(const std::string& modifier_name) { 100 int GetKeyModifier(const std::string& modifier_name) {
71 const char* characters = modifier_name.c_str(); 101 const char* characters = modifier_name.c_str();
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 280 }
251 } 281 }
252 282
253 return strings; 283 return strings;
254 } 284 }
255 285
256 // How much we should scroll per event - the value here is chosen to match the 286 // How much we should scroll per event - the value here is chosen to match the
257 // WebKit impl and layout test results. 287 // WebKit impl and layout test results.
258 const float kScrollbarPixelsPerTick = 40.0f; 288 const float kScrollbarPixelsPerTick = 40.0f;
259 289
260 WebMouseEvent::Button GetButtonTypeFromButtonNumber(int button_code) {
261 if (!button_code)
262 return WebMouseEvent::ButtonLeft;
263 if (button_code == 2)
264 return WebMouseEvent::ButtonRight;
265 return WebMouseEvent::ButtonMiddle;
266 }
267
268 class MouseDownTask : public WebMethodTask<EventSender> { 290 class MouseDownTask : public WebMethodTask<EventSender> {
269 public: 291 public:
270 MouseDownTask(EventSender* obj, int button_number, int modifiers) 292 MouseDownTask(EventSender* obj, int button_number, int modifiers)
271 : WebMethodTask<EventSender>(obj), 293 : WebMethodTask<EventSender>(obj),
272 button_number_(button_number), 294 button_number_(button_number),
273 modifiers_(modifiers) {} 295 modifiers_(modifiers) {}
274 296
275 void RunIfValid() override { object_->MouseDown(button_number_, modifiers_); } 297 void RunIfValid() override { object_->MouseDown(button_number_, modifiers_); }
276 298
277 private: 299 private:
(...skipping 2243 matching lines...) Expand 10 before | Expand all | Expand 10 after
2521 last_event_timestamp_ = event.timeStampSeconds; 2543 last_event_timestamp_ = event.timeStampSeconds;
2522 2544
2523 if (WebPagePopup* popup = view_->pagePopup()) { 2545 if (WebPagePopup* popup = view_->pagePopup()) {
2524 if (!WebInputEvent::isKeyboardEventType(event.type)) 2546 if (!WebInputEvent::isKeyboardEventType(event.type))
2525 return popup->handleInputEvent(event); 2547 return popup->handleInputEvent(event);
2526 } 2548 }
2527 return view_->handleInputEvent(event); 2549 return view_->handleInputEvent(event);
2528 } 2550 }
2529 2551
2530 } // namespace test_runner 2552 } // namespace test_runner
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698