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

Side by Side Diff: content/shell/renderer/test_runner/event_sender.cc

Issue 878413003: Support buttons attribute for drag event (chromium side). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: win Created 5 years, 9 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 "content/shell/renderer/test_runner/event_sender.h" 5 #include "content/shell/renderer/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 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 1088
1089 void EventSenderBindings::SetWmSysDeadChar(int sys_dead_char) { 1089 void EventSenderBindings::SetWmSysDeadChar(int sys_dead_char) {
1090 if (sender_) 1090 if (sender_)
1091 sender_->set_wm_sys_dead_char(sys_dead_char); 1091 sender_->set_wm_sys_dead_char(sys_dead_char);
1092 } 1092 }
1093 #endif 1093 #endif
1094 1094
1095 // EventSender ----------------------------------------------------------------- 1095 // EventSender -----------------------------------------------------------------
1096 1096
1097 WebMouseEvent::Button EventSender::pressed_button_ = WebMouseEvent::ButtonNone; 1097 WebMouseEvent::Button EventSender::pressed_button_ = WebMouseEvent::ButtonNone;
1098 int EventSender::modifiers_ = 0;
1098 1099
1099 WebPoint EventSender::last_mouse_pos_; 1100 WebPoint EventSender::last_mouse_pos_;
1100 1101
1101 WebMouseEvent::Button EventSender::last_button_type_ = 1102 WebMouseEvent::Button EventSender::last_button_type_ =
1102 WebMouseEvent::ButtonNone; 1103 WebMouseEvent::ButtonNone;
1103 1104
1104 EventSender::SavedEvent::SavedEvent() 1105 EventSender::SavedEvent::SavedEvent()
1105 : type(TYPE_UNSPECIFIED), 1106 : type(TYPE_UNSPECIFIED),
1106 button_type(WebMouseEvent::ButtonNone), 1107 button_type(WebMouseEvent::ButtonNone),
1107 milliseconds(0), 1108 milliseconds(0),
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 } 1193 }
1193 1194
1194 void EventSender::DoDragDrop(const WebDragData& drag_data, 1195 void EventSender::DoDragDrop(const WebDragData& drag_data,
1195 WebDragOperationsMask mask) { 1196 WebDragOperationsMask mask) {
1196 WebMouseEvent event; 1197 WebMouseEvent event;
1197 InitMouseEvent(WebInputEvent::MouseDown, 1198 InitMouseEvent(WebInputEvent::MouseDown,
1198 pressed_button_, 1199 pressed_button_,
1199 last_mouse_pos_, 1200 last_mouse_pos_,
1200 GetCurrentEventTimeSec(), 1201 GetCurrentEventTimeSec(),
1201 click_count_, 1202 click_count_,
1202 0, 1203 modifiers_,
1203 &event); 1204 &event);
1204 WebPoint client_point(event.x, event.y); 1205 WebPoint client_point(event.x, event.y);
1205 WebPoint screen_point(event.globalX, event.globalY); 1206 WebPoint screen_point(event.globalX, event.globalY);
1206 current_drag_data_ = drag_data; 1207 current_drag_data_ = drag_data;
1207 current_drag_effects_allowed_ = mask; 1208 current_drag_effects_allowed_ = mask;
1208 current_drag_effect_ = view_->dragTargetDragEnter( 1209 current_drag_effect_ = view_->dragTargetDragEnter(
1209 drag_data, client_point, screen_point, current_drag_effects_allowed_, 0); 1210 drag_data,
1211 client_point,
1212 screen_point,
1213 current_drag_effects_allowed_,
1214 modifiers_);
1210 1215
1211 // Finish processing events. 1216 // Finish processing events.
1212 ReplaySavedEvents(); 1217 ReplaySavedEvents();
1213 } 1218 }
1214 1219
1215 void EventSender::MouseDown(int button_number, int modifiers) { 1220 void EventSender::MouseDown(int button_number, int modifiers) {
1216 if (force_layout_on_events_) 1221 if (force_layout_on_events_)
1217 view_->layout(); 1222 view_->layout();
1218 1223
1219 DCHECK_NE(-1, button_number); 1224 DCHECK_NE(-1, button_number);
1220 1225
1221 WebMouseEvent::Button button_type = 1226 WebMouseEvent::Button button_type =
1222 GetButtonTypeFromButtonNumber(button_number); 1227 GetButtonTypeFromButtonNumber(button_number);
1223 1228
1224 UpdateClickCountForButton(button_type); 1229 UpdateClickCountForButton(button_type);
1225 1230
1226 pressed_button_ = button_type; 1231 pressed_button_ = button_type;
1232 modifiers_ = modifiers;
1227 1233
1228 WebMouseEvent event; 1234 WebMouseEvent event;
1229 InitMouseEvent(WebInputEvent::MouseDown, 1235 InitMouseEvent(WebInputEvent::MouseDown,
1230 button_type, 1236 button_type,
1231 last_mouse_pos_, 1237 last_mouse_pos_,
1232 GetCurrentEventTimeSec(), 1238 GetCurrentEventTimeSec(),
1233 click_count_, 1239 click_count_,
1234 modifiers, 1240 modifiers,
1235 &event); 1241 &event);
1236 HandleInputEventOnViewOrPopup(event); 1242 HandleInputEventOnViewOrPopup(event);
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2411 2417
2412 // If we're in a drag operation, complete it. 2418 // If we're in a drag operation, complete it.
2413 if (current_drag_data_.isNull()) 2419 if (current_drag_data_.isNull())
2414 return; 2420 return;
2415 2421
2416 WebPoint client_point(e.x, e.y); 2422 WebPoint client_point(e.x, e.y);
2417 WebPoint screen_point(e.globalX, e.globalY); 2423 WebPoint screen_point(e.globalX, e.globalY);
2418 FinishDragAndDrop( 2424 FinishDragAndDrop(
2419 e, 2425 e,
2420 view_->dragTargetDragOver( 2426 view_->dragTargetDragOver(
2421 client_point, screen_point, current_drag_effects_allowed_, 0)); 2427 client_point,
2428 screen_point,
2429 current_drag_effects_allowed_,
2430 e.modifiers));
2422 } 2431 }
2423 2432
2424 void EventSender::DoMouseMove(const WebMouseEvent& e) { 2433 void EventSender::DoMouseMove(const WebMouseEvent& e) {
2425 last_mouse_pos_ = WebPoint(e.x, e.y); 2434 last_mouse_pos_ = WebPoint(e.x, e.y);
2426 2435
2427 HandleInputEventOnViewOrPopup(e); 2436 HandleInputEventOnViewOrPopup(e);
2428 2437
2429 if (pressed_button_ == WebMouseEvent::ButtonNone || 2438 if (pressed_button_ == WebMouseEvent::ButtonNone ||
2430 current_drag_data_.isNull()) { 2439 current_drag_data_.isNull()) {
2431 return; 2440 return;
2432 } 2441 }
2433 2442
2434 WebPoint client_point(e.x, e.y); 2443 WebPoint client_point(e.x, e.y);
2435 WebPoint screen_point(e.globalX, e.globalY); 2444 WebPoint screen_point(e.globalX, e.globalY);
2436 current_drag_effect_ = view_->dragTargetDragOver( 2445 current_drag_effect_ = view_->dragTargetDragOver(
2437 client_point, screen_point, current_drag_effects_allowed_, 0); 2446 client_point, screen_point, current_drag_effects_allowed_, e.modifiers);
2438 } 2447 }
2439 2448
2440 void EventSender::ReplaySavedEvents() { 2449 void EventSender::ReplaySavedEvents() {
2441 replaying_saved_events_ = true; 2450 replaying_saved_events_ = true;
2442 while (!mouse_event_queue_.empty()) { 2451 while (!mouse_event_queue_.empty()) {
2443 SavedEvent e = mouse_event_queue_.front(); 2452 SavedEvent e = mouse_event_queue_.front();
2444 mouse_event_queue_.pop_front(); 2453 mouse_event_queue_.pop_front();
2445 2454
2446 switch (e.type) { 2455 switch (e.type) {
2447 case SavedEvent::TYPE_MOUSE_MOVE: { 2456 case SavedEvent::TYPE_MOUSE_MOVE: {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2481 2490
2482 bool EventSender::HandleInputEventOnViewOrPopup(const WebInputEvent& event) { 2491 bool EventSender::HandleInputEventOnViewOrPopup(const WebInputEvent& event) {
2483 if (WebPagePopup* popup = view_->pagePopup()) { 2492 if (WebPagePopup* popup = view_->pagePopup()) {
2484 if (!WebInputEvent::isKeyboardEventType(event.type)) 2493 if (!WebInputEvent::isKeyboardEventType(event.type))
2485 return popup->handleInputEvent(event); 2494 return popup->handleInputEvent(event);
2486 } 2495 }
2487 return view_->handleInputEvent(event); 2496 return view_->handleInputEvent(event);
2488 } 2497 }
2489 2498
2490 } // namespace content 2499 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698