feat: migrate webRequest module to NetworkService (Part 4) (#19679)
* chore: use gin in WebRequest * Add stubs for APIs
This commit is contained in:
parent
bc0a2d1b28
commit
2dffc9f6eb
7 changed files with 255 additions and 23 deletions
|
@ -5,9 +5,12 @@
|
|||
#ifndef SHELL_BROWSER_API_ATOM_API_WEB_REQUEST_NS_H_
|
||||
#define SHELL_BROWSER_API_ATOM_API_WEB_REQUEST_NS_H_
|
||||
|
||||
#include "base/values.h"
|
||||
#include "gin/arguments.h"
|
||||
#include "gin/handle.h"
|
||||
#include "gin/wrappable.h"
|
||||
#include "native_mate/dictionary.h"
|
||||
#include "native_mate/handle.h"
|
||||
#include "shell/browser/api/trackable_object.h"
|
||||
|
||||
namespace electron {
|
||||
|
||||
|
@ -15,17 +18,46 @@ class AtomBrowserContext;
|
|||
|
||||
namespace api {
|
||||
|
||||
class WebRequestNS : public mate::TrackableObject<WebRequestNS> {
|
||||
class WebRequestNS : public gin::Wrappable<WebRequestNS> {
|
||||
public:
|
||||
static mate::Handle<WebRequestNS> Create(v8::Isolate* isolate,
|
||||
AtomBrowserContext* browser_context);
|
||||
static gin::WrapperInfo kWrapperInfo;
|
||||
|
||||
static void BuildPrototype(v8::Isolate* isolate,
|
||||
v8::Local<v8::FunctionTemplate> prototype);
|
||||
static gin::Handle<WebRequestNS> Create(v8::Isolate* isolate,
|
||||
AtomBrowserContext* browser_context);
|
||||
|
||||
// gin::Wrappable:
|
||||
gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
|
||||
v8::Isolate* isolate) override;
|
||||
const char* GetTypeName() override;
|
||||
|
||||
private:
|
||||
WebRequestNS(v8::Isolate* isolate, AtomBrowserContext* browser_context);
|
||||
~WebRequestNS() override;
|
||||
|
||||
enum SimpleEvent {
|
||||
kOnSendHeaders,
|
||||
kOnBeforeRedirect,
|
||||
kOnResponseStarted,
|
||||
kOnCompleted,
|
||||
kOnErrorOccurred,
|
||||
};
|
||||
enum ResponseEvent {
|
||||
kOnBeforeRequest,
|
||||
kOnBeforeSendHeaders,
|
||||
kOnHeadersReceived,
|
||||
};
|
||||
|
||||
using SimpleListener = base::RepeatingCallback<void(const base::Value&)>;
|
||||
using ResponseCallback = base::OnceCallback<void(const base::Value&)>;
|
||||
using ResponseListener =
|
||||
base::RepeatingCallback<void(const base::Value&, ResponseCallback)>;
|
||||
|
||||
template <SimpleEvent event>
|
||||
void SetSimpleListener(gin::Arguments* args);
|
||||
template <ResponseEvent event>
|
||||
void SetResponseListener(gin::Arguments* args);
|
||||
template <typename Listener, typename Event>
|
||||
void SetListener(Event event, gin::Arguments* args);
|
||||
};
|
||||
|
||||
} // namespace api
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue