Bug 544550 - Ubufox addon incompatible with new plugin-crashed UI. r=gavin
authorJustin Dolske <dolske@mozilla.com>
Thu, 18 Feb 2010 13:43:22 -0800
changeset 38293 8cab477bf78a409eefbcd84d7c74a76eee0b8cf1
parent 38292 9f933c33b56d483c369d6fdfea8cf81c09540c4b
child 38294 70ef55e0f2f54d63b799d36b336429cbcf96645c
push idunknown
push userunknown
push dateunknown
reviewersgavin
bugs544550
milestone1.9.3a2pre
Bug 544550 - Ubufox addon incompatible with new plugin-crashed UI. r=gavin
toolkit/mozapps/jar.mn
toolkit/mozapps/plugins/content/pluginFinderBinding.css
toolkit/mozapps/plugins/content/pluginProblemBinding.css
toolkit/mozapps/plugins/pluginGlue.js
--- a/toolkit/mozapps/jar.mn
+++ b/toolkit/mozapps/jar.mn
@@ -16,12 +16,13 @@ toolkit.jar:
 * content/mozapps/preferences/removemp.xul                      (preferences/removemp.xul)
   content/mozapps/plugins/pluginInstallerWizard.xul             (plugins/content/pluginInstallerWizard.xul)
   content/mozapps/plugins/pluginInstallerWizard.js              (plugins/content/pluginInstallerWizard.js)
   content/mozapps/plugins/pluginInstallerWizard.css             (plugins/content/pluginInstallerWizard.css)
   content/mozapps/plugins/pluginInstallerDatasource.js          (plugins/content/pluginInstallerDatasource.js)
   content/mozapps/plugins/pluginInstallerService.js             (plugins/content/pluginInstallerService.js)
   content/mozapps/plugins/pluginProblem.xml                     (plugins/content/pluginProblem.xml)
   content/mozapps/plugins/pluginProblemBinding.css              (plugins/content/pluginProblemBinding.css)
+  content/mozapps/plugins/pluginFinderBinding.css               (plugins/content/pluginFinderBinding.css)
   content/mozapps/handling/handler.css                          (handling/content/handler.css)
   content/mozapps/handling/handler.xml                          (handling/content/handler.xml)
   content/mozapps/handling/dialog.xul                           (handling/content/dialog.xul)
   content/mozapps/handling/dialog.js                            (handling/content/dialog.js)
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/plugins/content/pluginFinderBinding.css
@@ -0,0 +1,47 @@
+/* ***** 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 stylesheet for the pluginfinder XBL binding.
+ *
+ * The Initial Developer of the Original Code is
+ * Christian Biesinger <cbiesinger@web.de>.
+ * Portions created by the Initial Developer are Copyright (C) 2005
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ *  Justin Dolske <dolske@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 ***** */
+
+@namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
+
+/* This binding is specified separately from the others so that Linux distros can
+   override the default Mozilla plugin finder service with their own mechanism. */
+embed:-moz-type-unsupported,
+applet:-moz-type-unsupported,
+object:-moz-has-handlerref:-moz-type-unsupported {
+    -moz-binding: url('chrome://mozapps/content/plugins/pluginProblem.xml#pluginProblem') !important;
+}
--- a/toolkit/mozapps/plugins/content/pluginProblemBinding.css
+++ b/toolkit/mozapps/plugins/content/pluginProblemBinding.css
@@ -33,22 +33,19 @@
  * 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 ***** */
 
 @namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
 
-embed:-moz-type-unsupported,
 embed:-moz-handler-disabled,
 embed:-moz-handler-blocked,
 embed:-moz-handler-crashed,
-applet:-moz-type-unsupported,
 applet:-moz-handler-disabled,
 applet:-moz-handler-blocked,
 applet:-moz-handler-crashed,
-object:-moz-has-handlerref:-moz-type-unsupported,
 object:-moz-has-handlerref:-moz-handler-disabled,
 object:-moz-has-handlerref:-moz-handler-blocked,
 object:-moz-has-handlerref:-moz-handler-crashed {
     -moz-binding: url('chrome://mozapps/content/plugins/pluginProblem.xml#pluginProblem') !important;
 }
--- a/toolkit/mozapps/plugins/pluginGlue.js
+++ b/toolkit/mozapps/plugins/pluginGlue.js
@@ -15,64 +15,45 @@
  *
  * The Initial Developer of the Original Code is
  * Christian Biesinger <cbiesinger@web.de>.
  * Portions created by the Initial Developer are Copyright (C) 2005
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *
+ *  Justin Dolske <dolske@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 ***** */
 
-/**
- * @file
- * This file contains the agent style sheet registration code for the
- * pluginfinder XBL binding. It's not a real module, it only exists so that we
- * can call addCategoryEntry / deleteCategoryEntry.
- */
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
-var module = {
-    categoryEntry: "pluginfinder xbl binding",
-    categoryValue: "chrome://mozapps/content/plugins/pluginProblemBinding.css",
-
-    // registerSelf: Register this component.
-    registerSelf: function (compMgr, fileSpec, location, type) {
-      var catman = Components.classes['@mozilla.org/categorymanager;1']
-                             .getService(Components.interfaces.nsICategoryManager);
-      catman.addCategoryEntry("agent-style-sheets", this.categoryEntry,
-                              this.categoryValue, true, true);
+function pluginBindings() { }
 
-    },
-
-    // unregisterSelf: Unregister this component.
-    unregisterSelf: function (aCompMgr, aLocation, aLoaderStr) {
-      catman.deleteCategoryEntry("agent-style-sheets", this.categoryEntry,
-                                 true);
-    },
+pluginBindings.prototype = {
+    // This isn't a real component, we're just using categories to
+    // automatically add our stylesheets during module registration.
+    classDescription: "plugin bindings",
+    classID:          Components.ID("12663f3a-a311-4606-83eb-b6b9108dcc36"),
+    contractID:       "@mozilla.org/plugin-bindings;1",
+    QueryInterface: XPCOMUtils.generateQI([]),
 
-    // getClassObject: Return this component's factory object.
-    getClassObject: function (compMgr, cid, iid) {
-        throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
-    },
-
-    // canUnload: n/a (returns true)
-    canUnload: function(compMgr) {
-        return true;
-    }
+    _xpcom_categories: [{ category: "agent-style-sheets",
+                          entry:    "pluginfinder xbl binding",
+                          value:    "chrome://mozapps/content/plugins/pluginFinderBinding.css"},
+                        { category: "agent-style-sheets",
+                          entry:    "pluginproblem xbl binding",
+                          value:    "chrome://mozapps/content/plugins/pluginProblemBinding.css"}]
 };
 
-// NSGetModule: Return the nsIModule object.
-function NSGetModule(compMgr, fileSpec) {
-    return module;
-}
-
+var NSGetModule = XPCOMUtils.generateNSGetModule([pluginBindings]);