diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
index 3a8bee6acbf3c..bcb20f6001c0f 100644
--- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
+++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
@@ -7,6 +7,7 @@
+
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js
index 35b5c4399dbdf..a626139e0251a 100644
--- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js
+++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.js
@@ -25,6 +25,8 @@ var bluetoothApis = bluetoothApis || {
Polymer({
is: 'settings-bluetooth-page',
+ behaviors: [PrefsBehavior],
+
properties: {
/** Preferences state. */
prefs: {
@@ -166,6 +168,7 @@ Polymer({
this.adapterState_ = state;
this.bluetoothToggleState_ = state.powered;
this.bluetoothToggleDisabled_ = !state.available;
+ this.setPrefValue('ash.user.bluetooth.adapter_enabled', state.powered);
},
/** @private */
diff --git a/chrome/browser/resources/settings/bluetooth_page/compiled_resources2.gyp b/chrome/browser/resources/settings/bluetooth_page/compiled_resources2.gyp
index 3d4051baae18d..975856e1a613c 100644
--- a/chrome/browser/resources/settings/bluetooth_page/compiled_resources2.gyp
+++ b/chrome/browser/resources/settings/bluetooth_page/compiled_resources2.gyp
@@ -7,6 +7,7 @@
'target_name': 'bluetooth_page',
'dependencies': [
'../compiled_resources2.gyp:route',
+ '../prefs/compiled_resources2.gyp:prefs_behavior',
'../settings_page/compiled_resources2.gyp:settings_animated_pages',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
diff --git a/chrome/test/data/webui/settings/bluetooth_page_tests.js b/chrome/test/data/webui/settings/bluetooth_page_tests.js
index 5644558e3480e..5da95ac23e177 100644
--- a/chrome/test/data/webui/settings/bluetooth_page_tests.js
+++ b/chrome/test/data/webui/settings/bluetooth_page_tests.js
@@ -2,6 +2,22 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+function getFakePrefs() {
+ return {
+ ash: {
+ user: {
+ bluetooth: {
+ adapter_enabled: {
+ key: 'ash.user.bluetooth.adapter_enabled',
+ type: chrome.settingsPrivate.PrefType.BOOLEAN,
+ value: false,
+ }
+ }
+ }
+ }
+ };
+}
+
suite('Bluetooth', function() {
var bluetoothPage = null;
@@ -60,6 +76,7 @@ suite('Bluetooth', function() {
setup(function() {
PolymerTest.clearBody();
bluetoothPage = document.createElement('settings-bluetooth-page');
+ bluetoothPage.prefs = getFakePrefs();
assertTrue(!!bluetoothPage);
bluetoothApi_.setDevicesForTest([]);