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

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, 9 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 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
3117 if (initialKeyEvent.type() == PlatformEvent::KeyDown) 3117 if (initialKeyEvent.type() == PlatformEvent::KeyDown)
3118 matchedAnAccessKey = handleAccessKey(initialKeyEvent); 3118 matchedAnAccessKey = handleAccessKey(initialKeyEvent);
3119 3119
3120 // FIXME: it would be fair to let an input method handle KeyUp events before DOM dispatch. 3120 // FIXME: it would be fair to let an input method handle KeyUp events before DOM dispatch.
3121 if (initialKeyEvent.type() == PlatformEvent::KeyUp || initialKeyEvent.type() == PlatformEvent::Char) 3121 if (initialKeyEvent.type() == PlatformEvent::KeyUp || initialKeyEvent.type() == PlatformEvent::Char)
3122 return !node->dispatchKeyEvent(initialKeyEvent); 3122 return !node->dispatchKeyEvent(initialKeyEvent);
3123 3123
3124 PlatformKeyboardEvent keyDownEvent = initialKeyEvent; 3124 PlatformKeyboardEvent keyDownEvent = initialKeyEvent;
3125 if (keyDownEvent.type() != PlatformEvent::RawKeyDown) 3125 if (keyDownEvent.type() != PlatformEvent::RawKeyDown)
3126 keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown); 3126 keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown);
3127 RefPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame- >document()->domWindow()); 3127 RefPtrWillBeRawPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEve nt, m_frame->document()->domWindow());
3128 if (matchedAnAccessKey) 3128 if (matchedAnAccessKey)
3129 keydown->setDefaultPrevented(true); 3129 keydown->setDefaultPrevented(true);
3130 keydown->setTarget(node); 3130 keydown->setTarget(node);
3131 3131
3132 if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) { 3132 if (initialKeyEvent.type() == PlatformEvent::RawKeyDown) {
3133 node->dispatchEvent(keydown, IGNORE_EXCEPTION); 3133 node->dispatchEvent(keydown, IGNORE_EXCEPTION);
3134 // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame. 3134 // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame.
3135 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page() ->focusController().focusedOrMainFrame(); 3135 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page() ->focusController().focusedOrMainFrame();
3136 return keydown->defaultHandled() || keydown->defaultPrevented() || chang edFocusedFrame; 3136 return keydown->defaultHandled() || keydown->defaultPrevented() || chang edFocusedFrame;
3137 } 3137 }
3138 3138
3139 node->dispatchEvent(keydown, IGNORE_EXCEPTION); 3139 node->dispatchEvent(keydown, IGNORE_EXCEPTION);
3140 // If frame changed as a result of keydown dispatch, then return early to av oid sending a subsequent keypress message to the new frame. 3140 // If frame changed as a result of keydown dispatch, then return early to av oid sending a subsequent keypress message to the new frame.
3141 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->fo cusController().focusedOrMainFrame(); 3141 bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->fo cusController().focusedOrMainFrame();
3142 bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented( ) || changedFocusedFrame; 3142 bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented( ) || changedFocusedFrame;
3143 if (keydownResult) 3143 if (keydownResult)
3144 return keydownResult; 3144 return keydownResult;
3145 3145
3146 // Focus may have changed during keydown handling, so refetch node. 3146 // Focus may have changed during keydown handling, so refetch node.
3147 // But if we are dispatching a fake backward compatibility keypress, then we pretend that the keypress happened on the original node. 3147 // But if we are dispatching a fake backward compatibility keypress, then we pretend that the keypress happened on the original node.
3148 node = eventTargetNodeForDocument(m_frame->document()); 3148 node = eventTargetNodeForDocument(m_frame->document());
3149 if (!node) 3149 if (!node)
3150 return false; 3150 return false;
3151 3151
3152 PlatformKeyboardEvent keyPressEvent = initialKeyEvent; 3152 PlatformKeyboardEvent keyPressEvent = initialKeyEvent;
3153 keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char); 3153 keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char);
3154 if (keyPressEvent.text().isEmpty()) 3154 if (keyPressEvent.text().isEmpty())
3155 return keydownResult; 3155 return keydownResult;
3156 RefPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_fram e->document()->domWindow()); 3156 RefPtrWillBeRawPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressE vent, m_frame->document()->domWindow());
3157 keypress->setTarget(node); 3157 keypress->setTarget(node);
3158 if (keydownResult) 3158 if (keydownResult)
3159 keypress->setDefaultPrevented(true); 3159 keypress->setDefaultPrevented(true);
3160 node->dispatchEvent(keypress, IGNORE_EXCEPTION); 3160 node->dispatchEvent(keypress, IGNORE_EXCEPTION);
3161 3161
3162 return keydownResult || keypress->defaultPrevented() || keypress->defaultHan dled(); 3162 return keydownResult || keypress->defaultPrevented() || keypress->defaultHan dled();
3163 } 3163 }
3164 3164
3165 static FocusType focusDirectionForKey(const AtomicString& keyIdentifier) 3165 static FocusType focusDirectionForKey(const AtomicString& keyIdentifier)
3166 { 3166 {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
3398 return false; 3398 return false;
3399 3399
3400 EventTarget* target; 3400 EventTarget* target;
3401 if (underlyingEvent) 3401 if (underlyingEvent)
3402 target = underlyingEvent->target(); 3402 target = underlyingEvent->target();
3403 else 3403 else
3404 target = eventTargetNodeForDocument(m_frame->document()); 3404 target = eventTargetNodeForDocument(m_frame->document());
3405 if (!target) 3405 if (!target)
3406 return false; 3406 return false;
3407 3407
3408 RefPtr<TextEvent> event = TextEvent::create(m_frame->domWindow(), text, inpu tType); 3408 RefPtrWillBeRawPtr<TextEvent> event = TextEvent::create(m_frame->domWindow() , text, inputType);
3409 event->setUnderlyingEvent(underlyingEvent); 3409 event->setUnderlyingEvent(underlyingEvent);
3410 3410
3411 target->dispatchEvent(event, IGNORE_EXCEPTION); 3411 target->dispatchEvent(event, IGNORE_EXCEPTION);
3412 return event->defaultHandled(); 3412 return event->defaultHandled();
3413 } 3413 }
3414 3414
3415 void EventHandler::defaultTextInputEventHandler(TextEvent* event) 3415 void EventHandler::defaultTextInputEventHandler(TextEvent* event)
3416 { 3416 {
3417 if (m_frame->editor().handleTextEvent(event)) 3417 if (m_frame->editor().handleTextEvent(event))
3418 event->setDefaultHandled(); 3418 event->setDefaultHandled();
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
3773 bool isTouchCancelEvent = (state == PlatformTouchPoint::TouchCancelled); 3773 bool isTouchCancelEvent = (state == PlatformTouchPoint::TouchCancelled);
3774 RefPtrWillBeRawPtr<TouchList>& effectiveTouches(isTouchCancelEvent ? emp tyList : touches); 3774 RefPtrWillBeRawPtr<TouchList>& effectiveTouches(isTouchCancelEvent ? emp tyList : touches);
3775 const AtomicString& stateName(eventNameForTouchPointState(static_cast<Pl atformTouchPoint::State>(state))); 3775 const AtomicString& stateName(eventNameForTouchPointState(static_cast<Pl atformTouchPoint::State>(state)));
3776 const EventTargetSet& targetsForState = changedTouches[state].m_targets; 3776 const EventTargetSet& targetsForState = changedTouches[state].m_targets;
3777 3777
3778 for (EventTargetSet::const_iterator it = targetsForState.begin(); it != targetsForState.end(); ++it) { 3778 for (EventTargetSet::const_iterator it = targetsForState.begin(); it != targetsForState.end(); ++it) {
3779 EventTarget* touchEventTarget = it->get(); 3779 EventTarget* touchEventTarget = it->get();
3780 RefPtrWillBeRawPtr<TouchList> targetTouches(isTouchCancelEvent ? emp tyList.get() : touchesByTarget.get(touchEventTarget)); 3780 RefPtrWillBeRawPtr<TouchList> targetTouches(isTouchCancelEvent ? emp tyList.get() : touchesByTarget.get(touchEventTarget));
3781 ASSERT(targetTouches); 3781 ASSERT(targetTouches);
3782 3782
3783 RefPtr<TouchEvent> touchEvent = 3783 RefPtrWillBeRawPtr<TouchEvent> touchEvent =
3784 TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(), 3784 TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(),
3785 stateName, touchEventTarget->toNode()->document().domWindow( ), 3785 stateName, touchEventTarget->toNode()->document().domWindow( ),
3786 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey( ), event.metaKey()); 3786 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey( ), event.metaKey());
3787 touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get()); 3787 touchEventTarget->toNode()->dispatchTouchEvent(touchEvent.get());
3788 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->defaultHandled(); 3788 swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->defaultHandled();
3789 } 3789 }
3790 } 3790 }
3791 3791
3792 return swallowedEvent; 3792 return swallowedEvent;
3793 } 3793 }
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
4038 unsigned EventHandler::accessKeyModifiers() 4038 unsigned EventHandler::accessKeyModifiers()
4039 { 4039 {
4040 #if OS(MACOSX) 4040 #if OS(MACOSX)
4041 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; 4041 return PlatformEvent::CtrlKey | PlatformEvent::AltKey;
4042 #else 4042 #else
4043 return PlatformEvent::AltKey; 4043 return PlatformEvent::AltKey;
4044 #endif 4044 #endif
4045 } 4045 }
4046 4046
4047 } // namespace WebCore 4047 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698