diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 15:28:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:54:51 +0000 |
commit | 2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch) | |
tree | eb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/chrome/browser/resources/pdf | |
parent | b014812705fc80bff0a5c120dfcef88f349816dc (diff) |
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/resources/pdf')
14 files changed, 123 insertions, 82 deletions
diff --git a/chromium/chrome/browser/resources/pdf/elements/shared-vars.html b/chromium/chrome/browser/resources/pdf/elements/shared-vars.html index f67f2b48af2..2ba130405e4 100644 --- a/chromium/chrome/browser/resources/pdf/elements/shared-vars.html +++ b/chromium/chrome/browser/resources/pdf/elements/shared-vars.html @@ -1,8 +1,10 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> +<custom-style> <style is="custom-style"> html { - --primary-text-color: var(--paper-grey-900); --iron-icon-height: 20px; --iron-icon-width: 20px; --paper-icon-button: { @@ -14,3 +16,4 @@ --viewer-icon-ink-color: rgb(189, 189, 189); } </style> +</custom-style> diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js index a78e9d2f383..7a58c192af5 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js @@ -40,18 +40,19 @@ Polymer({ childrenShown: {type: Boolean, reflectToAttribute: true, value: false}, - keyEventTarget: { - type: Object, - value: function() { - return this.$.item; - } - } + /** @type {?HTMLElement} The target for the key bindings below. */ + keyEventTarget: Object, }, behaviors: [Polymer.IronA11yKeysBehavior], keyBindings: {'enter': 'onEnter_', 'space': 'onSpace_'}, + /** @override */ + attached: function() { + this.keyEventTarget = this.$.item; + }, + bookmarkChanged_: function() { this.$.expand.style.visibility = this.bookmark.children.length > 0 ? 'visible' : 'hidden'; diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/BUILD.gn b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/BUILD.gn index 1c3443312ee..725e3f96591 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/BUILD.gn +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/BUILD.gn @@ -11,4 +11,7 @@ js_type_check("closure_compile") { } js_library("viewer-page-selector") { + deps = [ + "//ui/webui/resources/cr_elements/cr_input:cr_input", + ] } diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html index 3d55cbd8083..632001dd749 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html @@ -1,13 +1,13 @@ <link rel="import" href="chrome://resources/html/polymer.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/iron-input/iron-input.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input-container.html"> + +<link rel="import" href="chrome://resources/cr_elements/cr_input/cr_input.html"> <dom-module id="viewer-page-selector"> <template> <style> :host { color: #fff; - font-size: 1.23rem; + font-size: 0.81rem; } :host ::selection { @@ -15,27 +15,32 @@ } #pageselector { - --container: { display: none; }; - --paper-input-container-underline: var(--container); - --paper-input-container-underline-focus: var(--container); - padding: 0; - width: 1ch; - } - - #input { + --cr-input-focus-color: transparent; + --cr-input-container: { + overflow: initial; + } + --cr-input-error-display: none; + --cr-input-background-color: transparent; + --cr-input-color: white; + --cr-input-input: { + -webkit-margin-start: -3px; + -webkit-padding-end: 3px; + -webkit-padding-start: 3px; + padding-bottom: 0; + padding-top: 0; + text-align: end; + caret-color: #fff; + border-radius: 2px; + box-sizing: content-box; + } -webkit-margin-start: -3px; - color: #fff; height: 100%; - line-height: 18px; - padding: 3px; - text-align: end; - vertical-align: baseline; + width: 1ch; } - #input:focus, - #input:hover { - background-color: rgba(0, 0, 0, 0.5); - border-radius: 2px; + #pageselector[focused_], + #pageselector:hover { + --cr-input-background-color: rgba(0, 0, 0, 0.5); } #slash { @@ -44,7 +49,6 @@ #pagelength-spacer { -webkit-margin-start: -2px; - padding-bottom: 1px; text-align: start; } @@ -52,27 +56,12 @@ #slash, #pagelength-spacer { display: inline-block; - margin-bottom: 2px; - vertical-align: middle; - } - - #input, - #slash, - #pagelength { - font-size: 0.81rem; - } - - iron-input input { - @apply --paper-input-container-shared-input-style; } </style> - <paper-input-container id="pageselector" no-label-float> - <iron-input slot="input" bind-value="[[pageNo]]" allowed-pattern="\d"> - <input id="input" prevent-invalid-input value="{{value::input}}" - on-mouseup="select" on-change="pageNoCommitted" - aria-label$="{{strings.labelPageNumber}}"> - </iron-input> - </paper-input-container> + <cr-input id="pageselector" value="[[pageNo]]" on-mouseup="select" + on-value-changed="onInputValueChange_" on-change="pageNoCommitted" + aria-label$="{{strings.labelPageNumber}}"> + </cr-input> <span id="slash"> / </span> <span id="pagelength-spacer"> <span id="pagelength">{{docLength}}</span> diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js index a0b018805e1..665fd63c1c5 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js @@ -16,38 +16,54 @@ Polymer({ * immediately to the input field. A change to the input field is not * mirrored back until pageNoCommitted() is called and change-page is fired. */ - pageNo: {type: Number, value: 1}, + pageNo: { + type: Number, + value: 1, + }, strings: Object, }, + /** @return {!CrInputElement} */ + get pageSelector() { + return this.$.pageselector; + }, + pageNoCommitted: function() { - var page = parseInt(this.$.input.value, 10); + var page = parseInt(this.pageSelector.value, 10); if (!isNaN(page) && page <= this.docLength && page > 0) this.fire('change-page', {page: page - 1, origin: 'pageselector'}); else - this.$.input.value = this.pageNo; - this.$.input.blur(); + this.pageSelector.value = this.pageNo.toString(); + this.pageSelector.blur(); }, /** @private */ docLengthChanged_: function() { var numDigits = this.docLength.toString().length; - this.$.pageselector.style.width = numDigits + 'ch'; + this.pageSelector.style.width = numDigits + 'ch'; // Set both sides of the slash to the same width, so that the layout is // exactly centered. this.$['pagelength-spacer'].style.width = numDigits + 'ch'; }, select: function() { - this.$.input.select(); + this.pageSelector.select(); }, /** * @return {boolean} True if the selector input field is currently focused. */ isActive: function() { - return this.shadowRoot.activeElement == this.$.input; - } + return this.shadowRoot.activeElement == this.pageSelector; + }, + + /** + * Immediately remove any non-digit characters. + * @private + */ + onInputValueChange_: function() { + this.pageSelector.value = this.pageSelector.value.replace(/[^\d]/, ''); + }, }); diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/BUILD.gn b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/BUILD.gn index 607e745fa5a..5078ae7403f 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/BUILD.gn +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/BUILD.gn @@ -12,6 +12,6 @@ js_type_check("closure_compile") { js_library("viewer-password-screen") { deps = [ - "//third_party/polymer/v1_0/components-chromium/paper-input:paper-input-extracted", + "//ui/webui/resources/cr_elements/cr_input:cr_input", ] } diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html index 8259dacb19b..5120c53c078 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html @@ -1,31 +1,29 @@ <link rel="import" href="chrome://resources/html/polymer.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-input/paper-input.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> + <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_input/cr_input.html"> +<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html"> +<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <dom-module id="viewer-password-screen"> <template> - <style include="cr-shared-style"> + <style include="cr-shared-style paper-button-style"> #password { - --paper-input-container-focus-color: var(--google-blue-500); - --paper-input-container-input: { - font-size: inherit; - }; + margin-top: var(--cr-form-field-bottom-spacing); } </style> <cr-dialog id="dialog" no-cancel> <div slot="title">[[strings.passwordDialogTitle]]</div> <div slot="body"> <div id="message">[[strings.passwordPrompt]]</div> - <paper-input id="password" + <cr-input id="password" type="password" error-message="[[strings.passwordInvalid]]" invalid="[[invalid]]" - no-label-float autofocus> - </paper-input> + </cr-input> </div> <div slot="button-container"> <paper-button id="submit" class="action-button" on-click="submit"> diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js index ef1f1284a9f..2723fbababb 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js @@ -25,16 +25,15 @@ Polymer({ }, deny: function() { - var password = /** @type {!PaperInputElement} */ (this.$.password); + var password = /** @type {!CrInputElement} */ (this.$.password); password.disabled = false; this.$.submit.disabled = false; this.invalid = true; - password.focus(); - password.inputElement.select(); + password.select(); }, submit: function() { - var password = /** @type {!PaperInputElement} */ (this.$.password); + var password = /** @type {!CrInputElement} */ (this.$.password); if (password.value.length == 0) return; password.disabled = true; diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html index 95d75885720..c0424470e25 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html @@ -1,7 +1,9 @@ <link rel="import" href="chrome://resources/html/polymer.html"> + <link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/web-animations.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> +<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> <dom-module id="viewer-toolbar-dropdown"> <template> @@ -29,7 +31,7 @@ @apply --shadow-elevation-2dp; background-color: rgb(256, 256, 256); border-radius: 4px; - color: var(--primary-text-color); + color: var(--cr-primary-text-color); overflow-y: hidden; padding-bottom: 2px; width: 260px; diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js index 33987f3eb94..f7862f5ef59 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js @@ -42,17 +42,18 @@ Polymer({ /** Lowest vertical point that the dropdown should occupy (px). */ lowerBound: {type: Number, observer: 'lowerBoundChanged_'}, - /** - * True if the max-height CSS property for the dropdown scroll container - * is valid. If false, the height will be updated the next time the - * dropdown is visible. - */ - maxHeightValid_: false, - /** Current animation being played, or null if there is none. */ animation_: Object }, + /** + * True if the max-height CSS property for the dropdown scroll container + * is valid. If false, the height will be updated the next time the + * dropdown is visible. + * @private {boolean} + */ + maxHeightValid_: false, + computeIcon_: function(dropdownOpen, closedIcon, openIcon) { return dropdownOpen ? openIcon : closedIcon; }, diff --git a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js index 6558c15d4a6..f592dcea8ae 100644 --- a/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js +++ b/chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js @@ -53,7 +53,7 @@ Polymer({ }, computeVisibleTooltip_: function(tooltips, activeIndex) { - return tooltips[activeIndex]; + return tooltips === undefined ? '' : tooltips[activeIndex]; }, delayChanged_: function() { diff --git a/chromium/chrome/browser/resources/pdf/main.js b/chromium/chrome/browser/resources/pdf/main.js index 5acb612fe35..ff8d0ee7dee 100644 --- a/chromium/chrome/browser/resources/pdf/main.js +++ b/chromium/chrome/browser/resources/pdf/main.js @@ -33,7 +33,8 @@ function handleScriptingMessage(message) { /** * Initialize the global PDFViewer and pass any outstanding messages to it. * - * @param {Object} browserApi An object providing an API to the browser. + * @param {Promise<BrowserApi>} browserApi A promise resolving to an API + * to the browser. */ function initViewer(browserApi) { // PDFViewer will handle any messages after it is created. @@ -44,6 +45,26 @@ function initViewer(browserApi) { } /** + * Determine if the content settings allow PDFs to execute javascript. + * + * @param {Promise<BrowserApi>} browserApi A promise resolving to an API + * to the browser. + */ +function configureJavaScriptContentSetting(browserApi) { + return new Promise((resolve, reject) => { + chrome.contentSettings.javascript.get( + { + 'primaryUrl': browserApi.getStreamInfo().originalUrl, + 'secondaryUrl': window.origin + }, + (result) => { + browserApi.getStreamInfo().javascript = result.setting; + resolve(browserApi); + }); + }); +} + +/** * Entrypoint for starting the PDF viewer. This function obtains the browser * API for the PDF and constructs a PDFViewer object with it. */ @@ -51,8 +72,13 @@ function main() { // Set up an event listener to catch scripting messages which are sent prior // to the PDFViewer being created. window.addEventListener('message', handleScriptingMessage, false); + var chain = createBrowserApi(); + + // Content settings may not be present in test environments. + if (chrome.contentSettings) + chain = chain.then(configureJavaScriptContentSetting); - createBrowserApi().then(initViewer); + chain.then(initViewer); } main(); diff --git a/chromium/chrome/browser/resources/pdf/manifest.json b/chromium/chrome/browser/resources/pdf/manifest.json index 6e09e51d69f..fce4898412e 100644 --- a/chromium/chrome/browser/resources/pdf/manifest.json +++ b/chromium/chrome/browser/resources/pdf/manifest.json @@ -9,6 +9,7 @@ "incognito": "split", "permissions": [ "chrome://resources/", + "contentSettings", "metricsPrivate", "resourcesPrivate" ], diff --git a/chromium/chrome/browser/resources/pdf/pdf.js b/chromium/chrome/browser/resources/pdf/pdf.js index 6ed1cb3cb12..6de1c5cc3c5 100644 --- a/chromium/chrome/browser/resources/pdf/pdf.js +++ b/chromium/chrome/browser/resources/pdf/pdf.js @@ -97,6 +97,7 @@ PDFViewer.DARK_BACKGROUND_COLOR = '0xFF525659'; function PDFViewer(browserApi) { this.browserApi_ = browserApi; this.originalUrl_ = this.browserApi_.getStreamInfo().originalUrl; + this.javascript_ = this.browserApi_.getStreamInfo().javascript || 'block'; this.loadState_ = LoadState.LOADING; this.parentWindow_ = null; this.parentOrigin_ = null; @@ -190,6 +191,7 @@ function PDFViewer(browserApi) { var backgroundColor = PDFViewer.DARK_BACKGROUND_COLOR; this.plugin_.setAttribute('background-color', backgroundColor); this.plugin_.setAttribute('top-toolbar-height', topToolbarHeight); + this.plugin_.setAttribute('javascript', this.javascript_); if (this.browserApi_.getStreamInfo().embedded) { this.plugin_.setAttribute( |