mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
refactor: remove electron::WebRequestAPI interface (#48792)
* refactor: remove electron::WebRequestAPI interface Remove the |electron::WebRequestAPI| interface class. Use handles to the concrete class |electron::api::WebRequest| instead. Prerequisite for https://github.com/electron/electron/pull/48762. Two classes (electron::ProxyingURLLoaderFactory and electron::ProxyingWebSocket) hold a handle to a WebRequest via |raw_ptr<electron::WebRequestAPI>|. |electron::WebRequestAPI| is a pure virtual interface whose concrete impl is |electron::api::WebRequest|. This is a problem when migrating |electron::api::WebRequest| to cppgc: we need to change those |raw_ptr<>|s to |cppgc::WeakPersistent<>| but can't instantiate |cppgc::WeakPersistent<electron::WebRequestAPI>| as-is. We also can't change it to inherit from |cppgc::GarbageCollectedMixin|, since that causes problems when |electron::api::WebRequest| inherits from both |electron::WebRequestAPI| and |cppgc::GarbageCollected|. * refactor: use name web_request, not web_request_api * refactor: make ProxyingURLLoaderFactory::web_request() private * chore: make linter happy by fixing whitespace
This commit is contained in:
@@ -7,9 +7,11 @@
|
||||
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "shell/browser/net/web_request_api_interface.h"
|
||||
#include "net/base/completion_once_callback.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
#include "shell/common/gin_helper/wrappable.h"
|
||||
|
||||
class URLPattern;
|
||||
@@ -19,6 +21,7 @@ class BrowserContext;
|
||||
}
|
||||
|
||||
namespace extensions {
|
||||
struct WebRequestInfo;
|
||||
enum class WebRequestResourceType : uint8_t;
|
||||
} // namespace extensions
|
||||
|
||||
@@ -33,9 +36,13 @@ class Handle;
|
||||
|
||||
namespace electron::api {
|
||||
|
||||
class WebRequest final : public gin_helper::DeprecatedWrappable<WebRequest>,
|
||||
public WebRequestAPI {
|
||||
class WebRequest final : public gin_helper::DeprecatedWrappable<WebRequest> {
|
||||
public:
|
||||
using BeforeSendHeadersCallback =
|
||||
base::OnceCallback<void(const std::set<std::string>& removed_headers,
|
||||
const std::set<std::string>& set_headers,
|
||||
int error_code)>;
|
||||
|
||||
// Return the WebRequest object attached to |browser_context|, create if there
|
||||
// is no one.
|
||||
// Note that the lifetime of WebRequest object is managed by Session, instead
|
||||
@@ -62,38 +69,37 @@ class WebRequest final : public gin_helper::DeprecatedWrappable<WebRequest>,
|
||||
v8::Isolate* isolate) override;
|
||||
const char* GetTypeName() override;
|
||||
|
||||
// WebRequestAPI:
|
||||
bool HasListener() const override;
|
||||
bool HasListener() const;
|
||||
int OnBeforeRequest(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
net::CompletionOnceCallback callback,
|
||||
GURL* new_url) override;
|
||||
GURL* new_url);
|
||||
int OnBeforeSendHeaders(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
BeforeSendHeadersCallback callback,
|
||||
net::HttpRequestHeaders* headers) override;
|
||||
net::HttpRequestHeaders* headers);
|
||||
int OnHeadersReceived(
|
||||
extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
net::CompletionOnceCallback callback,
|
||||
const net::HttpResponseHeaders* original_response_headers,
|
||||
scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
|
||||
GURL* allowed_unsafe_redirect_url) override;
|
||||
GURL* allowed_unsafe_redirect_url);
|
||||
void OnSendHeaders(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
const net::HttpRequestHeaders& headers) override;
|
||||
const net::HttpRequestHeaders& headers);
|
||||
void OnBeforeRedirect(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
const GURL& new_location) override;
|
||||
const GURL& new_location);
|
||||
void OnResponseStarted(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request) override;
|
||||
const network::ResourceRequest& request);
|
||||
void OnErrorOccurred(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
int net_error) override;
|
||||
int net_error);
|
||||
void OnCompleted(extensions::WebRequestInfo* info,
|
||||
const network::ResourceRequest& request,
|
||||
int net_error) override;
|
||||
void OnRequestWillBeDestroyed(extensions::WebRequestInfo* info) override;
|
||||
int net_error);
|
||||
void OnRequestWillBeDestroyed(extensions::WebRequestInfo* info);
|
||||
|
||||
private:
|
||||
WebRequest(v8::Isolate* isolate, content::BrowserContext* browser_context);
|
||||
|
||||
Reference in New Issue
Block a user