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

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

Issue 899163003: Move rendering/RenderObject to layout/LayoutObject. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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/page/EventHandler.h ('k') | Source/core/page/PageSerializer.h » ('j') | 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 (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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 if (!m_mousePressed) 667 if (!m_mousePressed)
668 return false; 668 return false;
669 669
670 if (handleDrag(event, DragInitiator::Mouse)) 670 if (handleDrag(event, DragInitiator::Mouse))
671 return true; 671 return true;
672 672
673 Node* targetNode = event.innerNode(); 673 Node* targetNode = event.innerNode();
674 if (!targetNode) 674 if (!targetNode)
675 return false; 675 return false;
676 676
677 RenderObject* renderer = targetNode->renderer(); 677 LayoutObject* renderer = targetNode->renderer();
678 if (!renderer) { 678 if (!renderer) {
679 Node* parent = NodeRenderingTraversal::parent(*targetNode); 679 Node* parent = NodeRenderingTraversal::parent(*targetNode);
680 if (!parent) 680 if (!parent)
681 return false; 681 return false;
682 682
683 renderer = parent->renderer(); 683 renderer = parent->renderer();
684 if (!renderer || !renderer->isListBox()) 684 if (!renderer || !renderer->isListBox())
685 return false; 685 return false;
686 } 686 }
687 687
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 if (targetPosition.isNull()) 734 if (targetPosition.isNull())
735 return; 735 return;
736 736
737 // Restart the selection if this is the first mouse move. This work is usual ly 737 // Restart the selection if this is the first mouse move. This work is usual ly
738 // done in handleMousePressEvent, but not if the mouse press was on an exist ing selection. 738 // done in handleMousePressEvent, but not if the mouse press was on an exist ing selection.
739 VisibleSelection newSelection = m_frame->selection().selection(); 739 VisibleSelection newSelection = m_frame->selection().selection();
740 740
741 // Special case to limit selection to the containing block for SVG text. 741 // Special case to limit selection to the containing block for SVG text.
742 // FIXME: Isn't there a better non-SVG-specific way to do this? 742 // FIXME: Isn't there a better non-SVG-specific way to do this?
743 if (Node* selectionBaseNode = newSelection.base().deprecatedNode()) 743 if (Node* selectionBaseNode = newSelection.base().deprecatedNode())
744 if (RenderObject* selectionBaseRenderer = selectionBaseNode->renderer()) 744 if (LayoutObject* selectionBaseRenderer = selectionBaseNode->renderer())
745 if (selectionBaseRenderer->isSVGText()) 745 if (selectionBaseRenderer->isSVGText())
746 if (target->renderer()->containingBlock() != selectionBaseRender er->containingBlock()) 746 if (target->renderer()->containingBlock() != selectionBaseRender er->containingBlock())
747 return; 747 return;
748 748
749 if (m_selectionInitiationState == HaveNotStartedSelection && !dispatchSelect Start(target)) 749 if (m_selectionInitiationState == HaveNotStartedSelection && !dispatchSelect Start(target))
750 return; 750 return;
751 751
752 if (m_selectionInitiationState != ExtendedSelection) { 752 if (m_selectionInitiationState != ExtendedSelection) {
753 // Always extend selection here because it's caused by a mouse drag 753 // Always extend selection here because it's caused by a mouse drag
754 m_selectionInitiationState = ExtendedSelection; 754 m_selectionInitiationState = ExtendedSelection;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 if (event.event().button() == MiddleButton && !event.isOverLink()) { 828 if (event.event().button() == MiddleButton && !event.isOverLink()) {
829 // Ignore handled, since we want to paste to where the caret was placed anyway. 829 // Ignore handled, since we want to paste to where the caret was placed anyway.
830 handled = handlePasteGlobalSelection(event.event()) || handled; 830 handled = handlePasteGlobalSelection(event.event()) || handled;
831 } 831 }
832 832
833 return handled; 833 return handled;
834 } 834 }
835 835
836 #if OS(WIN) 836 #if OS(WIN)
837 837
838 void EventHandler::startPanScrolling(RenderObject* renderer) 838 void EventHandler::startPanScrolling(LayoutObject* renderer)
839 { 839 {
840 if (!renderer->isBox()) 840 if (!renderer->isBox())
841 return; 841 return;
842 AutoscrollController* controller = autoscrollController(); 842 AutoscrollController* controller = autoscrollController();
843 if (!controller) 843 if (!controller)
844 return; 844 return;
845 controller->startPanScrolling(toRenderBox(renderer), lastKnownMousePosition( )); 845 controller->startPanScrolling(toRenderBox(renderer), lastKnownMousePosition( ));
846 invalidateClick(); 846 invalidateClick();
847 } 847 }
848 848
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 IntPoint EventHandler::lastKnownMousePosition() const 970 IntPoint EventHandler::lastKnownMousePosition() const
971 { 971 {
972 return m_lastKnownMousePosition; 972 return m_lastKnownMousePosition;
973 } 973 }
974 974
975 static LocalFrame* subframeForTargetNode(Node* node) 975 static LocalFrame* subframeForTargetNode(Node* node)
976 { 976 {
977 if (!node) 977 if (!node)
978 return nullptr; 978 return nullptr;
979 979
980 RenderObject* renderer = node->renderer(); 980 LayoutObject* renderer = node->renderer();
981 if (!renderer || !renderer->isRenderPart()) 981 if (!renderer || !renderer->isRenderPart())
982 return nullptr; 982 return nullptr;
983 983
984 // FIXME: This explicit check is needed only until RemoteFrames have RemoteF rameViews. 984 // FIXME: This explicit check is needed only until RemoteFrames have RemoteF rameViews.
985 if (isHTMLFrameElementBase(node) && toHTMLFrameElementBase(node)->contentFra me() && toHTMLFrameElementBase(node)->contentFrame()->isRemoteFrameTemporary()) 985 if (isHTMLFrameElementBase(node) && toHTMLFrameElementBase(node)->contentFra me() && toHTMLFrameElementBase(node)->contentFrame()->isRemoteFrameTemporary())
986 return nullptr; 986 return nullptr;
987 987
988 Widget* widget = toRenderPart(renderer)->widget(); 988 Widget* widget = toRenderPart(renderer)->widget();
989 if (!widget || !widget->isFrameView()) 989 if (!widget || !widget->isFrameView())
990 return nullptr; 990 return nullptr;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 return NoCursorChange; 1056 return NoCursorChange;
1057 #if OS(WIN) 1057 #if OS(WIN)
1058 if (panScrollInProgress()) 1058 if (panScrollInProgress())
1059 return NoCursorChange; 1059 return NoCursorChange;
1060 #endif 1060 #endif
1061 1061
1062 Node* node = result.innerPossiblyPseudoNode(); 1062 Node* node = result.innerPossiblyPseudoNode();
1063 if (!node) 1063 if (!node)
1064 return selectAutoCursor(result, node, iBeamCursor()); 1064 return selectAutoCursor(result, node, iBeamCursor());
1065 1065
1066 RenderObject* renderer = node->renderer(); 1066 LayoutObject* renderer = node->renderer();
1067 RenderStyle* style = renderer ? renderer->style() : nullptr; 1067 RenderStyle* style = renderer ? renderer->style() : nullptr;
1068 1068
1069 if (renderer) { 1069 if (renderer) {
1070 Cursor overrideCursor; 1070 Cursor overrideCursor;
1071 switch (renderer->getCursor(roundedIntPoint(result.localPoint()), overri deCursor)) { 1071 switch (renderer->getCursor(roundedIntPoint(result.localPoint()), overri deCursor)) {
1072 case SetCursorBasedOnStyle: 1072 case SetCursorBasedOnStyle:
1073 break; 1073 break;
1074 case SetCursor: 1074 case SetCursor:
1075 return overrideCursor; 1075 return overrideCursor;
1076 case DoNotSetCursor: 1076 case DoNotSetCursor:
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1190 } 1190 }
1191 1191
1192 OptionalCursor EventHandler::selectAutoCursor(const HitTestResult& result, Node* node, const Cursor& iBeam) 1192 OptionalCursor EventHandler::selectAutoCursor(const HitTestResult& result, Node* node, const Cursor& iBeam)
1193 { 1193 {
1194 bool editable = (node && node->hasEditableStyle()); 1194 bool editable = (node && node->hasEditableStyle());
1195 1195
1196 if (useHandCursor(node, result.isOverLink())) 1196 if (useHandCursor(node, result.isOverLink()))
1197 return handCursor(); 1197 return handCursor();
1198 1198
1199 bool inResizer = false; 1199 bool inResizer = false;
1200 RenderObject* renderer = node ? node->renderer() : nullptr; 1200 LayoutObject* renderer = node ? node->renderer() : nullptr;
1201 if (renderer && m_frame->view()) { 1201 if (renderer && m_frame->view()) {
1202 Layer* layer = renderer->enclosingLayer(); 1202 Layer* layer = renderer->enclosingLayer();
1203 inResizer = layer->scrollableArea() && layer->scrollableArea()->isPointI nResizeControl(result.roundedPointInMainFrame(), ResizerForPointer); 1203 inResizer = layer->scrollableArea() && layer->scrollableArea()->isPointI nResizeControl(result.roundedPointInMainFrame(), ResizerForPointer);
1204 } 1204 }
1205 1205
1206 // During selection, use an I-beam no matter what we're over. 1206 // During selection, use an I-beam no matter what we're over.
1207 // If a drag may be starting or we're capturing mouse events for a particula r node, don't treat this as a selection. 1207 // If a drag may be starting or we're capturing mouse events for a particula r node, don't treat this as a selection.
1208 if (m_mousePressed && m_mouseDownMayStartSelect 1208 if (m_mousePressed && m_mouseDownMayStartSelect
1209 && !m_mouseDownMayStartDrag 1209 && !m_mouseDownMayStartDrag
1210 && m_frame->selection().isCaretOrRange() 1210 && m_frame->selection().isCaretOrRange()
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1342 } 1342 }
1343 1343
1344 return swallowEvent; 1344 return swallowEvent;
1345 } 1345 }
1346 1346
1347 static Layer* layerForNode(Node* node) 1347 static Layer* layerForNode(Node* node)
1348 { 1348 {
1349 if (!node) 1349 if (!node)
1350 return nullptr; 1350 return nullptr;
1351 1351
1352 RenderObject* renderer = node->renderer(); 1352 LayoutObject* renderer = node->renderer();
1353 if (!renderer) 1353 if (!renderer)
1354 return nullptr; 1354 return nullptr;
1355 1355
1356 Layer* layer = renderer->enclosingLayer(); 1356 Layer* layer = renderer->enclosingLayer();
1357 if (!layer) 1357 if (!layer)
1358 return nullptr; 1358 return nullptr;
1359 1359
1360 return layer; 1360 return layer;
1361 } 1361 }
1362 1362
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
2019 if (m_latchedWheelEventNode) 2019 if (m_latchedWheelEventNode)
2020 m_latchedWheelEventNode = nullptr; 2020 m_latchedWheelEventNode = nullptr;
2021 if (m_previousWheelScrolledNode) 2021 if (m_previousWheelScrolledNode)
2022 m_previousWheelScrolledNode = nullptr; 2022 m_previousWheelScrolledNode = nullptr;
2023 2023
2024 isOverWidget = result.isOverWidget(); 2024 isOverWidget = result.isOverWidget();
2025 } 2025 }
2026 2026
2027 if (node) { 2027 if (node) {
2028 // Figure out which view to send the event to. 2028 // Figure out which view to send the event to.
2029 RenderObject* target = node->renderer(); 2029 LayoutObject* target = node->renderer();
2030 2030
2031 if (isOverWidget && target && target->isRenderPart()) { 2031 if (isOverWidget && target && target->isRenderPart()) {
2032 Widget* widget = toRenderPart(target)->widget(); 2032 Widget* widget = toRenderPart(target)->widget();
2033 if (widget && passWheelEventToWidget(event, *widget)) 2033 if (widget && passWheelEventToWidget(event, *widget))
2034 RETURN_WHEEL_EVENT_HANDLED(); 2034 RETURN_WHEEL_EVENT_HANDLED();
2035 } 2035 }
2036 2036
2037 if (node && !node->dispatchWheelEvent(event)) 2037 if (node && !node->dispatchWheelEvent(event))
2038 RETURN_WHEEL_EVENT_HANDLED(); 2038 RETURN_WHEEL_EVENT_HANDLED();
2039 } 2039 }
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
2432 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { 2432 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) {
2433 m_resizeScrollableArea->setInResizeMode(false); 2433 m_resizeScrollableArea->setInResizeMode(false);
2434 m_resizeScrollableArea = nullptr; 2434 m_resizeScrollableArea = nullptr;
2435 return false; 2435 return false;
2436 } 2436 }
2437 } 2437 }
2438 2438
2439 return false; 2439 return false;
2440 } 2440 }
2441 2441
2442 bool EventHandler::passScrollGestureEventToWidget(const PlatformGestureEvent& ge stureEvent, RenderObject* renderer) 2442 bool EventHandler::passScrollGestureEventToWidget(const PlatformGestureEvent& ge stureEvent, LayoutObject* renderer)
2443 { 2443 {
2444 ASSERT(gestureEvent.isScrollEvent()); 2444 ASSERT(gestureEvent.isScrollEvent());
2445 2445
2446 if (!m_lastGestureScrollOverWidget) 2446 if (!m_lastGestureScrollOverWidget)
2447 return false; 2447 return false;
2448 2448
2449 if (!renderer || !renderer->isRenderPart()) 2449 if (!renderer || !renderer->isRenderPart())
2450 return false; 2450 return false;
2451 2451
2452 Widget* widget = toRenderPart(renderer)->widget(); 2452 Widget* widget = toRenderPart(renderer)->widget();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2500 bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture Event) 2500 bool EventHandler::handleGestureScrollUpdate(const PlatformGestureEvent& gesture Event)
2501 { 2501 {
2502 ASSERT(gestureEvent.type() == PlatformEvent::GestureScrollUpdate); 2502 ASSERT(gestureEvent.type() == PlatformEvent::GestureScrollUpdate);
2503 2503
2504 FloatSize delta(gestureEvent.deltaX(), gestureEvent.deltaY()); 2504 FloatSize delta(gestureEvent.deltaX(), gestureEvent.deltaY());
2505 if (delta.isZero()) 2505 if (delta.isZero())
2506 return false; 2506 return false;
2507 2507
2508 Node* node = m_scrollGestureHandlingNode.get(); 2508 Node* node = m_scrollGestureHandlingNode.get();
2509 if (node) { 2509 if (node) {
2510 RenderObject* renderer = node->renderer(); 2510 LayoutObject* renderer = node->renderer();
2511 if (!renderer) 2511 if (!renderer)
2512 return false; 2512 return false;
2513 2513
2514 RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); 2514 RefPtrWillBeRawPtr<FrameView> protector(m_frame->view());
2515 2515
2516 Node* stopNode = nullptr; 2516 Node* stopNode = nullptr;
2517 2517
2518 // Try to send the event to the correct view. 2518 // Try to send the event to the correct view.
2519 if (passScrollGestureEventToWidget(gestureEvent, renderer)) { 2519 if (passScrollGestureEventToWidget(gestureEvent, renderer)) {
2520 if (gestureEvent.preventPropagation()) 2520 if (gestureEvent.preventPropagation())
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
3303 { 3303 {
3304 // The DataTransfer would only be non-empty if we missed a dragEnd. 3304 // The DataTransfer would only be non-empty if we missed a dragEnd.
3305 // Clear it anyway, just to make sure it gets numbified. 3305 // Clear it anyway, just to make sure it gets numbified.
3306 clearDragDataTransfer(); 3306 clearDragDataTransfer();
3307 3307
3308 dragState().m_dragDataTransfer = createDraggingDataTransfer(); 3308 dragState().m_dragDataTransfer = createDraggingDataTransfer();
3309 3309
3310 // Check to see if this a DOM based drag, if it is get the DOM specified dra g 3310 // Check to see if this a DOM based drag, if it is get the DOM specified dra g
3311 // image and offset 3311 // image and offset
3312 if (dragState().m_dragType == DragSourceActionDHTML) { 3312 if (dragState().m_dragType == DragSourceActionDHTML) {
3313 if (RenderObject* renderer = dragState().m_dragSrc->renderer()) { 3313 if (LayoutObject* renderer = dragState().m_dragSrc->renderer()) {
3314 FloatPoint absPos = renderer->localToAbsolute(FloatPoint(), UseTrans forms); 3314 FloatPoint absPos = renderer->localToAbsolute(FloatPoint(), UseTrans forms);
3315 IntSize delta = m_mouseDownPos - roundedIntPoint(absPos); 3315 IntSize delta = m_mouseDownPos - roundedIntPoint(absPos);
3316 dragState().m_dragDataTransfer->setDragImageElement(dragState().m_dr agSrc.get(), IntPoint(delta)); 3316 dragState().m_dragDataTransfer->setDragImageElement(dragState().m_dr agSrc.get(), IntPoint(delta));
3317 } else { 3317 } else {
3318 // The renderer has disappeared, this can happen if the onStartDrag handler has hidden 3318 // The renderer has disappeared, this can happen if the onStartDrag handler has hidden
3319 // the element in some way. In this case we just kill the drag. 3319 // the element in some way. In this case we just kill the drag.
3320 return false; 3320 return false;
3321 } 3321 }
3322 } 3322 }
3323 3323
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
3470 3470
3471 void EventHandler::defaultEscapeEventHandler(KeyboardEvent* event) 3471 void EventHandler::defaultEscapeEventHandler(KeyboardEvent* event)
3472 { 3472 {
3473 if (HTMLDialogElement* dialog = m_frame->document()->activeModalDialog()) 3473 if (HTMLDialogElement* dialog = m_frame->document()->activeModalDialog())
3474 dialog->dispatchEvent(Event::createCancelable(EventTypeNames::cancel)); 3474 dialog->dispatchEvent(Event::createCancelable(EventTypeNames::cancel));
3475 } 3475 }
3476 3476
3477 void EventHandler::capsLockStateMayHaveChanged() 3477 void EventHandler::capsLockStateMayHaveChanged()
3478 { 3478 {
3479 if (Element* element = m_frame->document()->focusedElement()) { 3479 if (Element* element = m_frame->document()->focusedElement()) {
3480 if (RenderObject* r = element->renderer()) { 3480 if (LayoutObject* r = element->renderer()) {
3481 if (r->isTextField()) 3481 if (r->isTextField())
3482 toRenderTextControlSingleLine(r)->capsLockStateMayHaveChanged(); 3482 toRenderTextControlSingleLine(r)->capsLockStateMayHaveChanged();
3483 } 3483 }
3484 } 3484 }
3485 } 3485 }
3486 3486
3487 void EventHandler::setFrameWasScrolledByUser() 3487 void EventHandler::setFrameWasScrolledByUser()
3488 { 3488 {
3489 if (FrameView* view = m_frame->view()) 3489 if (FrameView* view = m_frame->view())
3490 view->setWasScrolledByUser(true); 3490 view->setWasScrolledByUser(true);
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
3810 return action1 & action2; 3810 return action1 & action2;
3811 } 3811 }
3812 3812
3813 TouchAction EventHandler::computeEffectiveTouchAction(const Node& node) 3813 TouchAction EventHandler::computeEffectiveTouchAction(const Node& node)
3814 { 3814 {
3815 // Start by permitting all actions, then walk the elements supporting 3815 // Start by permitting all actions, then walk the elements supporting
3816 // touch-action from the target node up to the nearest scrollable ancestor 3816 // touch-action from the target node up to the nearest scrollable ancestor
3817 // and exclude any prohibited actions. 3817 // and exclude any prohibited actions.
3818 TouchAction effectiveTouchAction = TouchActionAuto; 3818 TouchAction effectiveTouchAction = TouchActionAuto;
3819 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal: :parent(*curNode)) { 3819 for (const Node* curNode = &node; curNode; curNode = NodeRenderingTraversal: :parent(*curNode)) {
3820 if (RenderObject* renderer = curNode->renderer()) { 3820 if (LayoutObject* renderer = curNode->renderer()) {
3821 if (renderer->supportsTouchAction()) { 3821 if (renderer->supportsTouchAction()) {
3822 TouchAction action = renderer->style()->touchAction(); 3822 TouchAction action = renderer->style()->touchAction();
3823 effectiveTouchAction = intersectTouchAction(action, effectiveTou chAction); 3823 effectiveTouchAction = intersectTouchAction(action, effectiveTou chAction);
3824 if (effectiveTouchAction == TouchActionNone) 3824 if (effectiveTouchAction == TouchActionNone)
3825 break; 3825 break;
3826 } 3826 }
3827 3827
3828 // If we've reached an ancestor that supports a touch action, search no further. 3828 // If we've reached an ancestor that supports a touch action, search no further.
3829 if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow()) 3829 if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow())
3830 break; 3830 break;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3906 unsigned EventHandler::accessKeyModifiers() 3906 unsigned EventHandler::accessKeyModifiers()
3907 { 3907 {
3908 #if OS(MACOSX) 3908 #if OS(MACOSX)
3909 return PlatformEvent::CtrlKey | PlatformEvent::AltKey; 3909 return PlatformEvent::CtrlKey | PlatformEvent::AltKey;
3910 #else 3910 #else
3911 return PlatformEvent::AltKey; 3911 return PlatformEvent::AltKey;
3912 #endif 3912 #endif
3913 } 3913 }
3914 3914
3915 } // namespace blink 3915 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/page/EventHandler.h ('k') | Source/core/page/PageSerializer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698