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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLOptionElement.cpp

Issue 2131073002: SELECT element: Avoid to use listItems() in HTMLSelectElement::selectOption() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 5 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
6 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved.
7 * Copyright (C) 2010 Google Inc. All rights reserved. 7 * Copyright (C) 2010 Google Inc. All rights reserved.
8 * Copyright (C) 2011 Motorola Mobility, Inc. All rights reserved. 8 * Copyright (C) 2011 Motorola Mobility, Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 176
177 int HTMLOptionElement::index() const 177 int HTMLOptionElement::index() const
178 { 178 {
179 // It would be faster to cache the index, but harder to get it right in all cases. 179 // It would be faster to cache the index, but harder to get it right in all cases.
180 180
181 HTMLSelectElement* selectElement = ownerSelectElement(); 181 HTMLSelectElement* selectElement = ownerSelectElement();
182 if (!selectElement) 182 if (!selectElement)
183 return 0; 183 return 0;
184 184
185 int optionIndex = 0; 185 int optionIndex = 0;
186 186 for (const auto& option : selectElement->optionList()) {
187 const HeapVector<Member<HTMLElement>>& items = selectElement->listItems(); 187 if (option == this)
188 size_t length = items.size();
189 for (size_t i = 0; i < length; ++i) {
190 if (!isHTMLOptionElement(*items[i]))
191 continue;
192 if (items[i].get() == this)
193 return optionIndex; 188 return optionIndex;
194 ++optionIndex; 189 ++optionIndex;
195 } 190 }
196 191
197 return 0; 192 return 0;
198 } 193 }
199 194
200 int HTMLOptionElement::listIndex() const 195 int HTMLOptionElement::listIndex() const
201 { 196 {
202 if (HTMLSelectElement* selectElement = ownerSelectElement()) 197 if (HTMLSelectElement* selectElement = ownerSelectElement())
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 ASSERT(parent); 467 ASSERT(parent);
473 if (isHTMLOptGroupElement(*parent)) { 468 if (isHTMLOptGroupElement(*parent)) {
474 const ComputedStyle* parentStyle = parent->computedStyle() ? parent- >computedStyle() : parent->ensureComputedStyle(); 469 const ComputedStyle* parentStyle = parent->computedStyle() ? parent- >computedStyle() : parent->ensureComputedStyle();
475 return !parentStyle || parentStyle->display() == NONE; 470 return !parentStyle || parentStyle->display() == NONE;
476 } 471 }
477 } 472 }
478 return m_style->display() == NONE; 473 return m_style->display() == NONE;
479 } 474 }
480 475
481 } // namespace blink 476 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698