Skip to content

Commit

Permalink
pywebview 3.0 (#340)
Browse files Browse the repository at this point in the history
* Update change_url.md

* Update api.md

* Update installation.md

* Add Google Analytics

* Fix installation

* 2.4 info

* [Docs] add information about window.pywebview availability

* Update debuggig info about QTWebEngine

* [Docs] Add information about app architecture

* Update cef.md

* [CEF] Fix JS logic not persisting after navigating to another page

* #169 Frameless window (#313)

* Merge PR #177: [Cocoa] Implement frameless windows

* [All] Add skeleton for `frameless` parameter
* [Cocoa] Add `frameless` kwarg to remove the window frame.
  - Implement a DragBar class to enable dragging the webview
  - Make the drag bar stick to the top and autoresize to the width
    of the view.

* [WinForms] Implement frameless window + easy drag

* Merge PR #177: [Cocoa] Implement frameless windows

* [All] Add skeleton for `frameless` parameter
* [Cocoa] Add `frameless` kwarg to remove the window frame.
  - Implement a DragBar class to enable dragging the webview
  - Make the drag bar stick to the top and autoresize to the width
    of the view.

* [WinForms] Implement frameless window + easy drag

* [GTK] partial implementation of frameless window

* [QT] Partial implementation of frameless window

* [QT] implement easy drag

* [Cocoa] Hide standard buttons and make the entire window draggable

* [GTK] implement easy move

* Add frameless tests

* Remove unused parameter

* [Cocoa] Implement free drag

* Revert WebBrowserInterops

* Code cleanup

* Update interop DLLs

* Fix interop dll

* Update docs; Fix tests

* Add example

* Update examples

* [CEF]: Implement support for pyinstaller one-file mode

* [CEF] Fix typo

* [All] Change api_call timeout to 15 seconds

* Update setup.py

* [QT] Simplify QT installation

* New API
Cocoa implementation
Revamped tests and examples

* Fix web engine force setting

* Rename destroy_window to destroy

* Update documentation

* Add documentation for 2.4

* Refactor project structure

* [GTK] New API support

* Rename confirm_quit to confirm_close
Split lifecycle events to shown and loaded

* [GTK] Implement new API
Fix tests

* [QT] New API implementation

* Remove multiprocessing

* [Windows/CEF] New API implementation

* Implement CSRF token
[All] Implement get_element

* Update Flask app example

* Rename get_element to get_elements. Bug fixes.

* [GTK] Implement propert JS-Python bridge for WebKit2 >2.2

* Update documentation

* [Windows/CEF] New API implementation

* Add token test

* [Winforms] Fix js api initialization

* [Cocoa] Fix events

* Debug: print webkit version

* [GTK] Check for old webkit

* [GTK] Fix event issues

* Catch notimlementederror in tests

* Update travis conf with qt from pip

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* [Windows] Preliminary implementation of EdgeHTML based on PR from @HeavenVolkoff

* [docs] Add information about EdgeHTML

* EdgeHTML WIP

* Remove windows.web import

* EdgeHTML improvements. Fix MSHTML evaluate_js

* [Docs] Add information about renderer limitations

* [EdgeHTML] Fix bugs and tests

* Remove window from windows list after it is destroyed

* Fix window object deletion after window is closed via GUI

* [Docs] Add information about renderer codes

* Refactor and fix JS API
Remove multiprocessing example
[MSHTML] Add console.log debug support

* [Travis] Change conf

* [WinForms] Fix fullscreen

* Fix dll installation

* [Windows] Fix DLL bundling

* Update changelog

* [CEF]: Fix JS API

* Update changelog

* Built-in HTTP server implementation

* Add http server test

* Add http server testcd

* Add http server testcd

* [EdgeHTML] allow localhost urls

* Add video example

* Bug fixing

* [Cocoa] Remove media prefs

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* [Travis] Disable QT 5.12 builds

* Update html_load.md
  • Loading branch information
Roman committed Jul 7, 2019
1 parent 72e1d1a commit 0698b05
Show file tree
Hide file tree
Showing 208 changed files with 18,000 additions and 2,337 deletions.
22 changes: 18 additions & 4 deletions .travis.yml
Expand Up @@ -26,32 +26,46 @@ matrix:
dist: xenial
language: python
python: "3.5_with_system_site_packages"
env:
env:
- PACKAGES="xvfb python3-pyqt5 python3-pyqt5.qtwebkit libqt5webkit5-dev python3-pep8 pyflakes python3-pytest python3-six" PYTHON="python3"
- PYTHON_VERSION="3"
- PYWEBVIEW_GUI=qt
- os: linux
sudo: required
dist: xenial
language: python
python: "2.7_with_system_site_packages"
env:
env:
- PACKAGES="xvfb python-pyqt5 python-pyqt5.qtwebkit libqt5webkit5-dev pep8 pyflakes python-pytest" PYTHON="python"
- PYTHON_VERSION="2"
- PYWEBVIEW_GUI=qt
# - os: linux
# sudo: required
# dist: xenial
# language: python
# python: "3.5_with_system_site_packages"
# env:
# - PACKAGES="xvfb python3-pep8 pyflakes python3-pytest python3-six" PYTHON="python3"
# - QT_PLUGIN_PATH="/home/travis/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/"
# - PIP_PACKAGES="pyqt5 pyqtwebengine"
# - PYTHON_VERSION="3"
# - PYWEBVIEW_GUI=qt

install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$PYTHON_VERSION" == "3" ]]; then pip3 install pyobjc pytest six; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$PYTHON_VERSION" == "2" ]]; then sudo pip2 install pyobjc pytest six; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -q; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install --no-install-recommends -y $(echo $PACKAGES); fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$PYTHON_VERSION" == "3" ]] && [[ "$PIP_PACKAGES" == "pyqt5 pyqtwebengine" ]]; then pip3 install $(echo $PIP_PACKAGES); fi

