Fejlesztés kiterjesztése a firefox, vagy az első tapasztalat, a példa a képernyőkép

Fejlesztés kiterjesztése a firefox, vagy az első tapasztalat, a példa a képernyőkép +18

  • 23.09.16 06:07 •
  • lnroma •
  • # 310844 •
  • Habrahabr •
  • 30 •
  • 6500

- ugyanaz, mint Forbes, csak jobb.

Miután írta a cikk rendszer parancsfájljait php for linux-ra, írunk egy screenshotot. Az volt az elképzelés, „miért nem írsz egy kiterjesztés, amely köti az én script, automatikus ürítéssel a Yandex Disk„. ... olvasd el a dokumentációt a fejlesztési kiterjesztés, úgy döntöttem, mégis íráshoz.

Fejlesztés kiterjesztése a firefox, vagy az első tapasztalat, a példa a képernyőkép

Itt egy kis gomb és egy képernyőkép a Yandex lemezen, egy prototípus-kiterjesztés eredménye, amely néhány órán belül meg van írva. A létrehozás folyamatában a vágás alatt ...

Figyelem: ez az alkalmazás első verziója, a jövőben az előző cikk forgatókönyve képernyőképként fog működni ...

Az általam kifejlesztett kiterjesztés a következő fájlstruktúrával rendelkezik:

-chrome.manifest
-install.rdf
--tartalom
----browserOverlay.js
----browserOverlay.xul
----options.xul
--bőr
----browserOverlay.css


Most érdekelnek a fájlok: chrome.manifest és install.rdf. A chrome.manifest tartalmazza a projekt struktúrájának leírását:


A króm-manifeszt első két sora tartalmazza: az adattípus, a csomag neve, a csomagfájl elérési útja.

