Add a checkbox to hide ranged comments behind

Also adds concept of locally stored preferences.

Change-Id: Ib074a682228d5360a932af696e18967e8e3473be
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
index 4de3f8d..943b24b 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
@@ -195,6 +195,7 @@
       <gr-overlay id="prefsOverlay" with-backdrop>
         <gr-diff-preferences
             prefs="{{_prefs}}"
+            local-prefs="{{_localPrefs}}"
             on-save="_handlePrefsSave"
             on-cancel="_handlePrefsCancel"></gr-diff-preferences>
       </gr-overlay>
@@ -206,12 +207,14 @@
           patch-range="[[_patchRange]]"
           path="[[_path]]"
           prefs="[[_prefs]]"
+          has-ranged-comments="[[_localPrefs.ranged_comments]]"
           project-config="[[_projectConfig]]"
           view-mode="[[_diffMode]]"
           on-render="_handleDiffRender">
       </gr-diff>
     </div>
     <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
+    <gr-storage id="storage"></gr-storage>
     <gr-diff-cursor id="cursor"></gr-diff-cursor>
   </template>
   <script src="gr-diff-view.js"></script>
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
index 8144385..6eefe07 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.js
@@ -69,6 +69,7 @@
         value: true,
       },
       _prefs: Object,
+      _localPrefs: Object,
       _projectConfig: Object,
       _userPrefs: Object,
       _diffMode: {
@@ -136,6 +137,7 @@
     },
 
     _getDiffPreferences: function() {
+      this._localPrefs = this.$.storage.getPreferences();
       return this.$.restAPI.getDiffPreferences();
     },
 
@@ -407,6 +409,7 @@
       e.stopPropagation();
       var el = Polymer.dom(e).rootTarget;
       el.disabled = true;
+      this.$.storage.savePreferences(this._localPrefs);
       this._saveDiffPreferences().then(function(response) {
         el.disabled = false;
         if (!response.ok) { return response; }