Commit 2a8ea0d0 authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Migrate ResourceBundleFileLoader class to new Mojo types

This CL applies the new Mojo types to functions
in ResourceBundleFileLoader class.

  - Convert FooRequest to mojo::PendingReceiver.
  - Convert FooPtrInfo to mojo::PendingRemote.
  - Convert mojo::Binding to mojo::Receiver.
  - Convert FooPtr to mojo::Remote.

Bug: 955171
Change-Id: Ia5f954e8c7e5fb57672ae374df5619e97789aaaa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1873818Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#709732}
parent bfc46a66
......@@ -22,7 +22,10 @@
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/url_request_util.h"
#include "extensions/common/file_util.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/base/completion_once_callback.h"
#include "net/base/mime_util.h"
#include "net/base/net_errors.h"
......@@ -78,9 +81,10 @@ scoped_refptr<base::RefCountedMemory> GetResource(
// component extensions.
class ResourceBundleFileLoader : public network::mojom::URLLoader {
public:
static void CreateAndStart(const network::ResourceRequest& request,
network::mojom::URLLoaderRequest loader,
network::mojom::URLLoaderClientPtrInfo client_info,
static void CreateAndStart(
const network::ResourceRequest& request,
mojo::PendingReceiver<network::mojom::URLLoader> loader,
mojo::PendingRemote<network::mojom::URLLoaderClient> client_info,
const base::FilePath& filename,
int resource_id,
const std::string& content_security_policy,
......@@ -109,24 +113,24 @@ class ResourceBundleFileLoader : public network::mojom::URLLoader {
private:
ResourceBundleFileLoader(const std::string& content_security_policy,
bool send_cors_header)
: binding_(this) {
bool send_cors_header) {
response_headers_ = extensions::BuildHttpHeaders(
content_security_policy, send_cors_header, base::Time());
}
~ResourceBundleFileLoader() override = default;
void Start(const network::ResourceRequest& request,
network::mojom::URLLoaderRequest loader,
network::mojom::URLLoaderClientPtrInfo client_info,
void Start(
const network::ResourceRequest& request,
mojo::PendingReceiver<network::mojom::URLLoader> loader,
mojo::PendingRemote<network::mojom::URLLoaderClient> client_info_remote,
const base::FilePath& filename,
int resource_id) {
client_.Bind(std::move(client_info));
binding_.Bind(std::move(loader));
binding_.set_connection_error_handler(base::BindOnce(
&ResourceBundleFileLoader::OnBindingError, base::Unretained(this)));
client_.set_connection_error_handler(base::BindOnce(
&ResourceBundleFileLoader::OnConnectionError, base::Unretained(this)));
client_.Bind(std::move(client_info_remote));
receiver_.Bind(std::move(loader));
receiver_.set_disconnect_handler(base::BindOnce(
&ResourceBundleFileLoader::OnReceiverError, base::Unretained(this)));
client_.set_disconnect_handler(base::BindOnce(
&ResourceBundleFileLoader::OnMojoDisconnect, base::Unretained(this)));
auto data = GetResource(resource_id, request.url.host());
std::string* read_mime_type = new std::string;
......@@ -173,18 +177,18 @@ class ResourceBundleFileLoader : public network::mojom::URLLoader {
OnFileWritten(result);
}
void OnConnectionError() {
void OnMojoDisconnect() {
client_.reset();
MaybeDeleteSelf();
}
void OnBindingError() {
binding_.Close();
void OnReceiverError() {
receiver_.reset();
MaybeDeleteSelf();
}
void MaybeDeleteSelf() {
if (!binding_.is_bound() && !client_.is_bound())
if (!receiver_.is_bound() && !client_.is_bound())
delete this;
}
......@@ -199,8 +203,8 @@ class ResourceBundleFileLoader : public network::mojom::URLLoader {
MaybeDeleteSelf();
}
mojo::Binding<network::mojom::URLLoader> binding_;
network::mojom::URLLoaderClientPtr client_;
mojo::Receiver<network::mojom::URLLoader> receiver_{this};
mojo::Remote<network::mojom::URLLoaderClient> client_;
scoped_refptr<net::HttpResponseHeaders> response_headers_;
base::WeakPtrFactory<ResourceBundleFileLoader> weak_factory_{this};
......
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