Merge pull request #13050 from electron/3.0.0-deprecations
chore: removal of 3.0.0 deprecations
This commit is contained in:
commit
b89fe86fa1
32 changed files with 76 additions and 421 deletions
|
@ -145,9 +145,6 @@ void Screen::BuildPrototype(v8::Isolate* isolate,
|
|||
.SetMethod("dipToScreenPoint", &display::win::ScreenWin::DIPToScreenPoint)
|
||||
.SetMethod("screenToDipRect", &ScreenToDIPRect)
|
||||
.SetMethod("dipToScreenRect", &DIPToScreenRect)
|
||||
#endif
|
||||
#if defined(OS_MACOSX)
|
||||
.SetMethod("getMenuBarHeight", &Screen::getMenuBarHeight)
|
||||
#endif
|
||||
.SetMethod("getDisplayMatching", &Screen::GetDisplayMatching);
|
||||
}
|
||||
|
|
|
@ -40,10 +40,6 @@ class Screen : public mate::EventEmitter<Screen>,
|
|||
display::Display GetDisplayNearestPoint(const gfx::Point& point);
|
||||
display::Display GetDisplayMatching(const gfx::Rect& match_rect);
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
int getMenuBarHeight();
|
||||
#endif
|
||||
|
||||
// display::DisplayObserver:
|
||||
void OnDisplayAdded(const display::Display& new_display) override;
|
||||
void OnDisplayRemoved(const display::Display& old_display) override;
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
// Copyright (c) 2017 GitHub, Inc.
|
||||
// Use of this source code is governed by the MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "atom/browser/api/atom_api_screen.h"
|
||||
|
||||
namespace atom {
|
||||
|
||||
namespace api {
|
||||
|
||||
// TODO(codebytere): deprecated; remove in 3.0
|
||||
int Screen::getMenuBarHeight() {
|
||||
return [[NSApp mainMenu] menuBarHeight];
|
||||
}
|
||||
|
||||
} // namespace api
|
||||
|
||||
} // namespace atom
|
|
@ -821,7 +821,7 @@ void Session::BuildPrototype(v8::Isolate* isolate,
|
|||
.SetMethod("setDownloadPath", &Session::SetDownloadPath)
|
||||
.SetMethod("enableNetworkEmulation", &Session::EnableNetworkEmulation)
|
||||
.SetMethod("disableNetworkEmulation", &Session::DisableNetworkEmulation)
|
||||
.SetMethod("_setCertificateVerifyProc", &Session::SetCertVerifyProc)
|
||||
.SetMethod("setCertificateVerifyProc", &Session::SetCertVerifyProc)
|
||||
.SetMethod("setPermissionRequestHandler",
|
||||
&Session::SetPermissionRequestHandler)
|
||||
.SetMethod("clearHostResolverCache", &Session::ClearHostResolverCache)
|
||||
|
|
|
@ -40,16 +40,6 @@ struct Converter<atom::TrayIcon::HighlightMode> {
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool highlight;
|
||||
if (ConvertFromV8(isolate, val, &highlight)) {
|
||||
if (highlight)
|
||||
*out = atom::TrayIcon::HighlightMode::SELECTION;
|
||||
else
|
||||
*out = atom::TrayIcon::HighlightMode::NEVER;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1296,15 +1296,9 @@ void WebContents::OpenDevTools(mate::Arguments* args) {
|
|||
state = "detach";
|
||||
}
|
||||
if (args && args->Length() == 1) {
|
||||
bool detach = false;
|
||||
mate::Dictionary options;
|
||||
if (args->GetNext(&options)) {
|
||||
options.Get("mode", &state);
|
||||
|
||||
// TODO(kevinsawicki) Remove in 2.0
|
||||
options.Get("detach", &detach);
|
||||
if (state.empty() && detach)
|
||||
state = "detach";
|
||||
}
|
||||
}
|
||||
managed_web_contents()->SetDockState(state);
|
||||
|
|
|
@ -143,10 +143,6 @@ bool NativeWindowViews::ExecuteWindowsCommand(int command_id) {
|
|||
std::string command = AppCommandToString(command_id);
|
||||
NotifyWindowExecuteWindowsCommand(command);
|
||||
|
||||
if (command_id == APPCOMMAND_MEDIA_PLAY_PAUSE)
|
||||
// FIXME(htk3): Remove media-play_pause in 3.0
|
||||
NotifyWindowExecuteWindowsCommand("media-play_pause");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -232,7 +232,7 @@ void WebContentsPreferences::AppendCommandLineSwitches(
|
|||
}
|
||||
|
||||
// Enable blink features.
|
||||
if (dict_.GetString(options::kBlinkFeatures, &s))
|
||||
if (dict_.GetString(options::kEnableBlinkFeatures, &s))
|
||||
command_line->AppendSwitchASCII(::switches::kEnableBlinkFeatures, s);
|
||||
|
||||
// Disable blink features.
|
||||
|
|
|
@ -517,9 +517,6 @@ mate::Handle<NativeImage> NativeImage::CreateFromBuffer(
|
|||
options.Get("width", &width);
|
||||
options.Get("height", &height);
|
||||
options.Get("scaleFactor", &scale_factor);
|
||||
} else {
|
||||
// TODO(kevinsawicki): Remove in 2.0, deprecate before then with warnings
|
||||
args->GetNext(&scale_factor);
|
||||
}
|
||||
|
||||
gfx::ImageSkia image_skia;
|
||||
|
|
|
@ -127,8 +127,7 @@ const char kOpenerID[] = "openerId";
|
|||
const char kScrollBounce[] = "scrollBounce";
|
||||
|
||||
// Enable blink features.
|
||||
// TODO(kevinsawicki) Rename to enableBlinkFeatures in 2.0
|
||||
const char kBlinkFeatures[] = "blinkFeatures";
|
||||
const char kEnableBlinkFeatures[] = "enableBlinkFeatures";
|
||||
|
||||
// Disable blink features.
|
||||
const char kDisableBlinkFeatures[] = "disableBlinkFeatures";
|
||||
|
|
|
@ -64,7 +64,7 @@ extern const char kExperimentalFeatures[];
|
|||
extern const char kExperimentalCanvasFeatures[];
|
||||
extern const char kOpenerID[];
|
||||
extern const char kScrollBounce[];
|
||||
extern const char kBlinkFeatures[];
|
||||
extern const char kEnableBlinkFeatures[];
|
||||
extern const char kDisableBlinkFeatures[];
|
||||
extern const char kNodeIntegrationInWorker[];
|
||||
extern const char kWebviewTag[];
|
||||
|
|
|
@ -206,12 +206,6 @@ void WebFrame::SetSpellCheckProvider(mate::Arguments* args,
|
|||
web_frame_->SetSpellCheckPanelHostClient(spell_check_client_.get());
|
||||
}
|
||||
|
||||
void WebFrame::RegisterURLSchemeAsSecure(const std::string& scheme) {
|
||||
// TODO(pfrazee): Remove 2.0
|
||||
blink::SchemeRegistry::RegisterURLSchemeAsSecure(
|
||||
WTF::String::FromUTF8(scheme.data(), scheme.length()));
|
||||
}
|
||||
|
||||
void WebFrame::RegisterURLSchemeAsBypassingCSP(const std::string& scheme) {
|
||||
// Register scheme to bypass pages's Content Security Policy.
|
||||
blink::SchemeRegistry::RegisterURLSchemeAsBypassingContentSecurityPolicy(
|
||||
|
@ -243,10 +237,6 @@ void WebFrame::RegisterURLSchemeAsPrivileged(const std::string& scheme,
|
|||
// Register scheme to privileged list (https, wss, data, chrome-extension)
|
||||
WTF::String privileged_scheme(
|
||||
WTF::String::FromUTF8(scheme.data(), scheme.length()));
|
||||
if (secure) {
|
||||
// TODO(pfrazee): Remove 2.0
|
||||
blink::SchemeRegistry::RegisterURLSchemeAsSecure(privileged_scheme);
|
||||
}
|
||||
if (bypassCSP) {
|
||||
blink::SchemeRegistry::RegisterURLSchemeAsBypassingContentSecurityPolicy(
|
||||
privileged_scheme);
|
||||
|
@ -442,13 +432,13 @@ v8::Local<v8::Value> WebFrame::FindFrameByName(const std::string& name) const {
|
|||
|
||||
v8::Local<v8::Value> WebFrame::FindFrameByRoutingId(int routing_id) const {
|
||||
content::RenderFrame* render_frame =
|
||||
content::RenderFrame::FromRoutingID(routing_id);
|
||||
content::RenderFrame::FromRoutingID(routing_id);
|
||||
blink::WebLocalFrame* local_frame = nullptr;
|
||||
if (render_frame)
|
||||
local_frame = render_frame->GetWebFrame();
|
||||
if (local_frame)
|
||||
return mate::CreateHandle(isolate(),
|
||||
new WebFrame(isolate(), local_frame)).ToV8();
|
||||
return mate::CreateHandle(isolate(), new WebFrame(isolate(), local_frame))
|
||||
.ToV8();
|
||||
else
|
||||
return v8::Null(isolate());
|
||||
}
|
||||
|
@ -479,8 +469,6 @@ void WebFrame::BuildPrototype(v8::Isolate* isolate,
|
|||
.SetMethod("attachGuest", &WebFrame::AttachGuest)
|
||||
.SetMethod("detachGuest", &WebFrame::DetachGuest)
|
||||
.SetMethod("setSpellCheckProvider", &WebFrame::SetSpellCheckProvider)
|
||||
.SetMethod("registerURLSchemeAsSecure",
|
||||
&WebFrame::RegisterURLSchemeAsSecure)
|
||||
.SetMethod("registerURLSchemeAsBypassingCSP",
|
||||
&WebFrame::RegisterURLSchemeAsBypassingCSP)
|
||||
.SetMethod("registerURLSchemeAsPrivileged",
|
||||
|
|
|
@ -66,7 +66,6 @@ class WebFrame : public mate::Wrappable<WebFrame> {
|
|||
bool auto_spell_correct_turned_on,
|
||||
v8::Local<v8::Object> provider);
|
||||
|
||||
void RegisterURLSchemeAsSecure(const std::string& scheme);
|
||||
void RegisterURLSchemeAsBypassingCSP(const std::string& scheme);
|
||||
void RegisterURLSchemeAsPrivileged(const std::string& scheme,
|
||||
mate::Arguments* args);
|
||||
|
|
|
@ -309,7 +309,7 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
|
|||
canvas features. Default is `false`.
|
||||
* `scrollBounce` Boolean (optional) - Enables scroll bounce (rubber banding) effect on
|
||||
macOS. Default is `false`.
|
||||
* `blinkFeatures` String (optional) - A list of feature strings separated by `,`, like
|
||||
* `enableBlinkFeatures` String (optional) - A list of feature strings separated by `,`, like
|
||||
`CSSVariables,KeyboardEventKey` to enable. The full list of supported feature
|
||||
strings can be found in the [RuntimeEnabledFeatures.json5][runtime-enabled-features]
|
||||
file.
|
||||
|
|
|
@ -95,10 +95,6 @@ Returns [`Point`](structures/point.md)
|
|||
|
||||
The current absolute position of the mouse pointer.
|
||||
|
||||
### `screen.getMenuBarHeight()` _macOS_
|
||||
|
||||
Returns `Integer` - The height of the menu bar in pixels.
|
||||
|
||||
### `screen.getPrimaryDisplay()`
|
||||
|
||||
Returns [`Display`](structures/display.md) - The primary display.
|
||||
|
|
|
@ -81,16 +81,6 @@ webFrame.setSpellCheckProvider('en-US', true, {
|
|||
})
|
||||
```
|
||||
|
||||
### `webFrame.registerURLSchemeAsSecure(scheme)`
|
||||
|
||||
* `scheme` String
|
||||
|
||||
Registers the `scheme` as secure scheme.
|
||||
|
||||
Secure schemes do not trigger mixed content warnings. For example, `https` and
|
||||
`data` are secure schemes because they cannot be corrupted by active network
|
||||
attackers.
|
||||
|
||||
### `webFrame.registerURLSchemeAsBypassingCSP(scheme)`
|
||||
|
||||
* `scheme` String
|
||||
|
|
|
@ -214,10 +214,10 @@ A name by itself is given a `true` boolean value.
|
|||
A preference can be set to another value by including an `=`, followed by the value.
|
||||
Special values `yes` and `1` are interpreted as `true`, while `no` and `0` are interpreted as `false`.
|
||||
|
||||
### `blinkfeatures`
|
||||
### `enableblinkfeatures`
|
||||
|
||||
```html
|
||||
<webview src="https://www.github.com/" blinkfeatures="PreciseMemoryInfo, CSSVariables"></webview>
|
||||
<webview src="https://www.github.com/" enableblinkfeatures="PreciseMemoryInfo, CSSVariables"></webview>
|
||||
```
|
||||
|
||||
A list of strings which specifies the blink features to be enabled separated by `,`.
|
||||
|
|
|
@ -1,169 +1,3 @@
|
|||
# Planned Breaking API Changes (3.0)
|
||||
|
||||
The following list includes the APIs that will be removed in Electron 3.0.
|
||||
|
||||
There is no timetable for when this release will occur but deprecation
|
||||
warnings will be added at least [one major version](electron-versioning.md#semver) beforehand.
|
||||
|
||||
## `app`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
app.getAppMemoryInfo()
|
||||
// Replace with
|
||||
app.getAppMetrics()
|
||||
```
|
||||
|
||||
## `BrowserWindow`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
let optionsA = {webPreferences: {blinkFeatures: ''}}
|
||||
let windowA = new BrowserWindow(optionsA)
|
||||
// Replace with
|
||||
let optionsB = {webPreferences: {enableBlinkFeatures: ''}}
|
||||
let windowB = new BrowserWindow(optionsB)
|
||||
|
||||
// Deprecated
|
||||
window.on('app-command', (e, cmd) => {
|
||||
if (cmd === 'media-play_pause') {
|
||||
// do something
|
||||
}
|
||||
})
|
||||
// Replace with
|
||||
window.on('app-command', (e, cmd) => {
|
||||
if (cmd === 'media-play-pause') {
|
||||
// do something
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
## `clipboard`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
clipboard.readRtf()
|
||||
// Replace with
|
||||
clipboard.readRTF()
|
||||
|
||||
// Deprecated
|
||||
clipboard.writeRtf()
|
||||
// Replace with
|
||||
clipboard.writeRTF()
|
||||
|
||||
// Deprecated
|
||||
clipboard.readHtml()
|
||||
// Replace with
|
||||
clipboard.readHTML()
|
||||
|
||||
// Deprecated
|
||||
clipboard.writeHtml()
|
||||
// Replace with
|
||||
clipboard.writeHTML()
|
||||
```
|
||||
|
||||
## `crashReporter`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
crashReporter.start({
|
||||
companyName: 'Crashly',
|
||||
submitURL: 'https://crash.server.com',
|
||||
autoSubmit: true
|
||||
})
|
||||
// Replace with
|
||||
crashReporter.start({
|
||||
companyName: 'Crashly',
|
||||
submitURL: 'https://crash.server.com',
|
||||
uploadToServer: true
|
||||
})
|
||||
```
|
||||
|
||||
## `nativeImage`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
nativeImage.createFromBuffer(buffer, 1.0)
|
||||
// Replace with
|
||||
nativeImage.createFromBuffer(buffer, {
|
||||
scaleFactor: 1.0
|
||||
})
|
||||
```
|
||||
|
||||
## `screen`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
screen.getMenuBarHeight()
|
||||
// Replace with
|
||||
screen.getPrimaryDisplay().workArea
|
||||
```
|
||||
|
||||
## `session`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
ses.setCertificateVerifyProc(function (hostname, certificate, callback) {
|
||||
callback(true)
|
||||
})
|
||||
// Replace with
|
||||
ses.setCertificateVerifyProc(function (request, callback) {
|
||||
callback(0)
|
||||
})
|
||||
```
|
||||
|
||||
## `Tray`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
tray.setHighlightMode(true)
|
||||
// Replace with
|
||||
tray.setHighlightMode('on')
|
||||
|
||||
// Deprecated
|
||||
tray.setHighlightMode(false)
|
||||
// Replace with
|
||||
tray.setHighlightMode('off')
|
||||
```
|
||||
|
||||
## `webContents`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
webContents.openDevTools({detach: true})
|
||||
// Replace with
|
||||
webContents.openDevTools({mode: 'detach'})
|
||||
```
|
||||
|
||||
## `webFrame`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
webFrame.registerURLSchemeAsSecure('app')
|
||||
// Replace with
|
||||
protocol.registerStandardSchemes(['app'], {secure: true})
|
||||
|
||||
// Deprecated
|
||||
webFrame.registerURLSchemeAsPrivileged('app', {secure: true})
|
||||
// Replace with
|
||||
protocol.registerStandardSchemes(['app'], {secure: true})
|
||||
```
|
||||
|
||||
## Node Headers URL
|
||||
|
||||
This is the URL specified as `disturl` in a `.npmrc` file or as the `--dist-url`
|
||||
command line flag when building native Node modules.
|
||||
|
||||
Deprecated: https://atom.io/download/atom-shell
|
||||
|
||||
Replace with: https://atom.io/download/electron
|
||||
|
||||
## `FIXME` comments
|
||||
|
||||
The `FIXME` string is used in code comments to denote things that should be
|
||||
fixed for the 3.0 release. See
|
||||
https://github.com/electron/electron/search?q=fixme
|
||||
|
||||
# Planned Breaking API Changes (4.0)
|
||||
|
||||
The following list includes the APIs that will be removed in Electron 4.0.
|
||||
|
@ -171,6 +5,17 @@ The following list includes the APIs that will be removed in Electron 4.0.
|
|||
There is no timetable for when this release will occur but deprecation
|
||||
warnings will be added at least [one major version](electron-versioning.md#semver) beforehand.
|
||||
|
||||
## `webFrame`
|
||||
|
||||
```js
|
||||
// Deprecated
|
||||
webFrame.registerURLSchemeAsPrivileged('app', {secure: true})
|
||||
// Replace with
|
||||
protocol.registerStandardSchemes(['app'], {secure: true})
|
||||
```
|
||||
|
||||
*Nota Bene:* Before we can remove this we need to update all of the relevant specs to `protocol.registerStandardSchemes(['app'], {secure: true})`.
|
||||
|
||||
## `app.makeSingleInstance`
|
||||
|
||||
```js
|
||||
|
@ -192,4 +37,10 @@ app.on('second-instance', function (argv, cwd) {
|
|||
app.releaseSingleInstance()
|
||||
// Replace with
|
||||
app.releaseSingleInstanceLock()
|
||||
```
|
||||
```
|
||||
|
||||
## `FIXME` comments
|
||||
|
||||
The `FIXME` string is used in code comments to denote things that should be
|
||||
fixed for the 3.0 release. See
|
||||
https://github.com/electron/electron/search?q=fixme
|
|
@ -78,7 +78,7 @@ improve the security of your application.
|
|||
7. [Override and disable `eval`](#7-override-and-disable-eval), which allows strings to be executed as code.
|
||||
8. [Do not set `allowRunningInsecureContent` to `true`](#8-do-not-set-allowrunninginsecurecontent-to-true)
|
||||
9. [Do not enable experimental features](#9-do-not-enable-experimental-features)
|
||||
10. [Do not use `blinkFeatures`](#10-do-not-use-blinkfeatures)
|
||||
10. [Do not use `enableBlinkFeatures`](#10-do-not-use-enableblinkfeatures)
|
||||
11. [WebViews: Do not use `allowpopups`](#11-do-not-use-allowpopups)
|
||||
12. [WebViews: Verify the options and params of all `<webview>` tags](#12-verify-webview-options-before-creation)
|
||||
|
||||
|
@ -452,12 +452,12 @@ const mainWindow = new BrowserWindow({})
|
|||
```
|
||||
|
||||
|
||||
## 10) Do Not Use `blinkFeatures`
|
||||
## 10) Do Not Use `enableBlinkFeatures`
|
||||
|
||||
_Recommendation is Electron's default_
|
||||
|
||||
Blink is the name of the rendering engine behind Chromium. As with
|
||||
`experimentalFeatures`, the `blinkFeatures` property allows developers to
|
||||
`experimentalFeatures`, the `enableBlinkFeatures` property allows developers to
|
||||
enable features that have been disabled by default.
|
||||
|
||||
### Why?
|
||||
|
@ -473,7 +473,7 @@ no circumstances should you enable features speculatively.
|
|||
// Bad
|
||||
const mainWindow = new BrowserWindow({
|
||||
webPreferences: {
|
||||
blinkFeatures: ['ExecCommandInJavaScript']
|
||||
enableBlinkFeatures: ['ExecCommandInJavaScript']
|
||||
}
|
||||
})
|
||||
```
|
||||
|
|
|
@ -152,7 +152,6 @@
|
|||
'atom/browser/api/atom_api_render_process_preferences.h',
|
||||
'atom/browser/api/atom_api_screen.cc',
|
||||
'atom/browser/api/atom_api_screen.h',
|
||||
'atom/browser/api/atom_api_screen_mac.mm',
|
||||
'atom/browser/api/atom_api_session.cc',
|
||||
'atom/browser/api/atom_api_session.h',
|
||||
'atom/browser/api/atom_api_system_preferences.cc',
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
const {EventEmitter} = require('events')
|
||||
const {deprecate} = require('electron')
|
||||
const {screen, Screen} = process.atomBinding('screen')
|
||||
|
||||
// Screen is an EventEmitter.
|
||||
Object.setPrototypeOf(Screen.prototype, EventEmitter.prototype)
|
||||
EventEmitter.call(screen)
|
||||
|
||||
const nativeFn = screen.getMenuBarHeight
|
||||
screen.getMenuBarHeight = function () {
|
||||
if (!process.noDeprecations) {
|
||||
deprecate.warn('screen.getMenuBarHeight', 'screen.getPrimaryDisplay().workArea')
|
||||
}
|
||||
return nativeFn.call(this)
|
||||
}
|
||||
|
||||
module.exports = screen
|
||||
|
|
|
@ -20,18 +20,3 @@ Object.setPrototypeOf(Cookies.prototype, EventEmitter.prototype)
|
|||
Session.prototype._init = function () {
|
||||
app.emit('session-created', this)
|
||||
}
|
||||
|
||||
Session.prototype.setCertificateVerifyProc = function (verifyProc) {
|
||||
if (verifyProc != null && verifyProc.length > 2) {
|
||||
// TODO(kevinsawicki): Remove in 2.0, deprecate before then with warnings
|
||||
this._setCertificateVerifyProc(({hostname, certificate, verificationResult}, cb) => {
|
||||
verifyProc(hostname, certificate, (result) => {
|
||||
// Disabled due to false positive in StandardJS
|
||||
// eslint-disable-next-line standard/no-callback-literal
|
||||
cb(result ? 0 : -2)
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this._setCertificateVerifyProc(verifyProc)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,6 @@
|
|||
const {EventEmitter} = require('events')
|
||||
const {deprecate} = require('electron')
|
||||
const {Tray} = process.atomBinding('tray')
|
||||
|
||||
Object.setPrototypeOf(Tray.prototype, EventEmitter.prototype)
|
||||
|
||||
// TODO(codebytere): remove in 3.0
|
||||
const nativeSetHighlightMode = Tray.prototype.setHighlightMode
|
||||
Tray.prototype.setHighlightMode = function (param) {
|
||||
if (!process.noDeprecations && typeof param === 'boolean') {
|
||||
if (param) {
|
||||
deprecate.warn('tray.setHighlightMode(true)', `tray.setHighlightMode("on")`)
|
||||
} else {
|
||||
deprecate.warn('tray.setHighlightMode(false)', `tray.setHighlightMode("off")`)
|
||||
}
|
||||
}
|
||||
return nativeSetHighlightMode.call(this, param)
|
||||
}
|
||||
|
||||
module.exports = Tray
|
||||
|
|
|
@ -165,14 +165,6 @@ for (const method of webFrameMethodsWithResult) {
|
|||
}
|
||||
}
|
||||
|
||||
const nativeOpenDevTools = WebContents.prototype.openDevTools
|
||||
WebContents.prototype.openDevTools = function (params) {
|
||||
if (!process.noDeprecations && params && 'detach' in params) {
|
||||
deprecate.warn('webContents.openDevTools({detach: true})', `webContents.openDevTools({mode: 'detach'})`)
|
||||
}
|
||||
return nativeOpenDevTools.call(this, params)
|
||||
}
|
||||
|
||||
// Make sure WebContents::executeJavaScript would run the code only when the
|
||||
// WebContents has been loaded.
|
||||
WebContents.prototype.executeJavaScript = function (code, hasUserGesture, callback) {
|
||||
|
|
|
@ -217,7 +217,7 @@ const attachGuest = function (event, elementInstanceId, guestInstanceId, params)
|
|||
plugins: params.plugins,
|
||||
zoomFactor: embedder._getZoomFactor(),
|
||||
webSecurity: !params.disablewebsecurity,
|
||||
blinkFeatures: params.blinkfeatures,
|
||||
enableBlinkFeatures: params.blinkfeatures,
|
||||
disableBlinkFeatures: params.disableblinkfeatures
|
||||
}
|
||||
|
||||
|
|
|
@ -2,41 +2,8 @@ if (process.platform === 'linux' && process.type === 'renderer') {
|
|||
// On Linux we could not access clipboard in renderer process.
|
||||
module.exports = require('electron').remote.clipboard
|
||||
} else {
|
||||
const {deprecate} = require('electron')
|
||||
const clipboard = process.atomBinding('clipboard')
|
||||
|
||||
// TODO(codebytere): remove in 3.0
|
||||
clipboard.readHtml = function () {
|
||||
if (!process.noDeprecations) {
|
||||
deprecate.warn('clipboard.readHtml', 'clipboard.readHTML')
|
||||
}
|
||||
return clipboard.readHTML()
|
||||
}
|
||||
|
||||
// TODO(codebytere): remove in 3.0
|
||||
clipboard.writeHtml = function () {
|
||||
if (!process.noDeprecations) {
|
||||
deprecate.warn('clipboard.writeHtml', 'clipboard.writeHTML')
|
||||
}
|
||||
return clipboard.writeHTML()
|
||||
}
|
||||
|
||||
// TODO(codebytere): remove in 3.0
|
||||
clipboard.readRtf = function () {
|
||||
if (!process.noDeprecations) {
|
||||
deprecate.warn('clipboard.readRtf', 'clipboard.writeRTF')
|
||||
}
|
||||
return clipboard.readRTF()
|
||||
}
|
||||
|
||||
// TODO(codebytere): remove in 3.0
|
||||
clipboard.writeRtf = function () {
|
||||
if (!process.noDeprecations) {
|
||||
deprecate.warn('clipboard.writeRtf', 'clipboard.writeRTF')
|
||||
}
|
||||
return clipboard.writeRTF()
|
||||
}
|
||||
|
||||
// Read/write to find pasteboard over IPC since only main process is notified
|
||||
// of changes
|
||||
if (process.platform === 'darwin' && process.type === 'renderer') {
|
||||
|
|
|
@ -4,7 +4,7 @@ const {spawn} = require('child_process')
|
|||
const os = require('os')
|
||||
const path = require('path')
|
||||
const electron = require('electron')
|
||||
const {app, deprecate} = process.type === 'browser' ? electron : electron.remote
|
||||
const {app} = process.type === 'browser' ? electron : electron.remote
|
||||
const binding = process.atomBinding('crash_reporter')
|
||||
|
||||
class CrashReporter {
|
||||
|
@ -21,12 +21,7 @@ class CrashReporter {
|
|||
} = options
|
||||
|
||||
if (uploadToServer == null) {
|
||||
if (options.autoSubmit) {
|
||||
deprecate.warn('autoSubmit', 'uploadToServer')
|
||||
uploadToServer = options.autoSubmit
|
||||
} else {
|
||||
uploadToServer = true
|
||||
}
|
||||
uploadToServer = true
|
||||
}
|
||||
|
||||
if (ignoreSystemCrashHandler == null) ignoreSystemCrashHandler = false
|
||||
|
|
|
@ -31,7 +31,7 @@ const {
|
|||
warnAboutDisabledWebSecurity,
|
||||
warnAboutInsecureContentAllowed,
|
||||
warnAboutExperimentalFeatures,
|
||||
warnAboutBlinkFeatures,
|
||||
warnAboutEnableBlinkFeatures,
|
||||
warnAboutInsecureResources,
|
||||
warnAboutInsecureCSP,
|
||||
warnAboutAllowedPopups,
|
||||
|
@ -177,7 +177,7 @@ window.addEventListener('load', function loadHandler () {
|
|||
warnAboutInsecureResources()
|
||||
warnAboutInsecureContentAllowed()
|
||||
warnAboutExperimentalFeatures()
|
||||
warnAboutBlinkFeatures()
|
||||
warnAboutEnableBlinkFeatures()
|
||||
warnAboutInsecureCSP()
|
||||
warnAboutAllowedPopups()
|
||||
}
|
||||
|
|
|
@ -91,9 +91,9 @@ const getWebPreferences = function () {
|
|||
}
|
||||
}
|
||||
|
||||
const moreInformation = '\nFor more information and help, consult ' +
|
||||
'https://electronjs.org/docs/tutorial/security.\n' +
|
||||
'This warning will not show up once the app is packaged.'
|
||||
const moreInformation = `\nFor more information and help, consult
|
||||
https://electronjs.org/docs/tutorial/security.\n This warning will not show up
|
||||
once the app is packaged.`
|
||||
|
||||
module.exports = {
|
||||
shouldLogSecurityWarnings,
|
||||
|
@ -119,11 +119,10 @@ module.exports = {
|
|||
return
|
||||
}
|
||||
|
||||
let warning = 'This renderer process loads resources using insecure protocols. ' +
|
||||
'This exposes users of this app to unnecessary security risks. ' +
|
||||
'Consider loading the following resources over HTTPS or FTPS. \n' +
|
||||
resources + '\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process loads resources using insecure
|
||||
protocols.This exposes users of this app to unnecessary security risks.
|
||||
Consider loading the following resources over HTTPS or FTPS. \n ${resources}
|
||||
\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (Insecure Resources)',
|
||||
'font-weight: bold;', warning)
|
||||
|
@ -137,10 +136,9 @@ module.exports = {
|
|||
*/
|
||||
warnAboutNodeWithRemoteContent: () => {
|
||||
if (getIsRemoteProtocol()) {
|
||||
let warning = 'This renderer process has Node.js integration enabled ' +
|
||||
'and attempted to load remote content. This exposes users of this app to severe ' +
|
||||
'security risks.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has Node.js integration enabled
|
||||
and attempted to load remote content. This exposes users of this app to
|
||||
severe security risks.\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (Node.js Integration with Remote Content)',
|
||||
'font-weight: bold;', warning)
|
||||
|
@ -162,9 +160,8 @@ module.exports = {
|
|||
const webPreferences = getWebPreferences()
|
||||
if (!webPreferences || webPreferences.webSecurity !== false) return
|
||||
|
||||
let warning = 'This renderer process has "webSecurity" disabled. ' +
|
||||
'This exposes users of this app to severe security risks.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has "webSecurity" disabled. This
|
||||
exposes users of this app to severe security risks.\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (Disabled webSecurity)',
|
||||
'font-weight: bold;', warning)
|
||||
|
@ -180,10 +177,9 @@ module.exports = {
|
|||
*/
|
||||
warnAboutInsecureCSP: () => {
|
||||
if (isUnsafeEvalEnabled()) {
|
||||
let warning = 'This renderer process has either no Content Security Policy set ' +
|
||||
'or a policy with "unsafe-eval" enabled. This exposes users of this ' +
|
||||
'app to unnecessary security risks.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has either no Content Security
|
||||
Policy set or a policy with "unsafe-eval" enabled. This exposes users of
|
||||
this app to unnecessary security risks.\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (Insecure Content-Security-Policy)',
|
||||
'font-weight: bold;', warning)
|
||||
|
@ -199,9 +195,9 @@ module.exports = {
|
|||
const webPreferences = getWebPreferences()
|
||||
if (!webPreferences || !webPreferences.allowRunningInsecureContent) return
|
||||
|
||||
let warning = 'This renderer process has "allowRunningInsecureContent" ' +
|
||||
'enabled. This exposes users of this app to severe security risks.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has "allowRunningInsecureContent"
|
||||
enabled. This exposes users of this app to severe security risks.\n
|
||||
${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (allowRunningInsecureContent)',
|
||||
'font-weight: bold;', warning)
|
||||
|
@ -219,33 +215,32 @@ module.exports = {
|
|||
return
|
||||
}
|
||||
|
||||
let warning = 'This renderer process has "experimentalFeatures" ' +
|
||||
'enabled. This exposes users of this app to some security risk. ' +
|
||||
'If you do not need this feature, you should disable it.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has "experimentalFeatures" enabled.
|
||||
This exposes users of this app to some security risk. If you do not need
|
||||
this feature, you should disable it.\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (experimentalFeatures)',
|
||||
'font-weight: bold;', warning)
|
||||
},
|
||||
|
||||
/**
|
||||
* #10 on the checklist: Do not use blinkFeatures
|
||||
* #10 on the checklist: Do not use enableBlinkFeatures
|
||||
*
|
||||
* Logs a warning message about blinkFeatures
|
||||
* Logs a warning message about enableBlinkFeatures
|
||||
*/
|
||||
warnAboutBlinkFeatures: () => {
|
||||
warnAboutEnableBlinkFeatures: () => {
|
||||
const webPreferences = getWebPreferences()
|
||||
if (!webPreferences || !webPreferences.blinkFeatures ||
|
||||
(webPreferences.blinkFeatures.length && webPreferences.blinkFeatures.length === 0)) {
|
||||
if (webPreferences === null ||
|
||||
!webPreferences.hasOwnProperty('enableBlinkFeatures') ||
|
||||
webPreferences.enableBlinkFeatures.length === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
let warning = 'This renderer process has additional "blinkFeatures" ' +
|
||||
'enabled. This exposes users of this app to some security risk. ' +
|
||||
'If you do not need this feature, you should disable it.\n' +
|
||||
moreInformation
|
||||
const warning = `This renderer process has additional "enableBlinkFeatures"
|
||||
enabled. This exposes users of this app to some security risk. If you do not
|
||||
need this feature, you should disable it.\n ${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (blinkFeatures)',
|
||||
console.warn('%cElectron Security Warning (enableBlinkFeatures)',
|
||||
'font-weight: bold;', warning)
|
||||
},
|
||||
|
||||
|
@ -262,10 +257,10 @@ module.exports = {
|
|||
return
|
||||
}
|
||||
|
||||
let warning = 'A <webview> has "allowpopups" set to true. ' +
|
||||
'This exposes users of this app to some security risk, since popups are just ' +
|
||||
'BrowserWindows. If you do not need this feature, you should disable it.\n' +
|
||||
moreInformation
|
||||
const warning = `A <webview> has "allowpopups" set to true. This exposes
|
||||
users of this app to some security risk, since popups are just
|
||||
BrowserWindows. If you do not need this feature, you should disable it.\n
|
||||
${moreInformation}`
|
||||
|
||||
console.warn('%cElectron Security Warning (allowpopups)',
|
||||
'font-weight: bold;', warning)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"dugite": "^1.45.0",
|
||||
"electabul": "~0.0.4",
|
||||
"electron-docs-linter": "^2.3.4",
|
||||
"electron-typescript-definitions": "^1.3.4",
|
||||
"electron-typescript-definitions": "^1.3.5",
|
||||
"github": "^9.2.0",
|
||||
"husky": "^0.14.3",
|
||||
"lint": "^1.1.2",
|
||||
|
|
|
@ -587,35 +587,6 @@ describe('session module', () => {
|
|||
w.loadURL(`https://127.0.0.1:${server.address().port}`)
|
||||
})
|
||||
|
||||
describe('deprecated function signature', () => {
|
||||
it('supports accepting the request', (done) => {
|
||||
session.defaultSession.setCertificateVerifyProc((hostname, certificate, callback) => {
|
||||
assert.equal(hostname, '127.0.0.1')
|
||||
callback(true)
|
||||
})
|
||||
|
||||
w.webContents.once('did-finish-load', () => {
|
||||
assert.equal(w.webContents.getTitle(), 'hello')
|
||||
done()
|
||||
})
|
||||
w.loadURL(`https://127.0.0.1:${server.address().port}`)
|
||||
})
|
||||
|
||||
it('supports rejecting the request', (done) => {
|
||||
session.defaultSession.setCertificateVerifyProc((hostname, certificate, callback) => {
|
||||
assert.equal(hostname, '127.0.0.1')
|
||||
callback(false)
|
||||
})
|
||||
|
||||
const url = `https://127.0.0.1:${server.address().port}`
|
||||
w.webContents.once('did-finish-load', () => {
|
||||
assert.equal(w.webContents.getTitle(), url)
|
||||
done()
|
||||
})
|
||||
w.loadURL(url)
|
||||
})
|
||||
})
|
||||
|
||||
it('rejects the request when the callback is called with -2', (done) => {
|
||||
session.defaultSession.setCertificateVerifyProc(({hostname, certificate, verificationResult}, callback) => {
|
||||
assert.equal(hostname, '127.0.0.1')
|
||||
|
|
|
@ -133,16 +133,16 @@ describe('security warnings', () => {
|
|||
w.loadURL(`http://127.0.0.1:8881/base-page-security.html`)
|
||||
})
|
||||
|
||||
it('should warn about blinkFeatures', (done) => {
|
||||
it('should warn about enableBlinkFeatures', (done) => {
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
blinkFeatures: ['my-cool-feature'],
|
||||
enableBlinkFeatures: ['my-cool-feature'],
|
||||
nodeIntegration: false
|
||||
}
|
||||
})
|
||||
w.webContents.once('console-message', (e, level, message) => {
|
||||
assert(message.includes('blinkFeatures'), message)
|
||||
assert(message.includes('enableBlinkFeatures'), message)
|
||||
done()
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue