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

Unified Diff: trunk/Source/core/page/Performance.cpp

Issue 16603005: Revert 152077 "[Resource Timing] Expose redirect timing information" (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 7 years, 6 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
« no previous file with comments | « trunk/Source/core/page/Performance.h ('k') | trunk/Source/core/page/PerformanceResourceTiming.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/Source/core/page/Performance.cpp
===================================================================
--- trunk/Source/core/page/Performance.cpp (revision 152082)
+++ trunk/Source/core/page/Performance.cpp (working copy)
@@ -40,8 +40,6 @@
#include "core/page/PerformanceResourceTiming.h"
#include "core/page/PerformanceTiming.h"
#include "core/page/PerformanceUserTiming.h"
-#include "core/page/ResourceTimingInfo.h"
-#include "weborigin/SecurityOrigin.h"
#include <wtf/CurrentTime.h>
#include "core/page/Frame.h"
@@ -161,79 +159,13 @@
dispatchEvent(Event::create(eventNames().webkitresourcetimingbufferfullEvent, false, false));
}
-static bool passesTimingAllowCheck(const ResourceResponse& response, Document* requestingDocument)
+void Performance::addResourceTiming(const String& initiatorName, Document* initiatorDocument, const ResourceRequest& request, const ResourceResponse& response, double initiationTime, double finishTime)
{
- AtomicallyInitializedStatic(AtomicString&, timingAllowOrigin = *new AtomicString("timing-allow-origin"));
-
- RefPtr<SecurityOrigin> resourceOrigin = SecurityOrigin::create(response.url());
- if (resourceOrigin->isSameSchemeHostPort(requestingDocument->securityOrigin()))
- return true;
-
- const String& timingAllowOriginString = response.httpHeaderField(timingAllowOrigin);
- if (timingAllowOriginString.isEmpty() || equalIgnoringCase(timingAllowOriginString, "null"))
- return false;
-
- if (timingAllowOriginString == "*")
- return true;
-
- const String& securityOrigin = requestingDocument->securityOrigin()->toString();
- Vector<String> timingAllowOrigins;
- timingAllowOriginString.split(" ", timingAllowOrigins);
- for (size_t i = 0; i < timingAllowOrigins.size(); ++i) {
- if (timingAllowOrigins[i] == securityOrigin)
- return true;
- }
-
- return false;
-}
-
-static bool allowsTimingRedirect(const Vector<ResourceResponse>& redirectChain, const ResourceResponse& finalResponse, Document* initiatorDocument)
-{
- if (!passesTimingAllowCheck(finalResponse, initiatorDocument))
- return false;
-
- for (size_t i = 0; i < redirectChain.size(); i++) {
- if (!passesTimingAllowCheck(redirectChain[i], initiatorDocument))
- return false;
- }
-
- return true;
-}
-
-void Performance::addResourceTiming(const ResourceTimingInfo& info, Document* initiatorDocument)
-{
if (isResourceTimingBufferFull())
return;
- const ResourceResponse& finalResponse = info.finalResponse();
- bool allowTimingDetails = passesTimingAllowCheck(finalResponse, initiatorDocument);
- double startTime = info.initialTime();
+ RefPtr<PerformanceEntry> entry = PerformanceResourceTiming::create(initiatorName, request, response, initiationTime, finishTime, initiatorDocument);
- if (info.redirectChain().isEmpty()) {
- RefPtr<PerformanceEntry> entry = PerformanceResourceTiming::create(info, initiatorDocument, startTime, allowTimingDetails);
- addResourceTimingBuffer(entry);
- return;
- }
-
- const Vector<ResourceResponse>& redirectChain = info.redirectChain();
- bool allowRedirectDetails = allowsTimingRedirect(redirectChain, finalResponse, initiatorDocument);
-
- if (!allowRedirectDetails) {
- ResourceLoadTiming* finalTiming = finalResponse.resourceLoadTiming();
- ASSERT(finalTiming);
- startTime = finalTiming->requestTime;
- }
-
- ResourceLoadTiming* lastRedirectTiming = redirectChain.last().resourceLoadTiming();
- ASSERT(lastRedirectTiming);
- double lastRedirectEndTime = lastRedirectTiming->receiveHeadersEnd;
-
- RefPtr<PerformanceEntry> entry = PerformanceResourceTiming::create(info, initiatorDocument, startTime, lastRedirectEndTime, allowTimingDetails, allowRedirectDetails);
- addResourceTimingBuffer(entry);
-}
-
-void Performance::addResourceTimingBuffer(PassRefPtr<PerformanceEntry> entry)
-{
m_resourceTimingBuffer.append(entry);
if (isResourceTimingBufferFull())
« no previous file with comments | « trunk/Source/core/page/Performance.h ('k') | trunk/Source/core/page/PerformanceResourceTiming.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698