History log of /haiku/src/apps/webpositive/BrowserApp.cpp
Revision Date Author Comments
# 753349fb 28-Nov-2022 Máximo Castañeda <antiswen@yahoo.es>

WebPositive: save the cookie jar in the user settings directory also for the curl backend

The files and formats are different for libnetservices and curl
backends, but now they are under the same directory whatever the
installed haikuwebkit version uses.

Change-Id: Iab87d5fd27ebea1fa0a8967a9802dfa2fb11240a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5835
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# f28e05bc 19-Jul-2022 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Web+: Use reference for urlcontext in app and window

It needs to be deleted after everything is done.
This seems to fix the crashes I could reproduce on exit in my VM.
So might fix #17583.
(WebView also has fContext, but I assume they are part of a window)

Change-Id: I0125f76b0b2331ac3b6a81d6c20087ebdedbf2f2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5486
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 2b1972cf 05-Jul-2021 Adrien Destugues <pulkomandy@gmail.com>

webpositive: Fix for HaikuWebKit 1.8.1

Change-Id: I00b2b01bf84e0d22ec759511b2f9435403207c95
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4150
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 05bd5361 27-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

WebPositive: update authors and version.

Change-Id: I273bad9a2fd7916867b52f1d4dd564755bc823d8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2822
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 5ffbe7d7 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change all references to "__INTEL__" to "__i386__".

They are functionally identical, but the former is a BeOS/Haiku-specfic
macro that we include in the compiler specs, and the latter is defined
by GCC.


# 41ddfe2a 12-Feb-2019 Rob Gill <rrobgill@protonmail.com>

WebPositive Add option to start new session on startup

* Add settings file entry "start up policy", with two options:
resume prior session, and start new session

* Add dropdown to settings window to select option (defaulting
to "resume prior session", which is the behaviour prior to
this patch)

* Add code to check setting on launch and open a new session,
or reload the prior session as specified.

* The "Start new session" option behaves in the same manner as
opening a new window, following the user's already specified
new window option

* Related comment 2 of bug #14890

Change-Id: I46c33977bf3e9b943841f70050f890f51ac73bff
Reviewed-on: https://review.haiku-os.org/c/1035
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 84e34948 11-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

WebPositive: Translate "No SSE2" window title, also.


# f0a99f2b 03-Feb-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

WebPositive: check if SSE2 is available.

We cannot run if it's not, but at least let's have an understandable
error message.

Fixes #14583

Change-Id: Ibe2e5d7721a1c48f06c2ac37d007a59d80c14bab
Reviewed-on: https://review.haiku-os.org/c/1007
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 2566b22c 15-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix Web+ crash if session file is corrupt.


# 433447be 12-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

WebPositive: hangs when cookie jar is corrupt.

Missing error check led to endless loop trying to extract cookies from
an invalid message. Now the cookie jar is left empty instead.


# 8ba07614 09-Jul-2016 Paradoxon <two4god@gmail.com>

WebPositive: dont restore session if a ref is received

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Fixes #12850


# 82351326 17-Nov-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

WebPositive: fix count of pagesCreated when starting up.

With the new session restore code in WebPositive, it would
restore the session and then open an extra window on top, as
the pagesCreated counter did not add the new window(s) to the
counter, only new tabs.


# f86df64b 13-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

Web+: implement a simple session management system.

When quitting the app or closing the last window, all windows and tabs
are stored in a "Session" file. This is reloaded when the browser
starts, allowing to restore all windows and tabs.

Limitations: the page content and navigation history are not saved. The
file is written only at exit so this can't be used for crash recovery
(but you can make a backup of your default session).

Fixes #6680.


# 6ae8d586 12-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

Web+: More reasonable default size for cookie manager.


# 5b7cdbbb 12-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

WebPositive: add a cookie manager.

* Allows you to view and delete cookies.
* The list of domains is hierarchized and collapsed to minimize the
number of empty entries
* All cookie parameters are shown for each domain: name, path, value,
expiration date, and known flags.


# 621c9d12 25-Jun-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update bookmark bar item BMessage on file rename.

The ref stored in the message must be replaced to point to the new file
name. Fixes #10962.


# 158ae743 25-Jun-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Escape reserved characters when converting paths to urls

