You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Perl Executing Browser (PEB) is an HTML GUI for [Perl 5](https://www.perl.org/) desktop applications. It runs local Perl 5 scripts without server and with no timeout and is implemented as a C++ compiled executable based on [Qt 5](https://www.qt.io/) and [QtWebKit](https://trac.webkit.org/wiki/QtWebKit) libraries. PEB Perl scripts are fed from HTML forms using GET or POST requests to a built-in pseudo-domain. HTML interface for the [default Perl debugger](http://perldoc.perl.org/perldebug.html) is also available.
9
+
Perl Executing Browser (PEB) is an HTML user interface for [Perl 5](https://www.perl.org/) desktop applications. It runs local Perl 5 scripts without server and with no timeout and is implemented as a C++ compiled executable based on [Qt 5](https://www.qt.io/) and [QtWebKit](https://trac.webkit.org/wiki/QtWebKit) libraries. PEB Perl scripts are fed from HTML forms using GET or POST requests to a built-in pseudo-domain. HTML interface for the [default Perl debugger](http://perldoc.perl.org/perldebug.html) is also available.
10
10
11
11
Inspired by [NW.js](http://nwjs.io/) and [Electron](http://electron.atom.io/), PEB is another reuse of web technologies in desktop applications with Perl doing the heavy lifting. In contrast to [NW.js](http://nwjs.io/) and [Electron](http://electron.atom.io/), PEB enforces strict separation between trusted and untrusted content in different browser windows.
12
12
@@ -87,16 +87,16 @@ Inspired by [NW.js](http://nwjs.io/) and [Electron](http://electron.atom.io/), P
87
87
*[Any icon can be displayed on windows and message boxes.](#icon)
88
88
89
89
**Development goodies:**
90
-
*[PEB can interact with the Perl 5 debugger in graphical mode.](#html-interface-for-the-perl-debugger)
90
+
*[PEB can interact with the Perl 5 debugger in graphical mode.](#perl-debugger-gui)
91
91
*``QWebInspector`` window can be invoked using <kbd>Ctrl</kbd> + <kbd>I</kbd> keyboard shortcut.
92
92
*[Optional logging of all browser actions](#log-files)
The ``QtWebKit`` set of classes is deprecated and removed from all later versions of Qt.
97
+
Compiling ``QtWebKit`` for a recent Qt version is possible, but this approach is not tested with the PEB sources.
98
98
99
-
The most important Qt dependency of PEB is not ``QtWebkit``, but ``QNetworkAccessManager`` which is subclassed to implement the local pseudo-domain of PEB and all requests to local content. Unfortunately ``QNetworkAccessManager`` is incompatible with the ecosystem of ``QtWebEngine`` - the new Blink-based web engine of Qt. The transition to ``QtWebEngine`` is impractical because local POST requests and calling local Perl scripts from JavaScript can not be supported. If you want to render the HTML GUI of your Perl desktop application using the Blink web engine, you may use [Electron](http://electron.atom.io/) or [NW.js](http://nwjs.io/)and[camel-harness](https://github.com/ddmitov/camel-harness).
99
+
The most important Qt dependency of PEB is not ``QtWebKit``, but ``QNetworkAccessManager`` which is used to implement the local pseudo-domain and most of the requests to local content. Unfortunately ``QNetworkAccessManager`` is incompatible with ``QtWebEngine`` - the new Blink-based web engine of Qt. The transition to ``QtWebEngine`` is impractical because local POST requests and calling local Perl scripts from JavaScript can not be supported. If you want to render the HTML user interface of your Perl desktop application using the Blink web engine, you may use [Electron](http://electron.atom.io/) or [NW.js](http://nwjs.io/)combined with[camel-harness](https://github.com/ddmitov/camel-harness).
100
100
101
101
Compiled and tested successfully using:
102
102
*[Qt Creator 2.8.1 and Qt 5.1.1](http://download.qt.io/official_releases/qt/5.1/5.1.1/) on 32-bit Debian Linux,
@@ -385,7 +385,7 @@ They have two functions:
385
385
```
386
386
387
387
## Security
388
-
Being a GUI for Perl 5 desktop applications, PEB executes with normal user privileges only local Perl scripts in its application directory. Reasonable security restrictions are implemented in C++ code, but they do not constitute a sandbox for Perl scripts.
388
+
Being a GUI for Perl 5 desktop applications, PEB executes with normal user privileges only local Perl scripts in its application directory. Reasonable security restrictions are implemented, but they do not constitute a sandbox for Perl scripts.
389
389
390
390
**PEB security principles:**
391
391
* Users have full access to their local data using PEB.
@@ -485,9 +485,9 @@ PEB-based Perl debugger GUI is an idea proposed by Valcho Nedelchev and provoked
485
485
486
486
Syntax highlighting is achieved using [Syntax::Highlight::Engine::Kate](https://metacpan.org/release/Syntax-Highlight-Engine-Kate) CPAN module by Hans Jeuken and Gábor Szabó.
487
487
488
-
``{PEB_binary_directory}/perl5dbgui`` is home of the Perl debugger GUI script and the [Syntax::Highlight::Engine::Kate](https://metacpan.org/release/Syntax-Highlight-Engine-Kate) module. This folder and all files inside it should not be removed or renamed for the proper operation of the Perl debugger GUI.
488
+
``{PEB_binary_directory}/resources/app/perl5dbgui`` is home of the Perl debugger GUI script and the [Syntax::Highlight::Engine::Kate](https://metacpan.org/release/Syntax-Highlight-Engine-Kate) module. This folder and all files inside it should not be removed or renamed for the proper operation of the Perl debugger GUI.
489
489
490
-
**Windows caveat:** The [default Perl debugger](http://perldoc.perl.org/perldebug.html) can not work inside PEB on Windows without a small, one-line modification, which makes the ``$console`` variable undefined. Tests proved that this is a minor change and it does not affect the normal operation of the debugger. This alteration is necessary because the ``Qprocess``Qt class, which is used to handle the Perl debugger, doesn't use any console from the underlying operating system to start processes. Without the modification the debugger is unable to find a console and hangs. You could easily patch your Windows version of ``perl5db.pl`` manually by replacing ``$console = "con";`` with ``undef $console;`` or by using ``{PEB_binary_directory}/perl5dbgui/perl5db-win32.patch``.
490
+
**Windows caveat:** The [default Perl debugger](http://perldoc.perl.org/perldebug.html) can not work with PEB on Windows without a small, one-line modification, which makes the ``$console`` variable undefined. Tests proved that this is a minor change and it does not affect the normal operation of the debugger. This alteration is necessary because the ``Qprocess`` class, which is used to handle the Perl debugger, does not use any console from the underlying operating system. Without the modification the debugger is unable to find a console and hangs. You could easily patch your Windows version of ``perl5db.pl`` manually by replacing ``$console = "con";`` with ``undef $console;`` or by using ``{PEB_binary_directory}/resources/app/perl5dbgui/perl5db-win32.patch``.
491
491
492
492

0 commit comments