1f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen/*
2f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * Copyright 2010, The Android Open Source Project
3f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *
4f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * Redistribution and use in source and binary forms, with or without
5f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * modification, are permitted provided that the following conditions
6f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * are met:
7f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *  * Redistributions of source code must retain the above copyright
8f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *    notice, this list of conditions and the following disclaimer.
9f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *  * Redistributions in binary form must reproduce the above copyright
10f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *    notice, this list of conditions and the following disclaimer in the
11f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *    documentation and/or other materials provided with the distribution.
12f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen *
13f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen */
25f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
26f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen#ifndef WebUrlLoader_h
27f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen#define WebUrlLoader_h
28f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
29d4a869207d9c64cff5a8ac08cd9cddf473360504Iain Merrick#include "ChromiumIncludes.h"
30f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen#include "ResourceLoaderAndroid.h"
31f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
32f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsenusing namespace WebCore;
33f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
34f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsennamespace android {
35f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsenclass WebUrlLoaderClient;
36021eb475906bf08d90d93e6a3434fe2439e42cf0Kristian Monsenclass WebFrame;
37b84030fc8163cde1f8f055973ef63d3e1670bf52Steve Blockclass WebRequestContext;
38f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
39f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsenclass WebUrlLoader : public ResourceLoaderAndroid {
40f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsenpublic:
41f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen    virtual ~WebUrlLoader();
42990373e4c55ba4f0312b5ab7974388d717d1907cHuahui Wu    static PassRefPtr<WebUrlLoader> start(FrameLoaderClient* client, WebCore::ResourceHandle*, const WebCore::ResourceRequest&, bool isMainResource, bool isMainFrame, bool sync, WebRequestContext*);
43f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
44f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen    virtual void cancel();
45583f3b2e7b569ec9f88e9c481db1eb86a8c0224bIain Merrick    virtual void downloadFile();
469813d91feab65e2257bcaae80146dc9fb77cb75dKristian Monsen    virtual void pauseLoad(bool pause);
47f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
48f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsenprivate:
49021eb475906bf08d90d93e6a3434fe2439e42cf0Kristian Monsen    WebUrlLoader(WebFrame*, WebCore::ResourceHandle*, const WebCore::ResourceRequest&);
50021eb475906bf08d90d93e6a3434fe2439e42cf0Kristian Monsen    static PassRefPtr<WebUrlLoader> create(WebFrame*, WebCore::ResourceHandle*, const WebCore::ResourceRequest&);
51f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
52d4a869207d9c64cff5a8ac08cd9cddf473360504Iain Merrick    scoped_refptr<WebUrlLoaderClient> m_loaderClient;
53f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen};
54f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
55f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen} // namespace android
56f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen
57f48006ff278822e558c43fa7d6635f0ff34342b6Kristian Monsen#endif
58