15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Copyright (C) 2008 Apple Inc. All rights reserved.
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    This library is free software; you can redistribute it and/or
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    modify it under the terms of the GNU Library General Public
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    License as published by the Free Software Foundation; either
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    version 2 of the License, or (at your option) any later version.
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    This library is distributed in the hope that it will be useful,
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    but WITHOUT ANY WARRANTY; without even the implied warranty of
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Library General Public License for more details.
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    You should have received a copy of the GNU Library General Public License
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    along with this library; see the file COPYING.LIB.  If not, write to
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Boston, MA 02110-1301, USA.
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)*/
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef DOMMimeTypeArray_h
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define DOMMimeTypeArray_h
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/ScriptWrappable.h"
251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "core/frame/DOMWindowProperty.h"
2653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/plugins/DOMMimeType.h"
27f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#include "platform/heap/Handle.h"
287757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch#include "wtf/Forward.h"
297757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch#include "wtf/PassRefPtr.h"
307757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch#include "wtf/RefCounted.h"
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
32c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class LocalFrame;
355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class PluginData;
365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass DOMMimeTypeArray FINAL : public RefCountedWillBeGarbageCollected<DOMMimeTypeArray>, public ScriptWrappable, public DOMWindowProperty {
387242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    DEFINE_WRAPPERTYPEINFO();
397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DOMMimeTypeArray);
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public:
41d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    static PassRefPtrWillBeRawPtr<DOMMimeTypeArray> create(LocalFrame* frame)
4209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    {
4309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        return adoptRefWillBeNoop(new DOMMimeTypeArray(frame));
4409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    }
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    unsigned length() const;
4709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    PassRefPtrWillBeRawPtr<DOMMimeType> item(unsigned index);
485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool canGetItemsForName(const AtomicString& propertyName);
4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    PassRefPtrWillBeRawPtr<DOMMimeType> namedItem(const AtomicString& propertyName);
5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    virtual void trace(Visitor*) OVERRIDE;
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private:
54d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    explicit DOMMimeTypeArray(LocalFrame*);
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    PluginData* getPluginData() const;
565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
58c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // MimeTypeArray_h
61