Bug 697383 - implement navigator.mozApps - Part 0 : Remove old implementation [r=mfinkle]
authorFabrice Desré <fabrice@mozilla.com>
Mon, 28 Nov 2011 12:13:11 -0800
changeset 82603 21ecdc2d0a6f929160ad463483c9189694f2d936
parent 82602 b10b930500f1df703e4c1b11a1ec395a9c4c89b9
child 82604 b9be5d6b223046189938ec1c34881ddd591bb0ff
push id519
push userakeybl@mozilla.com
push dateWed, 01 Feb 2012 00:38:35 +0000
treeherdermozilla-beta@788ea1ef610b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmfinkle
bugs697383
milestone11.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 697383 - implement navigator.mozApps - Part 0 : Remove old implementation [r=mfinkle]
mobile/xul/installer/package-manifest.in
toolkit/Makefile.in
toolkit/mozapps/webapps/Makefile.in
toolkit/mozapps/webapps/OpenWebapps.idl
toolkit/mozapps/webapps/OpenWebapps.js
toolkit/mozapps/webapps/OpenWebapps.jsm
toolkit/mozapps/webapps/OpenWebapps.manifest
--- a/mobile/xul/installer/package-manifest.in
+++ b/mobile/xul/installer/package-manifest.in
@@ -272,17 +272,16 @@
 @BINPATH@/components/xpcom_threads.xpt
 @BINPATH@/components/xpcom_xpti.xpt
 @BINPATH@/components/xpconnect.xpt
 @BINPATH@/components/xulapp.xpt
 @BINPATH@/components/xul.xpt
 @BINPATH@/components/xuldoc.xpt
 @BINPATH@/components/xultmpl.xpt
 @BINPATH@/components/zipwriter.xpt
-@BINPATH@/components/openwebapps.xpt
 
 ; JavaScript components
 @BINPATH@/components/ConsoleAPI.manifest
 @BINPATH@/components/ConsoleAPI.js
 @BINPATH@/components/FeedProcessor.manifest
 @BINPATH@/components/FeedProcessor.js
 @BINPATH@/components/BrowserFeeds.manifest
 @BINPATH@/components/FeedConverter.js
@@ -326,17 +325,16 @@
 @BINPATH@/components/GPSDGeolocationProvider.js
 @BINPATH@/components/nsSidebar.manifest
 @BINPATH@/components/nsSidebar.js
 @BINPATH@/components/extensions.manifest
 @BINPATH@/components/addonManager.js
 @BINPATH@/components/amContentHandler.js
 @BINPATH@/components/amWebInstallListener.js
 @BINPATH@/components/nsBlocklistService.js
-@BINPATH@/components/OpenWebapps.manifest
 
 #ifdef MOZ_UPDATER
 @BINPATH@/components/nsUpdateService.manifest
 @BINPATH@/components/nsUpdateService.js
 @BINPATH@/components/nsUpdateServiceStub.js
 #endif
 @BINPATH@/components/nsUpdateTimerManager.manifest
 @BINPATH@/components/nsUpdateTimerManager.js
@@ -602,17 +600,16 @@ bin/components/@DLL_PREFIX@nkgnomevfs@DL
 @BINPATH@/components/HelperAppDialog.js
 @BINPATH@/components/LoginManager.js
 @BINPATH@/components/LoginManagerPrompter.js
 @BINPATH@/components/MobileComponents.manifest
 @BINPATH@/components/MobileComponents.xpt
 @BINPATH@/components/PromptService.js
 @BINPATH@/components/SessionStore.js
 @BINPATH@/components/Sidebar.js
-@BINPATH@/components/OpenWebapps.js
 #ifdef MOZ_SAFE_BROWSING
 @BINPATH@/components/SafeBrowsing.js
 #endif
 #ifdef MOZ_UPDATER
 @BINPATH@/components/UpdatePrompt.js
 #endif
 @BINPATH@/components/XPIDialogService.js
 @BINPATH@/components/CapturePicker.js
