Merge pull request #5965 from electron/installed-extension-api

Add BrowserWindow.getDevToolsExtensions API
This commit is contained in:
Cheng Zhao 2016-06-13 00:45:58 +00:00 committed by GitHub
commit 853d7b1b79
3 changed files with 22 additions and 0 deletions

View file

@ -396,6 +396,17 @@ Method will also not return if the extension's manifest is missing or incomplete
Remove the DevTools extension whose name is `name`. Remove the DevTools extension whose name is `name`.
### `BrowserWindow.getDevToolsExtensions()`
Returns an Object where the keys are the extension names and each value is
an Object containing `name` and `version` properties.
To check if a DevTools extension is installed you can run the following:
```javascript
let installed = BrowserWindow.getDevToolsExtensions().hasOwnProperty('devtron')
```
## Instance Properties ## Instance Properties
Objects created with `new BrowserWindow` have the following properties: Objects created with `new BrowserWindow` have the following properties:

View file

@ -339,4 +339,13 @@ app.once('ready', function () {
delete manifestMap[manifest.extensionId] delete manifestMap[manifest.extensionId]
delete manifestNameMap[name] delete manifestNameMap[name]
} }
BrowserWindow.getDevToolsExtensions = function () {
const extensions = {}
Object.keys(manifestNameMap).forEach(function (name) {
const manifest = manifestNameMap[name]
extensions[name] = {name: manifest.name, version: manifest.version}
})
return extensions
}
}) })

View file

@ -838,9 +838,11 @@ describe('browser-window module', function () {
beforeEach(function () { beforeEach(function () {
BrowserWindow.removeDevToolsExtension('foo') BrowserWindow.removeDevToolsExtension('foo')
assert.equal(BrowserWindow.getDevToolsExtensions().hasOwnProperty('foo'), false)
var extensionPath = path.join(__dirname, 'fixtures', 'devtools-extensions', 'foo') var extensionPath = path.join(__dirname, 'fixtures', 'devtools-extensions', 'foo')
BrowserWindow.addDevToolsExtension(extensionPath) BrowserWindow.addDevToolsExtension(extensionPath)
assert.equal(BrowserWindow.getDevToolsExtensions().hasOwnProperty('foo'), true)
w.webContents.on('devtools-opened', function () { w.webContents.on('devtools-opened', function () {
var showPanelIntevalId = setInterval(function () { var showPanelIntevalId = setInterval(function () {