18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *           (C) 1999 Antti Koivisto (koivisto@kde.org)
45af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Copyright (C) 2004, 2006, 2010 Apple Inc. All rights reserved.
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful,
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details.
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB.  If not, write to
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA.
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef HTMLParamElement_h
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HTMLParamElement_h
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "HTMLElement.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass HTMLParamElement : public HTMLElement {
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
325af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    static PassRefPtr<HTMLParamElement> create(const QualifiedName&, Document*);
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    String name() const { return m_name; }
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    String value() const { return m_value; }
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
372fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    static bool isURLParameter(const String&);
382fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
395af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeprivate:
405af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    HTMLParamElement(const QualifiedName&, Document*);
415af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
425af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    virtual void parseMappedAttribute(Attribute*);
435af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
445af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    virtual bool isURLAttribute(Attribute*) const;
455af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
48e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block    // FIXME: These don't need to be stored as members and instead
49e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block    // name() value() could use getAttribute(nameAttr/valueAttr).
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    AtomicString m_name;
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    AtomicString m_value;
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
54e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block} // namespace WebCore
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
57