OLD | NEW |
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 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) | 7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) |
8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
10 * Copyright (C) 2012 Samsung Electronics. All rights reserved. | 10 * Copyright (C) 2012 Samsung Electronics. All rights reserved. |
(...skipping 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 if (!dataList) | 1576 if (!dataList) |
1577 return false; | 1577 return false; |
1578 HTMLDataListOptionsCollection* options = dataList->options(); | 1578 HTMLDataListOptionsCollection* options = dataList->options(); |
1579 for (unsigned i = 0; HTMLOptionElement* option = options->item(i); ++i) { | 1579 for (unsigned i = 0; HTMLOptionElement* option = options->item(i); ++i) { |
1580 if (isValidValue(option->value())) | 1580 if (isValidValue(option->value())) |
1581 return true; | 1581 return true; |
1582 } | 1582 } |
1583 return false; | 1583 return false; |
1584 } | 1584 } |
1585 | 1585 |
| 1586 HeapVector<Member<HTMLOptionElement>> HTMLInputElement::filteredDataListOptions(
) const |
| 1587 { |
| 1588 HeapVector<Member<HTMLOptionElement>> filtered; |
| 1589 HTMLDataListElement* dataList = this->dataList(); |
| 1590 if (!dataList) |
| 1591 return filtered; |
| 1592 |
| 1593 String prefix = innerEditorValue(); |
| 1594 if (multiple() && type() == InputTypeNames::email) { |
| 1595 Vector<String> emails; |
| 1596 prefix.split(',', true, emails); |
| 1597 if (!emails.isEmpty()) |
| 1598 prefix = emails.last().stripWhiteSpace(); |
| 1599 } |
| 1600 |
| 1601 HTMLDataListOptionsCollection* options = dataList->options(); |
| 1602 filtered.reserveCapacity(options->length()); |
| 1603 prefix = prefix.lower(); |
| 1604 for (unsigned i = 0; i < options->length(); ++i) { |
| 1605 HTMLOptionElement* option = options->item(i); |
| 1606 DCHECK(option); |
| 1607 if (!option->value().lower().startsWith(prefix) || !isValidValue(option-
>value())) |
| 1608 continue; |
| 1609 filtered.append(option); |
| 1610 } |
| 1611 return filtered; |
| 1612 } |
| 1613 |
1586 void HTMLInputElement::setListAttributeTargetObserver(ListAttributeTargetObserve
r* newObserver) | 1614 void HTMLInputElement::setListAttributeTargetObserver(ListAttributeTargetObserve
r* newObserver) |
1587 { | 1615 { |
1588 if (m_listAttributeTargetObserver) | 1616 if (m_listAttributeTargetObserver) |
1589 m_listAttributeTargetObserver->unregister(); | 1617 m_listAttributeTargetObserver->unregister(); |
1590 m_listAttributeTargetObserver = newObserver; | 1618 m_listAttributeTargetObserver = newObserver; |
1591 } | 1619 } |
1592 | 1620 |
1593 void HTMLInputElement::resetListAttributeTargetObserver() | 1621 void HTMLInputElement::resetListAttributeTargetObserver() |
1594 { | 1622 { |
1595 if (isConnected()) | 1623 if (isConnected()) |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1914 { | 1942 { |
1915 return m_inputTypeView->hasFallbackContent(); | 1943 return m_inputTypeView->hasFallbackContent(); |
1916 } | 1944 } |
1917 | 1945 |
1918 void HTMLInputElement::setFilesFromPaths(const Vector<String>& paths) | 1946 void HTMLInputElement::setFilesFromPaths(const Vector<String>& paths) |
1919 { | 1947 { |
1920 return m_inputType->setFilesFromPaths(paths); | 1948 return m_inputType->setFilesFromPaths(paths); |
1921 } | 1949 } |
1922 | 1950 |
1923 } // namespace blink | 1951 } // namespace blink |
OLD | NEW |