fit-webview-bridge 0.1.1a5__cp311-cp311-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 @@
1
+ from .wkwebview import WKWebViewWidget as SystemWebView
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.2
2
+ Name: fit-webview-bridge
3
+ Version: 0.1.1a5
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
+ [🇬🇧 English](README.md) | [🇮🇹 Italiano](README.it.md)
17
+
18
+ ### Description
19
+
20
+ **FIT WebView Bridge** is a cross‑platform Qt widget (C++/Objective‑C++) with **PySide6** bindings that wraps the OS‑native web engines:
21
+ - **Windows →** Edge WebView2
22
+ - **macOS →** WKWebView
23
+ - **Linux →** WebKitGTK (with **GStreamer** for codecs)
24
+
25
+ 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**.
26
+
27
+
28
+ ### Why this project
29
+ 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.
30
+
31
+ ### Repository layout
32
+ ```
33
+ fit-webview-bridge/
34
+ ├─ CMakeLists.txt
35
+ ├─ cmake/ # Find*.cmake, toolchains, helpers
36
+ ├─ include/fitwvb/ # Public headers (API)
37
+ ├─ src/
38
+ │ ├─ core/ # Facade / common interfaces
39
+ │ ├─ win/ # Edge WebView2 backend (C++)
40
+ │ ├─ macos/ # WKWebView backend (Obj-C++)
41
+ │ └─ linux/ # WebKitGTK backend (C++)
42
+ ├─ bindings/pyside6/ # Shiboken6: typesystem & config
43
+ ├─ tests/ # Unit / integration
44
+ └─ examples/ # Minimal PySide6 demo app
45
+ ```
46
+
47
+ ### Interface (methods/slots + signals)
48
+ **Methods / slots**
49
+ - `load(url)`
50
+ - `back()`
51
+ - `forward()`
52
+ - `reload()`
53
+ - `stop()`
54
+ - `setHtml(html, baseUrl)`
55
+ - `evalJs(script, callback)`
56
+
57
+ **Signals**
58
+ - `urlChanged(QUrl)`
59
+ - `titleChanged(QString)`
60
+ - `loadProgress(int)`
61
+ - `loadFinished(bool)`
62
+ - `consoleMessage(QString)`
63
+
64
+ > Note: the API is **uniform** across OSes; implementations delegate to the native engine.
65
+
66
+ ### Prerequisites
67
+ **Common**
68
+ - **CMake** (>= 3.24 recommended)
69
+ - **Ninja** (generator)
70
+ - **Python** 3.9+
71
+ - **PySide6** and **Shiboken6** (for Python bindings)
72
+ - Platform build toolchain
73
+
74
+ **Windows**
75
+ - **MSVC** (Visual Studio 2022 or Build Tools) and Windows SDK
76
+ - **Microsoft Edge WebView2 Runtime**
77
+ - **WebView2 SDK** (NuGet/vcpkg)
78
+
79
+ **macOS**
80
+ - **Xcode** + Command Line Tools
81
+ - **Objective‑C++** enabled (.mm)
82
+ - Frameworks: `WebKit`, `Cocoa`
83
+
84
+ **Linux**
85
+ - **GCC/Clang**, `pkg-config`
86
+ - **WebKitGTK** dev packages (e.g., `webkit2gtk-4.1` or distro equivalent)
87
+ - **GStreamer** (base + required plugins for codecs)
88
+
89
+ ### Build (indicative)
90
+ ```bash
91
+ git clone https://github.com/fit-project/fit-webview-bridge.git
92
+ cd fit-webview-bridge
93
+ cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_PYSIDE6_BINDINGS=ON
94
+ cmake --build build
95
+ # (optional) ctest --test-dir build
96
+ ```
97
+
98
+ ### Examples
99
+ PySide6 samples in `examples/` demonstrate URL loading, JS injection, and signal handling.
100
+
101
+ ### Codec & licensing notes
102
+ 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.
103
+
104
+ ### Project status
105
+ Initial/alpha (API subject to change).
106
+
107
+ # Fit Web — Project rationale and options for proprietary codecs
108
+
109
+ **Fit Web** is the FIT project's *scraper* module designed to **forensically acquire and preserve web content**: <https://github.com/fit-project/fit-web>.
110
+
111
+ Like the other modules, **Fit Web** is based on **PySide** (Qt for Python). It currently uses **QtWebEngine**, which is a **Chromium** wrapper.
112
+
113
+ ## The problem
114
+ By default, Chromium **does not enable proprietary audio/video codecs**, notably **H.264** and **AAC**.
115
+
116
+ ## Options considered
117
+
118
+ ### 1) Build QtWebEngine with proprietary codecs
119
+ Enable the `-webengine-proprietary-codecs` option.
120
+ Documentation: <https://doc.qt.io/qt-6/qtwebengine-overview.html>
121
+
122
+ **Drawbacks**
123
+ - Must be done for **all supported operating systems**.
124
+ - The build requires **very powerful machines** (e.g., difficulties on a MacBook Air M2 with 16 GB RAM).
125
+ - **Licensing**: distributing H.264 and AAC **requires a license**.
126
+
127
+ ### 2) Use QtWebView
128
+ QtWebView relies on **the OS’s native web APIs**; for proprietary‑codec content it uses **the system’s codecs**.
129
+ **Pros**: no custom builds, no direct license handling.
130
+ **Cons**: the UI layer is **QML**, geared toward lightweight (often mobile) UIs, so it **doesn’t provide full browser control** compared to QtWebEngine.
131
+
132
+ Documentation: <https://doc.qt.io/qt-6/qtwebview-index.html>
133
+
134
+ ### 3) Implement a native Qt widget (C/C++) per OS
135
+ Develop a Qt widget (usable from **PySide6**) that embeds the system’s web engine:
136
+
137
+ - **Windows →** Edge WebView2
138
+ - **macOS →** WKWebView
139
+ - **Linux →** WebKitGTK (with **GStreamer** for codecs)
140
+
141
+ **Advantages**
142
+ - **No redistribution licensing**: leverage the codecs already provided by the OS.
143
+ - A **common API** can be exposed to PySide6.
144
+ - **More control** than QtWebView, without QML’s limitations.
145
+
146
+ **Disadvantages**
147
+ - **Medium‑to‑high complexity** to implement.
148
+ - Requires **C++** and, on macOS, **Objective‑C++**.
149
+ - Requires **custom CMake** to include libraries and linking.
150
+
151
+ ---
@@ -0,0 +1,5 @@
1
+ fit_webview_bridge/__init__.py,sha256=RZDTNi7m_2Ioyhhpefk0AxCNj2eYKHWhQrNPdY01m5w,56
2
+ fit_webview_bridge/wkwebview.cpython-311-darwin.so,sha256=OOTx_DJnWgbApWKemeq1Mzdl3WHM4NAjiX7wOLVSM3g,218848
3
+ fit_webview_bridge-0.1.1a5.dist-info/METADATA,sha256=7Wx45goYGJoxdxIjaB13X8BEXYBOUByqy8nx-0mKldU,5788
4
+ fit_webview_bridge-0.1.1a5.dist-info/WHEEL,sha256=J4k32aYfy8FqV_eDPQK88Q49UIff400pvjsv-be8I-M,114
5
+ fit_webview_bridge-0.1.1a5.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: cp311-cp311-macosx_11_0_arm64
5
+