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

Side by Side Diff: third_party/WebKit/Source/core/page/FocusController.cpp

Issue 1853743005: Oilpan: Remove WillBe types (part 13) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Nuanti Ltd. 3 * Copyright (C) 2008 Nuanti Ltd.
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 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 static ScopedFocusNavigation ownedByShadowInsertionPoint(HTMLShadowElement&) ; 88 static ScopedFocusNavigation ownedByShadowInsertionPoint(HTMLShadowElement&) ;
89 static ScopedFocusNavigation ownedByHTMLSlotElement(const HTMLSlotElement&); 89 static ScopedFocusNavigation ownedByHTMLSlotElement(const HTMLSlotElement&);
90 static ScopedFocusNavigation ownedByIFrame(const HTMLFrameOwnerElement&); 90 static ScopedFocusNavigation ownedByIFrame(const HTMLFrameOwnerElement&);
91 static HTMLSlotElement* findFallbackScopeOwnerSlot(const Element&); 91 static HTMLSlotElement* findFallbackScopeOwnerSlot(const Element&);
92 static bool isSlotFallbackScoped(const Element&); 92 static bool isSlotFallbackScoped(const Element&);
93 static bool isSlotFallbackScopedForThisSlot(const HTMLSlotElement&, const El ement&); 93 static bool isSlotFallbackScopedForThisSlot(const HTMLSlotElement&, const El ement&);
94 94
95 private: 95 private:
96 ScopedFocusNavigation(TreeScope&, const Element*); 96 ScopedFocusNavigation(TreeScope&, const Element*);
97 ScopedFocusNavigation(HTMLSlotElement&, const Element*); 97 ScopedFocusNavigation(HTMLSlotElement&, const Element*);
98 RawPtrWillBeMember<ContainerNode> m_rootNode; 98 Member<ContainerNode> m_rootNode;
99 RawPtrWillBeMember<HTMLSlotElement> m_rootSlot; 99 Member<HTMLSlotElement> m_rootSlot;
100 RawPtrWillBeMember<Element> m_current; 100 Member<Element> m_current;
101 bool m_slotFallbackTraversal; 101 bool m_slotFallbackTraversal;
102 }; 102 };
103 103
104 ScopedFocusNavigation::ScopedFocusNavigation(TreeScope& treeScope, const Element * current) 104 ScopedFocusNavigation::ScopedFocusNavigation(TreeScope& treeScope, const Element * current)
105 : m_rootNode(treeScope.rootNode()) 105 : m_rootNode(treeScope.rootNode())
106 , m_rootSlot(nullptr) 106 , m_rootSlot(nullptr)
107 , m_current(const_cast<Element*>(current)) 107 , m_current(const_cast<Element*>(current))
108 { 108 {
109 } 109 }
110 110
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 m_current = ElementTraversal::previous(*m_current); 161 m_current = ElementTraversal::previous(*m_current);
162 while (m_current && (SlotScopedTraversal::isSlotScoped(*m_current) || Sc opedFocusNavigation::isSlotFallbackScoped(*m_current))) 162 while (m_current && (SlotScopedTraversal::isSlotScoped(*m_current) || Sc opedFocusNavigation::isSlotFallbackScoped(*m_current)))
163 m_current = ElementTraversal::previous(*m_current); 163 m_current = ElementTraversal::previous(*m_current);
164 } 164 }
165 } 165 }
166 166
167 void ScopedFocusNavigation::moveToFirst() 167 void ScopedFocusNavigation::moveToFirst()
168 { 168 {
169 if (m_rootSlot) { 169 if (m_rootSlot) {
170 if (!m_slotFallbackTraversal) { 170 if (!m_slotFallbackTraversal) {
171 WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = m_rootSlo t->getAssignedNodes(); 171 HeapVector<Member<Node>> assignedNodes = m_rootSlot->getAssignedNode s();
172 for (auto assignedNode : assignedNodes) { 172 for (auto assignedNode : assignedNodes) {
173 if (assignedNode->isElementNode()) { 173 if (assignedNode->isElementNode()) {
174 m_current = toElement(assignedNode); 174 m_current = toElement(assignedNode);
175 break; 175 break;
176 } 176 }
177 } 177 }
178 } else { 178 } else {
179 Element* first = ElementTraversal::firstChild(*m_rootSlot); 179 Element* first = ElementTraversal::firstChild(*m_rootSlot);
180 while (first && !ScopedFocusNavigation::isSlotFallbackScopedForThisS lot(*m_rootSlot, *first)) 180 while (first && !ScopedFocusNavigation::isSlotFallbackScopedForThisS lot(*m_rootSlot, *first))
181 first = ElementTraversal::next(*first, m_rootSlot); 181 first = ElementTraversal::next(*first, m_rootSlot);
182 m_current = first; 182 m_current = first;
183 } 183 }
184 } else { 184 } else {
185 Element* first = m_rootNode->isElementNode() ? &toElement(*m_rootNode) : ElementTraversal::next(*m_rootNode); 185 Element* first = m_rootNode->isElementNode() ? &toElement(*m_rootNode) : ElementTraversal::next(*m_rootNode);
186 while (first && (SlotScopedTraversal::isSlotScoped(*first) || ScopedFocu sNavigation::isSlotFallbackScoped(*first))) 186 while (first && (SlotScopedTraversal::isSlotScoped(*first) || ScopedFocu sNavigation::isSlotFallbackScoped(*first)))
187 first = ElementTraversal::next(*first, m_rootNode); 187 first = ElementTraversal::next(*first, m_rootNode);
188 m_current = first; 188 m_current = first;
189 } 189 }
190 190
191 } 191 }
192 192
193 void ScopedFocusNavigation::moveToLast() 193 void ScopedFocusNavigation::moveToLast()
194 { 194 {
195 if (m_rootSlot) { 195 if (m_rootSlot) {
196 if (!m_slotFallbackTraversal) { 196 if (!m_slotFallbackTraversal) {
197 WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = m_rootSlo t->getAssignedNodes(); 197 HeapVector<Member<Node>> assignedNodes = m_rootSlot->getAssignedNode s();
198 for (auto assignedNode = assignedNodes.rbegin(); assignedNode != ass ignedNodes.rend(); ++assignedNode) { 198 for (auto assignedNode = assignedNodes.rbegin(); assignedNode != ass ignedNodes.rend(); ++assignedNode) {
199 if ((*assignedNode)->isElementNode()) { 199 if ((*assignedNode)->isElementNode()) {
200 m_current = ElementTraversal::lastWithinOrSelf(*toElement(*a ssignedNode)); 200 m_current = ElementTraversal::lastWithinOrSelf(*toElement(*a ssignedNode));
201 break; 201 break;
202 } 202 }
203 } 203 }
204 } else { 204 } else {
205 Element* last = ElementTraversal::lastWithin(*m_rootSlot); 205 Element* last = ElementTraversal::lastWithin(*m_rootSlot);
206 while (last && !ScopedFocusNavigation::isSlotFallbackScopedForThisSl ot(*m_rootSlot, *last)) 206 while (last && !ScopedFocusNavigation::isSlotFallbackScopedForThisSl ot(*m_rootSlot, *last))
207 last = ElementTraversal::previous(*last, m_rootSlot); 207 last = ElementTraversal::previous(*last, m_rootSlot);
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 current = document->sequentialFocusNavigationStartingPoint(type); 916 current = document->sequentialFocusNavigationStartingPoint(type);
917 917
918 // FIXME: Not quite correct when it comes to focus transitions leaving/enter ing the WebView itself 918 // FIXME: Not quite correct when it comes to focus transitions leaving/enter ing the WebView itself
919 bool caretBrowsing = frame->settings() && frame->settings()->caretBrowsingEn abled(); 919 bool caretBrowsing = frame->settings() && frame->settings()->caretBrowsingEn abled();
920 920
921 if (caretBrowsing && !current) 921 if (caretBrowsing && !current)
922 current = adjustToElement(frame->selection().start().anchorNode(), type) ; 922 current = adjustToElement(frame->selection().start().anchorNode(), type) ;
923 923
924 document->updateLayoutIgnorePendingStylesheets(); 924 document->updateLayoutIgnorePendingStylesheets();
925 ScopedFocusNavigation scope = current ? ScopedFocusNavigation::createFor(*cu rrent) : ScopedFocusNavigation::createForDocument(*document); 925 ScopedFocusNavigation scope = current ? ScopedFocusNavigation::createFor(*cu rrent) : ScopedFocusNavigation::createForDocument(*document);
926 RefPtrWillBeRawPtr<Element> element = findFocusableElementAcrossFocusScopes( type, scope); 926 RawPtr<Element> element = findFocusableElementAcrossFocusScopes(type, scope) ;
927 if (!element) { 927 if (!element) {
928 // If there's a RemoteFrame on the ancestor chain, we need to continue 928 // If there's a RemoteFrame on the ancestor chain, we need to continue
929 // searching for focusable elements there. 929 // searching for focusable elements there.
930 if (frame->localFrameRoot() != frame->tree().top()) { 930 if (frame->localFrameRoot() != frame->tree().top()) {
931 document->clearFocusedElement(); 931 document->clearFocusedElement();
932 document->setSequentialFocusNavigationStartingPoint(nullptr); 932 document->setSequentialFocusNavigationStartingPoint(nullptr);
933 toRemoteFrame(frame->localFrameRoot()->tree().parent())->advanceFocu s(type, frame->localFrameRoot()); 933 toRemoteFrame(frame->localFrameRoot()->tree().parent())->advanceFocu s(type, frame->localFrameRoot());
934 return true; 934 return true;
935 } 935 }
936 936
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 return consumed; 1309 return consumed;
1310 } 1310 }
1311 1311
1312 DEFINE_TRACE(FocusController) 1312 DEFINE_TRACE(FocusController)
1313 { 1313 {
1314 visitor->trace(m_page); 1314 visitor->trace(m_page);
1315 visitor->trace(m_focusedFrame); 1315 visitor->trace(m_focusedFrame);
1316 } 1316 }
1317 1317
1318 } // namespace blink 1318 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698