Index: safari/ext/popup.js |
diff --git a/safari/ext/popup.js b/safari/ext/popup.js |
deleted file mode 100644 |
index a10a4318ea3d13ef1529e6673166fedb4cf302d0..0000000000000000000000000000000000000000 |
--- a/safari/ext/popup.js |
+++ /dev/null |
@@ -1,101 +0,0 @@ |
-(function() |
-{ |
- // Safari doesn't adjust the size of the popover automatically to the size |
- // of its content, like when the ad counter is expanded/collapsed. So we add |
- // event listeners to do so. |
- var mayResize = true; |
- var resizingScheduled = false; |
- |
- var updateSize = function() |
- { |
- if (mayResize && !resizingScheduled) |
- { |
- setTimeout(function() |
- { |
- safari.self.width = document.body.scrollWidth; |
- safari.self.height = document.body.offsetHeight; |
- |
- resizingScheduled = false; |
- }, 0); |
- |
- resizingScheduled = true; |
- } |
- }; |
- |
- window.addEventListener("load", function() |
- { |
- updateSize(); |
- |
- var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; |
- if (MutationObserver) |
- { |
- new MutationObserver(updateSize).observe(document, { |
- childList: true, attributes: true, |
- characterData: true, subtree: true |
- }); |
- } |
- else |
- document.addEventListener("DOMSubtreeModified", updateSize); |
- }); |
- |
- // when using "white-space: nowrap", the overflown text overlaps the padding |
- // and neither clientWidth nor scrollWidth, we rely on when adjusting the size |
- // of the popover, inlcudes the overlapped area. So we have to use additional |
- // placeholders, in order to preserve padding. Since the dimensions of the |
- // popover are automatically correctly adjusted on Chrome, those placeholders |
- // would add extra empty space and therefore must only be rendered on Safari. |
- var style = document.createElement("style"); |
- style.textContent = ".safari-inline-block { display: inline-block; }"; |
- document.head.appendChild(style); |
- |
- |
- // Safari will load the popover once, and then show it everytime the icon is |
- // clicked. While Chrome loads it everytime you click the icon. So in order to |
- // make the popover show the right state and details, we have to emulate the |
- // same behavior as on Chrome, by reloading the popover every time it is shown. |
- safari.self.addEventListener("popover", function() |
- { |
- mayResize = false; |
- document.documentElement.style.display = "none"; |
- window.location.reload(); |
- }); |
- |
- |
- // Safari doesn't hide popovers automatically, when we change the active tab |
- // programmatically, like when the options link is clicked. So we add an event |
- // listener to do so. |
- safari.application.addEventListener("activate", function() |
- { |
- safari.self.hide(); |
- }, true); |
- |
- |
- // import ext into the javascript context of the popover. This code might fail, |
- // when the background page isn't ready yet. So it is important to put it below |
- // the reloading code above. |
- var backgroundPage = safari.extension.globalPage.contentWindow; |
- window.ext = Object.create(backgroundPage.ext); |
- |
- ext.closePopup = function() |
- { |
- safari.self.hide(); |
- }; |
- |
- ext.backgroundPage = { |
- getWindow: function() |
- { |
- return backgroundPage; |
- }, |
- |
- // On Safari, you can't send messages from the popup to the |
- // background page. So we call the message listeners directly. |
- sendMessage: function(message, responseCallback) |
- { |
- if (!responseCallback) |
- responseCallback = function () {}; |
- |
- backgroundPage.ext.onMessage._dispatch(message, {}, responseCallback); |
- } |
- }; |
- |
-})(); |