loader/index.js
async function runInFrame(tabId, frameId, script, ...args) {
	if (typeof tabId !== 'number') { tabId = (await getActiveTabId()); }
	return (await Frame.get(tabId, frameId || 0)).call(getScource(script), args);
}
async function runInFrame(tabId, frameId, script, ...args) {
	if (typeof tabId !== 'number') { tabId = (await getActiveTabId()); }
	return (await Frame.get(tabId, frameId || 0)).call(getScource(script), args);
}
async function runInFrame ( tabId , frameId , script , ... args ) { if ( typeof tabId !== 'number' ) { tabId = ( await getActiveTabId ( ) ) ; } return ( await Frame . get ( tabId , frameId || 0 ) ) . call ( getScource ( script ) , args ) ; }
Dynamically executes functions as content scripts.
@param  {natural|null}     tabId    The id of the tab to run in. Default to an active tab, preferably in the current window.
@param  {natural|null}     frameId  The id of the frame within the tab to run in. Defaults to the top level frame.
@param  {function|string}  script   A function that will be decompiled and run as content script.
If the "contentEval" manifest permission is set, this may also be a code string that will be wrapped in a function.
@param  {...any}           args     Arguments that will be cloned to call the function with.
`this` in the function will be the global object (not necessarily `window`).
@return {any}                       The value returned or promised by `script`.
@throws {any}                       If `script` throws or otherwise fails to execute.
Dynamically executes functions as content scripts .