API loadExtensionScripts (#2233)
* Inject MV3 scripts immediately * Add api.loadExtensionScripts
This commit is contained in:
parent
1e91bf151f
commit
115c3ce3d7
@ -130,7 +130,8 @@ class Backend {
|
||||
['testMecab', {async: true, contentScript: true, handler: this._onApiTestMecab.bind(this)}],
|
||||
['textHasJapaneseCharacters', {async: false, contentScript: true, handler: this._onApiTextHasJapaneseCharacters.bind(this)}],
|
||||
['getTermFrequencies', {async: true, contentScript: true, handler: this._onApiGetTermFrequencies.bind(this)}],
|
||||
['findAnkiNotes', {async: true, contentScript: true, handler: this._onApiFindAnkiNotes.bind(this)}]
|
||||
['findAnkiNotes', {async: true, contentScript: true, handler: this._onApiFindAnkiNotes.bind(this)}],
|
||||
['loadExtensionScripts', {async: true, contentScript: true, handler: this._onApiLoadExtensionScripts.bind(this)}]
|
||||
]);
|
||||
this._messageHandlersWithProgress = new Map([
|
||||
]);
|
||||
@ -771,6 +772,16 @@ class Backend {
|
||||
return await this._anki.findNotes(query);
|
||||
}
|
||||
|
||||
async _onApiLoadExtensionScripts({files}, sender) {
|
||||
if (!sender || !sender.tab) { throw new Error('Invalid sender'); }
|
||||
const tabId = sender.tab.id;
|
||||
if (typeof tabId !== 'number') { throw new Error('Sender has invalid tab ID'); }
|
||||
const {frameId} = sender;
|
||||
for (const file of files) {
|
||||
await this._scriptManager.injectScript(file, tabId, frameId, false, true, 'document_start');
|
||||
}
|
||||
}
|
||||
|
||||
// Command handlers
|
||||
|
||||
async _onCommandOpenSearchPage(params) {
|
||||
|
@ -290,6 +290,7 @@ class ScriptManager {
|
||||
_injectScriptMV3(file, tabId, frameId, allFrames) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const details = {
|
||||
injectImmediately: true,
|
||||
files: [file],
|
||||
target: {tabId, allFrames}
|
||||
};
|
||||
|
@ -176,6 +176,10 @@ class API {
|
||||
return this._invoke('findAnkiNotes', {query});
|
||||
}
|
||||
|
||||
loadExtensionScripts(files) {
|
||||
return this._invoke('loadExtensionScripts', {files});
|
||||
}
|
||||
|
||||
// Utilities
|
||||
|
||||
_createActionPort(timeout=5000) {
|
||||
|
Loading…
Reference in New Issue
Block a user