Pinned tabs are saved alongside normal tabs in a session file.
If user don't have session restore enabled, pinned tabs are saved
and restored from a special pinnedtabs.dat file which uses different
codepath.
It has also another problem that it only saves pinned tabs for last
browser window, which sometimes may be confusing and lead to losing
the pinned tabs.
Use native widgets to render main scrollbars (scrollbars of the
main webview widget, not iframes etc).
It makes the scrollbars on body element invisible and instead draws
native widgets on the space for scrollbars.
Comes with possibility to disable it, enabled by default.
The "qt" object may be undefined at the time QWebEngineScript
that creates web channel is being run. Try to create the web channel
until it finally succeeds in 100ms intervals.
Fixes the "Uncaught ReferenceError: qt is not defined" error message.
Unhandled key events are sent to parent of QWebEngineView.
Hack with event filter on RenderWidgetHostViewQtDelegateWidget no longer
works for key events, so we need to install event filter on view
parent and handle key events there.
Downside is, that we can now only handle events that are not handled by
page itself.
* Add initial printing support with QtWebEngine >= 5.7.0
This works by printing to PDF first, then sending the PDF to a printer
if printing to a physical printer was requested.
On *nix (including Mac OS X), we use the lpr command, which is typically
provided by CUPS nowadays. Currently, no options beyond the printer name
are passed, there is room for improvement there. (Okular has a
FilePrinter class that handles this in a more sophisticated way.)
On Windows, we use ShellExecuteW with the "printto" verb. In that case,
the printer name is unfortunately the only thing that can be passed. The
user experience may also be suboptimal depending on the PDF viewer
installed on the system. (E.g., Adobe Reader is reported to ignore
SW_HIDE.) And if there is no PDF viewer installed at all, it will of
course not work at all. But it is the best we can do without bundling
something like GhostScript (or requiring the user to install it).
* Printing: Let lpr autoremove the temporary file instead of QTemporaryFile
Only lpr knows for sure when it is safe to delete the temporary file.
* Printing: Use the callback version of printToPdf instead of the file one
The file version is also asynchronous and does not report when it is
done.
* Printing: Use async QProcess API instead of QProcess::execute to run lpr
This also required making tempFile a QTemporaryFile * instead of a
QTemporaryFile on the stack, because QTemporaryFile is a QObject and
cannot be copied.
* Printing: Adapt the FilePrinter from Okular to pass correct lpr args
The license of those files is GPLv2+, which is compatible with
QupZilla's GPLv3+ licensing.
* WIN: Add CR to detection
Saving in Notepad++ with Windows line ending prevents script injection
Post fix for #1964 and some vague references at ce67c7a455
* Add some more line ending checks
* Windows ends in CR and OS Ⅸ compatible uses CR+LF ... OS Ⅹ/*nix uses LF
* Fix pre-existing bug with `\n' with string split for Windows ... tested only on Linux *(Qt 5.6.1)* with Unit Tests so far
Applies to #2027 and post followup for #1964
* Use default Left-associative for pipe (logical or)
* Specific first then general after e.g. flip them ... helps avoid a false injection match with a control character at the beginning with older editors *(may include OS2)*
Applies to #2027 and post followup for #1964
* WIN: Add CR to detection
Saving in Notepad++ with Windows line ending prevents script injection
Post fix for #1964 and some vague references at ce67c7a455
* Add some more line ending checks
* Windows ends in CR and OS Ⅸ compatible uses CR+LF ... OS Ⅹ/*nix uses LF
* Fix pre-existing bug with `\n' with string split for Windows ... tested only on Linux *(Qt 5.6.1)* with Unit Tests so far
Applies to #2027 and post followup for #1964
* Use default Left-associative for pipe (logical or)
* Specific first then general after e.g. flip them ... helps avoid a false injection match with a control character at the beginning with older editors *(may include OS2)*
Applies to #2027 and post followup for #1964
* Repair current OpenSSL static reference from homebrew
* These are the default locations, as of today, for Mac OS X 10.11.4 *(El Capitan)*
**NOTES**
* This could really use some environment variables for homebrew root and which SSL version is in use. Not familiar enough yet with recent Qt to do this at this time.
* Symbolic links could also be used but again determining the current homebrew SSL installed is something to be desired e.g. similar to `$ openssl version` e.g. perhaps a `cut` of `$ brew info openssl`?
Refs:
* http://brew.sh/ *(homepage)*
* https://github.com/Homebrew/brew *(repo)*
Historical refs:
* #1888
* #1850
* Mac: Scrape `brew` output for openssl working install directory as per @nowrep
* Addresses a long standing bug on Mac compiling with this project
* Also correct the BUILDING markdown file for OS X... was awaiting response from the owner to do this to see which direction to move.
**NOTES**
* Quotes **are required** when using `$$system` here otherwise `cut` fails with no switch argument found
Applies to #1971
* Fix BUILDING to BUILDING.md
* Do this so it actually parses markdown
Indirectly related to #1971
* Fix `brew` to Homebrew
* Even though the project is named `brew` and owner is `Homebrew` their pages refers to it as `Homebrew`
Applies to #1971
* Yet another change
* There are more symlinks... so the results from `brew --prefix openssl` yields a symlinked path and adding `/include` and `/lib` to them resolve alternately to the `Cellar`. Feel **much** better about using this one since it's an exact API as I mentioned earlier in the PR
Applies to #1971
* Add a single newline for @cranes-bill
* Only one newline is needed and has nothing to do with trailing spaces... at least according to the GH editor
* Restores the flow :)
Applies to #1971
* More flow of README.md
* GH preview said it didn't need this but I guess it does... we'll try newlines everywhere ;)
Applies to #1971
* Use non-standard markdown for "newlines"
* Restore the spaces manually
**NOTES**
This is not any known specification but it's what @nowrep wants
Refs:
* [CommonMark](http://commonmark.org/)
* [Daring Fireballs](http://daringfireball.net/projects/markdown/)
* Repair current OpenSSL static reference from homebrew
* These are the default locations, as of today, for Mac OS X 10.11.4 *(El Capitan)*
**NOTES**
* This could really use some environment variables for homebrew root and which SSL version is in use. Not familiar enough yet with recent Qt to do this at this time.
* Symbolic links could also be used but again determining the current homebrew SSL installed is something to be desired e.g. similar to `$ openssl version` e.g. perhaps a `cut` of `$ brew info openssl`?
Refs:
* http://brew.sh/ *(homepage)*
* https://github.com/Homebrew/brew *(repo)*
Historical refs:
* #1888
* #1850
* Mac: Scrape `brew` output for openssl working install directory as per @nowrep
* Addresses a long standing bug on Mac compiling with this project
* Also correct the BUILDING markdown file for OS X... was awaiting response from the owner to do this to see which direction to move.
**NOTES**
* Quotes **are required** when using `$$system` here otherwise `cut` fails with no switch argument found
Applies to #1971
* Fix BUILDING to BUILDING.md
* Do this so it actually parses markdown
Indirectly related to #1971
* Fix `brew` to Homebrew
* Even though the project is named `brew` and owner is `Homebrew` their pages refers to it as `Homebrew`
Applies to #1971
* Yet another change
* There are more symlinks... so the results from `brew --prefix openssl` yields a symlinked path and adding `/include` and `/lib` to them resolve alternately to the `Cellar`. Feel **much** better about using this one since it's an exact API as I mentioned earlier in the PR
Applies to #1971
* Add a single newline for @cranes-bill
* Only one newline is needed and has nothing to do with trailing spaces... at least according to the GH editor
* Restores the flow :)
Applies to #1971
* More flow of README.md
* GH preview said it didn't need this but I guess it does... we'll try newlines everywhere ;)
Applies to #1971
* Use non-standard markdown for "newlines"
* Restore the spaces manually
**NOTES**
This is not any known specification but it's what @nowrep wants
Refs:
* [CommonMark](http://commonmark.org/)
* [Daring Fireballs](http://daringfireball.net/projects/markdown/)
* Optimize .gif files
* Optimize .ico files
**NOTES**
* Not touching OS2 .ico's currently... no applicable program to modify 1..5 *(page_os2.ico)* images and 1..7 *(qupzilla_os2)* images respectively. May have to see if I kept my OS/2 Warp in storage.
* Can't save all Apple *.icns currently on dev station... Mac dev station makes it bigger on duplication ... this could probably be optimized but unable to at this time
All should be same but smaller *(palette opts, and other format opts)*... special note on qupzill.ico... all I did was resave and it's quite a bit smaller... icons are also currently in reverse order... should be okay but not standard and may fail on some older Windows
* ensured the window geometry is remembered on OS X
It was always starting based on:
int windowWidth = desktop->availableGeometry().width() / 1.3;
int windowHeight = desktop->availableGeometry().height() / 1.3;
because quitApp isn’t called on OS X.
* ensured the window geometry is remembered on OS X (v2)
* tweaked coding style
Instead of custom handling of shift + mouse click, use
QWebEngineView::createWindow. It should fix the issue with
JavaScript catching the mouse click performing some action
and QupZilla trying to open new window.
Closes#1898
QEvent::ApplicationActivate is sent when incompatible profile
warning QMessageBox is shown. We should not create new BrowserWindow
at this point as the initialization is not yet completed.
New window should really be only created when there is no
application window at all.
Closes#1890
Note that NetworkManager is not used by QtWebEngine, it is used
only for downloading other data by QupZilla (eg. downloading
user scripts, open search engines, checking for updates, ...)
- Fixed parsing @updateURL/@downloadURL
- Updating is only manual
- User have to click on update button located in Greasemonkey settings
- Update works just like download
- New version is not being checked, original script is replaced
- Fixed coding style issues
Closes#1653
Somehow I was under false impression that QtWebEngineScript
takes care of the metadata parsing. It does not, so we must
run the script only on correct sites.