202
edits
m (DenSchub moved page Compatibility/Go Faster Addon/Override Policies and Workflows to Compatibility/System Addon/Override Policies and Workflows: "Go Faster" is no longer a term we use.) |
(Add docs for writing a custom function inside injections.) |
||
Line 95: | Line 95: | ||
In addition, the injection file has to be registered in the array located in [https://github.com/mozilla/webcompat-addon/blob/master/src/data/injections.js rc/data/injections.js]. Details on available parameters can be found [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/content_scripts in the MDN web docs]. | In addition, the injection file has to be registered in the array located in [https://github.com/mozilla/webcompat-addon/blob/master/src/data/injections.js rc/data/injections.js]. Details on available parameters can be found [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/content_scripts in the MDN web docs]. | ||
=== Using "custom functions" for more complex overrides | |||
Some injections may require additional logic inside the WebExtension to make them work. An example of this could be a custom blocking ''browser.webRequest.onBeforeRequest'' handler to detect and alter the usage of a popular JavaScript library. To use customized logic, define a ''customFunc'' in your injection definition: | |||
<syntaxhighlight lang="js"> | |||
{ | |||
id: "bug1551672", | |||
platform: "android", | |||
domain: "Sites using PDK 5 video", | |||
bug: "1551672", | |||
data: { | |||
urls: ["https://*/*/tpPdk.js", "https://*/*/pdk/js/*/*.js"], | |||
types: ["script"], | |||
}, | |||
customFunc: "pdk5fix", | |||
} | |||
</syntaxhighlight> | |||
Then, head to ''src/lib/custom_functions.js'' and make sure to define the function you just named. Suppose you need additional logic for clearing up when disabling the intervention, for example, to unregister a handler. In that case, you can define a second function with the ''Disable'' suffix, ''pdk5fixDisable'' in this example. | |||
Custom functions are executed within the background script and have full permissions to do anything that a WebExtension background script can do. | |||
= Open points for further discussion = | = Open points for further discussion = |
edits