[PDF] Use chrome_pdf::Result in more code
Since Result is an enum and not an enum class, it is very easy to mix up this enum and ints. To prepare for making Result an enum class, start using it in some callbacks. This forces the compiler to be stricter about type checking. Then use Result in more places to fix the compile errors. For url_loader_unittest.cc in particular, split the existing mock callback variable into two separate variables for open and read operations. Change-Id: I1c830fd88aba39542fa60508d9e1c26ed1744e5c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6216483 Reviewed-by: Andy Phan <andyphan@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#1413268}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
34a087097b
commit
e34d414dde
@@ -80,8 +80,7 @@ UrlLoader::UrlLoader(base::WeakPtr<Client> client)
|
|||||||
UrlLoader::~UrlLoader() = default;
|
UrlLoader::~UrlLoader() = default;
|
||||||
|
|
||||||
// Modeled on `content::PepperURLLoaderHost::OnHostMsgOpen()`.
|
// Modeled on `content::PepperURLLoaderHost::OnHostMsgOpen()`.
|
||||||
void UrlLoader::Open(const UrlRequest& request,
|
void UrlLoader::Open(const UrlRequest& request, OpenCallback callback) {
|
||||||
base::OnceCallback<void(int)> callback) {
|
|
||||||
DCHECK_EQ(state_, LoadingState::kWaitingToOpen);
|
DCHECK_EQ(state_, LoadingState::kWaitingToOpen);
|
||||||
DCHECK(callback);
|
DCHECK(callback);
|
||||||
state_ = LoadingState::kOpening;
|
state_ = LoadingState::kOpening;
|
||||||
@@ -243,7 +242,7 @@ void UrlLoader::DidFail(const blink::WebURLError& error) {
|
|||||||
state_ == LoadingState::kStreamingData)
|
state_ == LoadingState::kStreamingData)
|
||||||
<< static_cast<int>(state_);
|
<< static_cast<int>(state_);
|
||||||
|
|
||||||
int32_t pp_error = Result::kErrorFailed;
|
Result pp_error = Result::kErrorFailed;
|
||||||
switch (error.reason()) {
|
switch (error.reason()) {
|
||||||
case net::ERR_ACCESS_DENIED:
|
case net::ERR_ACCESS_DENIED:
|
||||||
case net::ERR_NETWORK_ACCESS_DENIED:
|
case net::ERR_NETWORK_ACCESS_DENIED:
|
||||||
@@ -259,8 +258,8 @@ void UrlLoader::DidFail(const blink::WebURLError& error) {
|
|||||||
AbortLoad(pp_error);
|
AbortLoad(pp_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UrlLoader::AbortLoad(int32_t result) {
|
void UrlLoader::AbortLoad(Result result) {
|
||||||
DCHECK_LT(result, 0);
|
CHECK_NE(result, Result::kSuccess);
|
||||||
|
|
||||||
SetLoadComplete(result);
|
SetLoadComplete(result);
|
||||||
buffer_.clear();
|
buffer_.clear();
|
||||||
@@ -304,9 +303,8 @@ void UrlLoader::RunReadCallback() {
|
|||||||
std::move(read_callback_).Run(num_bytes);
|
std::move(read_callback_).Run(num_bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UrlLoader::SetLoadComplete(int32_t result) {
|
void UrlLoader::SetLoadComplete(Result result) {
|
||||||
DCHECK_NE(state_, LoadingState::kLoadComplete);
|
DCHECK_NE(state_, LoadingState::kLoadComplete);
|
||||||
DCHECK_LE(result, 0);
|
|
||||||
|
|
||||||
state_ = LoadingState::kLoadComplete;
|
state_ = LoadingState::kLoadComplete;
|
||||||
complete_result_ = result;
|
complete_result_ = result;
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
#include "base/functional/callback.h"
|
#include "base/functional/callback.h"
|
||||||
#include "base/memory/raw_span.h"
|
#include "base/memory/raw_span.h"
|
||||||
#include "base/memory/weak_ptr.h"
|
#include "base/memory/weak_ptr.h"
|
||||||
|
#include "pdf/loader/result_codes.h"
|
||||||
#include "third_party/blink/public/web/web_associated_url_loader_client.h"
|
#include "third_party/blink/public/web/web_associated_url_loader_client.h"
|
||||||
|
|
||||||
namespace blink {
|
namespace blink {
|
||||||
@@ -91,6 +92,8 @@ struct UrlResponse final {
|
|||||||
// `content::PepperURLLoaderHost` and `ppapi::proxy::URLLoaderResource`.
|
// `content::PepperURLLoaderHost` and `ppapi::proxy::URLLoaderResource`.
|
||||||
class UrlLoader final : public blink::WebAssociatedURLLoaderClient {
|
class UrlLoader final : public blink::WebAssociatedURLLoaderClient {
|
||||||
public:
|
public:
|
||||||
|
using OpenCallback = base::OnceCallback<void(Result)>;
|
||||||
|
|
||||||
// Client interface required by `UrlLoader`. Instances should be passed using
|
// Client interface required by `UrlLoader`. Instances should be passed using
|
||||||
// weak pointers, as the loader can be shared, and may outlive the client.
|
// weak pointers, as the loader can be shared, and may outlive the client.
|
||||||
class Client {
|
class Client {
|
||||||
@@ -127,7 +130,7 @@ class UrlLoader final : public blink::WebAssociatedURLLoaderClient {
|
|||||||
~UrlLoader() override;
|
~UrlLoader() override;
|
||||||
|
|
||||||
// Mimic `pp::URLLoader`:
|
// Mimic `pp::URLLoader`:
|
||||||
void Open(const UrlRequest& request, base::OnceCallback<void(int)> callback);
|
void Open(const UrlRequest& request, OpenCallback callback);
|
||||||
void ReadResponseBody(base::span<char> buffer,
|
void ReadResponseBody(base::span<char> buffer,
|
||||||
base::OnceCallback<void(int)> callback);
|
base::OnceCallback<void(int)> callback);
|
||||||
void Close();
|
void Close();
|
||||||
@@ -166,22 +169,22 @@ class UrlLoader final : public blink::WebAssociatedURLLoaderClient {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Aborts the load with `result`. Runs callback if pending.
|
// Aborts the load with `result`. Runs callback if pending.
|
||||||
void AbortLoad(int32_t result);
|
void AbortLoad(Result result);
|
||||||
|
|
||||||
// Runs callback for `ReadResponseBody()` if pending.
|
// Runs callback for `ReadResponseBody()` if pending.
|
||||||
void RunReadCallback();
|
void RunReadCallback();
|
||||||
|
|
||||||
void SetLoadComplete(int32_t result);
|
void SetLoadComplete(Result result);
|
||||||
|
|
||||||
base::WeakPtr<Client> client_;
|
base::WeakPtr<Client> client_;
|
||||||
|
|
||||||
LoadingState state_ = LoadingState::kWaitingToOpen;
|
LoadingState state_ = LoadingState::kWaitingToOpen;
|
||||||
int32_t complete_result_ = 0;
|
Result complete_result_ = Result::kSuccess;
|
||||||
|
|
||||||
std::unique_ptr<blink::WebAssociatedURLLoader> blink_loader_;
|
std::unique_ptr<blink::WebAssociatedURLLoader> blink_loader_;
|
||||||
|
|
||||||
bool ignore_redirects_ = false;
|
bool ignore_redirects_ = false;
|
||||||
base::OnceCallback<void(int)> open_callback_;
|
OpenCallback open_callback_;
|
||||||
|
|
||||||
UrlResponse response_;
|
UrlResponse response_;
|
||||||
|
|
||||||
|
@@ -152,21 +152,23 @@ class UrlLoaderTest : public testing::Test {
|
|||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.buffer_lower_threshold = lower;
|
request.buffer_lower_threshold = lower;
|
||||||
request.buffer_upper_threshold = upper;
|
request.buffer_upper_threshold = upper;
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t DidFailWithError(const blink::WebURLError& error) {
|
Result DidFailWithError(const blink::WebURLError& error) {
|
||||||
int32_t result = 0;
|
Result result = Result::kSuccess;
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run).WillOnce(SaveArg<0>(&result));
|
EXPECT_CALL(mock_open_callback_, Run).WillOnce(SaveArg<0>(&result));
|
||||||
|
|
||||||
loader_->DidFail(error);
|
loader_->DidFail(error);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeUrlLoaderClient fake_client_;
|
FakeUrlLoaderClient fake_client_;
|
||||||
NiceMock<base::MockCallback<base::OnceCallback<void(int)>>> mock_callback_;
|
NiceMock<base::MockCallback<UrlLoader::OpenCallback>> mock_open_callback_;
|
||||||
|
NiceMock<base::MockCallback<base::OnceCallback<void(int)>>>
|
||||||
|
mock_read_callback_;
|
||||||
std::unique_ptr<UrlLoader> loader_;
|
std::unique_ptr<UrlLoader> loader_;
|
||||||
|
|
||||||
// Becomes invalid if `loader_` is closed or destructed.
|
// Becomes invalid if `loader_` is closed or destructed.
|
||||||
@@ -178,12 +180,12 @@ class UrlLoaderTest : public testing::Test {
|
|||||||
|
|
||||||
TEST_F(UrlLoaderTest, Open) {
|
TEST_F(UrlLoaderTest, Open) {
|
||||||
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously);
|
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously);
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.url = "http://example.com/fake.pdf";
|
request.url = "http://example.com/fake.pdf";
|
||||||
request.method = "FAKE";
|
request.method = "FAKE";
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_TRUE(fake_client_.saved_options().grant_universal_access);
|
EXPECT_TRUE(fake_client_.saved_options().grant_universal_access);
|
||||||
EXPECT_EQ(GURL("http://example.com/fake.pdf"), GURL(saved_request_.Url()));
|
EXPECT_EQ(GURL("http://example.com/fake.pdf"), GURL(saved_request_.Url()));
|
||||||
@@ -200,24 +202,24 @@ TEST_F(UrlLoaderTest, Open) {
|
|||||||
|
|
||||||
TEST_F(UrlLoaderTest, OpenWithInvalidatedClientWeakPtr) {
|
TEST_F(UrlLoaderTest, OpenWithInvalidatedClientWeakPtr) {
|
||||||
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously).Times(0);
|
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously).Times(0);
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorFailed));
|
EXPECT_CALL(mock_open_callback_, Run(Result::kErrorFailed));
|
||||||
|
|
||||||
fake_client_.InvalidateWeakPtrs();
|
fake_client_.InvalidateWeakPtrs();
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, OpenWithInvalidatedClient) {
|
TEST_F(UrlLoaderTest, OpenWithInvalidatedClient) {
|
||||||
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously).Times(0);
|
EXPECT_CALL(*mock_url_loader_, LoadAsynchronously).Times(0);
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorFailed));
|
EXPECT_CALL(mock_open_callback_, Run(Result::kErrorFailed));
|
||||||
|
|
||||||
fake_client_.Invalidate();
|
fake_client_.Invalidate();
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, OpenWithRelativeUrl) {
|
TEST_F(UrlLoaderTest, OpenWithRelativeUrl) {
|
||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.url = "relative.pdf";
|
request.url = "relative.pdf";
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_EQ(GURL(kDocumentUrl).Resolve("relative.pdf"),
|
EXPECT_EQ(GURL(kDocumentUrl).Resolve("relative.pdf"),
|
||||||
GURL(saved_request_.Url()));
|
GURL(saved_request_.Url()));
|
||||||
@@ -232,7 +234,7 @@ TEST_F(UrlLoaderTest, OpenWithHeaders) {
|
|||||||
"Non-ASCII-Value: 🙃",
|
"Non-ASCII-Value: 🙃",
|
||||||
},
|
},
|
||||||
"\n");
|
"\n");
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_EQ(3u, GetRequestHeaderCount(saved_request_));
|
EXPECT_EQ(3u, GetRequestHeaderCount(saved_request_));
|
||||||
EXPECT_EQ("123", saved_request_.HttpHeaderField("Content-Length").Utf8());
|
EXPECT_EQ("123", saved_request_.HttpHeaderField("Content-Length").Utf8());
|
||||||
@@ -245,7 +247,7 @@ TEST_F(UrlLoaderTest, OpenWithBody) {
|
|||||||
static constexpr char kBodyData[] = "fake body";
|
static constexpr char kBodyData[] = "fake body";
|
||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.body = kBodyData;
|
request.body = kBodyData;
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
blink::WebHTTPBody request_body = saved_request_.HttpBody();
|
blink::WebHTTPBody request_body = saved_request_.HttpBody();
|
||||||
EXPECT_EQ(1u, request_body.ElementCount());
|
EXPECT_EQ(1u, request_body.ElementCount());
|
||||||
@@ -266,14 +268,14 @@ TEST_F(UrlLoaderTest, OpenWithBody) {
|
|||||||
TEST_F(UrlLoaderTest, OpenWithCustomReferrerUrl) {
|
TEST_F(UrlLoaderTest, OpenWithCustomReferrerUrl) {
|
||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.custom_referrer_url = "http://example.com/referrer";
|
request.custom_referrer_url = "http://example.com/referrer";
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_EQ("http://example.com/referrer",
|
EXPECT_EQ("http://example.com/referrer",
|
||||||
saved_request_.ReferrerString().Utf8());
|
saved_request_.ReferrerString().Utf8());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, WillFollowRedirect) {
|
TEST_F(UrlLoaderTest, WillFollowRedirect) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_TRUE(loader_->WillFollowRedirect(GURL("http://example.com/login"),
|
EXPECT_TRUE(loader_->WillFollowRedirect(GURL("http://example.com/login"),
|
||||||
blink::WebURLResponse()));
|
blink::WebURLResponse()));
|
||||||
@@ -282,15 +284,15 @@ TEST_F(UrlLoaderTest, WillFollowRedirect) {
|
|||||||
TEST_F(UrlLoaderTest, WillFollowRedirectWhileIgnoringRedirects) {
|
TEST_F(UrlLoaderTest, WillFollowRedirectWhileIgnoringRedirects) {
|
||||||
UrlRequest request;
|
UrlRequest request;
|
||||||
request.ignore_redirects = true;
|
request.ignore_redirects = true;
|
||||||
loader_->Open(request, mock_callback_.Get());
|
loader_->Open(request, mock_open_callback_.Get());
|
||||||
|
|
||||||
EXPECT_FALSE(loader_->WillFollowRedirect(GURL("http://example.com/login"),
|
EXPECT_FALSE(loader_->WillFollowRedirect(GURL("http://example.com/login"),
|
||||||
blink::WebURLResponse()));
|
blink::WebURLResponse()));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidReceiveResponse) {
|
TEST_F(UrlLoaderTest, DidReceiveResponse) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kSuccess));
|
EXPECT_CALL(mock_open_callback_, Run(Result::kSuccess));
|
||||||
|
|
||||||
blink::WebURLResponse response;
|
blink::WebURLResponse response;
|
||||||
response.SetHttpStatusCode(204);
|
response.SetHttpStatusCode(204);
|
||||||
@@ -301,7 +303,7 @@ TEST_F(UrlLoaderTest, DidReceiveResponse) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidReceiveResponseWithHeaders) {
|
TEST_F(UrlLoaderTest, DidReceiveResponseWithHeaders) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
|
|
||||||
blink::WebURLResponse response;
|
blink::WebURLResponse response;
|
||||||
response.AddHttpHeaderField("Content-Length", "123");
|
response.AddHttpHeaderField("Content-Length", "123");
|
||||||
@@ -321,10 +323,10 @@ TEST_F(UrlLoaderTest, DidReceiveResponseWithHeaders) {
|
|||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidReceiveData) {
|
TEST_F(UrlLoaderTest, DidReceiveData) {
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(kFakeData.size()));
|
EXPECT_CALL(mock_read_callback_, Run(kFakeData.size()));
|
||||||
|
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
|
|
||||||
@@ -333,10 +335,10 @@ TEST_F(UrlLoaderTest, DidReceiveData) {
|
|||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidReceiveDataWithZeroLength) {
|
TEST_F(UrlLoaderTest, DidReceiveDataWithZeroLength) {
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_read_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->DidReceiveData(kFakeData.first(0u));
|
loader_->DidReceiveData(kFakeData.first(0u));
|
||||||
|
|
||||||
@@ -355,11 +357,11 @@ TEST_F(UrlLoaderTest, DidReceiveDataCrossUpperThreshold) {
|
|||||||
StartLoadWithThresholds(/*lower=*/2, /*upper=*/4);
|
StartLoadWithThresholds(/*lower=*/2, /*upper=*/4);
|
||||||
|
|
||||||
char read_buffer[1];
|
char read_buffer[1];
|
||||||
loader_->ReadResponseBody(read_buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(read_buffer, mock_read_callback_.Get());
|
||||||
{
|
{
|
||||||
InSequence defer_before_read_callback;
|
InSequence defer_before_read_callback;
|
||||||
EXPECT_CALL(*mock_url_loader_, SetDefersLoading(true));
|
EXPECT_CALL(*mock_url_loader_, SetDefersLoading(true));
|
||||||
EXPECT_CALL(mock_callback_, Run);
|
EXPECT_CALL(mock_read_callback_, Run);
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[4] = {};
|
char buffer[4] = {};
|
||||||
@@ -377,119 +379,119 @@ TEST_F(UrlLoaderTest, DidReceiveDataAboveUpperThreshold) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBody) {
|
TEST_F(UrlLoaderTest, ReadResponseBody) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
EXPECT_CALL(mock_callback_, Run(kFakeData.size()));
|
EXPECT_CALL(mock_read_callback_, Run(kFakeData.size()));
|
||||||
|
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, ElementsAreArray(kFakeData));
|
EXPECT_THAT(buffer, ElementsAreArray(kFakeData));
|
||||||
|
|
||||||
// Verify no more data returned on next call.
|
// Verify no more data returned on next call.
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_read_callback_, Run).Times(0);
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWithoutData) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWithoutData) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_read_callback_, Run).Times(0);
|
||||||
|
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, Each(0));
|
EXPECT_THAT(buffer, Each(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWithEmptyBuffer) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWithEmptyBuffer) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorBadArgument));
|
EXPECT_CALL(mock_read_callback_, Run(Result::kErrorBadArgument));
|
||||||
|
|
||||||
loader_->ReadResponseBody(base::span<char>(), mock_callback_.Get());
|
loader_->ReadResponseBody(base::span<char>(), mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWithSmallerBuffer) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWithSmallerBuffer) {
|
||||||
static constexpr size_t kTailSize = 1;
|
static constexpr size_t kTailSize = 1;
|
||||||
static constexpr size_t kBufferSize = kFakeData.size() - kTailSize;
|
static constexpr size_t kBufferSize = kFakeData.size() - kTailSize;
|
||||||
|
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
EXPECT_CALL(mock_callback_, Run(kBufferSize));
|
EXPECT_CALL(mock_read_callback_, Run(kBufferSize));
|
||||||
|
|
||||||
char buffer[kBufferSize] = {};
|
char buffer[kBufferSize] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, ElementsAreArray(kFakeData.first(kBufferSize)));
|
EXPECT_THAT(buffer, ElementsAreArray(kFakeData.first(kBufferSize)));
|
||||||
|
|
||||||
// Verify remaining data returned on next call.
|
// Verify remaining data returned on next call.
|
||||||
char tail_buffer[kTailSize];
|
char tail_buffer[kTailSize];
|
||||||
EXPECT_CALL(mock_callback_, Run(kTailSize));
|
EXPECT_CALL(mock_read_callback_, Run(kTailSize));
|
||||||
loader_->ReadResponseBody(tail_buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(tail_buffer, mock_read_callback_.Get());
|
||||||
EXPECT_THAT(tail_buffer, ElementsAreArray(kFakeData.subspan(kBufferSize)));
|
EXPECT_THAT(tail_buffer, ElementsAreArray(kFakeData.subspan(kBufferSize)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWithBiggerBuffer) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWithBiggerBuffer) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
EXPECT_CALL(mock_callback_, Run(kFakeData.size()));
|
EXPECT_CALL(mock_read_callback_, Run(kFakeData.size()));
|
||||||
|
|
||||||
char buffer[kFakeData.size() + 1] = {};
|
char buffer[kFakeData.size() + 1] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
base::span<char> buffer_span = buffer;
|
base::span<char> buffer_span = buffer;
|
||||||
EXPECT_THAT(buffer_span.first(kFakeData.size()), ElementsAreArray(kFakeData));
|
EXPECT_THAT(buffer_span.first(kFakeData.size()), ElementsAreArray(kFakeData));
|
||||||
EXPECT_THAT(buffer_span.subspan(kFakeData.size()), Each(0));
|
EXPECT_THAT(buffer_span.subspan(kFakeData.size()), Each(0));
|
||||||
|
|
||||||
// Verify no more data returned on next call.
|
// Verify no more data returned on next call.
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_read_callback_, Run).Times(0);
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadComplete) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadComplete) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
loader_->DidFinishLoading();
|
loader_->DidFinishLoading();
|
||||||
EXPECT_CALL(mock_callback_, Run(kFakeData.size()));
|
EXPECT_CALL(mock_read_callback_, Run(kFakeData.size()));
|
||||||
|
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, ElementsAreArray(kFakeData));
|
EXPECT_THAT(buffer, ElementsAreArray(kFakeData));
|
||||||
|
|
||||||
// Verify no more data returned on next call.
|
// Verify no more data returned on next call.
|
||||||
char tail_buffer[kFakeData.size()] = {};
|
char tail_buffer[kFakeData.size()] = {};
|
||||||
EXPECT_CALL(mock_callback_, Run(0));
|
EXPECT_CALL(mock_read_callback_, Run(0));
|
||||||
loader_->ReadResponseBody(tail_buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(tail_buffer, mock_read_callback_.Get());
|
||||||
EXPECT_THAT(tail_buffer, Each(0));
|
EXPECT_THAT(tail_buffer, Each(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadCompleteWithoutData) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadCompleteWithoutData) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidFinishLoading();
|
loader_->DidFinishLoading();
|
||||||
EXPECT_CALL(mock_callback_, Run(0));
|
EXPECT_CALL(mock_read_callback_, Run(0));
|
||||||
|
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, Each(0));
|
EXPECT_THAT(buffer, Each(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadCompleteWithError) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyWhileLoadCompleteWithError) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidReceiveData(kFakeData);
|
loader_->DidReceiveData(kFakeData);
|
||||||
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorFailed));
|
EXPECT_CALL(mock_read_callback_, Run(Result::kErrorFailed));
|
||||||
|
|
||||||
char buffer[kFakeData.size()] = {};
|
char buffer[kFakeData.size()] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
|
|
||||||
EXPECT_THAT(buffer, Each(0));
|
EXPECT_THAT(buffer, Each(0));
|
||||||
}
|
}
|
||||||
@@ -502,7 +504,7 @@ TEST_F(UrlLoaderTest, ReadResponseBodyAboveLowerThreshold) {
|
|||||||
EXPECT_CALL(*mock_url_loader_, SetDefersLoading).Times(0);
|
EXPECT_CALL(*mock_url_loader_, SetDefersLoading).Times(0);
|
||||||
|
|
||||||
char buffer[2] = {};
|
char buffer[2] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyCrossLowerThreshold) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyCrossLowerThreshold) {
|
||||||
@@ -513,11 +515,11 @@ TEST_F(UrlLoaderTest, ReadResponseBodyCrossLowerThreshold) {
|
|||||||
{
|
{
|
||||||
InSequence resume_before_read_callback;
|
InSequence resume_before_read_callback;
|
||||||
EXPECT_CALL(*mock_url_loader_, SetDefersLoading(false));
|
EXPECT_CALL(*mock_url_loader_, SetDefersLoading(false));
|
||||||
EXPECT_CALL(mock_callback_, Run);
|
EXPECT_CALL(mock_read_callback_, Run);
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[3] = {};
|
char buffer[3] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, ReadResponseBodyBelowLowerThreshold) {
|
TEST_F(UrlLoaderTest, ReadResponseBodyBelowLowerThreshold) {
|
||||||
@@ -527,55 +529,55 @@ TEST_F(UrlLoaderTest, ReadResponseBodyBelowLowerThreshold) {
|
|||||||
loader_->DidReceiveData(write_buffer);
|
loader_->DidReceiveData(write_buffer);
|
||||||
|
|
||||||
char buffer[3] = {};
|
char buffer[3] = {};
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(*mock_url_loader_, SetDefersLoading).Times(0);
|
EXPECT_CALL(*mock_url_loader_, SetDefersLoading).Times(0);
|
||||||
|
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFinishLoading) {
|
TEST_F(UrlLoaderTest, DidFinishLoading) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->DidFinishLoading();
|
loader_->DidFinishLoading();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFinishLoadingWithPendingCallback) {
|
TEST_F(UrlLoaderTest, DidFinishLoadingWithPendingCallback) {
|
||||||
char buffer[1];
|
char buffer[1];
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(0)); // Result represents read bytes.
|
EXPECT_CALL(mock_read_callback_, Run(0)); // Result represents read bytes.
|
||||||
|
|
||||||
loader_->DidFinishLoading();
|
loader_->DidFinishLoading();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFailWhileOpening) {
|
TEST_F(UrlLoaderTest, DidFailWhileOpening) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorFailed));
|
EXPECT_CALL(mock_open_callback_, Run(Result::kErrorFailed));
|
||||||
|
|
||||||
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFailWhileStreamingData) {
|
TEST_F(UrlLoaderTest, DidFailWhileStreamingData) {
|
||||||
char buffer[1];
|
char buffer[1];
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorFailed));
|
EXPECT_CALL(mock_read_callback_, Run(Result::kErrorFailed));
|
||||||
|
|
||||||
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
loader_->DidFail(MakeWebURLError(net::ERR_FAILED));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFailWithErrorAccessDenied) {
|
TEST_F(UrlLoaderTest, DidFailWithErrorAccessDenied) {
|
||||||
int32_t result = DidFailWithError(MakeWebURLError(net::ERR_ACCESS_DENIED));
|
Result result = DidFailWithError(MakeWebURLError(net::ERR_ACCESS_DENIED));
|
||||||
|
|
||||||
EXPECT_EQ(Result::kErrorNoAccess, result);
|
EXPECT_EQ(Result::kErrorNoAccess, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, DidFailWithErrorNetworkAccessDenied) {
|
TEST_F(UrlLoaderTest, DidFailWithErrorNetworkAccessDenied) {
|
||||||
int32_t result =
|
Result result =
|
||||||
DidFailWithError(MakeWebURLError(net::ERR_NETWORK_ACCESS_DENIED));
|
DidFailWithError(MakeWebURLError(net::ERR_NETWORK_ACCESS_DENIED));
|
||||||
|
|
||||||
EXPECT_EQ(Result::kErrorNoAccess, result);
|
EXPECT_EQ(Result::kErrorNoAccess, result);
|
||||||
@@ -587,55 +589,55 @@ TEST_F(UrlLoaderTest, DidFailWithWebSecurityViolationError) {
|
|||||||
blink::WebURLError::HasCopyInCache::kFalse, GURL());
|
blink::WebURLError::HasCopyInCache::kFalse, GURL());
|
||||||
ASSERT_TRUE(error.is_web_security_violation());
|
ASSERT_TRUE(error.is_web_security_violation());
|
||||||
|
|
||||||
int32_t result = DidFailWithError(error);
|
Result result = DidFailWithError(error);
|
||||||
|
|
||||||
EXPECT_EQ(Result::kErrorNoAccess, result);
|
EXPECT_EQ(Result::kErrorNoAccess, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseWhileWaitingToOpen) {
|
TEST_F(UrlLoaderTest, CloseWhileWaitingToOpen) {
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseWhileOpening) {
|
TEST_F(UrlLoaderTest, CloseWhileOpening) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorAborted));
|
EXPECT_CALL(mock_open_callback_, Run(Result::kErrorAborted));
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseWhileStreamingData) {
|
TEST_F(UrlLoaderTest, CloseWhileStreamingData) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseWhileStreamingDataWithPendingCallback) {
|
TEST_F(UrlLoaderTest, CloseWhileStreamingDataWithPendingCallback) {
|
||||||
char buffer[1];
|
char buffer[1];
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->ReadResponseBody(buffer, mock_callback_.Get());
|
loader_->ReadResponseBody(buffer, mock_read_callback_.Get());
|
||||||
EXPECT_CALL(mock_callback_, Run(Result::kErrorAborted));
|
EXPECT_CALL(mock_read_callback_, Run(Result::kErrorAborted));
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseWhileLoadComplete) {
|
TEST_F(UrlLoaderTest, CloseWhileLoadComplete) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->DidReceiveResponse(blink::WebURLResponse());
|
loader_->DidReceiveResponse(blink::WebURLResponse());
|
||||||
loader_->DidFinishLoading();
|
loader_->DidFinishLoading();
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(UrlLoaderTest, CloseAgain) {
|
TEST_F(UrlLoaderTest, CloseAgain) {
|
||||||
loader_->Open(UrlRequest(), mock_callback_.Get());
|
loader_->Open(UrlRequest(), mock_open_callback_.Get());
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
EXPECT_CALL(mock_callback_, Run).Times(0);
|
EXPECT_CALL(mock_open_callback_, Run).Times(0);
|
||||||
|
|
||||||
loader_->Close();
|
loader_->Close();
|
||||||
}
|
}
|
||||||
|
@@ -246,7 +246,7 @@ void URLLoaderWrapperImpl::ParseHeaders(const std::string& response_headers) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void URLLoaderWrapperImpl::DidOpen(base::OnceCallback<void(bool)> callback,
|
void URLLoaderWrapperImpl::DidOpen(base::OnceCallback<void(bool)> callback,
|
||||||
int32_t result) {
|
Result result) {
|
||||||
SetHeadersFromLoader();
|
SetHeadersFromLoader();
|
||||||
std::move(callback).Run(result == Result::kSuccess);
|
std::move(callback).Run(result == Result::kSuccess);
|
||||||
}
|
}
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
#include "base/memory/raw_span.h"
|
#include "base/memory/raw_span.h"
|
||||||
#include "base/memory/weak_ptr.h"
|
#include "base/memory/weak_ptr.h"
|
||||||
#include "base/timer/timer.h"
|
#include "base/timer/timer.h"
|
||||||
|
#include "pdf/loader/result_codes.h"
|
||||||
#include "pdf/loader/url_loader_wrapper.h"
|
#include "pdf/loader/url_loader_wrapper.h"
|
||||||
#include "ui/gfx/range/range.h"
|
#include "ui/gfx/range/range.h"
|
||||||
|
|
||||||
@@ -50,7 +51,7 @@ class URLLoaderWrapperImpl : public URLLoaderWrapper {
|
|||||||
private:
|
private:
|
||||||
void SetHeadersFromLoader();
|
void SetHeadersFromLoader();
|
||||||
void ParseHeaders(const std::string& response_headers);
|
void ParseHeaders(const std::string& response_headers);
|
||||||
void DidOpen(base::OnceCallback<void(bool)> callback, int32_t result);
|
void DidOpen(base::OnceCallback<void(bool)> callback, Result result);
|
||||||
void DidRead(base::OnceCallback<void(int)> callback, int32_t result);
|
void DidRead(base::OnceCallback<void(int)> callback, int32_t result);
|
||||||
|
|
||||||
void ReadResponseBodyImpl(base::OnceCallback<void(int)> callback);
|
void ReadResponseBodyImpl(base::OnceCallback<void(int)> callback);
|
||||||
|
@@ -513,13 +513,13 @@ void PdfViewWebPlugin::SendSetSmoothScrolling() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PdfViewWebPlugin::DidOpen(std::unique_ptr<UrlLoader> loader,
|
void PdfViewWebPlugin::DidOpen(std::unique_ptr<UrlLoader> loader,
|
||||||
int32_t result) {
|
Result result) {
|
||||||
if (result == kSuccess) {
|
if (result == Result::kSuccess) {
|
||||||
if (!engine_->HandleDocumentLoad(std::move(loader), url_)) {
|
if (!engine_->HandleDocumentLoad(std::move(loader), url_)) {
|
||||||
document_load_state_ = DocumentLoadState::kLoading;
|
document_load_state_ = DocumentLoadState::kLoading;
|
||||||
DocumentLoadFailed();
|
DocumentLoadFailed();
|
||||||
}
|
}
|
||||||
} else if (result != kErrorAborted) {
|
} else if (result != Result::kErrorAborted) {
|
||||||
DocumentLoadFailed();
|
DocumentLoadFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1202,9 +1202,9 @@ void PdfViewWebPlugin::SubmitForm(const std::string& url,
|
|||||||
weak_factory_.GetWeakPtr()));
|
weak_factory_.GetWeakPtr()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PdfViewWebPlugin::DidFormOpen(int32_t result) {
|
void PdfViewWebPlugin::DidFormOpen(Result result) {
|
||||||
// TODO(crbug.com/41317525): Process response.
|
// TODO(crbug.com/41317525): Process response.
|
||||||
LOG_IF(ERROR, result != kSuccess) << "DidFormOpen failed: " << result;
|
LOG_IF(ERROR, result != Result::kSuccess) << "DidFormOpen failed: " << result;
|
||||||
form_loader_.reset();
|
form_loader_.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2678,8 +2678,8 @@ void PdfViewWebPlugin::LoadAvailablePreviewPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PdfViewWebPlugin::DidOpenPreview(std::unique_ptr<UrlLoader> loader,
|
void PdfViewWebPlugin::DidOpenPreview(std::unique_ptr<UrlLoader> loader,
|
||||||
int32_t result) {
|
Result result) {
|
||||||
DCHECK_EQ(result, kSuccess);
|
DCHECK_EQ(result, Result::kSuccess);
|
||||||
|
|
||||||
// `preview_engine_` holds a `raw_ptr` to `preview_client_`.
|
// `preview_engine_` holds a `raw_ptr` to `preview_client_`.
|
||||||
// We need to explicitly destroy it before clobbering
|
// We need to explicitly destroy it before clobbering
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
#include "mojo/public/cpp/bindings/receiver.h"
|
#include "mojo/public/cpp/bindings/receiver.h"
|
||||||
#include "pdf/accessibility_structs.h"
|
#include "pdf/accessibility_structs.h"
|
||||||
#include "pdf/buildflags.h"
|
#include "pdf/buildflags.h"
|
||||||
|
#include "pdf/loader/result_codes.h"
|
||||||
#include "pdf/loader/url_loader.h"
|
#include "pdf/loader/url_loader.h"
|
||||||
#include "pdf/mojom/pdf.mojom.h"
|
#include "pdf/mojom/pdf.mojom.h"
|
||||||
#include "pdf/paint_manager.h"
|
#include "pdf/paint_manager.h"
|
||||||
@@ -487,7 +488,7 @@ class PdfViewWebPlugin final : public PDFiumEngineClient,
|
|||||||
// load the URL, and `result` is the result code for the load.
|
// load the URL, and `result` is the result code for the load.
|
||||||
using LoadUrlCallback =
|
using LoadUrlCallback =
|
||||||
base::OnceCallback<void(std::unique_ptr<UrlLoader> loader,
|
base::OnceCallback<void(std::unique_ptr<UrlLoader> loader,
|
||||||
int32_t result)>;
|
Result result)>;
|
||||||
|
|
||||||
enum class AccessibilityState {
|
enum class AccessibilityState {
|
||||||
kOff = 0, // Off.
|
kOff = 0, // Off.
|
||||||
@@ -522,7 +523,7 @@ class PdfViewWebPlugin final : public PDFiumEngineClient,
|
|||||||
void SendSetSmoothScrolling();
|
void SendSetSmoothScrolling();
|
||||||
|
|
||||||
// Handles `LoadUrl()` result for the main document.
|
// Handles `LoadUrl()` result for the main document.
|
||||||
void DidOpen(std::unique_ptr<UrlLoader> loader, int32_t result);
|
void DidOpen(std::unique_ptr<UrlLoader> loader, Result result);
|
||||||
|
|
||||||
// Updates the scroll position, which is in CSS pixels relative to the
|
// Updates the scroll position, which is in CSS pixels relative to the
|
||||||
// top-left corner.
|
// top-left corner.
|
||||||
@@ -532,7 +533,7 @@ class PdfViewWebPlugin final : public PDFiumEngineClient,
|
|||||||
void LoadUrl(std::string_view url, LoadUrlCallback callback);
|
void LoadUrl(std::string_view url, LoadUrlCallback callback);
|
||||||
|
|
||||||
// Handles `Open()` result for `form_loader_`.
|
// Handles `Open()` result for `form_loader_`.
|
||||||
void DidFormOpen(int32_t result);
|
void DidFormOpen(Result result);
|
||||||
|
|
||||||
// Sends start/stop loading notifications to the plugin's render frame.
|
// Sends start/stop loading notifications to the plugin's render frame.
|
||||||
void DidStartLoading();
|
void DidStartLoading();
|
||||||
@@ -669,7 +670,7 @@ class PdfViewWebPlugin final : public PDFiumEngineClient,
|
|||||||
void LoadAvailablePreviewPage();
|
void LoadAvailablePreviewPage();
|
||||||
|
|
||||||
// Handles `LoadUrl()` result for a preview page.
|
// Handles `LoadUrl()` result for a preview page.
|
||||||
void DidOpenPreview(std::unique_ptr<UrlLoader> loader, int32_t result);
|
void DidOpenPreview(std::unique_ptr<UrlLoader> loader, Result result);
|
||||||
|
|
||||||
// Continues loading the next preview page.
|
// Continues loading the next preview page.
|
||||||
void LoadNextPreviewPage();
|
void LoadNextPreviewPage();
|
||||||
|
Reference in New Issue
Block a user