Compare commits

...

1 Commits

Author SHA1 Message Date
Milan Burda
ab2bb3f8a7 wip 2023-10-10 01:13:09 +02:00
5 changed files with 20 additions and 0 deletions

View File

@@ -62,6 +62,17 @@ void ElectronRendererClient::RunScriptsAtDocumentEnd(
"document-end");
}
void ElectronRendererClient::RunScriptsAtDocumentIdle(
content::RenderFrame* render_frame) {
RendererClientBase::RunScriptsAtDocumentIdle(render_frame);
// Inform the document end phase.
v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
node::Environment* env = GetEnvironment(render_frame);
if (env)
gin_helper::EmitEvent(env->isolate(), env->process_object(),
"document-idle");
}
void ElectronRendererClient::UndeferLoad(content::RenderFrame* render_frame) {
render_frame->GetWebFrame()->GetDocumentLoader()->SetDefersLoading(
blink::LoaderFreezeMode::kNone);

View File

@@ -41,6 +41,7 @@ class ElectronRendererClient : public RendererClientBase {
void RenderFrameCreated(content::RenderFrame*) override;
void RunScriptsAtDocumentStart(content::RenderFrame* render_frame) override;
void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) override;
void RunScriptsAtDocumentIdle(content::RenderFrame* render_frame) override;
void WorkerScriptReadyForEvaluationOnWorkerThread(
v8::Local<v8::Context> context) override;
void WillDestroyWorkerContextOnWorkerThread(

View File

@@ -168,6 +168,12 @@ void ElectronSandboxedRendererClient::RunScriptsAtDocumentEnd(
EmitProcessEvent(render_frame, "document-end");
}
void ElectronSandboxedRendererClient::RunScriptsAtDocumentIdle(
content::RenderFrame* render_frame) {
RendererClientBase::RunScriptsAtDocumentIdle(render_frame);
EmitProcessEvent(render_frame, "document-idle");
}
void ElectronSandboxedRendererClient::DidCreateScriptContext(
v8::Handle<v8::Context> context,
content::RenderFrame* render_frame) {

View File

@@ -42,6 +42,7 @@ class ElectronSandboxedRendererClient : public RendererClientBase {
void RenderFrameCreated(content::RenderFrame*) override;
void RunScriptsAtDocumentStart(content::RenderFrame* render_frame) override;
void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) override;
void RunScriptsAtDocumentIdle(content::RenderFrame* render_frame) override;
private:
void EmitProcessEvent(content::RenderFrame* render_frame,

View File

@@ -248,6 +248,7 @@ declare namespace NodeJS {
// Additional events
once(event: 'document-start', listener: () => any): this;
once(event: 'document-end', listener: () => any): this;
once(event: 'document-idle', listener: () => any): this;
// Additional properties
_firstFileName?: string;