Bug 1282267 - Properly handle 0 as a possible registry key value when determining the window frame color. r=jaws
authorDão Gottwald <dao@mozilla.com>
Thu, 07 Jul 2016 20:55:19 +0200
changeset 304111 e1007823c2e7b6000c400e2b73036aab3cb7f17a
parent 304096 b7c937889aacde63e7fef321b58d77b5cc31a149
child 304112 8e07e417a5bb24c48486e560ec5823f17dbe3403
push id30413
push usercbook@mozilla.com
push dateFri, 08 Jul 2016 09:57:24 +0000
treeherdermozilla-central@401d1f8037f3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjaws
bugs1282267
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1282267 - Properly handle 0 as a possible registry key value when determining the window frame color. r=jaws
browser/modules/Windows8WindowFrameColor.jsm
--- a/browser/modules/Windows8WindowFrameColor.jsm
+++ b/browser/modules/Windows8WindowFrameColor.jsm
@@ -1,14 +1,14 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
-const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
+const {interfaces: Ci, utils: Cu} = Components;
 
 this.EXPORTED_SYMBOLS = ["Windows8WindowFrameColor"];
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 var Registry = Cu.import("resource://gre/modules/WindowsRegistry.jsm").WindowsRegistry;
 
 var Windows8WindowFrameColor = {
@@ -17,29 +17,35 @@ var Windows8WindowFrameColor = {
   get: function() {
     if (this._windowFrameColor)
       return this._windowFrameColor;
 
     const HKCU = Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER;
     const dwmKey = "Software\\Microsoft\\Windows\\DWM";
     let customizationColor = Registry.readRegKey(HKCU, dwmKey,
                                                  "ColorizationColor");
-    if (!customizationColor) {
+    if (customizationColor == undefined) {
       // Seems to be the default color (hardcoded because of bug 1065998)
       return [158, 158, 158];
     }
+
     // The color returned from the Registry is in decimal form.
     let customizationColorHex = customizationColor.toString(16);
+
     // Zero-pad the number just to make sure that it is 8 digits.
     customizationColorHex = ("00000000" + customizationColorHex).substr(-8);
     let customizationColorArray = customizationColorHex.match(/../g);
     let [unused, fgR, fgG, fgB] = customizationColorArray.map(val => parseInt(val, 16));
     let colorizationColorBalance = Registry.readRegKey(HKCU, dwmKey,
-                                                       "ColorizationColorBalance") || 78;
-     // Window frame base color when Color Intensity is at 0, see bug 1004576.
+                                                       "ColorizationColorBalance");
+    if (colorizationColorBalance == undefined) {
+      colorizationColorBalance = 78;
+    }
+
+    // Window frame base color when Color Intensity is at 0, see bug 1004576.
     let frameBaseColor = 217;
     let alpha = colorizationColorBalance / 100;
 
     // Alpha-blend the foreground color with the frame base color.
     let r = Math.round(fgR * alpha + frameBaseColor * (1 - alpha));
     let g = Math.round(fgG * alpha + frameBaseColor * (1 - alpha));
     let b = Math.round(fgB * alpha + frameBaseColor * (1 - alpha));
     return this._windowFrameColor = [r, g, b];