diff --git a/examples/pipetobrowser/browser/libs/ui-components/data-grid/grid/component.html b/examples/pipetobrowser/browser/libs/ui-components/data-grid/grid/component.html
index 3ff76c0..55498b0 100644
--- a/examples/pipetobrowser/browser/libs/ui-components/data-grid/grid/component.html
+++ b/examples/pipetobrowser/browser/libs/ui-components/data-grid/grid/component.html
@@ -306,16 +306,16 @@
         var minWidth = 768;
         var tableWidth = this.$.table.offsetWidth;
 
-        if (tableWidth >= minWidth) {
-          return;
-        }
-
         // reset to original flex values
         for (var i = 0; i < this.columns.length; i++) {
           var col = this.columns[i];
           col.columnData.flex = col.columnData.origFlex;
         }
 
+        if (tableWidth >= minWidth) {
+          return;
+        }
+
         // total of all flex values from all columns
         var totalFlex = this.columns.reduce( function(prev, col) {
           return prev + col.columnData.flex;
diff --git a/examples/pipetobrowser/browser/views/pipes/component.html b/examples/pipetobrowser/browser/views/pipes/component.html
index e820020..f72aef3 100644
--- a/examples/pipetobrowser/browser/views/pipes/component.html
+++ b/examples/pipetobrowser/browser/views/pipes/component.html
@@ -76,6 +76,10 @@
         tabToolbar.addEventListener('close-action', function() {
           self.removeTab(key);
         });
+        tabToolbar.addEventListener('fullscreen-action', function() {
+          var tabContent = self.pipeTabs[key].tabContent;
+          tabContent.fullscreen();
+        });
 
         // Create the content of the tab
         var tabContent = document.createElement('p2b-pipes-tab-content');
diff --git a/examples/pipetobrowser/browser/views/pipes/tab-content/component.html b/examples/pipetobrowser/browser/views/pipes/tab-content/component.html
index 3ce5c8e..64810ac 100644
--- a/examples/pipetobrowser/browser/views/pipes/tab-content/component.html
+++ b/examples/pipetobrowser/browser/views/pipes/tab-content/component.html
@@ -22,6 +22,18 @@
         //TODO(aghassemi) There must be a better way for these .innerHTML='', figure it out.
         this.$.main.innerHTML = '';
         this.$.main.appendChild(newEl);
+      },
+
+      /*
+       * Puts the tab content into fullscreen mode
+       */
+      fullscreen: function() {
+        var flag = Element.ALLOW_KEYBOARD_INPUT;
+        if (this.$.main.requestFullscreen) {
+          this.$.main.requestFullscreen(flag);
+        } else if( this.$.main.webkitRequestFullscreen ) {
+          this.$.main.webkitRequestFullscreen(flag);
+        }
       }
     });
   </script>
diff --git a/examples/pipetobrowser/browser/views/pipes/tab-toolbar/component.html b/examples/pipetobrowser/browser/views/pipes/tab-toolbar/component.html
index ff4c177..98a930b 100644
--- a/examples/pipetobrowser/browser/views/pipes/tab-toolbar/component.html
+++ b/examples/pipetobrowser/browser/views/pipes/tab-toolbar/component.html
@@ -7,11 +7,13 @@
       <span flex>
         {{ title }}
       </span>
-      <paper-icon-button icon="close" on-tap="{{ onClose }}"/>
+      <paper-icon-button id="fullscreenIcon" icon="fullscreen" on-click="{{ fireFullscreenAction }}"></paper-icon-button>
+      <paper-icon-button icon="close" on-click="{{ fireCloseAction }}"></paper-icon-button>
     </core-toolbar>
   </template>
   <script>
     Polymer('p2b-pipes-tab-toolbar', {
+
       /*
        * Title of the toolbar
        * @type {string}
@@ -22,8 +24,16 @@
        * Event that's fired when close action of the toolbar is triggered
        * @event
        */
-      onClose: function() {
+      fireCloseAction: function() {
         this.fire('close-action');
+      },
+
+      /*
+       * Event that's fired when fullscreen action of the toolbar is triggered
+       * @event
+       */
+      fireFullscreenAction: function() {
+        this.fire('fullscreen-action');
       }
     });
   </script>
