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

Side by Side Diff: Source/core/page/EventHandler.cpp

Issue 216523002: Oilpan: Replace most of RefPtrs for Event objects with oilpan's transition types (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies)
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 1731 matching lines...) Expand 10 before | Expand all | Expand 10 after
1742 1742
1743 1743
1744 bool EventHandler::dispatchDragEvent(const AtomicString& eventType, Node* dragTa rget, const PlatformMouseEvent& event, Clipboard* clipboard) 1744 bool EventHandler::dispatchDragEvent(const AtomicString& eventType, Node* dragTa rget, const PlatformMouseEvent& event, Clipboard* clipboard)
1745 { 1745 {
1746 FrameView* view = m_frame->view(); 1746 FrameView* view = m_frame->view();
1747 1747
1748 // FIXME: We might want to dispatch a dragleave even if the view is gone. 1748 // FIXME: We might want to dispatch a dragleave even if the view is gone.
1749 if (!view) 1749 if (!view)
1750 return false; 1750 return false;
1751 1751
1752 RefPtr<MouseEvent> me = MouseEvent::create(eventType, 1752 RefPtrWillBeRawPtr<MouseEvent> me = MouseEvent::create(eventType,
1753 true, true, m_frame->document()->domWindow(), 1753 true, true, m_frame->document()->domWindow(),
1754 0, event.globalPosition().x(), event.globalPosition().y(), event.positio n().x(), event.position().y(), 1754 0, event.globalPosition().x(), event.globalPosition().y(), event.positio n().x(), event.position().y(),
1755 event.movementDelta().x(), event.movementDelta().y(), 1755 event.movementDelta().x(), event.movementDelta().y(),
1756 event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), 1756 event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(),
1757 0, nullptr, clipboard); 1757 0, nullptr, clipboard);
1758 1758
1759 dragTarget->dispatchEvent(me.get(), IGNORE_EXCEPTION); 1759 dragTarget->dispatchEvent(me.get(), IGNORE_EXCEPTION);
1760 return me->defaultPrevented(); 1760 return me->defaultPrevented();
1761 } 1761 }
1762 1762
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after
3121 if (initialKeyEvent.type() == PlatformEvent::KeyDown) 3121 if (initialKeyEvent.type() == PlatformEvent::KeyDown)
3122 matchedAnAccessKey = handleAccessKey(initialKeyEvent); 3122 matchedAnAccessKey = handleAccessKey(initialKeyEvent);
3123 3123
3124 // FIXME: it would be fair to let an input method handle KeyUp events before DOM dispatch. 3124 // FIXME: it would be fair to let an input method handle KeyUp events before DOM dispatch.
3125 if (initialKeyEvent.type() == PlatformEvent::KeyUp || initialKeyEvent.type() == PlatformEvent::Char) 3125 if (initialKeyEvent.type() == PlatformEvent::KeyUp || initialKeyEvent.type() == PlatformEvent::Char)
3126 return !node->dispatchKeyEvent(initialKeyEvent); 3126 return !node->dispatchKeyEvent(initialKeyEvent);
3127 3127
3128 PlatformKeyboardEvent keyDownEvent = initialKeyEvent; 3128 PlatformKeyboardEvent keyDownEvent = initialKeyEvent;
3129 if (keyDownEvent.type() != PlatformEvent::RawKeyDown) 3129 if (keyDownEvent.type() != PlatformEvent::RawKeyDown)
3130 keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown); 3130 keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown);
3131 RefPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame- >document()->domWindow()); 3131 RefPtrWillBeRawPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEve nt, m_frame->document()->domWindow());
3132 if (matchedAnAccessKey) 3132 if (matchedAnAccessKey)
3133 keydown->setDefaultPrevented(true); 3133 keydown->setDefaultPrevented(true);
3134 keydown->setTarget(node); 3134 keydown->setTarget(node);
3135 3135
3136 if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) { 3136 if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) {
3137 node->dispatchEvent(keydown, IGNORE_EXCEPTION); 3137 node->dispatchEvent(keydown, IGNORE_EXCEPTION);
3138 // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame. 3138 // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame.
3139 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page() ->focusController().focusedOrMainFrame(); 3139 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page() ->focusController().focusedOrMainFrame();
3140 return keydown->defaultHandled() || keydown->defaultPrevented() || chang edFocusedFrame; 3140 return keydown->defaultHandled() || keydown->defaultPrevented() || chang edFocusedFrame;
3141 } 3141 }
3142 3142
3143 node->dispatchEvent(keydown, IGNORE_EXCEPTION); 3143 node->dispatchEvent(keydown, IGNORE_EXCEPTION);
3144 // If frame changed as a result of keydown dispatch, then return early to av oid sending a subsequent keypress message to the new frame. 3144 // If frame changed as a result of keydown dispatch, then return early to av oid sending a subsequent keypress message to the new frame.
3145 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->fo cusController().focusedOrMainFrame(); 3145 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->fo cusController().focusedOrMainFrame();
3146 bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented( ) || changedFocusedFrame; 3146 bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented( ) || changedFocusedFrame;
3147 if (keydownResult) 3147 if (keydownResult)
3148 return keydownResult; 3148 return keydownResult;
3149 3149
3150 // Focus may have changed during keydown handling, so refetch node. 3150 // Focus may have changed during keydown handling, so refetch node.
3151 // But if we are dispatching a fake backward compatibility keypress, then we pretend that the keypress happened on the original node. 3151 // But if we are dispatching a fake backward compatibility keypress, then we pretend that the keypress happened on the original node.
3152 node = eventTargetNodeForDocument(m_frame->document()); 3152 node = eventTargetNodeForDocument(m_frame->document());
3153 if (!node) 3153 if (!node)
3154 return false; 3154 return false;
3155 3155
3156 PlatformKeyboardEvent keyPressEvent = initialKeyEvent; 3156 PlatformKeyboardEvent keyPressEvent = initialKeyEvent;
3157 keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char); 3157 keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char);
3158 if (keyPressEvent.text().isEmpty()) 3158 if (keyPressEvent.text().isEmpty())
3159 return keydownResult; 3159 return keydownResult;
3160 RefPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_fram e->document()->domWindow()); 3160 RefPtrWillBeRawPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressE vent, m_frame->document()->domWindow());
3161 keypress->setTarget(node); 3161 keypress->setTarget(node);
3162 if (keydownResult) 3162 if (keydownResult)
3163 keypress->setDefaultPrevented(true); 3163 keypress->setDefaultPrevented(true);
3164 node->dispatchEvent(keypress, IGNORE_EXCEPTION); 3164 node->dispatchEvent(keypress, IGNORE_EXCEPTION);
3165 3165
3166 return keydownResult || keypress->defaultPrevented() || keypress->defaultHan dled(); 3166 return keydownResult || keypress->defaultPrevented() || keypress->defaultHan dled();
3167 } 3167 }
3168 3168
3169 static FocusType focusDirectionForKey(const AtomicString& keyIdentifier) 3169 static FocusType focusDirectionForKey(const AtomicString& keyIdentifier)
3170 { 3170 {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
3402 return false; 3402 return false;
3403 3403
3404 EventTarget* target; 3404 EventTarget* target;
3405 if (underlyingEvent) 3405 if (underlyingEvent)
3406 target = underlyingEvent->target(); 3406 target = underlyingEvent->target();
3407 else 3407 else
3408 target = eventTargetNodeForDocument(m_frame->document()); 3408 target = eventTargetNodeForDocument(m_frame->document());
3409 if (!target) 3409 if (!target)
3410 return false; 3410 return false;
3411 3411
3412 RefPtr<TextEvent> event = TextEvent::create(m_frame->domWindow(), text, inpu tType); 3412 RefPtrWillBeRawPtr<TextEvent> event = TextEvent::create(m_frame->domWindow() , text, inputType);
3413 event->setUnderlyingEvent(underlyingEvent); 3413 event->setUnderlyingEvent(underlyingEvent);
3414 3414
3415 target->dispatchEvent(event, IGNORE_EXCEPTION); 3415 target->dispatchEvent(event, IGNORE_EXCEPTION);
3416 return event->defaultHandled(); 3416 return event->defaultHandled();
3417 } 3417 }
3418 3418
3419 void EventHandler::defaultTextInputEventHandler(TextEvent* event) 3419 void EventHandler::defaultTextInputEventHandler(TextEvent* event)
3420 { 3420 {
3421 if (m_frame->editor().handleTextEvent(event)) 3421 if (m_frame->editor().handleTextEvent(event))
3422 event->setDefaultHandled(); 3422 event->setDefaultHandled();
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
3777 bool isTouchCancelEvent = (state == PlatformTouchPoint::TouchCancelled); 3777 bool isTouchCancelEvent = (state == PlatformTouchPoint::TouchCancelled);
3778 RefPtrWillBeRawPtr<TouchList>& effectiveTouches(isTouchCancelEvent ? emp tyList : touches); 3778 RefPtrWillBeRawPtr<TouchList>& effectiveTouches(isTouchCancelEvent ? emp tyList : touches);
3779 const AtomicString& stateName(eventNameForTouchPointState(static_cast<Pl atformTouchPoint::State>(state))); 3779 const AtomicString& stateName(eventNameForTouchPointState(static_cast<Pl atformTouchPoint::State>(state)));
3780 const EventTargetSet& targetsForState = changedTouches[state].m_targets; 3780 const EventTargetSet& targetsForState = changedTouches[state].m_targets;
3781 3781
3782 for (EventTargetSet::const_iterator it = targetsForState.begin(); it != targetsForState.end(); ++it) { 3782 for (EventTargetSet::const_iterator it = targetsForState.begin(); it != targetsForState.end(); ++it) {
3783 EventTarget* touchEventTarget = it->get(); 3783 EventTarget* touchEventTarget = it->get();
3784 RefPtrWillBeRawPtr<TouchList> targetTouches(isTouchCancelEvent ? emp tyList.get() : touchesByTarget.get(touchEventTarget)); 3784 RefPtrWillBeRawPtr<TouchList> targetTouches(isTouchCancelEvent ? emp tyList.get() : touchesByTarget.get(touchEventTarget));
3785 ASSERT(targetTouches); 3785 ASSERT(targetTouches);
3786 3786
3787 RefPtr<TouchEvent> touchEvent = 3787 RefPtrWillBeRawPtr<TouchEvent> touchEvent =
3788 TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(), 3788 TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(),
3789 stateName, touchEventTarget->toNode()->document().domWindow( ), 3789 stateName, touchEventTarget->toNode()->document().domWindow( ),
3790 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey( ), event.metaKey()); 3790 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey( ), event.metaKey());
3791 touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get()); 3791 touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get());
3792 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->defaultHandled(); 3792 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->defaultHandled();
3793 } 3793 }
3794 } 3794 }
3795 3795
3796 return swallowedEvent; 3796 return swallowedEvent;
3797 } 3797 }
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
4042 unsigned EventHandler::accessKeyModifiers() 4042 unsigned EventHandler::accessKeyModifiers()
4043 { 4043 {
4044 #if OS(MACOSX) 4044 #if OS(MACOSX)
4045 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; 4045 return PlatformEvent::CtrlKey | PlatformEvent::AltKey;
4046 #else 4046 #else
4047 return PlatformEvent::AltKey; 4047 return PlatformEvent::AltKey;
4048 #endif 4048 #endif
4049 } 4049 }
4050 4050
4051 } // namespace WebCore 4051 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698