forked from mirrors/gecko-dev
		
	Bug 406118: Extension blocklist is broken. r=bsmedberg, a1.9b4=beltzner
This commit is contained in:
		
							parent
							
								
									cc32aa3b3a
								
							
						
					
					
						commit
						1586452eca
					
				
					 4 changed files with 64 additions and 10 deletions
				
			
		|  | @ -50,12 +50,12 @@ interface nsIBlocklistService : nsISupports | ||||||
|    *          The item's version. |    *          The item's version. | ||||||
|    * @param   appVersion |    * @param   appVersion | ||||||
|    *          The version of the application we are checking in the blocklist. |    *          The version of the application we are checking in the blocklist. | ||||||
|    *          If this parameter is undefined, the version of the running |    *          If this parameter is null, the version of the running application | ||||||
|    *          application is used. |    *          is used. | ||||||
|    * @param   toolkitVersion |    * @param   toolkitVersion | ||||||
|    *          The version of the toolkit we are checking in the blocklist. |    *          The version of the toolkit we are checking in the blocklist. | ||||||
|    *          If this parameter is undefined, the version of the running |    *          If this parameter is null, the version of the running toolkit | ||||||
|    *          toolkit is used. |    *          is used. | ||||||
|    * @returns true if the item is compatible with this version of the |    * @returns true if the item is compatible with this version of the | ||||||
|    *          application or this version of the toolkit, false, otherwise. |    *          application or this version of the toolkit, false, otherwise. | ||||||
|    */ |    */ | ||||||
|  |  | ||||||
|  | @ -276,9 +276,9 @@ Blocklist.prototype = { | ||||||
|   isAddonBlocklisted: function(id, version, appVersion, toolkitVersion) { |   isAddonBlocklisted: function(id, version, appVersion, toolkitVersion) { | ||||||
|     if (!this._addonEntries) |     if (!this._addonEntries) | ||||||
|       this._loadBlocklistFromFile(getFile(KEY_PROFILEDIR, [FILE_BLOCKLIST])); |       this._loadBlocklistFromFile(getFile(KEY_PROFILEDIR, [FILE_BLOCKLIST])); | ||||||
|     if (appVersion === undefined) |     if (!appVersion) | ||||||
|       appVersion = gApp.version; |       appVersion = gApp.version; | ||||||
|     if (toolkitVersion === undefined) |     if (!toolkitVersion) | ||||||
|       toolkitVersion = gApp.platformVersion; |       toolkitVersion = gApp.platformVersion; | ||||||
| 
 | 
 | ||||||
|     var blItem = this._addonEntries[id]; |     var blItem = this._addonEntries[id]; | ||||||
|  |  | ||||||
|  | @ -4088,7 +4088,7 @@ ExtensionManager.prototype = { | ||||||
|       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. |       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. | ||||||
|                    getService(Ci.nsIBlocklistService); |                    getService(Ci.nsIBlocklistService); | ||||||
|     if (gBlocklist.isAddonBlocklisted(installData.id, installData.version, |     if (gBlocklist.isAddonBlocklisted(installData.id, installData.version, | ||||||
|                                       undefined, undefined)) |                                       null, null)) | ||||||
|       installData.error = INSTALLERROR_BLOCKLISTED; |       installData.error = INSTALLERROR_BLOCKLISTED; | ||||||
| 
 | 
 | ||||||
|     return installData; |     return installData; | ||||||
|  | @ -6048,7 +6048,7 @@ ExtensionItemUpdater.prototype = { | ||||||
|       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. |       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. | ||||||
|                    getService(Ci.nsIBlocklistService); |                    getService(Ci.nsIBlocklistService); | ||||||
|     if (gBlocklist.isAddonBlocklisted(aLocalItem.id, aRemoteItem.version, |     if (gBlocklist.isAddonBlocklisted(aLocalItem.id, aRemoteItem.version, | ||||||
|                                       undefined, undefined)) |                                       null, null)) | ||||||
|       return false; |       return false; | ||||||
| 
 | 
 | ||||||
|     return true; |     return true; | ||||||
|  | @ -8146,8 +8146,7 @@ ExtensionsDataSource.prototype = { | ||||||
|     if (!gBlocklist) |     if (!gBlocklist) | ||||||
|       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. |       gBlocklist = Cc["@mozilla.org/extensions/blocklist;1"]. | ||||||
|                    getService(Ci.nsIBlocklistService); |                    getService(Ci.nsIBlocklistService); | ||||||
|     if (gBlocklist.isAddonBlocklisted(id, version, |     if (gBlocklist.isAddonBlocklisted(id, version, null, null)) | ||||||
|                                       undefined, undefined)) |  | ||||||
|       return EM_L("true"); |       return EM_L("true"); | ||||||
| 
 | 
 | ||||||
|     return EM_L("false"); |     return EM_L("false"); | ||||||
|  |  | ||||||
							
								
								
									
										55
									
								
								toolkit/mozapps/extensions/test/unit/test_bug406118.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								toolkit/mozapps/extensions/test/unit/test_bug406118.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | ||||||
|  | /* ***** 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.org code. | ||||||
|  |  * | ||||||
|  |  * The Initial Developer of the Original Code is | ||||||
|  |  *      Dave Townsend <dtownsend@oxymoronical.com>. | ||||||
|  |  * | ||||||
|  |  * Portions created by the Initial Developer are Copyright (C) 2008 | ||||||
|  |  * the Initial Developer. All Rights Reserved. | ||||||
|  |  * | ||||||
|  |  * Contributor(s): | ||||||
|  |  * | ||||||
|  |  * 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 ***** | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | function run_test() { | ||||||
|  |   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9"); | ||||||
|  | 
 | ||||||
|  |   // We cannot force the blocklist to update so just copy our test list to the profile
 | ||||||
|  |   var source = do_get_file("toolkit/mozapps/extensions/test/unit/data/test_bug393285.xml"); | ||||||
|  |   source.copyTo(gProfD, "blocklist.xml"); | ||||||
|  | 
 | ||||||
|  |   var blocklist = Components.classes["@mozilla.org/extensions/blocklist;1"] | ||||||
|  |                             .getService(Components.interfaces.nsIBlocklistService); | ||||||
|  |    | ||||||
|  |   // All these should be blocklisted for the current app.
 | ||||||
|  |   do_check_false(blocklist.isAddonBlocklisted("test_bug393285_1@tests.mozilla.org", "1", null, null)); | ||||||
|  |   do_check_true(blocklist.isAddonBlocklisted("test_bug393285_2@tests.mozilla.org", "1", null, null)); | ||||||
|  |   do_check_true(blocklist.isAddonBlocklisted("test_bug393285_3@tests.mozilla.org", "1", null, null)); | ||||||
|  |   do_check_true(blocklist.isAddonBlocklisted("test_bug393285_4@tests.mozilla.org", "1", null, null)); | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in a new issue
	
	 dtownsend@oxymoronical.com
						dtownsend@oxymoronical.com