before_script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sleep 3; fi

script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then if [[ "$PYTHON_VERSION" == "3" ]]; then python3 -m pytest tests; else python2 -m pytest tests; fi; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then python -m pytest tests -s; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then if [[ "$PYTHON_VERSION" == "3" ]]; then python3 -m pytest tests -s; else python2 -m pytest tests -s; fi; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cd tests; python -m site; ./run.sh; fi

after_script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then killall Xvfb; fi
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Expand Up @@ -3,6 +3,21 @@

# Changelog

## 3.0

_Released xx/xx/2019_

- `New` [All] New API. The API is not compatible with older versions of _pywebview_. See https://pywebview.flowrl.com for usage details. #272
- `New` [All] Built-in HTTP server. #260
- `New` [All] Autogenerated CSRF token exposed as `window.pywebview.token`. #316
- `New` [All] `get_elements` function to retrieve DOM nodes. #292
- `New` [All] New events system that lets you to subscribe to events. `loaded` and `shown` events are implemented. #201
- `New` [Windows] EdgeHTML support. Thanks @heavenvolkoff. #243
- `Fix` [Windows] Fullscreen mode. #338
- `Fix` [GTK] Better Javascript support for recent version of WebKit2
- `Fix` [CEF] Support for PyInstaller in onefile mode


## 2.4

