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

Side by Side Diff: content/browser/renderer_host/input/legacy_touch_event_queue.cc

Issue 2867693004: Snapshot of all changes to get jumbo in blink and content.
Patch Set: Exclude certain files from jumbo because of a Windows problem Created 3 years, 3 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/renderer_host/input/legacy_touch_event_queue.h" 5 #include "content/browser/renderer_host/input/legacy_touch_event_queue.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 10 matching lines...) Expand all
21 using blink::WebTouchPoint; 21 using blink::WebTouchPoint;
22 using ui::LatencyInfo; 22 using ui::LatencyInfo;
23 23
24 namespace content { 24 namespace content {
25 namespace { 25 namespace {
26 26
27 // Time interval at which touchmove events will be forwarded to the client while 27 // Time interval at which touchmove events will be forwarded to the client while
28 // scrolling is active and possible. 28 // scrolling is active and possible.
29 const double kAsyncTouchMoveIntervalSec = .2; 29 const double kAsyncTouchMoveIntervalSec = .2;
30 30
31 // FIXME: Identical HasPointChanged in passthrough_touch_event_queue()
31 // Compare all properties of touch points to determine the state. 32 // Compare all properties of touch points to determine the state.
32 bool HasPointChanged(const WebTouchPoint& point_1, 33 bool HasPointChangedLegacy(const WebTouchPoint& point_1,
33 const WebTouchPoint& point_2) { 34 const WebTouchPoint& point_2) {
34 DCHECK_EQ(point_1.id, point_2.id); 35 DCHECK_EQ(point_1.id, point_2.id);
35 if (point_1.PositionInScreen() != point_2.PositionInScreen() || 36 if (point_1.PositionInScreen() != point_2.PositionInScreen() ||
36 point_1.PositionInWidget() != point_2.PositionInWidget() || 37 point_1.PositionInWidget() != point_2.PositionInWidget() ||
37 point_1.radius_x != point_2.radius_x || 38 point_1.radius_x != point_2.radius_x ||
38 point_1.radius_y != point_2.radius_y || 39 point_1.radius_y != point_2.radius_y ||
39 point_1.rotation_angle != point_2.rotation_angle || 40 point_1.rotation_angle != point_2.rotation_angle ||
40 point_1.force != point_2.force || point_1.tilt_x != point_2.tilt_x || 41 point_1.force != point_2.force || point_1.tilt_x != point_2.tilt_x ||
41 point_1.tilt_y != point_2.tilt_y) { 42 point_1.tilt_y != point_2.tilt_y) {
42 return true; 43 return true;
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 if (last_sent_touchevent_->GetType() == WebInputEvent::kTouchStart) 520 if (last_sent_touchevent_->GetType() == WebInputEvent::kTouchStart)
520 touch->event.touch_start_or_first_touch_move = true; 521 touch->event.touch_start_or_first_touch_move = true;
521 for (unsigned int i = 0; i < last_sent_touchevent_->touches_length; ++i) { 522 for (unsigned int i = 0; i < last_sent_touchevent_->touches_length; ++i) {
522 const WebTouchPoint& last_touch_point = last_sent_touchevent_->touches[i]; 523 const WebTouchPoint& last_touch_point = last_sent_touchevent_->touches[i];
523 // Touches with same id may not have same index in Touches array. 524 // Touches with same id may not have same index in Touches array.
524 for (unsigned int j = 0; j < touch->event.touches_length; ++j) { 525 for (unsigned int j = 0; j < touch->event.touches_length; ++j) {
525 const WebTouchPoint& current_touchmove_point = touch->event.touches[j]; 526 const WebTouchPoint& current_touchmove_point = touch->event.touches[j];
526 if (current_touchmove_point.id != last_touch_point.id) 527 if (current_touchmove_point.id != last_touch_point.id)
527 continue; 528 continue;
528 529
529 if (!HasPointChanged(last_touch_point, current_touchmove_point)) 530 if (!HasPointChangedLegacy(last_touch_point, current_touchmove_point))
530 touch->event.touches[j].state = WebTouchPoint::kStateStationary; 531 touch->event.touches[j].state = WebTouchPoint::kStateStationary;
531 532
532 break; 533 break;
533 } 534 }
534 } 535 }
535 } 536 }
536 537
537 if (touch->event.GetType() != WebInputEvent::kTouchScrollStarted) { 538 if (touch->event.GetType() != WebInputEvent::kTouchScrollStarted) {
538 if (last_sent_touchevent_) 539 if (last_sent_touchevent_)
539 *last_sent_touchevent_ = touch->event; 540 *last_sent_touchevent_ = touch->event;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 for (size_t j = 0; j < last_sent_touchevent_->touches_length; ++j) { 616 for (size_t j = 0; j < last_sent_touchevent_->touches_length; ++j) {
616 if (point.id != last_sent_touchevent_->touches[j].id) 617 if (point.id != last_sent_touchevent_->touches[j].id)
617 continue; 618 continue;
618 619
619 if (event.GetType() != WebInputEvent::kTouchMove) 620 if (event.GetType() != WebInputEvent::kTouchMove)
620 return FORWARD_TO_RENDERER; 621 return FORWARD_TO_RENDERER;
621 622
622 // All pointers in TouchMove events may have state as StateMoved, 623 // All pointers in TouchMove events may have state as StateMoved,
623 // even though none of the pointers have not changed in real. 624 // even though none of the pointers have not changed in real.
624 // Forward these events when at least one pointer has changed. 625 // Forward these events when at least one pointer has changed.
625 if (HasPointChanged(last_sent_touchevent_->touches[j], point)) 626 if (HasPointChangedLegacy(last_sent_touchevent_->touches[j], point))
626 return FORWARD_TO_RENDERER; 627 return FORWARD_TO_RENDERER;
627 628
628 // This is a TouchMove event for which we have yet to find a 629 // This is a TouchMove event for which we have yet to find a
629 // non-stationary pointer. Continue checking the next pointers 630 // non-stationary pointer. Continue checking the next pointers
630 // in the |event|. 631 // in the |event|.
631 break; 632 break;
632 } 633 }
633 } 634 }
634 } 635 }
635 636
636 return ACK_WITH_NO_CONSUMER_EXISTS; 637 return ACK_WITH_NO_CONSUMER_EXISTS;
637 } 638 }
638 639
639 void LegacyTouchEventQueue::UpdateTouchConsumerStates( 640 void LegacyTouchEventQueue::UpdateTouchConsumerStates(
640 const WebTouchEvent& event, 641 const WebTouchEvent& event,
641 InputEventAckState ack_result) { 642 InputEventAckState ack_result) {
642 if (event.GetType() == WebInputEvent::kTouchStart) { 643 if (event.GetType() == WebInputEvent::kTouchStart) {
643 if (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED) 644 if (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED)
644 send_touch_events_async_ = false; 645 send_touch_events_async_ = false;
645 has_handler_for_current_sequence_ |= 646 has_handler_for_current_sequence_ |=
646 ack_result != INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS; 647 ack_result != INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS;
647 } else if (WebTouchEventTraits::IsTouchSequenceEnd(event)) { 648 } else if (WebTouchEventTraits::IsTouchSequenceEnd(event)) {
648 has_handler_for_current_sequence_ = false; 649 has_handler_for_current_sequence_ = false;
649 } 650 }
650 } 651 }
651 652
652 } // namespace content 653 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698