Skip to content

Commit

Permalink
Add pref to ignore popup in testing
Browse files Browse the repository at this point in the history
  • Loading branch information
dati91 committed Feb 13, 2017
1 parent 3ec9f0b commit 4a62562
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 8 deletions.
10 changes: 4 additions & 6 deletions components/script/dom/bluetooth.rs
Expand Up @@ -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;
Expand Down Expand Up @@ -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.
Expand Down
7 changes: 6 additions & 1 deletion components/script/dom/permissions.rs
Expand Up @@ -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};
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions resources/prefs.json
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion tests/wpt/mozilla/meta/mozilla/bluetooth/__dir__.ini
@@ -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]

0 comments on commit 4a62562

Please sign in to comment.