Bug 1282267 - Properly handle 0 as a possible registry key value when determining the window frame color. r=jaws a=sledru
authorDão Gottwald <dao@mozilla.com>
Thu, 07 Jul 2016 20:55:19 +0200
changeset 339990 68ca48e7a1646a4e43f1c11393c92de0fc52bb3e
parent 339989 df749e7bf392dc10c34fa4a57685f03aff8468ae
child 339991 21048041da57844815f861eb92b13afa1b3fc854
push id6249
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 13:59:36 +0000
treeherdermozilla-beta@bad9d4f5bf7e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjaws, sledru
bugs1282267
milestone49.0a2
Bug 1282267 - Properly handle 0 as a possible registry key value when determining the window frame color. r=jaws a=sledru
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];