1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
async function waitForPdfJS(browser, url) {
await SpecialPowers.pushPrefEnv({
set: [["pdfjs.eventBusDispatchToDOM", true]],
});
// Runs tests after all "load" event handlers have fired off
let loadPromise = BrowserTestUtils.waitForContentEvent(
browser,
"documentloaded",
false,
null,
true
);
await SpecialPowers.spawn(browser, [url], contentUrl => {
content.location = contentUrl;
});
return loadPromise;
}
async function waitForPdfJSAnnotationLayer(browser, url) {
await SpecialPowers.pushPrefEnv({
set: [["pdfjs.eventBusDispatchToDOM", true]],
});
let loadPromise = BrowserTestUtils.waitForContentEvent(
browser,
"annotationlayerrendered",
false,
null,
true
);
await SpecialPowers.spawn(browser, [url], contentUrl => {
content.location = contentUrl;
});
return loadPromise;
}
function changeMimeHandler(preferredAction, alwaysAskBeforeHandling) {
let handlerService = Cc[
"@mozilla.org/uriloader/handler-service;1"
].getService(Ci.nsIHandlerService);
let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
let handlerInfo = mimeService.getFromTypeAndExtension(
"application/pdf",
"pdf"
);
var oldAction = [
handlerInfo.preferredAction,
handlerInfo.alwaysAskBeforeHandling,
];
// Change and save mime handler settings
handlerInfo.alwaysAskBeforeHandling = alwaysAskBeforeHandling;
handlerInfo.preferredAction = preferredAction;
handlerService.store(handlerInfo);
// Refresh data
handlerInfo = mimeService.getFromTypeAndExtension("application/pdf", "pdf");
// Test: Mime handler was updated
is(
handlerInfo.alwaysAskBeforeHandling,
alwaysAskBeforeHandling,
"always-ask prompt change successful"
);
is(
handlerInfo.preferredAction,
preferredAction,
"mime handler change successful"
);
return oldAction;
}
|