diff --git a/src/display/api.js b/src/display/api.js index 3d20dd8ea..3bb9a0c19 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -44,7 +44,7 @@ PDFJS.cMapUrl = (PDFJS.cMapUrl === undefined ? null : PDFJS.cMapUrl); */ PDFJS.cMapPacked = PDFJS.cMapPacked === undefined ? false : PDFJS.cMapPacked; -/* +/** * By default fonts are converted to OpenType fonts and loaded via font face * rules. If disabled, the font will be rendered using a built in font renderer * that constructs the glyphs with primitive path commands. @@ -134,6 +134,14 @@ PDFJS.disableCreateObjectURL = (PDFJS.disableCreateObjectURL === undefined ? PDFJS.disableWebGL = (PDFJS.disableWebGL === undefined ? true : PDFJS.disableWebGL); +/** + * Disables fullscreen support, and by extension Presentation Mode, + * in browsers which support the fullscreen API. + * @var {boolean} + */ +PDFJS.disableFullscreen = (PDFJS.disableFullscreen === undefined ? + false : PDFJS.disableFullscreen); + /** * Enables CSS only zooming. * @var {boolean} diff --git a/web/compatibility.js b/web/compatibility.js index 424d5af32..00429dded 100644 --- a/web/compatibility.js +++ b/web/compatibility.js @@ -562,3 +562,13 @@ if (typeof PDFJS === 'undefined') { PDFJS.maxCanvasPixels = 5242880; } })(); + +// Disable fullscreen support for certain problematic configurations. +// Support: IE11+ (when embedded). +(function checkFullscreenSupport() { + var isEmbeddedIE = (navigator.userAgent.indexOf('Trident') >= 0 && + window.parent !== window); + if (isEmbeddedIE) { + PDFJS.disableFullscreen = true; + } +})(); diff --git a/web/viewer.js b/web/viewer.js index afca6005a..20717735a 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -322,6 +322,9 @@ var PDFViewerApplication = { document.msFullscreenEnabled === false) { support = false; } + if (support && PDFJS.disableFullscreen === true) { + support = false; + } return PDFJS.shadow(this, 'supportsFullscreen', support); },