namespace {
-// This function is implemented in JavaScript
-using DeprecatedOptionsCheckCallback =
- base::Callback<std::string(v8::Local<v8::Value>)>;
-DeprecatedOptionsCheckCallback g_deprecated_options_check;
-
void OnCapturePageDone(
v8::Isolate* isolate,
const base::Callback<void(const gfx::Image&)>& callback,
options = mate::Dictionary::CreateEmpty(isolate);
}
- std::string deprecation_message = g_deprecated_options_check.Run(
- options.GetHandle());
- if (deprecation_message.length() > 0) {
- args->ThrowError(deprecation_message);
- return nullptr;
- }
-
return new Window(isolate, options);
}
return v8::Null(isolate);
}
-void SetDeprecatedOptionsCheck(const DeprecatedOptionsCheckCallback& callback) {
- g_deprecated_options_check = callback;
-}
-
} // namespace api
} // namespace atom
mate::Dictionary dict(isolate, exports);
dict.Set("BrowserWindow", browser_window);
- dict.SetMethod("_setDeprecatedOptionsCheck",
- &atom::api::SetDeprecatedOptionsCheck);
}
} // namespace
'use strict'
const ipcMain = require('electron').ipcMain
-const deprecate = require('electron').deprecate
const EventEmitter = require('events').EventEmitter
-const {BrowserWindow, _setDeprecatedOptionsCheck} = process.atomBinding('window')
+const {BrowserWindow} = process.atomBinding('window')
Object.setPrototypeOf(BrowserWindow.prototype, EventEmitter.prototype)
return this.webContents.inspectServiceWorker()
}
-const isDeprecatedKey = function (key) {
- return key.indexOf('-') >= 0
-}
-
-// Map deprecated key with hyphens to camel case key
-const getNonDeprecatedKey = function (deprecatedKey) {
- return deprecatedKey.replace(/-./g, function (match) {
- return match[1].toUpperCase()
- })
-}
-
-// TODO Remove for 1.0
-const checkForDeprecatedOptions = function (options) {
- if (!options) return ''
-
- let keysToCheck = Object.keys(options)
- if (options.webPreferences) {
- keysToCheck = keysToCheck.concat(Object.keys(options.webPreferences))
- }
-
- // Check options for keys with hyphens in them
- let deprecatedKey = keysToCheck.filter(isDeprecatedKey)[0]
- if (deprecatedKey) {
- try {
- deprecate.warn(deprecatedKey, getNonDeprecatedKey(deprecatedKey))
- } catch (error) {
- // Return error message so it can be rethrown via C++
- return error.message
- }
- }
-
- let webPreferenceOption
- if (options.hasOwnProperty('nodeIntegration')) {
- webPreferenceOption = 'nodeIntegration'
- } else if (options.hasOwnProperty('preload')) {
- webPreferenceOption = 'preload'
- } else if (options.hasOwnProperty('zoomFactor')) {
- webPreferenceOption = 'zoomFactor'
- }
- if (webPreferenceOption) {
- try {
- deprecate.warn(`options.${webPreferenceOption}`, `options.webPreferences.${webPreferenceOption}`)
- } catch (error) {
- // Return error message so it can be rethrown via C++
- return error.message
- }
- }
-
- return ''
-}
-_setDeprecatedOptionsCheck(checkForDeprecatedOptions)
-
module.exports = BrowserWindow