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

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

Issue 1893673004: Ensure RemoteFontFaceSource doesn't try to start a load in a detached document (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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: third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
index 6d565e3369e5f16cc2f75af42d987695a7370783..57cf31006a1a1d0815b9ebb12486b4521f434d00 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
@@ -42,12 +42,25 @@
#include "platform/testing/URLTestHelpers.h"
#include "platform/weborigin/KURL.h"
#include "public/platform/Platform.h"
+#include "public/platform/WebTaskRunner.h"
#include "public/platform/WebURLLoaderMockFactory.h"
#include "public/platform/WebURLResponse.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
+namespace {
+
+class MockTaskRunner : public blink::WebTaskRunner {
+ void postTask(const WebTraceLocation&, Task*) override { }
+ void postDelayedTask(const WebTraceLocation&, Task*, double) override { }
+ WebTaskRunner* clone() override { return nullptr; }
+ double virtualTimeSeconds() const override { return 0.0; }
+ double monotonicallyIncreasingVirtualTimeSeconds() const override { return 0.0; }
+};
+
+}
+
class ResourceFetcherTestMockFetchContext : public FetchContext {
public:
static ResourceFetcherTestMockFetchContext* create()
@@ -60,6 +73,7 @@ public:
bool allowImage(bool imagesEnabled, const KURL&) const override { return true; }
bool canRequest(Resource::Type, const ResourceRequest&, const KURL&, const ResourceLoaderOptions&, bool forPreload, FetchRequest::OriginRestriction) const override { return true; }
bool shouldLoadNewResource(Resource::Type) const override { return true; }
+ WebTaskRunner* loadingTaskRunner() const override { return m_runner.get(); }
void setCachePolicy(CachePolicy policy) { m_policy = policy; }
CachePolicy getCachePolicy() const override { return m_policy; }
@@ -67,9 +81,11 @@ public:
private:
ResourceFetcherTestMockFetchContext()
: m_policy(CachePolicyVerify)
+ , m_runner(adoptPtr(new MockTaskRunner))
{ }
CachePolicy m_policy;
+ OwnPtr<MockTaskRunner> m_runner;
};
class ResourceFetcherTest : public ::testing::Test {
@@ -96,6 +112,10 @@ TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach)
Resource* resource = fetcher->requestResource(fetchRequest, TestResourceFactory());
EXPECT_EQ(resource, static_cast<Resource*>(nullptr));
EXPECT_EQ(memoryCache()->resourceForURL(secureURL), static_cast<Resource*>(nullptr));
+
+ // Try calling Resource::load directly. This shouldn't crash.
+ Resource* resource2 = Resource::create(secureURL, Resource::Raw);
+ resource2->load(fetcher);
}
TEST_F(ResourceFetcherTest, UseExistingResource)
« no previous file with comments | « third_party/WebKit/Source/core/fetch/Resource.cpp ('k') | third_party/WebKit/Source/platform/testing/weburl_loader_mock.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698