1323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// found in the LICENSE file.
4323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
5323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#ifndef LinkManifest_h
6323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#define LinkManifest_h
7323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
8323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "core/html/LinkResource.h"
9323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "wtf/FastAllocBase.h"
10323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "wtf/PassOwnPtr.h"
11323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "wtf/RefPtr.h"
12323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
14323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
15323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)class HTMLLinkElement;
16323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
17323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)class LinkManifest FINAL : public LinkResource {
18323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
19323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)public:
20323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
21323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    static PassOwnPtrWillBeRawPtr<LinkManifest> create(HTMLLinkElement* owner);
22323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
23323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual ~LinkManifest();
24323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
25323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    // LinkResource
26323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual void process() OVERRIDE;
27323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual Type type() const OVERRIDE { return Manifest; }
28323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual bool hasLoaded() const OVERRIDE;
29323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual void ownerRemoved() OVERRIDE;
30323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
31323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)private:
32323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    explicit LinkManifest(HTMLLinkElement* owner);
33323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)};
34323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
35323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)}
36323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)
37323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#endif // LinkManifest_h
38