Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: safari/ext/popup.js

Issue 6476185965953024: Adjust the size of the bubble to the size of its content in Safari (Closed)
Patch Set: Rebased and fixed some issues Created Jan. 15, 2014, 5:10 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « metadata.safari ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 })();
OLDNEW
« no previous file with comments | « metadata.safari ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld