OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * @return {number} Width of a scrollbar in pixels | 8 * @return {number} Width of a scrollbar in pixels |
9 */ | 9 */ |
10 function getScrollbarWidth() { | 10 function getScrollbarWidth() { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 // element is sized to fill the entire window and is set to be fixed | 101 // element is sized to fill the entire window and is set to be fixed |
102 // positioning, acting as a viewport. The plugin renders into this viewport | 102 // positioning, acting as a viewport. The plugin renders into this viewport |
103 // according to the scroll position of the window. | 103 // according to the scroll position of the window. |
104 this.plugin_ = document.createElement('embed'); | 104 this.plugin_ = document.createElement('embed'); |
105 // NOTE: The plugin's 'id' field must be set to 'plugin' since | 105 // NOTE: The plugin's 'id' field must be set to 'plugin' since |
106 // chrome/renderer/printing/print_web_view_helper.cc actually references it. | 106 // chrome/renderer/printing/print_web_view_helper.cc actually references it. |
107 this.plugin_.id = 'plugin'; | 107 this.plugin_.id = 'plugin'; |
108 this.plugin_.type = 'application/x-google-chrome-pdf'; | 108 this.plugin_.type = 'application/x-google-chrome-pdf'; |
109 this.plugin_.addEventListener('message', this.handlePluginMessage_.bind(this), | 109 this.plugin_.addEventListener('message', this.handlePluginMessage_.bind(this), |
110 false); | 110 false); |
111 this.plugin_.style.height = | |
112 (window.innerHeight - this.toolbarHeight_) + 'px'; | |
113 this.plugin_.style.width = window.innerWidth + 'px'; | |
114 | 111 |
115 if (this.isMaterial_) | 112 if (this.isMaterial_) |
116 this.plugin_.setAttribute('is-material', ''); | 113 this.plugin_.setAttribute('is-material', ''); |
117 | 114 |
118 // Handle scripting messages from outside the extension that wish to interact | 115 // Handle scripting messages from outside the extension that wish to interact |
119 // with it. We also send a message indicating that extension has loaded and | 116 // with it. We also send a message indicating that extension has loaded and |
120 // is ready to receive messages. | 117 // is ready to receive messages. |
121 window.addEventListener('message', this.handleScriptingMessage.bind(this), | 118 window.addEventListener('message', this.handleScriptingMessage.bind(this), |
122 false); | 119 false); |
123 | 120 |
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 } else { | 546 } else { |
550 this.setZoomInProgress_ = false; | 547 this.setZoomInProgress_ = false; |
551 } | 548 } |
552 }, | 549 }, |
553 | 550 |
554 /** | 551 /** |
555 * @private | 552 * @private |
556 * A callback that's called after the viewport changes. | 553 * A callback that's called after the viewport changes. |
557 */ | 554 */ |
558 viewportChanged_: function() { | 555 viewportChanged_: function() { |
559 var hasScrollbars = this.viewport_.documentHasScrollbars(); | |
560 var scrollbarWidth = this.viewport_.scrollbarWidth; | |
561 var verticalScrollbarWidth = hasScrollbars.vertical ? scrollbarWidth : 0; | |
562 var horizontalScrollbarWidth = | |
563 hasScrollbars.horizontal ? scrollbarWidth : 0; | |
564 this.plugin_.style.width = | |
565 (window.innerWidth - verticalScrollbarWidth) + 'px'; | |
566 this.plugin_.style.height = (window.innerHeight - | |
567 horizontalScrollbarWidth - this.toolbarHeight_) + 'px'; | |
568 | |
569 if (!this.documentDimensions_) | 556 if (!this.documentDimensions_) |
570 return; | 557 return; |
571 | 558 |
572 // Update the buttons selected. | 559 // Update the buttons selected. |
573 $('fit-to-page-button').classList.remove('polymer-selected'); | 560 $('fit-to-page-button').classList.remove('polymer-selected'); |
574 $('fit-to-width-button').classList.remove('polymer-selected'); | 561 $('fit-to-width-button').classList.remove('polymer-selected'); |
575 if (this.viewport_.fittingType == Viewport.FittingType.FIT_TO_PAGE) { | 562 if (this.viewport_.fittingType == Viewport.FittingType.FIT_TO_PAGE) { |
576 $('fit-to-page-button').classList.add('polymer-selected'); | 563 $('fit-to-page-button').classList.add('polymer-selected'); |
577 } else if (this.viewport_.fittingType == | 564 } else if (this.viewport_.fittingType == |
578 Viewport.FittingType.FIT_TO_WIDTH) { | 565 Viewport.FittingType.FIT_TO_WIDTH) { |
579 $('fit-to-width-button').classList.add('polymer-selected'); | 566 $('fit-to-width-button').classList.add('polymer-selected'); |
580 } | 567 } |
581 | 568 |
582 // Offset the toolbar position so that it doesn't move if scrollbars appear. | 569 // Offset the toolbar position so that it doesn't move if scrollbars appear. |
| 570 var hasScrollbars = this.viewport_.documentHasScrollbars(); |
| 571 var scrollbarWidth = this.viewport_.scrollbarWidth; |
| 572 var verticalScrollbarWidth = hasScrollbars.vertical ? scrollbarWidth : 0; |
| 573 var horizontalScrollbarWidth = |
| 574 hasScrollbars.horizontal ? scrollbarWidth : 0; |
583 var toolbarRight = Math.max(PDFViewer.MIN_TOOLBAR_OFFSET, scrollbarWidth); | 575 var toolbarRight = Math.max(PDFViewer.MIN_TOOLBAR_OFFSET, scrollbarWidth); |
584 var toolbarBottom = Math.max(PDFViewer.MIN_TOOLBAR_OFFSET, scrollbarWidth); | 576 var toolbarBottom = Math.max(PDFViewer.MIN_TOOLBAR_OFFSET, scrollbarWidth); |
585 toolbarRight -= verticalScrollbarWidth; | 577 toolbarRight -= verticalScrollbarWidth; |
586 toolbarBottom -= horizontalScrollbarWidth; | 578 toolbarBottom -= horizontalScrollbarWidth; |
587 this.toolbar_.style.right = toolbarRight + 'px'; | 579 this.toolbar_.style.right = toolbarRight + 'px'; |
588 this.toolbar_.style.bottom = toolbarBottom + 'px'; | 580 this.toolbar_.style.bottom = toolbarBottom + 'px'; |
589 // Hide the toolbar if it doesn't fit in the viewport. | 581 // Hide the toolbar if it doesn't fit in the viewport. |
590 if (this.toolbar_.offsetLeft < 0 || this.toolbar_.offsetTop < 0) | 582 if (this.toolbar_.offsetLeft < 0 || this.toolbar_.offsetTop < 0) |
591 this.toolbar_.style.visibility = 'hidden'; | 583 this.toolbar_.style.visibility = 'hidden'; |
592 else | 584 else |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
742 * Each bookmark is an Object containing a: | 734 * Each bookmark is an Object containing a: |
743 * - title | 735 * - title |
744 * - page (optional) | 736 * - page (optional) |
745 * - array of children (themselves bookmarks) | 737 * - array of children (themselves bookmarks) |
746 * @type {Array} the top-level bookmarks of the PDF. | 738 * @type {Array} the top-level bookmarks of the PDF. |
747 */ | 739 */ |
748 get bookmarks() { | 740 get bookmarks() { |
749 return this.bookmarks_; | 741 return this.bookmarks_; |
750 } | 742 } |
751 }; | 743 }; |
OLD | NEW |