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

Unified Diff: third_party/WebKit/Source/core/fetch/ResourceLoader.cpp

Issue 2109843003: Adds enableVirtualTime and setVirtualTimePolicy To Emulation domain. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test crash Created 4 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
Index: third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
diff --git a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
index 2be163c8007ac3cbd6c698124b132e8482bdc250..60d41a00c415562cc0790d350e1ca870066ea46c 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
@@ -42,6 +42,7 @@
#include "public/platform/WebURLError.h"
#include "public/platform/WebURLRequest.h"
#include "public/platform/WebURLResponse.h"
+#include "public/platform/WebViewScheduler.h"
#include "wtf/Assertions.h"
#include "wtf/CurrentTime.h"
#include "wtf/PtrUtil.h"
@@ -56,7 +57,8 @@ ResourceLoader* ResourceLoader::create(ResourceFetcher* fetcher, Resource* resou
ResourceLoader::ResourceLoader(ResourceFetcher* fetcher, Resource* resource)
: m_fetcher(fetcher)
- , m_resource(resource)
+ , m_resource(resource),
+ m_webViewScheduler(nullptr)
{
ASSERT(m_resource);
ASSERT(m_fetcher);
@@ -74,7 +76,7 @@ DEFINE_TRACE(ResourceLoader)
visitor->trace(m_resource);
}
-void ResourceLoader::start(const ResourceRequest& request, WebTaskRunner* loadingTaskRunner, bool defersLoading)
+void ResourceLoader::start(const ResourceRequest& request, WebTaskRunner* loadingTaskRunner, WeakPtr<WebViewScheduler> webViewScheduler, bool defersLoading)
{
ASSERT(!m_loader);
if (m_resource->options().synchronousPolicy == RequestSynchronously && defersLoading) {
@@ -82,11 +84,16 @@ void ResourceLoader::start(const ResourceRequest& request, WebTaskRunner* loadin
return;
}
+ m_webViewScheduler = std::move(webViewScheduler);
+
m_loader = wrapUnique(Platform::current()->createURLLoader());
m_loader->setDefersLoading(defersLoading);
ASSERT(m_loader);
m_loader->setLoadingTaskRunner(loadingTaskRunner);
+ if (m_webViewScheduler)
+ m_webViewScheduler->incrementPendingResourceLoadCount();
+
if (m_resource->options().synchronousPolicy == RequestSynchronously)
requestSynchronously(request);
else
@@ -214,12 +221,18 @@ void ResourceLoader::didFinishLoading(WebURLLoader*, double finishTime, int64_t
{
m_loader.reset();
m_fetcher->didFinishLoading(m_resource.get(), finishTime, encodedDataLength, ResourceFetcher::DidFinishLoading);
+
+ if (m_webViewScheduler)
+ m_webViewScheduler->decrementPendingResourceLoadCount();
}
void ResourceLoader::didFail(WebURLLoader*, const WebURLError& error)
{
m_loader.reset();
m_fetcher->didFailLoading(m_resource.get(), error);
+
+ if (m_webViewScheduler)
+ m_webViewScheduler->decrementPendingResourceLoadCount();
}
void ResourceLoader::requestSynchronously(const ResourceRequest& request)

Powered by Google App Engine
This is Rietveld 408576698