summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/resources/pdf
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/chrome/browser/resources/pdf
parentb014812705fc80bff0a5c120dfcef88f349816dc (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')
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/shared-vars.html5
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-bookmark/viewer-bookmark.js13
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/BUILD.gn3
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.html69
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js32
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/BUILD.gn2
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.html20
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-password-screen/viewer-password-screen.js7
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.html4
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-toolbar-dropdown/viewer-toolbar-dropdown.js15
-rw-r--r--chromium/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.js2
-rw-r--r--chromium/chrome/browser/resources/pdf/main.js30
-rw-r--r--chromium/chrome/browser/resources/pdf/manifest.json1
-rw-r--r--chromium/chrome/browser/resources/pdf/pdf.js2
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(