Add "enable_desktop_capturer" build flag (#13133)

* Make it possible to disable a module for a renderer

* Put DesktopCapturer API under a build flag

The name is "enable_desktop_capturer".
Enabled by default.
This commit is contained in:
Alexey Kuzmin 2018-06-13 18:15:34 +02:00 committed by Charles Kerr
parent 6ff111a141
commit dee9aef975
11 changed files with 77 additions and 16 deletions

View file

@ -4,9 +4,18 @@ const moduleList = require('../module-list')
// Import common modules.
common.defineProperties(exports)
for (const module of moduleList) {
Object.defineProperty(exports, module.name, {
enumerable: !module.private,
get: () => require(`../${module.file}`)
for (const {
name,
file,
enabled = true,
private: isPrivate = false
} of moduleList) {
if (!enabled) {
continue
}
Object.defineProperty(exports, name, {
enumerable: !isPrivate,
get: () => require(`../${file}`)
})
}

View file

@ -1,8 +1,15 @@
const features = process.atomBinding('features')
// Renderer side modules, please sort alphabetically.
// A module is `enabled` if there is no explicit condition defined.
module.exports = [
{name: 'desktopCapturer', file: 'desktop-capturer'},
{name: 'ipcRenderer', file: 'ipc-renderer'},
{name: 'remote', file: 'remote'},
{name: 'screen', file: 'screen'},
{name: 'webFrame', file: 'web-frame'}
{
name: 'desktopCapturer',
file: 'desktop-capturer',
enabled: features.isDesktopCapturerEnabled()
},
{name: 'ipcRenderer', file: 'ipc-renderer', enabled: true},
{name: 'remote', file: 'remote', enabled: true},
{name: 'screen', file: 'screen', enabled: true},
{name: 'webFrame', file: 'web-frame', enabled: true}
]