diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 55300819617..81e2423a351 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -1127,12 +1127,6 @@ bool WebContents::IsGuest() const { return type_ == WEB_VIEW; } -void WebContents::MergeWebPreferences(const base::DictionaryValue& extend) { - WebContentsPreferences* web_preferences = - WebContentsPreferences::FromWebContents(web_contents()); - web_preferences->Merge(extend); -} - v8::Local WebContents::GetWebPreferences(v8::Isolate* isolate) { WebContentsPreferences* web_preferences = WebContentsPreferences::FromWebContents(web_contents()); @@ -1227,7 +1221,6 @@ void WebContents::BuildPrototype(v8::Isolate* isolate, .SetMethod("endFrameSubscription", &WebContents::EndFrameSubscription) .SetMethod("setSize", &WebContents::SetSize) .SetMethod("isGuest", &WebContents::IsGuest) - .SetMethod("mergeWebPreferences", &WebContents::MergeWebPreferences) .SetMethod("getWebPreferences", &WebContents::GetWebPreferences) .SetMethod("getOwnerBrowserWindow", &WebContents::GetOwnerBrowserWindow) .SetMethod("hasServiceWorker", &WebContents::HasServiceWorker) diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 91b860bff9a..0cb2a348e17 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -144,7 +144,6 @@ class WebContents : public mate::TrackableObject, WindowOpenDisposition disposition); // Returns the web preferences of current WebContents. - void MergeWebPreferences(const base::DictionaryValue& extend); v8::Local GetWebPreferences(v8::Isolate* isolate); // Returns the owner window. diff --git a/atom/browser/web_contents_preferences.cc b/atom/browser/web_contents_preferences.cc index 14bbf3e719a..05286a2d3ba 100644 --- a/atom/browser/web_contents_preferences.cc +++ b/atom/browser/web_contents_preferences.cc @@ -8,6 +8,7 @@ #include #include +#include "atom/browser/native_window.h" #include "atom/common/native_mate_converters/value_converter.h" #include "atom/common/options_switches.h" #include "base/command_line.h" @@ -147,9 +148,12 @@ void WebContentsPreferences::AppendExtraCommandLineSwitches( blink_features); // The initial visibility state. - std::string visibility; - if (web_preferences.GetString(options::kVisibilityState, &visibility)) - command_line->AppendSwitchASCII(switches::kVisibilityState, visibility); + NativeWindow* window = NativeWindow::FromWebContents(web_contents); + if (window) { + bool visible = window->IsVisible() && !window->IsMinimized(); + if (!visible) // Default state is visible. + command_line->AppendSwitch("hidden-page"); + } } // static diff --git a/atom/common/options_switches.cc b/atom/common/options_switches.cc index bd9657eb372..ce28cc98fac 100644 --- a/atom/common/options_switches.cc +++ b/atom/common/options_switches.cc @@ -106,9 +106,6 @@ const char kOpenerID[] = "openerId"; // Enable blink features. const char kBlinkFeatures[] = "blinkFeatures"; -// The initiali visibility state. -const char kVisibilityState[] = "visibilityState"; - } // namespace options namespace switches { @@ -152,7 +149,6 @@ const char kPreloadURL[] = "preload-url"; const char kNodeIntegration[] = "node-integration"; const char kGuestInstanceID[] = "guest-instance-id"; const char kOpenerID[] = "opener-id"; -const char kVisibilityState[] = "visibility-state"; // Widevine options // Path to Widevine CDM binaries. diff --git a/atom/common/options_switches.h b/atom/common/options_switches.h index f7548c5388d..52d64c00d51 100644 --- a/atom/common/options_switches.h +++ b/atom/common/options_switches.h @@ -56,7 +56,6 @@ extern const char kGuestInstanceID[]; extern const char kExperimentalFeatures[]; extern const char kExperimentalCanvasFeatures[]; extern const char kOpenerID[]; -extern const char kVisibilityState[]; extern const char kBlinkFeatures[]; } // namespace options @@ -84,7 +83,6 @@ extern const char kPreloadURL[]; extern const char kNodeIntegration[]; extern const char kGuestInstanceID[]; extern const char kOpenerID[]; -extern const char kVisibilityState[]; extern const char kWidevineCdmPath[]; extern const char kWidevineCdmVersion[]; diff --git a/lib/browser/api/browser-window.js b/lib/browser/api/browser-window.js index 0524c43942c..c9d63278f97 100644 --- a/lib/browser/api/browser-window.js +++ b/lib/browser/api/browser-window.js @@ -93,11 +93,6 @@ BrowserWindow.prototype._init = function () { this.on('restore', visibilityChanged) this.on('maximize', visibilityChanged) - // Make renderer process have correct initial state. - if (!isVisible) { - this.webContents.mergeWebPreferences({visibilityState: 'hidden'}) - } - // Notify the creation of the window. app.emit('browser-window-created', {}, this) diff --git a/lib/renderer/init.js b/lib/renderer/init.js index 689307ed684..a9f4acc5cbf 100644 --- a/lib/renderer/init.js +++ b/lib/renderer/init.js @@ -58,8 +58,6 @@ for (let arg of process.argv) { nodeIntegration = arg.substr(arg.indexOf('=') + 1) } else if (arg.indexOf('--preload=') === 0) { preloadScript = arg.substr(arg.indexOf('=') + 1) - } else if (arg.indexOf('--visibility-state=') === 0) { - process.visibilityState = arg.substr(arg.indexOf('=') + 1) } } diff --git a/lib/renderer/override.js b/lib/renderer/override.js index 1d01d2b5b75..db56eadd348 100644 --- a/lib/renderer/override.js +++ b/lib/renderer/override.js @@ -225,10 +225,7 @@ Object.defineProperty(window.history, 'length', { }) // The initial visibilityState. -let cachedVisibilityState = 'visible' -if (process.visibilityState) { - cachedVisibilityState = process.visibilityState -} +let cachedVisibilityState = process.argv.includes('--hidden-page') ? 'hidden' : 'visible' // Subscribe to visibilityState changes. ipcRenderer.on('ELECTRON_RENDERER_WINDOW_VISIBILITY_CHANGE', function (event, visibilityState) {