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

Side by Side Diff: Source/core/events/TouchEvent.cpp

Issue 273503004: Add console warning for canceling uncancelable TouchEvent (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Tweak style Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/events/TouchEvent.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2008, The Android Open Source Project 2 * Copyright 2008, The Android Open Source Project
3 * Copyright (C) 2012 Research In Motion Limited. All rights reserved. 3 * Copyright (C) 2012 Research In Motion Limited. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright 10 * * Redistributions in binary form must reproduce the above copyright
(...skipping 11 matching lines...) Expand all
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */ 25 */
26 26
27 #include "config.h" 27 #include "config.h"
28 28
29 #include "core/events/TouchEvent.h" 29 #include "core/events/TouchEvent.h"
30 30
31 #include "core/events/EventDispatcher.h" 31 #include "core/events/EventDispatcher.h"
32 #include "core/frame/FrameConsole.h"
33 #include "core/frame/LocalFrame.h"
32 34
33 namespace WebCore { 35 namespace WebCore {
34 36
35 TouchEvent::TouchEvent() 37 TouchEvent::TouchEvent()
36 { 38 {
37 ScriptWrappable::init(this); 39 ScriptWrappable::init(this);
38 } 40 }
39 41
40 TouchEvent::TouchEvent(TouchList* touches, TouchList* targetTouches, 42 TouchEvent::TouchEvent(TouchList* touches, TouchList* targetTouches,
41 TouchList* changedTouches, const AtomicString& type, 43 TouchList* changedTouches, const AtomicString& type,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 const AtomicString& TouchEvent::interfaceName() const 86 const AtomicString& TouchEvent::interfaceName() const
85 { 87 {
86 return EventNames::TouchEvent; 88 return EventNames::TouchEvent;
87 } 89 }
88 90
89 bool TouchEvent::isTouchEvent() const 91 bool TouchEvent::isTouchEvent() const
90 { 92 {
91 return true; 93 return true;
92 } 94 }
93 95
96 void TouchEvent::preventDefault()
97 {
98 MouseRelatedEvent::preventDefault();
99
100 // A common developer error is to wait too long before attempting to stop
101 // scrolling by consuming a touchmove event. Generate a warning if this
102 // event is uncancelable.
103 if (!cancelable() && view() && view()->frame()) {
104 view()->frame()->console().addMessage(JSMessageSource, WarningMessageLev el,
105 "Ignored attempt to cancel a " + type() + " event with cancelable=fa lse, for example because scrolling is in progress and cannot be interrupted.");
106 }
107 }
94 void TouchEvent::trace(Visitor* visitor) 108 void TouchEvent::trace(Visitor* visitor)
95 { 109 {
96 visitor->trace(m_touches); 110 visitor->trace(m_touches);
97 visitor->trace(m_targetTouches); 111 visitor->trace(m_targetTouches);
98 visitor->trace(m_changedTouches); 112 visitor->trace(m_changedTouches);
99 MouseRelatedEvent::trace(visitor); 113 MouseRelatedEvent::trace(visitor);
100 } 114 }
101 115
102 PassRefPtr<TouchEventDispatchMediator> TouchEventDispatchMediator::create(PassRe fPtrWillBeRawPtr<TouchEvent> touchEvent) 116 PassRefPtr<TouchEventDispatchMediator> TouchEventDispatchMediator::create(PassRe fPtrWillBeRawPtr<TouchEvent> touchEvent)
103 { 117 {
(...skipping 10 matching lines...) Expand all
114 return toTouchEvent(EventDispatchMediator::event()); 128 return toTouchEvent(EventDispatchMediator::event());
115 } 129 }
116 130
117 bool TouchEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) cons t 131 bool TouchEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) cons t
118 { 132 {
119 event()->eventPath().adjustForTouchEvent(dispatcher->node(), *event()); 133 event()->eventPath().adjustForTouchEvent(dispatcher->node(), *event());
120 return dispatcher->dispatch(); 134 return dispatcher->dispatch();
121 } 135 }
122 136
123 } // namespace WebCore 137 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/events/TouchEvent.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698