_Released 17/02/2019_
Expand Down
4 changes: 3 additions & 1 deletion MANIFEST.in
@@ -1,2 +1,4 @@
include webview/lib/WebBrowserInterop.x64.dll
include webview/lib/WebBrowserInterop.x86.dll
include webview/lib/WebBrowserInterop.x86.dll
include webview/lib/Microsoft.Toolkit.Forms.UI.Controls.WebView.dll
include webview/lib/Microsoft.Toolkit.Forms.UI.Controls.WebView.LICENSE.md
10 changes: 8 additions & 2 deletions docs/.vuepress/config.js
@@ -1,6 +1,7 @@
module.exports = {
title: 'pywebview',
description: 'Build GUI for your Python program with JavaScript, HTML, and CSS',
ga: 'UA-12494025-18',
themeConfig: {
repo: 'r0x0r/pywebview',
docsDir: 'docs',
Expand All @@ -27,8 +28,9 @@ module.exports = {
{
title: 'Development',
collapsable: false,
children: [
children: [
'/guide/api',
'/guide/architecture',
'/guide/debugging',
'/guide/freezing',
'/guide/security',
Expand All @@ -38,11 +40,16 @@ module.exports = {
}
],
'/examples/': [
'cef',
'change_url',
'css_load',
'close_confirm',
'debug',
'destroy_window',
'events',
'frameless',
'fullscreen',
'get_elements',
'get_current_url',
'html_load',
'js_evaluate',
Expand All @@ -53,7 +60,6 @@ module.exports = {
'multiple_windows',
'open_file_dialog',
'open_url',
'quit_confirm',
'save_file_dialog',
'toggle_fullscreen',
'window_title_change'
Expand Down
17 changes: 17 additions & 0 deletions docs/.vuepress/public/2.4/404.html
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>pywebview (v2.4)</title>
<meta name="description" content="Build GUI for your Python program with JavaScript, HTML, and CSS">


<link rel="preload" href="/2.4/assets/css/0.styles.e542dfbb.css" as="style"><link rel="preload" href="/2.4/assets/js/app.ab883ad2.js" as="script"><link rel="prefetch" href="/2.4/assets/js/10.946430c0.js"><link rel="prefetch" href="/2.4/assets/js/11.9f37de77.js"><link rel="prefetch" href="/2.4/assets/js/12.cc649247.js"><link rel="prefetch" href="/2.4/assets/js/13.94ca571d.js"><link rel="prefetch" href="/2.4/assets/js/14.a047eef4.js"><link rel="prefetch" href="/2.4/assets/js/15.788bb271.js"><link rel="prefetch" href="/2.4/assets/js/16.694894b2.js"><link rel="prefetch" href="/2.4/assets/js/17.2edfeaf2.js"><link rel="prefetch" href="/2.4/assets/js/18.7b4619dc.js"><link rel="prefetch" href="/2.4/assets/js/19.ec102f84.js"><link rel="prefetch" href="/2.4/assets/js/2.06af3526.js"><link rel="prefetch" href="/2.4/assets/js/20.b1804ec3.js"><link rel="prefetch" href="/2.4/assets/js/21.82f7ca23.js"><link rel="prefetch" href="/2.4/assets/js/22.0e759d36.js"><link rel="prefetch" href="/2.4/assets/js/23.8e7b242c.js"><link rel="prefetch" href="/2.4/assets/js/24.720f51e9.js"><link rel="prefetch" href="/2.4/assets/js/25.3af86868.js"><link rel="prefetch" href="/2.4/assets/js/26.562c94d4.js"><link rel="prefetch" href="/2.4/assets/js/27.7c95cefd.js"><link rel="prefetch" href="/2.4/assets/js/28.d5836b93.js"><link rel="prefetch" href="/2.4/assets/js/29.528821ab.js"><link rel="prefetch" href="/2.4/assets/js/3.c462cbf1.js"><link rel="prefetch" href="/2.4/assets/js/30.e6e32fda.js"><link rel="prefetch" href="/2.4/assets/js/31.c651468e.js"><link rel="prefetch" href="/2.4/assets/js/32.6c8529fe.js"><link rel="prefetch" href="/2.4/assets/js/33.96fe48c6.js"><link rel="prefetch" href="/2.4/assets/js/34.1503f1f8.js"><link rel="prefetch" href="/2.4/assets/js/35.2c565ae8.js"><link rel="prefetch" href="/2.4/assets/js/36.60799f3e.js"><link rel="prefetch" href="/2.4/assets/js/37.5656488c.js"><link rel="prefetch" href="/2.4/assets/js/38.30116eb6.js"><link rel="prefetch" href="/2.4/assets/js/39.8b7a8ec5.js"><link rel="prefetch" href="/2.4/assets/js/4.cc18902f.js"><link rel="prefetch" href="/2.4/assets/js/40.14c37596.js"><link rel="prefetch" href="/2.4/assets/js/5.b85830ed.js"><link rel="prefetch" href="/2.4/assets/js/6.fe285e19.js"><link rel="prefetch" href="/2.4/assets/js/7.5eeb60d8.js"><link rel="prefetch" href="/2.4/assets/js/8.b9ad99cd.js"><link rel="prefetch" href="/2.4/assets/js/9.6a770a26.js">
<link rel="stylesheet" href="/2.4/assets/css/0.styles.e542dfbb.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>How did we get here?</blockquote> <a href="/2.4/" class="router-link-active">Take me home.</a></div></div></div>
<script src="/2.4/assets/js/app.ab883ad2.js" defer></script>
</body>
</html>
1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/css/0.styles.e542dfbb.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/img/search.83621669.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/js/10.946430c0.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/js/11.9f37de77.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/js/12.cc649247.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/.vuepress/public/2.4/assets/js/13.94ca571d.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 0698b05

Please sign in to comment.