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

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter.cc

Issue 1870793002: Convert //chrome/browser/chromeos from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 "chrome/browser/chromeos/events/event_rewriter.h" 5 #include "chrome/browser/chromeos/events/event_rewriter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 int device_id, 308 int device_id,
309 const std::string& device_name) { 309 const std::string& device_name) {
310 // Tests must avoid XI2 reserved device IDs. 310 // Tests must avoid XI2 reserved device IDs.
311 DCHECK((device_id < 0) || (device_id > 1)); 311 DCHECK((device_id < 0) || (device_id > 1));
312 return KeyboardDeviceAddedInternal(device_id, device_name, kUnknownVendorId, 312 return KeyboardDeviceAddedInternal(device_id, device_name, kUnknownVendorId,
313 kUnknownProductId); 313 kUnknownProductId);
314 } 314 }
315 315
316 void EventRewriter::RewriteMouseButtonEventForTesting( 316 void EventRewriter::RewriteMouseButtonEventForTesting(
317 const ui::MouseEvent& event, 317 const ui::MouseEvent& event,
318 scoped_ptr<ui::Event>* rewritten_event) { 318 std::unique_ptr<ui::Event>* rewritten_event) {
319 RewriteMouseButtonEvent(event, rewritten_event); 319 RewriteMouseButtonEvent(event, rewritten_event);
320 } 320 }
321 321
322 ui::EventRewriteStatus EventRewriter::RewriteEvent( 322 ui::EventRewriteStatus EventRewriter::RewriteEvent(
323 const ui::Event& event, 323 const ui::Event& event,
324 scoped_ptr<ui::Event>* rewritten_event) { 324 std::unique_ptr<ui::Event>* rewritten_event) {
325 if ((event.type() == ui::ET_KEY_PRESSED) || 325 if ((event.type() == ui::ET_KEY_PRESSED) ||
326 (event.type() == ui::ET_KEY_RELEASED)) { 326 (event.type() == ui::ET_KEY_RELEASED)) {
327 return RewriteKeyEvent(static_cast<const ui::KeyEvent&>(event), 327 return RewriteKeyEvent(static_cast<const ui::KeyEvent&>(event),
328 rewritten_event); 328 rewritten_event);
329 } 329 }
330 if ((event.type() == ui::ET_MOUSE_PRESSED) || 330 if ((event.type() == ui::ET_MOUSE_PRESSED) ||
331 (event.type() == ui::ET_MOUSE_RELEASED)) { 331 (event.type() == ui::ET_MOUSE_RELEASED)) {
332 return RewriteMouseButtonEvent(static_cast<const ui::MouseEvent&>(event), 332 return RewriteMouseButtonEvent(static_cast<const ui::MouseEvent&>(event),
333 rewritten_event); 333 rewritten_event);
334 } 334 }
335 if (event.type() == ui::ET_MOUSEWHEEL) { 335 if (event.type() == ui::ET_MOUSEWHEEL) {
336 return RewriteMouseWheelEvent( 336 return RewriteMouseWheelEvent(
337 static_cast<const ui::MouseWheelEvent&>(event), rewritten_event); 337 static_cast<const ui::MouseWheelEvent&>(event), rewritten_event);
338 } 338 }
339 if ((event.type() == ui::ET_TOUCH_PRESSED) || 339 if ((event.type() == ui::ET_TOUCH_PRESSED) ||
340 (event.type() == ui::ET_TOUCH_RELEASED)) { 340 (event.type() == ui::ET_TOUCH_RELEASED)) {
341 return RewriteTouchEvent(static_cast<const ui::TouchEvent&>(event), 341 return RewriteTouchEvent(static_cast<const ui::TouchEvent&>(event),
342 rewritten_event); 342 rewritten_event);
343 } 343 }
344 if (event.IsScrollEvent()) { 344 if (event.IsScrollEvent()) {
345 return RewriteScrollEvent(static_cast<const ui::ScrollEvent&>(event), 345 return RewriteScrollEvent(static_cast<const ui::ScrollEvent&>(event),
346 rewritten_event); 346 rewritten_event);
347 } 347 }
348 return ui::EVENT_REWRITE_CONTINUE; 348 return ui::EVENT_REWRITE_CONTINUE;
349 } 349 }
350 350
351 ui::EventRewriteStatus EventRewriter::NextDispatchEvent( 351 ui::EventRewriteStatus EventRewriter::NextDispatchEvent(
352 const ui::Event& last_event, 352 const ui::Event& last_event,
353 scoped_ptr<ui::Event>* new_event) { 353 std::unique_ptr<ui::Event>* new_event) {
354 if (sticky_keys_controller_) { 354 if (sticky_keys_controller_) {
355 // In the case of sticky keys, we know what the events obtained here are: 355 // In the case of sticky keys, we know what the events obtained here are:
356 // modifier key releases that match the ones previously discarded. So, we 356 // modifier key releases that match the ones previously discarded. So, we
357 // know that they don't have to be passed through the post-sticky key 357 // know that they don't have to be passed through the post-sticky key
358 // rewriting phases, |RewriteExtendedKeys()| and |RewriteFunctionKeys()|, 358 // rewriting phases, |RewriteExtendedKeys()| and |RewriteFunctionKeys()|,
359 // because those phases do nothing with modifier key releases. 359 // because those phases do nothing with modifier key releases.
360 return sticky_keys_controller_->NextDispatchEvent(new_event); 360 return sticky_keys_controller_->NextDispatchEvent(new_event);
361 } 361 }
362 NOTREACHED(); 362 NOTREACHED();
363 return ui::EVENT_REWRITE_CONTINUE; 363 return ui::EVENT_REWRITE_CONTINUE;
364 } 364 }
365 365
366 void EventRewriter::BuildRewrittenKeyEvent( 366 void EventRewriter::BuildRewrittenKeyEvent(
367 const ui::KeyEvent& key_event, 367 const ui::KeyEvent& key_event,
368 const MutableKeyState& state, 368 const MutableKeyState& state,
369 scoped_ptr<ui::Event>* rewritten_event) { 369 std::unique_ptr<ui::Event>* rewritten_event) {
370 ui::KeyEvent* rewritten_key_event = 370 ui::KeyEvent* rewritten_key_event =
371 new ui::KeyEvent(key_event.type(), state.key_code, state.code, 371 new ui::KeyEvent(key_event.type(), state.key_code, state.code,
372 state.flags, state.key, key_event.time_stamp()); 372 state.flags, state.key, key_event.time_stamp());
373 rewritten_event->reset(rewritten_key_event); 373 rewritten_event->reset(rewritten_key_event);
374 } 374 }
375 375
376 void EventRewriter::DeviceKeyPressedOrReleased(int device_id) { 376 void EventRewriter::DeviceKeyPressedOrReleased(int device_id) {
377 std::map<int, DeviceType>::const_iterator iter = 377 std::map<int, DeviceType>::const_iterator iter =
378 device_id_to_type_.find(device_id); 378 device_id_to_type_.find(device_id);
379 DeviceType type; 379 DeviceType type;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 if (remapped_key) { 477 if (remapped_key) {
478 unmodified_flags &= ~kModifierRemappings[i].flag; 478 unmodified_flags &= ~kModifierRemappings[i].flag;
479 rewritten_flags |= remapped_key->flag; 479 rewritten_flags |= remapped_key->flag;
480 } 480 }
481 } 481 }
482 return rewritten_flags | unmodified_flags; 482 return rewritten_flags | unmodified_flags;
483 } 483 }
484 484
485 ui::EventRewriteStatus EventRewriter::RewriteKeyEvent( 485 ui::EventRewriteStatus EventRewriter::RewriteKeyEvent(
486 const ui::KeyEvent& key_event, 486 const ui::KeyEvent& key_event,
487 scoped_ptr<ui::Event>* rewritten_event) { 487 std::unique_ptr<ui::Event>* rewritten_event) {
488 if (IsExtensionCommandRegistered(key_event.key_code(), key_event.flags())) 488 if (IsExtensionCommandRegistered(key_event.key_code(), key_event.flags()))
489 return ui::EVENT_REWRITE_CONTINUE; 489 return ui::EVENT_REWRITE_CONTINUE;
490 if (key_event.source_device_id() != ui::ED_UNKNOWN_DEVICE) 490 if (key_event.source_device_id() != ui::ED_UNKNOWN_DEVICE)
491 DeviceKeyPressedOrReleased(key_event.source_device_id()); 491 DeviceKeyPressedOrReleased(key_event.source_device_id());
492 492
493 // Drop repeated keys from Hotrod remote. 493 // Drop repeated keys from Hotrod remote.
494 if ((key_event.flags() & ui::EF_IS_REPEAT) && 494 if ((key_event.flags() & ui::EF_IS_REPEAT) &&
495 (key_event.type() == ui::ET_KEY_PRESSED) && IsHotrodRemote() && 495 (key_event.type() == ui::ET_KEY_PRESSED) && IsHotrodRemote() &&
496 key_event.key_code() != ui::VKEY_BACK) { 496 key_event.key_code() != ui::VKEY_BACK) {
497 return ui::EVENT_REWRITE_DISCARD; 497 return ui::EVENT_REWRITE_DISCARD;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 // might be here because key_event changed, in which case we need to 553 // might be here because key_event changed, in which case we need to
554 // return |EVENT_REWRITE_REWRITTEN|. 554 // return |EVENT_REWRITE_REWRITTEN|.
555 if (status == ui::EVENT_REWRITE_CONTINUE) 555 if (status == ui::EVENT_REWRITE_CONTINUE)
556 status = ui::EVENT_REWRITE_REWRITTEN; 556 status = ui::EVENT_REWRITE_REWRITTEN;
557 BuildRewrittenKeyEvent(key_event, state, rewritten_event); 557 BuildRewrittenKeyEvent(key_event, state, rewritten_event);
558 return status; 558 return status;
559 } 559 }
560 560
561 ui::EventRewriteStatus EventRewriter::RewriteMouseButtonEvent( 561 ui::EventRewriteStatus EventRewriter::RewriteMouseButtonEvent(
562 const ui::MouseEvent& mouse_event, 562 const ui::MouseEvent& mouse_event,
563 scoped_ptr<ui::Event>* rewritten_event) { 563 std::unique_ptr<ui::Event>* rewritten_event) {
564 int flags = mouse_event.flags(); 564 int flags = mouse_event.flags();
565 RewriteLocatedEvent(mouse_event, &flags); 565 RewriteLocatedEvent(mouse_event, &flags);
566 ui::EventRewriteStatus status = ui::EVENT_REWRITE_CONTINUE; 566 ui::EventRewriteStatus status = ui::EVENT_REWRITE_CONTINUE;
567 if (sticky_keys_controller_) 567 if (sticky_keys_controller_)
568 status = sticky_keys_controller_->RewriteMouseEvent(mouse_event, &flags); 568 status = sticky_keys_controller_->RewriteMouseEvent(mouse_event, &flags);
569 int changed_button = ui::EF_NONE; 569 int changed_button = ui::EF_NONE;
570 if ((mouse_event.type() == ui::ET_MOUSE_PRESSED) || 570 if ((mouse_event.type() == ui::ET_MOUSE_PRESSED) ||
571 (mouse_event.type() == ui::ET_MOUSE_RELEASED)) { 571 (mouse_event.type() == ui::ET_MOUSE_RELEASED)) {
572 changed_button = RewriteModifierClick(mouse_event, &flags); 572 changed_button = RewriteModifierClick(mouse_event, &flags);
573 } 573 }
(...skipping 13 matching lines...) Expand all
587 rewritten_mouse_event->set_changed_button_flags(changed_button); 587 rewritten_mouse_event->set_changed_button_flags(changed_button);
588 #if defined(USE_X11) 588 #if defined(USE_X11)
589 ui::UpdateX11EventForChangedButtonFlags(rewritten_mouse_event); 589 ui::UpdateX11EventForChangedButtonFlags(rewritten_mouse_event);
590 #endif 590 #endif
591 } 591 }
592 return status; 592 return status;
593 } 593 }
594 594
595 ui::EventRewriteStatus EventRewriter::RewriteMouseWheelEvent( 595 ui::EventRewriteStatus EventRewriter::RewriteMouseWheelEvent(
596 const ui::MouseWheelEvent& wheel_event, 596 const ui::MouseWheelEvent& wheel_event,
597 scoped_ptr<ui::Event>* rewritten_event) { 597 std::unique_ptr<ui::Event>* rewritten_event) {
598 if (!sticky_keys_controller_) 598 if (!sticky_keys_controller_)
599 return ui::EVENT_REWRITE_CONTINUE; 599 return ui::EVENT_REWRITE_CONTINUE;
600 int flags = wheel_event.flags(); 600 int flags = wheel_event.flags();
601 ui::EventRewriteStatus status = 601 ui::EventRewriteStatus status =
602 sticky_keys_controller_->RewriteMouseEvent(wheel_event, &flags); 602 sticky_keys_controller_->RewriteMouseEvent(wheel_event, &flags);
603 if ((wheel_event.flags() == flags) && 603 if ((wheel_event.flags() == flags) &&
604 (status == ui::EVENT_REWRITE_CONTINUE)) { 604 (status == ui::EVENT_REWRITE_CONTINUE)) {
605 return ui::EVENT_REWRITE_CONTINUE; 605 return ui::EVENT_REWRITE_CONTINUE;
606 } 606 }
607 if (status == ui::EVENT_REWRITE_CONTINUE) 607 if (status == ui::EVENT_REWRITE_CONTINUE)
608 status = ui::EVENT_REWRITE_REWRITTEN; 608 status = ui::EVENT_REWRITE_REWRITTEN;
609 ui::MouseWheelEvent* rewritten_wheel_event = 609 ui::MouseWheelEvent* rewritten_wheel_event =
610 new ui::MouseWheelEvent(wheel_event); 610 new ui::MouseWheelEvent(wheel_event);
611 rewritten_event->reset(rewritten_wheel_event); 611 rewritten_event->reset(rewritten_wheel_event);
612 rewritten_wheel_event->set_flags(flags); 612 rewritten_wheel_event->set_flags(flags);
613 #if defined(USE_X11) 613 #if defined(USE_X11)
614 ui::UpdateX11EventForFlags(rewritten_wheel_event); 614 ui::UpdateX11EventForFlags(rewritten_wheel_event);
615 #endif 615 #endif
616 return status; 616 return status;
617 } 617 }
618 618
619 ui::EventRewriteStatus EventRewriter::RewriteTouchEvent( 619 ui::EventRewriteStatus EventRewriter::RewriteTouchEvent(
620 const ui::TouchEvent& touch_event, 620 const ui::TouchEvent& touch_event,
621 scoped_ptr<ui::Event>* rewritten_event) { 621 std::unique_ptr<ui::Event>* rewritten_event) {
622 int flags = touch_event.flags(); 622 int flags = touch_event.flags();
623 RewriteLocatedEvent(touch_event, &flags); 623 RewriteLocatedEvent(touch_event, &flags);
624 if (touch_event.flags() == flags) 624 if (touch_event.flags() == flags)
625 return ui::EVENT_REWRITE_CONTINUE; 625 return ui::EVENT_REWRITE_CONTINUE;
626 ui::TouchEvent* rewritten_touch_event = new ui::TouchEvent(touch_event); 626 ui::TouchEvent* rewritten_touch_event = new ui::TouchEvent(touch_event);
627 rewritten_event->reset(rewritten_touch_event); 627 rewritten_event->reset(rewritten_touch_event);
628 rewritten_touch_event->set_flags(flags); 628 rewritten_touch_event->set_flags(flags);
629 #if defined(USE_X11) 629 #if defined(USE_X11)
630 ui::UpdateX11EventForFlags(rewritten_touch_event); 630 ui::UpdateX11EventForFlags(rewritten_touch_event);
631 #endif 631 #endif
632 return ui::EVENT_REWRITE_REWRITTEN; 632 return ui::EVENT_REWRITE_REWRITTEN;
633 } 633 }
634 634
635 ui::EventRewriteStatus EventRewriter::RewriteScrollEvent( 635 ui::EventRewriteStatus EventRewriter::RewriteScrollEvent(
636 const ui::ScrollEvent& scroll_event, 636 const ui::ScrollEvent& scroll_event,
637 scoped_ptr<ui::Event>* rewritten_event) { 637 std::unique_ptr<ui::Event>* rewritten_event) {
638 int flags = scroll_event.flags(); 638 int flags = scroll_event.flags();
639 ui::EventRewriteStatus status = ui::EVENT_REWRITE_CONTINUE; 639 ui::EventRewriteStatus status = ui::EVENT_REWRITE_CONTINUE;
640 if (sticky_keys_controller_) 640 if (sticky_keys_controller_)
641 status = sticky_keys_controller_->RewriteScrollEvent(scroll_event, &flags); 641 status = sticky_keys_controller_->RewriteScrollEvent(scroll_event, &flags);
642 if (status == ui::EVENT_REWRITE_CONTINUE) 642 if (status == ui::EVENT_REWRITE_CONTINUE)
643 return status; 643 return status;
644 ui::ScrollEvent* rewritten_scroll_event = new ui::ScrollEvent(scroll_event); 644 ui::ScrollEvent* rewritten_scroll_event = new ui::ScrollEvent(scroll_event);
645 rewritten_event->reset(rewritten_scroll_event); 645 rewritten_event->reset(rewritten_scroll_event);
646 rewritten_scroll_event->set_flags(flags); 646 rewritten_scroll_event->set_flags(flags);
647 #if defined(USE_X11) 647 #if defined(USE_X11)
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 for (const auto& keyboard : keyboards) { 1145 for (const auto& keyboard : keyboards) {
1146 if (keyboard.id == device_id) { 1146 if (keyboard.id == device_id) {
1147 return KeyboardDeviceAddedInternal( 1147 return KeyboardDeviceAddedInternal(
1148 keyboard.id, keyboard.name, keyboard.vendor_id, keyboard.product_id); 1148 keyboard.id, keyboard.name, keyboard.vendor_id, keyboard.product_id);
1149 } 1149 }
1150 } 1150 }
1151 return kDeviceUnknown; 1151 return kDeviceUnknown;
1152 } 1152 }
1153 1153
1154 } // namespace chromeos 1154 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/events/event_rewriter.h ('k') | chrome/browser/chromeos/events/event_rewriter_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698