Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 15907|Odpowiedź: 2

CEF: Osadzenie Chrome dla klienta

[Skopiuj link]
Opublikowano 22.09.2017 16:19:26 | | |
Czym jest CEF?
CEF to skrót od Chromium Embedded Framework, czyli otwartoźródłowego sterowania przeglądarki internetowej opartego na projekcie Google Chromium, obsługującego platformy Windows, Linux i Max. Oprócz interfejsów C/C++, dostępne są także porty dla innych języków.

Ponieważ CEF opiera się na Chromium, wspiera funkcje HTML5 zaimplementowane w Webkit i Chrome, a pod względem wydajności jest stosunkowo bliski Chrome pod względem wydajności.

CEF oferuje również następujące funkcje: niestandardowe wtyczki, własne protokoły, niestandardowe obiekty Javascrip oraz rozszerzenia; Kontrolowalne ładowanie zasobów, nawigacja, menu kontekstowe itd.

Kto korzysta z CEF
Użyjmy kilku praktycznych przykładów, aby zilustrować, co wszyscy zrobili z CEF:

Różne przeglądarki

Wczesne przeglądarki dwurdzeniowe (IE + Webkit) niektóre wykorzystywały CEF jako kontrolę przeglądarki jądra Webkit.

Jednak w przypadku przeglądarek bezpośrednie rozszerzanie na Chrome jest tak naprawdę królem i robią to teraz wszyscy (różne szybkie przeglądarki).

Klient Evernote (na Windows)

Evernote pozwala użytkownikom wklejać strony internetowe do notatek, a także oferuje wtyczki do zapisywania stron jako notatek.

To musi być konieczność poprawnego renderowania strony na kliencie, a to zadanie pozostawia CEF.

Klient GitHub (na Windows)

GitHub również zapakował libcef.dll, z punktu widzenia wydajności, strona ReadMe używana do wyświetlania projektu musi być CEF, a interfejs użytkownika w innych miejscach może być częściowo zaimplementowany za pomocą stron.

QQ

QQ już dawno zaimplementowało niektóre funkcje i interfejsy, osadzając IE. Od zeszłego roku QQ wprowadziło CEF, zastępując niektóre miejsca, które wcześniej korzystały z IE, dzięki czemu można było korzystać z nowych funkcji opartych na Webkit, a jednocześnie zyskało przewagi w zakresie szybkości, stabilności i kompatybilności.

Adobe Edge Animate i Adobe Edge Reflow

Adobe uruchomiło kompletny zestaw nowoczesnych stron internetowych (lub HTML5?) Krawędź.

Adobe Edge Animate, do animacji, może uzyskać złożone animacje poprzez edycję osi czasu i tworzenie oryginałów (zwanych symbolami w Edge Animate).

Edge Reflow to projektowanie responsywnej sieci. Niektórzy tłumaczą to jako responsywne, co jest w rzeczywistości adaptacyjne.

Powyższe dwa programy są zasadniczo zorientowane na przeglądarkę jądra Webkit, dlatego konieczne jest osadzenie jądra Webkit, aby zapewnić podgląd i interfejs edycji WYSIWYG. Wszystkie korzystały z CEF. (Różnica między CEF a czystym Webkit zostanie przedstawiona później)

Q+

W ramach koncepcji aplikacji webowej Q+ zapewnia środowisko działające dla stron internetowych (mówiąc wprost: ramkę klienta i niektóre dostępne API) oraz obsługuje jądra IE i Webkit.

Dla studentów tworzenia stron internetowych jądro Webkit (w rzeczywistości CEF), które wprowadziliśmy, nie musi uwzględniać problemów z kompatybilnością wersji IE, co nie tylko poprawia efektywność tworzenia, ale także pozwala nam korzystać z nowych funkcji HTML5. W tamtym czasie rynek aplikacji Q+, centrum wiadomości, tapety, widżety muzyczne i inne aplikacje były rozwijane na bazie jądra Webkit.

Można powiedzieć, że projekt Q+ podjął więcej prób CEF, takich jak:

Opracowany widget muzyczny korzysta z tagu audio HTML5;

Niektóre aplikacje korzystają z funkcjonalności offline HTML5 (czyli z plikiem manifestu), ale oczywiście są pewne niedociągnięcia i zdobyłem spore doświadczenie.

Pakietowe narzędzia deweloperskie Webkit.

