From 7250b356342996a4621afde5a9b588f145fa7720 Mon Sep 17 00:00:00 2001 From: Jacob Dufault Date: Tue, 12 Sep 2017 20:40:33 +0000 Subject: [PATCH] Save bluetooth state to user pref in settings page Note: This is a reland of http://crrev.com/6e30800 with the fix for the test breakage. BUG=741962 TBR=sonnysasaka@chromium.org (cherry picked from commit 1acacb75ed95df717ba26c14079ff57a863f69c0) Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation Change-Id: Iec33e451a6068bf03a6871570c4b2c66919887af Reviewed-on: https://chromium-review.googlesource.com/651268 Reviewed-by: Steven Bennetts Commit-Queue: Sonny Sasaka Cr-Original-Commit-Position: refs/heads/master@{#499798} Reviewed-on: https://chromium-review.googlesource.com/663790 Reviewed-by: Jacob Dufault Cr-Commit-Position: refs/branch-heads/3202@{#182} Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098} --- .../settings/bluetooth_page/bluetooth_page.html | 1 + .../settings/bluetooth_page/bluetooth_page.js | 3 +++ .../bluetooth_page/compiled_resources2.gyp | 1 + .../data/webui/settings/bluetooth_page_tests.js | 17 +++++++++++++++++ 4 files changed, 22 insertions(+) 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([]);