Commit c482fb32 authored by Yutaka Hirano's avatar Yutaka Hirano Committed by Commit Bot

Remove ThreadableLoaderClient::DidFailAccessControlCheck

This is needed to keep CORS handling in DocumentThredableLoader consistent
with that in ResourceLoader.

Bug: 702845
Change-Id: Iee73902e0941fb234aca3c60d996f9c75634222d
Reviewed-on: https://chromium-review.googlesource.com/571343Reviewed-by: default avatarTakeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487411}
parent cdc72a13
...@@ -1071,7 +1071,7 @@ void DocumentThreadableLoader::DispatchDidFailAccessControlCheck( ...@@ -1071,7 +1071,7 @@ void DocumentThreadableLoader::DispatchDidFailAccessControlCheck(
ThreadableLoaderClient* client = client_; ThreadableLoaderClient* client = client_;
Clear(); Clear();
client->DidFailAccessControlCheck(error); client->DidFail(error);
} }
void DocumentThreadableLoader::DispatchDidFail(const ResourceError& error) { void DocumentThreadableLoader::DispatchDidFail(const ResourceError& error) {
......
...@@ -59,9 +59,6 @@ class CORE_EXPORT ThreadableLoaderClient { ...@@ -59,9 +59,6 @@ class CORE_EXPORT ThreadableLoaderClient {
virtual void DidFinishLoading(unsigned long /*identifier*/, virtual void DidFinishLoading(unsigned long /*identifier*/,
double /*finishTime*/) {} double /*finishTime*/) {}
virtual void DidFail(const ResourceError&) {} virtual void DidFail(const ResourceError&) {}
virtual void DidFailAccessControlCheck(const ResourceError& error) {
DidFail(error);
}
virtual void DidFailRedirectCheck() {} virtual void DidFailRedirectCheck() {}
virtual void DidReceiveResourceTiming(const ResourceTimingInfo&) {} virtual void DidReceiveResourceTiming(const ResourceTimingInfo&) {}
......
...@@ -70,7 +70,6 @@ class MockThreadableLoaderClient : public ThreadableLoaderClient { ...@@ -70,7 +70,6 @@ class MockThreadableLoaderClient : public ThreadableLoaderClient {
MOCK_METHOD2(DidReceiveCachedMetadata, void(const char*, int)); MOCK_METHOD2(DidReceiveCachedMetadata, void(const char*, int));
MOCK_METHOD2(DidFinishLoading, void(unsigned long, double)); MOCK_METHOD2(DidFinishLoading, void(unsigned long, double));
MOCK_METHOD1(DidFail, void(const ResourceError&)); MOCK_METHOD1(DidFail, void(const ResourceError&));
MOCK_METHOD1(DidFailAccessControlCheck, void(const ResourceError&));
MOCK_METHOD0(DidFailRedirectCheck, void()); MOCK_METHOD0(DidFailRedirectCheck, void());
MOCK_METHOD1(DidReceiveResourceTiming, void(const ResourceTimingInfo&)); MOCK_METHOD1(DidReceiveResourceTiming, void(const ResourceTimingInfo&));
MOCK_METHOD1(DidDownloadData, void(int)); MOCK_METHOD1(DidDownloadData, void(int));
...@@ -699,7 +698,7 @@ TEST_P(ThreadableLoaderTest, DidFailAccessControlCheck) { ...@@ -699,7 +698,7 @@ TEST_P(ThreadableLoaderTest, DidFailAccessControlCheck) {
EXPECT_CALL(GetCheckpoint(), Call(2)); EXPECT_CALL(GetCheckpoint(), Call(2));
EXPECT_CALL( EXPECT_CALL(
*Client(), *Client(),
DidFailAccessControlCheck(ResourceError::CancelledDueToAccessCheckError( DidFail(ResourceError::CancelledDueToAccessCheckError(
SuccessURL(), ResourceRequestBlockedReason::kOther, SuccessURL(), ResourceRequestBlockedReason::kOther,
"No 'Access-Control-Allow-Origin' header is present on the requested " "No 'Access-Control-Allow-Origin' header is present on the requested "
"resource. Origin 'null' is therefore not allowed access."))); "resource. Origin 'null' is therefore not allowed access.")));
...@@ -709,36 +708,6 @@ TEST_P(ThreadableLoaderTest, DidFailAccessControlCheck) { ...@@ -709,36 +708,6 @@ TEST_P(ThreadableLoaderTest, DidFailAccessControlCheck) {
ServeRequests(); ServeRequests();
} }
TEST_P(ThreadableLoaderTest, CancelInDidFailAccessControlCheck) {
InSequence s;
EXPECT_CALL(GetCheckpoint(), Call(1));
CreateLoader();
CallCheckpoint(1);
EXPECT_CALL(GetCheckpoint(), Call(2));
EXPECT_CALL(*Client(), DidFailAccessControlCheck(_))
.WillOnce(InvokeWithoutArgs(this, &ThreadableLoaderTest::CancelLoader));
StartLoader(SuccessURL(), WebURLRequest::kFetchRequestModeCORS);
CallCheckpoint(2);
ServeRequests();
}
TEST_P(ThreadableLoaderTest, ClearInDidFailAccessControlCheck) {
InSequence s;
EXPECT_CALL(GetCheckpoint(), Call(1));
CreateLoader();
CallCheckpoint(1);
EXPECT_CALL(GetCheckpoint(), Call(2));
EXPECT_CALL(*Client(), DidFailAccessControlCheck(_))
.WillOnce(InvokeWithoutArgs(this, &ThreadableLoaderTest::ClearLoader));
StartLoader(SuccessURL(), WebURLRequest::kFetchRequestModeCORS);
CallCheckpoint(2);
ServeRequests();
}
TEST_P(ThreadableLoaderTest, RedirectDidFinishLoading) { TEST_P(ThreadableLoaderTest, RedirectDidFinishLoading) {
InSequence s; InSequence s;
EXPECT_CALL(GetCheckpoint(), Call(1)); EXPECT_CALL(GetCheckpoint(), Call(1));
...@@ -844,7 +813,7 @@ TEST_P(ThreadableLoaderTest, GetResponseSynchronously) { ...@@ -844,7 +813,7 @@ TEST_P(ThreadableLoaderTest, GetResponseSynchronously) {
CreateLoader(); CreateLoader();
CallCheckpoint(1); CallCheckpoint(1);
EXPECT_CALL(*Client(), DidFailAccessControlCheck(_)); EXPECT_CALL(*Client(), DidFail(_));
EXPECT_CALL(GetCheckpoint(), Call(2)); EXPECT_CALL(GetCheckpoint(), Call(2));
// Currently didFailAccessControlCheck is dispatched synchronously. This // Currently didFailAccessControlCheck is dispatched synchronously. This
......
...@@ -391,17 +391,6 @@ void WorkerThreadableLoader::DidFail(const ResourceError& error) { ...@@ -391,17 +391,6 @@ void WorkerThreadableLoader::DidFail(const ResourceError& error) {
client->DidFail(error); client->DidFail(error);
} }
void WorkerThreadableLoader::DidFailAccessControlCheck(
const ResourceError& error) {
DCHECK(!IsMainThread());
if (!client_)
return;
auto* client = client_;
client_ = nullptr;
main_thread_loader_holder_ = nullptr;
client->DidFailAccessControlCheck(error);
}
void WorkerThreadableLoader::DidFailRedirectCheck() { void WorkerThreadableLoader::DidFailRedirectCheck() {
DCHECK(!IsMainThread()); DCHECK(!IsMainThread());
if (!client_) if (!client_)
...@@ -605,20 +594,6 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::DidFail( ...@@ -605,20 +594,6 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::DidFail(
forwarder_ = nullptr; forwarder_ = nullptr;
} }
void WorkerThreadableLoader::MainThreadLoaderHolder::DidFailAccessControlCheck(
const ResourceError& error) {
DCHECK(IsMainThread());
CrossThreadPersistent<WorkerThreadableLoader> worker_loader =
worker_loader_.Release();
if (!worker_loader || !forwarder_)
return;
forwarder_->ForwardTaskWithDoneSignal(
BLINK_FROM_HERE,
CrossThreadBind(&WorkerThreadableLoader::DidFailAccessControlCheck,
worker_loader, error));
forwarder_ = nullptr;
}
void WorkerThreadableLoader::MainThreadLoaderHolder::DidFailRedirectCheck() { void WorkerThreadableLoader::MainThreadLoaderHolder::DidFailRedirectCheck() {
DCHECK(IsMainThread()); DCHECK(IsMainThread());
CrossThreadPersistent<WorkerThreadableLoader> worker_loader = CrossThreadPersistent<WorkerThreadableLoader> worker_loader =
......
...@@ -165,7 +165,6 @@ class WorkerThreadableLoader final : public ThreadableLoader { ...@@ -165,7 +165,6 @@ class WorkerThreadableLoader final : public ThreadableLoader {
void DidFinishLoading(unsigned long identifier, void DidFinishLoading(unsigned long identifier,
double finish_time) override; double finish_time) override;
void DidFail(const ResourceError&) override; void DidFail(const ResourceError&) override;
void DidFailAccessControlCheck(const ResourceError&) override;
void DidFailRedirectCheck() override; void DidFailRedirectCheck() override;
void DidReceiveResourceTiming(const ResourceTimingInfo&) override; void DidReceiveResourceTiming(const ResourceTimingInfo&) override;
...@@ -204,7 +203,6 @@ class WorkerThreadableLoader final : public ThreadableLoader { ...@@ -204,7 +203,6 @@ class WorkerThreadableLoader final : public ThreadableLoader {
void DidReceiveCachedMetadata(std::unique_ptr<Vector<char>> data); void DidReceiveCachedMetadata(std::unique_ptr<Vector<char>> data);
void DidFinishLoading(unsigned long identifier, double finish_time); void DidFinishLoading(unsigned long identifier, double finish_time);
void DidFail(const ResourceError&); void DidFail(const ResourceError&);
void DidFailAccessControlCheck(const ResourceError&);
void DidFailRedirectCheck(); void DidFailRedirectCheck();
void DidDownloadData(int data_length); void DidDownloadData(int data_length);
void DidReceiveResourceTiming( void DidReceiveResourceTiming(
......
...@@ -306,7 +306,7 @@ void EventSource::DidFail(const ResourceError& error) { ...@@ -306,7 +306,7 @@ void EventSource::DidFail(const ResourceError& error) {
DCHECK(loader_); DCHECK(loader_);
if (error.IsAccessCheck()) { if (error.IsAccessCheck()) {
DidFailAccessControlCheck(error); AbortConnectionAttempt();
return; return;
} }
...@@ -315,12 +315,6 @@ void EventSource::DidFail(const ResourceError& error) { ...@@ -315,12 +315,6 @@ void EventSource::DidFail(const ResourceError& error) {
NetworkRequestEnded(); NetworkRequestEnded();
} }
void EventSource::DidFailAccessControlCheck(const ResourceError& error) {
DCHECK(loader_);
AbortConnectionAttempt();
}
void EventSource::DidFailRedirectCheck() { void EventSource::DidFailRedirectCheck() {
DCHECK(loader_); DCHECK(loader_);
......
...@@ -111,7 +111,6 @@ class MODULES_EXPORT EventSource final ...@@ -111,7 +111,6 @@ class MODULES_EXPORT EventSource final
void DidReceiveData(const char*, unsigned) override; void DidReceiveData(const char*, unsigned) override;
void DidFinishLoading(unsigned long, double) override; void DidFinishLoading(unsigned long, double) override;
void DidFail(const ResourceError&) override; void DidFail(const ResourceError&) override;
void DidFailAccessControlCheck(const ResourceError&) override;
void DidFailRedirectCheck() override; void DidFailRedirectCheck() override;
void OnMessageEvent(const AtomicString& event, void OnMessageEvent(const AtomicString& event,
......
...@@ -235,7 +235,7 @@ TEST_F(BlobBytesConsumerTest, FailAccessControlCheck) { ...@@ -235,7 +235,7 @@ TEST_F(BlobBytesConsumerTest, FailAccessControlCheck) {
EXPECT_EQ(PublicState::kReadableOrWaiting, consumer->GetPublicState()); EXPECT_EQ(PublicState::kReadableOrWaiting, consumer->GetPublicState());
int num_on_state_change_called = client->NumOnStateChangeCalled(); int num_on_state_change_called = client->NumOnStateChangeCalled();
consumer->DidFailAccessControlCheck(ResourceError()); consumer->DidFail(ResourceError());
EXPECT_EQ(num_on_state_change_called + 1, client->NumOnStateChangeCalled()); EXPECT_EQ(num_on_state_change_called + 1, client->NumOnStateChangeCalled());
EXPECT_EQ(PublicState::kErrored, consumer->GetPublicState()); EXPECT_EQ(PublicState::kErrored, consumer->GetPublicState());
......
...@@ -163,7 +163,6 @@ class FetchManager::Loader final ...@@ -163,7 +163,6 @@ class FetchManager::Loader final
std::unique_ptr<WebDataConsumerHandle>) override; std::unique_ptr<WebDataConsumerHandle>) override;
void DidFinishLoading(unsigned long, double) override; void DidFinishLoading(unsigned long, double) override;
void DidFail(const ResourceError&) override; void DidFail(const ResourceError&) override;
void DidFailAccessControlCheck(const ResourceError&) override;
void DidFailRedirectCheck() override; void DidFailRedirectCheck() override;
void Start(); void Start();
...@@ -522,16 +521,6 @@ void FetchManager::Loader::DidFail(const ResourceError& error) { ...@@ -522,16 +521,6 @@ void FetchManager::Loader::DidFail(const ResourceError& error) {
error.LocalizedDescription()); error.LocalizedDescription());
} }
void FetchManager::Loader::DidFailAccessControlCheck(
const ResourceError& error) {
if (error.IsCancellation() || error.IsTimeout() ||
error.Domain() != kErrorDomainBlinkInternal)
Failed(String());
else
Failed("Fetch API cannot load " + error.FailingURL() + ". " +
error.LocalizedDescription());
}
void FetchManager::Loader::DidFailRedirectCheck() { void FetchManager::Loader::DidFailRedirectCheck() {
Failed("Fetch API cannot load " + request_->Url().GetString() + Failed("Fetch API cannot load " + request_->Url().GetString() +
". Redirect failed."); ". Redirect failed.");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment