-
-
- %downloadManagerDTD;
-
- %uploadDTD;
-]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/content/uploads.js b/third_party/firefox_sendtophone/chrome/content/uploads.js
deleted file mode 100644
index 86d91e4..0000000
--- a/third_party/firefox_sendtophone/chrome/content/uploads.js
+++ /dev/null
@@ -1,168 +0,0 @@
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-let Cu = Components.utils;
-Cu.import("resource://gre/modules/DownloadUtils.jsm");
-Cu.import("resource://gre/modules/PluralForm.jsm");
-
-Cu.import("resource://sendtophone/uploadsManager.js");
-
-let gUploadManager = sendtophoneUploadsManager;
-let gUploadsView = null;
-
-function addFile(upload)
-{
- let dl = document.createElement("richlistitem");
-
- dl.setAttribute("file", upload.file.path);
- dl.setAttribute("target", upload.file.leafName);
- dl.setAttribute("image", "moz-icon://" + upload.file.path + "?size=32");
-
- dl.setAttribute("state", upload.state);
- dl.setAttribute("startTime", upload.startTime);
- dl.setAttribute("currBytes", upload.currBytes);
- dl.setAttribute("maxBytes", upload.maxBytes);
- dl.setAttribute("lastSeconds", Infinity);
-
- // Initialize other attributes
- dl.setAttribute("type", "upload");
- dl.setAttribute("id", "upl" + upload.id);
- dl.setAttribute("uploadId", upload.id);
-
- gUploadsView.appendChild( dl );
-}
-
-var checkTimerEvent =
-{
- notify: function(timer)
- {
- if (sendtophoneUploadsManager.isWindowNeeded())
- {
- if (gUploadsView.children.length==0)
- window.close();
- }
- }
-}
-
-function cancelUpload(item)
-{
- gUploadManager.cancelUpload( parseInt(item.getAttribute("uploadId"), 10) );
-}
-
-let gUploadListener = {
- fileAdded: function(data)
- {
- addFile(data);
- },
- progressUpdate: function(data)
- {
- let item = document.getElementById( "upl" + data.id);
- item.setAttribute("currBytes", data.currBytes);
- item.setAttribute("maxBytes", data.maxBytes);
-
- let percentComplete = Math.round(100 * data.currBytes / data.maxBytes);
- item.setAttribute("progress", percentComplete);
-
- // Status text
- updateStatus(item);
- },
- fileFinished: function(data)
- {
- let item = document.getElementById("upl" + data.id);
- gUploadsView.removeChild(item);
-
- // If no more pending uploads, close the tab.
- // Use a 0 ms timeout to avoid flicker while compress -> upload a folder
- let checkTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
- checkTimer.initWithCallback(checkTimerEvent, 0, Ci.nsITimer.TYPE_ONE_SHOT);
-
- }
-};
-
-
-function Startup()
-{
- gUploadsView = document.getElementById("UploadsBox");
-
- gUploadManager.addListener(gUploadListener);
-
- for (let id in gUploadManager.uploads)
- addFile( gUploadManager.uploads[id] );
-
-}
-
-function Shutdown()
-{
- gUploadManager.removeListener(gUploadListener);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-//// Command Updating and Command Handlers
-
-var gUploadViewController = {
- isCommandEnabled: function(aCommand, aItem)
- {
- let dl = aItem;
-
- switch (aCommand) {
- case "cmd_cancel":
- return dl.inProgress;
- }
- return false;
- },
-
- doCommand: function(aCommand, aItem)
- {
- if (this.isCommandEnabled(aCommand, aItem))
- this.commands[aCommand](aItem);
- },
-
- commands: {
- cmd_cancel: function(aSelectedItem) {
- cancelUpload(aSelectedItem);
- }
- }
-};
-
-/**
- * Helper function to do commands.
- *
- * @param aCmd
- * The command to be performed.
- * @param aItem
- * The richlistitem that represents the download that will have the
- * command performed on it. If this is null, the command is performed on
- * all downloads. If the item passed in is not a richlistitem that
- * represents a download, it will walk up the parent nodes until it finds
- * a DOM node that is.
- */
-function performCommand(aCmd, aItem)
-{
- let elm = aItem;
-
- while (elm.nodeName != "richlistitem" ||
- elm.getAttribute("type") != "upload")
- elm = elm.parentNode;
-
- gUploadViewController.doCommand(aCmd, elm);
-}
-
-function updateStatus(aItem)
-{
- let currBytes = Number(aItem.getAttribute("currBytes"));
- let maxBytes = Number(aItem.getAttribute("maxBytes"));
-
- let elapsedTime = (Date.now() - Number(aItem.getAttribute("startTime"))) / 1000;
- // If we don't have an active upload, assume 0 bytes/sec
- let speed = (currBytes>0) ? currBytes/elapsedTime : 0;
- let lastSec = Number(aItem.getAttribute("lastSeconds"));
-
- let status, newLast;
- [status, newLast] =
- DownloadUtils.getDownloadStatus(currBytes, maxBytes, speed, lastSec);
-
- // Update lastSeconds to be the new value
- aItem.setAttribute("lastSeconds", newLast);
-
- aItem.setAttribute("status", status);
-}
diff --git a/third_party/firefox_sendtophone/chrome/content/uploads.xul b/third_party/firefox_sendtophone/chrome/content/uploads.xul
deleted file mode 100644
index 367bc68..0000000
--- a/third_party/firefox_sendtophone/chrome/content/uploads.xul
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/third_party/firefox_sendtophone/chrome/locale/cs/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/cs/overlay.dtd
deleted file mode 100644
index cb775c8..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/cs/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/cs/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/cs/overlay.properties
deleted file mode 100644
index de0c3ab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/cs/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Odešle aktuální stránku do telefonu
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=Nevalidní schéma, odesílejte prosím pouze http:// nebo https:// odkazy.
-InfoSent=Odkaz byl odeslán do Vašeho telefonu.
-ErrorOnSend=Během odesílání se vyskytla chyba:
-LoginRequired=Pro odeslání odkazu je potřeba být přihlášen.
-LoginSuccessful=Byl(a) jste přihlášen(a).
-DeviceNotRegistered=Nainstalujte chrometophone.apk na Váš telefon
-LogoutSuccessful=Byl(a) jste odhlášen(a)
-marketLink=Odkaz na market
-smsLink=SMS číslo
-smstoLink=SMS číslo
-telLink=Telefonní číslo
-InvalidFile=Soubor není validní
-SendFileToPhone=Odeslat soubory do telefonu.
-SendFolderToPhone=Odeslat složku do telefonu.
-qrTitle=Odkaz na QR obrázek
-ConfirmQR=Byl detekován QR obrázek\n"%s"\nOpravdu ho chcete odeslat namísto stránky?
-RememberMyDecision=Zapamatovat
-qrContextMenu=Odeslat "%s" do telefonu
-FileUploadsDisabled=Není možné odeslat soubory do telefonu.
-FileTooBig=Soubor je příliš veliký.
-videoTitle=Odkaz na video
diff --git a/third_party/firefox_sendtophone/chrome/locale/cs/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/cs/uploads.dtd
deleted file mode 100644
index 6721837..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/cs/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/de/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/de/overlay.dtd
deleted file mode 100644
index 2ada2a0..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/de/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/de/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/de/overlay.properties
deleted file mode 100644
index 060730c..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/de/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Sendet die aktuelle Seite auf Ihr Android Gerät
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=Protokoll nicht unterstützt, bitte senden Sie nur http:// oder https:// links.
-InfoSent=Der Link wurde auf Ihr Android Gerät geschickt.
-ErrorOnSend=Es gab einen Fehler beim Senden:
-LoginRequired=Login erforderlich zum Senden des Links.
-LoginSuccessful=Sie sind eingeloggt
-DeviceNotRegistered=Die Chome2Phone-App muss auf dem Android Gerät, das mit diesem GMail Account verbunden ist, installiert sein.
-LogoutSuccessful=Sie sind abgemeldet.
-marketLink=Market Link
-smsLink=SMS-Nummer
-smstoLink=SMS-Nummer
-telLink=Telefonnummer
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-RememberMyDecision=Auswahl merken
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/de/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/de/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/de/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.dtd
deleted file mode 100644
index c71a9bd..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.properties
deleted file mode 100644
index 40e71ce..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/en-US/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Sends the current page to your Android phone
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=Invalid scheme, please only send http:// or https:// links.
-InfoSent=The link has been sent to your phone.
-ErrorOnSend=There was an error sending:
-LoginRequired=Login required to send the link.
-LoginSuccessful=You have logged in.
-DeviceNotRegistered=You must install the chrometophone.apk on your phone registered to this GMail account
-LogoutSuccessful=You are logged out
-marketLink=Market Link
-smsLink=SMS Number
-smstoLink=SMS Number
-telLink=Telephone Number
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-RememberMyDecision=Remember my decision
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/en-US/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/en-US/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/en-US/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/es/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/es/overlay.dtd
deleted file mode 100644
index 8466d1b..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/es/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/es/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/es/overlay.properties
deleted file mode 100644
index 4d80a30..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/es/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Envía la página actual a su teléfono Android
-SendToPhoneTitle=Enviar a teléfono
-InvalidScheme=Esquema no válido, por favor, envíe sólo enlaces http:// o https://.
-InfoSent=El enlace ha sido enviado a su teléfono.
-ErrorOnSend=Se ha producido un error al enviar:
-LoginRequired=Es necesario identificarse para enviar el enlace.
-LoginSuccessful=Se ha identificado correctamente.
-DeviceNotRegistered=Debe instalar la aplicación en su teléfono y registrar la misma cuenta de correo
-LogoutSuccessful=Ha cerrado su sesión
-marketLink=Market link
-smsLink=Número SMS
-smstoLink=Número SMS
-telLink=Número de teléfono
-InvalidFile=No es un fichero válido.
-SendFileToPhone=Envía ficheros al teléfono.
-SendFolderToPhone=Envía una carpeta al teléfono.
-qrTitle=Imagen QR
-ConfirmQR=Se ha detectado una imagen QR\n"%s"\n¿Quiere enviarlo en lugar de la página?
-RememberMyDecision=Recordar mi decisión
-qrContextMenu=Enviar "%s" a Android
-FileUploadsDisabled=No se pueden enviar ficheros al teléfono.
-FileTooBig=El fichero que quiere enviar es demasiado grande.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/es/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/es/uploads.dtd
deleted file mode 100644
index 66aae1c..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/es/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/fr/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/fr/overlay.dtd
deleted file mode 100644
index 9667101..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/fr/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/fr/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/fr/overlay.properties
deleted file mode 100644
index 606d329..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/fr/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Envoie la page en cours sur votre téléphone Android
-SendToPhoneTitle=Envoyer vers un téléphone portable
-InvalidScheme=Format d'adresse invalide, veuillez envoyer uniquement des liens http:// ou https://.
-InfoSent=Le lien a été envoyé à votre mobile.
-ErrorOnSend=Une erreur s'est produite au cours de l'envoi :
-LoginRequired=Connexion nécessaire pour envoyer ce lien.
-LoginSuccessful=Vous êtes connecté(e).
-DeviceNotRegistered=Vous devez installer le chrometophone.apk sur votre téléphone inscrit à ce compte GMail
-LogoutSuccessful=Vous êtes déconnecté(e)
-marketLink=Lien commercial
-smsLink=Nombre de SMS
-smstoLink=Nombre de SMS
-telLink=Numéro de téléphone
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-RememberMyDecision=Se souvenir de mon choix
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/fr/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/fr/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/fr/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.dtd
deleted file mode 100644
index f3076cf..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.properties
deleted file mode 100644
index 618eae0..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ga-IE/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Cuireann an leathanach reatha ar do ghuthán Android
-SendToPhoneTitle=Sionnach Chun Fón
-InvalidScheme=Scéim neamhbhailí, le do thoil seol http:// amháin nó http:// naisc.
-InfoSent=Tá nasc chuig do ghuthán.
-ErrorOnSend=Tharla earráid agus a sheoladh:
-LoginRequired=Logáil isteach ag teastáil chun a sheoladh chuig an nasc.
-LoginSuccessful=Tá tú logáilte isteach
-DeviceNotRegistered=Ní mór duit a shuiteáil ar do ghuthán chrometophone.apk cláraithe leis an gcuntas seo Gmail
-LogoutSuccessful=Tá tú logáilte amach
-marketLink=Nasc chuig an Margadh
-smsLink=Uimhir SMS
-smstoLink=Uimhir SMS
-telLink=Uimhir Theileafóin
-InvalidFile=Gan comhad bailí
-SendFileToPhone=Seol comhad ar do ghuthán.
-SendFolderToPhone=Seol an fhillteáin le do ghuthán.
-qrTitle=Nasc íomhá QR
-ConfirmQR=Tá an íomhá QR a bhraitear\n"%s"\nAn bhfuil tú ag iarraidh a sheoladh go in ionad an leathanach seo?
-RememberMyDecision=Cuimhnigh mo chinneadh
-qrContextMenu=Seol "%s" ar do ghuthán.
-FileUploadsDisabled=Níl sé indéanta chun comhaid a uaslódáil chuig an bhfón.
-FileTooBig=Tá an comhad ró-mhór.
-videoTitle=Nasc Video
diff --git a/third_party/firefox_sendtophone/chrome/locale/ga-IE/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/ga-IE/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ga-IE/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.dtd
deleted file mode 100644
index ee0031c..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.properties
deleted file mode 100644
index 98a1c69..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hi-IN/overlay.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=अपने Android फोन करने के लिए वर्तमान पृष्ठ पर भेजता है
-SendToPhoneTitle=भेजने के लिए फोन
-InvalidScheme=अवैध योजना, केवल http:// या https: / / लिंक: भेजें.
-InfoSent=लिंक आपके फोन करने के लिए भेजा गया है.
-ErrorOnSend=वहाँ एक भेजने में त्रुटि थी:
-LoginRequired=लॉगइन करने के लिए लिंक भेज आवश्यक है.
-LoginSuccessful=तुम अंदर लॉग इन किया है
-DeviceNotRegistered=आप अपने फोन पर स्थापित chrometophone.apk इस जीमेल खाते में दर्ज करना होगा
-LogoutSuccessful=तुम बाहर लॉग इन किया है
-marketLink=बाजार के लिए लिंक
-smsLink=एसएमएस संख्या
-smstoLink=एसएमएस संख्या
-telLink=टेलीफोन नंबर
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/hi-IN/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/hi-IN/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hi-IN/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/hu/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/hu/overlay.dtd
deleted file mode 100644
index 328a533..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hu/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/hu/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/hu/overlay.properties
deleted file mode 100644
index 11f707f..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hu/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Jelenlegi oldal küldése az Android telefonra
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=Hibás formátum, kérlek csak http:// vagy https:// linkeket küldj.
-InfoSent=A link el lett küldve a telefonodra.
-ErrorOnSend=Hiba a küldésnél:
-LoginRequired=A link küldéshez szükséges a bejelentkezés.
-LoginSuccessful=Előbb jelentkezz be.
-DeviceNotRegistered=Először telepítsd a chrometophone.apk fájlt a telefonodra, majd regisztráld a GMail fiókodat.
-LogoutSuccessful=Kijelentkeztél.
-marketLink=Market link
-smsLink=SMS szám
-smstoLink=SMS szám
-telLink=Telefon szám
-InvalidFile=Nem valós fájl
-SendFileToPhone=Fájlok küldése a telefonodra.
-SendFolderToPhone=Mappa küldése a telefonodra.
-qrTitle=QR kép link
-ConfirmQR=QR kép észéeéve\n"%s"\nEzt akartod küldeni az oldallal együtt?
-RememberMyDecision=Emlékezzen, hogyan döntöttem
-qrContextMenu="%s" küldése az Androidra
-FileUploadsDisabled=Fájlok feltöltése nem lehetséges a telefonra.
-FileTooBig=A fájl mérete túl nagy.
-videoTitle=Videó Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/hu/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/hu/uploads.dtd
deleted file mode 100644
index 9c11302..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/hu/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/it/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/it/overlay.dtd
deleted file mode 100644
index 48924e2..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/it/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/it/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/it/overlay.properties
deleted file mode 100644
index 795f9ff..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/it/overlay.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Invia la pagina corrente al vostro telefono Android
-SendToPhoneTitle=Fox a Cellulare
-InvalidScheme=Schema non valido, si prega di inviare solo http:// o https: / / link.
-InfoSent=Il link è stato inviato al tuo telefono cellulare.
-ErrorOnSend=Si è verificato un errore durante l'invio:
-LoginRequired=Accesso necessario per inviare il link.
-LoginSuccessful=Hai loggato
-DeviceNotRegistered=È necessario installare il chrometophone.apk sul telefono registrato a questo account GMail
-LogoutSuccessful=Sei disconnesso
-marketLink=Mercato Link
-smsLink=Numero di SMS
-smstoLink=Numero di SMS
-telLink=Numero di telefono
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/it/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/it/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/it/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.dtd
deleted file mode 100644
index a355efc..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.properties
deleted file mode 100644
index 8e9f72e..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ja-JP/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=読んでいるページを Android 携帯へ送信します
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=無効なスキームです。http:// か https:// のリンクを送って下さい。
-InfoSent=リンクを携帯電話に送信しています。
-ErrorOnSend=送信エラーが発生:
-LoginRequired=リンクを送信するためにログインが必要です。
-LoginSuccessful=ログインしました。
-DeviceNotRegistered=この Gmail アカウントを登録している携帯電話に chrometophone.apk をインストールして下さい
-LogoutSuccessful=ログアウトしました
-marketLink=マーケットへのリンク
-smsLink=SMS番号
-smstoLink=SMS番号
-telLink=電話番号
-InvalidFile=無効なファイル
-SendFileToPhone=ファイルを携帯電話へ送信します。
-SendFolderToPhone=フォルダを携帯電話へ送信します。
-qrTitle=QR 画像リンク
-ConfirmQR=QR 画像が解読されました\n"%s"\nこれをページの代わりに送信しますか?
-RememberMyDecision=決定を記憶
-qrContextMenu="%s" を Android に送信
-FileUploadsDisabled=このファイルは携帯電話へアップロード出来ません。
-FileTooBig=このファイルは大きすぎます。
-videoTitle=動画リンク
diff --git a/third_party/firefox_sendtophone/chrome/locale/ja-JP/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/ja-JP/uploads.dtd
deleted file mode 100644
index f19ff79..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ja-JP/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/nl/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/nl/overlay.dtd
deleted file mode 100644
index 141a998..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/nl/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/nl/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/nl/overlay.properties
deleted file mode 100644
index 5fd3a8c..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/nl/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Verzendt de huidige pagina naar uw Android-telefoon
-SendToPhoneTitle=Fox to Phone
-InvalidScheme=Ongeldig protocol, verzend a.u.b. alleen koppelingen van het type http:// of https://.
-InfoSent=De koppeling is verzonden naar uw telefoon.
-ErrorOnSend=Er is een fout opgetreden bij het verzenden:
-LoginRequired=U dient aangemeld te zijn om een koppeling te verzenden.
-LoginSuccessful=U bent aangemeld.
-DeviceNotRegistered=U dient chrometophone.apk te installeren op uw bij deze Gmail-account geregistreerde telefoon
-LogoutSuccessful=U bent afgemeld
-marketLink=Marktkoppeling
-smsLink=SMS-nummer
-smstoLink=SMS-nummer
-telLink=Telefoonnummer
-InvalidFile=Geen geldig bestand
-SendFileToPhone=Bestanden naar uw telefoon verzenden.
-SendFolderToPhone=Een map naar uw telefoon verzenden.
-qrTitle=QR-afbeeldingskoppeling
-ConfirmQR=Er is een QR-afbeelding gedetecteerd\n“%s”\nWilt u deze verzenden in plaats van de pagina?
-RememberMyDecision=Mijn keuze onthouden
-qrContextMenu=“%s” naar Android verzenden
-FileUploadsDisabled=Het is niet mogelijk om bestanden naar de telefoon te uploaden.
-FileTooBig=Het bestand is te groot.
-videoTitle=Videokoppeling
diff --git a/third_party/firefox_sendtophone/chrome/locale/nl/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/nl/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/nl/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.dtd
deleted file mode 100644
index ce88a9a..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.properties
deleted file mode 100644
index ee34381..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/pt-BR/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Envia a página atual para seu celular Android
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=Esquema inválido. Por favor, só envie links http:// ou https://
-InfoSent=O link foi enviado para seu celular.
-ErrorOnSend=Houve um erro ao enviar:
-LoginRequired=É necessário fazer login para enviar o link.
-LoginSuccessful=Você se logou.
-DeviceNotRegistered=Você deve instalar o chrometophone.apk no celular registrado com essa conta do GMail
-LogoutSuccessful=Você se deslogou
-marketLink=Link de mercado
-smsLink=Número SMS
-smstoLink=Número SMS
-telLink=Número do celular
-InvalidFile=Não é um arquivo válido
-SendFileToPhone=Enviar arquivos para seu celular.
-SendFolderToPhone=Enviar uma pasta para seu celular.
-qrTitle=Link de imagem QR
-ConfirmQR=Uma imagem QR foi detectada\n"%s"\nVocê quer enviá-la ao invés da página?
-RememberMyDecision=Lembrar minha decisão
-qrContextMenu=Enviar "%s" para o Android
-FileUploadsDisabled=Não é possível enviar arquivos para o celular.
-FileTooBig=O arquivo é grande demais.
-videoTitle=Link para vídeo
diff --git a/third_party/firefox_sendtophone/chrome/locale/pt-BR/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/pt-BR/uploads.dtd
deleted file mode 100644
index c942ca5..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/pt-BR/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ru/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/ru/overlay.dtd
deleted file mode 100644
index d7ca86f..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ru/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/ru/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/ru/overlay.properties
deleted file mode 100644
index a322e2f..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ru/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Отправляет страницу в телефон
-SendToPhoneTitle=Отправить в телефон
-InvalidScheme=Неверная ссылка. Отправлять можно только http и https ссылки
-InfoSent=Ссылка была отправлен в телефон
-ErrorOnSend=Ошибка отправки:
-LoginRequired=Необходимо войти на сайт Google для отправки ссылки
-LoginSuccessful=Вы вошли на сайт Google
-DeviceNotRegistered=Установите chrometophone.apk на Ваш телефон и зарегистрируйте в нем ваш Google-аккаунт
-LogoutSuccessful=Вы вышли из системы
-marketLink=Ссылка на Market
-smsLink=Телефон для отправки SMS
-smstoLink=Телефон для отправки SMS
-telLink=Номер телефона
-InvalidFile=Неправильный файл
-SendFileToPhone=Отправить файл(ы) в телефон
-SendFolderToPhone=Отправить папку в телефон
-qrTitle=QR-ссылка
-ConfirmQR=Обнаружена картинка с QR-ссылкой.\n"%s"\nВы хотите отправить ссылку вместо страницы?
-RememberMyDecision=Запомнить выбор
-qrContextMenu=Отправить "%s" в телефон
-FileUploadsDisabled=Невозможно загрузить файл(ы) на телефон
-FileTooBig=Файл слишком большой
-videoTitle=Ссылка на видео
diff --git a/third_party/firefox_sendtophone/chrome/locale/ru/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/ru/uploads.dtd
deleted file mode 100644
index 0c3848d..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/ru/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/sr/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/sr/overlay.dtd
deleted file mode 100644
index 3270a3a..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sr/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/sr/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/sr/overlay.properties
deleted file mode 100644
index f029b3d..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sr/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Пошаљи тренутну страницу на свој телефон Андроид
-SendToPhoneTitle=Пошаљи на телефон
-InvalidScheme=Неважећа шема. Пошаљите само http:// или https:// везе.
-InfoSent=Веза је послата на телефон.
-ErrorOnSend=Дошло је до грешке приликом слања:
-LoginRequired=Потребно је да се пријавите да бисте послали везу.
-LoginSuccessful=Пријавили сте се.
-DeviceNotRegistered=Морате да инсталирате chrometophone.apk на телефон са регистрованим налогом за GMail
-LogoutSuccessful=Одјављени сте
-marketLink=Тржишна веза
-smsLink=SMS број
-smstoLink=SMS број
-telLink=Број телефона
-InvalidFile=Неважећа датотека
-SendFileToPhone=Пошаљите датотеке на свој телефон
-SendFolderToPhone=Пошаљите фасциклу на свој телефон
-qrTitle=QR веза до слике
-ConfirmQR=Препозната је QR слика\n„%s”\nЖелите ли да је пошаљете уместо ове странице?
-RememberMyDecision=Упамти мој одговор
-qrContextMenu=Пошаљи „%s” у Андроид
-FileUploadsDisabled=Није могуће слати слике на телефон.
-FileTooBig=Датотека је превелика.
-videoTitle=Веза до видео снимка
diff --git a/third_party/firefox_sendtophone/chrome/locale/sr/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/sr/uploads.dtd
deleted file mode 100644
index f459c81..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sr/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/sv/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/sv/overlay.dtd
deleted file mode 100644
index 54a7a02..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sv/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/sv/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/sv/overlay.properties
deleted file mode 100644
index 5f5ecfe..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sv/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=Skickar den aktuella sidan till din Android telefonen
-SendToPhoneTitle=Fox till Telefon
-InvalidScheme=Ogiltig, vänligen skicka bara http:// eller https: / / länkar.
-InfoSent=Länken har skickats till telefonen.
-ErrorOnSend=Det uppstod ett fel sändning:
-LoginRequired=Kräver inloggning för att skicka länken.
-LoginSuccessful=Du har loggat in
-DeviceNotRegistered=Du måste installera chrometophone.apk på telefonen registrerad i detta Gmail-konto
-LogoutSuccessful=Du är utloggad
-marketLink=Market Link
-smsLink=SMS nummer
-smstoLink=SMS nummer
-telLink=Telefonnummer
-InvalidFile=Not a valid file
-SendFileToPhone=Send files to your phone.
-SendFolderToPhone=Send a folder to your phone.
-qrTitle=QR Image Link
-ConfirmQR=A QR image has been detected\n"%s"\nDo you want to send that instead of the page?
-RememberMyDecision=Remember my decision
-qrContextMenu=Send "%s" to Android
-FileUploadsDisabled=It's not possible to upload files to the phone.
-FileTooBig=The file is too big.
-videoTitle=Video Link
diff --git a/third_party/firefox_sendtophone/chrome/locale/sv/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/sv/uploads.dtd
deleted file mode 100644
index 4bc5eab..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/sv/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.dtd b/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.dtd
deleted file mode 100644
index 78e03f3..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.properties b/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.properties
deleted file mode 100644
index 20fdb66..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/zh-CN/overlay.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-extensions.sendtophone@martinezdelizarrondo.com.description=发送当前页面到您的Android手机
-SendToPhoneTitle=Fox To Phone
-InvalidScheme=无效的计划,请只发送http://或https:/ /链接。
-InfoSent=该链接已发送到您的手机。
-ErrorOnSend=发生一个错误发送:
-LoginRequired=登录后才可发送链接。
-LoginSuccessful=您已登录
-DeviceNotRegistered=您必须安装chrometophone.apk在您的手机从而注册此Gmail帐户
-LogoutSuccessful=您已经登出
-marketLink=市场链接
-smsLink=SMS号码
-smstoLink=SMS号码
-telLink=电话号码
-InvalidFile=不是一个有效的文件
-SendFileToPhone=发送文件到您的手机。
-SendFolderToPhone=发送到您的手机文件夹。
-qrTitle=QR图像链接
-ConfirmQR=一个QR图像被检测到了\n"%s"\n发送QR图像代替此页?
-RememberMyDecision=记住我的决定
-qrContextMenu=发送“%s”给Android
-FileUploadsDisabled=不能上传文件到手机上。
-FileTooBig=该文件太大了。
-videoTitle=视频链接
diff --git a/third_party/firefox_sendtophone/chrome/locale/zh-CN/uploads.dtd b/third_party/firefox_sendtophone/chrome/locale/zh-CN/uploads.dtd
deleted file mode 100644
index 73819f1..0000000
--- a/third_party/firefox_sendtophone/chrome/locale/zh-CN/uploads.dtd
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/third_party/firefox_sendtophone/chrome/skin/icon.png b/third_party/firefox_sendtophone/chrome/skin/icon.png
deleted file mode 100644
index 995cd9a..0000000
Binary files a/third_party/firefox_sendtophone/chrome/skin/icon.png and /dev/null differ
diff --git a/third_party/firefox_sendtophone/chrome/skin/overlay.css b/third_party/firefox_sendtophone/chrome/skin/overlay.css
deleted file mode 100644
index 11429a2..0000000
--- a/third_party/firefox_sendtophone/chrome/skin/overlay.css
+++ /dev/null
@@ -1,32 +0,0 @@
-#sendtophone-toolbar-button
-{
- list-style-image: url("chrome://sendtophone/skin/toolbar-button.png");
- -moz-image-region: rect(0px 24px 24px 0px);
-}
-#sendtophone-toolbar-button:hover
-{
- -moz-image-region: rect(24px 24px 48px 0px);
-}
-[iconsize="small"] #sendtophone-toolbar-button
-{
- -moz-image-region: rect( 0px 40px 16px 24px);
-}
-[iconsize="small"] #sendtophone-toolbar-button:hover
-{
- -moz-image-region: rect(24px 40px 40px 24px);
-}
-
-#sendtophone-toolbar-button:-moz-drag-over {
- border: 1px solid black;
-}
-
-#context-sendtophone-link,
-#context-sendtophone-image,
-#context-sendtophone-qrimage,
-#context-sendtophone-text,
-#context-sendtophone-page
-{
- -moz-binding: url(chrome://global/content/bindings/menu.xml#menuitem-iconic) !important;
- list-style-image: url("chrome://sendtophone/skin/toolbar-button.png") !important;
- -moz-image-region: rect( 0px 40px 16px 24px) !important;
-}
\ No newline at end of file
diff --git a/third_party/firefox_sendtophone/chrome/skin/toolbar-button.png b/third_party/firefox_sendtophone/chrome/skin/toolbar-button.png
deleted file mode 100644
index c5dc444..0000000
Binary files a/third_party/firefox_sendtophone/chrome/skin/toolbar-button.png and /dev/null differ
diff --git a/third_party/firefox_sendtophone/chrome/skin/uploads.css b/third_party/firefox_sendtophone/chrome/skin/uploads.css
deleted file mode 100644
index ab94d8b..0000000
--- a/third_party/firefox_sendtophone/chrome/skin/uploads.css
+++ /dev/null
@@ -1,63 +0,0 @@
-#UploadsBox {
- -moz-appearance: none;
- margin: 0;
- padding: 0;
- border-width: 0;
-}
-
-/* Upload View Items */
-richlistitem[type="upload"] {
- padding: 5px;
- min-height: 44px !important;
- border: 1px solid transparent;
-}
-
-richlistitem[type="upload"]:not([selected="true"]):nth-child(odd) {
- background-color: -moz-oddtreerow;
-}
-
-richlistitem[type="upload"] .status {
- font-size: smaller;
- color: #555;
-}
-
-richlistitem[selected="true"][type="upload"] {
- outline: none;
-}
-
-richlistbox:focus > richlistitem[selected="true"][type="upload"] .status {
- color: highlighttext;
-}
-
-richlistitem[type="upload"] button {
- -moz-appearance: none;
- min-height: 16px;
- min-width: 16px;
- max-height: 16px;
- max-width: 16px;
- padding: 0;
- margin: 0 1px 0 1px;
-}
-
-/**
- * Images for buttons in the interface
- */
-richlistitem[type="upload"] button {
- list-style-image: url(chrome://mozapps/skin/downloads/buttons.png);
-}
-.cancel {
- -moz-image-region: rect(0px, 16px, 16px, 0px);
-}
-.cancel:hover {
- -moz-image-region: rect(0px, 32px, 16px, 16px);
-}
-.cancel:hover:active {
- -moz-image-region: rect(0px, 48px, 16px, 32px);
-}
-
-/* prevent flickering when changing states */
-.uploadTypeIcon {
- min-height: 32px;
- min-width: 32px;
- -moz-padding-end: 2px;
-}
diff --git a/third_party/firefox_sendtophone/defaults/preferences/prefs.js b/third_party/firefox_sendtophone/defaults/preferences/prefs.js
deleted file mode 100644
index d43c3a8..0000000
--- a/third_party/firefox_sendtophone/defaults/preferences/prefs.js
+++ /dev/null
@@ -1,15 +0,0 @@
-pref("extensions.sendtophone.installedButton", false);
-pref("extensions.sendtophone.appUrl", "https://chrometophone.appspot.com");
-
-pref("extensions.sendtophone.proxyUrl", "http://foxtophone.com/f2p.php?link=");
-pref("extensions.sendtophone.fileServerUrl", "");
-pref("extensions.sendtophone.fileUploadMaxKb", 50000);
-pref("extensions.sendtophone.SearchQR", 0); // 0: search and prompt, 1: search and launch automatically, 2: don't search
-
-pref("extensions.sendtophone.protocols.market", true);
-pref("extensions.sendtophone.protocols.sms", true);
-pref("extensions.sendtophone.protocols.smsto", true);
-pref("extensions.sendtophone.protocols.tel", true);
-
-// https://developer.mozilla.org/en/Localizing_extension_descriptions
-pref("extensions.sendtophone@martinezdelizarrondo.com.description", "chrome://sendtophone/locale/overlay.properties");
diff --git a/third_party/firefox_sendtophone/install.rdf b/third_party/firefox_sendtophone/install.rdf
deleted file mode 100644
index 03b2755..0000000
--- a/third_party/firefox_sendtophone/install.rdf
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- sendtophone@martinezdelizarrondo.com
- 2
- Fox To Phone
- 1.1.2beta4
- Alfonso & Patrick
- Send links to your Android 2.2 phone using the new C2DM service. Based on the ChromeToPhone extension.
-
- chrome://sendtophone/skin/icon.png
- http://www.foxtophone.com
- chrome://sendtophone/content/options.xul
- Anil K Solanki (icons)
- BabelZilla translators:
- markh van BabelZilla.org (Dutch)
- Goofy (French)
- Emanuel S. (German)
- ДакСРБИЈА (Serbian)
- Martin Zubek (Czech)
- mjy (Japanese)
- Marcelo Ghelman (ghelman.net) (Portuguese (Brazilian))
- LA (Russian)
- yongdong7 (Chinese simplified)
-
-
-
- {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
- 3.5
- 6.0a1
-
-
-
-
diff --git a/third_party/firefox_sendtophone/modules/protocolHandlers.js b/third_party/firefox_sendtophone/modules/protocolHandlers.js
deleted file mode 100644
index 4c42df2..0000000
--- a/third_party/firefox_sendtophone/modules/protocolHandlers.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* This js module doesn't export anything, it's meant to handle the protocol registration/unregistration */
-var EXPORTED_SYMBOLS = [];
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-
-var manager = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
-var strings = Cc["@mozilla.org/intl/stringbundle;1"]
- .getService(Ci.nsIStringBundleService)
- .createBundle("chrome://sendtophone/locale/overlay.properties");
-
-// Utility function to handle the preferences
-// https://developer.mozilla.org/en/Code_snippets/Preferences
-function PrefListener(branchName, func) {
- var prefService = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefService);
- var branch = prefService.getBranch(branchName);
- branch.QueryInterface(Components.interfaces.nsIPrefBranch2);
-
- this.register = function() {
- branch.addObserver("", this, false);
- branch.getChildList("", { })
- .forEach(function (name) { func(branch, name); });
- };
-
- this.unregister = function unregister() {
- if (branch)
- branch.removeObserver("", this);
- };
-
- this.observe = function(subject, topic, data) {
- if (topic == "nsPref:changed")
- func(branch, data);
- };
-}
-
-
-// our XPCOM components to handle the protocols
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-function SendToPhone_ProtocolWrapper( properties )
-{
- var myHandler = function() {};
-
- myHandler.prototype = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIProtocolHandler]),
-
- _xpcom_factory: {
- singleton: null,
- createInstance: function (aOuter, aIID) {
- if (aOuter) throw Components.results.NS_ERROR_NO_AGGREGATION;
-
- if (!this.singleton) this.singleton = new myHandler();
- return this.singleton.QueryInterface(aIID);
- }
- },
-
- // nsIProtocolHandler implementation:
-
- // default attributes
- protocolFlags : Ci.nsIProtocolHandler.URI_LOADABLE_BY_ANYONE,
- defaultPort : -1,
-
- newURI : function(aSpec, aCharset, aBaseURI)
- {
- var uri = Components.classes["@mozilla.org/network/simple-uri;1"].createInstance(Ci.nsIURI);
- uri.spec = aSpec;
- return uri;
- },
-
- newChannel : function(aURI)
- {
- var myURI = decodeURI(aURI.spec);
-
- // Core functions loaded on demand
- if (typeof sendtophoneCore == "undefined")
- Components.utils.import("resource://sendtophone/sendtophone.js");
-
- sendtophoneCore.send(this.linkTitle, myURI, "")
-
- // return a fake empty channel so current window doesn't change
- return Components.classes[ "@mozilla.org/network/input-stream-channel;1" ].createInstance(Ci.nsIChannel);
- },
- scheme : properties.scheme,
- classDescription : "SendToPhone handler for " + properties.scheme,
- classID : Components.ID( properties.ID ),
- contractID : "@mozilla.org/network/protocol;1?name=" + properties.scheme,
- linkTitle : strings.GetStringFromName( properties.scheme + "Link" ) // Translations
- }
-
- return myHandler;
-}
-
-// This function takes care of register/unregister the protocol handlers as requested
-// It's called when the preferences change.
-function toggleProtocolHandler(branch, name)
-{
- // Get the value in preferences
- var register = branch.getBoolPref(name);
- // Retrieve the object for that protocol
- var protocolHandler = sendToPhoneProtocols[ name ];
- // If someone did change the defaults for mms or mmsto this
- // function will be called, but the handlers have been removed.
- if (!protocolHandler)
- return;
-
- var proto = protocolHandler.prototype;
-
- if (register)
- {
- if (!protocolHandler.registered)
- manager.registerFactory(proto.classID,
- proto.classDescription,
- proto.contractID,
- proto._xpcom_factory);
-
- protocolHandler.registered = true;
- }
- else
- {
- if (protocolHandler.registered)
- manager.unregisterFactory(proto.classID, proto._xpcom_factory);
- protocolHandler.registered = false;
- }
-}
-
-// Each protocol handler
-var sendToPhoneProtocols = {
- market: SendToPhone_ProtocolWrapper( { scheme: "market", ID: "{751de080-95d1-11df-981c-0800200c9a66}" } ) ,
- sms: SendToPhone_ProtocolWrapper( { scheme: "sms", ID: "{345de080-95d1-11df-981c-0800200c9a66}" } ) ,
- smsto: SendToPhone_ProtocolWrapper( { scheme: "smsto", ID: "{854de080-95d1-11df-981c-0800200c9a66}" } ) ,
- tel: SendToPhone_ProtocolWrapper( { scheme: "tel", ID: "{948de080-95d1-11df-981c-0800200c9a66}" } )
-};
-
-// Listen for changes in the preferences and register the protocols as needed.
-var preferencesListener = new PrefListener("extensions.sendtophone.protocols.", toggleProtocolHandler);
-preferencesListener.register();
diff --git a/third_party/firefox_sendtophone/modules/sendtophone.js b/third_party/firefox_sendtophone/modules/sendtophone.js
deleted file mode 100644
index 70b3beb..0000000
--- a/third_party/firefox_sendtophone/modules/sendtophone.js
+++ /dev/null
@@ -1,522 +0,0 @@
-/*
- Copyright 2010 Alfonso Martínez de Lizarrondo & Patrick O'Reilly
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-// https://developer.mozilla.org/en/JavaScript_code_modules/Using_JavaScript_code_modules
-var EXPORTED_SYMBOLS = ["sendtophoneCore"];
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-
-var sendtophoneCore = {
- req : null,
- apiVersion : 4,
- loggedInUrl : "http://code.google.com/p/chrometophone/logo?login",
- loggedOutUrl : "http://code.google.com/p/chrometophone/logo?logout",
- apkUrl : "http://code.google.com/p/chrometophone/wiki/AndroidApp",
- retryCount : 0,
-
- init: function()
- {
- this.strings = Cc["@mozilla.org/intl/stringbundle;1"]
- .getService(Ci.nsIStringBundleService)
- .createBundle("chrome://sendtophone/locale/overlay.properties");
-
- this.prefs = Cc["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefService)
- .getBranch("extensions.sendtophone.") ;
-
- // Allow the people to use their own server if they prefer to not trust this server
- var baseUrl = this.prefs.getCharPref( "appUrl" ) ;
-
- this.sendUrl = baseUrl + '/send?ver=' + this.apiVersion;
- this.logInUrl = baseUrl + '/signin?ver=' + this.apiVersion + '&extret=' + encodeURIComponent(this.loggedInUrl);
- this.logOutUrl = baseUrl + '/signout?ver=' + this.apiVersion + '&extret=' + encodeURIComponent(this.loggedOutUrl);
- },
-
- getString: function(name)
- {
- return this.strings.GetStringFromName(name);
- },
-
- // Shows a message in a modal alert
- alert: function(text)
- {
- var promptService = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Ci.nsIPromptService);
- promptService.alert(null, this.getString("SendToPhoneTitle"),
- text);
- },
-
- // Shows a message in a growl-like notification
- popupNotification: function(text)
- {
- var title = this.getString("SendToPhoneTitle");
- var image = "chrome://sendtophone/skin/icon.png";
- try {
- // Avoid crash on Fedora 12.
- // Reported on 8th June https://addons.mozilla.org/en-US/firefox/reviews/display/161941
- var listener = {
- observe: function(subject, topic, data) {}
- };
-
- Cc['@mozilla.org/alerts-service;1']
- .getService(Ci.nsIAlertsService)
- .showAlertNotification(image, title, text, false, '', listener);
- } catch(e)
- {
- // prevents runtime error on platforms that don't implement nsIAlertsService
- var win = Cc['@mozilla.org/embedcomp/window-watcher;1']
- .getService(Ci.nsIWindowWatcher)
- .openWindow(null, 'chrome://global/content/alerts/alert.xul',
- '_blank', 'chrome,titlebar=no,popup=yes', null);
- win.arguments = [image, title, text, false, ''];
- }
- },
-
- // For use while debugging
- toConsole: function(text)
- {
- var aConsoleService = Cc["@mozilla.org/consoleservice;1"]
- .getService(Ci.nsIConsoleService);
-
- aConsoleService.logStringMessage( text );
- },
-
- processXHR: function(url, method, data, callback)
- {
- var req = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
- .createInstance(Ci.nsIXMLHttpRequest);
-
- req.open(method, url, true);
- req.setRequestHeader('X-Same-Domain', 'true'); // XSRF protector
-
- if (method=='POST')
- req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-
- req.onreadystatechange = function()
- {
- // here this == req
- if (this.readyState == 4)
- {
- var body = req.responseText;
- if (req.status == 200)
- {
- // Check if the body is a html redirect
- var redirectMatch = body.match(//);
- if (redirectMatch)
- {
- var redirectUrl = redirectMatch[2].replace(/&/g, '&');
- if (redirectUrl == sendtophoneCore.loggedOutUrl)
- {
- sendtophoneCore.logoutSuccessful();
- return;
- }
- // Do the redirect and use the original callback
- sendtophoneCore.processXHR( redirectUrl, 'GET', null, callback);
- }
- else
- callback.call( sendtophoneCore, req );
- }
- else
- {
- if (req.status==500 && body.substr(0,27) =="ERROR (Unable to send link)"){
- sendtophoneCore.openTab( "http://www.foxtophone.com/help/error-500/" );
- }
- else if (req.status==400&&this.retryCount<4){
- this.retryCount++;
- this.processXHR(this.sendUrl, 'POST', this.pendingMessage, this.processSentData);
- }
- else
- sendtophoneCore.alert(sendtophoneCore.getString("ErrorOnSend") + ' (status ' + req.status + ')\r\n' + body);
- }
- }
- };
-
- // To send correctly cookies.
- // Force the request to include cookies even though this chrome code
- // is seen as a third-party, so the server knows the user for which we are
- // requesting favorites (or anything else user-specific in the future).
- // This only works in Firefox 3.6; in Firefox 3.5 the request will instead
- // fail to send cookies if the user has disabled third-party cookies.
- try {
- req.channel.QueryInterface(Ci.nsIHttpChannelInternal).
- forceAllowThirdPartyCookie = true;
- }
- catch(ex) { /* user is using Firefox 3.5 */ }
-
- req.send( data );
- },
-
- // Main function
- // This is method that has to be called from outside this module
- // The other available method is sendFile
- send: function(title, url, selection)
- {
- if (!this.sendUrl)
- this.init();
-
- // Local files: upload them to a web server
- if ((/^file:/i).test(url))
- {
- var nsFile = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService)
- .getProtocolHandler("file")
- .QueryInterface(Ci.nsIFileProtocolHandler)
- .getFileFromURLSpec(url);
- this.sendFile(nsFile);
- return;
- }
-
- if (!(/^(https?|market|tel|sms(to)?|mailto|ftp):/i).test( url ))
- {
- this.alert(this.getString("InvalidScheme"));
- return;
- }
-
- var max_length = 1024;
- if (selection.length > max_length)
- selection = selection.substring(0, max_length);
-
- // Send the protocols that aren't currently whitelisted through a proxy server
- if (!(/^(https?):/i).test( url ))
- {
- // Rewrite the URI so it's send first to the proxy
- var proxyUrl;
- proxyUrl = this.prefs.getCharPref( "proxyUrl" );
- if (proxyUrl)
- url = proxyUrl + encodeURIComponent( url);
- }
-
- var data = 'title=' + encodeURIComponent(title) +
- '&url=' + encodeURIComponent(url) + '&sel=' + encodeURIComponent(selection);
-
- this.pendingMessage = data;
- this.processXHR(this.sendUrl, 'POST', data, this.processSentData);
- },
-
- processSentData : function(req)
- {
- var body = req.responseText;
-
- if (body.substring(0, 2) == 'OK')
- {
- delete this.pendingMessage;
- this.retryCount=0;
- this.popupNotification(this.getString("InfoSent"));
- return;
- }
- if (body.indexOf('LOGIN_REQUIRED') == 0)
- {
- this.popupNotification( this.getString("LoginRequired") );
-
- //Open Google login page and close tab when done
- this.openTab(this.logInUrl, this.loggedInUrl, function() {sendtophoneCore.loginSuccessful();} );
-
- return;
- }
- if (body.indexOf('DEVICE_NOT_REGISTERED') == 0)
- {
- this.popupNotification(this.getString("DeviceNotRegistered"));
-
- // Open tab with apk download
- this.openTab(this.apkUrl);
- return;
- }
-
- this.alert(this.getString("ErrorOnSend") + '\r\n' + body);
- },
-
- logout: function()
- {
- if (!this.prefs)
- this.init();
-
- // Open Google logout page, and close tab when finished
- this.openTab(this.logOutUrl, this.loggedOutUrl, function() {sendtophoneCore.logoutSuccessful();} );
-
-/*
- // This doesn't work if third party cookies are bloqued. Why???
- this.processXHR(this.logOutUrl, 'GET', null, function(req)
- {
- // This will be called only if there's a problem
- this.alert(this.getString("LogoutError") + '\r\n' + req.responseText );
- });
- */
- },
-
- openTab: function(url, successUrl, callback)
- {
- var gBrowser = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator)
- .getMostRecentWindow("navigator:browser")
- .gBrowser;
-
- var lastTabIndex = gBrowser.tabContainer.selectedIndex;
- var tab = gBrowser.addTab(url);
- gBrowser.selectedTab = tab;
-
- if (successUrl && callback)
- {
- var c2pTab = gBrowser.getBrowserForTab(tab);
- //Add listener for callback URL
- c2pTab.addEventListener("load", function () {
- if(successUrl==c2pTab.currentURI.spec){
- callback();
-
- // Close tab
- gBrowser.removeTab(tab);
- // ReFocus on tab being sent
- gBrowser.selectedTab = gBrowser.tabContainer.childNodes[lastTabIndex];
- }
- }, true);
- }
- },
-
- logoutSuccessful: function()
- {
- this.popupNotification(this.getString("LogoutSuccessful"));
- },
-
- loginSuccessful: function()
- {
- this.popupNotification( this.getString("LoginSuccessful") );
-
- // Send pending message
- this.processXHR(this.sendUrl, 'POST', this.pendingMessage, this.processSentData);
- },
-
- toUTF8: function(str)
- {
- var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
- .createInstance(Ci.nsIScriptableUnicodeConverter);
- converter.charset = "utf-8";
- var data = converter.ConvertFromUnicode(str);
- return data + converter.Finish();
- },
-
- sendFile: function( nsFile, callback )
- {
- if (!this.prefs)
- this.init();
-
- let uri = this.prefs.getCharPref( "fileServerUrl" );
- if (!uri)
- {
- this.alert( this.getString("FileUploadsDisabled") );
- return;
- }
-
- if (typeof sendtophoneUploadsManager == "undefined")
- Components.utils.import("resource://sendtophone/uploadsManager.js");
-
- if (nsFile.isDirectory())
- {
- // There's no progress notification while compressing, only on end.
- let progressId = sendtophoneUploadsManager.addZip(nsFile);
- // Compress the contents to a zip file
- zipFolder(nsFile, function(nsZip)
- {
- sendtophoneUploadsManager.finishedUpload( progressId );
-
- // Send the zip and delete it afterwards
- sendtophoneCore.sendFile(nsZip, function() { nsZip.remove(false) });
- }
- )
- return;
- }
-
- if (!nsFile.isFile())
- {
- this.alert(this.getString("InvalidFile"));
- return;
- }
-
- let size = Math.round(nsFile.fileSize / 1024);
- let maxSize = this.prefs.getIntPref( "fileUploadMaxKb" );
- if (maxSize>0 && size>maxSize)
- {
- this.alert( this.getString("FileTooBig") );
- return;
- }
-
- let uploadName = nsFile.leafName;
- // Try to determine the MIME type of the file
- var mimeType = "text/plain";
- try {
- var mimeService = Cc["@mozilla.org/mime;1"]
- .getService(Ci.nsIMIMEService);
- mimeType = mimeService.getTypeFromFile(nsFile); // nsFile is an nsIFile instance
- }
- catch(e) { /* eat it; just use text/plain */ }
-
- // Buffer the upload file
- var inStream = Cc["@mozilla.org/network/file-input-stream;1"]
- .createInstance(Ci.nsIFileInputStream);
- inStream.init(nsFile, 1, 1, inStream.CLOSE_ON_EOF);
- var bufInStream = Cc["@mozilla.org/network/buffered-input-stream;1"]
- .createInstance(Ci.nsIBufferedInputStream);
- bufInStream.init(inStream, 4096);
-
- //Setup the boundary start stream
- var boundary = "--SendToPhone-------------" + Math.random();
- var startBoundryStream = Cc["@mozilla.org/io/string-input-stream;1"]
- .createInstance(Ci.nsIStringInputStream);
- startBoundryStream.setData("\r\n--"+boundary+"\r\n",-1);
-
- // Setup the boundary end stream
- var endBoundryStream = Cc["@mozilla.org/io/string-input-stream;1"]
- .createInstance(Ci.nsIStringInputStream);
- endBoundryStream.setData("\r\n--"+boundary+"--",-1);
-
- // Setup the mime-stream - the 'part' of a multi-part mime type
- var mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"].createInstance(Ci.nsIMIMEInputStream);
- mimeStream.addContentLength = false;
- mimeStream.addHeader("Content-disposition","form-data; charset: utf-8; name=\"upload\"; filename=\"" + this.toUTF8(uploadName) + "\"");
- mimeStream.addHeader("Content-type", mimeType);
- mimeStream.setData(bufInStream);
-
- // Setup a multiplex stream
- var multiStream = Cc["@mozilla.org/io/multiplex-input-stream;1"]
- .createInstance(Ci.nsIMultiplexInputStream);
- multiStream.appendStream(startBoundryStream);
- multiStream.appendStream(mimeStream);
- multiStream.appendStream(endBoundryStream);
-
- var req = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
- .createInstance(Ci.nsIXMLHttpRequest);
-
- // Show the progress of uploads
- sendtophoneUploadsManager.addUpload(nsFile, req);
-
- req.open('POST', uri, true);
-
- req.setRequestHeader("Content-length",multiStream.available());
- req.setRequestHeader("Content-type","multipart/form-data; charset: utf-8; boundary="+boundary);
- req.addEventListener("load", function(event)
- {
- // If there's a callback (to delete temporary files) we call it now
- if (callback)
- callback();
-
- var body = event.target.responseXML;
- var uploads;
- if (body && (uploads = body.documentElement.getElementsByTagName("upload")))
- {
- var data = uploads[0].firstChild.data;
-// sendtophoneCore.toConsole(data);
- sendtophoneCore.send(uploadName, data, "");
- return;
- }
- // error.
- sendtophoneCore.alert(uri + "\r\n" + event.target.responseText);
- }, false);
- // Handle errors or aborted uploads
- req.addEventListener("error", function(evt)
- {
- sendtophoneCore.alert("Error while sending the file to the server:\r\n" + uri);
-
- // If there's a callback (to delete temporary files) we call it now
- if (callback)
- callback();
- }, false);
- req.addEventListener("abort", function(evt)
- {
- // Silent.
-
- // If there's a callback (to delete temporary files) we call it now
- if (callback)
- callback();
- }, false);
-
- /*
- if required for cookies... don't think so.
- try {
- req.channel.QueryInterface(Ci.nsIHttpChannelInternal).
- forceAllowThirdPartyCookie = true;
- }
- catch(ex) {}
- */
- req.send(multiStream);
- }
-
-
-};
-
-/* Zipping functions */
-const PR_RDONLY = 0x01;
-const PR_WRONLY = 0x02;
-const PR_RDWR = 0x04;
-const PR_CREATE_FILE = 0x08;
-const PR_APPEND = 0x10;
-const PR_TRUNCATE = 0x20;
-const PR_SYNC = 0x40;
-const PR_EXCL = 0x80;
-
-/**
-* folder is a nsFile pointing to a folder
-* callback is a function that it's called after the zip is created. It has one parameter: the nsFile created
-*/
-function zipFolder(folder, callback)
-{
- // get TMP directory
- var nsFile = Cc["@mozilla.org/file/directory_service;1"].
- getService(Ci.nsIProperties).
- get("TmpD", Ci.nsIFile);
-
- // Create a new file
- nsFile.append( folder.leafName + ".zip");
- nsFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0666);
-
- var zipWriter = Components.Constructor("@mozilla.org/zipwriter;1", "nsIZipWriter");
- var zipW = new zipWriter();
-
- zipW.open(nsFile, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
-
- addFolderContentsToZip(zipW, folder, "");
-
- // We don't want to block the main thread, so the zipping is done asynchronously
- // and here we get the notification that it has finished
- var observer = {
- onStartRequest: function(request, context) {},
- onStopRequest: function(request, context, status)
- {
- zipW.close();
- // Notify that we're done. Now it must be sent and deleted afterwards
- callback(nsFile);
- }
- }
-
- zipW.processQueue(observer, null);
-}
-
-/**
-* function to add the contents of a folder recursively
-* zipW a nsIZipWriter object
-* folder a nsFile object pointing to a folder
-* root a string defining the relative path for this folder in the zip
-*/
-function addFolderContentsToZip(zipW, folder, root)
-{
- var entries = folder.directoryEntries;
- while(entries.hasMoreElements())
- {
- var entry = entries.getNext();
- entry.QueryInterface(Ci.nsIFile);
- zipW.addEntryFile(root + entry.leafName, Ci.nsIZipWriter.COMPRESSION_DEFAULT, entry, true);
- if (entry.isDirectory())
- addFolderContentsToZip(zipW, entry, root + entry.leafName + "/");
- }
-}
diff --git a/third_party/firefox_sendtophone/modules/uploadsManager.js b/third_party/firefox_sendtophone/modules/uploadsManager.js
deleted file mode 100644
index b501294..0000000
--- a/third_party/firefox_sendtophone/modules/uploadsManager.js
+++ /dev/null
@@ -1,278 +0,0 @@
-var EXPORTED_SYMBOLS = ["sendtophoneUploadsManager"];
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-
-var sendtophoneUploadsManager = {
- uploads: {},
- _counter : 0,
-
- _listeners: [],
-
- // Add a listener that will be called when there's any change on the uploads
- addListener: function( obj )
- {
- this._listeners.push( obj );
- },
-
- // Remove an existing listener object
- removeListener: function( obj )
- {
- for(let i=0, listener; listener = this._listeners[i]; i++)
- {
- if (obj == listener)
- {
- this._listeners.splice(i, 1);
- return;
- }
- }
- },
-
- /**
- * Adds a new upload
- * nsFile: The file that it's being send
- * req: the XmlHttpRequest that will send that file
- */
- addUpload: function(nsFile, req)
- {
- let id = this._addToUploads( {file:nsFile, req:req, state:0, percent:0,
- startTime: Date.now() - 100, currBytes: 0, maxBytes: nsFile.fileSize} );
-
- req.upload.addEventListener("progress", function(evt)
- {
- if (evt.lengthComputable) {
- sendtophoneUploadsManager.updateProgress(id, evt.loaded, evt.total);
- }
- }, false);
- req.upload.addEventListener("load", function(evt)
- {
- sendtophoneUploadsManager.updateProgress(id, evt.loaded, evt.total);
- }, false);
-
- // Clear row when it has finished
- req.addEventListener("load", function(evt)
- {
- sendtophoneUploadsManager.finishedUpload(id);
- }, false);
- // If there's an error or it's aborted, finish its tracking.
- req.addEventListener("error", function(evt)
- {
- sendtophoneUploadsManager.finishedUpload(id);
- }, false);
- req.addEventListener("abort", function(evt)
- {
- sendtophoneUploadsManager.finishedUpload(id);
- }, false);
-
- },
-
- /**
- * Adds a zip (it's not an upload, but this way we can show that something is going on)
- * nsFolder: a nsFile object pointing to the folder being compressed
- * When the compression has finished, the external code has to call .finishedUpload(id)
- * with the id returned in this method.
- */
- addZip: function(nsFolder)
- {
- return this._addToUploads( {file:nsFolder, state:1} );
- },
-
- _addToUploads: function( obj )
- {
- initShowTest();
-
- // Creates a counter to automatically assign new ids to each upload
- let id = this._counter++;
- obj.id = id;
- this.uploads[id] = obj;
-
- for(let i=0, listener; listener = this._listeners[i]; i++)
- listener.fileAdded( obj );
-
- return id;
- },
-
- showWindow: function()
- {
- // Open the tab
- openAndReuseOneTabPerURL("chrome://sendtophone/content/uploads.xul");
- },
-
- updateProgress: function(id, loaded, total)
- {
- let upload = this.uploads[id];
-
- // The progress events are fired when the data is sent,
- // but that leads to wrong speed because we don't know how long
- // it has really taken to process the packet
- // As long as the upload progress the speed converges to a more correct value
- // But here we will try to adjust it (fake it) sooner
- if (!upload.firstPacket)
- upload.firstPacket = Date.now();
- else
- if (!upload.adjusted)
- {
- upload.adjusted = true;
-// let elapsed = Date.now() - upload.firstPacket; // time to send a packet to the server and get back
- let elapsed = Date.now() - upload.startTime; //
- upload.startTime = upload.startTime - elapsed;
- }
-
- upload.currBytes = loaded;
- upload.maxBytes = total;
-
- this._listeners.forEach( function( listener ) {
- listener.progressUpdate( upload );
- });
- },
-
- finishedUpload: function(id)
- {
- let upload = this.uploads[id];
- delete this.uploads[id];
-
- // Review if there are pending files to cancel the show timer
- let count = 0;
- for(let id in this.uploads)
- count++;
- if (count == 0)
- cancelShowTimer();
-
- // Notify the listeners
- this._listeners.forEach( function( listener ) {
- listener.fileFinished( upload );
- });
- },
-
- cancelUpload: function(id)
- {
- let upload = this.uploads[id];
- upload.req.abort();
-
- },
-
- // For use while debugging
- toConsole: function(text)
- {
- var aConsoleService = Cc["@mozilla.org/consoleservice;1"]
- .getService(Ci.nsIConsoleService);
-
- aConsoleService.logStringMessage( text );
- },
-
- // Check if we might need to show the window.
- // Either some folder is being compressed,
- // or there's some file that might take longer than 2 seconds.
- // If there's some file that we still don't know the speed
- // then consider it also as needed.
- isWindowNeeded: function()
- {
- for (let id in this.uploads)
- {
- let upload = this.uploads[id] ;
-
- // zipping folder: if takes so long to compress it, it will also take some time to upload it
- if (upload.state==1)
- return true;
-
- // If it still hasn't uploaded anything then something might be wrong
- if (upload.currBytes==0)
- return true;
-
- let elapsedTime = (Date.now() - upload.startTime) / 1000;
- let speed = upload.currBytes/elapsedTime;
- let remainingSecs = (upload.maxBytes - upload.currBytes) / speed;
-// this.toConsole(elapsedTime + " " + speed + " " + remainingSecs);
-
- if (remainingSecs > 2)
- return true;
-
-// if (remainingSecs > 1 && elapsedTime> 2)
-// return true;
- }
- }
-}
-
-/**
-* Internal function
-* Instead of poping up the uploads window inmediately wait a little
-* trying to avoid flicker for small files
-*/
-let showTimer = null;
-
-// we need a nsITimerCallback compatible...
-// ... interface for the callbacks.
-var showTimerEvent =
-{
- notify: function(timer)
- {
- if (sendtophoneUploadsManager.isWindowNeeded())
- {
- cancelShowTimer();
- sendtophoneUploadsManager.showWindow();
- }
- }
-}
-
-function initShowTest()
-{
- if (showTimer)
- return;
-
- // Now it is time to create the timer...
- showTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
- showTimer.initWithCallback(showTimerEvent, 400, Ci.nsITimer.TYPE_REPEATING_SLACK);
-}
-
-function cancelShowTimer()
-{
- if (!showTimer)
- return;
-
- showTimer.cancel();
- showTimer = null
-}
-
-// https://developer.mozilla.org/en/Code_snippets/Tabbed_browser#Reusing_tabs
-function openAndReuseOneTabPerURL(url) {
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
- var browserEnumerator = wm.getEnumerator("navigator:browser");
-
- // Check each browser instance for our URL
- var found = false;
- while (!found && browserEnumerator.hasMoreElements()) {
- var browserWin = browserEnumerator.getNext();
- var tabbrowser = browserWin.gBrowser;
-
- // Check each tab of this browser instance
- var numTabs = tabbrowser.browsers.length;
- for (var index = 0; index < numTabs; index++) {
- var currentBrowser = tabbrowser.getBrowserAtIndex(index);
- if (url == currentBrowser.currentURI.spec) {
-
- // The URL is already opened. Select this tab.
- tabbrowser.selectedTab = tabbrowser.tabContainer.childNodes[index];
-
- // Focus *this* browser-window
- browserWin.focus();
-
- found = true;
- break;
- }
- }
- }
-
- // Our URL isn't open. Open it now.
- if (!found) {
- var recentWindow = wm.getMostRecentWindow("navigator:browser");
- if (recentWindow) {
- // Use an existing browser window
- recentWindow.delayedOpenTab(url, null, null, null, null);
- }
- else {
- // No browser windows are open, so open a new one.
- window.open(url);
- }
- }
-}
diff --git a/third_party/operatophone/README b/third_party/operatophone/README
deleted file mode 100644
index fcb8737..0000000
--- a/third_party/operatophone/README
+++ /dev/null
@@ -1,28 +0,0 @@
-Browser to Phone for Opera 11+
------------------------------------
-
-The Opera to Phone extension is available from the following URL:
-
-https://addons.opera.com/addons/extensions/details/opera-to-phone
-
-* Details *
-
-Seamlessly push links, maps, youtube videos, phone numbers and text to copy to the clipboard directly to your Android device.
-
-You also need to install the Chrome to Phone Android application on your phone. The application can be downloaded from Android Market (search for 'Chrome to Phone'). Requires a mobile phone running Android 2.2 ("Froyo") or later.
-
-* Features *
-
-- Click the Opera to Phone button to open the current page on your Android browser.
-- Click the Opera to Phone button on Google Maps to launch the Android Google Maps App.
-- Click the Opera to Phone button on YouTube to launch the Android YouTube app.
-- Select a phone number on the current web page and click the Opera to Phone button to launch the Android Dialer.
-- Select some text on the current web page and click the Opera to Phone button to copy the selected text to the Android clipboard (long-press on text boxes to get the paste option in Android).
-
-* Further information *
-
-If you have any feedback on this extension please feel free to drop me an email:
-
-richDOTtibREMOVEbettATgmailDOTcom
-
-
diff --git a/third_party/operatophone/config.xml b/third_party/operatophone/config.xml
deleted file mode 100644
index 7a88100..0000000
--- a/third_party/operatophone/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- Opera to Phone
-
-
- Copyright 2010 Rich Tibbett
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
- Rich Tibbett
-
- Seamlessly push links, maps, youtube videos, phone numbers and text to copy to the clipboard directly to your Android device.
-
diff --git a/third_party/operatophone/constants.js b/third_party/operatophone/constants.js
deleted file mode 100644
index 61491e3..0000000
--- a/third_party/operatophone/constants.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Portions of this page are modifications based on work created and shared
- * by Google and used according to terms described in the Creative Commons 3.0
- * Attribution License.
- */
-
-var apiVersion = 5;
-var baseUrl = 'https://chrometophone.appspot.com';
-var sendUrl = baseUrl + '/send?ver=' + apiVersion;
-var signInUrl = baseUrl + '/signin?extret=' +
-encodeURIComponent('http://code.google.com/p/chrometophone/logo') + '?login&ver=' + apiVersion;
-var signOutUrl = baseUrl + '/signout?extret=' +
-encodeURIComponent('http://code.google.com/p/chrometophone/logo') + '?logout&ver=' + apiVersion;
-var registerUrl = baseUrl + '/register?ver=' + apiVersion;
-var apkUrl = 'http://code.google.com/p/chrometophone/wiki/AndroidApp';
-
-var ACTION_START_SEND = 'start_send_process';
-var ACTION_SEND_PAGE = 'send_to_phone';
-var ACTION_APK_REQUIRED = 'apk_required';
-var ACTION_CAPTURE_SELECTION = 'capture_selection';
-var ACTION_OPEN_TAB = 'open_tab';
-var ACTION_CLOSE_TAB = 'close_tab';
-
-var STATUS_SUCCESS = 'success';
-var STATUS_LOGIN_REQUIRED = 'login_required';
-var STATUS_DEVICE_NOT_REGISTERED = 'device_not_registered';
-var STATUS_NO_TAB_ACCESS = 'no_tab_access';
-var STATUS_GENERAL_ERROR = 'general_error';
-
-var BROWSER_CHANNEL_RETRY_INTERVAL_MS = 10000 * (1 + Math.random() - 0.5);
\ No newline at end of file
diff --git a/third_party/operatophone/icon_18x18.png b/third_party/operatophone/icon_18x18.png
deleted file mode 100644
index 1c589c2..0000000
Binary files a/third_party/operatophone/icon_18x18.png and /dev/null differ
diff --git a/third_party/operatophone/icon_64x64.png b/third_party/operatophone/icon_64x64.png
deleted file mode 100644
index d6f08cd..0000000
Binary files a/third_party/operatophone/icon_64x64.png and /dev/null differ
diff --git a/third_party/operatophone/includes/operatophone.js b/third_party/operatophone/includes/operatophone.js
deleted file mode 100644
index 37f77c6..0000000
--- a/third_party/operatophone/includes/operatophone.js
+++ /dev/null
@@ -1,80 +0,0 @@
-// ==UserScript==
-// @include http://*
-// @include https://*
-// ==/UserScript==
-
-if ( window.location === window.parent.location) {
-
- var ACTION_CAPTURE_SELECTION = 'capture_selection';
- var ACTION_SEND_PAGE = 'send_to_phone';
- var ACTION_CLOSE_TAB = 'close_tab';
-
- var currentUrl = document.location.href;
-
- opera.extension.addEventListener( 'message', function( message ) {
- if( message.data.action === ACTION_CAPTURE_SELECTION ) {
- var pageInfo = {
- action: ACTION_SEND_PAGE,
- data: {
- link: currentUrl,
- title: document.title,
- selection: window.getSelection() ? window.getSelection().toString() : null
- }
- };
- // URL overrides
- if ( currentUrl.match( /^http[s]?:\/\/maps\.google\./i ) ||
- currentUrl.match( /^http[s]?:\/\/www\.google\.[a-z]{2,3}(\.[a-z]{2})\/maps/i ) ) {
- var link = document.getElementById('link');
- if (link && link.href)
- pageInfo.data.link = link.href;
- }
- opera.extension.postMessage( pageInfo );
- }
- }, false);
-
- function findAndReplace(searchText, replacement, searchNode) {
- if (!searchText || typeof replacement === 'undefined') {
- // Throw error here if you want...
- return;
- }
- var regex = typeof searchText === 'string' ?
- new RegExp(searchText, 'g') : searchText,
- childNodes = (searchNode || document.body).childNodes,
- cnLength = childNodes.length,
- excludes = 'html,head,style,title,link,meta,script,object,iframe';
- while (cnLength--) {
- var currentNode = childNodes[cnLength];
- if (currentNode.nodeType === 1 &&
- (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {
- arguments.callee(searchText, replacement, currentNode);
- }
- if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {
- continue;
- }
- var parent = currentNode.parentNode,
- frag = (function(){
- var html = currentNode.data.replace(regex, replacement),
- wrap = document.createElement('div'),
- frag = document.createDocumentFragment();
- wrap.innerHTML = html;
- while (wrap.firstChild) {
- frag.appendChild(wrap.firstChild);
- }
- return frag;
- })();
- parent.insertBefore(frag, currentNode);
- parent.removeChild(currentNode);
- }
- }
- window.addEventListener( 'DOMContentLoaded', function() {
- if( currentUrl.match( /^http[s]?:\/\/www\.google\.com\/accounts\/ServiceLogin\?(.*)?ahname=Chrome\+to\+Phone(.*)?$/i ) ) {
- // Opera log in message so users know what they are logging in to.
- findAndReplace('Chrome', 'Opera', document.body);
- } else if (currentUrl.match( /^http:\/\/code\.google\.com\/p\/chrometophone\/logo(.*)?$/i )) {
- opera.extension.postMessage({
- action: ACTION_CLOSE_TAB
- });
- }
- }, false);
-
-}
diff --git a/third_party/operatophone/index.html b/third_party/operatophone/index.html
deleted file mode 100644
index ce72758..0000000
--- a/third_party/operatophone/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/operatophone/o2p_help.html b/third_party/operatophone/o2p_help.html
deleted file mode 100644
index 59febc3..0000000
--- a/third_party/operatophone/o2p_help.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- Opera to Phone
-
-
-
-Opera to Phone Extension - Help
-
-Welcome to Opera to Phone.
-
-Introduction
-
-
- This extension adds a button to Opera that allows users to send links from their Opera desktop browser to their Android device using Android's Cloud to Device Messaging service.
-
-
- You need to install Chrome to Phone Android on your
- phone for this extension to work. This application can be downloaded from Android Market (search for 'Chrome to Phone') or directly from the project downloads page. Requires a mobile
- phone running Android 2.2 ("Froyo") or later.
-
-
-Extension Features
-
-
- - Send links to the Android browser.
- - Google Maps links launch the Google Maps Android app.
- - YouTube links launch the YouTube Android app.
- - Selecting phone numbers in Web pages launches the Android dialer with the number pre-populated.
- - Selected text populates the Android clipboard (long-press on text boxes to get paste option).
-
-
-Requirements
-
-
- - Opera 11 (Beta build 1111+)
- - Android 2.2 ("Froyo") device
- - Chrome to Phone application installed on Android device
-
-
-If you have any questions, comments or feedback, please visit the support page.
-
-
-
diff --git a/third_party/operatophone/popup.html b/third_party/operatophone/popup.html
deleted file mode 100644
index fcfcd73..0000000
--- a/third_party/operatophone/popup.html
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/third_party/operatophone/send_logic.js b/third_party/operatophone/send_logic.js
deleted file mode 100644
index 3c9b711..0000000
--- a/third_party/operatophone/send_logic.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Portions of this page are modifications based on work created and shared
- * by Google and used according to terms described in the Creative Commons 3.0
- * Attribution License.
- */
-
-var channel;
-var socket;
-var req = new XMLHttpRequest();
-
-function sendToPhone( data, listener ) {
- req.open('POST', sendUrl, true);
- req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- req.setRequestHeader('X-Same-Domain', 'true'); // XSRF protector
-
- req.onreadystatechange = function() {
- if (this.readyState == 4) {
- if (req.status == 200) {
- var body = req.responseText;
- if (body.indexOf('OK') == 0) {
- listener(STATUS_SUCCESS);
- } else if (body.indexOf('LOGIN_REQUIRED') == 0) {
- listener(STATUS_LOGIN_REQUIRED);
- } else if (body.indexOf('DEVICE_NOT_REGISTERED') == 0) {
- listener(STATUS_DEVICE_NOT_REGISTERED);
- }
- } else {
- listener(STATUS_GENERAL_ERROR);
- }
- }
- };
-
- var postData = '';
- for(var key in data) {
- if(postData.length > 1)
- postData += '&';
- if( data[key] !== null )
- postData += key + '=' + encodeURIComponent( data[key] );
- }
- req.send(postData);
-}