#5
Attól függ mit értünk böngésző alatt. A böngésző "részhez" eddig is hozzáférése volt például a Unite appoknak olyan szinten, hogy tudtak küldeni beúszó értesítést, ilyesmi.
A mostani extensions API pedig attól tartok, hogy nem fog kiterjedni sem az M2-re, sem a beépített IRC kliensre, tehát ott tartunk majd, ahol eddig.
"Nincs cross-origin XHR-re lehetőség, globális beállítás van, de az nem túlságosan kívánatos."
De használhatsz helyette postMessage-t.
"Nincs lehetőség dinamikus contextmenükre sem."
Mit értesz dinamikus alatt? Minden ha linkre kattintasz mást kapsz, mintha kijelölt szövegre, vagy magára az oldalra. El nem tűnnek a kiszürkült elemek, de ki vannak szürkülve, amiket nem tudsz használni, ez sajátmenünél is adott. A kép context menüje például tartalmazza a kép nevét és kiterjesztését.
Ráadásul az alap változókat is használhatod, mint %s %l %u, stb.
Amúgy a menük, eszköztárak és billentyűparancsok telepítése eddig is egy kattintás volt, ha htaccess-ben úgy volt megadva, hogy települjön, ne pedig szöveges fájlként nyíljon.
"Továbbá problémásak a beállításokkal és egyéb adatmentéssel kapcsolatos dolgok"
Ezzel egyetértek, de a Chrome-os addonok is ezekben tárolják az adatokat, mivel a fájlrendszerbe nem tudnak írni.
A süti talán a legstabilabb, egyrészt kiforrottabb (az LS bizonyos snapshotoknál van, hogy felejt), másrészt olvashatóak az adatok ember számára is, nem kódolt formában tárolódnak.
Megoldható lett volna technikailag egy Export/Import gomb, nem?
A más bővítményekkel való kommunikáció mindenhol hadilábon áll. Általában amik ütik egymást azok ütik egymást. A JS mivel általában egy bizonyos feladatra van írva, nem telepakolva mindenféle funkcióval, így nem akad össze egymással.
"nem férsz hozzá semmilyen személyes adathoz, stb."
Ezt én inkább előnynek fognám fel, mivel sajnos nincs sem időm, se kedvem minden frissítésnél forráskódot proofreadelni, hátha egy újabb Giorgio Maonéval van dolgom...
"Nem tudod szabályozni hogy melyik userJS hogyan és mikor fusson le."
Ez téves. Ott az AddEventListener, amivel tudod. A GM scripteket nem tudod.
"Nem tudod szabályozni hogy ezek a scriptek ne írják felül egymást vagy az oldal adatait."
Bővebben? Nálam 26 van és egyik sem akad a másikkal, mivel ahogy fentebb is említettem, 1-1 funkciót látnak el, nem arra törekednek, hogy minden szart belesűrítsenek, csak éppen azt ne tudja, amit kéne.
Két példa:
Firefox-os popup selection context menü (nem tudom hogy hívják).
Van 8 tab, 2-3 altab, 50+ checkbox meg minden konfigurációs lehetőség, mégis lehetetlen arra az egyszerű műveletre rávenni, hogy csak az oldalon kijelölt szöveg esetén ugorjon fel duplaklikkre, szövegdobozban ne ugorjon fel.
Tab Previews: Fejlettebb konfigurációs lehetőségekkel rendelkezik, mint az Operás megfelelője, mégis lehetetlen arra rávenni, hogy amíg a fülsávon van az egér és ott húzom a kurzort, addig ne alkalmazódjon újra és újra minden egyes tabnál a beállított timeout, mivel ha 50 tabnál 50*500ms-t végig kell várnom az zavaró.
"Problémás egyáltalán bármilyen beállítópanelt írni ezekhez."
"Operában nem gond ha bele kell túrni a forráskódba, de Chrome-nál már igen?"
1: Egy INI fájlt egy nagymama is képes szerkeszteni, csak akarni kell, egy JavaScript már kicsit húzósabb.
2: Mikor Chromeban userJS-hez (ami szintén addonként települ) hozzáadtam a headerhez @exclude-ba 1-2 URL-t, egyáltalán nem működött tovább az userJS.
Amikor ugyanazt a JS-t feltöltöttem tárhelyre onnan eleve telepíteni sem tudtam, amíg meg nem adtam htaccess-ben, aztán utána legenerálta újra a manifest fájlt és működött.
Elhiszem, hogy biztonsági okokból ellenőrző hash-t tárol, de azért ennyire ne essünk már túlzásokba a biztonság terén...
"miből gondolod hogy nem építenek bele ilyen szolgáltatásokat?"
Mert egyrészt a Chrome sem enged és azzal példálóztak, másrészt a Core blogban is megjegyezték, hogy habár ezek a cuccok nem adnak annyi szabadságot, mint a Firefoxos addonok, de szabványos webes nyelveket használnak és kevésbé erőforrásigényesek.
Ebből nekem az jött le, hogy ugyanolyan korlátozott lesz, mint Chrome-ban, nuku HTTPS, nuku belső lapok, nuku böngésző többi része (M2, IRC, stb.)