1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/*
2635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Copyright (C) 2008 Brent Fulgham <bfulgham@gmail.com>. All Rights Reserved.
3635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project *
4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without
5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions
6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * are met:
7635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project *    documentation and/or other materials provided with the distribution.
12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project *
13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */
25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "config.h"
27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebKitDLL.h"
28635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebDownload.h"
29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
30635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "DefaultDownloadDelegate.h"
31635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "MarshallingHelpers.h"
32635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebError.h"
33635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebKit.h"
34635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebKitLogging.h"
35635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebMutableURLRequest.h"
36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebURLAuthenticationChallenge.h"
37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebURLCredential.h"
38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "WebURLResponse.h"
39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <wtf/platform.h>
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/text/CString.h>
42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <io.h>
44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <sys/stat.h>
45635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <sys/types.h>
46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
47635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/BString.h>
48635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/NotImplemented.h>
49635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/ResourceError.h>
50635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/ResourceHandle.h>
51635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/ResourceRequest.h>
52635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/ResourceResponse.h>
53635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/SystemTime.h>
54635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
55635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectusing namespace WebCore;
56635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
57635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project// WebDownload ----------------------------------------------------------------
58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
59635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid WebDownload::init(ResourceHandle* handle, const ResourceRequest& request, const ResourceResponse& response, IWebDownloadDelegate* delegate)
60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
64635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid WebDownload::init(const KURL& url, IWebDownloadDelegate* delegate)
65635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
67635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
68635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
69635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project// IWebDownload -------------------------------------------------------------------
70635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
71635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::initWithRequest(
72635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebURLRequest* request,
73635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebDownloadDelegate* delegate)
74635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
75635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
76635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
78635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
79635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::initToResumeWithBundle(
80635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ BSTR bundlePath,
81635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebDownloadDelegate* delegate)
82635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
83635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
84635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
85635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
86635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
87635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::start()
88635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
89635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
90635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
91635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
92635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
93635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::cancel()
94635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
95635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
96635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
97635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
98635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
99635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::cancelForResume()
100635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
101635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
102635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
103635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
104635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
105635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::deletesFileUponFailure(
106635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [out, retval] */ BOOL* result)
107635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
108635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
109635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
110635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
111635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
112635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::setDeletesFileUponFailure(
113635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ BOOL deletesFileUponFailure)
114635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
115635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
116635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
117635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
118635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
119635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::setDestination(
120635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ BSTR path,
121635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ BOOL allowOverwrite)
122635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
123635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
124635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
125635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
126635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
127635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project// IWebURLAuthenticationChallengeSender -------------------------------------------------------------------
128635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
129635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::cancelAuthenticationChallenge(
130635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebURLAuthenticationChallenge*)
131635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
132635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
133635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
134635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
135635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
136635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::continueWithoutCredentialForAuthenticationChallenge(
137635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebURLAuthenticationChallenge* challenge)
138635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
139635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
140635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
141635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
142635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
143635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebDownload::useCredential(
144635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebURLCredential* credential,
145635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        /* [in] */ IWebURLAuthenticationChallenge* challenge)
146635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
147635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
148635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_FAIL;
149635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
150