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

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

Issue 1888163003: Articulate the cancel behavior in the WebTouchEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 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/input_router_impl.h" 5 #include "content/browser/renderer_host/input/input_router_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 } 363 }
364 364
365 void InputRouterImpl::OfferToHandlers(const WebInputEvent& input_event, 365 void InputRouterImpl::OfferToHandlers(const WebInputEvent& input_event,
366 const ui::LatencyInfo& latency_info) { 366 const ui::LatencyInfo& latency_info) {
367 output_stream_validator_.Validate(input_event); 367 output_stream_validator_.Validate(input_event);
368 368
369 if (OfferToClient(input_event, latency_info)) 369 if (OfferToClient(input_event, latency_info))
370 return; 370 return;
371 371
372 // Touch events should always indicate in the event whether they are 372 // Touch events should always indicate in the event whether they are
373 // cancelable (respect ACK disposition) or not except touchmove. 373 // cancelable (respect ACK disposition) or not except touchmove.
tdresser 2016/04/18 15:12:02 Can we explain the touchmove case a bit more here?
dtapuska 2016/04/18 19:19:33 Done; moved comments into the web_input_event_trai
374 bool should_block = WebInputEventTraits::ShouldBlockEventStream(input_event); 374 bool should_block = WebInputEventTraits::ShouldBlockEventStream(input_event);
375 375
376 OfferToRenderer(input_event, latency_info, 376 OfferToRenderer(input_event, latency_info,
377 should_block 377 should_block
378 ? InputEventDispatchType::DISPATCH_TYPE_BLOCKING 378 ? InputEventDispatchType::DISPATCH_TYPE_BLOCKING
379 : InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING); 379 : InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING);
380 380
381 if (WebInputEvent::isTouchEventType(input_event.type) &&
382 input_event.type != WebInputEvent::TouchMove) {
383 const WebTouchEvent& touch = static_cast<const WebTouchEvent&>(input_event);
384 DCHECK_EQ(should_block, touch.cancelable);
385 }
386
387 // Generate a synthetic ack if the event was sent so it doesn't block. 381 // Generate a synthetic ack if the event was sent so it doesn't block.
388 if (!should_block) { 382 if (!should_block) {
389 ProcessInputEventAck( 383 ProcessInputEventAck(
390 input_event.type, INPUT_EVENT_ACK_STATE_IGNORED, latency_info, 384 input_event.type, INPUT_EVENT_ACK_STATE_IGNORED, latency_info,
391 WebInputEventTraits::GetUniqueTouchEventId(input_event), 385 WebInputEventTraits::GetUniqueTouchEventId(input_event),
392 IGNORING_DISPOSITION); 386 IGNORING_DISPOSITION);
393 } 387 }
394 } 388 }
395 389
396 bool InputRouterImpl::OfferToClient(const WebInputEvent& input_event, 390 bool InputRouterImpl::OfferToClient(const WebInputEvent& input_event,
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 637
644 flush_requested_ = false; 638 flush_requested_ = false;
645 client_->DidFlush(); 639 client_->DidFlush();
646 } 640 }
647 641
648 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) { 642 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) {
649 frame_tree_node_id_ = frameTreeNodeId; 643 frame_tree_node_id_ = frameTreeNodeId;
650 } 644 }
651 645
652 } // namespace content 646 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698