18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKitDLL.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebMutableURLRequest.h"
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKit.h"
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "MarshallingHelpers.h"
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "WebKit.h"
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <WebCore/BString.h>
34563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <WebCore/COMPtr.h>
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <WebCore/FormData.h>
36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <WebCore/NotImplemented.h>
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <WebCore/ResourceHandle.h>
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/text/CString.h>
39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <wtf/RetainPtr.h>
40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
412bde8e466a4451c7319e3a072d118917957d6554Steve Block#if USE(CF)
422bde8e466a4451c7319e3a072d118917957d6554Steve Block#include <WebCore/CertificateCFWin.h>
432bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif
442bde8e466a4451c7319e3a072d118917957d6554Steve Block
450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#if USE(CFNETWORK)
460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include <CFNetwork/CFURLRequestPriv.h>
470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif
480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WebCore;
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// IWebURLRequest ----------------------------------------------------------------
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest::WebMutableURLRequest(bool isMutable)
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    : m_refCount(0)
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    , m_isMutable(isMutable)
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    gClassCount++;
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    gClassNameCount.add("WebMutableURLRequest");
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest* WebMutableURLRequest::createInstance()
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMutableURLRequest* instance = new WebMutableURLRequest(true);
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->AddRef();
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return instance;
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest* WebMutableURLRequest::createInstance(IWebMutableURLRequest* req)
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMutableURLRequest* instance = new WebMutableURLRequest(true);
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->AddRef();
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->m_request = static_cast<WebMutableURLRequest*>(req)->m_request;
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return instance;
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest* WebMutableURLRequest::createInstance(const ResourceRequest& request)
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMutableURLRequest* instance = new WebMutableURLRequest(true);
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->AddRef();
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->m_request = request;
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return instance;
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest* WebMutableURLRequest::createImmutableInstance()
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMutableURLRequest* instance = new WebMutableURLRequest(false);
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->AddRef();
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return instance;
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest* WebMutableURLRequest::createImmutableInstance(const ResourceRequest& request)
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    WebMutableURLRequest* instance = new WebMutableURLRequest(false);
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->AddRef();
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    instance->m_request = request;
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return instance;
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebMutableURLRequest::~WebMutableURLRequest()
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    gClassCount--;
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    gClassNameCount.remove("WebMutableURLRequest");
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// IUnknown -------------------------------------------------------------------
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::QueryInterface(REFIID riid, void** ppvObject)
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *ppvObject = 0;
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (IsEqualGUID(riid, CLSID_WebMutableURLRequest))
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        *ppvObject = this;
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (IsEqualGUID(riid, IID_IUnknown))
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        *ppvObject = static_cast<IWebURLRequest*>(this);
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (IsEqualGUID(riid, IID_IWebMutableURLRequest) && m_isMutable)
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        *ppvObject = static_cast<IWebMutableURLRequest*>(this);
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (IsEqualGUID(riid, __uuidof(IWebMutableURLRequestPrivate)) && m_isMutable)
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        *ppvObject = static_cast<IWebMutableURLRequestPrivate*>(this);
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else if (IsEqualGUID(riid, IID_IWebURLRequest))
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        *ppvObject = static_cast<IWebURLRequest*>(this);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return E_NOINTERFACE;
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    AddRef();
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectULONG STDMETHODCALLTYPE WebMutableURLRequest::AddRef(void)
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return ++m_refCount;
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectULONG STDMETHODCALLTYPE WebMutableURLRequest::Release(void)
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ULONG newRef = --m_refCount;
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!newRef)
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        delete(this);
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return newRef;
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// IWebURLRequest --------------------------------------------------------------------
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::requestWithURL(
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR /*theURL*/,
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [optional][in] */ WebURLRequestCachePolicy /*cachePolicy*/,
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [optional][in] */ double /*timeoutInterval*/)
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::allHTTPHeaderFields(
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ IPropertyBag** /*result*/)
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::cachePolicy(
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ WebURLRequestCachePolicy* result)
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = kit(m_request.cachePolicy());
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::HTTPBody(
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ IStream** /*result*/)
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::HTTPBodyStream(
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ IStream** /*result*/)
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::HTTPMethod(
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BSTR* result)
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    BString httpMethod = BString(m_request.httpMethod());
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = httpMethod.release();
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::HTTPShouldHandleCookies(
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BOOL* /*result*/)
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::initWithURL(
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR url,
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [optional][in] */ WebURLRequestCachePolicy cachePolicy,
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [optional][in] */ double timeoutInterval)
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setURL(MarshallingHelpers::BSTRToKURL(url));
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setCachePolicy(core(cachePolicy));
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setTimeoutInterval(timeoutInterval);
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::mainDocumentURL(
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BSTR* result)
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    *result = MarshallingHelpers::KURLToBSTR(m_request.firstPartyForCookies());
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::timeoutInterval(
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ double* result)
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = m_request.timeoutInterval();
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::URL(
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BSTR* result)
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = MarshallingHelpers::KURLToBSTR(m_request.url());
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::valueForHTTPHeaderField(
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR field,
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BSTR* result)
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!result) {
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ASSERT_NOT_REACHED();
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return E_POINTER;
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    }
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = BString(m_request.httpHeaderField(String(field, SysStringLen(field)))).release();
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::isEmpty(
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [retval][out] */ BOOL* result)
2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = m_request.isEmpty();
2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
248563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkHRESULT STDMETHODCALLTYPE WebMutableURLRequest::isEqual(
249563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark        /* [in] */ IWebURLRequest* other,
250563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark        /* [out, retval] */ BOOL* result)
251563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark{
252563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    COMPtr<WebMutableURLRequest> requestImpl(Query, other);
253563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
254563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    if (!requestImpl) {
255563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark        *result = FALSE;
256563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark        return S_OK;
257563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    }
258563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
259563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    *result = m_request == requestImpl->resourceRequest();
260563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    return S_OK;
261563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark}
262563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
263563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark
2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// IWebMutableURLRequest --------------------------------------------------------
2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::addValue(
2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR /*value*/,
2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR /*field*/)
2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setAllHTTPHeaderFields(
2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ IPropertyBag* /*headerFields*/)
2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setCachePolicy(
2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ WebURLRequestCachePolicy policy)
2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setCachePolicy(core(policy));
2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setHTTPBody(
2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ IStream* /*data*/)
2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setHTTPBodyStream(
2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ IStream* /*data*/)
2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setHTTPMethod(
3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR method)
3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setHTTPMethod(String(method));
3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setHTTPShouldHandleCookies(
3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BOOL handleCookies)
3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
312231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    m_request.setAllowCookies(handleCookies);
3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setMainDocumentURL(
3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR /*theURL*/)
3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ASSERT_NOT_REACHED();
3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return E_NOTIMPL;
3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setTimeoutInterval(
32428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu    /* [in] */ double timeoutInterval)
3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
32628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu    m_request.setTimeoutInterval(timeoutInterval);
32728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu    return S_OK;
3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setURL(
3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ BSTR url)
3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setURL(MarshallingHelpers::BSTRToKURL(url));
3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setValue(
338563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    /* [in] */ BSTR value,
339563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    /* [in] */ BSTR field)
3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
341563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    String valueString(value, SysStringLen(value));
342563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    String fieldString(field, SysStringLen(field));
343563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    m_request.setHTTPHeaderField(fieldString, valueString);
344563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark    return S_OK;
3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setAllowsAnyHTTPSCertificate(void)
3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ResourceHandle::setHostAllowsAnyHTTPSCertificate(m_request.url().host());
3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::setClientCertificate(
3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* [in] */ OLE_HANDLE cert)
3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!cert)
3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return E_POINTER;
3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    PCCERT_CONTEXT certContext = reinterpret_cast<PCCERT_CONTEXT>((ULONG64)cert);
3612bde8e466a4451c7319e3a072d118917957d6554Steve Block    RetainPtr<CFDataRef> certData = WebCore::copyCertificateToData(certContext);
3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ResourceHandle::setClientCertificate(m_request.url().host(), certData.get());
3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCFURLRequestRef STDMETHODCALLTYPE WebMutableURLRequest::cfRequest()
3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return m_request.cfURLRequest();
3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectHRESULT STDMETHODCALLTYPE WebMutableURLRequest::mutableCopy(
3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        /* [out, retval] */ IWebMutableURLRequest** result)
3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (!result)
3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return E_POINTER;
376635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
377635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if USE(CFNETWORK)
3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    RetainPtr<CFMutableURLRequestRef> mutableRequest(AdoptCF, CFURLRequestCreateMutableCopy(kCFAllocatorDefault, m_request.cfURLRequest()));
3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    *result = createInstance(ResourceRequest(mutableRequest.get()));
3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return S_OK;
381635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#else
382635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   notImplemented();
383635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project   return E_NOTIMPL;
384635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif
3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// IWebMutableURLRequest ----------------------------------------------------
3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid WebMutableURLRequest::setFormData(const PassRefPtr<FormData> data)
3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.setHTTPBody(data);
3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectconst PassRefPtr<FormData> WebMutableURLRequest::formData() const
3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return m_request.httpBody();
3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid WebMutableURLRequest::addHTTPHeaderFields(const HTTPHeaderMap& headerFields)
4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    m_request.addHTTPHeaderFields(headerFields);
4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectconst HTTPHeaderMap& WebMutableURLRequest::httpHeaderFields() const
4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return m_request.httpHeaderFields();
4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectconst ResourceRequest& WebMutableURLRequest::resourceRequest() const
4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return m_request;
4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
413