Funkcje loadOneTab i loadURI w 2023 w Firefox Experimental API?
Używam Experimental API w moim prywatnym rozszerzeniu do Firefoksa.
Do tej pory używałem Firefox 102 ESR, ale planuję przejście na Firefox ESR 115. Jest już dostępna Firefox 115 Beta, więc zacząłem ją testować ze zwoim prywatnym rozszerzeniem.
Do tej pory, używałem wewnętrznym funkcji Firefoksa, jak loadOneTab and loadURI i działało to bardzo dobrze.
} ); Ale funkcja loadOneTab już w ogóle nie istnieje w API wewnętrznym Firefoksa. Czym go zastąpić?
Znalazłem funkcję _createTab:
// window.gBrowser._createTab({ uriString: placesURL }); Ale funkcja _createTab zwraca błąd:
Uncaught Error: UserInteraction with id "browser.tabs.opening" was not initialized
```
...to chyba przez zabezpieczenie, żeby ta funkcja była wywołana tylko poprzez akcję użytkownika? A ja wywołuję tę funkcję wewnątrz `async function`.
Da się jakoś otworzyć nową kartę z poziomu Experimental API w Firefox 115 beta?
Bardzo bardzo tego potrzebuję. Naprawdę bardzo.
---
Funkcji `loadURI` używałem w taki sposób: window.gBrowser.selectedBrowser.loadURI(linkGo, {#!$%@?: Services.scriptSecurityManager.#!$%@?()});
Funkcja `loadURI` wydaje się być nadal dostępne w wewnętrznym API Firefoksa, ale zwraca taki błąd: TypeError: 'uri' member of CancelContentJSOptions is not an object. RemoteWebNavigation.sys.mjs:28:41
window.gBrowser.loadTabs([linkGo], { replace: true, allowThirdPartyFixup: true, #!$%@?: Services.scriptSecurityManager.#!$%@?() }); ...kluczowe jest replace: true, dzięki któremu URI otwiera się w aktualnie otwartej karcie.
loadOneTab
iloadURI
w 2023 w Firefox Experimental API?Używam Experimental API w moim prywatnym rozszerzeniu do Firefoksa.
Do tej pory używałem Firefox 102 ESR, ale planuję przejście na Firefox ESR 115. Jest już dostępna Firefox 115 Beta, więc zacząłem ją testować ze zwoim prywatnym rozszerzeniem.
Do tej pory, używałem wewnętrznym funkcji Firefoksa, jak
loadOneTab
andloadURI
i działało to bardzo dobrze.Funkcji
loadOneTab
używałem w taki sposób:const placesURL = "chrome://browser/content/places/places.xhtml";
window.gBrowser.loadOneTab( placesURL, {
inBackground: false,
allowThirdPartyFixup: true,
relatedToCurrent : true,
#!$%@?: Services.scriptSecurityManager.#!$%@?()
} );
Ale funkcja
loadOneTab
już w ogóle nie istnieje w API wewnętrznym Firefoksa. Czym go zastąpić?Znalazłem funkcję
_createTab
:// window.gBrowser._createTab({ uriString: placesURL });
Ale funkcja
_createTab
zwraca błąd:Uncaught Error: UserInteraction with id "browser.tabs.opening" was not initialized
```
...to chyba przez zabezpieczenie, żeby ta funkcja była wywołana tylko poprzez akcję użytkownika? A ja wywołuję tę funkcję wewnątrz `async function`.
Da się jakoś otworzyć nową kartę z poziomu Experimental API w Firefox 115 beta?
Bardzo bardzo tego potrzebuję. Naprawdę bardzo.
---
Funkcji `loadURI` używałem w taki sposób:
window.gBrowser.selectedBrowser.loadURI(linkGo, {#!$%@?: Services.scriptSecurityManager.#!$%@?()});
Funkcja `loadURI` wydaje się być nadal dostępne w wewnętrznym API Firefoksa, ale zwraca taki błąd:
TypeError: 'uri' member of CancelContentJSOptions is not an object. RemoteWebNavigation.sys.mjs:28:41
```
Jak pokonać ten błąd?
#firefox #addons #webextensions #experimental #api
loadTabs
.Zamiast
loadOneTab
użyłem tego:window.gBrowser.loadTabs( [linkGo] , {
inBackground: event.target.inBackground,
relatedToCurrent: true,
allowThirdPartyFixup: true,
#!$%@?: Services.scriptSecurityManager.#!$%@?()
} );
---
Zamiast
loadURI
użyłem tego:window.gBrowser.loadTabs([linkGo], {
replace: true,
allowThirdPartyFixup: true,
#!$%@?: Services.scriptSecurityManager.#!$%@?()
});
...kluczowe jest
replace: true
, dzięki któremu URI otwiera się w aktualnie otwartej karcie.