* Introduce and use BUrl::BUrl(const BPath&)
* The path is url-encoded, and the protocol is set to "file"

Fixes #10964.


# 8512f7b0 16-Mar-2014 Zhuowei Zhang <zhuoweizhang@yahoo.com>

Added a simple window to display console messages (fixes #10410)

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 48af26c7 14-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Don't reuse same tab for multiple bookmarks.

As WebKit is asynchronous to the window, when launching a request in a
BWebView, IsBlankTab() will keep returning true until it gets the
BMessage and updates its state.

When opening bookmarks or refs, we would send them too fast, not detect
this, and reuse the same tab for several items. Make sure the blank tab
is only used once when looping over the refs, and force opening all
remaining refs in new tabs of the same window.

Fixes #6625.

Also optimizes the ref loading by not looking up the window for each
ref. Pick one window, then use it for all the bookmarks in the loop.


# dd71f181 14-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Open bookmarks in the current window

* Instead of looking for the first window in the workspace, add the
current one to the message.
* Fixes #6623.


# aa5101ce 13-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update HaikuWebKit package to version 1.2.3.

Older versions will not work anymore because of the API changes in
network kit (removal of nonstandard B_PROT_* status codes). x86 and
x86_64 packages have to be updated again.


# cb7df3b1 15-Nov-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update webkit and cmake packages

* Some changes required in WebPositive to store the cookies on disk


# 2fd5f173 16-Jun-2013 Stephan Aßmus <superstippi@gmx.de>

WebPositive: Now that it lives in the tree, get rid of the copied shared code.


# 28a39063 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Web+ AboutWindow changes: fix build.


# df3b8173 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Fix Web+ for AboutBox API changes.


# fd19c736 30-Apr-2013 Adrien Destugues <pulkomandy@gmail.com>

Fix BAboutWindow lifecycle

BAboutWindow returned false in QuitRequested in order to hide instead of closing.
Not only this keeps a BLooper running for a rarely used window, but it also
prevents quitting an application in the window was not destroyed first.

* Remove aforementioned QuitRequested method,
* Add a static GetWindow method that returns the existing about window, if there
is one, or creates one if there is not. A boolean can be set to tell the caller
what happened,
* Adjust all callers to use that new method, instead of managing the window themselves.


# a4d5ac6a 17-Dec-2012 John Scipione <jscipione@gmail.com>

Lock Webpositive about window before Quit()ting, thanks Axel.


# 6084a1e1 14-Dec-2012 John Scipione <jscipione@gmail.com>

Update the about window of WebPositive.

Also update the version number to 1.1-alpha in the rdef file
matching the text on the old about window.


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 2218c029 11-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Add localization support to WebPositive, patch by Humdinger

* Includes style fixes
* Functional fixes by myself, patch wouldn't build


# 41a212d2 11-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Update haiku-webkit build package. Use new version info


# 2ee4319d 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Remove unneeded includes


# 8d1fc881 27-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

As indicated by Axel the border width for positioning the download window was
hard-coded. This fixes that and refactors the code a bit.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@555 94f232f2-1747-11df-bad5-a5bfde151594


# 290dc114 27-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

Make the default location for the download window the lower right corner of
screen, like NetPositive.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@554 94f232f2-1747-11df-bad5-a5bfde151594


# f0db6a3b 12-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

Don't try to load a blank URL for a new page.

Fixes #6430.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@550 94f232f2-1747-11df-bad5-a5bfde151594


# 7f88e246 15-Jul-2010 anevilyak <anevilyak@94f232f2-1747-11df-bad5-a5bfde151594>

When asked to programmatically open a new URL (i.e. by being launched from another app), give the resulting web view input focus.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@531 94f232f2-1747-11df-bad5-a5bfde151594


# ef6778d1 03-Jul-2010 anevilyak <anevilyak@94f232f2-1747-11df-bad5-a5bfde151594>

Fix building Web+ against updated locale kit (currently requires manually placing liblocalestub.a from Haiku's build tree)

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@527 94f232f2-1747-11df-bad5-a5bfde151594


# fb03e2c5 21-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* When downloads are still in progress, warn the user when the app quits and
allow to continue downloading.
* If the Downloads window is the only window, minimize on close instead of
hiding without any way to get the window back.
* Added menu item "New browser window" to Downloads window.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@512 94f232f2-1747-11df-bad5-a5bfde151594


# 02a2ef19 20-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Small refactoring for retrieving the URL for a new tab.
* Load new files into the current tab, if the URL of that tab is either empty
or the URL for new tabs, instead of always opening a new tab.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@511 94f232f2-1747-11df-bad5-a5bfde151594


# e979801b 19-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Introduced --fullscreen and -f command line options.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@506 94f232f2-1747-11df-bad5-a5bfde151594


# f94d5e28 19-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Don't store the last window frame with the full-screen window size...

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@505 94f232f2-1747-11df-bad5-a5bfde151594


# 1a2246cc 03-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Avoid loading the start page before loading the requested URL in new windows
by passing the url to the constructor already.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@476 94f232f2-1747-11df-bad5-a5bfde151594


# 3cba4f16 23-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Optimize default window size for 1024x768. Actually I would like to optimize
for 800x600 by default, but then the Welcome page opens with horizontal scroll
bar.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@459 94f232f2-1747-11df-bad5-a5bfde151594


# d5e2e814 20-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

No need to block the BApplication thread when showing the About window.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@442 94f232f2-1747-11df-bad5-a5bfde151594


# 3e2f25ae 17-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Fixed Maxime's name in the About window. Really sorry about that!

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@422 94f232f2-1747-11df-bad5-a5bfde151594


# 845ec8e1 07-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Revised the application startup to check how many windows have been created at
all. Open a blank page if no pages have been created from the arguments passed
to the application.
* If no pages have been created yet, don't offset the last known window frame.
This fixes windows shifting over the screen from session to session.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@397 94f232f2-1747-11df-bad5-a5bfde151594


# d5f0e82b 06-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Moved some settings keys into new files SettingsKeys.h/cpp to make it less
likely to introduce erros with spelling settings keys wrong somewhere.
* Introduced new setting for the behavior if tabs should show at all if only
one page is showing in a window. Defaults to on, i.e. the previous behavior.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@393 94f232f2-1747-11df-bad5-a5bfde151594


# 65e61cdc 05-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Make use of the new svn revision jam magic to embed the current svn version
into the about window.
* Give access to the about window from the browser windows.
* Renamed the "Show *" entries in the Window menu to just "*".

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@387 94f232f2-1747-11df-bad5-a5bfde151594


# 5a9074bc 02-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Added static method BWebPage::ShutdownOnce(), which the application can call
for any at-exit-cleanup. Moved the closing of the favicon database from
BWebSettings there, since I wasn't sure if closing the icon database happened
at the right time, or perhaps too late if it was done via global destructors.
* Temporarily disabled the native cookie support, as it only delays application
startup time right now. We are really using the cURL cookies at the moment
and they work just fine it seems.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@362 94f232f2-1747-11df-bad5-a5bfde151594


# 636f175b 22-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Work in progress on better download management...
* Allow to specify the downloads folder in the General settings page.
* Added necessary wiring.
* The listener notification was not synchronous anymore because of mixed
up default function params in BWebPage.
* Added temporary debug output to WebDownloadPrivate.cpp... the restarting
downloads code path needs testing yet.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@341 94f232f2-1747-11df-bad5-a5bfde151594


# e91fdd92 20-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Converted BrowsingHistory.h/cpp to Haiku coding style.
* Probably fixed a race condition on program launch. If you started typing
into the URL field really fast, the static instance in
BrowsingHistory::DefaultInstance() could be created by two threads, which
may be responsible for the "recursive init" exception that GCC throws in
this situation. It's not easy to trigger, maybe this was it.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@335 94f232f2-1747-11df-bad5-a5bfde151594


# 88e37302 14-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Made BWebPage download related methods and listener member static.
* Introduced BWebPage::RequestDownload() public API (expected to run
synchronous).
* Added necessary wiring for "Download this link" in context menus.
* Restarting downloads works in principle, although with some quirks.
(Sometimes it appears the "Desktop" is being downloaded...)

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@310 94f232f2-1747-11df-bad5-a5bfde151594


# 7239ea75 09-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Added a class CookieJarClient to WebCore's CookieJar.h which provides the
same functionality as the global methods for managing cookies. This is only
enabled for the Haiku platform. Since the global cookie methods get a Document
pointer, I envision, the CookieJarClient could eventually be a member of
Document instances. It would then be passed upon WebCore::Page creation.
Still waiting on feedback from other WebKit developers on this one. This change
is more elegant than what the Qt port does, which is to use WebKit classes in
WebCore (layering violation). Right now, a single global instance of a
CookieJarClient can be assigned.
* Implemented CookieJarClientHaiku which uses a BNetworkCookieJar to forward
the requests. Eventually, the behaviour could be browser specific.
* Added all the necessary wiring to BrowserApplication to make the cookie jar
persistent.
* TODO: Actually parse cookies and handle at least the expiration date, but
other stuff like matching the domain of the cookie and the URL and "HTTP-only"
cookies seems important as well.

Even though I have confirmed that cookies are stored and restored correctly,
and also retrieved via the global cookie methods, I can see no change in browser
behaviour. For example enabling "Stay signed in" on googlemail.com does not work
in WebPositive, although BeZillaBrowser automatically logs in in a new session
when surfing to googlemail.com. No idea if this is even implemented with
cookies, although it seems like it should be.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@303 94f232f2-1747-11df-bad5-a5bfde151594


# 5c2095b4 04-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Link against liblocale.so and load app catalog.
* Took FontSelectionView from Haiku Fonts preflet, but almost rewrote it to
adapt for WebPositive needs. It's now a BHandler, so that it can actually
receive messages itself. The Fonts version is a BView which is never attached,
and only receives messages, because the window forwards them. Implemented
option to use separate style menu.
* Provide font settings in the Settings window.
* Wired everything to make it work, although I am not sure standard font is
applied. It does work for the serif font, though. Maybe I ought to install
more fonts and check with simpler HTML.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@284 94f232f2-1747-11df-bad5-a5bfde151594


# b5cd3e84 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Reworked BrowserApp to use SettingsMessage.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@279 94f232f2-1747-11df-bad5-a5bfde151594


# d0417c56 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Implemented basic settings window skeleton.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@277 94f232f2-1747-11df-bad5-a5bfde151594


# e25584f3 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Wrap main thread in try-catch-block, in order to get a stack trace next time
we hit that recursive init exception.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@273 94f232f2-1747-11df-bad5-a5bfde151594


# b943093b 02-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Preload the browsing history after application start. This avoids the delay
when beginning to type something in the URL text field and the autocompletion
invoked the BrowsingHistory for the first time.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@270 94f232f2-1747-11df-bad5-a5bfde151594


# 10d5754b 01-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Added BWebSettings and BPrivate::WebSettingsPrivate. Added all the wiring
necessary. The only usable effect as of yet is that favicons arrive at the
BrowserWindow. Favicons are stored in a database and are not fetched when they
alreary exist. The application is expected to try and fetch an icon for a given
url. This is currently done in BWebWindow when the URL for loading has been
initiated. Otherwise it fetches the URL upon the new ICON_RECEIVED notification
from the FrameLoaderClientHaiku. In any case it ends up at BWebWindow::IconReceived(),
so derived classes don't have to worry about the difference. In any case, via
BWebSettings, icons can also be fetched manually, like for the forthcomming
autocompletion text control.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@257 94f232f2-1747-11df-bad5-a5bfde151594


# e335cb65 28-Feb-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Missing break in switch, but harmless in this case.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@245 94f232f2-1747-11df-bad5-a5bfde151594


# 0d3093e5 28-Feb-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Implemented a neat new window management feature: When the app is asked to
open a new file or url, check if there is already a window open on the current
workspace, and if so, open a new tab in that window and bring it to front.
ArgReceived() now reuses RefsReceived(), which has been extended to handle
"url" string fields in the message, since ArgReceived() may also be asked to
open urls and not only local files. The LOAD_AT_STARTING mechanism, which
turned out to be broken for multiple args anyway, could be replaced, since
RefsReceived() already buffers the message when it has been called earlier
then ReadyToRun().

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@244 94f232f2-1747-11df-bad5-a5bfde151594


# a3b3ded5 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Manually update to the r238 state, so that we can rebase next commits on top of it

Original commit message of r238:

Split up WebPositive from HaikuLauncher. HaikuLauncher is back to it's simple
self. WebPositive uses a new WebPositive folder in config/settings. Otherwise,
everything should be as before. LauncherWindow and LauncherApp have been renamed
and cleaned up for the Haiku coding style.


# 0b355b4e 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Rename LauncherXXX files to their new WebPositive names

Edit history with this rename commit to preserve history as we will git-filter --subdirectory-filter the WebPositive directory. The HaikuLauncher directory was renamed to WebPositive trough the past history with git-filter.


# 621c9d1243715af00b4b995607d71cc3e4814deb 25-Jun-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update bookmark bar item BMessage on file rename.

The ref stored in the message must be replaced to point to the new file
name. Fixes #10962.


# 158ae743734bb0a3900702317943df71586fbce4 25-Jun-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Escape reserved characters when converting paths to urls

* Introduce and use BUrl::BUrl(const BPath&)
* The path is url-encoded, and the protocol is set to "file"

Fixes #10964.


# 8512f7b05659884cb4f2e5ddf68afe17ae133c53 16-Mar-2014 Zhuowei Zhang <zhuoweizhang@yahoo.com>

Added a simple window to display console messages (fixes #10410)

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 48af26c7d3d247d790fcd7531708aca4e83e7e94 14-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Don't reuse same tab for multiple bookmarks.

As WebKit is asynchronous to the window, when launching a request in a
BWebView, IsBlankTab() will keep returning true until it gets the
BMessage and updates its state.

When opening bookmarks or refs, we would send them too fast, not detect
this, and reuse the same tab for several items. Make sure the blank tab
is only used once when looping over the refs, and force opening all
remaining refs in new tabs of the same window.

Fixes #6625.

Also optimizes the ref loading by not looking up the window for each
ref. Pick one window, then use it for all the bookmarks in the loop.


# dd71f181755e323ef18a99b664d116d1d91e1891 14-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Open bookmarks in the current window

* Instead of looking for the first window in the workspace, add the
current one to the message.
* Fixes #6623.


# aa5101ce5c0b81906355c2299f7b2508f8f5b01a 13-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update HaikuWebKit package to version 1.2.3.

Older versions will not work anymore because of the API changes in
network kit (removal of nonstandard B_PROT_* status codes). x86 and
x86_64 packages have to be updated again.


# cb7df3b1da881c3fadef628b0a0d5a122f131bd0 15-Nov-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Update webkit and cmake packages

* Some changes required in WebPositive to store the cookies on disk


# 2fd5f1736a6dfe230cae0c0f784fcad4b5f74473 16-Jun-2013 Stephan Aßmus <superstippi@gmx.de>

WebPositive: Now that it lives in the tree, get rid of the copied shared code.


# 28a3906351f20fd0119978f6995673b09b66cde9 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Web+ AboutWindow changes: fix build.


# df3b8173eeba89f030329c79eb3d86db506fe30c 01-May-2013 Adrien Destugues <pulkomandy@gmail.com>

Fix Web+ for AboutBox API changes.


# fd19c7366df2134106131c370c99c3ed7f38757f 30-Apr-2013 Adrien Destugues <pulkomandy@gmail.com>

Fix BAboutWindow lifecycle

BAboutWindow returned false in QuitRequested in order to hide instead of closing.
Not only this keeps a BLooper running for a rarely used window, but it also
prevents quitting an application in the window was not destroyed first.

* Remove aforementioned QuitRequested method,
* Add a static GetWindow method that returns the existing about window, if there
is one, or creates one if there is not. A boolean can be set to tell the caller
what happened,
* Adjust all callers to use that new method, instead of managing the window themselves.


# a4d5ac6a25cf635c201cbb7d20f35b4a73d69e4f 17-Dec-2012 John Scipione <jscipione@gmail.com>

Lock Webpositive about window before Quit()ting, thanks Axel.


# 6084a1e1a4df74cf4a915fb0a14e2ca63ee80f6a 14-Dec-2012 John Scipione <jscipione@gmail.com>

Update the about window of WebPositive.

Also update the version number to 1.1-alpha in the rdef file
matching the text on the old about window.


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 2218c029a5ab7260d03036b43c68475e0b35b449 11-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Add localization support to WebPositive, patch by Humdinger

* Includes style fixes
* Functional fixes by myself, patch wouldn't build


# 41a212d24105d1b72cbc1224cd21555ccb5b59c6 11-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Update haiku-webkit build package. Use new version info


# 2ee4319d112fb910c9c90b7b0baec5e3828f0da0 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Remove unneeded includes


# 8d1fc88170fd654a9ae84a6a41669221a5457abc 27-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

As indicated by Axel the border width for positioning the download window was
hard-coded. This fixes that and refactors the code a bit.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@555 94f232f2-1747-11df-bad5-a5bfde151594


# 290dc1146486029fd8c6de58dbdf327e0b8ee35f 27-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

Make the default location for the download window the lower right corner of
screen, like NetPositive.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@554 94f232f2-1747-11df-bad5-a5bfde151594


# f0db6a3bb1b6908454fc8dd2e02867f65b885926 12-Dec-2010 leavengood <leavengood@94f232f2-1747-11df-bad5-a5bfde151594>

Don't try to load a blank URL for a new page.

Fixes #6430.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@550 94f232f2-1747-11df-bad5-a5bfde151594


# 7f88e2461b704a8d950fda6ab8a063cd7b9ad927 15-Jul-2010 anevilyak <anevilyak@94f232f2-1747-11df-bad5-a5bfde151594>

When asked to programmatically open a new URL (i.e. by being launched from another app), give the resulting web view input focus.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@531 94f232f2-1747-11df-bad5-a5bfde151594


# ef6778d11e46ede4e674d30de71501627f90ad1f 03-Jul-2010 anevilyak <anevilyak@94f232f2-1747-11df-bad5-a5bfde151594>

Fix building Web+ against updated locale kit (currently requires manually placing liblocalestub.a from Haiku's build tree)

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@527 94f232f2-1747-11df-bad5-a5bfde151594


# fb03e2c5739385c47ec9fbdc7a2ffaab1d9ebc69 21-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* When downloads are still in progress, warn the user when the app quits and
allow to continue downloading.
* If the Downloads window is the only window, minimize on close instead of
hiding without any way to get the window back.
* Added menu item "New browser window" to Downloads window.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@512 94f232f2-1747-11df-bad5-a5bfde151594


# 02a2ef19691fcce4fd29226eba6f315dc06296ba 20-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Small refactoring for retrieving the URL for a new tab.
* Load new files into the current tab, if the URL of that tab is either empty
or the URL for new tabs, instead of always opening a new tab.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@511 94f232f2-1747-11df-bad5-a5bfde151594


# e979801bf732ee2bab87b51fcce9a861a0d43043 19-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Introduced --fullscreen and -f command line options.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@506 94f232f2-1747-11df-bad5-a5bfde151594


# f94d5e280024f8c54675efb36373b9357156eb41 19-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Don't store the last window frame with the full-screen window size...

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@505 94f232f2-1747-11df-bad5-a5bfde151594


# 1a2246ccf975d3f45c6ee4e9606ca80b843be60d 03-May-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Avoid loading the start page before loading the requested URL in new windows
by passing the url to the constructor already.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@476 94f232f2-1747-11df-bad5-a5bfde151594


# 3cba4f1616fda0ea8c8b6890b086799d00df7525 23-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Optimize default window size for 1024x768. Actually I would like to optimize
for 800x600 by default, but then the Welcome page opens with horizontal scroll
bar.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@459 94f232f2-1747-11df-bad5-a5bfde151594


# d5e2e814a417ed7606dcfd6c480c4db844f8acf9 20-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

No need to block the BApplication thread when showing the About window.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@442 94f232f2-1747-11df-bad5-a5bfde151594


# 3e2f25ae9f8a9f827673589d8f328952d86d3282 17-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Fixed Maxime's name in the About window. Really sorry about that!

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@422 94f232f2-1747-11df-bad5-a5bfde151594


# 845ec8e102a5530f5a1e3037f7c6e0fe571438e3 07-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Revised the application startup to check how many windows have been created at
all. Open a blank page if no pages have been created from the arguments passed
to the application.
* If no pages have been created yet, don't offset the last known window frame.
This fixes windows shifting over the screen from session to session.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@397 94f232f2-1747-11df-bad5-a5bfde151594


# d5f0e82b842da208d3c297fa2c5eb22ad75539cf 06-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Moved some settings keys into new files SettingsKeys.h/cpp to make it less
likely to introduce erros with spelling settings keys wrong somewhere.
* Introduced new setting for the behavior if tabs should show at all if only
one page is showing in a window. Defaults to on, i.e. the previous behavior.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@393 94f232f2-1747-11df-bad5-a5bfde151594


# 65e61cdca4cce6bcc491608fb4971cb55ea37aa8 05-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Make use of the new svn revision jam magic to embed the current svn version
into the about window.
* Give access to the about window from the browser windows.
* Renamed the "Show *" entries in the Window menu to just "*".

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@387 94f232f2-1747-11df-bad5-a5bfde151594


# 5a9074bc173ee55df43495bf0581542b38eec2e8 02-Apr-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Added static method BWebPage::ShutdownOnce(), which the application can call
for any at-exit-cleanup. Moved the closing of the favicon database from
BWebSettings there, since I wasn't sure if closing the icon database happened
at the right time, or perhaps too late if it was done via global destructors.
* Temporarily disabled the native cookie support, as it only delays application
startup time right now. We are really using the cURL cookies at the moment
and they work just fine it seems.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@362 94f232f2-1747-11df-bad5-a5bfde151594


# 636f175b1500fc2bbaf462d29f46af8c6d0ee0b9 22-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Work in progress on better download management...
* Allow to specify the downloads folder in the General settings page.
* Added necessary wiring.
* The listener notification was not synchronous anymore because of mixed
up default function params in BWebPage.
* Added temporary debug output to WebDownloadPrivate.cpp... the restarting
downloads code path needs testing yet.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@341 94f232f2-1747-11df-bad5-a5bfde151594


# e91fdd924a9e7b92f9254ec3082d2f6e5485875e 20-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Converted BrowsingHistory.h/cpp to Haiku coding style.
* Probably fixed a race condition on program launch. If you started typing
into the URL field really fast, the static instance in
BrowsingHistory::DefaultInstance() could be created by two threads, which
may be responsible for the "recursive init" exception that GCC throws in
this situation. It's not easy to trigger, maybe this was it.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@335 94f232f2-1747-11df-bad5-a5bfde151594


# 88e373028cbb4d49b0098b89e1c26e1a92966e9b 14-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Made BWebPage download related methods and listener member static.
* Introduced BWebPage::RequestDownload() public API (expected to run
synchronous).
* Added necessary wiring for "Download this link" in context menus.
* Restarting downloads works in principle, although with some quirks.
(Sometimes it appears the "Desktop" is being downloaded...)

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@310 94f232f2-1747-11df-bad5-a5bfde151594


# 7239ea752d0486bed93d1c3e97c26a8556822362 09-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Added a class CookieJarClient to WebCore's CookieJar.h which provides the
same functionality as the global methods for managing cookies. This is only
enabled for the Haiku platform. Since the global cookie methods get a Document
pointer, I envision, the CookieJarClient could eventually be a member of
Document instances. It would then be passed upon WebCore::Page creation.
Still waiting on feedback from other WebKit developers on this one. This change
is more elegant than what the Qt port does, which is to use WebKit classes in
WebCore (layering violation). Right now, a single global instance of a
CookieJarClient can be assigned.
* Implemented CookieJarClientHaiku which uses a BNetworkCookieJar to forward
the requests. Eventually, the behaviour could be browser specific.
* Added all the necessary wiring to BrowserApplication to make the cookie jar
persistent.
* TODO: Actually parse cookies and handle at least the expiration date, but
other stuff like matching the domain of the cookie and the URL and "HTTP-only"
cookies seems important as well.

Even though I have confirmed that cookies are stored and restored correctly,
and also retrieved via the global cookie methods, I can see no change in browser
behaviour. For example enabling "Stay signed in" on googlemail.com does not work
in WebPositive, although BeZillaBrowser automatically logs in in a new session
when surfing to googlemail.com. No idea if this is even implemented with
cookies, although it seems like it should be.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@303 94f232f2-1747-11df-bad5-a5bfde151594


# 5c2095b4b08c8ccbc8ad97a1a2cf30c241b979ea 04-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

* Link against liblocale.so and load app catalog.
* Took FontSelectionView from Haiku Fonts preflet, but almost rewrote it to
adapt for WebPositive needs. It's now a BHandler, so that it can actually
receive messages itself. The Fonts version is a BView which is never attached,
and only receives messages, because the window forwards them. Implemented
option to use separate style menu.
* Provide font settings in the Settings window.
* Wired everything to make it work, although I am not sure standard font is
applied. It does work for the serif font, though. Maybe I ought to install
more fonts and check with simpler HTML.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@284 94f232f2-1747-11df-bad5-a5bfde151594


# b5cd3e842fd3e758ea8fdb95ff00b38835ed8aec 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Reworked BrowserApp to use SettingsMessage.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@279 94f232f2-1747-11df-bad5-a5bfde151594


# d0417c565a1a418ece0406d288dcd2e971b5d447 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Implemented basic settings window skeleton.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@277 94f232f2-1747-11df-bad5-a5bfde151594


# e25584f3c591de0311578ca53f735e5950d46cf3 03-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Wrap main thread in try-catch-block, in order to get a stack trace next time
we hit that recursive init exception.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@273 94f232f2-1747-11df-bad5-a5bfde151594


# b943093b1bfd7178362d88c3bba8b4ce11989a3e 02-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Preload the browsing history after application start. This avoids the delay
when beginning to type something in the URL text field and the autocompletion
invoked the BrowsingHistory for the first time.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@270 94f232f2-1747-11df-bad5-a5bfde151594


# 10d5754b9273aa826a36beb7c614d0fe0ac0b1d6 01-Mar-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Added BWebSettings and BPrivate::WebSettingsPrivate. Added all the wiring
necessary. The only usable effect as of yet is that favicons arrive at the
BrowserWindow. Favicons are stored in a database and are not fetched when they
alreary exist. The application is expected to try and fetch an icon for a given
url. This is currently done in BWebWindow when the URL for loading has been
initiated. Otherwise it fetches the URL upon the new ICON_RECEIVED notification
from the FrameLoaderClientHaiku. In any case it ends up at BWebWindow::IconReceived(),
so derived classes don't have to worry about the difference. In any case, via
BWebSettings, icons can also be fetched manually, like for the forthcomming
autocompletion text control.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@257 94f232f2-1747-11df-bad5-a5bfde151594


# e335cb654c2d4a70a8532c01f2a62bc8ad7e087a 28-Feb-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Missing break in switch, but harmless in this case.

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@245 94f232f2-1747-11df-bad5-a5bfde151594


# 0d3093e5d8e31fe0d7ea1e86de09633b0bcb6589 28-Feb-2010 stippi <stippi@94f232f2-1747-11df-bad5-a5bfde151594>

Implemented a neat new window management feature: When the app is asked to
open a new file or url, check if there is already a window open on the current
workspace, and if so, open a new tab in that window and bring it to front.
ArgReceived() now reuses RefsReceived(), which has been extended to handle
"url" string fields in the message, since ArgReceived() may also be asked to
open urls and not only local files. The LOAD_AT_STARTING mechanism, which
turned out to be broken for multiple args anyway, could be replaced, since
RefsReceived() already buffers the message when it has been called earlier
then ReadyToRun().

git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@244 94f232f2-1747-11df-bad5-a5bfde151594


# a3b3ded520bdf755cef087bfdb2323c0a832627d 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Manually update to the r238 state, so that we can rebase next commits on top of it

Original commit message of r238:

Split up WebPositive from HaikuLauncher. HaikuLauncher is back to it's simple
self. WebPositive uses a new WebPositive folder in config/settings. Otherwise,
everything should be as before. LauncherWindow and LauncherApp have been renamed
and cleaned up for the Haiku coding style.


# 0b355b4e977e1c28512c3c60b9fb143e7a574ea1 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Rename LauncherXXX files to their new WebPositive names

Edit history with this rename commit to preserve history as we will git-filter --subdirectory-filter the WebPositive directory. The HaikuLauncher directory was renamed to WebPositive trough the past history with git-filter.