mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-01 12:42:58 +08:00
Electron (#9445)
* Update to Electron 1.1.1 * Update to Electron 1.1.2 * Update to Electron 1.2.0 * Update to Electron 1.2.1
This commit is contained in:
committed by
Masahiro Wakame
parent
0b20db14dc
commit
0e9b30d821
@@ -79,19 +79,9 @@ app.on('ready', () => {
|
||||
mainWindow = null;
|
||||
});
|
||||
|
||||
mainWindow.print({silent: true, printBackground: false});
|
||||
mainWindow.webContents.print({silent: true, printBackground: false});
|
||||
mainWindow.print();
|
||||
mainWindow.webContents.print();
|
||||
|
||||
mainWindow.printToPDF({
|
||||
marginsType: 1,
|
||||
pageSize: 'A3',
|
||||
printBackground: true,
|
||||
printSelectionOnly: true,
|
||||
landscape: true,
|
||||
}, (error: Error, data: Buffer) => {});
|
||||
|
||||
mainWindow.webContents.printToPDF({
|
||||
marginsType: 1,
|
||||
pageSize: 'A3',
|
||||
@@ -100,7 +90,6 @@ app.on('ready', () => {
|
||||
landscape: true,
|
||||
}, (error: Error, data: Buffer) => {});
|
||||
|
||||
mainWindow.printToPDF({}, (err, data) => {});
|
||||
mainWindow.webContents.printToPDF({}, (err, data) => {});
|
||||
|
||||
mainWindow.webContents.executeJavaScript('return true;');
|
||||
@@ -146,6 +135,29 @@ app.on('ready', () => {
|
||||
mainWindow.webContents.debugger.sendCommand("Network.enable");
|
||||
});
|
||||
|
||||
app.commandLine.appendSwitch('enable-web-bluetooth');
|
||||
|
||||
app.on('ready', () => {
|
||||
mainWindow.webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
|
||||
event.preventDefault();
|
||||
|
||||
let result = (() => {
|
||||
for (let device of deviceList) {
|
||||
if (device.deviceName === 'test') {
|
||||
return device;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
})();
|
||||
|
||||
if (!result) {
|
||||
callback('');
|
||||
} else {
|
||||
callback(result.deviceId);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Locale
|
||||
app.getLocale();
|
||||
|
||||
@@ -287,10 +299,6 @@ if (browserOptions.transparent) {
|
||||
win.loadURL('file://' + __dirname + '/fallback.html');
|
||||
}
|
||||
|
||||
app.on('platform-theme-changed', () => {
|
||||
console.log(systemPreferences.isDarkMode());
|
||||
});
|
||||
|
||||
// app
|
||||
// https://github.com/atom/electron/blob/master/docs/api/app.md
|
||||
|
||||
@@ -857,6 +865,13 @@ session.defaultSession.setPermissionRequestHandler(function(webContents, permiss
|
||||
callback(true);
|
||||
});
|
||||
|
||||
// consider any url ending with `example.com`, `foobar.com`, `baz`
|
||||
// for integrated authentication.
|
||||
session.defaultSession.allowNTLMCredentialsForDomains('*example.com, *foobar.com, *baz')
|
||||
|
||||
// consider all urls for integrated authentication.
|
||||
session.defaultSession.allowNTLMCredentialsForDomains('*')
|
||||
|
||||
// Modify the user agent for all requests to the following urls.
|
||||
var filter = {
|
||||
urls: ["https://*.github.com/*", "*://electron.github.io"]
|
||||
|
||||
@@ -75,6 +75,9 @@ webFrame.executeJavaScript('JSON.stringify({})', false, (result) => {
|
||||
console.log(result);
|
||||
});
|
||||
|
||||
console.log(webFrame.getResourceUsage());
|
||||
webFrame.clearCache();
|
||||
|
||||
// clipboard
|
||||
// https://github.com/atom/electron/blob/master/docs/api/clipboard.md
|
||||
|
||||
@@ -232,7 +235,7 @@ webview.addEventListener('found-in-page', function(e) {
|
||||
}
|
||||
});
|
||||
|
||||
var rquestId = webview.findInPage("test");
|
||||
var requestId = webview.findInPage("test");
|
||||
|
||||
webview.addEventListener('new-window', function(e) {
|
||||
require('electron').shell.openExternal(e.url);
|
||||
|
||||
177
github-electron/github-electron.d.ts
vendored
177
github-electron/github-electron.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
// Type definitions for Electron v1.0.2
|
||||
// Type definitions for Electron v1.2.1
|
||||
// Project: http://electron.atom.io/
|
||||
// Definitions by: jedmao <https://github.com/jedmao/>, rhysd <https://rhysd.github.io>, Milan Burda <https://github.com/miniak/>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
@@ -49,7 +49,9 @@ declare namespace Electron {
|
||||
/**
|
||||
* Emitted when all windows have been closed.
|
||||
*
|
||||
* This event is only emitted when the application is not going to quit.
|
||||
* If you do not subscribe to this event and all windows are closed,
|
||||
* the default behavior is to quit the app; however, if you subscribe,
|
||||
* you control whether the app quits or not.
|
||||
* If the user pressed Cmd + Q, or the developer called app.quit(),
|
||||
* Electron will first try to close all the windows and then emit the will-quit event,
|
||||
* and in this case the window-all-closed event would not be emitted.
|
||||
@@ -271,30 +273,29 @@ declare namespace Electron {
|
||||
* Note: This API is only available on Windows.
|
||||
*/
|
||||
setUserTasks(tasks: Task[]): void;
|
||||
/**
|
||||
* Dynamically sets whether to always send credentials for HTTP NTLM or Negotiate authentication.
|
||||
* Normally, Electron will only send NTLM/Kerberos credentials for URLs that fall under
|
||||
* "Local Intranet" sites (i.e. are in the same domain as you).
|
||||
* However, this detection often fails when corporate networks are badly configured,
|
||||
* so this lets you co-opt this behavior and enable it for all URLs.
|
||||
*/
|
||||
allowNTLMCredentialsForAllDomains(allow: boolean): void;
|
||||
/**
|
||||
* This method makes your application a Single Instance Application instead of allowing
|
||||
* multiple instances of your app to run, this will ensure that only a single instance
|
||||
* of your app is running, and other instances signal this instance and exit.
|
||||
*/
|
||||
makeSingleInstance(callback: (args: string[], workingDirectory: string) => void): boolean;
|
||||
/**
|
||||
* Releases all locks that were created by makeSingleInstance. This will allow
|
||||
* multiple instances of the application to once again run side by side.
|
||||
*/
|
||||
releaseSingleInstance(): void;
|
||||
/**
|
||||
* Creates an NSUserActivity and sets it as the current activity.
|
||||
* The activity is eligible for Handoff to another device afterward.
|
||||
*
|
||||
* @param type Uniquely identifies the activity. Maps to NSUserActivity.activityType.
|
||||
* @param userInfo App-specific state to store for use by another device.
|
||||
* @param webpageURL The webpage to load in a browser if no suitable app is
|
||||
* installed on the resuming device. The scheme must be http or https.
|
||||
*
|
||||
* Note: This API is only available on Mac.
|
||||
*/
|
||||
setUserActivity(type: string, userInfo: Object): void;
|
||||
setUserActivity(type: string, userInfo: Object, webpageURL?: string): void;
|
||||
/**
|
||||
* @returns The type of the currently running activity.
|
||||
*
|
||||
@@ -851,7 +852,7 @@ declare namespace Electron {
|
||||
* Changes the attachment point for sheets on Mac OS X.
|
||||
* Note: This API is available only on OS X.
|
||||
*/
|
||||
setSheetOffset(offset: number): void;
|
||||
setSheetOffset(offsetY: number, offsetX?: number): void;
|
||||
/**
|
||||
* Starts or stops flashing the window to attract user's attention.
|
||||
*/
|
||||
@@ -925,19 +926,11 @@ declare namespace Electron {
|
||||
capturePage(rect: Rectangle, callback: (image: NativeImage) => void): void;
|
||||
capturePage(callback: (image: NativeImage) => void): void;
|
||||
/**
|
||||
* Same with webContents.print([options])
|
||||
*/
|
||||
print(options?: PrintOptions): void;
|
||||
/**
|
||||
* Same with webContents.printToPDF([options])
|
||||
*/
|
||||
printToPDF(options: PrintToPDFOptions, callback: (error: Error, data: Buffer) => void): void;
|
||||
/**
|
||||
* Same with webContents.loadURL(url).
|
||||
* Same as webContents.loadURL(url).
|
||||
*/
|
||||
loadURL(url: string, options?: LoadURLOptions): void;
|
||||
/**
|
||||
* Same with webContents.reload.
|
||||
* Same as webContents.reload.
|
||||
*/
|
||||
reload(): void;
|
||||
/**
|
||||
@@ -984,6 +977,11 @@ declare namespace Electron {
|
||||
* Note: This API is available only on OS X.
|
||||
*/
|
||||
showDefinitionForSelection(): void;
|
||||
/**
|
||||
* Changes window icon.
|
||||
* Note: This API is not available on OS X.
|
||||
*/
|
||||
setIcon(icon: NativeImage): void;
|
||||
/**
|
||||
* Sets whether the window menu bar should hide itself automatically. Once set
|
||||
* the menu bar will only show when users press the single Alt key.
|
||||
@@ -1275,7 +1273,8 @@ declare namespace Electron {
|
||||
*/
|
||||
fullscreen?: boolean;
|
||||
/**
|
||||
* Whether the maximize/zoom button on OS X should toggle full screen mode or maximize window.
|
||||
* Whether the window can be put into fullscreen mode.
|
||||
* On OS X, also whether the maximize/zoom button should toggle full screen mode or maximize window.
|
||||
* Default: true.
|
||||
*/
|
||||
fullscreenable?: boolean;
|
||||
@@ -1392,11 +1391,11 @@ declare namespace Electron {
|
||||
/**
|
||||
* @returns The contents of the clipboard as markup.
|
||||
*/
|
||||
readHtml(type?: ClipboardType): string;
|
||||
readHTML(type?: ClipboardType): string;
|
||||
/**
|
||||
* Writes markup to the clipboard.
|
||||
*/
|
||||
writeHtml(markup: string, type?: ClipboardType): void;
|
||||
writeHTML(markup: string, type?: ClipboardType): void;
|
||||
/**
|
||||
* @returns The contents of the clipboard as a NativeImage.
|
||||
*/
|
||||
@@ -1408,11 +1407,11 @@ declare namespace Electron {
|
||||
/**
|
||||
* @returns The contents of the clipboard as RTF.
|
||||
*/
|
||||
readRtf(type?: ClipboardType): string;
|
||||
readRTF(type?: ClipboardType): string;
|
||||
/**
|
||||
* Writes the text into the clipboard in RTF.
|
||||
*/
|
||||
writeRtf(text: string, type?: ClipboardType): void;
|
||||
writeRTF(text: string, type?: ClipboardType): void;
|
||||
/**
|
||||
* Clears everything in clipboard.
|
||||
*/
|
||||
@@ -1718,6 +1717,10 @@ declare namespace Electron {
|
||||
interface OpenDialogOptions {
|
||||
title?: string;
|
||||
defaultPath?: string;
|
||||
/**
|
||||
* Custom label for the confirmation button, when left empty the default label will be used.
|
||||
*/
|
||||
buttonLabel?: string;
|
||||
/**
|
||||
* File types that can be displayed or selected.
|
||||
*/
|
||||
@@ -1738,6 +1741,10 @@ declare namespace Electron {
|
||||
interface SaveDialogOptions {
|
||||
title?: string;
|
||||
defaultPath?: string;
|
||||
/**
|
||||
* Custom label for the confirmation button, when left empty the default label will be used.
|
||||
*/
|
||||
buttonLabel?: string;
|
||||
/**
|
||||
* File types that can be displayed, see dialog.showOpenDialog for an example.
|
||||
*/
|
||||
@@ -2590,6 +2597,11 @@ declare namespace Electron {
|
||||
* Clears the host resolver cache.
|
||||
*/
|
||||
clearHostResolverCache(callback: Function): void;
|
||||
/**
|
||||
* Dynamically sets whether to always send credentials for HTTP NTLM or Negotiate authentication.
|
||||
* @param domains Comma-seperated list of servers for which integrated authentication is enabled.
|
||||
*/
|
||||
allowNTLMCredentialsForDomains(domains: string): void;
|
||||
/**
|
||||
* The webRequest API set allows to intercept and modify contents of a request at various stages of its lifetime.
|
||||
*/
|
||||
@@ -2993,7 +3005,7 @@ declare namespace Electron {
|
||||
*
|
||||
* Note: This is only implemented on OS X.
|
||||
*/
|
||||
subscribeNotification(event: string, callback: Function): number;
|
||||
subscribeNotification(event: string, callback: (event: Event, userInfo: Object) => void): number;
|
||||
/**
|
||||
* Removes the subscriber with id.
|
||||
*
|
||||
@@ -3320,6 +3332,14 @@ declare namespace Electron {
|
||||
* Emitted when there is a new context menu that needs to be handled.
|
||||
*/
|
||||
on(event: 'context-menu', listener: (event: Event, params: ContextMenuParams) => void): this;
|
||||
/**
|
||||
* Emitted when bluetooth device needs to be selected on call to navigator.bluetooth.requestDevice.
|
||||
* To use navigator.bluetooth api webBluetooth should be enabled.
|
||||
* If event.preventDefault is not called, first available device will be selected.
|
||||
* callback should be called with deviceId to be selected,
|
||||
* passing empty string to callback will cancel the request.
|
||||
*/
|
||||
on(event: 'select-bluetooth-device', listener: (event: Event, deviceList: BluetoothDevice[], callback: (deviceId: string) => void) => void): this;
|
||||
on(event: string, listener: Function): this;
|
||||
/**
|
||||
* Loads the url in the window.
|
||||
@@ -3590,6 +3610,10 @@ declare namespace Electron {
|
||||
* @returns If the process of saving page has been initiated successfully.
|
||||
*/
|
||||
savePage(fullPath: string, saveType: 'HTMLOnly' | 'HTMLComplete' | 'MHTML', callback?: (eror: Error) => void): boolean;
|
||||
/**
|
||||
* @returns The unique ID of this WebContents.
|
||||
*/
|
||||
id: number;
|
||||
/**
|
||||
* @returns The session object used by this webContents.
|
||||
*/
|
||||
@@ -3748,6 +3772,11 @@ declare namespace Electron {
|
||||
menuSourceType: 'none' | 'mouse' | 'keyboard' | 'touch' | 'touchMenu';
|
||||
}
|
||||
|
||||
interface BluetoothDevice {
|
||||
deviceName: string;
|
||||
deviceId: string;
|
||||
}
|
||||
|
||||
interface Headers {
|
||||
[key: string]: string;
|
||||
}
|
||||
@@ -3756,8 +3785,8 @@ declare namespace Electron {
|
||||
|
||||
/**
|
||||
* Specifies the action to take place when ending webContents.findInPage request.
|
||||
* 'clearSelection' - Translate the selection into a normal selection.
|
||||
* 'keepSelection' - Clear the selection.
|
||||
* 'clearSelection' - Clear the selection.
|
||||
* 'keepSelection' - Translate the selection into a normal selection.
|
||||
* 'activateSelection' - Focus and click the selection node.
|
||||
*/
|
||||
type StopFindInPageAtion = 'clearSelection' | 'keepSelection' | 'activateSelection';
|
||||
@@ -3805,7 +3834,7 @@ declare namespace Electron {
|
||||
* Specify page size of the generated PDF.
|
||||
* Default: A4.
|
||||
*/
|
||||
pageSize?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid';
|
||||
pageSize?: 'A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid' | Dimension;
|
||||
/**
|
||||
* Whether to print CSS backgrounds.
|
||||
* Default: false.
|
||||
@@ -4063,6 +4092,32 @@ declare namespace Electron {
|
||||
* this limitation.
|
||||
*/
|
||||
executeJavaScript(code: string, userGesture?: boolean, callback?: (result: any) => void): void;
|
||||
/**
|
||||
* @returns Object describing usage information of Blink’s internal memory caches.
|
||||
*/
|
||||
getResourceUsage(): ResourceUsages;
|
||||
/**
|
||||
* Attempts to free memory that is no longer being used (like images from a previous navigation).
|
||||
*/
|
||||
clearCache(): void;
|
||||
}
|
||||
|
||||
interface ResourceUsages {
|
||||
fonts: ResourceUsage;
|
||||
images: ResourceUsage;
|
||||
cssStyleSheets: ResourceUsage;
|
||||
xslStyleSheets: ResourceUsage;
|
||||
scripts: ResourceUsage;
|
||||
other: ResourceUsage;
|
||||
}
|
||||
|
||||
interface ResourceUsage {
|
||||
count: number;
|
||||
decodedSize: number;
|
||||
liveSize: number;
|
||||
purgeableSize: number;
|
||||
purgedSize: number;
|
||||
size: number;
|
||||
}
|
||||
|
||||
// https://github.com/electron/electron/blob/master/docs/api/web-view-tag.md
|
||||
@@ -4602,6 +4657,10 @@ declare namespace Electron {
|
||||
* properties and a single method.
|
||||
*/
|
||||
postMessage(message: string, targetOrigin: string): void;
|
||||
/**
|
||||
* Invokes the print dialog on the child window.
|
||||
*/
|
||||
print(): void;
|
||||
}
|
||||
|
||||
// https://github.com/electron/electron/blob/master/docs/api/synopsis.md
|
||||
@@ -4669,6 +4728,10 @@ interface File {
|
||||
|
||||
declare namespace NodeJS {
|
||||
interface Process {
|
||||
/**
|
||||
* Setting this to true can disable the support for asar archives in Node's built-in modules.
|
||||
*/
|
||||
noAsar?: boolean;
|
||||
/**
|
||||
* Process's type
|
||||
*/
|
||||
@@ -4696,10 +4759,6 @@ declare namespace NodeJS {
|
||||
*/
|
||||
on(event: 'loaded', listener: Function): this;
|
||||
on(event: string, listener: Function): this;
|
||||
/**
|
||||
* Setting this to true can disable the support for asar archives in Node's built-in modules.
|
||||
*/
|
||||
noAsar?: boolean;
|
||||
/**
|
||||
* Causes the main thread of the current process crash;
|
||||
*/
|
||||
@@ -4715,6 +4774,54 @@ declare namespace NodeJS {
|
||||
* Note: This API is only available on Mac and Linux.
|
||||
*/
|
||||
setFdLimit(maxDescriptors: number): void;
|
||||
/**
|
||||
* @returns Object giving memory usage statistics about the current process.
|
||||
* Note: All statistics are reported in Kilobytes.
|
||||
*/
|
||||
getProcessMemoryInfo(): ProcessMemoryInfo;
|
||||
/**
|
||||
* @returns Object giving memory usage statistics about the entire system.
|
||||
* Note: All statistics are reported in Kilobytes.
|
||||
*/
|
||||
getSystemMemoryInfo(): SystemMemoryInfo;
|
||||
}
|
||||
|
||||
interface ProcessMemoryInfo {
|
||||
/**
|
||||
* The amount of memory currently pinned to actual physical RAM.
|
||||
*/
|
||||
workingSetSize: number;
|
||||
/**
|
||||
* The maximum amount of memory that has ever been pinned to actual physical RAM.
|
||||
*/
|
||||
peakWorkingSetSize: number;
|
||||
/**
|
||||
* The amount of memory not shared by other processes, such as JS heap or HTML content.
|
||||
*/
|
||||
privateBytes: number;
|
||||
/**
|
||||
* The amount of memory shared between processes, typically memory consumed by the Electron code itself.
|
||||
*/
|
||||
sharedBytes: number;
|
||||
}
|
||||
|
||||
interface SystemMemoryInfo {
|
||||
/**
|
||||
* The total amount of physical memory available to the system.
|
||||
*/
|
||||
total: number;
|
||||
/**
|
||||
* The total amount of memory not being used by applications or disk cache.
|
||||
*/
|
||||
free: number;
|
||||
/**
|
||||
* The total amount of swap memory available to the system.
|
||||
*/
|
||||
swapTotal: number;
|
||||
/**
|
||||
* The free amount of swap memory available to the system.
|
||||
*/
|
||||
swapFree: number;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user