diff --git a/gr-resemble-diff-mode/gr-resemble-diff-mode.js b/gr-resemble-diff-mode/gr-resemble-diff-mode.js
index cd0711a..372f554 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode.js
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode.js
@@ -138,41 +138,18 @@
     this.loading = false;
   }
 
-  // The use of debounce is to prevent the user from repeatedly calling the
-  // functions in a short amount of time.
   _handleIgnoreColorsToggle() {
-    this._ignoreColorsToggleJob = Polymer.Debouncer.debounce(
-        this._ignoreColorsToggleJob,
-        Polymer.Async.timeOut.after(1),
-        () => {
-          this._ignoreColors = !this._ignoreColors;
-          this.reload();
-        }
-    );
+    this._ignoreColors = !this._ignoreColors;
+    this.reload();
   }
 
   _handleTransparentToggle() {
-    this._transparentToggleJob = Polymer.Debouncer.debounce(
-        this._transparentToggleJob,
-        Polymer.Async.timeOut.after(1),
-        () => {
-          this._transparent = !this._transparent;
-          this.reload();
-        }
-    );
+    this._transparent = !this._transparent;
+    this.reload();
   }
 
-  // The wait time of 5 ms allows users to see the color change in the image
-  // diff relatively close to real time. Any larger wait time will not allow
-  // the color to show up immediately on the image diff.
   _handleColorChange() {
-    this._colorChangeJob = Polymer.Debouncer.debounce(
-        this._colorChangeJob,
-        Polymer.Async.timeOut.after(5),
-        () => {
-          this.reload();
-        }
-    );
+    this.reload();
   }
 
   _hexToRGB(hex) {
diff --git a/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html b/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html
index 43e928b..18cf465 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html
@@ -99,7 +99,6 @@
       element._ignoreColors = false;
       assert.isFalse(element.$.ignoreColorsToggle.checked);
       MockInteractions.tap(element.$.ignoreColorsToggle);
-      element._ignoreColorsToggleJob.flush();
       flushAsynchronousOperations();
 
       assert.isTrue(element._ignoreColors);
@@ -111,7 +110,6 @@
       element._transparent = false;
       assert.isFalse(element.$.transparentToggle.checked);
       MockInteractions.tap(element.$.transparentToggle);
-      element._transparentToggleJob.flush();
       flushAsynchronousOperations();
 
       assert.isTrue(element._transparent);
@@ -121,14 +119,13 @@
     test('_handleColorChange', () => {
       sandbox.stub(element, 'reload');
       element._colorValue = '';
-      element._colorChangeJob.flush();
       flushAsynchronousOperations();
 
       assert.isTrue(element.reload.called);
     });
 
     test('_hexToRGB', () => {
-      const expected = {r: 0, g: 255, b: 255};
+      const expected = { r: 0, g: 255, b: 255 };
       const input = '#00ffff';
       const output = element._hexToRGB(input);
       assert.equal(output.r, expected.r);
@@ -151,10 +148,8 @@
       element.revisionImage = {};
       assert.equal(element.reload.callCount, 1);
       MockInteractions.tap(element.$.ignoreColorsToggle);
-      element._ignoreColorsToggleJob.flush();
       assert.equal(element.reload.callCount, 2);
       MockInteractions.tap(element.$.transparentToggle);
-      element._transparentToggleJob.flush();
       assert.equal(element.reload.callCount, 3);
     });
   });
