about summary refs log tree commit diff stats
path: root/xombrero.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Make custom URI handling work againJosh Rickmar2012-08-311-7/+7
| | | | | | | This changes the order custom and invalid URI checking so that items set with custom_uri are still able to be handled properly, even if the URI scheme is invalid (not whitelisted) and we don't want xombrero opening it.
* Stop crash with old libsoups, kill warning with never onesJosh Rickmar2012-08-311-0/+2
| | | | Reported by Thomas in the irc channel
* Fix back/forward handling with about pages.Josh Rickmar2012-08-291-2/+4
| | | | | | | | | This change makes the can_go_* and go_* back/forward functions use the same logic when determining whether we are on an about page, and makes it so about:secviolation warning pages do not save the page that generated the warning to t->item. This prevents hitting back and going back to the exact same page that generated the warning (triggering the warning a second time).
* Fix issues with marco's back/forward list hackJosh Rickmar2012-08-281-17/+37
| | | | | | | | This should incorporate all the fixes in my previous back/forward list change, but still uses marco's horrible hack for determining if and how back/forward works. Code is still ugly but deal with it. Any remaining issues will be worked out in-tree.
* Backout the recent back/forward list changesJosh Rickmar2012-08-281-19/+127
| | | | | | This changed worked wonders for me but others still saw some problems. I could not reproduce any of them. This will bring back some problems with refresh not working again, but I'll work around that next.
* Fix cert checking thread to make sure t is always still validJosh Rickmar2012-08-241-8/+4
|
* Specify action for the policy when returning TRUE from npd cbJosh Rickmar2012-08-241-2/+7
|
* Fix the build when using some older glib and gtk versionsJosh Rickmar2012-08-241-0/+2
|
* Make the arrow menu work againJosh Rickmar2012-08-231-5/+5
|
* Marco wants new tabs only when middle-clicking (or ctrl-click)Josh Rickmar2012-08-231-8/+2
|
* Fix the logic for following links and opening new tabs.Josh Rickmar2012-08-231-3/+7
|
* Only allow loading of whitelisted valid uri typesJosh Rickmar2012-08-231-0/+6
| | | | | | This should prevent bait and switch attacks when using data: or javascript: uris (see http://lcamtuf.coredump.cx/switch/ for an example of the attack).
* Remove some deprecated signalsJosh Rickmar2012-08-221-14/+12
| | | | | | This stops the webview's deprecated load-finished and load-progress-changed signals from being attached to. May help with stability.
* Redo the back/forward list hackJosh Rickmar2012-08-211-127/+19
| | | | Much simpler, and less buggy.
* Remove duplicate codeJosh Rickmar2012-08-061-11/+3
| | | | | | Now that wl_add works correctly (doesn't automatically insert leading periods), remove the old struct sv_ignore and use struct domain and wl_add/wl_find instead.
* Add a favedit command and remove rm links from :favJosh Rickmar2012-08-061-2/+3
| | | | | | | | This makes using :fav with link hinting less likely to accidentally remove an entry by typing the wrong number. The old favorites page with the rm links is still available by using the favedit command. Patch slightly modified from a patch provide by user wallex on FS.
* ref/unref t->active before it is set or unsetJosh Rickmar2012-08-201-0/+2
| | | | | | | This should fix any crashes when determining if t->active is an active input element or not. The pointer is from a function which returns transfer none, so if we want to keep it alive (we do), we need manually add reference to it, and unrefernce it so it is freed.
* Make middle click to paste work in t->cmdJosh Rickmar2012-08-171-5/+8
| | | | | This reorders some gtk calls and adds another to unset the text in the GtkEntry before showing it.
* Destroy the session key when done with it.Josh Rickmar2012-08-161-5/+18
| | | | | This prevents sites from even being able to correctly guess an xtp session key.
* Give each tab its own session key for xtp links.Josh Rickmar2012-08-161-7/+9
| | | | While here, kill a bunch of trailing whitespace.
* Add more info and features to about:secviolationJosh Rickmar2012-08-151-0/+62
| | | | | | This adds the full url to the about:secviolation warning page, as well as implementing a new link to show the local cached cert instead of only the new remote one.
* Undo the backout of all the inputfocus changes.Josh Rickmar2012-08-141-9/+27
| | | | | | We thought these were the cause of the focus bugs, but it was something else instead. Now that we have that fixed, these can go back in.
* Send a fake focus-in event to fix the focus.Josh Rickmar2012-08-091-13/+79
| | | | | We probably shouldn't be relying on internal gtk functions (especially since we can't link to them on linux), so try this instead.
* Backout commitsJosh Rickmar2012-08-091-26/+13
| | | | | | | Accidentally pushed a bunch of stuff to master that wasn't ready yet when making the FreeBSD Makefile changes. Sorry marco for the merges in the logs. This should revert everything back to how it was at d397399c349d36f611a5aac6fa53528d2fe2eaea.
* Unref t->completion when deleting a tab to destroy the completionJosh Rickmar2012-08-071-0/+2
| | | | window.
* Destroy a hidden arrow menu instead of simply unreferencing it. ThisJosh Rickmar2012-08-071-6/+10
| | | | | keeps the toplevel window count from incrementing each time the arrow is clicked.
* Only hide when switching switching tabsJosh Rickmar2012-08-061-4/+6
| | | | | | | | | We need to hide t->cmd, t->oops, and t->buffers when creating a new tab, because when the tab is switched to, they are automatically hidden in the notebook callback. Removing this also prevents focusing the url GtkEntry when using middle click to create a new tab, since t->focus_wv would not have been set to 1 yet in the create_new_tab() function.
* Attach t->cmd to the hide signal to focus t->wvJosh Rickmar2012-08-061-7/+12
| | | | | | Whenever t->cmd is hidden we need to make a decision about what to focus (in most cases, the webview). Before this may not have always happened if t->cmd was hidden and no focus was explicitly set.
* Prevent expanding tabs when using the P keybinding.Josh Rickmar2012-08-021-0/+6
| | | | | | | | This change modifies the paste_uri function to change all newlines in the uri with spaces. This stops the new tab from expanding to twice it's correct height when using the P command, if pasting a link that contains any newlines (usually these would come from copying the newline out of a terminal).
* Add a :https commandJosh Rickmar2012-08-011-0/+13
|
* Backout all changes I've made to inputfocus.c.Josh Rickmar2012-08-021-27/+9
| | | | | | | It was likely something from one of these changes that introduced all of our focus bugs. We can reintroduce these commits again, much slower than as I first developed them, and see if the focus issues still appear.
* Implement an about:runtime page and :runtime command to view andJosh Rickmar2012-07-311-8/+59
| | | | | | change runtime settings. Settings that have been modified show in a highlighted color in the table. Tooltips describe the setting's function, as well as the default values.
* More focus improvements. Disable the can-focus property for a lot ofJosh Rickmar2012-07-271-9/+15
| | | | | | widgets that should not be receiving focus, and try focusing the HTML body to try to prevent some of the focus bugs that have been popping up. No idea if this will solve our problems but they can't hurt.
* Add a force_https setting (using the same domain syntax as theJosh Rickmar2012-07-311-7/+37
| | | | | | | | | | | | | | | whitelist settings) to make all requests to that domain use the HTTPS scheme, similar to HSTS. Install a new file, hsts-preload, into the resource dir. This is a regular config file with a bunch of force_https = ... lines, which is used to implement a preloaded HSTS list. Right now all the domains in this file, except for conformal.com and cyphertite.com, are taken directly from chromium's preloaded HSTS list (and should be synced with this file every so often). Also implement a new setting, preload_strict_transport (enabled by default), to enable or disable the loading of this preloaded HSTS list. Document force_https and preload_strict_transport in the manpage.
* vasprintf -> g_strdup_vprintfJosh Rickmar2012-07-261-2/+2
|
* two more free() -> g_free(); ok jrickTodd T. Fries2012-07-261-3/+2
|
* Remove malloc callsJosh Rickmar2012-07-261-7/+5
|
* Implement a do_not_track feature to set the Do Not Track HTTP header.Josh Rickmar2012-07-251-0/+3
|
* Fix marco's last commit so the donothing binary doesn't show warningsJosh Rickmar2012-07-241-1/+5
| | | | | with show_oops, and document how donothing behaves in the manpage and example conf.
* make warnx a show_oopsMarco Peereboom2012-07-241-1/+1
|
* Make this compile again with XT_DEBUG defined. Tsk tsk meJosh Rickmar2012-07-241-6/+6
|
* Always add the callback function to the soup message to enable HSTS ifJosh Rickmar2012-07-211-6/+6
| | | | | enable_strict_transport is set. Before, if referer_mode was set to XT_REFERER_ALWAYS, this code would never be run. Found by dhill.
* Change the CSS slightly so that url and statusbar text is notJosh Rickmar2012-07-171-0/+13
| | | | | | | invisible on windows, and add some additional inline CSS hacks for Windows into the source to beautify the tabs a bit. With this change, we should be ready to re-enable the default windows gtk3 theme instead of disabling user themes.
* Make some modifications to the notebook tabs so they do not expandJosh Rickmar2012-07-161-3/+14
| | | | | | | | | | | | | when the spinner is shown. Doing this in a way so that the text doesn't bounce around when the spinner is shown and hidden requires a ugly ugly hack of giving the label a fixed size instead of letting the GtkBox give it an appropiate width, but afaik this isnecessary (and the old gtk2 code was using the same hack). While in here, give the Arrow name to the arrow button itself and not the GtkArrow it holds, and remove the .button#Arrow CSS as we don't want to remove the border from this button, only the tab close and fancy_bar buttons.
* Make all the statusbar elements GtkLabel widgets instead of GtkEntryJosh Rickmar2012-07-131-72/+61
| | | | | | | | | | widgets (with the exception of the uri, we need this for the progressbar). Because labels only take up as much room as they need, the statusbar elements now dynamically fit together in a GtkBox instead of giving GtkEntry a fixed size. Because the background color of labels can not be colored directly, place a GtkEventBox underneath the packing GtkBox (which is also transparent) and color that when changing the colors for HTTPS sites.
* Always create the items in the toolbar, even if they aren't going toJosh Rickmar2012-07-131-60/+49
| | | | | | | | | | | | be immediatelly shown due to fancy_bar = 0 or an empty search_string. We need these to be created in case they are shown again by changing these gui settings at runtime later. This also prevents a lot of Gtk-CRITICAL warnings due to trying to set various widgets active or inactive based on the current page status (for example, stop and the js toggle button). While here, kill some useless boxes around both the uri and search entries in the toolbar.
* This should have made it into the last commit.Josh Rickmar2012-07-151-1/+6
|
* Silence this warning for good.Josh Rickmar2012-07-131-1/+7
|
* rejig downloads a bit to accomodate windowsMarco Peereboom2012-07-131-3/+6
|
* Remove the compact tab separator (I couldn't get this to colorJosh Rickmar2012-07-121-37/+51
| | | | | | | | | | | | | correctly in GTK3, maybe it was turned into a windowless widget) and instead use a GtkEventBox behind the compact tab bar. Give this GtkEventBox the same background color as the old separator, and put a 2 pixel spacing gap between each compact tab. This simplifies the code required to paint these separators, and works for both GTK2 and GTK3. * * * Call gtk_label_set_ellipsize() on the compact tab labels. This prevents the main window from forcefully expanding when there's not enough room for all of the compact tab labels.