Bug 1355582 - Only the most recently added file extension is saved in "mimeTypes.rdf". r=mak draft
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Tue, 11 Apr 2017 20:38:14 +0100
changeset 560684 fcc3ebfbffd328d60ae6d3ba964676386cc539b1
parent 560546 abf145ebd05fe105efbc78b761858c34f7690154
child 560685 534cc5ca71dd9b2b828d03c7ea7de94932d76094
push id53516
push userpaolo.mozmail@amadzone.org
push dateTue, 11 Apr 2017 20:14:33 +0000
reviewersmak
bugs1355582, 1355585
milestone55.0a1
Bug 1355582 - Only the most recently added file extension is saved in "mimeTypes.rdf". r=mak This change is tested in detail as part of bug 1355585. MozReview-Commit-ID: 74nDQjGlFjA
uriloader/exthandler/nsHandlerService.js
--- a/uriloader/exthandler/nsHandlerService.js
+++ b/uriloader/exthandler/nsHandlerService.js
@@ -847,22 +847,23 @@ HandlerService.prototype = {
     this._setLiteral(infoID,
                      NC_ALWAYS_ASK,
                      aHandlerInfo.alwaysAskBeforeHandling ? "true" : "false");
   },
 
   _storeExtensions: function HS__storeExtensions(aHandlerInfo) {
     if (aHandlerInfo instanceof Ci.nsIMIMEInfo) {
       var typeID = this._getTypeID(this._getClass(aHandlerInfo), aHandlerInfo.type);
+      let source = this._rdf.GetResource(typeID);
+      let property = this._rdf.GetResource(NC_FILE_EXTENSIONS);
       var extEnum = aHandlerInfo.getFileExtensions();
       while (extEnum.hasMore()) {
         let ext = extEnum.getNext().toLowerCase();
-        if (!this._hasLiteralAssertion(typeID, NC_FILE_EXTENSIONS, ext)) {
-          this._setLiteral(typeID, NC_FILE_EXTENSIONS, ext);
-        }
+        let target = this._rdf.GetLiteral(ext);
+        this._ds.Assert(source, property, target, true);
       }
     }
   },
 
 
   //**************************************************************************//
   // Convenience Getters