Commit ede3c528 authored by dpapad's avatar dpapad Committed by Chromium LUCI CQ

PDF Viewer: Restore focus after exiting Presentation Mode.

This is necessary so that up/down arrow keys trigger scrolling of
the PDF document after exiting Presentation mode.

Bug: 1148478
Change-Id: Ie64d1e3deb5763a43ef4dc7f094065992b5eb4c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2597770
Commit-Queue: dpapad <dpapad@chromium.org>
Auto-Submit: dpapad <dpapad@chromium.org>
Reviewed-by: default avatarDaniel Hosseinian <dhoss@chromium.org>
Cr-Commit-Position: refs/heads/master@{#840131}
parent f5d386b4
......@@ -735,6 +735,9 @@ export class PDFViewerElement extends PDFViewerBaseElement {
assert(document.fullscreenElement === null);
scroller.removeEventListener('wheel', onWheel);
this.pluginController_.setReadOnly(false);
// Ensure that directional keys still work after exiting.
this.shadowRoot.querySelector('embed').focus();
});
// Nothing else to do here. The viewport will be updated as a result
......
......@@ -137,6 +137,7 @@ js_library("fullscreen_test") {
"//chrome/browser/resources/pdf:pdf_viewer",
"//third_party/polymer/v3_0/components-chromium/iron-test-helpers:mock-interactions",
"//ui/webui/resources/js:cr.m",
"//ui/webui/resources/js:util.m",
]
externs_list = [ "$externs_path/test.js" ]
}
......
......@@ -7,6 +7,7 @@ import {FittingType} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/c
import {PDFScriptingAPI} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_scripting_api.js';
import {PDFViewerElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer.js';
import {isMac} from 'chrome://resources/js/cr.m.js';
import {getDeepActiveElement} from 'chrome://resources/js/util.m.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {createWheelEvent} from './test_util.js';
......@@ -140,6 +141,16 @@ const tests = [
chrome.test.succeed();
});
},
// Note: The following test needs to be the last one, because subsequent calls
// to requestFullScreen() fail with an "API can only be initiated by a user
// gesture" error.
async function testFocusAfterExiting() {
await ensureFullscreen();
document.exitFullscreen();
await eventToPromise('fullscreenchange', scroller);
chrome.test.assertEq('EMBED', getDeepActiveElement().nodeName);
chrome.test.succeed();
},
];
chrome.test.runTests(tests);
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