17 changed files with 351 additions and 107 deletions
@ -0,0 +1,3 @@ |
|||||||
|
resource pdf.js content/ |
||||||
|
component {d0c5195d-e798-49d4-b1d3-9324328b2291} components/PdfStreamConverter.js |
||||||
|
contract @mozilla.org/streamconv;1?from=application/pdf&to=*/* {d0c5195d-e798-49d4-b1d3-9324328b2291} |
@ -1,27 +0,0 @@ |
|||||||
<?xml version="1.0"?> |
|
||||||
|
|
||||||
#filter substitution |
|
||||||
|
|
||||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
|
||||||
xmlns:em="http://www.mozilla.org/2004/em-rdf#"> |
|
||||||
|
|
||||||
<Description about="urn:mozilla:install-manifest"> |
|
||||||
<em:id>uriloader@pdf.js</em:id> |
|
||||||
<!-- PDFJS_LOCALIZED_METADATA --> |
|
||||||
<em:name>PDF Viewer</em:name> |
|
||||||
<em:version>PDFJSSCRIPT_VERSION</em:version> |
|
||||||
<em:targetApplication> |
|
||||||
<Description> |
|
||||||
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> |
|
||||||
<em:minVersion>@FIREFOX_VERSION@</em:minVersion> |
|
||||||
<em:maxVersion>@FIREFOX_VERSION@</em:maxVersion> |
|
||||||
</Description> |
|
||||||
</em:targetApplication> |
|
||||||
<em:strictCompatibility>true</em:strictCompatibility> |
|
||||||
<em:bootstrap>true</em:bootstrap> |
|
||||||
<em:creator>Mozilla</em:creator> |
|
||||||
<em:description>Uses HTML5 to display PDF files directly in Firefox.</em:description> |
|
||||||
<em:homepageURL>https://support.mozilla.org/kb/Opening%20PDF%20files%20within%20Firefox</em:homepageURL> |
|
||||||
<em:type>2</em:type> |
|
||||||
</Description> |
|
||||||
</RDF> |
|
@ -0,0 +1,8 @@ |
|||||||
|
<em:localized> |
||||||
|
<Description> |
||||||
|
<em:locale>cs</em:locale> |
||||||
|
<em:name>PDF Viewer</em:name> |
||||||
|
<em:description>Používá HTML5 pro zobrazení PDF souborů přímo ve Firefoxu.</em:description> |
||||||
|
</Description> |
||||||
|
</em:localized> |
||||||
|
|
@ -0,0 +1,45 @@ |
|||||||
|
bookmark.title=Aktuální zobrazení(zkopírovat nebo otevřít v novém okně) |
||||||
|
previous.title=Předchozí stránka |
||||||
|
next.title=Další stránka |
||||||
|
print.title=Tisk |
||||||
|
download.title=Stáhnout |
||||||
|
zoom_out.title=Zmenšit |
||||||
|
zoom_in.title=Zvětšit |
||||||
|
error_more_info=Více informací |
||||||
|
error_less_info=Méně informací |
||||||
|
error_close=Zavřít |
||||||
|
error_build=PDF.JS Build: {{build}} |
||||||
|
error_message=Zpráva:{{message}} |
||||||
|
error_stack=Stack:{{stack}} |
||||||
|
error_file=Soubor:{{file}} |
||||||
|
error_line=Řádek:{{line}} |
||||||
|
page_scale_width=Šířka stránky |
||||||
|
page_scale_fit=Stránka |
||||||
|
page_scale_auto=Automatické přibližení |
||||||
|
page_scale_actual=Skutečná velikost |
||||||
|
toggle_slider.title=Přepnout posuvník |
||||||
|
thumbs.title=Zobrazit náhledy |
||||||
|
outline.title=Zobrazit osnovu dokumentu |
||||||
|
loading=Načítám... {{percent}}% |
||||||
|
loading_error_indicator=Chyba |
||||||
|
loading_error=Došlo k chybě při načítání PDF. |
||||||
|
rendering_error=Došlo k chybě při vykreslování stránky. |
||||||
|
page_label=Stránka: |
||||||
|
page_of=z{{pageCount}} |
||||||
|
no_outline=Žádné osnovy k dispozici |
||||||
|
open_file.title=Otevřít soubor |
||||||
|
text_annotation_type=[{{type}}Anotace] |
||||||
|
toggle_slider_label=Přepnout posuvník |
||||||
|
thumbs_label=Náhledy |
||||||
|
outline_label=Přehled dokumentu |
||||||
|
bookmark_label=Aktuální zobrazení |
||||||
|
previous_label=Předchozí |
||||||
|
next_label=Další |
||||||
|
print_label=Tisk |
||||||
|
download_label=Stáhnout |
||||||
|
zoom_out_label=Zmenšit |
||||||
|
zoom_in_label=Přiblížit |
||||||
|
zoom.title=Zvětšit |
||||||
|
thumb_page_title=Stránka{{page}} |
||||||
|
thumb_page_canvas=Náhled stránky {{page}} |
||||||
|
request_password=PDF je chráněn heslem: |
@ -0,0 +1,21 @@ |
|||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
DEPTH = ../../../.. |
||||||
|
topsrcdir = @top_srcdir@ |
||||||
|
srcdir = @srcdir@ |
||||||
|
VPATH = @srcdir@ |
||||||
|
relativesrcdir = browser/extensions/pdfjs/test |
||||||
|
|
||||||
|
include $(DEPTH)/config/autoconf.mk |
||||||
|
include $(topsrcdir)/config/rules.mk |
||||||
|
|
||||||
|
_BROWSER_TEST_FILES = \
|
||||||
|
head.js \
|
||||||
|
browser_pdfjs_main.js \
|
||||||
|
file_pdfjs_test.pdf \
|
||||||
|
$(NULL) |
||||||
|
|
||||||
|
libs:: $(_BROWSER_TEST_FILES) |
||||||
|
$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir) |
@ -0,0 +1,102 @@ |
|||||||
|
/* Any copyright is dedicated to the Public Domain. |
||||||
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
*/ |
||||||
|
|
||||||
|
const RELATIVE_DIR = "browser/extensions/pdfjs/test/"; |
||||||
|
const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR; |
||||||
|
|
||||||
|
function test() { |
||||||
|
waitForExplicitFinish(); |
||||||
|
|
||||||
|
var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf"); |
||||||
|
var newTabBrowser = gBrowser.getBrowserForTab(tab); |
||||||
|
newTabBrowser.addEventListener("pagechange", function onPageChange() { |
||||||
|
newTabBrowser.removeEventListener("pagechange", onPageChange, true); |
||||||
|
|
||||||
|
var document = newTabBrowser.contentDocument, |
||||||
|
window = newTabBrowser.contentWindow; |
||||||
|
|
||||||
|
//
|
||||||
|
// Overall sanity tests
|
||||||
|
//
|
||||||
|
ok(document.querySelector('div#viewer'), "document content has viewer UI"); |
||||||
|
ok('PDFJS' in window.wrappedJSObject, "window content has PDFJS object"); |
||||||
|
|
||||||
|
//
|
||||||
|
// Sidebar: open
|
||||||
|
//
|
||||||
|
var sidebar = document.querySelector('button#sidebarToggle'), |
||||||
|
outerContainer = document.querySelector('div#outerContainer'); |
||||||
|
|
||||||
|
sidebar.click(); |
||||||
|
ok(outerContainer.classList.contains('sidebarOpen'), 'sidebar opens on click'); |
||||||
|
|
||||||
|
// Thumbnails are created asynchronously - wait for them
|
||||||
|
waitForElement(document, 'canvas#thumbnail2', function(error) { |
||||||
|
if (error) |
||||||
|
finish(); |
||||||
|
|
||||||
|
//
|
||||||
|
// Page change from thumbnail click
|
||||||
|
//
|
||||||
|
var pageNumber = document.querySelector('input#pageNumber'); |
||||||
|
is(parseInt(pageNumber.value), 1, 'initial page is 1'); |
||||||
|
|
||||||
|
var thumbnail = document.querySelector('canvas#thumbnail2'); |
||||||
|
ok(thumbnail, 'thumbnail2 is available'); |
||||||
|
if (thumbnail) { |
||||||
|
thumbnail.click(); |
||||||
|
is(parseInt(pageNumber.value), 2, 'clicking on thumbnail changes page'); |
||||||
|
} |
||||||
|
|
||||||
|
//
|
||||||
|
// Sidebar: close
|
||||||
|
//
|
||||||
|
sidebar.click(); |
||||||
|
ok(!outerContainer.classList.contains('sidebarOpen'), 'sidebar closes on click'); |
||||||
|
|
||||||
|
//
|
||||||
|
// Page change from prev/next buttons
|
||||||
|
//
|
||||||
|
var prevPage = document.querySelector('button#previous'), |
||||||
|
nextPage = document.querySelector('button#next'); |
||||||
|
|
||||||
|
nextPage.click(); |
||||||
|
is(parseInt(pageNumber.value), 2, 'page increases after clicking on next'); |
||||||
|
|
||||||
|
prevPage.click(); |
||||||
|
is(parseInt(pageNumber.value), 1, 'page decreases after clicking on previous'); |
||||||
|
|
||||||
|
//
|
||||||
|
// Bookmark button
|
||||||
|
//
|
||||||
|
var viewBookmark = document.querySelector('a#viewBookmark'); |
||||||
|
viewBookmark.click(); |
||||||
|
ok(viewBookmark.href.length > 0, 'viewBookmark button has href'); |
||||||
|
|
||||||
|
//
|
||||||
|
// Zoom in/out
|
||||||
|
//
|
||||||
|
var zoomOut = document.querySelector('button.zoomOut'), |
||||||
|
zoomIn = document.querySelector('button.zoomIn'); |
||||||
|
|
||||||
|
// Zoom in
|
||||||
|
var oldWidth = document.querySelector('canvas#page1').width; |
||||||
|
zoomIn.click(); |
||||||
|
var newWidth = document.querySelector('canvas#page1').width; |
||||||
|
ok(oldWidth < newWidth, 'zooming in increases page width (old: '+oldWidth+', new: '+newWidth+')'); |
||||||
|
|
||||||
|
// Zoom out
|
||||||
|
var oldWidth = document.querySelector('canvas#page1').width; |
||||||
|
zoomOut.click(); |
||||||
|
var newWidth = document.querySelector('canvas#page1').width; |
||||||
|
ok(oldWidth > newWidth, 'zooming out decreases page width (old: '+oldWidth+', new: '+newWidth+')'); |
||||||
|
|
||||||
|
finish(); |
||||||
|
}); |
||||||
|
}, true, true); |
||||||
|
|
||||||
|
registerCleanupFunction(function() { |
||||||
|
gBrowser.removeTab(tab); |
||||||
|
}); |
||||||
|
} |
Binary file not shown.
@ -0,0 +1,21 @@ |
|||||||
|
// Waits for element 'el' to exist in the DOM of 'doc' before executing 'callback'
|
||||||
|
// Useful when elements are created asynchronously, e.g. after a Web Worker task
|
||||||
|
function waitForElement(doc, el, callback) { |
||||||
|
var time = 0, |
||||||
|
interval = 10, |
||||||
|
timeout = 5000; |
||||||
|
|
||||||
|
var checkEl = setInterval(function() { |
||||||
|
if (doc.querySelector(el)) { |
||||||
|
clearInterval(checkEl); |
||||||
|
if (callback) callback(); |
||||||
|
} |
||||||
|
|
||||||
|
time += interval; |
||||||
|
if (time > timeout) { |
||||||
|
ok(false, 'waitForElement timed out on element: '+el); |
||||||
|
clearInterval(checkEl); |
||||||
|
if (callback) callback(true); |
||||||
|
} |
||||||
|
}, interval); |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
http://www.mft-online.de/files/medizinerreport_2012.pdf |
@ -0,0 +1 @@ |
|||||||
|
http://www.lezarts.org/07oforhom/Faitsdivers/Hadopi/Le%20Rapport%20Hadopi,%20Intox.pdf |
Loading…
Reference in new issue