fit-webview-bridge 0.2.2a2__cp313-cp313-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fit-webview-bridge might be problematic. Click here for more details.

@@ -0,0 +1,10 @@
1
+ import builtins as _builtins
2
+ import importlib
3
+ import sys as _sys
4
+
5
+ _wkm = importlib.import_module(__name__ + ".wkwebview")
6
+ _sys.modules.setdefault("wkwebview", _wkm)
7
+ setattr(_wkm, "wkwebview", _wkm)
8
+ setattr(_builtins, "wkwebview", _wkm)
9
+
10
+ from .wkwebview import WKWebViewWidget as SystemWebView
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.2
2
+ Name: fit-webview-bridge
3
+ Version: 0.2.2a2
4
+ Summary: Qt native WebView bridge with PySide6 bindings
5
+ Author: FIT Project
6
+ License: LGPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/fit-project/fit-webview-bridge
8
+ Requires-Python: <3.14,>=3.11
9
+ Requires-Dist: PySide6==6.9.0
10
+ Requires-Dist: shiboken6==6.9.0
11
+ Requires-Dist: shiboken6-generator==6.9.0
12
+ Description-Content-Type: text/markdown
13
+
14
+ # FIT WebView Bridge
15
+
16
+ ### Description
17
+
18
+ **FIT WebView Bridge** is a cross‑platform Qt widget (C++/Objective‑C++) with **PySide6** bindings that wraps the OS‑native web engines:
19
+ - **Windows →** Edge WebView2
20
+ - **macOS →** WKWebView
21
+ - **Linux →** WebKitGTK (with **GStreamer** for codecs)
22
+
23
+ It exposes a **unified Python API** for browser control and enables **forensic viewing/capture** of content, including media requiring proprietary codecs (e.g., **H.264/AAC**), **without** custom QtWebEngine builds or codec redistribution burdens (system codecs are used). All **controls** (UI and app logic) are **delegated to the PySide window**.
24
+
25
+
26
+ ### Why this project
27
+ QtWebEngine (Chromium) **does not enable proprietary codecs** by default, and redistributing them requires **licensing**. Alternatives (building QtWebEngine with codecs or using QtWebView/QML) have portability/control limitations. The chosen path is to **leverage native engines**, achieving codec compatibility and **full control** via a Python API.
28
+
29
+ ### Repository layout
30
+ ```
31
+ fit-webview-bridge/
32
+ ├─ CMakeLists.txt
33
+ ├─ cmake/ # Find*.cmake, toolchains, helpers
34
+ ├─ include/fitwvb/ # Public headers (API)
35
+ ├─ src/
36
+ │ ├─ core/ # Facade / common interfaces
37
+ │ ├─ win/ # Edge WebView2 backend (C++)
38
+ │ ├─ macos/ # WKWebView backend (Obj-C++)
39
+ │ └─ linux/ # WebKitGTK backend (C++)
40
+ ├─ bindings/pyside6/ # Shiboken6: typesystem & config
41
+ ├─ tests/ # Unit / integration
42
+ └─ examples/ # Minimal PySide6 demo app
43
+ ```
44
+
45
+ ### Interface (methods/slots + signals)
46
+ **Methods / slots**
47
+ - `load(url)`
48
+ - `back()`
49
+ - `forward()`
50
+ - `reload()`
51
+ - `stop()`
52
+ - `setHtml(html, baseUrl)`
53
+ - `evalJs(script, callback)`
54
+
55
+ **Signals**
56
+ - `urlChanged(QUrl)`
57
+ - `titleChanged(QString)`
58
+ - `loadProgress(int)`
59
+ - `loadFinished(bool)`
60
+ - `consoleMessage(QString)`
61
+
62
+ > Note: the API is **uniform** across OSes; implementations delegate to the native engine.
63
+
64
+ ### Prerequisites
65
+ **Common**
66
+ - **CMake** (>= 3.24 recommended)
67
+ - **Ninja** (generator)
68
+ - **Python** 3.9+
69
+ - **PySide6** and **Shiboken6** (for Python bindings)
70
+ - Platform build toolchain
71
+
72
+ **Windows**
73
+ - **MSVC** (Visual Studio 2022 or Build Tools) and Windows SDK
74
+ - **Microsoft Edge WebView2 Runtime**
75
+ - **WebView2 SDK** (NuGet/vcpkg)
76
+
77
+ **macOS**
78
+ - **Xcode** + Command Line Tools
79
+ - **Objective‑C++** enabled (.mm)
80
+ - Frameworks: `WebKit`, `Cocoa`
81
+
82
+ **Linux**
83
+ - **GCC/Clang**, `pkg-config`
84
+ - **WebKitGTK** dev packages (e.g., `webkit2gtk-4.1` or distro equivalent)
85
+ - **GStreamer** (base + required plugins for codecs)
86
+
87
+ ### Build (indicative)
88
+ ```bash
89
+ git clone https://github.com/fit-project/fit-webview-bridge.git
90
+ cd fit-webview-bridge
91
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_PYSIDE6_BINDINGS=ON
92
+ cmake --build build
93
+ # (optional) ctest --test-dir build
94
+ ```
95
+
96
+ ### Examples
97
+ PySide6 samples in `examples/` demonstrate URL loading, JS injection, and signal handling.
98
+
99
+ ### Codec & licensing notes
100
+ The project **does not** redistribute proprietary codecs: it leverages codecs **already provided by the OS**. End‑user usage must comply with the relevant licenses/formats.
101
+
102
+ ### Project status
103
+ Initial/alpha (API subject to change).
104
+
105
+ # Fit Web — Project rationale and options for proprietary codecs
106
+
107
+ **Fit Web** is the FIT project's *scraper* module designed to **forensically acquire and preserve web content**: <https://github.com/fit-project/fit-web>.
108
+
109
+ Like the other modules, **Fit Web** is based on **PySide** (Qt for Python). It currently uses **QtWebEngine**, which is a **Chromium** wrapper.
110
+
111
+ ## The problem
112
+ By default, Chromium **does not enable proprietary audio/video codecs**, notably **H.264** and **AAC**.
113
+
114
+ ## Options considered
115
+
116
+ ### 1) Build QtWebEngine with proprietary codecs
117
+ Enable the `-webengine-proprietary-codecs` option.
118
+ Documentation: <https://doc.qt.io/qt-6/qtwebengine-overview.html>
119
+
120
+ **Drawbacks**
121
+ - Must be done for **all supported operating systems**.
122
+ - The build requires **very powerful machines** (e.g., difficulties on a MacBook Air M2 with 16 GB RAM).
123
+ - **Licensing**: distributing H.264 and AAC **requires a license**.
124
+
125
+ ### 2) Use QtWebView
126
+ QtWebView relies on **the OS’s native web APIs**; for proprietary‑codec content it uses **the system’s codecs**.
127
+ **Pros**: no custom builds, no direct license handling.
128
+ **Cons**: the UI layer is **QML**, geared toward lightweight (often mobile) UIs, so it **doesn’t provide full browser control** compared to QtWebEngine.
129
+
130
+ Documentation: <https://doc.qt.io/qt-6/qtwebview-index.html>
131
+
132
+ ### 3) Implement a native Qt widget (C/C++) per OS
133
+ Develop a Qt widget (usable from **PySide6**) that embeds the system’s web engine:
134
+
135
+ - **Windows →** Edge WebView2
136
+ - **macOS →** WKWebView
137
+ - **Linux →** WebKitGTK (with **GStreamer** for codecs)
138
+
139
+ **Advantages**
140
+ - **No redistribution licensing**: leverage the codecs already provided by the OS.
141
+ - A **common API** can be exposed to PySide6.
142
+ - **More control** than QtWebView, without QML’s limitations.
143
+
144
+ **Disadvantages**
145
+ - **Medium‑to‑high complexity** to implement.
146
+ - Requires **C++** and, on macOS, **Objective‑C++**.
147
+ - Requires **custom CMake** to include libraries and linking.
148
+
149
+ ---
@@ -0,0 +1,5 @@
1
+ fit_webview_bridge/__init__.py,sha256=KQIE2-ZcVVqRpcrC4X9e9Iub-6uXXKlQBoyRk_I9RP8,293
2
+ fit_webview_bridge/wkwebview.cpython-313-darwin.so,sha256=c2Bsdc_eEU0Uc7GB91Th1Hfxso9-a6PrF2Xhss3z10I,261408
3
+ fit_webview_bridge-0.2.2a2.dist-info/METADATA,sha256=e6o218Wh7nObjB0zZxETGi0JaESSW0tbDVB5u1452tw,5721
4
+ fit_webview_bridge-0.2.2a2.dist-info/WHEEL,sha256=xL_I_TleH-YV9h3oMcQi1F0DSqA1tyOenDLO1uzk5E8,114
5
+ fit_webview_bridge-0.2.2a2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: scikit-build-core 0.11.6
3
+ Root-Is-Purelib: false
4
+ Tag: cp313-cp313-macosx_11_0_arm64
5
+