delegate to permission manager for other permissions

This commit is contained in:
Robo 2016-01-30 16:49:18 +05:30
parent f32bf08eb3
commit 2a278ceb8f
14 changed files with 324 additions and 77 deletions

View file

@ -98,6 +98,50 @@ v8::Local<v8::Value> Converter<ContextMenuParamsWithWebContents>::ToV8(
return mate::ConvertToV8(isolate, dict);
}
// static
bool Converter<content::PermissionStatus>::FromV8(
v8::Isolate* isolate,
v8::Local<v8::Value> val,
content::PermissionStatus* out) {
std::string status;
if (!ConvertFromV8(isolate, val, &status))
return false;
if (status == "granted")
*out = content::PERMISSION_STATUS_GRANTED;
else if (status == "denied" || status.empty())
*out = content::PERMISSION_STATUS_DENIED;
else
return false;
return true;
}
// static
v8::Local<v8::Value> Converter<content::PermissionType>::ToV8(
v8::Isolate* isolate, const content::PermissionType& val) {
switch (val) {
case content::PermissionType::MIDI_SYSEX:
return StringToV8(isolate, "midiSysex");
case content::PermissionType::PUSH_MESSAGING:
return StringToV8(isolate, "pushMessaging");
case content::PermissionType::NOTIFICATIONS:
return StringToV8(isolate, "notifications");
case content::PermissionType::GEOLOCATION:
return StringToV8(isolate, "geolocation");
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::DURABLE_STORAGE:
default:
return StringToV8(isolate, "unknown");
}
}
// static
bool Converter<content::StopFindAction>::FromV8(
v8::Isolate* isolate,

View file

@ -7,7 +7,9 @@
#include <utility>
#include "content/public/browser/permission_type.h"
#include "content/public/common/menu_item.h"
#include "content/public/common/permission_status.mojom.h"
#include "content/public/common/stop_find_action.h"
#include "native_mate/converter.h"
@ -33,6 +35,18 @@ struct Converter<ContextMenuParamsWithWebContents> {
const ContextMenuParamsWithWebContents& val);
};
template<>
struct Converter<content::PermissionStatus> {
static bool FromV8(v8::Isolate* isolate, v8::Local<v8::Value> val,
content::PermissionStatus* out);
};
template<>
struct Converter<content::PermissionType> {
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
const content::PermissionType& val);
};
template<>
struct Converter<content::StopFindAction> {
static bool FromV8(v8::Isolate* isolate, v8::Local<v8::Value> val,