clean up manifest
[newtab.git] / main.js
diff --git a/main.js b/main.js
index 2993dfcf22a1fdf131d48cee52fcd32252f7fe7b..3af538f7857854c43f3a391643cb0b0111d5200d 100644 (file)
--- a/main.js
+++ b/main.js
@@ -7,6 +7,7 @@ var hoverbg = "#434c5e";
 var hoverbg2 = "#848ead";
 var editMode = false;
 var dragSrcEl = null;
+var thumbServer = "https://www.google.com/s2/favicons?domain=";
 var defaultColumns= [
       ["General",
         ["Github", "https://github.com"],
@@ -83,6 +84,7 @@ function parseColumns(config) {
   }
 }
 
+
 function genColumn(title) {
 
     // Generate HTML elements for a column (without items)
@@ -117,6 +119,7 @@ function genColumn(title) {
 
 }
 
+
 function genItem(ul, nme, url) {
 
   // Generate HTML elements for an item
@@ -125,9 +128,7 @@ function genItem(ul, nme, url) {
   li.setAttribute("class", ul.id + "-" + (ul.getElementsByTagName("li").length + 1).toString() );
   li.addEventListener("mouseup", saveConfig);
 
-  var img = document.createElement("img");
-  img.className = "icon";
-  img.src = "https://www.google.com/s2/favicons?domain=" + url;
+  var img = requestThumbnail(url);
 
   var link = document.createElement("a");
   link.className = "item";
@@ -149,6 +150,23 @@ function genItem(ul, nme, url) {
 }
 
 
+function requestThumbnail(imageUrl) {
+  // Get thumbnail from Google's favicon server
+  var img = document.createElement("img");
+  var xhr = new XMLHttpRequest();
+  xhr.open('GET', thumbServer + imageUrl);
+  xhr.responseType = "blob";
+  xhr.onload = function() {
+    img.setAttribute("data-src", thumbServer + imageUrl);
+    img.className = "icon";
+    var objUrl = URL.createObjectURL(xhr.response);
+    img.setAttribute("src", objUrl);
+  }.bind(this);
+  xhr.send();
+  return img;
+}
+
+
 // --------------------------------
 //
 // Edit mode