Add full screen functionality to resemble mode

Change-Id: I6206835e18c25925aa88a62941ca7fd61e624c71
diff --git a/gr-resemble-diff-mode/gr-resemble-diff-mode.html b/gr-resemble-diff-mode/gr-resemble-diff-mode.html
index 94a155c..c5568fc 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode.html
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode.html
@@ -64,6 +64,11 @@
     <input
         type="color"
         value="{{_colorValue::change}}">
+    <button
+        id="fullscreen"
+        on-tap="_handleFullScreen">
+      View full screen
+    </button>
   </template>
   <script src="gr-resemble-diff-mode.js"></script>
 </dom-module>
\ No newline at end of file
diff --git a/gr-resemble-diff-mode/gr-resemble-diff-mode.js b/gr-resemble-diff-mode/gr-resemble-diff-mode.js
index 999e475..4a54955 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode.js
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode.js
@@ -153,5 +153,10 @@
         b: parseInt(result[3], 16),
       } : null;
     },
+
+    _handleFullScreen() {
+      const w = window.open('about:blank', '_blank');
+      w.document.body.innerHTML = this.$.imageDiff.outerHTML;
+    },
   });
 })();
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 d24aed6..6c19660 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode_test.html
@@ -124,6 +124,14 @@
       assert.equal(output.b, expected.b);
     });
 
+    test('_handleFullScreen', () => {
+      sandbox.stub(element, '_handleFullScreen');
+      MockInteractions.tap(element.$.fullscreen);
+      flushAsynchronousOperations();
+
+      assert.isTrue(element._handleFullScreen.called);
+    });
+
     test('calls reload', () => {
       sandbox.stub(element, 'reload');
       element.baseImage = {};