WebMutableURLRequest.h [plain text]
#ifndef WebMutableURLRequest_H
#define WebMutableURLRequest_H
#include "WebKit.h"
#include <WebCore/ResourceRequest.h>
namespace WebCore
{
class FormData;
}
inline WebCore::ResourceRequestCachePolicy core(WebURLRequestCachePolicy policy)
{
return static_cast<WebCore::ResourceRequestCachePolicy>(policy);
}
inline WebURLRequestCachePolicy kit(WebCore::ResourceRequestCachePolicy policy)
{
return static_cast<WebURLRequestCachePolicy>(policy);
}
class WebMutableURLRequest : public IWebMutableURLRequest, IWebMutableURLRequestPrivate
{
public:
static WebMutableURLRequest* createInstance();
static WebMutableURLRequest* createInstance(IWebMutableURLRequest* req);
static WebMutableURLRequest* createInstance(const WebCore::ResourceRequest&);
static WebMutableURLRequest* createImmutableInstance();
static WebMutableURLRequest* createImmutableInstance(const WebCore::ResourceRequest&);
protected:
WebMutableURLRequest(bool isMutable);
~WebMutableURLRequest();
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef();
virtual ULONG STDMETHODCALLTYPE Release();
virtual HRESULT STDMETHODCALLTYPE requestWithURL(_In_ BSTR theURL, WebURLRequestCachePolicy, double timeoutInterval);
virtual HRESULT STDMETHODCALLTYPE allHTTPHeaderFields(_COM_Outptr_opt_ IPropertyBag** result);
virtual HRESULT STDMETHODCALLTYPE cachePolicy(_Out_ WebURLRequestCachePolicy*);
virtual HRESULT STDMETHODCALLTYPE HTTPBody(_COM_Outptr_opt_ IStream** result);
virtual HRESULT STDMETHODCALLTYPE HTTPBodyStream(_COM_Outptr_opt_ IStream** result);
virtual HRESULT STDMETHODCALLTYPE HTTPMethod(__deref_opt_out BSTR*);
virtual HRESULT STDMETHODCALLTYPE HTTPShouldHandleCookies(_Out_ BOOL*);
virtual HRESULT STDMETHODCALLTYPE initWithURL(_In_ BSTR url, WebURLRequestCachePolicy, double timeoutInterval);
virtual HRESULT STDMETHODCALLTYPE mainDocumentURL(__deref_opt_out BSTR*);
virtual HRESULT STDMETHODCALLTYPE timeoutInterval(_Out_ double*);
virtual HRESULT STDMETHODCALLTYPE URL(__deref_opt_out BSTR*);
virtual HRESULT STDMETHODCALLTYPE valueForHTTPHeaderField(_In_ BSTR field, __deref_opt_out BSTR* result);
virtual HRESULT STDMETHODCALLTYPE isEmpty(_Out_ BOOL*);
virtual HRESULT STDMETHODCALLTYPE mutableCopy(_COM_Outptr_opt_ IWebMutableURLRequest**);
virtual HRESULT STDMETHODCALLTYPE isEqual(_In_opt_ IWebURLRequest* other, _Out_ BOOL* result);
virtual HRESULT STDMETHODCALLTYPE addValue(_In_ BSTR value, _In_ BSTR field);
virtual HRESULT STDMETHODCALLTYPE setAllHTTPHeaderFields(_In_opt_ IPropertyBag*);
virtual HRESULT STDMETHODCALLTYPE setCachePolicy(WebURLRequestCachePolicy);
virtual HRESULT STDMETHODCALLTYPE setHTTPBody(_In_opt_ IStream*);
virtual HRESULT STDMETHODCALLTYPE setHTTPBodyStream(_In_opt_ IStream*);
virtual HRESULT STDMETHODCALLTYPE setHTTPMethod(_In_ BSTR);
virtual HRESULT STDMETHODCALLTYPE setHTTPShouldHandleCookies(BOOL);
virtual HRESULT STDMETHODCALLTYPE setMainDocumentURL(_In_ BSTR);
virtual HRESULT STDMETHODCALLTYPE setTimeoutInterval(double);
virtual HRESULT STDMETHODCALLTYPE setURL(_In_ BSTR);
virtual HRESULT STDMETHODCALLTYPE setValue(_In_ BSTR value, _In_ BSTR field);
virtual HRESULT STDMETHODCALLTYPE setAllowsAnyHTTPSCertificate();
virtual HRESULT STDMETHODCALLTYPE setClientCertificate(ULONG_PTR);
virtual CFURLRequestRef STDMETHODCALLTYPE cfRequest();
void setFormData(RefPtr<WebCore::FormData>&&);
const RefPtr<WebCore::FormData> formData() const;
const WebCore::HTTPHeaderMap& httpHeaderFields() const;
const WebCore::ResourceRequest& resourceRequest() const;
protected:
ULONG m_refCount { 0 };
bool m_isMutable;
WebCore::ResourceRequest m_request;
};
#endif