| 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..2a66f8b0c9e3e4b49b61744fc4f66a7446b6e5a6 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, 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 = webViewScheduler;
|
| +
|
| m_loader = wrapUnique(Platform::current()->createURLLoader());
|
| m_loader->setDefersLoading(defersLoading);
|
| ASSERT(m_loader);
|
| m_loader->setLoadingTaskRunner(loadingTaskRunner);
|
|
|
| + if (m_webViewScheduler)
|
| + m_webViewScheduler->incrementPendingResorceLoadCount();
|
| +
|
| 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->decrementPendingResorceLoadCount();
|
| }
|
|
|
| void ResourceLoader::didFail(WebURLLoader*, const WebURLError& error)
|
| {
|
| m_loader.reset();
|
| m_fetcher->didFailLoading(m_resource.get(), error);
|
| +
|
| + if (m_webViewScheduler)
|
| + m_webViewScheduler->decrementPendingResorceLoadCount();
|
| }
|
|
|
| void ResourceLoader::requestSynchronously(const ResourceRequest& request)
|
|
|