Merge pull request #7592 from timvandermeij/revert

Revert the commits from pull request #7586 for causing addon issues
This commit is contained in:
Tim van der Meij 2016-09-03 20:42:21 +02:00 committed by GitHub
commit 31f6180a08
4 changed files with 127 additions and 141 deletions

View File

@ -94,10 +94,6 @@
"type": "boolean", "type": "boolean",
"description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.", "description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.",
"default": false "default": false
},
"enhanceTextSelection": {
"type": "boolean",
"default": false
} }
} }
} }

View File

@ -101,6 +101,7 @@ var SCALE_SELECT_CONTAINER_PADDING = 8;
var SCALE_SELECT_PADDING = 22; var SCALE_SELECT_PADDING = 22;
var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
var ENHANCE_TEXT_SELECTION = false;
function configure(PDFJS) { function configure(PDFJS) {
PDFJS.imageResourcesPath = './images/'; PDFJS.imageResourcesPath = './images/';
@ -176,21 +177,137 @@ var PDFViewerApplication = {
preferencePdfBugEnabled: false, preferencePdfBugEnabled: false,
preferenceShowPreviousViewOnLoad: true, preferenceShowPreviousViewOnLoad: true,
preferenceDefaultZoomValue: '', preferenceDefaultZoomValue: '',
preferenceEnhanceTextSelection: false,
isViewerEmbedded: (window.parent !== window), isViewerEmbedded: (window.parent !== window),
url: '', url: '',
externalServices: DefaultExernalServices, externalServices: DefaultExernalServices,
// called once when the document is loaded // called once when the document is loaded
initialize: function pdfViewInitialize(appConfig) { initialize: function pdfViewInitialize(appConfig) {
var self = this; configure(pdfjsLib.PDFJS);
var PDFJS = pdfjsLib.PDFJS; this.appConfig = appConfig;
var eventBus = appConfig.eventBus || getGlobalEventBus();
this.eventBus = eventBus;
this.bindEvents();
var pdfRenderingQueue = new PDFRenderingQueue();
pdfRenderingQueue.onIdle = this.cleanup.bind(this);
this.pdfRenderingQueue = pdfRenderingQueue;
var pdfLinkService = new PDFLinkService({
eventBus: eventBus
});
this.pdfLinkService = pdfLinkService;
var downloadManager = this.externalServices.createDownloadManager();
this.downloadManager = downloadManager;
var container = appConfig.mainContainer;
var viewer = appConfig.viewerContainer;
this.pdfViewer = new PDFViewer({
container: container,
viewer: viewer,
eventBus: eventBus,
renderingQueue: pdfRenderingQueue,
linkService: pdfLinkService,
downloadManager: downloadManager,
enhanceTextSelection: ENHANCE_TEXT_SELECTION,
});
pdfRenderingQueue.setViewer(this.pdfViewer);
pdfLinkService.setViewer(this.pdfViewer);
var thumbnailContainer = appConfig.sidebar.thumbnailView;
this.pdfThumbnailViewer = new PDFThumbnailViewer({
container: thumbnailContainer,
renderingQueue: pdfRenderingQueue,
linkService: pdfLinkService
});
pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer);
Preferences.initialize(); Preferences.initialize();
this.preferences = Preferences; this.preferences = Preferences;
// Fetch the `Preferences` first, so that they can be used below when the
// various viewer components are initialized. this.pdfHistory = new PDFHistory({
var preferencesPromise = Promise.all([ linkService: pdfLinkService,
eventBus: this.eventBus
});
pdfLinkService.setHistory(this.pdfHistory);
this.findController = new PDFFindController({
pdfViewer: this.pdfViewer
});
this.findController.onUpdateResultsCount = function (matchCount) {
if (this.supportsIntegratedFind) {
return;
}
this.findBar.updateResultsCount(matchCount);
}.bind(this);
this.findController.onUpdateState = function (state, previous, matchCount) {
if (this.supportsIntegratedFind) {
this.externalServices.updateFindControlState(
{result: state, findPrevious: previous});
} else {
this.findBar.updateUIState(state, previous, matchCount);
}
}.bind(this);
this.pdfViewer.setFindController(this.findController);
// FIXME better PDFFindBar constructor parameters
var findBarConfig = Object.create(appConfig.findBar);
findBarConfig.findController = this.findController;
findBarConfig.eventBus = this.eventBus;
this.findBar = new PDFFindBar(findBarConfig);
this.overlayManager = OverlayManager;
this.handTool = new HandTool({
container: container,
eventBus: this.eventBus,
});
this.pdfDocumentProperties =
new PDFDocumentProperties(appConfig.documentProperties);
this.secondaryToolbar =
new SecondaryToolbar(appConfig.secondaryToolbar, eventBus);
if (this.supportsFullscreen) {
this.pdfPresentationMode = new PDFPresentationMode({
container: container,
viewer: viewer,
pdfViewer: this.pdfViewer,
eventBus: this.eventBus,
contextMenuItems: appConfig.fullscreen
});
}
this.passwordPrompt = new PasswordPrompt(appConfig.passwordOverlay);
this.pdfOutlineViewer = new PDFOutlineViewer({
container: appConfig.sidebar.outlineView,
eventBus: this.eventBus,
linkService: pdfLinkService,
});
this.pdfAttachmentViewer = new PDFAttachmentViewer({
container: appConfig.sidebar.attachmentsView,
eventBus: this.eventBus,
downloadManager: downloadManager
});
// FIXME better PDFSidebar constructor parameters
var sidebarConfig = Object.create(appConfig.sidebar);
sidebarConfig.pdfViewer = this.pdfViewer;
sidebarConfig.pdfThumbnailViewer = this.pdfThumbnailViewer;
sidebarConfig.pdfOutlineViewer = this.pdfOutlineViewer;
sidebarConfig.eventBus = this.eventBus;
this.pdfSidebar = new PDFSidebar(sidebarConfig);
this.pdfSidebar.onToggled = this.forceRendering.bind(this);
var self = this;
var PDFJS = pdfjsLib.PDFJS;
var initializedPromise = Promise.all([
Preferences.get('enableWebGL').then(function resolved(value) { Preferences.get('enableWebGL').then(function resolved(value) {
PDFJS.disableWebGL = !value; PDFJS.disableWebGL = !value;
}), }),
@ -206,9 +323,6 @@ var PDFViewerApplication = {
Preferences.get('defaultZoomValue').then(function resolved(value) { Preferences.get('defaultZoomValue').then(function resolved(value) {
self.preferenceDefaultZoomValue = value; self.preferenceDefaultZoomValue = value;
}), }),
Preferences.get('enhanceTextSelection').then(function resolved(value) {
self.preferenceEnhanceTextSelection = value;
}),
Preferences.get('disableTextLayer').then(function resolved(value) { Preferences.get('disableTextLayer').then(function resolved(value) {
if (PDFJS.disableTextLayer === true) { if (PDFJS.disableTextLayer === true) {
return; return;
@ -248,129 +362,6 @@ var PDFViewerApplication = {
// TODO move more preferences and other async stuff here // TODO move more preferences and other async stuff here
]).catch(function (reason) { }); ]).catch(function (reason) { });
var initializedPromise = preferencesPromise.then(function () {
configure(pdfjsLib.PDFJS);
this.appConfig = appConfig;
var eventBus = appConfig.eventBus || getGlobalEventBus();
this.eventBus = eventBus;
this.bindEvents();
var pdfRenderingQueue = new PDFRenderingQueue();
pdfRenderingQueue.onIdle = this.cleanup.bind(this);
this.pdfRenderingQueue = pdfRenderingQueue;
var pdfLinkService = new PDFLinkService({
eventBus: eventBus
});
this.pdfLinkService = pdfLinkService;
var downloadManager = this.externalServices.createDownloadManager();
this.downloadManager = downloadManager;
var container = appConfig.mainContainer;
var viewer = appConfig.viewerContainer;
this.pdfViewer = new PDFViewer({
container: container,
viewer: viewer,
eventBus: eventBus,
renderingQueue: pdfRenderingQueue,
linkService: pdfLinkService,
downloadManager: downloadManager,
enhanceTextSelection: this.preferenceEnhanceTextSelection,
});
pdfRenderingQueue.setViewer(this.pdfViewer);
pdfLinkService.setViewer(this.pdfViewer);
var thumbnailContainer = appConfig.sidebar.thumbnailView;
this.pdfThumbnailViewer = new PDFThumbnailViewer({
container: thumbnailContainer,
renderingQueue: pdfRenderingQueue,
linkService: pdfLinkService
});
pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer);
this.pdfHistory = new PDFHistory({
linkService: pdfLinkService,
eventBus: this.eventBus
});
pdfLinkService.setHistory(this.pdfHistory);
this.findController = new PDFFindController({
pdfViewer: this.pdfViewer
});
this.findController.onUpdateResultsCount = function (matchCount) {
if (this.supportsIntegratedFind) {
return;
}
this.findBar.updateResultsCount(matchCount);
}.bind(this);
this.findController.onUpdateState = function (state, previous,
matchCount) {
if (this.supportsIntegratedFind) {
this.externalServices.updateFindControlState(
{result: state, findPrevious: previous});
} else {
this.findBar.updateUIState(state, previous, matchCount);
}
}.bind(this);
this.pdfViewer.setFindController(this.findController);
// FIXME better PDFFindBar constructor parameters
var findBarConfig = Object.create(appConfig.findBar);
findBarConfig.findController = this.findController;
findBarConfig.eventBus = this.eventBus;
this.findBar = new PDFFindBar(findBarConfig);
this.overlayManager = OverlayManager;
this.handTool = new HandTool({
container: container,
eventBus: this.eventBus,
});
this.pdfDocumentProperties =
new PDFDocumentProperties(appConfig.documentProperties);
this.secondaryToolbar =
new SecondaryToolbar(appConfig.secondaryToolbar, eventBus);
if (this.supportsFullscreen) {
this.pdfPresentationMode = new PDFPresentationMode({
container: container,
viewer: viewer,
pdfViewer: this.pdfViewer,
eventBus: this.eventBus,
contextMenuItems: appConfig.fullscreen
});
}
this.passwordPrompt = new PasswordPrompt(appConfig.passwordOverlay);
this.pdfOutlineViewer = new PDFOutlineViewer({
container: appConfig.sidebar.outlineView,
eventBus: this.eventBus,
linkService: pdfLinkService,
});
this.pdfAttachmentViewer = new PDFAttachmentViewer({
container: appConfig.sidebar.attachmentsView,
eventBus: this.eventBus,
downloadManager: downloadManager
});
// FIXME better PDFSidebar constructor parameters
var sidebarConfig = Object.create(appConfig.sidebar);
sidebarConfig.pdfViewer = this.pdfViewer;
sidebarConfig.pdfThumbnailViewer = this.pdfThumbnailViewer;
sidebarConfig.pdfOutlineViewer = this.pdfOutlineViewer;
sidebarConfig.eventBus = this.eventBus;
this.pdfSidebar = new PDFSidebar(sidebarConfig);
this.pdfSidebar.onToggled = this.forceRendering.bind(this);
}.bind(this));
return initializedPromise.then(function () { return initializedPromise.then(function () {
if (self.isViewerEmbedded && !PDFJS.isExternalLinkTargetSet()) { if (self.isViewerEmbedded && !PDFJS.isExternalLinkTargetSet()) {
// Prevent external links from "replacing" the viewer, // Prevent external links from "replacing" the viewer,

View File

@ -11,6 +11,5 @@
"disableFontFace": false, "disableFontFace": false,
"disableTextLayer": false, "disableTextLayer": false,
"useOnlyCssZoom": false, "useOnlyCssZoom": false,
"externalLinkTarget": 0, "externalLinkTarget": 0
"enhanceTextSelection": false }
}

View File

@ -36,7 +36,7 @@
* @property {PageViewport} viewport - The viewport of the text layer. * @property {PageViewport} viewport - The viewport of the text layer.
* @property {PDFFindController} findController * @property {PDFFindController} findController
* @property {boolean} enhanceTextSelection - Option to turn on improved * @property {boolean} enhanceTextSelection - Option to turn on improved
* text selection. The default value is `false`. * text selection.
*/ */
/** /**
@ -59,7 +59,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
this.textDivs = []; this.textDivs = [];
this.findController = options.findController || null; this.findController = options.findController || null;
this.textLayerRenderTask = null; this.textLayerRenderTask = null;
this.enhanceTextSelection = options.enhanceTextSelection || false; this.enhanceTextSelection = options.enhanceTextSelection;
this._bindMouse(); this._bindMouse();
} }