From 8a79cc1a2db9476c8238c20a3e87aa853c8d079e Mon Sep 17 00:00:00 2001 From: tsergeant Date: Wed, 27 May 2015 19:34:08 -0700 Subject: [PATCH] Convert legacy PDF viewer to Polymer 0.8 BUG=482793 Review URL: https://codereview.chromium.org/1157973002 Cr-Commit-Position: refs/heads/master@{#331727} --- .../pdf/elements/viewer-button/viewer-button.html | 14 +++++----- .../pdf/elements/viewer-button/viewer-button.js | 22 ++++++++++++--- .../viewer-error-screen-legacy.html | 20 ++++++-------- .../viewer-error-screen-legacy.js | 7 ++++- .../viewer-page-indicator.html | 16 +++++------ .../viewer-page-indicator/viewer-page-indicator.js | 30 +++++++++++++++++--- .../viewer-password-screen-legacy.html | 32 ++++++++++------------ .../viewer-password-screen-legacy.js | 24 ++++++++++++++-- .../viewer-progress-bar/viewer-progress-bar.html | 27 +++++++++--------- .../viewer-progress-bar/viewer-progress-bar.js | 28 ++++++++++++++++--- .../elements/viewer-toolbar/viewer-toolbar.html | 18 ++++++------ .../pdf/elements/viewer-toolbar/viewer-toolbar.js | 21 ++++++++++++-- chrome/browser/resources/pdf/index.html | 1 + 13 files changed, 176 insertions(+), 84 deletions(-) rewrite chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html (87%) rewrite chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html (90%) rewrite chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html (89%) diff --git a/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html b/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html index 4c19bf3338c8..2b0f93c47593 100644 --- a/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html +++ b/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.html @@ -1,9 +1,9 @@ - + - - + + + + - diff --git a/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js b/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js index 73bd53eff1ea..063a26e106d7 100644 --- a/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js +++ b/chrome/browser/resources/pdf/elements/viewer-button/viewer-button.js @@ -5,15 +5,28 @@ (function() { var dpi = ''; - Polymer('viewer-button', { - img: '', - latchable: false, - ready: function() { + Polymer({ + is: 'viewer-button', + + properties: { + img: { + type: String, + observer: 'imgChanged' + }, + + latchable: { + type: Boolean, + observer: 'latchableChanged' + } + }, + + created: function() { if (!dpi) { var mql = window.matchMedia('(-webkit-min-device-pixel-ratio: 1.3'); dpi = mql.matches ? 'hi' : 'low'; } }, + imgChanged: function() { if (this.img) { this.$.icon.style.backgroundImage = @@ -23,6 +36,7 @@ this.$.icon.style.backgroundImage = ''; } }, + latchableChanged: function() { if (this.latchable) this.classList.add('latchable'); diff --git a/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html b/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html dissimilarity index 87% index 794883a62b36..5c6fe8ce1312 100644 --- a/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html +++ b/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.html @@ -1,11 +1,9 @@ - - - - - - - + + + + + + + diff --git a/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js b/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js index c98da122de90..abd56be2b3a6 100644 --- a/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js +++ b/chrome/browser/resources/pdf/elements/viewer-error-screen-legacy/viewer-error-screen-legacy.js @@ -2,4 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -Polymer('viewer-error-screen-legacy', {}); +Polymer({ + is: 'viewer-error-screen-legacy', + properties: { + text: String + } +}); diff --git a/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html b/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html index 86bd26ca2f5b..98de89f12a17 100644 --- a/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html +++ b/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.html @@ -1,10 +1,10 @@ - + - - + + + + - diff --git a/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js b/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js index 8612e170348f..2cf279b68b1a 100644 --- a/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js +++ b/chrome/browser/resources/pdf/elements/viewer-page-indicator/viewer-page-indicator.js @@ -2,20 +2,40 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -Polymer('viewer-page-indicator', { - label: '1', - index: 0, +Polymer({ + is: 'viewer-page-indicator', + + properties: { + label: { + type: String, + value: '1' + }, + + index: { + type: Number, + observer: 'indexChanged' + }, + + pageLabels: { + type: Array, + value: null, + observer: 'pageLabelsChanged' + } + }, + timerId: undefined, - pageLabels: null, + ready: function() { var callback = this.fadeIn.bind(this, 2000); window.addEventListener('scroll', function() { requestAnimationFrame(callback); }); }, + initialFadeIn: function() { this.fadeIn(6000); }, + fadeIn: function(displayTime) { var percent = window.scrollY / (document.body.scrollHeight - @@ -30,9 +50,11 @@ Polymer('viewer-page-indicator', { this.timerId = undefined; }.bind(this), displayTime); }, + pageLabelsChanged: function() { this.indexChanged(); }, + indexChanged: function() { if (this.pageLabels) this.label = this.pageLabels[this.index]; diff --git a/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html b/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html dissimilarity index 90% index 7cf1c5e81051..77378b440acc 100644 --- a/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html +++ b/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.html @@ -1,17 +1,15 @@ - - - - - - - + + + + + + + diff --git a/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js b/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js index 80fdfc83ff2d..8d09e153e50e 100644 --- a/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js +++ b/chrome/browser/resources/pdf/elements/viewer-password-screen-legacy/viewer-password-screen-legacy.js @@ -2,22 +2,39 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -Polymer('viewer-password-screen-legacy', { - text: 'This document is password protected. Please enter a password.', - active: false, +Polymer({ + is: 'viewer-password-screen-legacy', + + properties: { + text: { + type: String, + value: 'This document is password protected. Please enter a password.', + }, + + active: { + type: Boolean, + value: false, + observer: 'activeChanged' + } + }, + timerId: undefined, + ready: function() { this.activeChanged(); }, + accept: function() { this.active = false; }, + deny: function() { this.$.password.disabled = false; this.$.submit.disabled = false; this.$.password.focus(); this.$.password.select(); }, + submit: function(e) { // Prevent the default form submission behavior. e.preventDefault(); @@ -27,6 +44,7 @@ Polymer('viewer-password-screen-legacy', { this.$.submit.disabled = true; this.fire('password-submitted', {password: this.$.password.value}); }, + activeChanged: function() { clearTimeout(this.timerId); this.timerId = undefined; diff --git a/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html b/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html dissimilarity index 89% index d8c23fa403bf..158f80dfb454 100644 --- a/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html +++ b/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.html @@ -1,14 +1,13 @@ - - - - - - + + + + + + + diff --git a/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js b/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js index 97987cc0eeb0..710f01eac94f 100644 --- a/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js +++ b/chrome/browser/resources/pdf/elements/viewer-progress-bar/viewer-progress-bar.js @@ -2,14 +2,33 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -Polymer('viewer-progress-bar', { - progress: 0, - text: 'Loading', - numSegments: 8, +Polymer({ + is: 'viewer-progress-bar', + + properties: { + progress: { + type: Number, + observer: 'progressChanged' + }, + + text: { + type: String, + value: 'Loading' + }, + + numSegments: { + type: Number, + value: 8, + observer: 'numSegmentsChanged' + } + }, + segments: [], + ready: function() { this.numSegmentsChanged(); }, + progressChanged: function() { var numVisible = this.progress * this.segments.length / 100.0; for (var i = 0; i < this.segments.length; i++) { @@ -20,6 +39,7 @@ Polymer('viewer-progress-bar', { if (this.progress >= 100 || this.progress < 0) this.style.opacity = 0; }, + numSegmentsChanged: function() { // Clear the existing segments. this.segments = []; diff --git a/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html b/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html index f0f60bcdfb88..14c60b25668a 100644 --- a/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html +++ b/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.html @@ -1,11 +1,11 @@ - + - - + + + + - diff --git a/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js b/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js index c28b45b670b3..28f90523e35b 100644 --- a/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js +++ b/chrome/browser/resources/pdf/elements/viewer-toolbar/viewer-toolbar.js @@ -2,10 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -Polymer('viewer-toolbar', { - fadingIn: false, +Polymer({ + is: 'viewer-toolbar', + + properties: { + fadingIn: { + type: Boolean, + value: false, + observer: 'fadingInChanged' + } + }, + timerId_: undefined, + inInitialFadeIn_: false, + ready: function() { this.mousemoveCallback = function(e) { var rect = this.getBoundingClientRect(); @@ -22,17 +33,21 @@ Polymer('viewer-toolbar', { } }.bind(this); }, + attached: function() { this.parentNode.addEventListener('mousemove', this.mousemoveCallback); }, + detached: function() { this.parentNode.removeEventListener('mousemove', this.mousemoveCallback); }, + initialFadeIn: function() { this.inInitialFadeIn_ = true; this.fadeIn(); this.fadeOutAfterDelay(6000); }, + fadingInChanged: function() { if (this.fadingIn) { this.fadeIn(); @@ -41,11 +56,13 @@ Polymer('viewer-toolbar', { this.fadeOutAfterDelay(3000); } }, + fadeIn: function() { this.style.opacity = 1; clearTimeout(this.timerId_); this.timerId_ = undefined; }, + fadeOutAfterDelay: function(delay) { this.timerId_ = setTimeout( function() { diff --git a/chrome/browser/resources/pdf/index.html b/chrome/browser/resources/pdf/index.html index 15c367e0c7fa..d35a6538f215 100644 --- a/chrome/browser/resources/pdf/index.html +++ b/chrome/browser/resources/pdf/index.html @@ -2,6 +2,7 @@ + -- 2.11.4.GIT