Add pref to ignore popup in testing

This commit is contained in:
Attila Dusnoki 2017-02-10 15:07:22 +01:00
parent 3ec9f0bab9
commit 4a62562b0f
4 changed files with 12 additions and 8 deletions

View file

@ -17,7 +17,7 @@ use dom::bindings::codegen::Bindings::BluetoothPermissionResultBinding::Bluetoot
use dom::bindings::codegen::Bindings::BluetoothRemoteGATTServerBinding::BluetoothRemoteGATTServerBinding::
BluetoothRemoteGATTServerMethods;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::PermissionStatusBinding::PermissionState;
use dom::bindings::codegen::Bindings::PermissionStatusBinding::{PermissionName, PermissionState};
use dom::bindings::codegen::UnionTypes::{StringOrStringSequence, StringOrUnsignedLong};
use dom::bindings::error::Error::{self, Network, Security, Type};
use dom::bindings::error::Fallible;
@ -216,11 +216,9 @@ impl Bluetooth {
ServiceUUIDSequence::new(optional_services_uuids));
// Step 3 - 5
// FIXME The following call will create a popup, which will mess up the testing...
// Maybe create a call to the lower level to check if we are testing or not
// if let PermissionState::Denied = get_descriptor_permission_state(PermissionName::Bluetooth, None) {
// return p.reject_error(p.global().get_cx(), Error::NotFound);
// }
if let PermissionState::Denied = get_descriptor_permission_state(PermissionName::Bluetooth, None) {
return p.reject_error(p.global().get_cx(), Error::NotFound);
}
// Note: Steps 6 - 8 are implemented in
// components/net/bluetooth_thread.rs in request_device function.

View file

@ -15,6 +15,7 @@ use dom::promise::Promise;
use js::conversions::ConversionResult;
use js::jsapi::{JSContext, JSObject};
use js::jsval::{ObjectValue, UndefinedValue};
use servo_config::prefs::PREFS;
use std::rc::Rc;
#[cfg(target_os = "linux")]
use tinyfiledialogs::{self, MessageBoxIcon, YesNo};
@ -231,7 +232,11 @@ pub fn get_descriptor_permission_state(permission_name: PermissionName ,
// if the feature is not allowed in non-secure contexcts,
// and let the user decide to grant the permission or not.
if !allowed_in_nonsecure_contexts(&permission_name) {
return prompt_user(permission_name);
if PREFS.get("dom.permissions.testing.allowed_in_nonsecure_contexts").as_boolean().unwrap_or(false) {
return PermissionState::Granted;
} else {
return prompt_user(permission_name);
}
}
// TODO: Step 3: Store the invocation results

View file

@ -5,6 +5,7 @@
"dom.mouseevent.which.enabled": false,
"dom.mozbrowser.enabled": false,
"dom.permissions.enabled": false,
"dom.permissions.testing.allowed_in_nonsecure_contexts": false,
"dom.serviceworker.timeout_seconds": 60,
"dom.testable_crash.enabled": false,
"dom.testbinding.enabled": false,

View file

@ -1 +1 @@
prefs: [dom.bluetooth.enabled:true, dom.bluetooth.testing.enabled:true]
prefs: [dom.bluetooth.enabled:true, dom.bluetooth.testing.enabled:true, dom.permissions.testing.allowed_in_nonsecure_contexts:true]