chrome.browserAction.onClicked.addListener(function(tab) {
  window.open(chrome.runtime.getURL("index.html"));
});

// Firefox
browser.browserAction.onClicked.addListener(function(tab) {
    browser.tabs.update({
        url: "index.html"
    });
});


chrome.runtime.onInstalled.addListener(function (tab) {
  window.open(chrome.runtime.getURL("index.html"));
});

//Firefox
browser.runtime.onInstalled.addListener(function (tab) {
  browser.tabs.update({
      url: "index.html"
  });
});
@@ -1,14 +1,63 @@
-chrome
+if (navigator.userAgent.search(%22Firefox%22)) %7B%0A%0A  browser
 .browser
@@ -107,42 +107,49 @@
 %7B%0A  
-window.open(chrome.runtime.getURL(
+    browser.tabs.create(%7B%0A          url: 
 %22ind
@@ -160,57 +160,53 @@
 tml%22
-)
+%0A      %7D
 );%0A
+  
 %7D);%0A%0A
-// Firefox%0Abrowser.browserAction.onClick
+  browser.runtime.onInstall
 ed.a
@@ -216,32 +216,33 @@
 istener(function
+ 
 (tab) %7B%0A    brow
@@ -242,35 +242,35 @@
    browser.tabs.
-upd
+cre
 ate(%7B%0A        ur
@@ -297,38 +297,53 @@
 %7D);%0A
+  
 %7D);%0A
-%0A%0Achrome.runtime.onInstall
+%7D%0Aelse %7B%0A  chrome.browserAction.onClick
 ed.a
@@ -361,25 +361,24 @@
 function
- 
 (tab) %7B%0A
   window
@@ -369,16 +369,20 @@
 (tab) %7B%0A
+    
   window
@@ -429,30 +429,23 @@
 ));%0A
+  
 %7D);%0A%0A
-//Firefox%0Abrowser
+  chrome
 .run
@@ -496,41 +496,46 @@
 %7B%0A  
-browser.tabs.update(%7B%0A      url: 
+    window.open(chrome.runtime.getURL(
 %22ind
@@ -542,18 +542,21 @@
 ex.html%22
+));
 %0A  %7D);%0A%7D
 );
@@ -553,10 +553,9 @@
 %0A  %7D);%0A%7D
-);
+%0A

Make extension firefox compatible (#989)