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

Unified Diff: firstRun.js

Issue 8615139: adblockpluschrome: Open share page in lightbox (Closed)
Patch Set: Created Oct. 25, 2012, 1:11 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « firstRun.html ('k') | skin/firstRun.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: firstRun.js
===================================================================
--- a/firstRun.js
+++ b/firstRun.js
@@ -3,6 +3,58 @@
var Prefs = require("prefs").Prefs;
var Utils = require("utils").Utils;
+function openSharePopup(url)
+{
+ var iframe = document.getElementById("share-popup");
+ var glassPane = document.getElementById("glass-pane");
+
+ var popupMessageListener = function(event)
+ {
+ if (event.origin !== url)
+ return;
+
+ console.log(event);
+ iframe.width = event.data.width;
+ iframe.height = event.data.height;
+ window.removeEventListener("message", popupMessageListener);
+ };
+ window.addEventListener("message", popupMessageListener, false);
+
+ var popupLoadListener = function()
+ {
+ iframe.className = "visible";
+
+ var popupCloseListener = function()
+ {
+ iframe.className = glassPane.className = "";
+ document.removeEventListener("click", popupCloseListener);
+ };
+ document.addEventListener("click", popupCloseListener, false);
+ iframe.removeEventListener("load", popupLoadListener);
+ };
+ iframe.addEventListener("load", popupLoadListener, false);
+
+ iframe.src = url;
+ glassPane.className = "visible";
+}
+
+function initSocialLinks(variant)
+{
+ var networks = ["twitter", "facebook"];
+ networks.forEach(function(network)
+ {
+ var links = document.getElementsByClassName("share-" + network);
+ for (var i = 0; i < links.length; i++)
+ {
+ links[i].addEventListener("click", function(e)
+ {
+ e.preventDefault();
+ openSharePopup(getDocLink(network) + "&variant=" + variant);
+ }, false);
+ }
+ });
+}
+
function init()
{
// Choose a share text variant randomly
@@ -24,13 +76,7 @@
setLinks("acceptableAdsExplanation", getDocLink("acceptable_ads", "criteria"),
backgroundPage.openOptions);
- var facebookLinks = document.getElementsByClassName("share-facebook");
- for (var i = 0; i < facebookLinks.length; i++)
- facebookLinks[i].href = getDocLink("facebook") + "&variant=" + variant;
-
- var twitterLinks = document.getElementsByClassName("share-twitter");
- for (var i = 0; i < twitterLinks.length; i++)
- twitterLinks[i].href = getDocLink("twitter") + "&variant=" + variant;
+ initSocialLinks(variant);
var donateLink = document.getElementById("share-donate");
donateLink.href = getDocLink("donate") + "&variant=" + variant;
« no previous file with comments | « firstRun.html ('k') | skin/firstRun.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld