Creating Plugins

Boomerang plugins can be used for adding core functionality (such as ResourceTiming support) as well as for site-specific custom needs.

Use the below example for creating a new Boomerang plugin.

Once created, you can add the new plugin to your Boomerang build by adding it to plugins.json. See Building for more details.

/**
 * Skeleton template for all boomerang plugins.
 *
 * Use this code as a starting point for your own plugins.
 */
(function() {
	// First, make sure BOOMR is actually defined.  It's possible that your plugin
	// is loaded before boomerang, in which case you'll need this.
	BOOMR = window.BOOMR || {};
	BOOMR.plugins = BOOMR.plugins || {};

	// A private object to encapsulate all your implementation details
	// This is optional, but the way we recommend you do it.
	var impl = {
	};

	//
	// Public exports
	//
	BOOMR.plugins.MyPlugin = {
		init: function(config) {
			// list of user configurable properties
			var properties = ["prop1", "prop2"];

			// This block is only needed if you actually have user configurable properties
			BOOMR.utils.pluginConfig(impl, config, "MyPlugin", properties);

			// Other initialization code here

			// Subscribe to any BOOMR events here.
			// Unless your code will explicitly be called by the developer
			// or by another plugin, you must to do this.

			return this;
		},

		// Any other public methods would be defined here

		is_complete: function() {
			// This method should determine if the plugin has completed doing what it
			// needs to do and return true if so or false otherwise
		}
	};
}());