Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: chrome/browser/resources/pdf/pdf.js

Issue 169613005: Hookup print and save buttons in the out of process PDF plugin (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 (function() { 5 (function() {
6 6
7 <include src="../../../../ui/webui/resources/js/util.js"></include> 7 <include src="../../../../ui/webui/resources/js/util.js"></include>
8 <include src="viewport.js"></include> 8 <include src="viewport.js"></include>
9 9
10 // The plugin element is sized to fill the entire window and is set to be fixed 10 // The plugin element is sized to fill the entire window and is set to be fixed
(...skipping 14 matching lines...) Expand all
25 25
26 // The progress bar element. 26 // The progress bar element.
27 var viewerProgressBar; 27 var viewerProgressBar;
28 28
29 // The viewport object. 29 // The viewport object.
30 var viewport; 30 var viewport;
31 31
32 // The document dimensions. 32 // The document dimensions.
33 var documentDimensions; 33 var documentDimensions;
34 34
35 // Notify the plugin to print.
36 function print() {
37 plugin.postMessage({
38 type: 'print',
39 });
40 }
41
35 // Returns true if the fit-to-page button is enabled. 42 // Returns true if the fit-to-page button is enabled.
36 function isFitToPageEnabled() { 43 function isFitToPageEnabled() {
37 return $('fit-to-page-button').classList.contains('polymer-selected'); 44 return $('fit-to-page-button').classList.contains('polymer-selected');
38 } 45 }
39 46
40 function updateProgress(progress) { 47 function updateProgress(progress) {
41 viewerProgressBar.progress = progress; 48 viewerProgressBar.progress = progress;
42 if (progress == -1) { 49 if (progress == -1) {
43 // Document load failed. 50 // Document load failed.
44 sizer.style.display = 'none'; 51 sizer.style.display = 'none';
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 viewport = new Viewport(window, 107 viewport = new Viewport(window,
101 sizer, 108 sizer,
102 isFitToPageEnabled, 109 isFitToPageEnabled,
103 viewportChangedCallback); 110 viewportChangedCallback);
104 111
105 // Create the plugin object dynamically so we can set its src. 112 // Create the plugin object dynamically so we can set its src.
106 plugin = document.createElement('object'); 113 plugin = document.createElement('object');
107 plugin.id = 'plugin'; 114 plugin.id = 'plugin';
108 plugin.type = 'application/x-google-chrome-pdf'; 115 plugin.type = 'application/x-google-chrome-pdf';
109 plugin.addEventListener('message', handleMessage, false); 116 plugin.addEventListener('message', handleMessage, false);
110 // The pdf location is passed in the document url in the format: 117 // The pdf location is passed in stream details in the background page.
111 // http://<.../pdf.html>?<pdf location>. 118 var streamDetails = chrome.extension.getBackgroundPage().getStreamDetails();
112 var url = window.location.search.substring(1); 119 plugin.setAttribute('src', streamDetails.streamURL);
113 plugin.setAttribute('src', url);
114 document.body.appendChild(plugin); 120 document.body.appendChild(plugin);
115 121
116 // Setup the button event listeners. 122 // Setup the button event listeners.
117 $('fit-to-width-button').addEventListener('click', 123 $('fit-to-width-button').addEventListener('click',
118 viewport.fitToWidth.bind(viewport)); 124 viewport.fitToWidth.bind(viewport));
119 $('fit-to-page-button').addEventListener('click', 125 $('fit-to-page-button').addEventListener('click',
120 viewport.fitToPage.bind(viewport)); 126 viewport.fitToPage.bind(viewport));
121 $('zoom-in-button').addEventListener('click', 127 $('zoom-in-button').addEventListener('click',
122 viewport.zoomIn.bind(viewport)); 128 viewport.zoomIn.bind(viewport));
123 $('zoom-out-button').addEventListener('click', 129 $('zoom-out-button').addEventListener('click',
124 viewport.zoomOut.bind(viewport)); 130 viewport.zoomOut.bind(viewport));
131 $('save-button-link').href = streamDetails.originalURL;
132 $('print-button').addEventListener('click', print);
133
125 134
126 // Setup keyboard event listeners. 135 // Setup keyboard event listeners.
127 document.onkeydown = function(e) { 136 document.onkeydown = function(e) {
128 switch (e.keyCode) { 137 switch (e.keyCode) {
129 case 37: // Left arrow key. 138 case 37: // Left arrow key.
130 // Go to the previous page if there are no horizontal scrollbars. 139 // Go to the previous page if there are no horizontal scrollbars.
131 if (!viewport.documentHasScrollbars().x) { 140 if (!viewport.documentHasScrollbars().x) {
132 viewport.goToPage(viewport.getMostVisiblePage() - 1); 141 viewport.goToPage(viewport.getMostVisiblePage() - 1);
133 // Since we do the movement of the page 142 // Since we do the movement of the page
134 e.preventDefault(); 143 e.preventDefault();
(...skipping 20 matching lines...) Expand all
155 e.preventDefault(); 164 e.preventDefault();
156 } 165 }
157 return; 166 return;
158 } 167 }
159 }; 168 };
160 } 169 }
161 170
162 load(); 171 load();
163 172
164 })(); 173 })();
OLDNEW
« chrome/browser/resources/pdf/background.js ('K') | « chrome/browser/resources/pdf/index.in.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698