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

Side by Side Diff: third_party/WebKit/Source/core/dom/TreeScope.cpp

Issue 2905043002: Make DocumentOrderedMap take a const reference for scope (Closed)
Patch Set: Created 3 years, 7 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) 2011 Google Inc. All Rights Reserved. 2 * Copyright (C) 2011 Google Inc. All Rights Reserved.
3 * Copyright (C) 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2012 Apple Inc. All rights reserved.
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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 void TreeScope::ClearScopedStyleResolver() { 117 void TreeScope::ClearScopedStyleResolver() {
118 scoped_style_resolver_.Clear(); 118 scoped_style_resolver_.Clear();
119 } 119 }
120 120
121 Element* TreeScope::getElementById(const AtomicString& element_id) const { 121 Element* TreeScope::getElementById(const AtomicString& element_id) const {
122 if (element_id.IsEmpty()) 122 if (element_id.IsEmpty())
123 return nullptr; 123 return nullptr;
124 if (!elements_by_id_) 124 if (!elements_by_id_)
125 return nullptr; 125 return nullptr;
126 return elements_by_id_->GetElementById(element_id, this); 126 return elements_by_id_->GetElementById(element_id, *this);
127 } 127 }
128 128
129 const HeapVector<Member<Element>>& TreeScope::GetAllElementsById( 129 const HeapVector<Member<Element>>& TreeScope::GetAllElementsById(
130 const AtomicString& element_id) const { 130 const AtomicString& element_id) const {
131 DEFINE_STATIC_LOCAL(HeapVector<Member<Element>>, empty_vector, 131 DEFINE_STATIC_LOCAL(HeapVector<Member<Element>>, empty_vector,
132 (new HeapVector<Member<Element>>)); 132 (new HeapVector<Member<Element>>));
133 if (element_id.IsEmpty()) 133 if (element_id.IsEmpty())
134 return empty_vector; 134 return empty_vector;
135 if (!elements_by_id_) 135 if (!elements_by_id_)
136 return empty_vector; 136 return empty_vector;
137 return elements_by_id_->GetAllElementsById(element_id, this); 137 return elements_by_id_->GetAllElementsById(element_id, *this);
138 } 138 }
139 139
140 void TreeScope::AddElementById(const AtomicString& element_id, 140 void TreeScope::AddElementById(const AtomicString& element_id,
141 Element* element) { 141 Element* element) {
142 if (!elements_by_id_) 142 if (!elements_by_id_)
143 elements_by_id_ = DocumentOrderedMap::Create(); 143 elements_by_id_ = DocumentOrderedMap::Create();
144 elements_by_id_->Add(element_id, element); 144 elements_by_id_->Add(element_id, element);
145 id_target_observer_registry_->NotifyObservers(element_id); 145 id_target_observer_registry_->NotifyObservers(element_id);
146 } 146 }
147 147
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 } 185 }
186 186
187 HTMLMapElement* TreeScope::GetImageMap(const String& url) const { 187 HTMLMapElement* TreeScope::GetImageMap(const String& url) const {
188 if (url.IsNull()) 188 if (url.IsNull())
189 return nullptr; 189 return nullptr;
190 if (!image_maps_by_name_) 190 if (!image_maps_by_name_)
191 return nullptr; 191 return nullptr;
192 size_t hash_pos = url.find('#'); 192 size_t hash_pos = url.find('#');
193 String name = hash_pos == kNotFound ? url : url.Substring(hash_pos + 1); 193 String name = hash_pos == kNotFound ? url : url.Substring(hash_pos + 1);
194 return toHTMLMapElement( 194 return toHTMLMapElement(
195 image_maps_by_name_->GetElementByMapName(AtomicString(name), this)); 195 image_maps_by_name_->GetElementByMapName(AtomicString(name), *this));
196 } 196 }
197 197
198 static bool PointWithScrollAndZoomIfPossible(const Document& document, 198 static bool PointWithScrollAndZoomIfPossible(const Document& document,
199 IntPoint& point) { 199 IntPoint& point) {
200 LocalFrame* frame = document.GetFrame(); 200 LocalFrame* frame = document.GetFrame();
201 if (!frame) 201 if (!frame)
202 return false; 202 return false;
203 FrameView* frame_view = frame->View(); 203 FrameView* frame_view = frame->View();
204 if (!frame_view) 204 if (!frame_view)
205 return false; 205 return false;
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 if (child == child1) 446 if (child == child1)
447 return Node::kDocumentPositionFollowing; 447 return Node::kDocumentPositionFollowing;
448 } 448 }
449 449
450 return Node::kDocumentPositionPreceding; 450 return Node::kDocumentPositionPreceding;
451 } 451 }
452 } 452 }
453 453
454 // There was no difference between the two parent chains, i.e., one was a 454 // There was no difference between the two parent chains, i.e., one was a
455 // subset of the other. The shorter chain is the ancestor. 455 // subset of the other. The shorter chain is the ancestor.
456 return index1 < index2 456 return index1 < index2 ? Node::kDocumentPositionFollowing |
457 ? Node::kDocumentPositionFollowing | 457 Node::kDocumentPositionContainedBy
458 Node::kDocumentPositionContainedBy 458 : Node::kDocumentPositionPreceding |
459 : Node::kDocumentPositionPreceding | 459 Node::kDocumentPositionContains;
460 Node::kDocumentPositionContains;
461 } 460 }
462 461
463 const TreeScope* TreeScope::CommonAncestorTreeScope( 462 const TreeScope* TreeScope::CommonAncestorTreeScope(
464 const TreeScope& other) const { 463 const TreeScope& other) const {
465 HeapVector<Member<const TreeScope>, 16> this_chain; 464 HeapVector<Member<const TreeScope>, 16> this_chain;
466 for (const TreeScope* tree = this; tree; tree = tree->ParentTreeScope()) 465 for (const TreeScope* tree = this; tree; tree = tree->ParentTreeScope())
467 this_chain.push_back(tree); 466 this_chain.push_back(tree);
468 467
469 HeapVector<Member<const TreeScope>, 16> other_chain; 468 HeapVector<Member<const TreeScope>, 16> other_chain;
470 for (const TreeScope* tree = &other; tree; tree = tree->ParentTreeScope()) 469 for (const TreeScope* tree = &other; tree; tree = tree->ParentTreeScope())
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 visitor->Trace(id_target_observer_registry_); 535 visitor->Trace(id_target_observer_registry_);
537 visitor->Trace(selection_); 536 visitor->Trace(selection_);
538 visitor->Trace(elements_by_id_); 537 visitor->Trace(elements_by_id_);
539 visitor->Trace(image_maps_by_name_); 538 visitor->Trace(image_maps_by_name_);
540 visitor->Trace(scoped_style_resolver_); 539 visitor->Trace(scoped_style_resolver_);
541 visitor->Trace(radio_button_group_scope_); 540 visitor->Trace(radio_button_group_scope_);
542 visitor->Trace(svg_tree_scoped_resources_); 541 visitor->Trace(svg_tree_scoped_resources_);
543 } 542 }
544 543
545 } // namespace blink 544 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698