D'RID-ONE PUTRA MENA-ONE NGAWEB
AKSELELATOR DURIDWANGURUNATAFKAR
AKSELELATOR DURIDWANGURUNATAFKAR
|
Database DuridwanGurunaTafkar
Mengenai Saya
Dudi Ridwan Cijagong
Duridwancijagong Guruna Tafkar
Lihat profil lengkapku
Cari Blog Ini
Beranda
Senin, 16 Januari 2023
PDF _ viewer tina eDGe 2023
==============================================================
folder
=============
FOLDER_edge_pdf
Index
Main.js_na >> eusina
import{main}from"./main_util.js";main();
main_.util.js_na >> eusina
import{BrowserApi,createBrowserApi}from"./browser_api.js";import{PDFViewer}from"./edge_pdf/pdf_viewer.js";window.viewer=null;const pendingMessages=[];function handleScriptingMessage(message){pendingMessages.push(message)}function initViewer(browserApi){window.removeEventListener("message",handleScriptingMessage,false);window.viewer=new PDFViewer(browserApi);window.enhanceErrorStack(Error);while(pendingMessages.length>0){window.viewer.handleScriptingMessage(pendingMessages.shift())}}function configureJavaScriptContentSetting(browserApi){return new Promise(((resolve,reject)=>{chrome.contentSettings.javascript.get({primaryUrl:browserApi.getStreamInfo().originalUrl,secondaryUrl:window.location.origin},(result=>{browserApi.getStreamInfo().javascript=result.setting;resolve(browserApi)}))}))}export function main(){window.addEventListener("message",handleScriptingMessage,false);let chain=createBrowserApi();if(chrome.contentSettings){chain=chain.then(configureJavaScriptContentSetting)}window.loadTimeDataJobRunner.whenReady((()=>{window.pdfUIComponentJobRunner.whenReady((()=>{chain.then(initViewer)}))}))}
browser_api.js_na || ./edge_pdf/pdf_viewer.js_na
eusina >> browser_api.js_na
import{assert}from"edge://resources/js/assert.js";function lookupDefaultZoom(streamInfo){if(!chrome.tabs||streamInfo.tabId<0){return Promise.resolve(1)}return new Promise((function(resolve,reject){chrome.tabs.getZoomSettings(streamInfo.tabId,(function(zoomSettings){resolve(zoomSettings.defaultZoomFactor)}))}))}function lookupInitialZoom(streamInfo){if(!chrome.tabs||streamInfo.tabId<0){return Promise.resolve(1)}return new Promise((function(resolve,reject){chrome.tabs.getZoom(streamInfo.tabId,resolve)}))}export class BrowserApi{constructor(streamInfo,defaultZoom,initialZoom,zoomBehavior){this.streamInfo_=streamInfo;this.defaultZoom_=defaultZoom;this.initialZoom_=initialZoom;this.zoomBehavior_=zoomBehavior}static create(streamInfo,zoomBehavior){return Promise.all([lookupDefaultZoom(streamInfo),lookupInitialZoom(streamInfo)]).then((function(zoomFactors){return new BrowserApi(streamInfo,zoomFactors[0],zoomFactors[1],zoomBehavior)}))}getStreamInfo(){return this.streamInfo_}navigateInCurrentTab(url){const tabId=this.getStreamInfo().tabId;if(chrome.tabs&&tabId!==chrome.tabs.TAB_ID_NONE){chrome.tabs.update(tabId,{url:url})}}setZoom(zoom){assert(this.zoomBehavior_===BrowserApi.ZoomBehavior.MANAGE,"Viewer does not manage browser zoom.");return new Promise(((resolve,reject)=>{chrome.tabs.setZoom(this.streamInfo_.tabId,zoom,resolve)}))}getDefaultZoom(){return this.defaultZoom_}getInitialZoom(){return this.initialZoom_}getZoomBehavior(){return this.zoomBehavior_}addZoomEventListener(listener){if(!(this.zoomBehavior_===BrowserApi.ZoomBehavior.MANAGE||this.zoomBehavior_===BrowserApi.ZoomBehavior.PROPAGATE_PARENT)){return}chrome.tabs.onZoomChange.addListener((info=>{const zoomChangeInfo=info;if(zoomChangeInfo.tabId!==this.streamInfo_.tabId){return}listener(zoomChangeInfo.newZoomFactor)}))}}BrowserApi.ZoomBehavior={NONE:0,MANAGE:1,PROPAGATE_PARENT:2};function createBrowserApiForMimeHandlerView(){return new Promise((function(resolve,reject){chrome.mimeHandlerPrivate.getStreamInfo(resolve)})).then((function(streamInfo){const promises=[];let zoomBehavior=BrowserApi.ZoomBehavior.NONE;if(streamInfo.tabId!==-1){zoomBehavior=streamInfo.embedded?BrowserApi.ZoomBehavior.PROPAGATE_PARENT:BrowserApi.ZoomBehavior.MANAGE;promises.push(new Promise((function(resolve){chrome.tabs.get(streamInfo.tabId,resolve)})).then((function(tab){if(tab){streamInfo.tabUrl=tab.url}})))}if(zoomBehavior===BrowserApi.ZoomBehavior.MANAGE){promises.push(new Promise((function(resolve){chrome.tabs.setZoomSettings(streamInfo.tabId,{mode:"manual",scope:"per-tab"},resolve)})))}return Promise.all(promises).then((function(){return BrowserApi.create(streamInfo,zoomBehavior)}))}))}function createBrowserApiForPrintPreview(){const url=window.location.search.substring(1);const streamInfo={streamUrl:url,originalUrl:url,responseHeaders:{},embedded:window.parent!==window,tabId:-1};return new Promise((function(resolve,reject){if(!chrome.tabs){resolve();return}chrome.tabs.getCurrent((function(tab){streamInfo.tabId=tab.id;streamInfo.tabUrl=tab.url;resolve()}))})).then((function(){return BrowserApi.create(streamInfo,BrowserApi.ZoomBehavior.NONE)}))}export function createBrowserApi(){if(location.origin==="edge://print"){return createBrowserApiForPrintPreview()}return createBrowserApiForMimeHandlerView()}
Eusina >> ./edge_pdf/pdf_viewer.js_na
import{PromiseResolver}from"edge://resources/js/promise_resolver.js";import{$}from"edge://resources/js/util.js";import{BrowserApi}from"../browser_api.js";import{BOOKMARK_FLYOUT_WIDTH,FittingType,Point}from"../constants.js";import{Gesture}from"../gesture_detector.js";import{NavigatorDelegate,PdfNavigator,WindowOpenDisposition}from"../navigator.js";import{OpenPdfParamsParser}from"../open_pdf_params_parser.js";import{DeserializeKeyEvent,LoadState,SerializeKeyEvent}from"../pdf_scripting_api.js";import{Viewport}from"../viewport.js";import{ViewportScroller}from"../viewport_scroller.js";import{ZoomManager}from"../zoom_manager.js";import{LayoutScrollType,PdfLayoutType}from"./constants/pdf-layout-type.js";import{UnseasonedPdfPluginElement}from"./internal_plugin.js";import{PDFMetricsDummy,PDFMetricsImpl,UpsellContentActions}from"./metrics.js";import{AnnotationMode}from"./pdf_annotation_mode.js";import{PdfLoadErrorType}from"./pdf_load_error_type.js";import{ToolbarManager}from"./toolbar_manager.js";import{assert}from"edge://resources/js/assert.js";import{isRTL}from"edge://resources/js/util.js";export let SaveDataMessageData;export let DestinationMessageData;export let DocumentProtectionHandler;export let DocumentPermissionsData;export let ColorRGBA;export let TextNotePosition;export let TextNoteActionType;export let TextNoteData;export let NewViewerFeatureEnabledStates;function getScrollbarWidth(){const div=document.createElement("div");div.style.visibility="hidden";div.style.overflow="scroll";div.style.width="50px";div.style.height="50px";div.style.position="absolute";document.body.appendChild(div);const result=div.offsetWidth-(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")?parseInt(getComputedStyle(div).width,10):div.clientWidth);div.parentNode.removeChild(div);return result}export function getFilenameFromURL(url){const mainUrl=url.split(/#|\?/)[0];const components=mainUrl.split(/\/|\\/);const filename=components[components.length-1];try{return decodeURIComponent(filename)}catch(e){if(e instanceof URIError){return filename}throw e}}export function localPathToUrl(path){if(path&&path!==""){path=path.replace(/\\/g,"/");if(path[0]!=="/"){path=`/${path}`}return encodeURI(`file://${path}`).replace(/[?#]/g,encodeURIComponent)}}export function shouldIgnoreKeyEvents(activeElement,key){while(activeElement.shadowRoot!==null&&activeElement.shadowRoot.activeElement!==null){activeElement=activeElement.shadowRoot.activeElement}if(key==="Tab"){return false}return activeElement.isContentEditable||activeElement.tagName==="INPUT"||activeElement.tagName==="TEXTAREA"}export function getCaretModeState(isCaretModeEnabled){if(document.fullscreenElement!==null){return false}return isCaretModeEnabled}function createToken(){const randomBytes=new Uint8Array(16);return window.crypto.getRandomValues(randomBytes).map((b=>b.toString(16).padStart(2,"0"))).join("")}const darkMediaQuery=window.matchMedia("(prefers-color-scheme: dark)");function isNewViewerFeatureEnabledStateAvailable(newViewerFeatureEnabledStates_){return loadTimeData.getBoolean("pdfAsSharedLibraryEnabled")&&newViewerFeatureEnabledStates_!==undefined&&newViewerFeatureEnabledStates_!==null}function isThumbnailCacheEnabled(){return!loadTimeData.getBoolean("pdfAsSharedLibraryEnabled")&&loadTimeData.getBoolean("pdfThumbnailCacheEnabled")}export class PDFViewer{constructor(browserApi){this.browserApi_=browserApi;this.currentController_=null;this.originalUrl_=this.browserApi_.getStreamInfo().originalUrl;this.PdfUrlPolicy_=trustedTypes.createPolicy("pdf-url",{createScriptURL:()=>this.browserApi_.getStreamInfo().streamUrl});this.javascript_=this.browserApi_.getStreamInfo().javascript||"block";this.loadState_=LoadState.LOADING;this.parentWindow_=null;this.parentOrigin_=null;this.isFormFieldFocused_=false;this.beepCount_=0;this.delayedScriptingMessages_=[];this.highlightModePluginPointerEvents_=[];this.loaded_=new PromiseResolver;this.isPrintPreview_=location.origin==="edge://print";this.isPrintPreviewLoadingFinished_=false;this.isUserInitiatedEvent_=true;this.isPdfBarPinned_=loadTimeData.getBoolean("pdfBarLastPinState");this.hasEdits_=false;this.saveStartTime_=0;this.saveAsStartTime_=0;this.infobarContainerHeight_=0;this.pdfAdaptor_=window.pdfAdaptor;this.currentLayoutContainerPageDivsRange_=[];this.currentSizer_=null;this.isPdfEmbedded_=this.browserApi_.getStreamInfo().embedded;this.isInFocus_=true;this.pointerSubscriptionCount_=0;this.metrics=this.pdfAdaptor_.getPdfMetrics();this.metrics.onDocumentOpened(this.isPdfBarPinned_);this.readAloudState_=ReadAloudState.NONE;this.bookmarks_=null;this.thumbnailManager_=null;this.originalTitle_=null;this.annotationMode_=AnnotationMode.NONE;this.isCaretModeEnabled_=false;this.layoutUpdateStartTime_=0;this.pdfShowViewRecoveryCoachmark_=loadTimeData.getBoolean("pdfShowViewRecoveryCoachmark");this.isSelecting_=false;this.logDiagnosticsEventForFullPagePDF("PdfViewerInitBegin");this.paramsParser_=new OpenPdfParamsParser((destination=>this.pluginController_.getNamedDestination(destination)));const isShortWindow=()=>window.innerHeight
{this.setThumbnailForLayoutDiv_(pageIndex,this.thumbnailManager_.getThumbnail(pageIndex))}))}}this.pendingZoomAnnouncement_=false;if(this.isPrintPreview_){this.pageIndicator_=$("page-indicator");this.pageIndicator_.style.visibility="visible"}this.modalRoot_=$("modal-root");this.modalRoot_.addEventListener("wheel",this.preventTrackpadZoom_.bind(this));this.documentContainer_=$("document-container");this.embedBorder_=$("embed-border");this.uiContainer_=$("ui-container");const firstPageSeparator=toolbarEnabled?PDFViewer.FIRST_PAGE_SEPARATOR:0;if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){const lc=document.createElement("div");lc.id="layout-container";lc.style.opacity=0;this.documentContainer_.insertAdjacentElement("beforebegin",lc);this.currentSizer_=lc}else{this.currentSizer_=$("sizer");this.currentSizer_.setAttribute("style","top: "+embedTopOffset+"px")}const defaultZoom=this.browserApi_.getZoomBehavior()===BrowserApi.ZoomBehavior.MANAGE?this.browserApi_.getDefaultZoom():1;const defaultLayoutBehavior=new SinglePageLayoutBehavior;this.viewport_=new Viewport(window,this.currentSizer_,this.documentContainer_,getScrollbarWidth(),defaultZoom,firstPageSeparator,embedTopOffset,loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled"),defaultLayoutBehavior,this.metrics,loadTimeData.getBoolean("pdfAsPreviewEnabled"));this.viewport_.setRenderLayoutContainerCallback((()=>this.renderLayoutContainer_()));this.viewport_.setUpdateLayoutContainerCallback(this.updateLayoutContainer_.bind(this));this.viewport_.setUpdatePluginEmbedCallback((()=>this.updatePluginEmbed_()));this.viewport_.addViewportChangedCallback((()=>this.viewportChanged_()));this.viewport_.setBeforeZoomCallback((()=>this.currentController_.beforeZoom()));this.viewport_.setAfterZoomCallback((()=>this.currentController_.afterZoom()));this.viewport_.setUserInitiatedCallback((userInitiated=>this.setUserInitiated_(userInitiated)));this.viewport_.setUpdateEmbedBorderCallback((()=>this.updateEmbedBorder_()));window.addEventListener("beforeunload",(()=>this.viewport_.resetTracker()));this.plugin_=document.createElement("embed");this.logDiagnosticsEventForFullPagePDF("PdfViewer_PluginElementInitStarted");this.plugin_.id="plugin";this.plugin_.type="application/x-google-chrome-pdf";this.plugin_.setAttribute("original-url",this.originalUrl_);this.plugin_.src=this.PdfUrlPolicy_.createScriptURL("");darkMediaQuery.addEventListener("change",(e=>{this.onThemeChanged_(e.matches?PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_DARK:PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_LIGHT)}));const backgroundColor=darkMediaQuery.matches?PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_DARK:PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_LIGHT;this.plugin_.setAttribute("background-color",backgroundColor);this.plugin_.setAttribute("first-page-separator",firstPageSeparator);const embedTopOffsetPx=embedTopOffset+"px";const pluginHeightStyle="calc(100% - "+embedTopOffsetPx+")";this.plugin_.setAttribute("style","top: "+embedTopOffsetPx+";height: "+pluginHeightStyle);this.plugin_.setAttribute("javascript",this.javascript_);this.plugin_.setAttribute("stream_timestamp",this.browserApi_.getStreamInfo().creation_timestamp);const attributesForLoading={backgroundColor:parseInt(backgroundColor),embedTopOffset:embedTopOffset,allowJavascript:this.javascript_==="allow",enablePdfDigSigPolicy:loadTimeData.getBoolean("pdfDigitalSignatureEnabled"),enablePdfFreeText:loadTimeData.getBoolean("pdfFreeTextEnabled"),enablePdfViewRecovery:loadTimeData.getBoolean("pdfViewRecoveryEnabled"),enablePdfXfaForms:loadTimeData.getBoolean("pdfXfaFormsEnabled"),firstPageSeparator:firstPageSeparator};if(chrome.mimeHandlerPrivate&&chrome.mimeHandlerPrivate.setPdfPluginAttributes){chrome.mimeHandlerPrivate.setPdfPluginAttributes(attributesForLoading)}if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.plugin_.setAttribute("embed-top-offset",embedTopOffset);this.plugin_.setAttribute("style","position: relative !important");this.plugin_.style.top=embedTopOffsetPx;this.plugin_.style.removeProperty("height");this.plugin_.style.minHeight="calc(100% - "+embedTopOffsetPx+")";this.plugin_.setAttribute("width",0);this.plugin_.setAttribute("height",0)}if(this.isPdfEmbedded_){this.plugin_.setAttribute("top-level-url",this.browserApi_.getStreamInfo().tabUrl)}else{this.plugin_.setAttribute("full-frame","")}if(loadTimeData.getBoolean("pdfDigitalSignatureEnabled")){this.plugin_.setAttribute("pdfdigsigpolicyenabled","")}if(loadTimeData.getBoolean("pdfXfaFormsEnabled")){this.plugin_.setAttribute("pdfXfaFormsEnabled","")}if(loadTimeData.getBoolean("pdfViewRecoveryEnabled")){this.plugin_.setAttribute("pdfViewRecoveryEnabled","")}if(loadTimeData.getBoolean("pdfFreeTextEnabled")){this.plugin_.setAttribute("pdfFreeTextEnabled","")}this.documentContainer_.appendChild(this.plugin_);this.logDiagnosticsEventForFullPagePDF("PdfViewer_PluginElementAdded");this.pluginController_=new PluginController(this.plugin_,this,this.viewport_);this.currentController_=this.pluginController_;window.addEventListener("message",this.handleScriptingMessage.bind(this),false);this.overlayController_=new OverlayController;this.readAloudController_=new PdfReadAloudController;this.uiContainer_.addEventListener("pdf-ui-event",function(e){this.handlePDFUIEvents_(e)}.bind(this));this.uiContainer_.addEventListener("read-aloud-action",function(e){this.handleReadAloudActions_(e)}.bind(this));this.uiContainer_.addEventListener("read-aloud-scroll-offset-request",this.sendViewportScrollInformationToReadAloudScript_.bind(this));this.uiContainer_.addEventListener("wheel",this.preventTrackpadZoom_.bind(this));if(!this.isPrintPreview_&&!this.isPdfEmbedded_&&!this.pluginController_.isUnseasonedPlugin()){this.plugin_.focus()}if(this.pluginController_.isUnseasonedPlugin()){this.plugin_.addEventListener("focus",(()=>{this.pluginController_.postMessage({type:"restoreFocusToElement"})}))}if(toolbarEnabled){this.initializeToolbar_();this.metrics.logPdfBarLoadStatus("EnabledDuringLoad")}else if(needsToolbar&&!isWindowSizeKnown){addEventListener("resize",(e=>{if(isShortWindow()||this.toolbar_){this.metrics.logPdfBarLoadStatus("DisabledPostLoad");return}this.initializeToolbar_();this.metrics.logPdfBarLoadStatus("EnabledPostLoad");if(this.isPdfBarPinned_){this.viewport_.embedTopOffset+=PDFViewer.EMBED_TOP_OFFSET;this.updatePluginPosition_()}dispatchEvent(new Event("resize"))}),{once:true})}else{this.metrics.logPdfBarLoadStatus("DisabledDuringLoad")}document.body.addEventListener("navigate",(e=>{const disposition=e.detail.newtab?WindowOpenDisposition.NEW_BACKGROUND_TAB:WindowOpenDisposition.CURRENT_TAB;this.navigator_.navigate(e.detail.uri,disposition)}));this.zoomManager_=ZoomManager.create(this.browserApi_.getZoomBehavior(),(()=>this.viewport_.getZoom()),(zoom=>this.browserApi_.setZoom(zoom)),this.browserApi_.getInitialZoom(),this.metrics);this.viewport_.setZoomManager(this.zoomManager_);this.browserApi_.addZoomEventListener((zoom=>this.zoomManager_.onBrowserZoomChange(zoom)));document.addEventListener("keydown",this.handleKeyEvent_.bind(this));this.navigator_=new PdfNavigator(this.originalUrl_,this.viewport_,this.paramsParser_,new NavigatorDelegate(this.browserApi_));this.viewportScroller_=new ViewportScroller(this.viewport_,this.plugin_,window);this.handleStrings_(loadTimeData.data_);if(chrome.mimeHandlerPrivate&&chrome.mimeHandlerPrivate.onSave){chrome.mimeHandlerPrivate.onSave.addListener(this.onSave.bind(this))}if(chrome.mimeHandlerPrivate&&chrome.mimeHandlerPrivate.onPdfDigSigIdentified){chrome.mimeHandlerPrivate.onPdfDigSigIdentified.addListener(this.onDigSigIdentified.bind(this))}if(chrome.mimeHandlerPrivate&&chrome.mimeHandlerPrivate.onPdfDigSigSignerInfoReceived){chrome.mimeHandlerPrivate.onPdfDigSigSignerInfoReceived.addListener(this.onDigSigSignerInfoReceived.bind(this))}if(chrome.mimeHandlerPrivate&&chrome.mimeHandlerPrivate.onPdfDigSigAllSignaturesVerified){chrome.mimeHandlerPrivate.onPdfDigSigAllSignaturesVerified.addListener(this.onDigSigAllSignaturesVerified.bind(this))}if(!document.hasFocus()){this.onBlur_()}window.addEventListener("focus",this.onFocus_.bind(this),false);window.addEventListener("blur",this.onBlur_.bind(this),false);if(loadTimeData.getBoolean("pdfAsPreviewEnabled")){const pageSelectorElement=document.getElementById("pageselector");if(pageSelectorElement){this.plugin_.addEventListener("keydown",(e=>{if(e.key=="Tab"&&!e.shiftKey&&!e.ctrlKey&&!e.altKey){pageSelectorElement.focus();e.preventDefault()}}));pageSelectorElement.addEventListener("keydown",(e=>{if(e.key=="Tab"&&e.shiftKey&&!e.ctrlKey&&!e.altKey){this.plugin_.focus();e.preventDefault()}}))}}this.logDiagnosticsEventForFullPagePDF("PdfViewerInitComplete")}initializeToolbar_(){this.toolbar_=$("toolbar");this.toolbar_.hidden=false;this.toolbarVisibilityHelper={show:()=>{this.dispatchViewerEventToPdfUIAdaptor_("show-toolbar")},shouldKeepOpen:()=>this.pdfAdaptor_.shouldKeepPdfBarOpen(),isVisible:()=>this.pdfAdaptor_.isPdfBarVisible(),hide:()=>{this.dispatchViewerEventToPdfUIAdaptor_("hide-toolbar")},isFocusInsideToolbar:()=>this.toolbar_.contains(document.activeElement),isPdfBarRendered:()=>this.pdfAdaptor_.isPdfBarRendered()};this.toolbarManager_=new ToolbarManager(window,this.toolbarVisibilityHelper)}preventTrackpadZoom_(e){if(this.isCommandOrCtrlKey(e)){e.preventDefault()}}isDigitKeyEvent_(e){if(e.key>="0"&&e.key<="9"){if(!(e.shiftKey||this.isCommandOrCtrlKey(e)||e.altKey))return true}return false}isPageJumpKeyEvent_(e){switch(e.key){case"PageUp":case"PageDown":case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":return true;default:return false}}isPrintKeyboardShortcut_(e){return this.isCommandOrCtrlKey(e)&&e.key=="p"}isSaveKeyboardShortcut_(e){return this.isCommandOrCtrlKey(e)&&e.key=="s"}shouldIgnoreKeyEvents(e){if(loadTimeData.getBoolean("pdfAsPreviewEnabled")){return e.key!=="Tab"&&!this.isDigitKeyEvent_(e)&&e.key!=="Enter"&&e.key!=="Backspace"}return document.fullscreenElement!==null&&e.key!=="Escape"&&!this.isPageJumpKeyEvent_(e)&&!this.isPrintKeyboardShortcut_(e)&&!this.isSaveKeyboardShortcut_(e)}isCommandOrCtrlKey(e){return loadTimeData.getBoolean("is_macosx")?e.metaKey:e.ctrlKey}getThumbnailManager(){return this.thumbnailManager_}handleKeyEvent_(e){if(this.shouldIgnoreKeyEvents(e)){e.preventDefault();return}const fromScriptingAPI=e.fromScriptingAPI;if(shouldIgnoreKeyEvents(document.activeElement,e.key)||e.defaultPrevented){return}if(this.toolbarManager_){this.toolbarManager_.hideToolbarAfterTimeout(e)}if(this.viewport.handleDirectionalKeyEvent(e,this.isFormFieldFocused_,getCaretModeState(this.isCaretModeEnabled_))){return}switch(e.key){case"Tab":if(this.toolbarManager_){this.toolbarManager_.showToolbarForKeyboardNavigationIfAllowed()}return;case"Escape":if(!this.isPrintPreview_){if(this.annotationMode_!==AnnotationMode.NONE){this.dispatchViewerEventToPdfUIAdaptor_("exit-annotation-mode",{})}else if(this.toolbarManager_){this.toolbarManager_.hideSingleToolbarLayer()}return}break;case"a":if(this.isCommandOrCtrlKey(e)){this.pluginController_.postMessage({type:"selectAll"});e.preventDefault()}return;case"g":if(this.toolbar_&&this.isCommandOrCtrlKey(e)&&e.altKey){if(this.toolbarManager_){this.toolbarManager_.showToolbar()}this.dispatchViewerEventToPdfUIAdaptor_("goto-invoked",{});e.preventDefault()}return;case"s":if(this.isCommandOrCtrlKey(e)&&!e.shiftKey){e.preventDefault();if(loadTimeData.getBoolean("pdfInPlaceSaveEnabled")&&this.IsLocalPDF(this.originalUrl_)&&!this.hasEdits_){return}this.onSave()}return;case"u":if(this.isCommandOrCtrlKey(e)&&e.shiftKey&&this.annotationMode_!==AnnotationMode.NONE){e.preventDefault()}return;case"[":if(e.ctrlKey&&this.readAloudState_===ReadAloudState.NONE){this.currentController_.rotateCounterClockwise()}return;case"\\":if(e.ctrlKey){if(this.viewport.fittingType===FittingType.FIT_TO_WIDTH){this.fitToChanged_(FittingType.FIT_TO_PAGE,false);this.dispatchViewerEventToPdfUIAdaptor_("pageView-updated",{value:FittingType.FIT_TO_PAGE})}else{this.fitToChanged_(FittingType.FIT_TO_WIDTH,false);this.dispatchViewerEventToPdfUIAdaptor_("pageView-updated",{value:FittingType.FIT_TO_WIDTH})}}return;case"]":if(e.ctrlKey&&this.readAloudState_===ReadAloudState.NONE){this.currentController_.rotateClockwise()}return}if(!fromScriptingAPI&&this.isPrintPreview_){this.sendScriptingMessage_({type:"sendKeyEvent",keyEvent:SerializeKeyEvent(e)})}else{if(!(e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)){if(this.toolbarManager_){this.toolbarManager_.showToolbar()}}}}onThemeChanged_(backgroundColor){this.plugin_.setAttribute("background-color",backgroundColor);this.pluginController_.postMessage({type:"backgroundColorChanged",backgroundColor:backgroundColor})}subscribePointerEventsUnseasoned_(){if(this.pointerSubscriptionCount_==0)this.pluginController_.postMessage({type:"subscribePointerEvents"});this.pointerSubscriptionCount_++}unsubscribePointerEventsUnseasoned_(){if(this.pointerSubscriptionCount_>0){this.pointerSubscriptionCount_--;if(this.pointerSubscriptionCount_==0)this.pluginController_.postMessage({type:"unsubscribePointerEvents"})}}fitToChanged_(fittingType,isUserInitiated){if(fittingType===FittingType.FIT_TO_PAGE){this.viewport_.fitToPage()}else if(fittingType===FittingType.FIT_TO_WIDTH){this.viewport_.fitToWidth()}else if(fittingType===FittingType.FIT_TO_HEIGHT){this.viewport_.fitToHeight()}if(isUserInitiated){this.metrics.onFitTo(fittingType)}}pinToolbar_(newPinState,isUserInitiated){this.isPdfBarPinned_=newPinState;this.viewport_.embedTopOffset=this.infobarContainerHeight_;if(newPinState){this.viewport_.embedTopOffset+=PDFViewer.EMBED_TOP_OFFSET}else if(isUserInitiated){this.metrics.onPdfBarUnpinned()}this.updatePluginPosition_();if(isUserInitiated){this.pluginController_.postMessage({type:"setIsToolbarPinned",pinned:newPinState})}}updatePluginPosition_(){this.plugin_.style.top=`${this.viewport_.embedTopOffset}px`;if(!loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.plugin_.style.height=`calc(100% - ${this.viewport_.embedTopOffset}px)`;this.currentSizer_.style.top=`${this.viewport_.embedTopOffset}px`}else{this.currentSizer_.style.top=this.viewport_.embedTopOffset+this.viewport_.firstPageSeparator_+"px"}this.updateEmbedBorder_();this.pluginLayoutUpdated_()}pluginLayoutUpdated_(){if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.pluginController_.postMessage({type:"setEmbedTopOffset",offset:this.viewport_.embedTopOffset})}this.viewport_.pluginLayoutUpdated()}getSkeletalPageDivRange_(){const visiblePages=this.viewport_.getVisiblePageRange();const pageDivsBufferCount=this.viewport_.layoutBehavior.getSkeletalPageBufferCount();const startPageIndex=Math.max(0,visiblePages[0]-pageDivsBufferCount);const endPageIndex=Math.min(this.viewport_.pageDimensions_.length-1,visiblePages[1]+pageDivsBufferCount);return[startPageIndex,endPageIndex]}renderLayoutContainer_(){this.currentSizer_.innerHTML=trustedTypes.emptyHTML;this.currentSizer_.style.width=this.documentDimensions_.width+"px";this.currentSizer_.style.height=this.documentDimensions_.height+"px";this.updateLayoutContainer_();const[startPageIndex,endPageIndex]=this.getSkeletalPageDivRange_();this.currentLayoutContainerPageDivsRange_=[startPageIndex,endPageIndex];this.addDivsInLayoutContainer_(startPageIndex,endPageIndex);this.currentSizer_.style.opacity=1}updateLayoutContainer_(newPosition,newZoom){if(!this.documentDimensions_){return}const viewport=this.viewport_;const zoom=newZoom||viewport.getZoom();const layoutContainer=viewport.getLayoutContainerRect();let leftOffset=layoutContainer.x;let topOffset=0;if(newPosition){topOffset+=viewport.window_.pageYOffset-viewport.firstPageSeparator_-newPosition.y;leftOffset+=viewport.window_.pageXOffset-newPosition.x}const transforms=[`scale(${zoom})`,`translate(${leftOffset/zoom}px, ${topOffset/zoom}px)`];this.currentSizer_.style.top=layoutContainer.y+"px";this.currentSizer_.style.transform=transforms.join(" ")}addDivsInLayoutContainer_(startPageIndex,endPageIndex){const fragment=new DocumentFragment;for(let i=startPageIndex;i<=endPageIndex;i++){const pageDiv=document.createElement("div");pageDiv.classList.add("pagerect");pageDiv.id="pagediv_"+i.toString();const insetDimension=this.viewport_.getPageInsetDimensions(i);pageDiv.style.left=CSS.px(insetDimension.x);pageDiv.style.top=CSS.px(insetDimension.y);pageDiv.style.width=CSS.px(insetDimension.width);pageDiv.style.height=CSS.px(insetDimension.height);const shadow=this.viewport_.layoutBehavior_.getShadowsForPage(i);pageDiv.style.setProperty("--shadow-clip-rect",[-shadow.top,-shadow.right,-shadow.bottom,-shadow.left].map(CSS.px).join(" "));fragment.append(pageDiv)}this.currentSizer_.append(fragment)}teardownDivsInLayoutContainer_(startPageIndex,endPageIndex){for(let i=startPageIndex;i<=endPageIndex;i++){const pageDivId="pagediv_"+i.toString();const pageDiv=$(pageDivId);if(pageDiv){this.currentSizer_.removeChild(pageDiv)}}}updateLayoutContainerDivs_(){if(!this.documentDimensions_){return}const previousStartPageIndex=this.currentLayoutContainerPageDivsRange_[0];const previousEndPageIndex=this.currentLayoutContainerPageDivsRange_[1];const[newStartPageIndex,newEndPageIndex]=this.getSkeletalPageDivRange_();if(newStartPageIndex
previousStartPageIndex){this.teardownDivsInLayoutContainer_(previousStartPageIndex,Math.min(previousEndPageIndex,newStartPageIndex-1))}if(newEndPageIndex>previousEndPageIndex){this.addDivsInLayoutContainer_(Math.max(newStartPageIndex,previousEndPageIndex+1),newEndPageIndex)}else if(newEndPageIndex
{}));this.loaded_.reject()}else{this.loaded_=new PromiseResolver}}setErrorScreenPropertiesForEmbeddedPdf(){this.setErrorScreenProperties("errorDialogTitleEmbedded","errorDialogBodyEmbedded","errorDialogButtonEmbedded",(()=>{this.navigator_.navigate(this.originalUrl_,WindowOpenDisposition.NEW_FOREGROUND_TAB)}))}setErrorScreenProperties(title,description,buttonText,actionFn){this.errorScreen_.errorTitleString=loadTimeData.getString(title);this.errorScreen_.errorDescString=loadTimeData.getString(description);this.errorScreen_.buttonString=loadTimeData.getString(buttonText);this.errorScreen_.actionFn=actionFn||null}updateProgress(progress,errorType){this.dispatchViewerEventToPdfUIAdaptor_("loadProgress-changed",{progress:progress,errorType:errorType});if(progress===-1){this.currentSizer_.style.display="none";this.setLoadState_(LoadState.FAILED);this.isPrintPreviewLoadingFinished_=true;this.sendDocumentLoadedMessage_()}else if(progress===100){if(this.lastViewportPosition_){this.viewport_.position=this.lastViewportPosition_}this.paramsParser_.getViewportFromUrlParams(this.originalUrl_,this.handleURLParams_.bind(this));this.setLoadState_(LoadState.SUCCESS);this.sendDocumentLoadedMessage_();while(this.delayedScriptingMessages_.length>0){this.handleScriptingMessage(this.delayedScriptingMessages_.shift())}if(this.toolbarManager_){this.toolbarManager_.hideToolbarAfterTimeout()}}else{this.setLoadState_(LoadState.LOADING)}}handleStrings_(strings){document.documentElement.dir=strings.textdirection;document.documentElement.lang=strings.language;const presetZoomFactors=JSON.parse(loadTimeData.getString("presetZoomFactors"));this.viewport_.setZoomFactorRange(presetZoomFactors);this.dispatchViewerEventToPdfUIAdaptor_("strings-loaded",{data:strings})}onPasswordSubmitted_(event){const inputPassword=event.detail.eventData.password;this.pluginController_.postMessage({type:"getPasswordComplete",password:inputPassword})}onPasswordCancelled_(){this.pluginController_.postMessage({type:"getPasswordUserCancelled"})}handlePDFUIEvents_(event){switch(event.detail.eventName){case"change-page":this.currentController_.goToPage(event.detail.eventData.page-1);if(event.detail.eventData.origin==="pageselector"){this.metrics.onPageSelectorNavigation();this.plugin_.focus()}break;case"zoom-in":this.onZoomIn_();break;case"zoom-out":this.onZoomOut_();break;case"print":if(!loadTimeData.getBoolean("is_xbox_sku")){this.metrics.onPrint();this.currentController_.print()}break;case"save":this.onSave();break;case"saveAs":this.onSaveAs();break;case"share":this.metrics.onShareClick();this.onShare(event.detail.eventData).then((()=>{this.metrics.logShareDialogLaunchSuccess(true)})).catch((error=>{this.metrics.logShareDialogLaunchSuccess(false)}));break;case"rotate":this.metrics.onRotation();this.currentController_.rotateClockwise();break;case"fit-to":this.fitToChanged_(event.detail.eventData.eventParam,event.detail.eventData.userInitiated);break;case"annotation-mode-changed":const previousMode=this.annotationMode_;this.annotationMode_=event.detail.eventData.newMode;if(previousMode===this.annotationMode_){let drawingAttributes=null;if(this.annotationMode_===AnnotationMode.INKING){drawingAttributes=event.detail.eventData.inkAttributes}else if(loadTimeData.getBoolean("pdfFreeFormHighlighterEnabled")&&this.annotationMode_===AnnotationMode.HIGHLIGHTING&&this.overlayController_.overlaysActivated){drawingAttributes=event.detail.eventData.highlightAttributes.freeFormAttributes}if(drawingAttributes){this.overlayController_.inkAttributesChanged(drawingAttributes.color,drawingAttributes.width,drawingAttributes.transparency)}}else{if(this.overlayController_.isInitialized){if(previousMode===AnnotationMode.INKING){this.exitInkingMode()}else if(previousMode===AnnotationMode.HIGHLIGHTING){this.exitHighlightMode()}if(this.annotationMode_===AnnotationMode.INKING){this.enterInkingMode(event.detail.eventData.inkAttributes,event.detail.eventData.shouldChangeFocus)}else if(this.annotationMode_===AnnotationMode.HIGHLIGHTING){this.enterHighlightMode(event.detail.eventData.shouldChangeFocus)}}this.updateReadAloudMenu_()}const annotationConfigMessageData={type:"setAnnotationConfiguration",annotationMode:this.annotationMode_};if(this.annotationMode_===AnnotationMode.HIGHLIGHTING){annotationConfigMessageData.highlightColor=event.detail.eventData.highlightAttributes.color}this.pluginController_.postMessage(annotationConfigMessageData);break;case"text-only-highlight-toggled":this.pluginController_.postMessage({type:"setTextOnlyHighlightEnabled",isEnabled:event.detail.eventData.isTextOnlyHighlightEnabled});break;case"touch-draw-mode-changed":const isTouchDrawEnabled=event.detail.eventData.isTouchDrawEnabled;if(isTouchDrawEnabled){this.overlayController_.disableTouchScroll()}else{this.overlayController_.enableTouchScroll()}this.updateTouchScrollState(!isTouchDrawEnabled,event.detail.eventData.isAutoTriggered);break;case"infobarlist-size-changed":this.viewport_.embedTopOffset=this.viewport_.embedTopOffset+(event.detail.eventData.height-this.infobarContainerHeight_);this.infobarContainerHeight_=event.detail.eventData.height;this.updatePluginPosition_();break;case"toolbar-pinned":this.pinToolbar_(event.detail.eventData.value,event.detail.eventData.isUserInitiated);break;case"read-aloud-state-changed":if(!loadTimeData.getBoolean("pdfReadAloudEnabled")){break}this.handleReadAloudStateChange_(event.detail.eventData.newState);break;case"validate-signature":this.onValidateSignature_(event.detail.eventData.index);break;case"view-certificate":this.onViewCertificate_(event.detail.eventData.index);break;case"handle-bookmark-item-selection":this.handleBookmarkItemSelection_(event.detail.eventData);break;case"handle-thumbnail-item-selection":this.handleThumbnailItemSelection_(event.detail.eventData);break;case"save-text-note":this.pluginController_.postMessage({type:"saveTextNote",textNoteString:event.detail.eventData.textNoteString,textNoteActionType:event.detail.eventData.textNoteActionType,textNoteColor:event.detail.eventData.textNoteColor});break;case"delete-text-note":this.pluginController_.postMessage({type:"deleteTextNote"});break;case"password-submitted":this.onPasswordSubmitted_(event);break;case"password-cancelled":this.onPasswordCancelled_();break;case"reload-tab":this.reloadTab_();break;case"remove-tab":this.removeTab_();break;case"not-signedin-error":this.handleNotSignedInError();break;case"embedded-pdf-error":this.navigator_.navigate(this.originalUrl_,WindowOpenDisposition.NEW_FOREGROUND_TAB);break;case"navigate-to-profile-settings":this.navigator_.navigateToEdgeUrl(PDFViewer.EDGE_PROFILE_SETTINGS_URL,WindowOpenDisposition.NEW_FOREGROUND_TAB);break;case"set-browser-find-bar-visibility":this.setBrowserFindBarVisibility(event.detail.eventData.isFindBarVisible);break;case"set-page-layout":this.onSetPageLayout_(event.detail.eventData.layoutType,event.detail.eventData.layoutScrollType,event.detail.eventData.coverPageEnabled);break;case"create-free-text-annotation":this.pluginController_.postMessage({type:"createFreeTextAnnotation",...event.detail.eventData});break;case"update-free-text-annotation":this.pluginController_.postMessage({type:"updateFreeTextAnnotation",...event.detail.eventData});break;case"delete-free-text-annotation":this.pluginController_.postMessage({type:"deleteFreeTextAnnotation",...event.detail.eventData});break;case"view-recovery-coachmark-shown":this.pluginController_.postMessage({type:"viewRecoveryCoachmarkShown"});break;case"changeAnnotVisibility":this.pluginController_.postMessage({type:"changeAnnotVisibility",isVisible:event.detail.eventData});break;case"page-up":this.viewport_.goToPreviousPage();break;case"page-down":this.viewport_.goToNextPage();break;case"execute-upsell-action":this.executeUpsellAction_(event.detail.eventData);break;case"toggle-fullscreen-mode":this.handleToggleFullscreen_(event.detail.eventData);break;default:break}}activateOverlays_(inkAttributes,annotationMode,shouldChangeFocus){this.overlayController_.setInkListener(((pageId,strokeData)=>{this.pluginController_.postMessage({type:"addInkStroke",inkPageNumber:pageId,inkStrokeData:strokeData});this.disableFreeFormHighlight()}));this.overlayController_.setEraserListener(((eventType,event)=>{this.pluginController_.postMessage({type:"eraserEvent",eventType:eventType,event:{x:event.clientX,y:event.clientY-this.viewport_.embedTopOffset}})}));const inkInitStartTime=Date.now();this.overlayController_.setInkReadyListener((()=>{this.pluginController_.postMessage({type:"inkInitialized",inkInitializeTime:Date.now()-inkInitStartTime})}));this.overlayController_.setTouchScrollUpdatedListener((isTouchScrollEnabled=>{this.dispatchViewerEventToPdfUIAdaptor_("set-touch-draw-mode",{isTouchDrawEnabled:!isTouchScrollEnabled});this.updateTouchScrollState(isTouchScrollEnabled,true)}));this.overlayController_.activateOverlays(inkAttributes.color,inkAttributes.width,inkAttributes.transparency,annotationMode,shouldChangeFocus)}reloadTab_(){if(chrome.tabs&&this.browserApi_.getStreamInfo().tabId!==-1){chrome.tabs.reload(this.browserApi_.getStreamInfo().tabId)}}removeTab_(){if(chrome.tabs&&this.browserApi_.getStreamInfo().tabId!==-1){chrome.tabs.remove(this.browserApi_.getStreamInfo().tabId)}}handleNotSignedInError(){this.pluginController_.postMessage({type:"showSignInDialog"});this.reloadTab_()}handleBookmarkItemSelection_(destination){if(destination.page>=0){const point=this.viewport_.convertPageToScreen(destination.page,{x:destination.left?destination.left:0,y:destination.top?destination.top:0});const pointY=point.y-(PDFViewer.EMBED_TOP_OFFSET+this.infobarContainerHeight_-this.viewport_.embedTopOffset);this.handleNavigateToDestination_(destination.page,destination.left?point.x:undefined,destination.top?pointY:undefined,destination.zoom,destination.onNavigationCompleteCallback);this.pluginController_.postMessage({type:"changePage",selectedPageIndex:destination.page})}else if(destination.uri&&destination.uri.length){this.handleNavigate(destination.uri,WindowOpenDisposition.NEW_BACKGROUND_TAB)}}handleThumbnailItemSelection_(data){if(data.onNavigationCompleteCallback){const viewportCallback=()=>{const visiblePageRange=this.viewport_.getVisiblePageRange();if(visiblePageRange[0]<=data.pageIndex&&data.pageIndex<=visiblePageRange[1]){this.viewport_.removeViewportChangedCallback(viewportCallback);data.onNavigationCompleteCallback()}};this.viewport_.addViewportChangedCallback(viewportCallback)}this.viewport_.goToPage(data.pageIndex)}getHistogramEnumValueFromUpsellAction(action){const actions=chrome.edgePdfPrivate.UpsellAction;switch(action){case actions.COMBINE_FILES:return UpsellContentActions.COMBINE_FILES;case actions.CONVERT_TO_AND_FROM_PDF:return UpsellContentActions.CONVERT_PDF;case actions.EDIT_TEXT_AND_IMAGES:return UpsellContentActions.EDIT_TEXT_AND_IMAGES;case actions.LOGIN:return UpsellContentActions.LOGIN;case actions.START_TRIAL:return UpsellContentActions.START_TRIAL;default:throw new Error("Unknown upsell action")}}executeUpsellAction_(action){this.metrics.recordUserAction("Microsoft.Pdf.Upsell.ActionExecuted");this.metrics.onUpsellActionExecuted(this.getHistogramEnumValueFromUpsellAction(action));chrome.edgePdfPrivate.executeUpsellAction(action)}async handleToggleFullscreen_(data){document.scrollingElement.classList.toggle("fullscreen-mode",data.isEnabled);this.viewport_.setScrollType(data.isEnabled?LayoutScrollType.DISCRETE:LayoutScrollType.CONTINUOUS);this.pluginController_.postMessage({type:"setPDFFullscreenMode",isEnabled:data.isEnabled});const resolver=new PromiseResolver;if(data.isEnabled){document.addEventListener("fullscreenchange",this.fullscreenChangeHandler);this.viewport_.addViewportChangedCallback(this.clipViewportToMostVisiblePages);const logFullscreenEnterTime=()=>{this.metrics.logPdfFullscreenEnterTime(Math.round(performance.now()-data.triggerTime));this.viewport_.removeViewportChangedCallback(logFullscreenEnterTime);resolver.resolve()};this.viewport_.addViewportChangedCallback(logFullscreenEnterTime);await document.scrollingElement.requestFullscreen()}else{this.viewport_.removeViewportChangedCallback(this.clipViewportToMostVisiblePages);document.removeEventListener("fullscreenchange",this.fullscreenChangeHandler);if(document.fullscreenElement){await document.exitFullscreen()}if(this.isCaretModeEnabled_){this.dispatchViewerEventToPdfUIAdaptor_("set-caret-visibility",{isCaretVisible:true})}this.metrics.logPdfFullscreenExitTime(Math.round(performance.now()-data.triggerTime));resolver.resolve()}if(!darkMediaQuery.matches){this.onThemeChanged_(data.isEnabled?PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_DARK:PDFViewer.EDGE_PDFVIEWER_BACKGROUND_COLOR_LIGHT)}this.plugin_.focus();this.updateReadAloudMenu_();return resolver.promise}fullscreenChangeHandler=e=>{if(document.fullscreenElement)return;this.dispatchViewerEventToPdfUIAdaptor_("toggle-fullscreen-mode",{isEnabled:false,triggerTime:performance.now()})};clipViewportToMostVisiblePages=()=>{const mostVisiblePages=this.viewport.layoutBehavior.getPageSet(this.viewport.getMostVisiblePage());const rect=this.viewport.getCombinedRectOfPages_(mostVisiblePages);const style=document.scrollingElement.style;style.setProperty("--page-scale",this.viewport.getZoom());style.setProperty("--y-clip-start",CSS.px(rect.y));style.setProperty("--y-clip-end",CSS.px(this.documentDimensions_.height-(rect.y+rect.height)))};updateTouchScrollState(isEnabled,isAutoTriggered){this.pluginController_.postMessage({type:"updateTouchScrollState",isTouchScrollEnabled:isEnabled,isAutoTriggered:isAutoTriggered})}updateReadAloudMenu_(){if(chrome.edgeLearningToolsPrivate){let readAloudDisabledReason=ReadAloudDisabledReason.NONE;if(isNewViewerFeatureEnabledStateAvailable(this.newViewerFeatureEnabledStates_)&&!this.newViewerFeatureEnabledStates_.readAloudEnabledInNewViewer){readAloudDisabledReason=ReadAloudDisabledReason.DISABLED_IN_NEW_VIEWER}else if(this.annotationMode_!==AnnotationMode.NONE||this.documentDimensions_.currentRotation!==0||document.fullscreenElement!==null){chrome.edgeLearningToolsPrivate.rolMenuDisable();if(this.annotationMode_===AnnotationMode.INKING){readAloudDisabledReason=ReadAloudDisabledReason.DRAW_ENABLED}else if(this.annotationMode_===AnnotationMode.ERASING){readAloudDisabledReason=ReadAloudDisabledReason.ERASE_ENABLED}else if(this.annotationMode_===AnnotationMode.HIGHLIGHTING){readAloudDisabledReason=ReadAloudDisabledReason.HIGHLIGHT_ENABLED}else if(this.annotationMode_===AnnotationMode.ADDING_FREE_TEXT){readAloudDisabledReason=ReadAloudDisabledReason.FREE_TEXT_ENABLED}else if(this.documentDimensions_.currentRotation!==0){readAloudDisabledReason=ReadAloudDisabledReason.ROTATED}else if(document.fullscreenElement!==null){readAloudDisabledReason=ReadAloudDisabledReason.FULLSCREEN_MODE}else{throw new Error("This annotation mode is not handled with ReadAloud")}}else{chrome.edgeLearningToolsPrivate.rolMenuEnable();readAloudDisabledReason=ReadAloudDisabledReason.NONE}this.dispatchViewerEventToPdfUIAdaptor_("disable-read-aloud",{readAloudDisabledReason:readAloudDisabledReason})}}handleTextNoteData(textNoteDataObject){if(this.textNoteController_&&this.textNoteController_.getTextNotePreviewVisibility()){this.handleTextNotePreviewVisibility(false)}const textNoteData={textNoteInput:textNoteDataObject.textNoteString,textNoteColor:{r:textNoteDataObject.textNoteColor.r,g:textNoteDataObject.textNoteColor.g,b:textNoteDataObject.textNoteColor.b,a:textNoteDataObject.textNoteColor.a},textNoteEditable:textNoteDataObject.textNoteEditable,textNoteDialogAction:textNoteDataObject.textNoteActionType};if(this.textNoteController_){const dialogPlacement=this.textNoteController_.getTextNoteDialogPosition(textNoteDataObject.textNoteActionType,textNoteDataObject.textNotePosition.top,textNoteDataObject.textNotePosition.left,textNoteDataObject.textNotePosition.bottom,textNoteDataObject.textNotePosition.right);if(dialogPlacement.isValid){textNoteData.textNotePositionX=dialogPlacement.positionX;textNoteData.textNotePositionY=dialogPlacement.positionY}}this.dispatchViewerEventToPdfUIAdaptor_("display-text-note-modal",textNoteData)}handleTextNotePreviewAttributes(textNotePreviewAttributes){if(this.textNoteController_){this.textNoteController_.setTextNotePreviewInput(textNotePreviewAttributes.previewInput)}this.dispatchViewerEventToPdfUIAdaptor_("update-text-note-preview-attributes",{textNotePreviewAttributes:textNotePreviewAttributes})}handleTextNoteMarkerPosition(textNoteMarkerPosition){if(this.textNoteController_&&this.textNoteController_.getTextNotePreviewVisibility()){this.textNoteController_.updateTextNoteMarkerPositionLayoutCoordinates(textNoteMarkerPosition);const textNoteMarkerBackPlateDocumentPosition=this.textNoteController_.getTextNoteMarkerBackPlateDocumentCoordinates();const textNotePreviewDocumentPosition=this.textNoteController_.getTextNotePreviewDocumentCoordinates();this.dispatchViewerEventToPdfUIAdaptor_("update-text-note-marker-back-plate-position",{textNoteMarkerBackPlatePosition:textNoteMarkerBackPlateDocumentPosition});this.dispatchViewerEventToPdfUIAdaptor_("update-text-note-preview-position",{textNotePreviewPosition:textNotePreviewDocumentPosition})}}handleTextNotePreviewVisibility(previewVisibility){this.dispatchViewerEventToPdfUIAdaptor_("set-text-note-preview-visibility",{previewVisibility:previewVisibility});if(this.textNoteController_){this.textNoteController_.setTextNotePreviewVisibility(previewVisibility)}}handleTextNotePreviewData(textNotePreviewDataObject){if(textNotePreviewDataObject.textNoteString!==undefined&&textNotePreviewDataObject.textNoteColor){this.handleTextNotePreviewAttributes({previewInput:textNotePreviewDataObject.textNoteString,previewColor:textNotePreviewDataObject.textNoteColor})}if(textNotePreviewDataObject.textNotePreviewVisibility!==undefined){this.handleTextNotePreviewVisibility(textNotePreviewDataObject.textNotePreviewVisibility)}if(textNotePreviewDataObject.textNoteMarkerPosition){this.handleTextNoteMarkerPosition(textNotePreviewDataObject.textNoteMarkerPosition)}}handleReadAloudStateChange_(readAloudState){if(readAloudState===ReadAloudState.INITIALIZE){if(chrome.edgeLearningToolsPrivate){chrome.edgeLearningToolsPrivate.initialize()}this.viewport_.embedTopOffset=this.infobarContainerHeight_+PDFViewer.EMBED_TOP_OFFSET;this.updatePluginPosition_()}else if(readAloudState===ReadAloudState.START){if(this.readAloudState_===ReadAloudState.NONE){this.dispatchViewerEventToPdfUIAdaptor_("change-read-aloud-state",{readAloudState:readAloudState});this.dispatchViewerEventToPdfUIAdaptor_("toggle-read-aloud-button-state",null);this.viewport_.embedTopOffset=this.infobarContainerHeight_+PDFViewer.EMBED_TOP_OFFSET;this.updatePluginPosition_()}this.browserApi_.addZoomEventListener(this.readAloudController_.dispatchZoomEvent);this.readAloudController_.initializeReadAloud();chrome.edgeLearningToolsPrivate.logPageInfo(this.viewport_.pageCount.toString(),(this.viewport_.getMostVisiblePage()+1).toString())}else if(readAloudState===ReadAloudState.STOP&&this.readAloudState_!==ReadAloudState.NONE){this.readAloudController_.deInitializeReadAloud();this.dispatchViewerEventToPdfUIAdaptor_("change-read-aloud-state",{readAloudState:ReadAloudState.NONE});this.dispatchViewerEventToPdfUIAdaptor_("toggle-read-aloud-button-state",null)}this.readAloudState_=readAloudState===ReadAloudState.STOP?ReadAloudState.NONE:readAloudState}onViewCertificate_(index){if(this.pluginController_.isUnseasonedPlugin()){chrome.mimeHandlerPrivate.viewPdfSignerCertificate(index)}else{this.pluginController_.postMessage({type:"viewCertificate",sigId:index})}}onSetPageLayout_(layoutType,layoutScrollType,coverPageEnabled){this.layoutUpdateStartTime_=Date.now();this.setLayoutBehavior(layoutType,true);this.pluginController_.postMessage({type:"setLayout",layoutType:layoutType,layoutScrollType:layoutScrollType,coverPageEnabled:coverPageEnabled,rtlLanguage:isRTL()})}handleReadAloudActions_(event){if(!loadTimeData.getBoolean("pdfReadAloudEnabled")){return}switch(event.detail.eventName){case"add-word-decoration":this.readAloudController_.addWordDecoration(event.detail.eventData.value);break;case"add-line-decoration":this.readAloudController_.addLineDecoration(event.detail.eventData.value);break;case"add-background-decoration":this.readAloudController_.addBackgroundDecoration();break;case"remove-word-decoration":this.readAloudController_.removeWordDecoration();break;case"remove-line-decoration":this.readAloudController_.removeLineDecoration();break;case"remove-background-decoration":this.readAloudController_.removeBackgroundDecoration();break;case"read-aloud-start":if(this.readAloudState_===ReadAloudState.INITIALIZE){this.dispatchViewerEventToPdfUIAdaptor_("change-read-aloud-state",{readAloudState:ReadAloudState.READY})}break;default:break}}sendViewportScrollInformationToReadAloudScript_(){const event=new CustomEvent("pdf-viewport-scroll-offset-event",{detail:{eventName:"scroll-offset",eventData:{x:this.viewport_.position.x,y:this.viewport_.position.y+this.viewport_.firstPageSeparator_}}});this.uiContainer_.dispatchEvent(event)}onZoomIn_(){this.metrics.recordUserAction("Microsoft.Pdf.View.Zoom.In");this.pendingZoomAnnouncement_=true;this.metrics.onZoomIn();this.viewport_.zoomIn()}onZoomOut_(){this.metrics.recordUserAction("Microsoft.Pdf.View.Zoom.Out");this.pendingZoomAnnouncement_=true;this.metrics.onZoomOut();this.viewport_.zoomOut()}setUserInitiated_(userInitiated){if(this.isUserInitiatedEvent_===userInitiated){throw new Error("Trying to set user initiated to current value.")}this.isUserInitiatedEvent_=userInitiated}updateEmbedBorder_(){this.embedBorder_.style.top=this.plugin_.style.top;const toolbarOffset=parseInt(getComputedStyle(this.embedBorder_).getPropertyValue("top"),10);const borderWidth=parseInt(getComputedStyle(this.embedBorder_).getPropertyValue("border-width"),10);this.embedBorder_.style.height=`${document.documentElement.clientHeight-2*borderWidth-toolbarOffset}px`;this.embedBorder_.style.width=`${document.documentElement.clientWidth-2*borderWidth}px`}viewportChanged_(){if(!this.documentDimensions_){return}const hasScrollbars=this.viewport_.documentHasScrollbars();const scrollbarWidth=this.viewport_.scrollbarWidth;const verticalScrollbarWidth=hasScrollbars.vertical?scrollbarWidth:0;const horizontalScrollbarWidth=hasScrollbars.horizontal?scrollbarWidth:0;const visiblePage=this.viewport_.getMostVisiblePage();this.dispatchViewerEventToPdfUIAdaptor_("page-changed",{page:visiblePage+1});if(this.pageIndicator_){if(verticalScrollbarWidth){this.pageIndicator_.style.right=verticalScrollbarWidth/2+"px"}if(this.documentDimensions_.pageDimensions.length>1&&hasScrollbars.vertical){this.pageIndicator_.style.visibility="visible"}else{this.pageIndicator_.style.visibility="hidden"}}const visiblePageDimensions=this.viewport_.getPageScreenRect(visiblePage);const size=this.viewport_.size;if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.updateLayoutContainerDivs_()}if(this.viewRecovered_){this.dispatchViewerEventToPdfUIAdaptor_("viewRecovery-data-applied",{pageNum:this.viewport_.getMostVisiblePage()+1,isViewRecoveryCoachmarkShown:this.pdfShowViewRecoveryCoachmark_});this.viewRecovered_=false}this.overlayController_.viewportChanged();if(this.caretController_){const caretPosition=this.caretController_.getCaretPositionLayoutCoordinates();this.handleUpdateCaretPosition(caretPosition)}if(this.textNoteController_){this.handleTextNotePreviewVisibility(false)}this.sendScriptingMessage_({type:"viewport",pageX:visiblePageDimensions.x,pageY:visiblePageDimensions.y,pageWidth:visiblePageDimensions.width,viewportWidth:size.width,viewportHeight:size.height});if(this.pluginController_.isUnseasonedPlugin()){this.sendViewportUpdate();this.sendViewportScrollInformationToReadAloudScript_();if(loadTimeData.getBoolean("pdfFormsOnAsyncApi")){this.sendLayoutUpdateMessage_()}}}sendLayoutUpdateMessage_(){const layoutContainer=this.viewport_.getLayoutContainerRect();layoutContainer.y-=this.viewport_.embedTopOffset;const[startPageIndex,endPageIndex]=this.getSkeletalPageDivRange_();const pageDimensions=[];for(let i=startPageIndex;i<=endPageIndex;i++){const insetDimension=this.viewport_.getPageInsetDimensions(i);pageDimensions.push({pageIndex:i,pageDimension:insetDimension})}this.pluginController_.postMessage({type:"layoutUpdate",layoutRect:layoutContainer,visiblePageDimensions:pageDimensions,zoom:this.viewport_.getZoom(),rotationInDegrees:this.viewport_.getClockwiseRotationsInDegrees()})}onFocus_(){if(!this.isPrintPreview_&&!this.isInFocus_){this.pluginController_.postMessage({type:"documentFocus",state:true});this.isInFocus_=true}}onBlur_(){if(this.overlayController_.overlaysActivated){this.overlayController_.onFocusLost()}if(!this.isPrintPreview_&&!document.hasFocus()){this.pluginController_.postMessage({type:"documentFocus",state:false});this.isInFocus_=false}}handleScriptingMessage(message){if(message.data.type==="connect"){const token=message.data.token;if(token===this.browserApi_.getStreamInfo().streamUrl){this.pluginController_.bindUnseasonedMessageHandler(message.ports[0])}else{this.documentContainer_.dispatchEvent(new CustomEvent("connection-denied-for-testing"))}return true}const messageType=message.data.type;if(!messageType){return false}if(this.parentWindow_!==message.source){this.parentWindow_=message.source;this.parentOrigin_=message.origin;if(this.loadState_!==LoadState.LOADING){this.sendDocumentLoadedMessage_()}}if(this.handlePrintPreviewScriptingMessage_(message)){return true}if(this.loadState_!==LoadState.SUCCESS){this.delayedScriptingMessages_.push(message);return true}switch(messageType.toString()){case"getSelectedText":case"print":case"selectAll":this.pluginController_.postMessage(message.data);break;default:return false}return true}handlePrintPreviewScriptingMessage_(message){if(!this.isPrintPreview_){return false}switch(message.data.type.toString()){case"fitToPage":this.fitToChanged_(FittingType.FIT_TO_PAGE,true);return true;case"zoomIn":this.onZoomIn_();return true;case"zoomOut":this.onZoomOut_();return true;case"loadPreviewPage":this.pluginController_.postMessage(message.data);return true;case"resetPrintPreviewMode":this.setLoadState_(LoadState.LOADING);if(!this.inPrintPreviewMode_){this.inPrintPreviewMode_=true;this.isUserInitiatedEvent_=false;this.dispatchViewerEventToPdfUIAdaptor_("pageView-updated",{value:FittingType.FIT_TO_PAGE});this.fitToChanged_(FittingType.FIT_TO_PAGE,false);this.isUserInitiatedEvent_=true}this.lastViewportPosition_=this.viewport_.position;const printButton=$("print-button");if(printButton){printButton.parentNode.removeChild(printButton)}const saveButton=$("save-button");if(saveButton){saveButton.parentNode.removeChild(saveButton)}this.pluginController_.postMessage({type:"resetPrintPreviewMode",url:message.data.url,grayscale:message.data.grayscale,pageCount:message.data.modifiable?message.data.pageNumbers.length:0});return true;case"sendKeyEvent":const keyEvent=DeserializeKeyEvent(message.data.keyEvent);keyEvent.fromScriptingAPI=true;this.handleKeyEvent_(keyEvent);return true;case"scrollPosition":const position=this.viewport_.position;position.y+=message.data.y;position.x+=message.data.x;this.viewport.position=position;return true}return false}sendScriptingMessage_(message){if(this.parentWindow_&&this.parentOrigin_){let targetOrigin;if(this.parentOrigin_===window.location.origin){targetOrigin=this.parentOrigin_}else if(message.type==="documentLoaded"){targetOrigin="*"}else{targetOrigin=this.originalUrl_}try{this.parentWindow_.postMessage(message,targetOrigin)}catch(ok){}}}dispatchViewerEventToPdfUIAdaptor_(name,data){const event=new CustomEvent("viewer-event",{bubbles:false,detail:{eventName:name,eventData:data}});this.uiContainer_.dispatchEvent(event)}get viewport(){return this.viewport_}setDocumentDimensions(documentDimensions){this.documentDimensions_=documentDimensions;this.isUserInitiatedEvent_=false;const layoutUpdateInProgress=this.viewport_.layoutUpdateInProgress;this.viewport_.setDocumentDimensions(this.documentDimensions_);if(layoutUpdateInProgress){this.dispatchViewerEventToPdfUIAdaptor_("update-fit-to-view",{value:this.viewport_.fittingType});this.metrics.logLayoutUpdateTime(Date.now()-this.layoutUpdateStartTime_)}this.isUserInitiatedEvent_=true;const currentRotation=this.documentDimensions_.currentRotation;if(currentRotation>=0&¤tRotation<4&&this.viewport_.getClockwiseRotations()!==currentRotation){this.viewport_.rotations_=currentRotation;this.dispatchViewerEventToPdfUIAdaptor_("rotation-changed",{rotatedValue:this.viewport_.rotations_*90})}this.dispatchViewerEventToPdfUIAdaptor_("doc-length-updated",{docLength:this.documentDimensions_.pageDimensions.length})}setCaretModeEnabled(isCaretModeEnabled){this.isCaretModeEnabled_=isCaretModeEnabled}setFitToView(view_data){switch(view_data.view_state){case FittingType.FIT_TO_PAGE:this.fitToChanged_(FittingType.FIT_TO_PAGE,false);this.dispatchViewerEventToPdfUIAdaptor_("pageView-updated",{value:FittingType.FIT_TO_PAGE});break;case FittingType.FIT_TO_WIDTH:this.fitToChanged_(FittingType.FIT_TO_WIDTH,false);this.dispatchViewerEventToPdfUIAdaptor_("pageView-updated",{value:FittingType.FIT_TO_WIDTH});break;default:break}}updateFindBarVisibility(find_bar_data){this.dispatchViewerEventToPdfUIAdaptor_("find-bar-visibility-changed",{value:find_bar_data.is_find_visible});this.pluginController_.postMessage({type:"logFindBarHistogram",findBarVisibility:find_bar_data.is_find_visible})}handleBeep(){this.beepCount_+=1}handlePasswordRequest(){if(loadTimeData.getBoolean("pdfAsPreviewEnabled")){let viewDiv=document.createElement("div");viewDiv.id="password-protected-disable-message-div";document.body.textContent="";document.body.append(viewDiv);viewDiv.textContent=loadTimeData.getString("passwordFileDisableWithPreviewMessage")}else{this.dispatchViewerEventToPdfUIAdaptor_("handle-password-request",{onPasswordModalVisible:()=>{this.setDocumentTitle();this.sendScriptingMessage_({type:"getPasswordCallback"})},onIncorrectAttempt:()=>{this.sendScriptingMessage_({type:"getInvalidInputCallback"})}})}}handleSelectedTextReply(selectedText){this.sendScriptingMessage_({type:"getSelectedTextReply",selectedText:selectedText})}handleNavigate(url,disposition){if(this.isPrintPreview_){this.navigator_.navigate(url,WindowOpenDisposition.NEW_BACKGROUND_TAB)}else{this.navigator_.navigate(url,disposition)}}handleNavigateToDestination_(page,x,y,zoom,callback){if(zoom){this.viewport_.setZoom(zoom)}if(typeof callback==="function"){const onScroll=function(){window.removeEventListener("scroll",onScroll);callback()};window.addEventListener("scroll",onScroll)}if(x||y){this.viewport_.goToPageAndXY(page,x?x:0,y?y:0)}else{this.viewport_.goToPage(page)}this.plugin_.focus()}handlePrintPreviewLoaded(){this.isPrintPreviewLoadingFinished_=true;this.sendDocumentLoadedMessage_()}handleDigSigIdentified(){this.dispatchViewerEventToPdfUIAdaptor_("dig-sig-identified")}handleCreateHighlight(aVal,rVal,gVal,bVal){this.pluginController_.postMessage({type:"createHighlightFromSelection",a:aVal,r:rVal,g:gVal,b:bVal})}handleChangeHighlightColor(aVal,rVal,gVal,bVal){this.pluginController_.postMessage({type:"changeHighlightColor",a:aVal,r:rVal,g:gVal,b:bVal})}handleDeleteHighlight(){this.pluginController_.postMessage({type:"deleteHighlight"})}setBrowserFindBarVisibility(findBarVisibility){this.pluginController_.postMessage({type:"setFindBarVisibility",findBarVisibility:findBarVisibility})}handleRenderUpdate(){if(!this.documentDimensions_){return}if(this.viewport_.zoomInProcess_&&[Viewport.PinchPhase.PINCH_NONE,Viewport.PinchPhase.PINCH_END].includes(this.viewport_.pinchPhase_)){if(this.pluginController_.isUnseasonedPlugin()){this.updatePluginEmbed_()}const expectedPosition=this.viewport_.position;this.viewport_.zoomInProcess_=false;const actualPosition=this.viewport_.position;if(actualPosition.x!==expectedPosition.x||actualPosition.y!==expectedPosition.y){this.viewport_.position=expectedPosition}this.updateLayoutContainer_();this.viewport_.zoomedPosition_=null;this.sendScriptingMessage_({type:"renderUpdateComplete"});this.pluginController_.postMessage({type:"startScrolling"});if(this.pluginController_.isUnseasonedPlugin()){this.sendViewportUpdate()}}}sendViewportUpdate(){const position=this.viewport_.position;const pluginViewport=loadTimeData.getBoolean("pdfUnseasonedRenderFixEnabled")?this.viewport_.getPluginRectInFrame():this.viewport_.size;this.pluginController_.postMessage({type:"viewChanged",viewportWidth:pluginViewport.width,viewportHeight:pluginViewport.height,xOffset:position.x,yOffset:position.y+this.viewport_.firstPageSeparator_})}handleUpdateCaretPosition(caretPositionOnPage){if(this.caretController_){this.caretController_.updateCaretPositionLayoutCoordinates(caretPositionOnPage);const caretPositionOnScreen=this.caretController_.getCaretPositionScreenCoordinates();this.dispatchViewerEventToPdfUIAdaptor_("update-caret-position",{caretPosition:caretPositionOnScreen})}}handlePluginCrash(){if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.plugin_.style.position="fixed";this.currentSizer_.setAttribute("style","display : none")}this.dispatchViewerEventToPdfUIAdaptor_("enable-toolbar",{isEnabled:false});if(this.overlayController_.overlaysActivated){this.overlayController_.deactivateOverlays();this.overlayController_.setInkListener(null)}}setDocumentTitle(title){if(title&&!this.IsLocalPDF(this.originalUrl_)){document.title=title}else{document.title=getFilenameFromURL(this.originalUrl_)}this.originalTitle_=document.title;if(this.hasEdits_){this.setDocumentTitleDirty(true)}}setDocumentTitleDirty(isDirty){if(isDirty){document.title="*"+this.originalTitle_}else{document.title=this.originalTitle_}}IsLocalPDF(url){const res=url.substring(0,5);if(res.localeCompare("file:")===0){return true}return false}SetToolbarState(){if(this.isPdfEmbedded_){this.dispatchViewerEventToPdfUIAdaptor_("is-embedded",{})}if(!this.IsLocalPDF(this.originalUrl_)){this.dispatchViewerEventToPdfUIAdaptor_("disable-save",{isDisabled:false});this.dispatchViewerEventToPdfUIAdaptor_("is-online",{})}this.dispatchViewerEventToPdfUIAdaptor_("enable-toolbar",{isEnabled:true})}get bookmarks(){return this.bookmarks_}setBookmarks(bookmarks){this.dispatchViewerEventToPdfUIAdaptor_("set-bookmarks",bookmarks);this.bookmarks_=bookmarks;this.handleDefaultOpenBookmarks()}handleDefaultOpenBookmarks(){if(!this.documentDimensions_){return}if(loadTimeData.getBoolean("pdfBookmarksOpenByDefaultEnabled")){if(this.documentDimensions_.pageDimensions.length>=15&&this.viewport_.getGutterWidth()>BOOKMARK_FLYOUT_WIDTH){this.dispatchViewerEventToPdfUIAdaptor_("set-bookmark-default-open",true)}}}setIsSelecting(isSelecting){if(this.pluginController_.isUnseasonedPlugin()){this.isSelecting_=isSelecting;if(isSelecting){this.subscribePointerEventsUnseasoned_()}else{this.viewportScroller_.stopDragScrollTimer();this.unsubscribePointerEventsUnseasoned_()}}else{this.viewportScroller_.setEnableScrolling(isSelecting)}}setIsFormFieldFocused(focused){this.isFormFieldFocused_=focused}populateSignerInfoList(signerInfoList){this.dispatchViewerEventToPdfUIAdaptor_("populate-signer-info-list",signerInfoList)}onValidateSignature_(index){if(this.pluginController_.isUnseasonedPlugin()){chrome.mimeHandlerPrivate.validatePdfDigitalSignature(index)}else{this.pluginController_.postMessage({type:"validateSignature",sigId:index})}}showDigsigInfobar(allSignStatus){this.dispatchViewerEventToPdfUIAdaptor_("show-digsig-infobar",{allSignStatus:allSignStatus})}handleViewRecovery(data){if(!data.hasRecoveryData){return}const scrollPoint={x:data.x,y:data.y};this.viewport_.setZoom(data.zoom);this.viewport_.setClockwiseRotations(data.rotation);this.viewport_.scrollTo(scrollPoint);this.viewRecovered_=true;if(data.switchToTwoPageLayout){this.dispatchViewerEventToPdfUIAdaptor_("switch-to-two-page-layout");this.setLayoutBehavior(PdfLayoutType.DUAL_PAGE,false)}if(this.viewport_.getMostVisiblePage()>0&&this.pdfShowViewRecoveryCoachmark_){this.dispatchViewerEventToPdfUIAdaptor_("show-view-recovery-coachmark",{scrollY:data.y,zoom:data.zoom})}}onSaveAs(streamUrl){return this.handleSaveAndSaveAs(streamUrl,false)}onSave(streamUrl){if(this.IsLocalPDF(this.originalUrl_)){this.metrics.logSaveExtension(getFilenameFromURL(this.originalUrl_).toLowerCase().endsWith(".pdf")?1:0)}return this.handleSaveAndSaveAs(streamUrl,loadTimeData.getBoolean("pdfInPlaceSaveEnabled"))}onDigSigIdentified(streamUrl){if(streamUrl!=this.browserApi_.getStreamInfo().streamUrl){return}return this.handleDigSigIdentified()}onDigSigSignerInfoReceived(signers,streamUrl){if(streamUrl!=this.browserApi_.getStreamInfo().streamUrl){return}return this.populateSignerInfoList(signers)}onDigSigAllSignaturesVerified(status,streamUrl){if(streamUrl!=this.browserApi_.getStreamInfo().streamUrl){return}return this.showDigsigInfobar(status)}onShare(data){const promiseResolver=new PromiseResolver;this.currentController_.share().then((result=>{const fileName=getFilenameFromURL(this.originalUrl_);const blob=new Blob([result.dataToShare],{type:"application/pdf"});const files=new File([blob],fileName,{type:"application/pdf"});const filesArray=[files];const shareData={title:fileName,files:filesArray};if(navigator.canShare&&navigator.canShare(shareData)){navigator.share(shareData).then((()=>{this.metrics.logPdfShareDialogLaunchTime(Math.round(performance.now()-data.triggerTime));promiseResolver.resolve()})).catch((error=>{throw new Error("Unsuccessful share"+error)}))}else{throw new Error("System does not support sharing of PDF file.")}})).catch((error=>promiseResolver.reject(error)));return promiseResolver.promise}handleSaveAndSaveAs(streamUrl,saveInPlace){if(!this.IsLocalPDF(this.originalUrl_)&&saveInPlace){saveInPlace=false}if(saveInPlace&&!getFilenameFromURL(this.originalUrl_).toLowerCase().endsWith(".pdf")){saveInPlace=false}if(saveInPlace){this.saveStartTime_=Date.now()}const promiseResolver=new PromiseResolver;if(streamUrl&&streamUrl!==this.browserApi_.getStreamInfo().streamUrl){promiseResolver.reject();return promiseResolver.promise}if(saveInPlace){this.metrics.recordUserAction("Microsoft.Pdf.Save");this.metrics.onSave(!this.IsLocalPDF(this.originalUrl_),this.hasEdits_)}else{this.metrics.recordUserAction("Microsoft.Pdf.SaveAs");this.metrics.onSaveAs(!this.IsLocalPDF(this.originalUrl_),this.hasEdits_)}const handleTelemetry=status=>{if(status){this.metrics.onWriteSuccess(this.hasEdits_,saveInPlace)}else{this.metrics.onWriteFail(this.hasEdits_,saveInPlace)}this.pluginController_.postMessage({type:"recordSaveStatus",status:status})};this.save(saveInPlace).then((saveResult=>{saveInPlace=saveResult.saveInPlace;if(saveResult.status==="Downloaded"){return}handleTelemetry(true);this.hasEdits_=false;this.setDocumentTitleDirty(false);if(saveInPlace){this.metrics.logSaveTime(Date.now()-this.saveStartTime_)}else{this.metrics.logSaveAsTime(Date.now()-this.saveAsStartTime_)}if(!saveInPlace&&saveResult.path){const path=localPathToUrl(saveResult.path);const originalUrl=new URL(this.originalUrl_);const newUrl=new URL(path);if(originalUrl.pathname!==newUrl.pathname){const obj={filename:{previous:"",current:saveResult.path},finalUrl:{previous:"",current:this.originalUrl_}};this.pluginController_.postMessage({type:"saveBroadcastEvent",eventType:"downloads.onChanged",object:JSON.stringify(obj)})}}promiseResolver.resolve();this.sendScriptingMessage_({type:"saveData"})})).catch((error=>{if(error!=="User cancelled"){if(!(error&&error.name&&error.name==="NoModificationAllowedError")){handleTelemetry(false)}alert(loadTimeData.getString("saveGenericError"))}}));return promiseResolver.promise}async save(saveInPlace){const promiseResolver=new PromiseResolver;if(loadTimeData.getBoolean("is_xbox_sku")){promiseResolver.reject("Xbox SKU");return promiseResolver.promise}const result=await this.currentController_.save(false);if(result===null){promiseResolver.resolve({status:"Downloaded",saveInPlace:saveInPlace});return promiseResolver.promise}let fileName=result.fileName;if(!fileName.toLowerCase().endsWith(".pdf")){fileName=fileName+".pdf"}function executeSaveAs(){chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:fileName,accepts:[{extensions:["pdf"]}]},writeUsingEntry)}const writeUsingEntry=entry=>{if(!saveInPlace){this.saveAsStartTime_=Date.now()}if(chrome.runtime.lastError){if(chrome.runtime.lastError.message!=="User cancelled"){if(saveInPlace){console.log("chrome.fileSystem.getCurrentEntry failed: "+chrome.runtime.lastError.message)}else{console.log("chrome.fileSystem.chooseEntry failed: "+chrome.runtime.lastError.message)}}promiseResolver.reject(chrome.runtime.lastError.message);return}entry.createWriter((writer=>{writer.onwriteend=event=>{if(event.currentTarget&&event.currentTarget.error){return}if(writer.length!==event.currentTarget.position){event.currentTarget.truncate(event.currentTarget.position);return}this.dispatchViewerEventToPdfUIAdaptor_("disable-save",{isDisabled:true});if(loadTimeData.getBoolean("pdfSavingEnabled")){chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false)}if(writer.length!==result.dataToSave.byteLength){return promiseResolver.reject("Partial data flushed")}chrome.fileSystem.getDisplayPath(entry,(function(path){promiseResolver.resolve({status:"Saved",path:path,saveInPlace:saveInPlace})}))};writer.onerror=event=>{if(event&&event.currentTarget&&event.currentTarget.error&&event.currentTarget.error.name){if(event.currentTarget.error.name==="NoModificationAllowedError"&&saveInPlace){saveInPlace=false;executeSaveAs();return}else{this.metrics.logWriteError(event.currentTarget.error.name)}}if(chrome.runtime.lastError&&chrome.runtime.lastError.message){promiseResolver.reject(chrome.runtime.lastError.message)}else{if(event&&event.currentTarget&&event.currentTarget.error){promiseResolver.reject(event.currentTarget.error)}else{promiseResolver.reject("Save Generic Error")}}};writer.write(new Blob([result.dataToSave],{type:"application/pdf"}))}))};if(!saveInPlace){const obj={finalUrl:this.originalUrl_,url:this.originalUrl_,fileSize:result.dataToSave.byteLength};this.pluginController_.postMessage({type:"saveBroadcastEvent",eventType:"downloads.onCreated",object:JSON.stringify(obj)})}if(saveInPlace){chrome.fileSystem.getCurrentEntry(writeUsingEntry)}else{executeSaveAs()}return promiseResolver.promise}setDocumentPermissions(documentPermissionObject){this.dispatchViewerEventToPdfUIAdaptor_("set-document-permissions",documentPermissionObject)}setNewViewerFeatureEnabledStates(NewViewerFeatureEnabledStatesObject){this.newViewerFeatureEnabledStates_=NewViewerFeatureEnabledStatesObject;this.dispatchViewerEventToPdfUIAdaptor_("set-new-viewer-feature-enabled-states",NewViewerFeatureEnabledStatesObject)}onSignInSuccess(){if(this.pdfAdaptor_.isErrorDialogActive()){this.dispatchViewerEventToPdfUIAdaptor_("hide-modal",null)}}get toolbarManager(){return this.toolbarManager_}setLayoutBehavior(layoutType,isPluginLayoutUpdatePending){let layoutBehavior;switch(layoutType){case PdfLayoutType.SINGLE_PAGE:layoutBehavior=new SinglePageLayoutBehavior;break;case PdfLayoutType.DUAL_PAGE:layoutBehavior=new DualPageLayoutBehavior;break}this.viewport_.setLayoutBehavior(layoutBehavior,isPluginLayoutUpdatePending)}enableFreeFormHighlight(pageNumber){if(!loadTimeData.getBoolean("pdfFreeFormHighlighterEnabled")){return}if(pageNumber===-1){return}const drawingAttributes=this.pdfAdaptor_.getFreeFormHighlightAttributes();const pointerDownEvent=this.highlightModePluginPointerEvents_[0];if(pointerDownEvent&&pointerDownEvent.type==="pointerdown"){if(!this.overlayController_.overlaysActivated){this.activateOverlays_(drawingAttributes,AnnotationMode.HIGHLIGHTING,false)}this.overlayController_.setAnnotationMode(AnnotationMode.HIGHLIGHTING,pageNumber);this.overlayController_.inkAttributesChanged(drawingAttributes.color,drawingAttributes.width,drawingAttributes.transparency);this.overlayController_.dispatchPointerEvents(this.highlightModePluginPointerEvents_,pageNumber);this.highlightModePluginPointerEvents_=[]}}disableFreeFormHighlight(){if(!loadTimeData.getBoolean("pdfFreeFormHighlighterEnabled")){return}if(this.annotationMode_==AnnotationMode.HIGHLIGHTING){this.overlayController_.setAnnotationMode(AnnotationMode.NONE);this.highlightModePluginPointerEvents_=[]}}enterInkingMode(drawingAttributes,shouldChangeFocus){if(!this.overlayController_.overlaysActivated){this.activateOverlays_(drawingAttributes,AnnotationMode.INKING,shouldChangeFocus)}else{this.overlayController_.setAnnotationMode(AnnotationMode.INKING);this.overlayController_.inkAttributesChanged(drawingAttributes.color,drawingAttributes.width,drawingAttributes.transparency)}}exitInkingMode(){if(this.overlayController_.overlaysActivated){this.overlayController_.deactivateOverlays()}this.overlayController_.setInkListener(null)}enterHighlightMode(shouldChangeFocus=true){if(!loadTimeData.getBoolean("pdfFreeFormHighlighterEnabled")){return}if(!this.overlayController_.overlaysActivated){this.activateOverlays_(this.pdfAdaptor_.getFreeFormHighlightAttributes(),AnnotationMode.HIGHLIGHTING,shouldChangeFocus)}this.overlayController_.setAnnotationMode(AnnotationMode.NONE);if(this.pluginController_.isUnseasonedPlugin()){this.subscribePointerEventsUnseasoned_()}else{this.plugin_.addEventListener("pointerdown",this.handleHighlightModePointerDownEvent);this.plugin_.addEventListener("pointermove",this.handleHighlightModePointerMoveEvent);this.plugin_.addEventListener("pointerup",this.handleHighlightModePointerUpEvent)}}exitHighlightMode(){if(this.overlayController_.overlaysActivated){this.overlayController_.deactivateOverlays()}this.overlayController_.setInkListener(null);this.highlightModePluginPointerEvents_=[];if(this.pluginController_.isUnseasonedPlugin()){this.unsubscribePointerEventsUnseasoned_()}else{this.plugin_.removeEventListener("pointerdown",this.handleHighlightModePointerDownEvent);this.plugin_.removeEventListener("pointermove",this.handleHighlightModePointerMoveEvent);this.plugin_.removeEventListener("pointerup",this.handleHighlightModePointerUpEvent)}}handlePointerEventFromPlugin=event=>{let translatedPoint=this.viewport_.pluginToFrameCoordinate({x:event.clientX,y:event.clientY});let pointerEvent=new PointerEvent(event.type,{pointerType:event.pointerType,pointerId:event.pointerId,isPrimary:event.isPrimary,clientX:translatedPoint.x,clientY:translatedPoint.y,altKey:event.altKey,button:event.button,ctrlKey:event.ctrlKey,metaKey:event.metaKey,shiftKey:event.shiftKey,view:window});switch(event.type){case"pointerdown":if(this.annotationMode_===AnnotationMode.HIGHLIGHTING)this.handleHighlightModePointerDownEvent(pointerEvent);break;case"pointermove":if(this.isSelecting_)this.viewportScroller_.onMousemove(pointerEvent);if(this.annotationMode_===AnnotationMode.HIGHLIGHTING)this.handleHighlightModePointerMoveEvent(pointerEvent);break;case"pointerup":if(this.annotationMode_===AnnotationMode.HIGHLIGHTING)this.handleHighlightModePointerUpEvent(pointerEvent);break}};handleHighlightModePointerDownEvent=event=>{if(event.pointerType==="-ms-keyboard"){this.highlightModePluginPointerEvents_=[new event.constructor(event.type,event)];this.enableFreeFormHighlight(this.viewport_.getPageAtYScreenCoordinate_(event.clientY))}else{this.highlightModePluginPointerEvents_=[event]}};handleHighlightModePointerMoveEvent=event=>{if(event.pointerType==="-ms-keyboard"){this.highlightModePluginPointerEvents_.push(new event.constructor(event.type,event))}else{this.highlightModePluginPointerEvents_.push(event)}};handleHighlightModePointerUpEvent=()=>{this.highlightModePluginPointerEvents_=[]};logDiagnosticsEventForFullPagePDF=eventId=>{if(!this.isPdfEmbedded_&&!this.isPrintPreview_){this.metrics.logDiagnosticsEvent(eventId)}}}class ContentController{constructor(){}beforeZoom(){}afterZoom(){}rotateClockwise(){}rotateCounterClockwise(){}goToPage(page_index){}print(){}save(requireResult){}share(){}}class PluginController extends ContentController{constructor(plugin,viewer,viewport){super();this.plugin_=plugin;this.viewer_=viewer;this.viewport_=viewport;this.unseasonedPlugin_=null;this.unseasonedDelayedMessages_=null;this.renderIteration_=0;this.pendingTokens_=new Map;this.plugin_.addEventListener("message",(e=>this.handlePluginMessage_(e)),false);if(!this.plugin_.postMessage){this.unseasonedPlugin_=this.plugin_;this.unseasonedDelayedMessages_=[];this.unseasonedPlugin_.postMessage=(message,transfer)=>{this.unseasonedDelayedMessages_.push({message:message,transfer:transfer})}}}isUnseasonedPlugin(){return this.unseasonedPlugin_!==null}beforeZoom(){if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){if(!this.viewport_.zoomInProcess_){this.postMessage({type:"stopScrolling"});this.viewport_.zoomInProcess_=true}}else{this.postMessage({type:"stopScrolling"})}if(this.viewport_.pinchPhase===Viewport.PinchPhase.PINCH_START){this.viewer_.pendingZoomAnnouncement_=true;const position=this.viewport_.position;const zoom=this.viewport_.getZoom();const pinchPhase=this.viewport_.pinchPhase;this.postMessage({type:"viewport",userInitiated:true,zoom:zoom,xOffset:position.x,yOffset:position.y,pinchPhase:pinchPhase,isFitToChanged:this.viewport_.isFitToChanged,fitToState:this.viewport_.fittingType})}}afterZoom(){const position=this.viewport_.position;const zoom=this.viewport_.getZoom();const pinchVector=this.viewport_.pinchPanVector||{x:0,y:0};const pinchCenter=this.viewport_.pinchCenter||{x:0,y:0};const pinchPhase=this.viewport_.pinchPhase;this.renderIteration_+=1;if(this.viewer_.pendingZoomAnnouncement_&&(pinchPhase===Viewport.PinchPhase.PINCH_END||pinchPhase===Viewport.PinchPhase.PINCH_NONE)){this.viewer_.dispatchViewerEventToPdfUIAdaptor_("zoom-changed",{isZoomedIn:this.viewport_.lastZoomState_===Viewport.ZoomState.ZOOM_IN,zoomedValue:Math.round(this.viewport_.getZoom()*100)});this.viewer_.pendingZoomAnnouncement_=false}this.postMessage({type:"viewport",renderIteration:this.renderIteration_,userInitiated:this.viewer_.isUserInitiatedEvent_,zoom:zoom,xOffset:position.x,yOffset:position.y,pinchPhase:pinchPhase,pinchX:pinchCenter.x,pinchY:pinchCenter.y,pinchVectorX:pinchVector.x,pinchVectorY:pinchVector.y,isFitToChanged:this.viewport_.isFitToChanged,fitToState:this.viewport_.fittingType})}getNamedDestination(destination){this.postMessage({type:"getNamedDestination",namedDestination:destination})}postMessage(message){if(this.plugin_&&this.plugin_.postMessage){this.plugin_.postMessage(message)}}rotateClockwise(){this.postMessage({type:"rotateClockwise"})}goToPage(page_index){this.viewport_.goToPage(page_index);this.postMessage({type:"changePage",selectedPageIndex:page_index})}rotateCounterClockwise(){this.postMessage({type:"rotateCounterclockwise"})}print(){this.postMessage({type:"print"})}save(requireResult){const resolver=new PromiseResolver;const newToken=createToken();this.pendingTokens_.set(newToken,resolver);this.postMessage({type:"save",token:newToken,force:requireResult});return resolver.promise}share(){const resolver=new PromiseResolver;const newToken=createToken();this.pendingTokens_.set(newToken,resolver);this.postMessage({type:"share",token:newToken});return resolver.promise}bindUnseasonedMessageHandler(port){assert(this.unseasonedDelayedMessages_!==null);const delayedMessages=this.unseasonedDelayedMessages_;this.unseasonedDelayedMessages_=null;this.unseasonedPlugin_.postMessage=port.postMessage.bind(port);port.onmessage=e=>this.handlePluginMessage_(e);for(const{message:message,transfer:transfer}of delayedMessages){this.unseasonedPlugin_.postMessage(message,transfer)}}handlePluginMessage_(message){switch(message.data.type.toString()){case"renderIterationMessage":if(!loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){break}if(message.data.renderDone){if(message.data.renderId===this.renderIteration_){this.viewer_.handleRenderUpdate()}}else if(message.data.position&&message.data.zoom){this.viewer_.updateLayoutContainer_(message.data.position,message.data.zoom)}break;case"colorSchemeChanged":this.viewer_.overlayController_.highContrastModeChanged(message.data.forcedColorEnabled,message.data.textColor);break;case"beep":this.viewer_.handleBeep();break;case"setFitToView":this.viewer_.setFitToView(message.data);break;case"updateFindBarVisibility":this.viewer_.updateFindBarVisibility(message.data);break;case"disablePrinting":let isPolicyRestriction=false;if("isEnterprisePolicy"in message.data){isPolicyRestriction=message.data.isEnterprisePolicy}this.viewer_.dispatchViewerEventToPdfUIAdaptor_("disable-print",{isEnterprisePolicyRestriction:isPolicyRestriction});break;case"disableShare":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("disable-share",{isShareDisabled:true});break;case"createHighlightFromSelection":this.viewer_.handleCreateHighlight(message.data.a,message.data.r,message.data.g,message.data.b);break;case"changeHighlightColor":this.viewer_.handleChangeHighlightColor(message.data.a,message.data.r,message.data.g,message.data.b);break;case"deleteHighlight":this.viewer_.handleDeleteHighlight();break;case"documentDimensions":this.viewer_.setDocumentDimensions(message.data);if(loadTimeData.getBoolean("pdfFastScrollAsIsZoomEnabled")){this.plugin_.setAttribute("data-docheight",message.data.height);this.plugin_.setAttribute("data-docwidth",message.data.width)}if(this.viewer_.overlayController_.overlaysActivated){this.viewer_.overlayController_.documentDimensionsChanged()}this.viewer_.updateReadAloudMenu_();break;case"showTextNote":this.viewer_.handleTextNoteData(message.data);break;case"setTextNotePreviewProperties":this.viewer_.handleTextNotePreviewData(message.data);break;case"email":const href="mailto:"+message.data.to+"?cc="+message.data.cc+"&bcc="+message.data.bcc+"&subject="+message.data.subject+"&body="+message.data.body;this.viewer_.handleNavigate(href,WindowOpenDisposition.CURRENT_TAB);break;case"getPassword":this.viewer_.handlePasswordRequest();break;case"getSelectedTextReply":this.viewer_.handleSelectedTextReply(message.data.selectedText);break;case"goToPage":this.viewport_.goToPage(message.data.page);break;case"gesture":message.data.gesture.detail.center=this.viewport_.pluginToFrameCoordinate(message.data.gesture.detail.center);this.viewport_.dispatchGesture(message.data.gesture);break;case"pointerEvent":this.viewer_.handlePointerEventFromPlugin(message.data.detail);break;case"loadProgress":this.viewer_.updateProgress(message.data.progress,message.data.errorType);break;case"navigate":this.viewer_.handleNavigate(message.data.url,message.data.disposition);break;case"navigateToDestination":const destinationData=message.data;this.viewer_.handleNavigateToDestination_(destinationData.page,destinationData.x,destinationData.y,destinationData.zoom);return;case"printPreviewLoaded":this.viewer_.handlePrintPreviewLoaded();break;case"setScrollPosition":this.viewport_.scrollTo(message.data);break;case"scrollBy":this.viewport_.scrollBy(message.data);break;case"metadata":this.viewer_.setDocumentTitle(message.data.title);this.viewer_.SetToolbarState();break;case"updateMetadata":let decodedURI=this.viewer_.originalUrl_;try{decodedURI=decodeURI(this.viewer_.originalUrl_)}catch{this.viewer_.metrics.onDecodeUriFailed()}if(this.viewer_.IsLocalPDF(this.viewer_.originalUrl_)){decodedURI=decodedURI.substring(8,this.viewer_.originalUrl_.length)}const documentProperties={filename:getFilenameFromURL(this.viewer_.originalUrl_),filesize:message.data.file_size_bytes,title:message.data.title,author:message.data.author,subject:message.data.subject,keywords:message.data.keywords,createdOn:message.data.creation_date,modifiedOn:message.data.modification_date,creator:message.data.creator,producer:message.data.producer,version:message.data.pdf_version,location:decodedURI,pageCount:this.viewport_.pageCount,pageSize:message.data.page_size,fastWebView:message.data.is_linearized};this.viewer_.dispatchViewerEventToPdfUIAdaptor_("update-document-properties",documentProperties);break;case"setIsSelecting":this.viewer_.setIsSelecting(message.data.isSelecting);break;case"getNamedDestinationReply":this.viewer_.paramsParser_.onNamedDestinationReceived(message.data.pageNumber);break;case"formFocusChange":this.viewer_.setIsFormFieldFocused(message.data.focused);break;case"saveData":this.saveData_(message.data);break;case"shareData":this.shareData_(message.data);break;case"setHasEdits":this.viewer_.hasEdits_=true;if(loadTimeData.getBoolean("pdfSavingEnabled")){chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(true)}this.viewer_.dispatchViewerEventToPdfUIAdaptor_("disable-save",{isDisabled:false});this.viewer_.setDocumentTitleDirty(true);this.viewer_.sendScriptingMessage_({type:"hasEdits"});break;case"consumeSaveToken":const resolver=this.pendingTokens_.get(message.data.token);if(!this.pendingTokens_.delete(message.data.token)){throw new Error("Internal error: save token not found.")}resolver.resolve(null);break;case"setMIPPermissionData":this.viewer_.setDocumentPermissions(message.data);break;case"inkStrokesAdded":this.viewer_.overlayController_.removeWetInk(message.data.inkPageNumber,message.data.inkStrokesAddedResult,message.data.inkStrokeIdList);this.viewer_.dispatchViewerEventToPdfUIAdaptor_("ink-stroke-dried",{success:message.data.inkStrokesAddedResult});break;case"freeTextAdded":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("free-text-dried",{pageNumber:message.data.pageNumber,freeTextId:message.data.freeTextId,success:message.data.freeTextAddedResult});break;case"showEditableFreeText":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("show-editable-free-text",message.data);break;case"showNewFreeTextAt":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("show-add-free-text-box",{pageNumber:message.data.pageNumber,left:message.data.pageX,top:message.data.pageY,isRotated:true});break;case"showAddFreeTextBox":const pageNumber=this.viewport_.findPageForPoint(message.data.x,message.data.y);if(pageNumber===-1){throw new Error(`Point not on any PDF Page. Point coordinates: ${message.data.x}, ${message.data.y}`)}this.viewer_.dispatchViewerEventToPdfUIAdaptor_("show-add-free-text-box",{pageNumber:pageNumber,left:message.data.x-this.viewport_.getPageInsetDimensions(pageNumber).x,top:message.data.y-this.viewport_.getPageInsetDimensions(pageNumber).y});break;case"freeTextEditsSaved":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("free-text-dried",{pageNumber:message.data.pageNumber,freeTextId:message.data.freeTextId,success:message.data.freeTextEditResult});break;case"setDocumentPermissionData":this.viewer_.setDocumentPermissions(message.data);break;case"setDocFocus":if(message.data.docHasFocus){this.viewer_.updateEmbedBorder_();this.viewer_.embedBorder_.style.visibility="visible"}else{this.viewer_.embedBorder_.style.visibility="hidden"}break;case"onSignInSuccess":this.viewer_.onSignInSuccess();break;case"touchSelectionOccurred":this.viewer_.sendScriptingMessage_({type:"touchSelectionOccurred"});return;case"setBookmarkData":this.viewer_.setBookmarks(message.data.bookmarkData);return;case"setCaretModeEnabled":this.viewer_.setCaretModeEnabled(message.data.isCaretModeEnabled);break;case"updateCaretAttributes":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("update-caret-attributes",{caretAttributes:{blinkInterval:message.data.caretBlinkInterval}});break;case"setCaretVisibility":this.viewer_.dispatchViewerEventToPdfUIAdaptor_("set-caret-visibility",{isCaretVisible:message.data.caretVisible});break;case"updateCaretPosition":this.viewer_.handleUpdateCaretPosition({startX:message.data.x,startY:message.data.y,endX:message.data.x2,endY:message.data.y2});break;case"pluginCrashMessage":this.viewer_.handlePluginCrash();break;case"viewRecoveryInfo":this.viewer_.handleViewRecovery(message.data);break;case"digSigIdentified":this.viewer_.handleDigSigIdentified();break;case"showDigsigInfobar":this.viewer_.showDigsigInfobar(message.data.allSignStatus);break;case"signerInfo":this.viewer_.populateSignerInfoList(message.data.signerInfoList);break;case"enable-free-form-highlight":if(this.viewer_.overlayController_.isInitialized&&this.viewer_.annotationMode_===AnnotationMode.HIGHLIGHTING){const pageNumber=this.viewport_.findPageForPoint(message.data.x,message.data.y);this.viewer_.enableFreeFormHighlight(pageNumber)}break;case"setThumbnail":const array=new Uint8ClampedArray(message.data.imageData);const imageData=new ImageData(array,message.data.width);this.viewer_.setThumbnail_(imageData,message.data.page_index);break;case"clearThumbnailCache":this.viewer_.clearThumbnailCache_();break;case"setNewViewerFeatureEnabledStatesData":this.viewer_.setNewViewerFeatureEnabledStates(message.data);this.viewer_.updateReadAloudMenu_();break;case"sendKeyEvent":const keyEvent=DeserializeKeyEvent(message.data.keyEvent);keyEvent.fromPlugin=true;this.viewer_.handleKeyEvent_(keyEvent);return;case"focusChange":if(message.data.focus){this.viewer_.onFocus_()}else{this.viewer_.onBlur_()}break}}checkForPDFMarker(bufView){const limit=bufView.length-3;for(let i=0;i
{}));resolver.reject("No data");return}const MIN_FILE_SIZE="%PDF1.0".length;let MAX_FILE_SIZE;if(loadTimeData.getBoolean("pdfSaveLimitEnabled")){MAX_FILE_SIZE=2*1e3*1e3*1e3}else{MAX_FILE_SIZE=100*1e3*1e3}const buffer=messageData.dataToSave;const bufView=new Uint8Array(buffer);if(bufView.length>MAX_FILE_SIZE){this.viewer_.metrics.onSaveFail(this.viewer_.hasEdits_);this.viewer_.pluginController_.postMessage({type:"recordSaveStatus",status:false});throw new Error(`File too large to be saved: ${bufView.length} bytes.`)}if(bufView.length
{}));resolver.reject("No data");return}const MIN_FILE_SIZE="%PDF1.0".length;const MAX_FILE_SIZE=25*1e3*1e3;const buffer=messageData.dataToShare;const bufView=new Uint8Array(buffer);if(bufView.length>MAX_FILE_SIZE){throw new Error(`File size exceeds the PDF share limit of 25MB`)}if(bufView.length
Teruskan....
Tidak ada komentar:
Posting Komentar
Posting Lebih Baru
Posting Lama
Beranda
Langganan:
Posting Komentar (Atom)
Body cet buat blog
Membuat Tombol Menu
Membuat Tombol Menu untuk membuat tombol menu, mungkin anda bisa menoong dari site ini.......... https://free-css-menu.com/css-submit-button...
AKSELELATOR DURIDWANGURUNATFKAR | drAPACEU
https://apache.org/index.html#projects-list
F-DROID 2025
f-droid-org.duridwancijag.ong 2025
Tidak ada komentar:
Posting Komentar