Protokoły niestandardowe: Na przykład dostęp do qplus:// protokołów można przekierować do specjalnego folderu.

Renderowanie poza ekranem (OSR): Używając renderowania poza ekranem + Windows Layered Window, powstaje nieregularne okno strony internetowej (jaki kształt jest nieprzezroczysty obszar strony, jaki kształt jest okno)

Dlaczego osadzać CEF dla klientów?
Przy tylu przykładach to pytanie jest znacznie łatwiejsze do zadania:

Służy do wyświetlania stron internetowych i korzystania z różnych usług internetowych;

Używaj stron internetowych do obsługi interfejsu;

Korzystaj z funkcji HTML5, takich jak audio, canvas itp., w tym CSS3.

Renderowanie poza ekranem (OSR):

Tak zwany OSR polega na renderowaniu całej strony na bitmapie bez tworzenia prawdziwego okna. Oczywiście nie tylko renderowanie, ale także seria API obsługujących myszkę, zdarzenia klawiatury, zdarzenia metody wprowadzania itd.

Ta funkcja jest szczególnie przydatna, gdy nie można używać prawdziwych okien, na przykład w oknach warstwowych lub gdy są renderowane na tekstury w grach.

Korzystając z funkcji OSR, można uzyskać ciekawe efekty, takie jak:

AlloyTeam stworzył Webtop, który wykorzystuje OSR do tworzenia przeglądarki, odtwarzacza itd.

Jest projekt Awesomium, który również wspiera OSR, a już istnieją projekty gier, które wykorzystują Awesomium do renderowania stron internetowych w grach. (Patrząc na plik wyjściowy Awesomium, powinien być podobny do implementacji CEF, to wszystko jest pakietem Chromium, a CEF, który Awesomium potrafi, również powinien być wykonany)

W wolnym czasie stworzyłem demo i użyłem CEF do renderowania stron internetowych na OpenGL Texture, co można uznać za małą próbę zastosowania CEF w grze, jak pokazano na rysunku:

Demo przeglądarki w grze

Dlaczego CEF?
IE

IE od dawna jest kontrolerem przeglądarki wbudowanej, a dokładniej, obecnie mamy wiele alternatyw dla IE.

CEF vs IE:

Zgodność:

Np. jądro różni się od 6 do 10 wersji w zależności od systemu operacyjnego, a obciążenie związane z tworzeniem stron internetowych, aby było kompatybilne z tymi wersjami, nie może być przecenione.

CEF: Wykorzystuje jądro Webkit, a z punktu widzenia charakterystyki wersja CEF może odpowiadać numerowi wersji Chrome, dzięki czemu tworzenie stron internetowych ma jasny zestaw funkcji, eliminując obciążenie związane z kompatybilnością.

Standardowe funkcje HTML5 i nowe funkcje:

IE: Oczywiście, starsze wersje IE nie obsługują najnowszych funkcji i standardów HTML.

CEF: Nie ulega wątpliwości, że Webkit i Chrome są liderami we wspieraniu nowych funkcji.

Open Source i wieloplatformowe:

Czyli nie jest open source, ogranicza się do platformy Windows

CEF: Open source, Webkit i Chromium są wszystkie open source, open source oznacza więcej możliwości personalizacji; Obejmuje Windows, Mac i Linux.

Renderowanie poza ekranem (OSR):

Np. można uzyskać renderowanie poza ekranem dzięki kilku modyfikacjom, ale obciążenie nie jest małe i nie jest oficjalnie wspierane.

CEF: Istnieje dedykowany tryb renderowania poza ekranem oraz odpowiadające mu API.

Przenikanie:

IE: Wszyscy użytkownicy Windows mają IE, co jest zaletą IE (ale niektórzy użytkownicy mają nieprawidłowe ustawienia IE, co prowadzi do nieużyteczności, np. jscrip{filtering}t.dll niezarejestrowany, co skutkuje niemożnością użycia Javascrip{filter}t)

CEF: Trzeba go samodzielnie zainstalować i zapakować

Webkit

Dlaczego celowo porównywać CEF i Webkit?

Niedawno przeczytałem dobry artykuł o tym, czym jest Webkit, czym nie jest i dlaczego jest tak wiele portów Webkit: "Co deweloperzy powinni wiedzieć o WebKit"

Oto ogólne podsumowanie:

Webkit to silnik parsowania i układania stron internetowych, który jest współdzielony przez wszystkie przeglądarki oparte na Webkit. Domyślnym portem Webkit jest Safari, czyli wersja pobrana z kompilacji kodu źródłowego Webkit. Są też inne porty Webkit, w tym Chromium, QtWebkit itd., które mają różne implementacje w grafice 2D, akceleracji GPU, silniku Javascrip, dekodowaniu audio/wideo itd.

CEF vs webkit (właściwie Chromium vs Webkit)

Silnik V8, renderowanie 2D w skia, implementacja przyspieszona GPU w Chromium itd., dzięki świetnej implementacji Chromium, CEF stał się także doskonałym portem Webkit.

Wady CEF:
Bądźcie wyrozumiali, CEF ma też swoje wady i ograniczenia, i nie można wymieniać tylko zalet, tutaj przedstawię wady i wady CEF:

Tom:

W najnowszej wersji CEF suma wszystkich DLL powinna wynosić blisko 40M, a szacuje się, że po kompresji będzie to 10M+. Jeśli sam Twój projekt nie jest duży i nie może go otrzymać, to CEF nie jest dla Ciebie.

Oczywiście, dla gier, które teraz są liczone przez G, ta objętość powinna nadal być akceptowalna.

W przypadku zwykłych projektów klientów zależy to od tego, czy sam projekt musi korzystać z funkcji implementowanych przez CEF i czy warto tak bardzo zwiększyć pakiet instalacyjny produktu. Oczywiście są tu też pewne kompromisy implementacyjne, takie jak pobieranie po instalacji (osobiście uważam, że to nie ma znaczenia, w końcu użytkownicy instalujący pakiety mogą też wybrać pobieranie oprogramowania, by przyspieszyć pracę)

Pamięć podręczna:

Pamięć podręczna Chrome jest zaprojektowana tak, aby tylko jeden proces odczytywał i zapisywał, podobnie jest z CEF.

Dla klientów, którzy muszą być otwierani wielokrotnie, dla każdej instancji procesu można określić tylko inny folder pamięci podręcznej. Jednak niewątpliwie zwiększa to zużycie dysku twardego, a także powoduje, że niektóre pliki, które pierwotnie były buforowane, są pobierane wielokrotnie (na przykład proces A buforuje jQuery.js, proces B musi zażądać i buforować raz, ponieważ buforuje różne katalogi jQueyr.js

OSR:

OSR obecnie nie jest jak rzeczywisty tryb okna, który może być przyspieszany przez GPU, a OSR można renderować tylko za pomocą oprogramowania, co oznacza, że niektóre efekty 3D CSS nie są obsługiwane.

Jednak cechy OSR są nadal ulepszane i osobiście uważam, że warto na niego czekać.

Czym się później podzielić
Po napisaniu tak wielu tekstów można to uznać za wprowadzenie do CEF, a w przyszłości napiszę kilka artykułów o suchych produktach, czyli o tym, jak korzystać z CEF, w tym:

Pozyskiwanie kodu CEF, kompilacja, osadzanie, przetwarzanie wywołań API stron i klientów, renderowanie poza ekranem OSR, buforowanie, niestandardowe protokoły, CEF1 i CEF3 itd.

To wszystko na dziś.





Poprzedni:Redis ustawia hasła do zdalnego połączenia i dostępu
Następny:ASP.NET wielu żądań jednocześnie na stronie pojawia się blokująca sytuacja zawieszonej animacji
Opublikowano 25.02.2019 09:14:24 |
Świetnie
 Ziemianin| Opublikowano 12.08.2023 20:08:02 |
WebView2 (6) Dystrybucja i wdrażanie środowiska uruchomieniowego WebView2
https://www.itsvse.com/thread-10372-1-1.html

[WebView2] (5) Ładowanie lokalnych zasobów HTML wirtualnego hosta
https://www.itsvse.com/thread-10367-1-1.html

[WebView2] (4) Web i WinForm wymieniają metody funkcji ze sobą
https://www.itsvse.com/thread-10365-1-1.html

WebView2 (3) Dwukierunkowa komunikacja między aplikacjami Web a WinForm
https://www.itsvse.com/thread-10364-1-1.html

[WebView2] (2) WinForm wprowadza WebView2 do wyświetlania treści internetowych
https://www.itsvse.com/thread-10362-1-1.html

[WebView2] (1) Pierwsze wprowadzenie do technologii Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com