| Index: third_party/WebKit/Source/platform/exported/WebURLRequest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/exported/WebURLRequest.cpp b/third_party/WebKit/Source/platform/exported/WebURLRequest.cpp
|
| index 008bb5f1f87842ea770922a55984fb607b425ce2..6c5a96c62304291e393bd9ef1bf0d5516507dd5f 100644
|
| --- a/third_party/WebKit/Source/platform/exported/WebURLRequest.cpp
|
| +++ b/third_party/WebKit/Source/platform/exported/WebURLRequest.cpp
|
| @@ -30,7 +30,6 @@
|
|
|
| #include "public/platform/WebURLRequest.h"
|
|
|
| -#include "platform/exported/WebURLRequestPrivate.h"
|
| #include "platform/network/ResourceRequest.h"
|
| #include "public/platform/WebCachePolicy.h"
|
| #include "public/platform/WebHTTPBody.h"
|
| @@ -65,120 +64,123 @@ private:
|
|
|
| } // namespace
|
|
|
| -// The standard implementation of WebURLRequestPrivate, which maintains
|
| -// ownership of a ResourceRequest instance.
|
| -class WebURLRequestPrivateImpl final : public WebURLRequestPrivate {
|
| - USING_FAST_MALLOC(WebURLRequestPrivate);
|
| -public:
|
| - WebURLRequestPrivateImpl()
|
| - {
|
| - m_resourceRequest = &m_resourceRequestAllocation;
|
| - }
|
| -
|
| - WebURLRequestPrivateImpl(const WebURLRequestPrivate* p)
|
| - : m_resourceRequestAllocation(*p->m_resourceRequest)
|
| - {
|
| - m_resourceRequest = &m_resourceRequestAllocation;
|
| - }
|
| +// The purpose of this struct is to permit allocating a ResourceRequest on the
|
| +// heap, which is otherwise disallowed by DISALLOW_NEW_EXCEPT_PLACEMENT_NEW
|
| +// annotation on ResourceRequest.
|
| +struct WebURLRequest::ResourceRequestContainer {
|
| + ResourceRequestContainer() {}
|
| + explicit ResourceRequestContainer(const ResourceRequest& r) : resourceRequest(r) {}
|
|
|
| - virtual void dispose() { delete this; }
|
| + ResourceRequest resourceRequest;
|
| +};
|
|
|
| -private:
|
| - virtual ~WebURLRequestPrivateImpl() { }
|
| +WebURLRequest::~WebURLRequest()
|
| +{
|
| +}
|
|
|
| - ResourceRequest m_resourceRequestAllocation;
|
| -};
|
| +WebURLRequest::WebURLRequest()
|
| + : m_ownedResourceRequest(new ResourceRequestContainer())
|
| + , m_resourceRequest(&m_ownedResourceRequest->resourceRequest)
|
| +{
|
| +}
|
|
|
| -void WebURLRequest::initialize()
|
| +WebURLRequest::WebURLRequest(const WebURLRequest& r)
|
| + : m_ownedResourceRequest(new ResourceRequestContainer(*r.m_resourceRequest))
|
| + , m_resourceRequest(&m_ownedResourceRequest->resourceRequest)
|
| {
|
| - assign(new WebURLRequestPrivateImpl());
|
| }
|
|
|
| -void WebURLRequest::reset()
|
| +WebURLRequest::WebURLRequest(const WebURL& url)
|
| + : WebURLRequest()
|
| {
|
| - assign(0);
|
| + setURL(url);
|
| }
|
|
|
| -void WebURLRequest::assign(const WebURLRequest& r)
|
| +WebURLRequest& WebURLRequest::operator=(const WebURLRequest& r)
|
| {
|
| + // Copying subclasses that have different m_resourceRequest ownership
|
| + // semantics via this operator is just not supported.
|
| + DCHECK(m_ownedResourceRequest);
|
| + DCHECK(m_resourceRequest);
|
| if (&r != this)
|
| - assign(r.m_private ? new WebURLRequestPrivateImpl(r.m_private) : 0);
|
| + *m_resourceRequest = *r.m_resourceRequest;
|
| + return *this;
|
| }
|
|
|
| bool WebURLRequest::isNull() const
|
| {
|
| - return !m_private || m_private->m_resourceRequest->isNull();
|
| + return m_resourceRequest->isNull();
|
| }
|
|
|
| WebURL WebURLRequest::url() const
|
| {
|
| - return m_private->m_resourceRequest->url();
|
| + return m_resourceRequest->url();
|
| }
|
|
|
| void WebURLRequest::setURL(const WebURL& url)
|
| {
|
| - m_private->m_resourceRequest->setURL(url);
|
| + m_resourceRequest->setURL(url);
|
| }
|
|
|
| WebURL WebURLRequest::firstPartyForCookies() const
|
| {
|
| - return m_private->m_resourceRequest->firstPartyForCookies();
|
| + return m_resourceRequest->firstPartyForCookies();
|
| }
|
|
|
| void WebURLRequest::setFirstPartyForCookies(const WebURL& firstPartyForCookies)
|
| {
|
| - m_private->m_resourceRequest->setFirstPartyForCookies(firstPartyForCookies);
|
| + m_resourceRequest->setFirstPartyForCookies(firstPartyForCookies);
|
| }
|
|
|
| WebSecurityOrigin WebURLRequest::requestorOrigin() const
|
| {
|
| - return m_private->m_resourceRequest->requestorOrigin();
|
| + return m_resourceRequest->requestorOrigin();
|
| }
|
|
|
| void WebURLRequest::setRequestorOrigin(const WebSecurityOrigin& requestorOrigin)
|
| {
|
| - m_private->m_resourceRequest->setRequestorOrigin(requestorOrigin);
|
| + m_resourceRequest->setRequestorOrigin(requestorOrigin);
|
| }
|
|
|
| bool WebURLRequest::allowStoredCredentials() const
|
| {
|
| - return m_private->m_resourceRequest->allowStoredCredentials();
|
| + return m_resourceRequest->allowStoredCredentials();
|
| }
|
|
|
| void WebURLRequest::setAllowStoredCredentials(bool allowStoredCredentials)
|
| {
|
| - m_private->m_resourceRequest->setAllowStoredCredentials(allowStoredCredentials);
|
| + m_resourceRequest->setAllowStoredCredentials(allowStoredCredentials);
|
| }
|
|
|
| WebCachePolicy WebURLRequest::getCachePolicy() const
|
| {
|
| - return m_private->m_resourceRequest->getCachePolicy();
|
| + return m_resourceRequest->getCachePolicy();
|
| }
|
|
|
| void WebURLRequest::setCachePolicy(WebCachePolicy cachePolicy)
|
| {
|
| - m_private->m_resourceRequest->setCachePolicy(cachePolicy);
|
| + m_resourceRequest->setCachePolicy(cachePolicy);
|
| }
|
|
|
| WebString WebURLRequest::httpMethod() const
|
| {
|
| - return m_private->m_resourceRequest->httpMethod();
|
| + return m_resourceRequest->httpMethod();
|
| }
|
|
|
| void WebURLRequest::setHTTPMethod(const WebString& httpMethod)
|
| {
|
| - m_private->m_resourceRequest->setHTTPMethod(httpMethod);
|
| + m_resourceRequest->setHTTPMethod(httpMethod);
|
| }
|
|
|
| WebString WebURLRequest::httpHeaderField(const WebString& name) const
|
| {
|
| - return m_private->m_resourceRequest->httpHeaderField(name);
|
| + return m_resourceRequest->httpHeaderField(name);
|
| }
|
|
|
| void WebURLRequest::setHTTPHeaderField(const WebString& name, const WebString& value)
|
| {
|
| RELEASE_ASSERT(!equalIgnoringCase(name, "referer"));
|
| - m_private->m_resourceRequest->setHTTPHeaderField(name, value);
|
| + m_resourceRequest->setHTTPHeaderField(name, value);
|
| }
|
|
|
| void WebURLRequest::setHTTPReferrer(const WebString& webReferrer, WebReferrerPolicy referrerPolicy)
|
| @@ -187,22 +189,22 @@ void WebURLRequest::setHTTPReferrer(const WebString& webReferrer, WebReferrerPol
|
| // the null WTFString for referrer.
|
| ASSERT(Referrer::noReferrer() == String());
|
| String referrer = webReferrer.isEmpty() ? Referrer::noReferrer() : String(webReferrer);
|
| - m_private->m_resourceRequest->setHTTPReferrer(Referrer(referrer, static_cast<ReferrerPolicy>(referrerPolicy)));
|
| + m_resourceRequest->setHTTPReferrer(Referrer(referrer, static_cast<ReferrerPolicy>(referrerPolicy)));
|
| }
|
|
|
| void WebURLRequest::addHTTPHeaderField(const WebString& name, const WebString& value)
|
| {
|
| - m_private->m_resourceRequest->addHTTPHeaderField(name, value);
|
| + m_resourceRequest->addHTTPHeaderField(name, value);
|
| }
|
|
|
| void WebURLRequest::clearHTTPHeaderField(const WebString& name)
|
| {
|
| - m_private->m_resourceRequest->clearHTTPHeaderField(name);
|
| + m_resourceRequest->clearHTTPHeaderField(name);
|
| }
|
|
|
| void WebURLRequest::visitHTTPHeaderFields(WebHTTPHeaderVisitor* visitor) const
|
| {
|
| - const HTTPHeaderMap& map = m_private->m_resourceRequest->httpHeaderFields();
|
| + const HTTPHeaderMap& map = m_resourceRequest->httpHeaderFields();
|
| for (HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it)
|
| visitor->visitHeader(it->key, it->value);
|
| }
|
| @@ -213,199 +215,199 @@ WebHTTPBody WebURLRequest::httpBody() const
|
| // before any ServiceWorker has a chance to operate, which means we're
|
| // revealing data to the SW that we ought to be hiding. Baby steps.
|
| // https://crbug.com/599597
|
| - if (m_private->m_resourceRequest->attachedCredential())
|
| - return WebHTTPBody(m_private->m_resourceRequest->attachedCredential());
|
| - return WebHTTPBody(m_private->m_resourceRequest->httpBody());
|
| + if (m_resourceRequest->attachedCredential())
|
| + return WebHTTPBody(m_resourceRequest->attachedCredential());
|
| + return WebHTTPBody(m_resourceRequest->httpBody());
|
| }
|
|
|
| void WebURLRequest::setHTTPBody(const WebHTTPBody& httpBody)
|
| {
|
| - m_private->m_resourceRequest->setHTTPBody(httpBody);
|
| + m_resourceRequest->setHTTPBody(httpBody);
|
| }
|
|
|
| WebHTTPBody WebURLRequest::attachedCredential() const
|
| {
|
| - return WebHTTPBody(m_private->m_resourceRequest->attachedCredential());
|
| + return WebHTTPBody(m_resourceRequest->attachedCredential());
|
| }
|
|
|
| void WebURLRequest::setAttachedCredential(const WebHTTPBody& attachedCredential)
|
| {
|
| - m_private->m_resourceRequest->setAttachedCredential(attachedCredential);
|
| + m_resourceRequest->setAttachedCredential(attachedCredential);
|
| }
|
|
|
| bool WebURLRequest::reportUploadProgress() const
|
| {
|
| - return m_private->m_resourceRequest->reportUploadProgress();
|
| + return m_resourceRequest->reportUploadProgress();
|
| }
|
|
|
| void WebURLRequest::setReportUploadProgress(bool reportUploadProgress)
|
| {
|
| - m_private->m_resourceRequest->setReportUploadProgress(reportUploadProgress);
|
| + m_resourceRequest->setReportUploadProgress(reportUploadProgress);
|
| }
|
|
|
| void WebURLRequest::setReportRawHeaders(bool reportRawHeaders)
|
| {
|
| - m_private->m_resourceRequest->setReportRawHeaders(reportRawHeaders);
|
| + m_resourceRequest->setReportRawHeaders(reportRawHeaders);
|
| }
|
|
|
| bool WebURLRequest::reportRawHeaders() const
|
| {
|
| - return m_private->m_resourceRequest->reportRawHeaders();
|
| + return m_resourceRequest->reportRawHeaders();
|
| }
|
|
|
| WebURLRequest::RequestContext WebURLRequest::getRequestContext() const
|
| {
|
| - return m_private->m_resourceRequest->requestContext();
|
| + return m_resourceRequest->requestContext();
|
| }
|
|
|
| WebURLRequest::FrameType WebURLRequest::getFrameType() const
|
| {
|
| - return m_private->m_resourceRequest->frameType();
|
| + return m_resourceRequest->frameType();
|
| }
|
|
|
| WebReferrerPolicy WebURLRequest::referrerPolicy() const
|
| {
|
| - return static_cast<WebReferrerPolicy>(m_private->m_resourceRequest->getReferrerPolicy());
|
| + return static_cast<WebReferrerPolicy>(m_resourceRequest->getReferrerPolicy());
|
| }
|
|
|
| void WebURLRequest::addHTTPOriginIfNeeded(const WebString& origin)
|
| {
|
| - m_private->m_resourceRequest->addHTTPOriginIfNeeded(WebSecurityOrigin::createFromString(origin));
|
| + m_resourceRequest->addHTTPOriginIfNeeded(WebSecurityOrigin::createFromString(origin));
|
| }
|
|
|
| bool WebURLRequest::hasUserGesture() const
|
| {
|
| - return m_private->m_resourceRequest->hasUserGesture();
|
| + return m_resourceRequest->hasUserGesture();
|
| }
|
|
|
| void WebURLRequest::setHasUserGesture(bool hasUserGesture)
|
| {
|
| - m_private->m_resourceRequest->setHasUserGesture(hasUserGesture);
|
| + m_resourceRequest->setHasUserGesture(hasUserGesture);
|
| }
|
|
|
| void WebURLRequest::setRequestContext(RequestContext requestContext)
|
| {
|
| - m_private->m_resourceRequest->setRequestContext(requestContext);
|
| + m_resourceRequest->setRequestContext(requestContext);
|
| }
|
|
|
| void WebURLRequest::setFrameType(FrameType frameType)
|
| {
|
| - m_private->m_resourceRequest->setFrameType(frameType);
|
| + m_resourceRequest->setFrameType(frameType);
|
| }
|
|
|
| int WebURLRequest::requestorID() const
|
| {
|
| - return m_private->m_resourceRequest->requestorID();
|
| + return m_resourceRequest->requestorID();
|
| }
|
|
|
| void WebURLRequest::setRequestorID(int requestorID)
|
| {
|
| - m_private->m_resourceRequest->setRequestorID(requestorID);
|
| + m_resourceRequest->setRequestorID(requestorID);
|
| }
|
|
|
| int WebURLRequest::requestorProcessID() const
|
| {
|
| - return m_private->m_resourceRequest->requestorProcessID();
|
| + return m_resourceRequest->requestorProcessID();
|
| }
|
|
|
| void WebURLRequest::setRequestorProcessID(int requestorProcessID)
|
| {
|
| - m_private->m_resourceRequest->setRequestorProcessID(requestorProcessID);
|
| + m_resourceRequest->setRequestorProcessID(requestorProcessID);
|
| }
|
|
|
| int WebURLRequest::appCacheHostID() const
|
| {
|
| - return m_private->m_resourceRequest->appCacheHostID();
|
| + return m_resourceRequest->appCacheHostID();
|
| }
|
|
|
| void WebURLRequest::setAppCacheHostID(int appCacheHostID)
|
| {
|
| - m_private->m_resourceRequest->setAppCacheHostID(appCacheHostID);
|
| + m_resourceRequest->setAppCacheHostID(appCacheHostID);
|
| }
|
|
|
| bool WebURLRequest::downloadToFile() const
|
| {
|
| - return m_private->m_resourceRequest->downloadToFile();
|
| + return m_resourceRequest->downloadToFile();
|
| }
|
|
|
| void WebURLRequest::setDownloadToFile(bool downloadToFile)
|
| {
|
| - m_private->m_resourceRequest->setDownloadToFile(downloadToFile);
|
| + m_resourceRequest->setDownloadToFile(downloadToFile);
|
| }
|
|
|
| bool WebURLRequest::useStreamOnResponse() const
|
| {
|
| - return m_private->m_resourceRequest->useStreamOnResponse();
|
| + return m_resourceRequest->useStreamOnResponse();
|
| }
|
|
|
| void WebURLRequest::setUseStreamOnResponse(bool useStreamOnResponse)
|
| {
|
| - m_private->m_resourceRequest->setUseStreamOnResponse(useStreamOnResponse);
|
| + m_resourceRequest->setUseStreamOnResponse(useStreamOnResponse);
|
| }
|
|
|
| WebURLRequest::SkipServiceWorker WebURLRequest::skipServiceWorker() const
|
| {
|
| - return m_private->m_resourceRequest->skipServiceWorker();
|
| + return m_resourceRequest->skipServiceWorker();
|
| }
|
|
|
| void WebURLRequest::setSkipServiceWorker(WebURLRequest::SkipServiceWorker skipServiceWorker)
|
| {
|
| - m_private->m_resourceRequest->setSkipServiceWorker(skipServiceWorker);
|
| + m_resourceRequest->setSkipServiceWorker(skipServiceWorker);
|
| }
|
|
|
| bool WebURLRequest::shouldResetAppCache() const
|
| {
|
| - return m_private->m_resourceRequest->shouldResetAppCache();
|
| + return m_resourceRequest->shouldResetAppCache();
|
| }
|
|
|
| void WebURLRequest::setShouldResetAppCache(bool setShouldResetAppCache)
|
| {
|
| - m_private->m_resourceRequest->setShouldResetAppCache(setShouldResetAppCache);
|
| + m_resourceRequest->setShouldResetAppCache(setShouldResetAppCache);
|
| }
|
|
|
| WebURLRequest::FetchRequestMode WebURLRequest::getFetchRequestMode() const
|
| {
|
| - return m_private->m_resourceRequest->fetchRequestMode();
|
| + return m_resourceRequest->fetchRequestMode();
|
| }
|
|
|
| void WebURLRequest::setFetchRequestMode(WebURLRequest::FetchRequestMode mode)
|
| {
|
| - return m_private->m_resourceRequest->setFetchRequestMode(mode);
|
| + return m_resourceRequest->setFetchRequestMode(mode);
|
| }
|
|
|
| WebURLRequest::FetchCredentialsMode WebURLRequest::getFetchCredentialsMode() const
|
| {
|
| - return m_private->m_resourceRequest->fetchCredentialsMode();
|
| + return m_resourceRequest->fetchCredentialsMode();
|
| }
|
|
|
| void WebURLRequest::setFetchCredentialsMode(WebURLRequest::FetchCredentialsMode mode)
|
| {
|
| - return m_private->m_resourceRequest->setFetchCredentialsMode(mode);
|
| + return m_resourceRequest->setFetchCredentialsMode(mode);
|
| }
|
|
|
| WebURLRequest::FetchRedirectMode WebURLRequest::getFetchRedirectMode() const
|
| {
|
| - return m_private->m_resourceRequest->fetchRedirectMode();
|
| + return m_resourceRequest->fetchRedirectMode();
|
| }
|
|
|
| void WebURLRequest::setFetchRedirectMode(WebURLRequest::FetchRedirectMode redirect)
|
| {
|
| - return m_private->m_resourceRequest->setFetchRedirectMode(redirect);
|
| + return m_resourceRequest->setFetchRedirectMode(redirect);
|
| }
|
|
|
| WebURLRequest::LoFiState WebURLRequest::getLoFiState() const
|
| {
|
| - return m_private->m_resourceRequest->loFiState();
|
| + return m_resourceRequest->loFiState();
|
| }
|
|
|
| void WebURLRequest::setLoFiState(WebURLRequest::LoFiState loFiState)
|
| {
|
| - return m_private->m_resourceRequest->setLoFiState(loFiState);
|
| + return m_resourceRequest->setLoFiState(loFiState);
|
| }
|
|
|
| WebURLRequest::ExtraData* WebURLRequest::getExtraData() const
|
| {
|
| - RefPtr<ResourceRequest::ExtraData> data = m_private->m_resourceRequest->getExtraData();
|
| + RefPtr<ResourceRequest::ExtraData> data = m_resourceRequest->getExtraData();
|
| if (!data)
|
| return 0;
|
| return static_cast<ExtraDataContainer*>(data.get())->getExtraData();
|
| @@ -413,84 +415,74 @@ WebURLRequest::ExtraData* WebURLRequest::getExtraData() const
|
|
|
| void WebURLRequest::setExtraData(WebURLRequest::ExtraData* extraData)
|
| {
|
| - m_private->m_resourceRequest->setExtraData(ExtraDataContainer::create(extraData));
|
| + m_resourceRequest->setExtraData(ExtraDataContainer::create(extraData));
|
| }
|
|
|
| ResourceRequest& WebURLRequest::toMutableResourceRequest()
|
| {
|
| - ASSERT(m_private);
|
| - ASSERT(m_private->m_resourceRequest);
|
| -
|
| - return *m_private->m_resourceRequest;
|
| + DCHECK(m_resourceRequest);
|
| + return *m_resourceRequest;
|
| }
|
|
|
| WebURLRequest::Priority WebURLRequest::getPriority() const
|
| {
|
| return static_cast<WebURLRequest::Priority>(
|
| - m_private->m_resourceRequest->priority());
|
| + m_resourceRequest->priority());
|
| }
|
|
|
| void WebURLRequest::setPriority(WebURLRequest::Priority priority)
|
| {
|
| - m_private->m_resourceRequest->setPriority(
|
| + m_resourceRequest->setPriority(
|
| static_cast<ResourceLoadPriority>(priority));
|
| }
|
|
|
| bool WebURLRequest::checkForBrowserSideNavigation() const
|
| {
|
| - return m_private->m_resourceRequest->checkForBrowserSideNavigation();
|
| + return m_resourceRequest->checkForBrowserSideNavigation();
|
| }
|
|
|
| void WebURLRequest::setCheckForBrowserSideNavigation(bool check)
|
| {
|
| - m_private->m_resourceRequest->setCheckForBrowserSideNavigation(check);
|
| + m_resourceRequest->setCheckForBrowserSideNavigation(check);
|
| }
|
|
|
| double WebURLRequest::uiStartTime() const
|
| {
|
| - return m_private->m_resourceRequest->uiStartTime();
|
| + return m_resourceRequest->uiStartTime();
|
| }
|
|
|
| void WebURLRequest::setUiStartTime(double time)
|
| {
|
| - m_private->m_resourceRequest->setUIStartTime(time);
|
| + m_resourceRequest->setUIStartTime(time);
|
| }
|
|
|
| bool WebURLRequest::isExternalRequest() const
|
| {
|
| - return m_private->m_resourceRequest->isExternalRequest();
|
| + return m_resourceRequest->isExternalRequest();
|
| }
|
|
|
| WebURLRequest::InputToLoadPerfMetricReportPolicy WebURLRequest::inputPerfMetricReportPolicy() const
|
| {
|
| return static_cast<WebURLRequest::InputToLoadPerfMetricReportPolicy>(
|
| - m_private->m_resourceRequest->inputPerfMetricReportPolicy());
|
| + m_resourceRequest->inputPerfMetricReportPolicy());
|
| }
|
|
|
| void WebURLRequest::setInputPerfMetricReportPolicy(
|
| WebURLRequest::InputToLoadPerfMetricReportPolicy policy)
|
| {
|
| - m_private->m_resourceRequest->setInputPerfMetricReportPolicy(
|
| + m_resourceRequest->setInputPerfMetricReportPolicy(
|
| static_cast<blink::InputToLoadPerfMetricReportPolicy>(policy));
|
| }
|
|
|
| const ResourceRequest& WebURLRequest::toResourceRequest() const
|
| {
|
| - ASSERT(m_private);
|
| - ASSERT(m_private->m_resourceRequest);
|
| -
|
| - return *m_private->m_resourceRequest;
|
| + DCHECK(m_resourceRequest);
|
| + return *m_resourceRequest;
|
| }
|
|
|
| -void WebURLRequest::assign(WebURLRequestPrivate* p)
|
| +WebURLRequest::WebURLRequest(ResourceRequest& r)
|
| + : m_resourceRequest(&r)
|
| {
|
| - // Subclasses may call this directly so a self-assignment check is needed
|
| - // here as well as in the public assign method.
|
| - if (m_private == p)
|
| - return;
|
| - if (m_private)
|
| - m_private->dispose();
|
| - m_private = p;
|
| }
|
|
|
| } // namespace blink
|
|
|