in shell/common/gin_converters/content_converter.cc [137:215]
v8::Local<v8::Value> Converter<content::PermissionType>::ToV8(
v8::Isolate* isolate,
const content::PermissionType& val) {
using PermissionType = electron::WebContentsPermissionHelper::PermissionType;
// Based on mappings from content/browser/devtools/protocol/browser_handler.cc
// Not all permissions are currently used by Electron but this will future
// proof these conversions.
switch (val) {
case content::PermissionType::ACCESSIBILITY_EVENTS:
return StringToV8(isolate, "accessibility-events");
case content::PermissionType::AR:
return StringToV8(isolate, "ar");
case content::PermissionType::BACKGROUND_FETCH:
return StringToV8(isolate, "background-fetch");
case content::PermissionType::BACKGROUND_SYNC:
return StringToV8(isolate, "background-sync");
case content::PermissionType::CLIPBOARD_READ_WRITE:
return StringToV8(isolate, "clipboard-read");
case content::PermissionType::CLIPBOARD_SANITIZED_WRITE:
return StringToV8(isolate, "clipboard-sanitized-write");
case content::PermissionType::FONT_ACCESS:
return StringToV8(isolate, "font-access");
case content::PermissionType::IDLE_DETECTION:
return StringToV8(isolate, "idle-detection");
case content::PermissionType::MIDI_SYSEX:
return StringToV8(isolate, "midiSysex");
case content::PermissionType::NFC:
return StringToV8(isolate, "nfc");
case content::PermissionType::NOTIFICATIONS:
return StringToV8(isolate, "notifications");
case content::PermissionType::PAYMENT_HANDLER:
return StringToV8(isolate, "payment-handler");
case content::PermissionType::PERIODIC_BACKGROUND_SYNC:
return StringToV8(isolate, "periodic-background-sync");
case content::PermissionType::DURABLE_STORAGE:
return StringToV8(isolate, "persistent-storage");
case content::PermissionType::GEOLOCATION:
return StringToV8(isolate, "geolocation");
case content::PermissionType::CAMERA_PAN_TILT_ZOOM:
case content::PermissionType::AUDIO_CAPTURE:
case content::PermissionType::VIDEO_CAPTURE:
return StringToV8(isolate, "media");
case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
return StringToV8(isolate, "mediaKeySystem");
case content::PermissionType::MIDI:
return StringToV8(isolate, "midi");
case content::PermissionType::WAKE_LOCK_SCREEN:
return StringToV8(isolate, "screen-wake-lock");
case content::PermissionType::SENSORS:
return StringToV8(isolate, "sensors");
case content::PermissionType::STORAGE_ACCESS_GRANT:
return StringToV8(isolate, "storage-access");
case content::PermissionType::VR:
return StringToV8(isolate, "vr");
case content::PermissionType::WAKE_LOCK_SYSTEM:
return StringToV8(isolate, "system-wake-lock");
case content::PermissionType::WINDOW_PLACEMENT:
return StringToV8(isolate, "window-placement");
case content::PermissionType::DISPLAY_CAPTURE:
return StringToV8(isolate, "display-capture");
case content::PermissionType::NUM:
break;
}
switch (static_cast<PermissionType>(val)) {
case PermissionType::POINTER_LOCK:
return StringToV8(isolate, "pointerLock");
case PermissionType::FULLSCREEN:
return StringToV8(isolate, "fullscreen");
case PermissionType::OPEN_EXTERNAL:
return StringToV8(isolate, "openExternal");
case PermissionType::SERIAL:
return StringToV8(isolate, "serial");
case PermissionType::HID:
return StringToV8(isolate, "hid");
default:
return StringToV8(isolate, "unknown");
}
}