Commit 8dc01e76 authored by dpapad's avatar dpapad Committed by Commit Bot

PDF Viewer update: Use localStorage API to remember sidenav status.

Bug: 1110015
Change-Id: I7978308c2f402f0c221f96131a440c3375aa5726
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2326830Reviewed-by: default avatarJohn Lee <johntlee@chromium.org>
Commit-Queue: dpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#793681}
parent a9cf1c51
...@@ -118,6 +118,7 @@ ...@@ -118,6 +118,7 @@
<include name="IDR_PDF_GESTURE_DETECTOR_JS" file="pdf/gesture_detector.js" type="BINDATA" /> <include name="IDR_PDF_GESTURE_DETECTOR_JS" file="pdf/gesture_detector.js" type="BINDATA" />
<include name="IDR_PDF_BROWSER_API_JS" file="pdf/browser_api.js" type="BINDATA" /> <include name="IDR_PDF_BROWSER_API_JS" file="pdf/browser_api.js" type="BINDATA" />
<include name="IDR_PDF_METRICS_JS" file="pdf/metrics.js" type="BINDATA" /> <include name="IDR_PDF_METRICS_JS" file="pdf/metrics.js" type="BINDATA" />
<include name="IDR_PDF_LOCAL_STORAGE_PROXY_JS" file="pdf/local_storage_proxy.js" type="BINDATA" />
<include name="IDR_PDF_ELEMENTS_SHARED_CSS_JS" file="${root_gen_dir}/chrome/browser/resources/pdf/elements/shared-css.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PDF_ELEMENTS_SHARED_CSS_JS" file="${root_gen_dir}/chrome/browser/resources/pdf/elements/shared-css.js" use_base_dir="false" type="BINDATA" />
<include name="IDR_PDF_SHARED_VARS_JS" file="${root_gen_dir}/chrome/browser/resources/pdf/elements/shared-vars.js" use_base_dir="false" type="BINDATA" /> <include name="IDR_PDF_SHARED_VARS_JS" file="${root_gen_dir}/chrome/browser/resources/pdf/elements/shared-vars.js" use_base_dir="false" type="BINDATA" />
......
...@@ -113,6 +113,10 @@ js_library("ink_controller") { ...@@ -113,6 +113,10 @@ js_library("ink_controller") {
] ]
} }
js_library("local_storage_proxy") {
deps = [ "//ui/webui/resources/js:cr.m" ]
}
js_library("controller") { js_library("controller") {
deps = [ deps = [
":viewport", ":viewport",
...@@ -150,6 +154,7 @@ js_library("pdf_viewer") { ...@@ -150,6 +154,7 @@ js_library("pdf_viewer") {
":constants", ":constants",
":controller", ":controller",
":ink_controller", ":ink_controller",
":local_storage_proxy",
":metrics", ":metrics",
":navigator", ":navigator",
":pdf_scripting_api", ":pdf_scripting_api",
...@@ -214,6 +219,7 @@ js_type_check("pdf_resources") { ...@@ -214,6 +219,7 @@ js_type_check("pdf_resources") {
":controller", ":controller",
":gesture_detector", ":gesture_detector",
":ink_controller", ":ink_controller",
":local_storage_proxy",
":main", ":main",
":metrics", ":metrics",
":navigator", ":navigator",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
/** @interface */
class LocalStorageProxy {
/**
* @param {string} key
* @return {?string}
*/
getItem(key) {}
/**
* @param {string} key
* @param {string} value
*/
setItem(key, value) {}
}
/** @implements {LocalStorageProxy} */
export class LocalStorageProxyImpl {
/** @override */
getItem(key) {
return window.localStorage.getItem(key);
}
/** @override */
setItem(key, value) {
window.localStorage.setItem(key, value);
}
}
addSingletonGetter(LocalStorageProxyImpl);
...@@ -27,6 +27,7 @@ import {ViewerPdfToolbarNewElement} from './elements/viewer-pdf-toolbar-new.js'; ...@@ -27,6 +27,7 @@ import {ViewerPdfToolbarNewElement} from './elements/viewer-pdf-toolbar-new.js';
// <if expr="chromeos"> // <if expr="chromeos">
import {InkController} from './ink_controller.js'; import {InkController} from './ink_controller.js';
//</if> //</if>
import {LocalStorageProxyImpl} from './local_storage_proxy.js';
import {PDFMetrics} from './metrics.js'; import {PDFMetrics} from './metrics.js';
import {NavigatorDelegate, PdfNavigator} from './navigator.js'; import {NavigatorDelegate, PdfNavigator} from './navigator.js';
import {OpenPdfParamsParser} from './open_pdf_params_parser.js'; import {OpenPdfParamsParser} from './open_pdf_params_parser.js';
...@@ -85,6 +86,9 @@ export function getFilenameFromURL(url) { ...@@ -85,6 +86,9 @@ export function getFilenameFromURL(url) {
} }
} }
/** @type {string} */
const LOCAL_STORAGE_SIDENAV_COLLAPSED_KEY = 'sidenavCollapsed';
export class PDFViewerElement extends PDFViewerBaseElement { export class PDFViewerElement extends PDFViewerBaseElement {
static get is() { static get is() {
return 'pdf-viewer'; return 'pdf-viewer';
...@@ -134,14 +138,7 @@ export class PDFViewerElement extends PDFViewerBaseElement { ...@@ -134,14 +138,7 @@ export class PDFViewerElement extends PDFViewerBaseElement {
isFormFieldFocused_: Boolean, isFormFieldFocused_: Boolean,
/** @private */ pdfViewerUpdateEnabled_: Boolean,
pdfViewerUpdateEnabled_: {
type: Boolean,
value: function() {
return document.documentElement.hasAttribute(
'pdf-viewer-update-enabled');
},
},
docLength_: Number, docLength_: Number,
// <if expr="chromeos"> // <if expr="chromeos">
...@@ -218,9 +215,6 @@ export class PDFViewerElement extends PDFViewerBaseElement { ...@@ -218,9 +215,6 @@ export class PDFViewerElement extends PDFViewerBaseElement {
/** @private {boolean} */ /** @private {boolean} */
this.hadPassword_ = false; this.hadPassword_ = false;
/** @private {boolean} */
this.sidenavCollapsed_ = false;
/** @private {boolean} */ /** @private {boolean} */
this.toolbarEnabled_ = false; this.toolbarEnabled_ = false;
...@@ -252,7 +246,19 @@ export class PDFViewerElement extends PDFViewerBaseElement { ...@@ -252,7 +246,19 @@ export class PDFViewerElement extends PDFViewerBaseElement {
this.loadProgress_; this.loadProgress_;
/** @private {boolean} */ /** @private {boolean} */
this.pdfViewerUpdateEnabled_; this.pdfViewerUpdateEnabled_ =
document.documentElement.hasAttribute('pdf-viewer-update-enabled');
/** @private {boolean} */
this.sidenavCollapsed_ = false;
if (this.pdfViewerUpdateEnabled_) {
// TODO(dpapad): Add tests after crbug.com/1111459 is fixed.
this.sidenavCollapsed_ = Boolean(Number.parseInt(
LocalStorageProxyImpl.getInstance().getItem(
LOCAL_STORAGE_SIDENAV_COLLAPSED_KEY),
10));
}
} }
/** @override */ /** @override */
...@@ -882,7 +888,10 @@ export class PDFViewerElement extends PDFViewerBaseElement { ...@@ -882,7 +888,10 @@ export class PDFViewerElement extends PDFViewerBaseElement {
/** @private */ /** @private */
onSidenavToggleClick_() { onSidenavToggleClick_() {
assert(this.pdfViewerUpdateEnabled_);
this.sidenavCollapsed_ = !this.sidenavCollapsed_; this.sidenavCollapsed_ = !this.sidenavCollapsed_;
LocalStorageProxyImpl.getInstance().setItem(
LOCAL_STORAGE_SIDENAV_COLLAPSED_KEY, this.sidenavCollapsed_ ? 1 : 0);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment