BASE changed interface
This commit is contained in:
commit
fd6bc3459f
33 files changed
+3047
No files matched your search
@@ -0,0 +1,82 @@
|
||||
# Результати тестування Ultralight (Крок 0 / Go-No-Go)
|
||||
|
||||
Тестування виконано згідно з вимогами `ULTRALIGHT_AGENT_GUIDE.md` на Windows 10 x64, .NET 8, Ultralight v1.3.0 (WebKit 610.4.3.1.4, JavaScriptCore).
|
||||
|
||||
---
|
||||
|
||||
## 1. Конфігурація середовища тестування
|
||||
|
||||
- **Платформа:** Windows 10 (10.0.19045), x64
|
||||
- **Runtime:** .NET 8.0 (`net8.0-windows`)
|
||||
- **Бібліотеки:** `UltralightNet` 1.3.0, `UltralightNet.AppCore` 1.3.0, `UltralightNet.Binaries` 1.3.0
|
||||
- **Нативні ресурси:** `AppCore.dll`, `Ultralight.dll`, `UltralightCore.dll`, `WebCore.dll`, `icudt67l.dat`, `cacert.pem`
|
||||
- **Тестові цілі:**
|
||||
1. `about:blank` (перевірка наявності Web/Media API)
|
||||
2. `https://www.youtube.com/` (головна сторінка YouTube SPA)
|
||||
3. `https://www.youtube.com/watch?v=dQw4w9WgXcQ` (пряме відео)
|
||||
|
||||
---
|
||||
|
||||
## 2. Результати тестів
|
||||
|
||||
### 2.1. Перевірка медіа API (`canPlayType`, `HTMLVideoElement`, кодеки)
|
||||
|
||||
Спроба виклику `canPlayType` завершилася фатальною помилкою:
|
||||
```
|
||||
TypeError: document.createElement('video').canPlayType is not a function.
|
||||
(In 'document.createElement('video').canPlayType(...)', 'document.createElement('video').canPlayType' is undefined)
|
||||
```
|
||||
|
||||
- `HTMLVideoElement`: **відсутній** у global scope (`ReferenceError: Can't find variable: HTMLVideoElement`)
|
||||
- `HTMLAudioElement`: **відсутній**
|
||||
- `MediaSource` (MSE): **відсутній**
|
||||
- `requestMediaKeySystemAccess` (EME / DRM / Widevine): **відсутній**
|
||||
- `AudioContext` / Web Audio: відсутній
|
||||
|
||||
### 2.2. Завантаження головної сторінки YouTube (`https://www.youtube.com/`)
|
||||
|
||||
- **DOM:** завантажився частково (1224 елементи), контейнер `<ytd-app>` створений.
|
||||
- **Помилки JS:** падіння скрипта `kevlar_base` на рядку 5444 через відсутність `HTMLVideoElement`:
|
||||
```
|
||||
ReferenceError: Can't find variable: HTMLVideoElement (kevlar_base_module:5444)
|
||||
```
|
||||
- **Відеокартки / прев'ю:** 0 знайдених рендерерів через збій у JS-ініціалізації YouTube.
|
||||
- **Споживання RAM:** **~320 MB** (Single Process).
|
||||
|
||||
### 2.3. Завантаження сторінки з відео (`watch?v=dQw4w9WgXcQ`)
|
||||
|
||||
- **Заголовок сторінки:** розпізнано коректно:
|
||||
`Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster) - YouTube`
|
||||
- **Плеєр YouTube:** плеєр відображає системне повідомлення про несумісність:
|
||||
> **«Воспроизвести видео в этом браузере нельзя. Подробнее…»**
|
||||
- **Відтворення звуку:** **0 / відсутнє**. Звук не грає, потік не декодується.
|
||||
- **Споживання RAM:** **441.8 MB** (для одного відкритого таба в одному процесі).
|
||||
|
||||
---
|
||||
|
||||
## 3. Порівняння: Ultralight vs WebView2
|
||||
|
||||
| Критерій | WebView2 (Chromium) | Ultralight v1.3.0 |
|
||||
| :--- | :--- | :--- |
|
||||
| **HTML5 Video / Audio** | Повноцінна підтримка | **Не працює** (`canPlayType is undefined`) |
|
||||
| **YouTube HTML5 Player** | Працює ідеально | **«Не можна відтворити відео в цьому браузері»** |
|
||||
| **DRM / Widevine** | Працює | **Не підтримується взагалі** |
|
||||
| **Сучасні JS API** | Повна підтримка Blink | Падає на `HTMLVideoElement`, Trusted Types |
|
||||
| **RAM (одна вкладка YouTube)** | ~350–450 MB (сумарно з renderer/GPU) | **441.8 MB** (один процес, навіть без відео) |
|
||||
| **Виграш по RAM** | — | **0 MB** (споживання практично однакове) |
|
||||
|
||||
---
|
||||
|
||||
## 4. Висновок за правилом Go/No-Go (Крок 0)
|
||||
|
||||
Згідно з інструкцією `ULTRALIGHT_AGENT_GUIDE.md`:
|
||||
> *«Якщо на кроці 3 YouTube взагалі не вантажиться або аудіо не програється — не переходити до Кроку 1. ...це не привід "трохи допрацювати", а сигнал, що для головного use case проєкту Ultralight як основний рушій не підходить.»*
|
||||
|
||||
### Вердикт: **NO-GO для заміни WebView2 на YouTube**
|
||||
|
||||
1. **Ultralight не здатен відтворювати YouTube усередині HTML:** рушій не має реалізації HTML5 Video/Audio кодеків, MSE та EME. YouTube видає плашку «Воспроизвести видео в этом браузере нельзя».
|
||||
2. **Немає виграшу по RAM:** один процес Ultralight на сторінці YouTube зайняв **441.8 MB**, що відповідає або навіть перевищує оптимізований режим WebView2.
|
||||
3. **Правильний шлях для проєкту:**
|
||||
- Для веб-браузингу та навігації — **залишати WebView2**.
|
||||
- Для ультралегкого звуку без навантаження на рендерер — використовувати вже створений **`NativeAudioSession` + `YtDlpExtractor`** (direct audio stream через WASAPI/MediaPlayer).
|
||||
- Ultralight можна використовувати виключно для внутрішніх легких UI-віджетів/налаштувань (якщо виникне потреба у чистому локальному HTML-інтерфейсі).
|
||||
Reference in new issue
Block a user