--- a/toolkit/Makefile.in
+++ b/toolkit/Makefile.in
@@ -51,17 +51,16 @@ PARALLEL_DIRS = \
   locales \
   mozapps/downloads \
   mozapps/extensions \
   mozapps/handling \
   mozapps/preferences \
   mozapps/plugins \
   mozapps/shared \
   mozapps/update \
-  mozapps/webapps \
   obsolete \
   profile \
   themes \
   $(NULL)
 
 ifneq (,$(filter gtk2 qt,$(MOZ_WIDGET_TOOLKIT)))
 PARALLEL_DIRS += system/unixproxy
 endif
deleted file mode 100644
--- a/toolkit/mozapps/webapps/Makefile.in
+++ /dev/null
@@ -1,57 +0,0 @@
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (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.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is the Open Web Apps.
-#
-# The Initial Developer of the Original Code is Ben Goodger.
-# Portions created by the Initial Developer are Copyright (C) 2004
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#   Fabrice Desré <fabrice@mozilla.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-DEPTH     = ../../..
-topsrcdir = @top_srcdir@
-srcdir    = @srcdir@
-VPATH     = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE = openwebapps
-
-XPIDLSRCS = OpenWebapps.idl
-
-EXTRA_COMPONENTS += \
-  OpenWebapps.js \
-  OpenWebapps.manifest \
-  $(NULL)
-
-EXTRA_JS_MODULES = \
-  OpenWebapps.jsm \
-  $(NULL)
-
-include $(topsrcdir)/config/rules.mk
deleted file mode 100644
--- a/toolkit/mozapps/webapps/OpenWebapps.idl
+++ /dev/null
@@ -1,118 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (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.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Open Web Apps.
- *
- * The Initial Developer of the Original Code is
- * Mozilla Corporation
- * Portions created by the Initial Developer are Copyright (C) 2011
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Fabrice Desré <fabrice@mozilla.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-// IDL for https://developer.mozilla.org/en/OpenWebApps/The_JavaScript_API
-
-#include "nsISupports.idl"
-
-[scriptable, uuid(3b937eb5-679b-41e9-aefa-543849fa61dd)]
-interface nsIOpenWebappsApplication : nsISupports {
-    attribute jsval manifest;
-    attribute DOMString origin;
-    attribute jsval install_data;
-    attribute DOMString install_origin;
-    attribute unsigned long install_time;
-};
-
-[scriptable, function, uuid(fa3ac1bb-ad7d-44d7-8585-9ecdf3782d65)]
-interface nsIOpenWebappsSuccessInstalled : nsISupports {
-    void handle(in nsIOpenWebappsApplication application);
-};
-
-[scriptable, function, uuid(a8a83f45-4cbe-4806-b867-017554e30bd4)]
-interface nsIOpenWebappsSuccessList : nsISupports {
-    void handle([array, size_is(count)] in nsIOpenWebappsApplication apps,
-                in unsigned long count);
-};
-
-[scriptable, function, uuid(75e44e3f-ccda-4497-af68-8abd3f5e1d7b)]
-interface nsIOpenWebappsError : nsISupports {
-    attribute DOMString code;
-    attribute DOMString message;
-};
-
-[scriptable, function, uuid(8b29495e-a5e4-4e76-9af8-0f6fe97b8959)]
-interface nsIOpenWebappsErrorCB : nsISupports {
-    void handle(in nsIOpenWebappsError error);
-};
-
-[scriptable, function, uuid(b86669ab-6a36-4ceb-a4bf-a980dd496144)]
-interface nsIOpenWebappsSuccessEmpty : nsISupports {
-    void handle();
-};
-
-[scriptable, function, uuid(a458afcf-eee9-42fb-bd90-75d5e41c0d9e)]
-interface nsIOpenWebappsChangeCallback : nsISupports {
-    // what is either "add" when new apps are added to the repository, or
-    // "remove" when they are deleted.
-    void update(in DOMString what, [array, size_is(count)] in nsIOpenWebappsApplication apps,
-		in unsigned long count);
-};
-
-[scriptable, uuid(f3ec76a6-abca-4d90-b8c9-e221033068ef)]
-interface nsIOpenWebappsMgmt : nsISupports {
-    void launch(in DOMString origin,
-                [optional] in nsIOpenWebappsSuccessEmpty onsuccess,
-                [optional] in nsIOpenWebappsErrorCB onerror);
-    
-    void list(in nsIOpenWebappsSuccessList onsuccess,
-              [optional] in nsIOpenWebappsErrorCB onerror);
-    
-    void uninstall(in DOMString origin,
-                   in nsIOpenWebappsSuccessEmpty onsuccess,
-                   [optional] in nsIOpenWebappsErrorCB onerror);
-
-    long watchUpdates(in nsIOpenWebappsChangeCallback callback);
-
-    void clearWatch(in long watchId);
-};
-
-[scriptable, uuid(cecd9de7-ea4e-45fd-8a01-a5861d9109ab)]
-interface nsIOpenWebapps : nsISupports {
-    void install(in DOMString manifestURI,
-                 [optional] in jsval install_data,
-                 [optional] in nsIOpenWebappsSuccessEmpty onsuccess,
-                 [optional] in nsIOpenWebappsErrorCB onerror);
-    
-    void amInstalled(in nsIOpenWebappsSuccessInstalled onsuccess,
-                     [optional] in nsIOpenWebappsErrorCB onerror);
-    
-    void getInstalledBy(in nsIOpenWebappsSuccessList onsuccess,
-                        [optional] in nsIOpenWebappsErrorCB onerror);
-    
-    readonly attribute nsIOpenWebappsMgmt mgmt;
-};
deleted file mode 100644
--- a/toolkit/mozapps/webapps/OpenWebapps.js
+++ /dev/null
@@ -1,296 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (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.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Open Web Apps.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2011
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Fabrice Desré <fabrice@mozilla.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-const Cr = Components.results;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-function OpenWebapps() {
-  this.messages = ["OpenWebapps:InstallDone", "OpenWebapps:InstallAborted", "OpenWebapps:GetInstalledBy:Return",
-                   "OpenWebapps:AmInstalled:Return", "OpenWebapps:MgmtLaunch:Return", "OpenWebapps:MgmtList:Return", 
-                   "OpenWebapps:MgmtUninstall:Return"];
-
-  this.mm = Cc["@mozilla.org/childprocessmessagemanager;1"].getService(Ci.nsISyncMessageSender);
-
-  this.messages.forEach((function(msgName) {
-    this.mm.addMessageListener(msgName, this);
-  }).bind(this));
-
-  this._callbacks = [];
-  this._window = null;
-  this._watchId = 0;
-}
-
-OpenWebapps.prototype = {
-  
-  /** from https://developer.mozilla.org/en/OpenWebApps/The_Manifest
-   * only the name property is mandatory
-   */
-  checkManifest: function(aManifest) {
-    return ("name" in aManifest);
-  },
-  
-  getCallbackId: function(aCallback) {
-    let id = "id" + this._getRandomId();
-    this._callbacks[id] = aCallback;
-    return id;
-  },
-  
-  getCallback: function(aId) {
-    return this._callbacks[aId];
-  },
-
-  removeCallback: function(aId) {
-    if (this._callbacks[aId])
-      delete this._callbacks[aId];
-  },
-  
-  _getRandomId: function() {
-    return Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator).generateUUID().toString();
-  },
-
-  _convertAppsArray: function(aApps) {
-    let apps = new Array();
-    for (let i = 0; i < aApps.length; i++) {
-      let app = aApps[i];
-      let xapp = Cc["@mozilla.org/openwebapps/application;1"].createInstance(Ci.nsIOpenWebappsApplication);
-      xapp.origin = app.origin;
-      xapp.manifest = app.manifest;
-      xapp.install_data = app.install_data;
-      xapp.install_origin = app.install_origin;
-      xapp.install_time = app.install_time;
-      apps.push(xapp);
-    }
-    return apps;
-  },
-
-  receiveMessage: function(aMessage) {
-    let msg = aMessage.json;
-    let callbacks = this.getCallback(msg.callbackID);
-
-    // if we have no such callback and this is not a broadcast message, bail out
-    if (!callbacks && aMessage.name != "OpenWebapps:InstallDone"
-                   && aMessage.name != "OpenWebapps:MgmtUninstall:Return")
-      return;
-
-    switch(aMessage.name) {
-      case "OpenWebapps:InstallAborted" :
-        if (callbacks.error)
-          callbacks.error.handle({ code: "denied", message: "User denied installation" });
-        break;
-      case "OpenWebapps:InstallDone" :
-        if (callbacks && callbacks.success)
-          callbacks.success.handle();
-        this._onInstalled([msg.app]);
-        break;
-      case "OpenWebapps:GetInstalledBy:Return":
-        if (callbacks && callbacks.success) {
-          let apps = this._convertAppsArray(msg.apps);
-          callbacks.success.handle(apps, apps.length);
-        }
-        break;
-      case "OpenWebapps:AmInstalled:Return":
-        if (callbacks.success)
-          callbacks.success.handle(msg.installed ? msg.app : null);
-        break;
-      case "OpenWebapps:MgmtLaunch:Return":
-        if (msg.ok && callbacks && callbacks.success)
-          callbacks.success.handle();
-        else if (!msg.ok && callbacks.error)
-          callbacks.error.handle({ code: "noSuchApp", message: "Unable to launch application"});
-        break;
-      case "OpenWebapps:MgmtList:Return":
-        if (msg.ok && callbacks && callbacks.success) {
-          let apps = this._convertAppsArray(msg.apps);
-          callbacks.success.handle(apps, apps.length);
-        }
-        else if (!msg.ok && callbacks && callbacks.error) {
-          callbacks.error.handle({ code: "noAppList", message: "Unable to get application list"});
-        }
-        break;
-      case "OpenWebapps:MgmtUninstall:Return":
-        if (msg.ok) {
-          if (callbacks && callbacks.success)
-            callbacks.success.handle();
-          this._onUninstalled([msg.app]);
-        }
-        else if (!msg.ok && callbacks.error)
-          callbacks.error.handle({ code: "noSuchApp", message: "Unable to uninstall application"});
-        break;
-    }
-    this.removeCallback(msg.callbackID);
-  },
-  
-  // nsIOpenWebapps implementation
-  
-  install: function(aURL, aInstallData, aSuccess, aError) {
-    let self = this;
-
-    let xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest);
-    xhr.open("GET", aURL, true);
-
-    xhr.addEventListener("load", function() {
-      if (xhr.status == 200) {
-        try {
-          let manifest = JSON.parse(xhr.responseText);
-          if (!self.checkManifest(manifest)) {
-            if (aError)
-              aError.handle({ code: "invalidManifest", message: "Invalid manifest" });
-          } else {
-            self.mm.sendAsyncMessage("OpenWebapps:Install", { storeURI: self._window.location.href, manifestURI: aURL, manifest: xhr.responseText,
-                             installData: aInstallData, callbackID: self.getCallbackId({ success: aSuccess, error: aError }) });
-          }
-        } catch(e) {
-          if (aError)
-            aError.handle({ code: "manifestParseError", message: "Unable to parse the manifest" });
-        }
-      }
-      else if (aError) {
-        aError.handle({ code: "networkError", message: "Unable to retrieve manifest" });
-      }      
-    }, false);
-
-    xhr.addEventListener("error", function() {
-      if (aError)
-        aError.handle({ code: "networkError", message: "Unable to retrieve manifest" });
-    }, false);
-
-    xhr.send(null);
-  },
-  
-  amInstalled: function(aSuccess, aError) {
-    this.mm.sendAsyncMessage("OpenWebapps:AmInstalled", { appURI: this._window.location.href, callbackID:  this.getCallbackId({ success: aSuccess, error: aError }) });
-  },
-  
-  getInstalledBy: function(aSuccess, aError) {
-    this.mm.sendAsyncMessage("OpenWebapps:GetInstalledBy", { storeURI: this._window.location.href, callbackID:  this.getCallbackId({ success: aSuccess, error: aError }) });
-  },
-  
-  // nsIOpenWebappsMgmt implementation
-  launch: function(aOrigin, aSuccess, aError) {
-    this.mm.sendAsyncMessage("OpenWebapps:MgmtLaunch", { origin: aOrigin, callbackID:  this.getCallbackId({ success: aSuccess, error: aError }) });
-  },
-  
-  list: function(aSuccess, aError) {
-    this.mm.sendAsyncMessage("OpenWebapps:MgmtList", { from: this._window.location.href, callbackID:  this.getCallbackId({ success: aSuccess, error: aError }) });
-  },
-  
-  uninstall: function(aOrigin, aSuccess, aError) {
-    this.mm.sendAsyncMessage("OpenWebapps:MgmtUninstall", { from: this._window.location.href, origin: aOrigin, callbackID:  this.getCallbackId({ success: aSuccess, error: aError }) });
-  },
-
-  _onRepoChange: function(aWhat, aApps) {
-    for (let prop in this._callbacks) {
-      if (this._callbacks[prop].isWatch) {
-        let apps = this._convertAppsArray(aApps);
-        this._callbacks[prop].callback.update(aWhat, apps, apps.length);
-      }
-    }
-  },
-
-  _onInstalled: function(aApps) {
-    this._onRepoChange("add", aApps);
-  },
-
-  _onUninstalled: function(aApps) {
-    this._onRepoChange("remove", aApps);
-  },
-
-  watchUpdates: function(aCallback) {
-    this._watchId++;
-    this._callbacks["_watch" + this._getRandomId()] = { isWatch: true, callback: aCallback };
-    return this._watchId;
-  },
-
-  clearWatch: function(aWatchId) {
-    this.removeCallback("_watch" + aWatchId);
-  },
-
-  handleEvent: function(aEvent) {
-    if (aEvent.type == "unload") {
-      // remove all callbacks so we don't call anything on a cleared scope
-      this._callbacks = [];
-    }
-  },
-  
-  // nsIDOMGlobalPropertyInitializer implementation
-  init: function(aWindow) {
-    this._window = aWindow;
-    this._window.addEventListener("unload", this, false);
-  },
-  
-  get mgmt() {
-    return this.QueryInterface(Ci.nsIOpenWebappsMgmt);
-  },
-  
-  classID: Components.ID("{d8fd4d63-27ea-47b9-a931-481214bb8b5b}"),
-
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsIOpenWebapps, Ci.nsIOpenWebappsMgmt, Ci.nsIDOMGlobalPropertyInitializer]),
-  
-  classInfo: XPCOMUtils.generateCI({classID: Components.ID("{d8fd4d63-27ea-47b9-a931-481214bb8b5b}"),
-                                    contractID: "@mozilla.org/openwebapps;1",
-                                    interfaces: [Ci.nsIOpenWebapps],
-                                    flags: Ci.nsIClassInfo.DOM_OBJECT,
-                                    classDescription: "OpenWebapps"})
-}
-
-function OpenWebappsApplication() {
-}
-
-OpenWebappsApplication.prototype = {
-  origin: null,
-  manifest: null,
-  install_data: null,
-  install_origin: null,
-  install_time: 0,
-
-  classID: Components.ID("{34456347-0792-45a4-8eb1-7b5f94f2d700}"),
-
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsIOpenWebappsApplication]),
-
-  classInfo: XPCOMUtils.generateCI({classID: Components.ID("{34456347-0792-45a4-8eb1-7b5f94f2d700}"),
-                                    contractID: "@mozilla.org/openwebapps/application;1",
-                                    interfaces: [Ci.nsIOpenWebappsApplication],
-                                    flags: Ci.nsIClassInfo.DOM_OBJECT,
-                                    classDescription: "OpenWebapps Application"})
-}
-
-const NSGetFactory = XPCOMUtils.generateNSGetFactory([OpenWebapps, OpenWebappsApplication]);
-
deleted file mode 100644
--- a/toolkit/mozapps/webapps/OpenWebapps.jsm
+++ /dev/null
@@ -1,260 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (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.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla Mobile Browser.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2011
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Fabrice Desré <fabrice@mozilla.com>
- *   Mark Finkle <mfinkle@mozilla.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-const Cu = Components.utils; 
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-
-let EXPORTED_SYMBOLS = ["OpenWebapps"];
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-XPCOMUtils.defineLazyGetter(this, "NetUtil", function() {
-  Cu.import("resource://gre/modules/NetUtil.jsm");
-  return NetUtil;
-});
-
-let OpenWebapps = {
-  appsDir: null,
-  appsFile: null,
-  webapps: { },
-
-  init: function() {
-    let file =  Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsIFile);
-    file.append("webapps");
-    if (!file.exists() || !file.isDirectory()) {
-      file.create(Ci.nsIFile.DIRECTORY_TYPE, 0700);
-    }
-    this.appsDir = file;
-    this.appsFile = file.clone();
-    this.appsFile.append("webapps.json");
-    if (!this.appsFile.exists())
-      return;
-    
-    try {
-      let channel = NetUtil.newChannel(this.appsFile);
-      channel.contentType = "application/json";
-      let self = this;
-      NetUtil.asyncFetch(channel, function(aStream, aResult) {
-        if (!Components.isSuccessCode(aResult)) {
-          Cu.reportError("OpenWebappsSupport: Could not read from json file " + this.appsFile.path);
-          return;
-        }
-
-        // Read json file into a string
-        let data = null;
-        try {
-          self.webapps = JSON.parse(NetUtil.readInputStreamToString(aStream, aStream.available()) || "");
-          aStream.close();
-        } catch (ex) {
-          Cu.reportError("OpenWebsappsStore: Could not parse JSON: " + ex);
-        }
-      });
-    } catch (ex) {
-      Cu.reportError("OpenWebappsSupport: Could not read from " + aFile.path + " : " + ex);
-    }
-  },
-
-  _writeFile: function ss_writeFile(aFile, aData) {
-    // Initialize the file output stream.
-    let ostream = Cc["@mozilla.org/network/safe-file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
-    ostream.init(aFile, 0x02 | 0x08 | 0x20, 0600, ostream.DEFER_OPEN);
-
-    // Obtain a converter to convert our data to a UTF-8 encoded input stream.
-    let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
-    converter.charset = "UTF-8";
-
-    // Asynchronously copy the data to the file.
-    let istream = converter.convertToInputStream(aData);
-    NetUtil.asyncCopy(istream, ostream, function(rc) {
-      // nothing to do
-    });
-  },
-  
-  install: function(aApplication) {
-    let id = this._appId(aApplication.appURI);
-
-    // install an application again is considered as an update
-    if (id) {
-      let dir = this.appsDir.clone();
-      dir.append(id);
-      try {
-        dir.remove(true);
-      } catch(e) {
-      }
-    }
-    else {
-      let uuidGenerator = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
-      id = uuidGenerator.generateUUID().toString();
-    }
-
-    let dir = this.appsDir.clone();
-    dir.append(id);
-    dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0700);
-    
-    let manFile = dir.clone();
-    manFile.append("manifest.json");
-    this._writeFile(manFile, JSON.stringify(aApplication.manifest));
-    
-    this.webapps[id] = {
-      title: aApplication.title,
-      storeURI: aApplication.storeURI,
-      appURI: aApplication.appURI,
-      installData: aApplication.installData,
-      installTime: (new Date()).getTime()
-    };
-    this._writeFile(this.appsFile, JSON.stringify(this.webapps));
-
-    // now save the icon as icon.png in the app directory
-    let iconURI = aApplication.iconURI ? aApplication.iconURI : "chrome://browser/skin/images/homescreen-default-hdpi.png";
-    let iconFile = dir.clone();
-    iconFile.append("icon.png");
-    let uri = Services.io.newURI(iconURI, null, null);
-    let persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);
-    persist.persistFlags = persist.PERSIST_FLAGS_REPLACE_EXISTING_FILES | persist.PERSIST_FLAGS_BYPASS_CACHE;
-    persist.saveURI(uri, null, null, null, "", iconFile);
-  },
- 
-  _appId: function(aURI) {
-    for (let id in this.webapps) {
-      if (this.webapps[id].appURI == aURI)
-        return id;
-    }
-    return null;
-  },
-
-  _readManifest: function(aId) {
-    let file = this.appsDir.clone();
-    file.append(aId);
-    file.append("manifest.json");
-    let data = "";  
-    let fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
-    var cstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);
-    fstream.init(file, -1, 0, 0);
-    cstream.init(fstream, "UTF-8", 0, 0);
-    let (str = {}) {  
-      let read = 0;  
-      do {   
-        read = cstream.readString(0xffffffff, str); // read as much as we can and put it in str.value  
-        data += str.value;  
-      } while (read != 0);  
-    }  
-    cstream.close(); // this closes fstream  
-    try {
-      return JSON.parse(data);
-    } catch(e) {
-      return null;
-    }
-  },
-
-  amInstalled: function(aURI) {
-    for (let id in this.webapps) {
-      let app = this.webapps[id];
-      if (app.appURI == aURI) {
-        return { origin: app.appURI,
-                 install_origin: app.storeURI,
-                 install_data: app.installData,
-                 install_time: app.installTime,
-                 manifest: this._readManifest(id) };
-      }
-    }
-    return null;
-  },
-
-  getInstalledBy: function(aStoreURI) {
-    let res = [];
-    for (let id in this.webapps) {
-      let app = this.webapps[id];
-      if (app.storeURI == aStoreURI)
-        res.push({ origin: app.appURI,
-                   install_origin: app.storeURI,
-                   install_data: app.installData,
-                   install_time: app.installTime,
-                   manifest: this._readManifest(id) });
-    }
-    return res;
-  },
-  
-  mgmtList: function() {
-    let res = new Array();
-    for (let id in this.webapps) {
-      let app = this.webapps[id];
-      res.push({ origin: app.appURI,
-                 install_origin: app.storeURI,
-                 install_data: app.installData,
-                 install_time: app.installTime,
-                 manifest: this._readManifest(id) });
-    }
-    return res;
-  },
-  
-  mgmtLaunch: function(aOrigin) {
-    for (let id in this.webapps) {
-      let app = this.webapps[id];
-      app.manifest = this._readManifest(id);
-      if (app.appURI == aOrigin) {
-        let browserWin = Services.wm.getMostRecentWindow("navigator:browser");
-        let uri = Services.io.newURI(aOrigin + (app.manifest.launch_path ? app.manifest.launch_path : ""), null, null);
-        browserWin.browserDOMWindow.openURI(uri, null, browserWin.OPEN_APPTAB, Ci.nsIBrowserDOMWindow.OPEN_NEW);
-        return true;
-      }
-    }
-    return false;
-  },
-  
-  mgmtUninstall: function(aOrigin) {
-    for (let id in this.webapps) {
-      let app = this.webapps[id];
-      if (app.appURI == aOrigin) {
-        delete this.webapps[id];
-        this._writeFile(this.appsFile, JSON.stringify(this.webapps));
-        let dir = this.appsDir.clone();
-        dir.append(id);
-        try {
-          dir.remove(true);
-        } catch (e) {
-        }
-        return true;
-      }
-    }
-    return false;
-  }
-};
-
-OpenWebapps.init();
-
deleted file mode 100644
--- a/toolkit/mozapps/webapps/OpenWebapps.manifest
+++ /dev/null
@@ -1,8 +0,0 @@
-# OpenWebapps.js
-component {d8fd4d63-27ea-47b9-a931-481214bb8b5b} OpenWebapps.js
-contract @mozilla.org/openwebapps;1 {d8fd4d63-27ea-47b9-a931-481214bb8b5b}
-category JavaScript-navigator-property mozApps @mozilla.org/openwebapps;1
-
-component {34456347-0792-45a4-8eb1-7b5f94f2d700} OpenWebapps.js
-contract @mozilla.org/openwebapps/application;1 {34456347-0792-45a4-8eb1-7b5f94f2d700}
-