Rozhraní pro tvorbu doplňků v moderních prohlížečích. Martin Straka martin.straka@nic.cz 13. 11. 2015



Podobné dokumenty
DNSSEC Validátor - doplněk prohlížečů proti podvržení domény

Mozilla pro vývojáře. David Majda LinuxExpo 2005, Praha

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Testovací protokol USB Token Cryptomate

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Identifikátor materiálu: ICT-3-55

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Testovací protokol čipová karta ACOS5

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Uživatelská příručka pro práci s Portálem VZP. Test kompatibility nastavení prohlížeče

PODPORA PRÁCE S FORMULÁŘI VE WEBOVÉM PROHLÍŽEČI SUPPORT FOR FORM FILLING IN WEB BROWSER

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

:16. Datum: Zpracoval: Ing. Richard Ruibar

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

CZ.1.07/1.5.00/

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

INFORMAČNÍ SYSTÉMY NA WEBU

Projekt JetConf REST API pro vzdálenou správu

Testovací protokol USB token etoken PRO 32K

TÉMATICKÝ OKRUH Softwarové inženýrství

3. HODINA. Prohlížeče Druhy prohlížečů Přehled funkcí Bc. Tomáš Otruba, Informatika 7. třída 1

Testovací protokol čipová karta etoken PRO SmartCard 32K

Historie Internetu instalace prvního uzlu společností ARPA

2 Popis softwaru Administrative Management Center

Instalace a konfigurace web serveru. WA1 Martin Klíma

Využití aplikace SketchUp pro tvorbu jednoduchého informačního systému

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Instalační příručka. Vlastnoruční digitální podpis. Plugin do webového prohlížeče

Uživatelská dokumentace

manažerského řízení HW a SW požadavky pro sw ATTIS

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Uživatelská dokumentace

SW ATTIS nástroje. HW a SW požadavky pro sw ATTIS. manažerského řízení. Verze manuálu: 3.5 Datum:

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Vývoj multiplatformní aplikace v Qt

Inovace výuky prostřednictvím šablon pro SŠ

Předpoklady správného fungování formulářů

Instalace pluginů pro formuláře na eportálu ČSSZ

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Registr práv a povinností

MATLAB a Simulink R2015b

Internet. Internetový prohlížeč. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

Software602 FormApps Server

Nápověda k aplikaci EA Script Engine

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

Content Security Policy

Projekt Datové schránky

Geoportál DMVS využití a další rozvoj

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Nové jazykové brány do Caché. Daniel Kutáč

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

Novinky v registru domén a mojeid. Jaromír Talíř jaromir.talir@nic.cz

Postup instalace umožňující el. podpis v IS KP14+ pro Internet Explorer 11 přes novou podpisovou komponentu.

Internet Information Services (IIS) 6.0

ELEKTRONICKÉ PODÁNÍ OBČANA

Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

Geis Web Print Návod na použití

Skriptování na straně serveru a klienta

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Otázka číslo 12 Internet

(5) Klientské aplikace pro a web, (6) Elektronický podpis

Stručný návod pro videokonference/classroom

Mapy.cz vs. amapy.cz

Semináˇr Java X J2EE Semináˇr Java X p.1/23

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Postup se dle prohlížeče a operačního systému liší, vyberte prosím jaký prohlížeč a na jakém operačním systému používáte.

Registr práv a povinností

HTML - Úvod. Zpracoval: Petr Lasák

Mobile application developent

14,819 (5.84 Stránky/Návštěva) Čvn Kvě Čvc Srp 2014

Windows a real-time. Windows Embedded

HIT jednotný koncept výuky NC programování

Server-side technologie pro webové aplikace

Instalace a základní administrátorské nastavení 602LAN SUITE 5 Groupware

Statistika pro ( )

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Sem vložte zadání Vaší práce.

TECHNICKÉ PODMÍNKY. Tyto podmínky stanoví technické požadavky pro poskytování vybraných Bankovních služeb. Vaše případné dotazy rádi zodpovíme.

úvod Historie operačních systémů

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Vytvoření.NET komponenty (DLL) ve Visual Studiu

Metodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Novinky ve Visual Studio Tomáš Kroupa

1. Začínáme s FrontPage

Pro využití aktivního odkazu (modrý a podtržený) použijte klávesu Ctrl + kliknutí myší.

Úvod do Web Services

Technické podmínky pro používání ABO-K

ČÁST 1. Základy 32bitového programování ve Windows

Testovací protokol čipová karta Oberthur Id-One Cosmo V5.4

Implementace VOIP modulu. VOIP module implementation. Diplomová práce

Úvodem Seznámení s HTML Rozhraní Canvas... 47

Softwarové komponenty a Internet

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Inovace výuky prostřednictvím šablon pro SŠ

Transkript:

Rozhraní pro tvorbu doplňků v moderních prohlížečích Martin Straka martin.straka@nic.cz 13. 11. 2015

Obsah Základní pojmy Rozhraní zásuvných modulů Techniky a API pro tvorbu doplňků a rozšíření DNSSEC/TLSA Validátor Co to je a jak to použít Požadavky na rozhraní a vývoj

Základní pojmy Zásuvný modul (plugin): Binární modul (nativní kód) s definovaným rozhraním pro komunikaci s JS. Typicky rozhraní NPAPI, ActiveX. Dynamicky linkovaná knihovna (C/C++). Vkládá se přes <embed> či <object> do stránky/rozšíření. Rozšíření (extension): Aplikace s UI - panel nástrojů, tlačítko, menu, popup, apod. Typicky JS, HTML, CSS, XML a zásuvné moduly. IE: panel nástrojů nebo Browser Helper Objects (C++/VB/C#). Doplněk (add-on): Cokoliv, co může být instalováno do prohlížeče - rozšíření, motivy, zásuvné moduly, slovníky, jazykové sady, vyhledávače, apod.

NPAPI rozhraní pro zásuvné moduly Netscape Plugin Application Programming Interface Vznik: 1995, Nesscape 2.0. Prohlížeč komunikuje přes NPAPI rozhraní se zásuvnými moduly. Volání viditelných funkcí zásuvného modulu. Výměna dat mezi modulem a JS (stránka, rozšíření). Metody pro inicializaci/vytvoření/ukončení modulu. Podpora pro běžné OS: Windows, OS X, UNIX-like. Prohlížeč Netscape Navigátor Podpora NPAPI Ukončeno od verze Rok ukončení ANO 9 12/2007 Firefox ANO - konec 2016 SeaMonkey ANO?? Chrome ANO 45 09/2015 Opera ANO 20 03/2014 Safari ANO - (12/2015) MS IE ANO 5.5 01/2000 MS Edge NE - -

ActiveX rozhraní pro zásuvné moduly Framework od Microsoftu - vývoj komponent a zajištění komunikace mezi nimi. Stavebnice pro sestavovaní větších aplikací, komunikační rozhraní (C++/VB). ActiveX Controls moduly a rozhraní pro vývoj a použití rozšíření v IE. Přístup k rozhraní a jádru IE. Spouštění ActiveX z webové stránky. Spouští se bez vědomí uživatele. Plný přístup ke všem složkám OS (i registry). IE od v 3.0. Dnes již zastaralá a nebezpečná technologie. Náchylné k útokům (viry). Zaveden mechanizmus ověření, je-li spouštěný ActiveX legitimní. MS Edge nepodporuje (pouze HTML 5).

FireBreath: modul snadno a rychle Framework pro tvorbu zásuvných modulů v C++ (Windows/Linux/Mac OS X). Rozhraní modulu NPAPI nebo ActiveX pro IE. Vyžaduje CMake. Automatické vytvoření kostry modulu pomocí skriptu v Pythonu. NPAPI wrapper pro existující C/C++ knihovny. Upravené datové typy pro výměnu dat s JS (JSAPI). Opensource, BSD či GPL v2.1. Podpora: Firefox, Chrome, Opera, Safari a IE. Projekt se přepisuje kvůli zastaralému NPAPI. Možná bude podpora: Native Messaging, js-ctypes, NaCl.

Mozilla: techniky pro vývoj doplňků Firefox/IceWeasel, SeaMonkey, Thunderbird. Založené na renderovacím jádře Gecko. JS, HTML, CSS, XUL. XPCOM, JSM. Podpora pro zásuvné moduly. Napojení přes rozhraní js-ctypes či zastaralé NPAPI. 4 techniky pro tvorbu doplňků: Overlay-based (XUL) nejstarší, bude ukončeno. Bootstrapped restartless stále aktuální. Add-on SDK aktuální, populární. WebExtensions nejnovější, testovací.

Mozilla: Overlay extensions (XUL) XUL - XML User Interface Language deklarativní rozhraní. Silný nástroj pro vývoj složitých rozšíření a UI. Minimálně jedna globální stránka XUL + JS (chrome.manifest + install.rdf). Můžete přistupovat k čemukoliv. Vyžaduje restart prohlížeče po (od)instalaci. Kompatibilita s jinou hostitelskou verzí není zaručena. Dostupné různé JS moduly (JSM) a XPCOM. Podpora pro zásuvné moduly (NPAPI, js-ctypes). Podpora: Firefox, Thunderbird, SeaMonkey. Firefox pro Android podporován není.

Mozilla: Restartless extensions XUL - vkládán programově přes DOM API během inicializace doplňku. Zaváděcí JS (bootstrap.js + chrome.manifest + install.rdf). Skript s API pro správu doplňku (init/uninstall, spuštění/deaktivace). JS v privilegovaným módu, větší bezpečnost. Přímý přístup k obsahu webové stránky. Vývoj složitých UI a funkcionality i pro Android. Nevyžaduje restart prohlížeče. Kompatibilita s jinou hostitelskou verzí nemusí být zaručena. Podpora pro JSM, XPCOM, NPAPI, js-ctypes. Použití: Firefox, Thunderbird, SeaMonkey, Firefox pro Android.

Mozilla: Add-on SDK Vysokoúrovňové API v JS, součást Firefoxu, API pro: UI doplňku a jeho rozhraní (panely nástrojů, tlačítka, menu, popup). Interakci s prohlížečem (záložky, operace s URL, události, apod.). Modifikaci obsahu webové stránky. Komunikace s okolím. Zaváděcí JSON soubor (package.json). Strukturováno do modulů, bezpečnější kód. Nástroje pro testování a balíčkování doplňku. Snadná přenositelnost mezi verzemi Firefoxu, plná podpora pro Android. (od)instalace doplňku nevyžaduje restart, SDK se postará o zavedení/odinstalování/vyčištění. Nízkoúrovňové API za cenu bezpečnosti, nutno povolit. Zásuvné binární moduly přes js-ctypes - omezeno.

Mozilla: WebExtensions Implementuje nové API pro multiplatformní vývoj doplňků: Kompatibilní s API Chrome/Opera (Blink engine). JS běží mino hlavní proces UI (podpora multiprocesorového režimu). Manifest.json struktura doplňku jako v Chrome (stránky, skripty, akce, web). Doplňky přenositelné mezi prohlížeči (minimální změny). Firefox, Chrome, Operu, možná i Microsoft Edge. Jednodušší vytváření doplňků než XUL/XPCOM. Lepší a jednodušší dokumentace. Jednodušší kontrola pro vydávání na addons.mozilla.org. Podpora ve Firefox Nightly a Firefox od verze 42. Testovací fáze. Nelze zatím používat nativní pluginy (js-ctypes, NPAPI).

Mozilla: rozhraní js-ctypes JS rozhraní pro komunikaci s binárními komponentami. Alternativa k zastaralému NPAPI. Dovoluje z JS volat funkce sdílených knihoven (dll, so, dylib). Poskytuje C-kompatibilní datové typy. Firefox/IceWeasel, SeaMonkey. Components.utils.import("resource://gre/modules/ctypes.jsm"); var lib = ctypes.open("c:\\windows\\system32\\user32.dll"); var msgbox = lib.declare("messagebox", ctypes.stdcall_abi, ctypes.int32_t, ctypes.ustring, types.ustring, ctypes.int32_t); var ret = msgbox("hello world", "title", 0); lib.close();

Chrome: Native Client a PPAPI NaCl vyvinuto Googlem, umožňuje vytvářet a bezpečně spouštět programy/doplňky napsané v C/C++ v prohlížeči (nezávisle na OS). Speciální překladače do nativní kódu není podpora pro NPAPI. Program běží v sandboxu prohlížeče. Může komunikovat s JS a má přístup k obsahu webové stránky. Program nemá přímý přístup k prostředkům OS, existuje API (Pepper). Pepper: API k videu 2D/3D, audiu a souborovému systému. Podpora pro C i C++, dostupných mnoho dalších knihoven. PPAPI: vychází z NPAPI, běží v samostatném procesu, přenositelné, bezpečnější. Google poskytuje NaCl/Pepper SDK překladače pro architektury x86-32, x86-64 a ARM. PNaCl přenositelná verze nezávislá na architektuře CPU.

Chrome: Native Messaging Doplňky můžou komunikovat s nativní aplikací prostřednictvím mechanizmu zasílání asynchronních zpráv. Nativní aplikace (host) musí tuto techniku podporovat, rozhraní pro volání z JS. Prohlížeč spouští hosta v samostatném procesu. Komunikace prohlížeč/host přes standardní V/V. Registrace hosta pomocí JSON manifest souboru: { } "name": "cz.nic.my_application", "description": "My Application", "path": "C:\\Program Files\\My Application\\chrome_native_messaging_host.exe", "type": "stdio", "allowed_origins": [ "chrome-extension://okldjmfmopnpolahpmmgbagdohdnhksd/" ]

Internet Explorer Doplňky jako tlačítko/panel nástrojů/menu/bho. ActiveX. Plný přístup k obsahu stránky a rozhraní prohlížeče (tab, url, atd.). Visual Studio, C++, VB nebo C# (.NET). UI s použitím knihoven ATL a MFC (C++). Nutná registrace doplňku do registru Windows (CLSID). Omezená podpora JS a HTML pro UI. Add-in Express: framework pro vývoj IE doplňků do Visual Studia. https://www.add-in-express.com

Safari Vyžaduje Extension Builder v Safari. Nutný certifikát vývojáře pro podepsání doplňku. Vývoj v JS, HTML, CSS. UI: tlačítka/panely/menu/popup. API pro přístup k rozhraní prohlížeče přes JS (tab, url, atd.). Jedna zavádějící stránka Global page a plist (XML s nastavení a uspořádání prvků doplňku). Binární moduly přes NPAPI Panelu nástrojů přes <embed> nebo <object> tag.

DNSSEC/TLSA Validátor Doplněk pro: Firefox, Chrome/Opera, IE, Safari. Přidává do prohlížeče grafickou i textovou informaci o stavu zabezpečení doménového jména technologií DNSSEC včetně validace certifikátů protokolem DANE. Používá zásuvné moduly napsané v C (Unbound, OpenSSL). Validuje IP adresy použité prohlížečem technologií DNSSEC (RFC 4035). Validuje certifikáty HTTPS proti TLSA záznamu protokolem DANE (RFC 6698). www.dnssec-validator.cz

DNSSEC/TLSA Validátor Požadavky na funkce při vývoji doplňku a použitelné vývojové techniky Prohlížeč Technika, nástroje pro vývoj Firefox XUL/CSS/JS + NPAPI Firefox XUL/CSS/JS + js-ctypes Firefox Add-on SDK + js-ctypes Chrome NaCl + Pepper Chrome/Opera HTML/CSS/JS + Native Msg. Safari HTML/CSS/JS + NPAPI Internet Explorer C++, ActiveX, BHO s ATL a MFC URL stránky a taby Otevřít UDP spojení IP adresa prohlížeče Certifikát stránky Blokování HTTPS ANO ANO ANO ANO ANO ANO ANO ANO ANO (NE) ANO (ANO) ANO (ANO) (NE) ANO (NE) ANO (NE) (NE) ANO ANO ANO ANO NE ANO ANO NE ANO ANO ANO ANO (ANO) ANO (ANO)

Děkuji za pozornost Martin Straka martin.straka@nic.cz