A harmadik vonal regisztrálja az úgynevezett átfedést (pl. Ez a réteg lefelé fekszik, mint egy már létező, és hozzáadja a vezérlőket a böngészőhöz.

Az install.rdf fájl olyan telepítési manifeszt, amely a kiterjesztéssel bővített információkat tartalmazza:


Mint látható. Tartalmazza az azonosítót, az alkalmazás nevét, a verziót, az alkotót, az alkalmazástípust, a konfigurációs panel URL-jeit, és így tovább. információkat.

Nem hiszem, hogy érdemes összpontosítani ezt a fájlt, mert minden teljesen nyilvánvaló. Csak egy opciót elemezhetünkURL, ez az url, amely a kiterjesztés beállításait eredményezi, a beállításokat a options.xul fájl írja le:


Ebben a fájlban csak 2 felhasználónevet és jelszót írtunk le. Megjegyzés: a nevét «extensions.xulphpsrc.login» és «extensions.xulphpsrc.pass» bennük mintha egy fa struktúra, és könnyebb lesz kijutni a teljes tömege rekordok, és van egy bizonyos garanciát egyediségét a kulcs ...

Ezután tekintse át a browserOverlay.xul fájlt:


Mit csinál? kétféle fájlt csatlakoztat a browserOverlay.css, a browserOverlay.js fájlhoz, és egy eszköztárat és egy gombot hoz létre rajta: "Képernyőkép":

Az alkalmazás teljes logikáját a browserOverlay.js tárolja


Részletesebben megnézzük ezt a fájlt, bár ez triviális, és csak 2 lépést tesz: egy képernyőképet készít és betölti a yandex lemezre. A képernyőképet a crot rendszer segédprogramjának hívásával végzi, és az eredményt a curl segítségével töltődik be. A "kattintás" kezelő a "képernyőkép" gombra, beállítjuk a makeScreen módszert:


Ez az alkalmazás belépési pontja, itt megjelenik a jövő képernyőképének neve, és hívás történik, a linux program, a scrot. Kiválasztjuk a képernyő területét az egérrel, és készítünk pillanatképet, miután a program a következő uploadToYandex módszerre ugrik, és átadja a fájl nevét a letöltéshez.


Ebben a módszerben, amint láthatja, hogy nincs semmi rendkívüli, 2 kérést tesz a curl használatával a yandex.disk-ban, az egyik betölti a létrehozott fájlt, a másik pedig közzéteszi. Köszönöm olvasónak a megjegyzést. Végül értesítést kapunk arról, hogy a képernyőkép mentésre kerül.

Nos, most van kiterjesztése, hogyan kell telepíteni? A fejlesztéshez egyszerűen létrehozhatunk egy fájlt az alkalmazásnév alatt a mappában:


Ahol id az azonosító, például a [user] - firefox felhasználó megkapta ezt:


És tartalmazza a kiterjesztést tartalmazó fájlok könyvtárának elérési útját:

/ kiterjesztések / phpsrc / (például ezt kaptam).

Fejlesztés kiterjesztése a firefox, vagy az első tapasztalat, a példa a képernyőkép

A Firefox újraindítása, és kész ... konfigurálása kiterjesztése, megyünk, hogy kiegészítse és keresik annak kiterjesztését, nyomja meg a gombot, hogy beállítsa, adja meg a felhasználónevet és a jelszót yandex'a és kész, akkor most megnyom egy gombot, és egy screenshot ...

Következtetés: Először írtam a firefox kiterjesztését, és több időm volt a cikk megírására. Ez az alkalmazás első verziója a jövőben azt tervezi, hogy fejleszti az irányt, a php használatát ezen a területen. Minden képernyőképet a fejlett kiterjesztés készít. Köszönöm mindenkinek a figyelmet, a legjobbakat ...

Igen, de ez a WebExtensions API nagyon gyenge. Triviális dolgokat nem lehet vele csinálni. Például, ha nem lesz képes megismételni bővítése fb2reader (persze, hogy ismételje meg, nem szükséges, de ha azt akarjuk, hogy valami hasonlót, mint az átalakulás az XML fájlt a log-in asztal, meg kell csinálni a régi technológia). Tehát, ha csak hagyja ebben a formában, mint most, egy csomó dolgot Poher.

A WebExtensions minden kiadásban frissül. Például a 49. verzióban a történelem manipulálásának lehetősége hozzá lett adva. És tovább módosítja a paritást a krómral.

Így lehetséges lesz egy XML fájl megnyitása a böngészőben, mint HTML (a jQuery és a webmesterek kedvenc zsetonjai) vagy sem? És a fájlrendszerből, és az internetről?

A lényeg az, hogy a XUL sokkal hatékonyabb, mint a WebExtensions. A paritás nem segít itt.

A Firefoxban minden nagyon szorosan összekapcsolódik egymással.

Az átmenet az új motor (Servo), optimalizált multi-threading és a többmagos (Gecko jelenlegi motor gyökerei a nap a Netscape, amikor a legtöbb PC-k már nem több, mint egy CPU mag), a „halál” igényel XUL (ami, ha jól értem, sokkal a régi motoros körmökhöz szegezve). Ez viszont megköveteli, átírás és kiegészítéseket az új API-t. Ugyanakkor az új felület a HTML5-n alapul.

Amikor dopiljat webextension - kiterjesztések króm alatt lehet használni ff (lehet újracsomagolással) - is nagyon jó lesz.
A probléma az, hogy a webes kiterjesztés lehetőségei korlátozottak, és valószínűleg nem lehet olyan kiegészítőket megvalósítani, mint például a Tree Style vagy az Advanced Locationbar.

A Tree Style fül lehet telepíteni, nem látok semmilyen problémát. Speciális helysáv - igen, közvetlenül ebben a formában nem valósul meg a króm. De több érzelemem van a hálózathoz és a fájlrendszerhez való alacsony szintű hozzáférés miatt. Hasznos zsetonok voltak, hiányozni fogok nekik.

A Tree Style fül lehet telepíteni, nem látok semmilyen problémát.
Miért nem jelenik meg a krómban, ahol a webes kiterjesztés api sokkal jobb, mint most az FF-ben?