diff --git a/default_app/default_app.ts b/default_app/default_app.ts index d517aeb351256..3c5389fc357db 100644 --- a/default_app/default_app.ts +++ b/default_app/default_app.ts @@ -3,6 +3,8 @@ import * as path from 'path' let mainWindow: BrowserWindow | null = null +app.allowRendererProcessReuse = true + // Quit when all windows are closed. app.on('window-all-closed', () => { app.quit() diff --git a/lib/browser/api/web-contents.js b/lib/browser/api/web-contents.js index d8dd7b1d9c1f2..5c1dce790d335 100644 --- a/lib/browser/api/web-contents.js +++ b/lib/browser/api/web-contents.js @@ -318,8 +318,14 @@ const addReturnValueToEvent = (event) => { }) } +let warnedAboutRendererProcessReuse = false + // Add JavaScript wrappers for WebContents class. WebContents.prototype._init = function () { + if (!warnedAboutRendererProcessReuse && app._allowRendererProcessReuseIsDefaultValue) { + deprecate.log('The default value of app.allowRendererProcessReuse is deprecated, it is currently "false". It will change to be "true" in Electron 9. For more information please check https://github.com/electron/electron/issues/18397') + warnedAboutRendererProcessReuse = true + } // The navigation controller. NavigationController.call(this, this) diff --git a/shell/browser/api/atom_api_app.cc b/shell/browser/api/atom_api_app.cc index df9fe2ffcb916..f4922d9a57161 100644 --- a/shell/browser/api/atom_api_app.cc +++ b/shell/browser/api/atom_api_app.cc @@ -1326,6 +1326,9 @@ void App::SetBrowserClientCanUseCustomSiteInstance(bool should_disable) { bool App::CanBrowserClientUseCustomSiteInstance() { return AtomBrowserClient::Get()->CanUseCustomSiteInstance(); } +bool App::CanBrowserClientUseCustomSiteInstanceIsDefaultValue() { + return AtomBrowserClient::Get()->CanUseCustomSiteInstanceIsDefaultValue(); +} #if defined(OS_MACOSX) bool App::MoveToApplicationsFolder(gin_helper::ErrorThrower thrower, @@ -1518,7 +1521,9 @@ void App::BuildPrototype(v8::Isolate* isolate, .SetMethod("enableSandbox", &App::EnableSandbox) .SetProperty("allowRendererProcessReuse", &App::CanBrowserClientUseCustomSiteInstance, - &App::SetBrowserClientCanUseCustomSiteInstance); + &App::SetBrowserClientCanUseCustomSiteInstance) + .SetProperty("_allowRendererProcessReuseIsDefaultValue", + &App::CanBrowserClientUseCustomSiteInstanceIsDefaultValue); } } // namespace api diff --git a/shell/browser/api/atom_api_app.h b/shell/browser/api/atom_api_app.h index a0701cb720f96..a6b2e2418eeb5 100644 --- a/shell/browser/api/atom_api_app.h +++ b/shell/browser/api/atom_api_app.h @@ -203,6 +203,7 @@ class App : public AtomBrowserClient::Delegate, std::string GetUserAgentFallback(); void SetBrowserClientCanUseCustomSiteInstance(bool should_disable); bool CanBrowserClientUseCustomSiteInstance(); + bool CanBrowserClientUseCustomSiteInstanceIsDefaultValue(); #if defined(OS_MACOSX) bool MoveToApplicationsFolder(gin_helper::ErrorThrower, diff --git a/shell/browser/atom_browser_client.cc b/shell/browser/atom_browser_client.cc index 529e4eb34041f..ed58c829691b6 100644 --- a/shell/browser/atom_browser_client.cc +++ b/shell/browser/atom_browser_client.cc @@ -422,12 +422,17 @@ void AtomBrowserClient::OverrideWebkitPrefs(content::RenderViewHost* host, void AtomBrowserClient::SetCanUseCustomSiteInstance(bool should_disable) { disable_process_restart_tricks_ = should_disable; + disable_process_restart_tricks_is_default_value_ = false; } bool AtomBrowserClient::CanUseCustomSiteInstance() { return disable_process_restart_tricks_; } +bool AtomBrowserClient::CanUseCustomSiteInstanceIsDefaultValue() { + return disable_process_restart_tricks_is_default_value_; +} + content::ContentBrowserClient::SiteInstanceForNavigationType AtomBrowserClient::ShouldOverrideSiteInstanceForNavigation( content::RenderFrameHost* current_rfh, diff --git a/shell/browser/atom_browser_client.h b/shell/browser/atom_browser_client.h index fbcd7e665fe96..81ecd42956f56 100644 --- a/shell/browser/atom_browser_client.h +++ b/shell/browser/atom_browser_client.h @@ -73,6 +73,7 @@ class AtomBrowserClient : public content::ContentBrowserClient, void SetCanUseCustomSiteInstance(bool should_disable); bool CanUseCustomSiteInstance() override; + bool CanUseCustomSiteInstanceIsDefaultValue(); protected: void RenderProcessWillLaunch(content::RenderProcessHost* host) override; @@ -283,6 +284,7 @@ class AtomBrowserClient : public content::ContentBrowserClient, std::string user_agent_override_ = ""; bool disable_process_restart_tricks_ = false; + bool disable_process_restart_tricks_is_default_value_ = true; DISALLOW_COPY_AND_ASSIGN(AtomBrowserClient); };