forked from mirrors/gecko-dev
		
	 d36e5a4ea5
			
		
	
	
		d36e5a4ea5
		
	
	
	
	
		
			
			Dictionaries that we never initialize with JS values don't need a full-featured Init() method. Instead, we output a cut-down Init() method that doesn't even take a JSContext and Value as argument, and skips as much work as it can. It uses constant-false for "is the value present?", but also, to avoid compilation errors due to use of `cx` and `val` in now-dead conversion code, it tells the native-to-JS conversion machinery that the value is always missing, which lets it skip most of the the work it would normally try to do and just output initialization to the default value. We only need to do this for members that have default values; the others either remain no-passed or are required members with no default-initialization behavior. This saves about 330KB of codesize on Linux64 without PGO and 285KB with PGO. Differential Revision: https://phabricator.services.mozilla.com/D48007 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 | |
|  * You can obtain one at http://mozilla.org/MPL/2.0/.
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * A fake plugin is fundamentally identified by its handlerURI.
 | |
|  *
 | |
|  * In addition to that, a fake plugin registration needs to provide at least one
 | |
|  * FakePluginMimeEntry so we'll know what types(s) the plugin is registered for.
 | |
|  * Other information is optional, though having usable niceName is highly
 | |
|  * recommended.
 | |
|  */
 | |
| [GenerateInit]
 | |
| dictionary FakePluginTagInit {
 | |
|   required DOMString handlerURI;
 | |
|   required sequence<FakePluginMimeEntry> mimeEntries;
 | |
| 
 | |
|   // The niceName should really be provided, and be unique, if possible; it can
 | |
|   // be used as a key to persist state for this plug-in.
 | |
|   DOMString niceName = "";
 | |
| 
 | |
|   // Other things can be provided but don't really matter that much.
 | |
|   DOMString fullPath = "";
 | |
|   DOMString name = "";
 | |
|   DOMString description = "";
 | |
|   DOMString fileName = "";
 | |
|   DOMString version = "";
 | |
| 
 | |
|   /**
 | |
|    * Optional script to run in a sandbox when instantiating a plugin. The script
 | |
|    * runs in a sandbox with system principal in the process that contains the
 | |
|    * element that instantiates the plugin (ie the EMBED or OBJECT element). The
 | |
|    * sandbox global has a 'pluginElement' property that the script can use to
 | |
|    * access the element that instantiates the plugin.
 | |
|    */
 | |
|   DOMString sandboxScript = "";
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * A single MIME entry for the fake plugin.
 | |
|  */
 | |
| dictionary FakePluginMimeEntry {
 | |
|   required DOMString type;
 | |
|   DOMString description = "";
 | |
|   DOMString extension = "";
 | |
| };
 | |
| 
 |