@look997 znalazłem taką listę, nie wiem czy cokolwiek jest aktualne, ale może coś znajdziesz:

1. Thread Reader App - Możesz użyć tej aplikacji, wspominając @threadreaderapp i dodając "unroll" w odpowiedzi na dowolny tweet w wątku. Alternatywnie, można skorzystać z funkcji Quote Retweet, aby zapisać treść. Istnieje również możliwość wejścia na stronę Thread Reader i wpisania linku do tweetu w pole wyszukiwania .

2. Threader - Kiedyś popularne narzędzie, obecnie część subskrypcji
Jak w web-extension wykryć, czy strona internetowa obsługuje tryb ciemny i czy jest aktualnie w trybie ciemnym?

Nie tylko gdy automatycznie przełącza się w tryb ciemny (z color-scheme), ale także czy domyślnie jest wyłącznie w trybie ciemnym, bez użycia color-scheme, w ogóle bez trybu jasnego?

Chcę to do rozszerzenia typu Firelux, ale z taką automatycznym, skutecznym wykrywaniem włączonego trybu ciemnego.

#firefox #webextensions #css #javascript
@look997: Nie da się, to strona wykrywa czy ma użytkownik ma włączony tryb ciemny i na tej podstawie może serwować inne style. Czy strona używa trybu ciemnego musiałbyś w najlepszym wypadku szukać czy w stylach css strony jest @media (prefers-dark-interface) + detekcja czy użytkownik ma włączony tryb ciemny, ale brak tego nie oznacza, że strona działa w trybie ciemnym bo równie dobrze deweloper mógł użyć jakiejś klasy na html/body którą ustawia
@look997: A jak ciebie interesuje czy są takie kontrasty na stronie no to by się dało, ale to dalej nie jest jednoznaczne czy strona ma tryb ciemny czy jest zwyczajnie ciemna :). Taka pierwsza myśl to by było zrobienie screenshota js, i kalkulacja jakie główne kolory są na stronie i czy przeważa ciemny kolor czy nie, albo przelecenie po wszystkich node-ach z tekstem i sprawdzeniem jaki jest w nich kolor tekstu
Czy synchronizacja działa na plik zip załadowany z Dodatki -> Narzędzia dla wszystkich dodatków -> Zainstaluj dodatek z pliku...?

Robię podstawowy test synchronizacji browser.local.sync:

javascript
let monster = {
name: "Kraken",
tentacles: true,
eyeCount: 10,
};

let kitten = {
name: "Moggy",
tentacles: false,
eyeCount: 2,
};

browser.storage.sync.set({ kitten, monster })

i na drugim profilu:

javascript
await browser.storage.local.get("kitten")

ale nic się nie dzieje, get("kitten") nie zwraca nic.

PYTANIE:
1. Czy synchronizacja
  • 0
@look997: Testowałem, i sam sobie odpowiem:
1. Da się.
2. Da się nawet bez pakowania do pliku zip, można nawet bezpośrednio załadować folder w about:debugging#/runtime/this-firefox.

Ale...

Miałem pewien pomysł z wykorzystaniem i...
Synchronizacja w Firefox jest absolutnie nieprzewidywana i niekonsekwentna. Nie ma opcji żeby użyć jej do czegoś użytecznego, tego nie da się sensownie użyć. Całe API WebExtensions ma wiele dziwnych błędów, niektóre zgłosiłem i są olewane. Tutaj API synchronizacji
  • 0
To ma się synchronizować przez usługę synchronizacji od Mozilli na Firefox i od Google na Chrome.
Bez zakładania konta przez usera, a od strony dewelopera, bez zarządzania tym storage, po prostu zapisujesz do asynchronicznego storage, i nie myślisz o tym więcej, backendu nie musisz mieć.

Dla WebExtensions działa.
Z założenia byłby to niewielki storage.
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.

Funkcji loadOneTab używałem w taki sposób:

const placesURL =
  • 0
Znalazłem rozwiązanie w kodzie źródłowym Firefoksa - 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.
@look997: Mi się na telefonie to nie zdarza. Na kompie chyba nie ma tego przycisku?
Poza tym czy Pokaż więcej nie przenosi Cię do miejsca w którym skończył się tekst? Czytasz dalej od "That'll also...". Nie musisz przewijać do góry.
via Wykop Mobilny (Android)
  • 1
@look997: Vivaldi ma interfejs graficzny przynajmniej w sporej części zbudowany w JavaScripcie i CSS, ale nie jest otwartoźródłowy, więc mogą powstać problemy natury licencyjnej. W Firefoxie za pomocą plików userChrome.css i userContent.css można dość mocno zmodyfikować wygląd przeglądarki, nie wiem jak z dodawaniem własnych funkcji.
Może będzie dało się podać rozwiązanie patrząc na problem od bardziej ogólnej strony - co chcesz osiągnąć?
Jeśli tylko ukryć interfejs, to przeglądarki mają coś takiego
@mp107: Menu kontekstowe może nawet nie wystawać poza okno przeglądarki, zwykle używam zmaksymalizowane okno, więc to w zasadzie nie problem.
W VSCode menu też są w czystym HTML i idzie używać. :D

Marzyło mi się standardowe webowe API menu/popupa wystającego poza okno przeglądarki - zabezpieczeniem byłoby wyświetlanie i znikanie tego menu wg ścisłych reguł.
Nad standardowym API popup pracują, ale żeby ono mogło wystawać to nie chcą. :/
#firefox #webextensions #programowanie #javascript #extensions #addons
Zauważyliście że przeglądając bazę rozszerzeń Firefoksa z wersji 57, jako działające są oznaczone praktycznie wyłącznie rozszerzenia ograniczające się do bycie UserScript'em dla stron?
Do tego tylko 3/20 w ogóle działają. To się pewnie jeszcze zmieni, ale raczej niewiele i to też najczęściej tylko w pozostałych UserScript'ach.

Mozilla powinna zrobić userscripts.mozilla.org i tam umieścić WebExtensions, a addons.mozilla.org zostawić dla prawdziwych rozszerzeń.

A tak serio, to czy istnieje
XUL ma zostać porzucony, XPCOM też może zostać całkowicie porzucone.


@P0lip: Mogą sobie przejść całkiem na HTML w interface.
Porzucą(chociażby przez to, że jest przestarzałe)XPCOM, ale muszą je czymś zastąpić tak czy tak, bo z czegoś w końcu podstawowe funkcje przeglądarki muszą korzystać. I nadal te WE-Experiments mam nadzieję, że nie zostanie porzucone, bo to jest właśnie poletko do potencjalnych nowych stabilnych API dla WE(WebExtensions), także myślę, że to zostawią i
Mocno ograniczona jest ingerencja w UI. Samo API nie jest aż tak tragicznie mocno obcięte, ale fakt faktem - rozszerzenia mają mniejsze możliwości.


@P0lip: W zasadzie głównie o IU chodzi, ale nie tylko.