Left: | ||
Right: |
OLD | NEW |
---|---|
1 (function() | 1 (function() |
2 { | 2 { |
3 // Safari will load the popover once, and then show it everytime the icon is | 3 // Safari will load the popover once, and then show it everytime the icon is |
4 // clicked. While Chrome loads it everytime you click the icon. So in order to | 4 // clicked. While Chrome loads it everytime you click the icon. So in order to |
5 // force the same behavior in Safari, we are going to reload the page of the | 5 // force the same behavior in Safari, we are going to reload the page of the |
6 // bubble everytime it is shown. | 6 // bubble everytime it is shown. |
7 safari.application.addEventListener("popover", function() | 7 safari.application.addEventListener("popover", function() |
8 { | 8 { |
9 document.documentElement.style.display = "none"; | 9 document.documentElement.style.display = "none"; |
10 document.location.reload(); | 10 document.location.reload(); |
11 }, true); | 11 }, true); |
12 | 12 |
13 | |
14 // Safari doesn't adjust the size of the popover automatically to the size | |
15 // of its content, like when the ad counter is expanded/collapsed. So we add | |
16 // event listeners to do so. | |
17 var updateSize = function() | |
18 { | |
19 safari.self.width = document.body.offsetWidth; | |
20 safari.self.height = document.body.offsetHeight; | |
21 }; | |
22 | |
23 window.addEventListener("load", function() | |
24 { | |
25 updateSize(); | |
26 | |
27 if ("WebKitMutationObserver" in window) | |
Wladimir Palant
2014/01/16 07:55:59
We should go for the standardized name first, futu
Sebastian Noack
2014/01/16 11:00:31
Done.
| |
28 new WebKitMutationObserver(updateSize).observe(document, { | |
29 childList: true, attributes: true, | |
30 characterData: true, subtree: true | |
31 }); | |
32 else | |
33 document.addEventListener("DOMSubtreeModified", updateSize); | |
34 }); | |
35 | |
36 | |
13 // import ext into the javascript context of the popover. This code might fail , | 37 // import ext into the javascript context of the popover. This code might fail , |
14 // when the background page isn't ready yet. So it is important to put it belo w | 38 // when the background page isn't ready yet. So it is important to put it belo w |
15 // the reloading code above. | 39 // the reloading code above. |
16 var backgroundPage = safari.extension.globalPage.contentWindow; | 40 var backgroundPage = safari.extension.globalPage.contentWindow; |
17 ext = backgroundPage.ext; | 41 ext = backgroundPage.ext; |
18 TabMap = backgroundPage.TabMap; | 42 TabMap = backgroundPage.TabMap; |
19 })(); | 43 })(); |
OLD | NEW |