Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Unified Diff: Source/core/loader/PingLoader.cpp

Issue 232053005: Implement navigator.sendBeacon() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Adjust unrelated test expectation Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/loader/PingLoader.cpp
diff --git a/Source/core/loader/PingLoader.cpp b/Source/core/loader/PingLoader.cpp
index 3a078b35cce96159cfffb0b08f31618fc04a43fa..7f61de567dab9e4079aaa2fcae74acbe6cb9ec0a 100644
--- a/Source/core/loader/PingLoader.cpp
+++ b/Source/core/loader/PingLoader.cpp
@@ -36,22 +36,10 @@
#include "core/dom/Document.h"
#include "core/fetch/FetchContext.h"
#include "core/frame/LocalFrame.h"
-#include "core/inspector/InspectorInstrumentation.h"
-#include "core/loader/FrameLoader.h"
-#include "core/loader/FrameLoaderClient.h"
-#include "core/loader/UniqueIdentifier.h"
-#include "core/page/Page.h"
-#include "platform/exported/WrappedResourceRequest.h"
#include "platform/network/FormData.h"
-#include "platform/network/ResourceError.h"
#include "platform/network/ResourceRequest.h"
-#include "platform/network/ResourceResponse.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "platform/weborigin/SecurityPolicy.h"
-#include "public/platform/Platform.h"
-#include "public/platform/WebURLLoader.h"
-#include "public/platform/WebURLResponse.h"
-#include "wtf/OwnPtr.h"
namespace WebCore {
@@ -69,7 +57,7 @@ void PingLoader::loadImage(LocalFrame* frame, const KURL& url)
FetchInitiatorInfo initiatorInfo;
initiatorInfo.name = FetchInitiatorTypeNames::ping;
- PingLoader::start(frame, request, initiatorInfo);
+ SimplexLoader::start(frame, request, initiatorInfo);
}
// http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing
@@ -98,7 +86,7 @@ void PingLoader::sendPing(LocalFrame* frame, const KURL& pingURL, const KURL& de
FetchInitiatorInfo initiatorInfo;
initiatorInfo.name = FetchInitiatorTypeNames::ping;
- PingLoader::start(frame, request, initiatorInfo);
+ SimplexLoader::start(frame, request, initiatorInfo);
}
void PingLoader::sendViolationReport(LocalFrame* frame, const KURL& reportURL, PassRefPtr<FormData> report, ViolationReportType type)
@@ -112,77 +100,7 @@ void PingLoader::sendViolationReport(LocalFrame* frame, const KURL& reportURL, P
FetchInitiatorInfo initiatorInfo;
initiatorInfo.name = FetchInitiatorTypeNames::violationreport;
- PingLoader::start(frame, request, initiatorInfo, SecurityOrigin::create(reportURL)->isSameSchemeHostPort(frame->document()->securityOrigin()) ? AllowStoredCredentials : DoNotAllowStoredCredentials);
-}
-
-void PingLoader::start(LocalFrame* frame, ResourceRequest& request, const FetchInitiatorInfo& initiatorInfo, StoredCredentials credentialsAllowed)
-{
- OwnPtr<PingLoader> pingLoader = adoptPtr(new PingLoader(frame, request, initiatorInfo, credentialsAllowed));
-
- // Leak the ping loader, since it will kill itself as soon as it receives a response.
- PingLoader* ALLOW_UNUSED leakedPingLoader = pingLoader.leakPtr();
-}
-
-PingLoader::PingLoader(LocalFrame* frame, ResourceRequest& request, const FetchInitiatorInfo& initiatorInfo, StoredCredentials credentialsAllowed)
- : PageLifecycleObserver(frame->page())
- , m_timeout(this, &PingLoader::timeout)
- , m_url(request.url())
- , m_identifier(createUniqueIdentifier())
-{
- frame->loader().client()->didDispatchPingLoader(request.url());
-
- m_loader = adoptPtr(blink::Platform::current()->createURLLoader());
- ASSERT(m_loader);
- blink::WrappedResourceRequest wrappedRequest(request);
- wrappedRequest.setAllowStoredCredentials(credentialsAllowed == AllowStoredCredentials);
- m_loader->loadAsynchronously(wrappedRequest, this);
-
- InspectorInstrumentation::willSendRequest(frame, m_identifier, frame->loader().documentLoader(), request, ResourceResponse(), initiatorInfo);
-
- // If the server never responds, FrameLoader won't be able to cancel this load and
- // we'll sit here waiting forever. Set a very generous timeout, just in case.
- m_timeout.startOneShot(60000, FROM_HERE);
-}
-
-PingLoader::~PingLoader()
-{
- if (m_loader)
- m_loader->cancel();
-}
-
-void PingLoader::didReceiveResponse(blink::WebURLLoader*, const blink::WebURLResponse&)
-{
- if (Page* page = this->page())
- InspectorInstrumentation::didFailLoading(page->mainFrame(), m_identifier, ResourceError::cancelledError(m_url));
- delete this;
-}
-
-void PingLoader::didReceiveData(blink::WebURLLoader*, const char* data, int dataLength, int encodedDataLength)
-{
- if (Page* page = this->page())
- InspectorInstrumentation::didFailLoading(page->mainFrame(), m_identifier, ResourceError::cancelledError(m_url));
- delete this;
-}
-
-void PingLoader::didFinishLoading(blink::WebURLLoader*, double, int64_t)
-{
- if (Page* page = this->page())
- InspectorInstrumentation::didFailLoading(page->mainFrame(), m_identifier, ResourceError::cancelledError(m_url));
- delete this;
-}
-
-void PingLoader::didFail(blink::WebURLLoader*, const blink::WebURLError& resourceError)
-{
- if (Page* page = this->page())
- InspectorInstrumentation::didFailLoading(page->mainFrame(), m_identifier, ResourceError(resourceError));
- delete this;
-}
-
-void PingLoader::timeout(Timer<PingLoader>*)
-{
- if (Page* page = this->page())
- InspectorInstrumentation::didFailLoading(page->mainFrame(), m_identifier, ResourceError::cancelledError(m_url));
- delete this;
+ SimplexLoader::start(frame, request, initiatorInfo, SecurityOrigin::create(reportURL)->isSameSchemeHostPort(frame->document()->securityOrigin()) ? AllowStoredCredentials : DoNotAllowStoredCredentials);
}
}

Powered by Google App Engine
This is Rietveld 408576698