From 6be7372f93b4ea2d7988d1b51a12b90b9a0b8aa6 Mon Sep 17 00:00:00 2001 From: Gijs Kruitbosch Date: Tue, 15 Mar 2016 20:40:14 +0000 Subject: [PATCH] Bug 1252855 - make reader mode use AsyncPrefs, r=margaret MozReview-Commit-ID: U6ZTyQQSHG --HG-- extra : rebase_source : bf2aa2f40777611f2b89e9d2f57d2f4f2544f53b --- browser/modules/ReaderParent.jsm | 14 -------------- mobile/android/chrome/content/Reader.js | 12 ------------ mobile/android/chrome/content/browser.js | 2 -- .../components/narrate/NarrateControls.jsm | 9 ++++----- toolkit/components/reader/AboutReader.jsm | 19 +++++-------------- toolkit/modules/AsyncPrefs.jsm | 9 +++++++++ 6 files changed, 18 insertions(+), 47 deletions(-) diff --git a/browser/modules/ReaderParent.jsm b/browser/modules/ReaderParent.jsm index 24890d05c9f1..b3337cdfd178 100644 --- a/browser/modules/ReaderParent.jsm +++ b/browser/modules/ReaderParent.jsm @@ -26,8 +26,6 @@ var ReaderParent = { "Reader:ArticleGet", "Reader:FaviconRequest", "Reader:UpdateReaderButton", - "Reader:SetIntPref", - "Reader:SetCharPref", ], init: function() { @@ -76,18 +74,6 @@ var ReaderParent = { this.updateReaderButton(browser); break; } - case "Reader:SetIntPref": { - if (message.data && message.data.name !== undefined) { - Services.prefs.setIntPref(message.data.name, message.data.value); - } - break; - } - case "Reader:SetCharPref": { - if (message.data && message.data.name !== undefined) { - Services.prefs.setCharPref(message.data.name, message.data.value); - } - break; - } } }, diff --git a/mobile/android/chrome/content/Reader.js b/mobile/android/chrome/content/Reader.js index f184b433efeb..4c1409591708 100644 --- a/mobile/android/chrome/content/Reader.js +++ b/mobile/android/chrome/content/Reader.js @@ -152,18 +152,6 @@ var Reader = { this.updatePageAction(tab); break; } - case "Reader:SetIntPref": { - if (message.data && message.data.name !== undefined) { - Services.prefs.setIntPref(message.data.name, message.data.value); - } - break; - } - case "Reader:SetCharPref": { - if (message.data && message.data.name !== undefined) { - Services.prefs.setCharPref(message.data.name, message.data.value); - } - break; - } } }, diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js index 641f63a08849..48cac9e25663 100644 --- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -196,8 +196,6 @@ lazilyLoadedObserverScripts.forEach(function (aScript) { ["Reader:ToolbarHidden", false], ["Reader:SystemUIVisibility", false], ["Reader:UpdateReaderButton", false], - ["Reader:SetIntPref", false], - ["Reader:SetCharPref", false], ], "chrome://browser/content/Reader.js"], ].forEach(aScript => { let [name, messages, script] = aScript; diff --git a/toolkit/components/narrate/NarrateControls.jsm b/toolkit/components/narrate/NarrateControls.jsm index 03bf57e36298..063431a9038b 100644 --- a/toolkit/components/narrate/NarrateControls.jsm +++ b/toolkit/components/narrate/NarrateControls.jsm @@ -9,6 +9,7 @@ const Cu = Components.utils; Cu.import("resource://gre/modules/narrate/VoiceSelect.jsm"); Cu.import("resource://gre/modules/narrate/Narrator.jsm"); Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/AsyncPrefs.jsm"); this.EXPORTED_SYMBOLS = ["NarrateControls"]; @@ -119,16 +120,14 @@ NarrateControls.prototype = { _onRateInput: function(evt) { if (!this._rateMousedown) { - this._mm.sendAsyncMessage("Reader:SetIntPref", - { name: "narrate.rate", value: evt.target.value }); + AsyncPrefs.set("narrate.rate", parseInt(evt.target.value, 10)); this.narrator.setRate(this._convertRate(evt.target.value)); } }, _onVoiceChange: function() { let voice = this.voice; - this._mm.sendAsyncMessage("Reader:SetCharPref", - { name: "narrate.voice", value: voice }); + AsyncPrefs.set("narrate.voice", voice); this.narrator.setVoice(voice); }, @@ -149,7 +148,7 @@ NarrateControls.prototype = { this.narrator.start(options).then(() => { this._updateSpeechControls(false); }, err => { - Cu.reportError(`Narrate failed: ${err}.`) + Cu.reportError(`Narrate failed: ${err}.`); this._updateSpeechControls(false); }); } diff --git a/toolkit/components/reader/AboutReader.jsm b/toolkit/components/reader/AboutReader.jsm index ce5595bc8635..702c9d328830 100644 --- a/toolkit/components/reader/AboutReader.jsm +++ b/toolkit/components/reader/AboutReader.jsm @@ -12,10 +12,11 @@ Cu.import("resource://gre/modules/ReaderMode.jsm"); Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "AsyncPrefs", "resource://gre/modules/AsyncPrefs.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "NarrateControls", "resource://gre/modules/narrate/NarrateControls.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Rect", "resource://gre/modules/Geometry.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "UITelemetry", "resource://gre/modules/UITelemetry.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "NarrateControls", "resource://gre/modules/narrate/NarrateControls.jsm"); var gStrings = Services.strings.createBundle("chrome://global/locale/aboutReader.properties"); @@ -269,11 +270,7 @@ AboutReader.prototype = { this._fontSize = newFontSize; containerClasses.add("font-size" + this._fontSize); - - this._mm.sendAsyncMessage("Reader:SetIntPref", { - name: "reader.font_size", - value: this._fontSize - }); + return AsyncPrefs.set("reader.font_size", this._fontSize); }, _setupFontSizeButtons: function() { @@ -425,10 +422,7 @@ AboutReader.prototype = { this._enableAmbientLighting(colorSchemePref === "auto"); this._setColorScheme(colorSchemePref); - this._mm.sendAsyncMessage("Reader:SetCharPref", { - name: "reader.color_scheme", - value: colorSchemePref - }); + AsyncPrefs.set("reader.color_scheme", colorSchemePref); }, _setFontType: function(newFontType) { @@ -443,10 +437,7 @@ AboutReader.prototype = { this._fontType = newFontType; bodyClasses.add(this._fontType); - this._mm.sendAsyncMessage("Reader:SetCharPref", { - name: "reader.font_type", - value: this._fontType - }); + AsyncPrefs.set("reader.font_type", this._fontType); }, _setSystemUIVisibility: function(visible) { diff --git a/toolkit/modules/AsyncPrefs.jsm b/toolkit/modules/AsyncPrefs.jsm index a528e8a7c6a1..d41ed0fe12c7 100644 --- a/toolkit/modules/AsyncPrefs.jsm +++ b/toolkit/modules/AsyncPrefs.jsm @@ -13,9 +13,18 @@ Cu.import("resource://gre/modules/Task.jsm"); const kInChildProcess = Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT; const kAllowedPrefs = new Set([ + // NB: please leave the testing prefs at the top, and sort the rest alphabetically if you add + // anything. "testing.allowed-prefs.some-bool-pref", "testing.allowed-prefs.some-char-pref", "testing.allowed-prefs.some-int-pref", + + "narrate.rate", + "narrate.voice", + + "reader.font_size", + "reader.font_type", + "reader.color_scheme", ]); const kPrefTypeMap = new Map([