| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 6 * Copyright (C) 2015 Google Inc. All rights reserved. | 6 * Copyright (C) 2015 Google Inc. All rights reserved. |
| 7 * | 7 * |
| 8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
| 9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
| 10 * are met: | 10 * are met: |
| (...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1044 | 1044 |
| 1045 bool SelectionController::mouseDownMayStartSelect() const { | 1045 bool SelectionController::mouseDownMayStartSelect() const { |
| 1046 return m_mouseDownMayStartSelect; | 1046 return m_mouseDownMayStartSelect; |
| 1047 } | 1047 } |
| 1048 | 1048 |
| 1049 bool SelectionController::mouseDownWasSingleClickInSelection() const { | 1049 bool SelectionController::mouseDownWasSingleClickInSelection() const { |
| 1050 return m_mouseDownWasSingleClickInSelection; | 1050 return m_mouseDownWasSingleClickInSelection; |
| 1051 } | 1051 } |
| 1052 | 1052 |
| 1053 void SelectionController::notifySelectionChanged() { | 1053 void SelectionController::notifySelectionChanged() { |
| 1054 if (selection().getSelectionType() == SelectionType::RangeSelection) | 1054 // To avoid regression on speedometer benchmark[1] test, we should not |
| 1055 m_selectionState = SelectionState::ExtendedSelection; | 1055 // update layout tree in this code block. |
| 1056 else if (selection().getSelectionType() == SelectionType::CaretSelection) | 1056 // [1] http://browserbench.org/Speedometer/ |
| 1057 m_selectionState = SelectionState::PlacedCaret; | 1057 DocumentLifecycle::DisallowTransitionScope disallowTransition( |
| 1058 else | 1058 m_frame->document()->lifecycle()); |
| 1059 m_selectionState = SelectionState::HaveNotStartedSelection; | 1059 |
| 1060 const SelectionInDOMTree& selection = this->selection().selectionInDOMTree(); |
| 1061 switch (selection.computeSelectionTypeConsideringGranularity()) { |
| 1062 case NoSelection: |
| 1063 m_selectionState = SelectionState::HaveNotStartedSelection; |
| 1064 return; |
| 1065 case CaretSelection: |
| 1066 m_selectionState = SelectionState::PlacedCaret; |
| 1067 return; |
| 1068 case RangeSelection: |
| 1069 m_selectionState = SelectionState::ExtendedSelection; |
| 1070 return; |
| 1071 } |
| 1072 NOTREACHED() << "We should handle all SelectionType" << selection; |
| 1060 } | 1073 } |
| 1061 | 1074 |
| 1062 FrameSelection& SelectionController::selection() const { | 1075 FrameSelection& SelectionController::selection() const { |
| 1063 return m_frame->selection(); | 1076 return m_frame->selection(); |
| 1064 } | 1077 } |
| 1065 | 1078 |
| 1066 bool isLinkSelection(const MouseEventWithHitTestResults& event) { | 1079 bool isLinkSelection(const MouseEventWithHitTestResults& event) { |
| 1067 return (event.event().modifiers() & WebInputEvent::Modifiers::AltKey) != 0 && | 1080 return (event.event().modifiers() & WebInputEvent::Modifiers::AltKey) != 0 && |
| 1068 event.isOverLink(); | 1081 event.isOverLink(); |
| 1069 } | 1082 } |
| 1070 | 1083 |
| 1071 bool isExtendingSelection(const MouseEventWithHitTestResults& event) { | 1084 bool isExtendingSelection(const MouseEventWithHitTestResults& event) { |
| 1072 bool isMouseDownOnLinkOrImage = | 1085 bool isMouseDownOnLinkOrImage = |
| 1073 event.isOverLink() || event.hitTestResult().image(); | 1086 event.isOverLink() || event.hitTestResult().image(); |
| 1074 return (event.event().modifiers() & WebInputEvent::Modifiers::ShiftKey) != | 1087 return (event.event().modifiers() & WebInputEvent::Modifiers::ShiftKey) != |
| 1075 0 && | 1088 0 && |
| 1076 !isMouseDownOnLinkOrImage; | 1089 !isMouseDownOnLinkOrImage; |
| 1077 } | 1090 } |
| 1078 | 1091 |
| 1079 } // namespace blink | 1092 } // namespace blink |
| OLD | NEW |