Commit graph

197 commits

Author SHA1 Message Date
Christian Dywan
9040d43632 Refactor web cache to circumvent libsoup when needed
At this point libsoup is dependent on a functional network adapter,
which may not be available if no network connection is there or
the connection is faulty. So *if* we have a requested page in the
cache, we load it before libsoup comes into play.

Depending on the WebKitGTK+ version, loading from cache uses an
"alternate" URI so that we don't end up having cache filenames
in the location entry.

Generation of cache filenames is fixed to never include special
characters such as slashes or question marks.

Only non-empty files are actually stored to the cache folder.
2009-10-22 02:20:27 +02:00
Christian Dywan
6b0f38e51a Install autosuggestcontrol.js/.css into res like the other files 2009-10-22 02:20:26 +02:00
Christian Dywan
3dfaac3458 Revise loading data from the cache instead of the network 2009-10-20 21:39:05 +02:00
Christian Dywan
10b6cbb50a Don't check the status code when storing in the cache 2009-10-20 17:30:07 +02:00
Christian Dywan
ea6ae9b9e6 Store cached files in subfolders 2009-10-20 17:28:42 +02:00
Christian Dywan
da65b5d0c1 Implement a primitive web cache extension (unstable)
Incoming files are cached and saved to disk, as well as looked up
when files are requested. Only images are considered at the moment
and there is no epxiration handling or updating at all. Plus
it crashes in certain cases.
2009-10-20 16:04:58 +02:00
Alexander Butenko
d86e03a34e Implement an adblock info icon showing blocked URIs in a tooltip 2009-10-19 23:31:41 +02:00
Alexander Butenko
02d6f806e2 Implement div, a, ul and per domain element adblock rules
element hiding is supported. And instead of creating a javascript
function for each rule, we generate one script for everything.

On my machine only 650 out of 4500 rules are skipped.
2009-10-19 23:16:05 +02:00
Christian Dywan
b7f90f1a51 Add entry for a filter list address and an explanation to the dialog 2009-10-14 23:23:45 +02:00
Christian Dywan
0d65588651 Support Adblock with earlier Webit versions
With WebKit < 1.1.14 we use libSoup directly.
2009-10-14 21:51:32 +02:00
Christian Dywan
6a590a3125 Implement tick marks to enable/ disable adblock filters 2009-10-14 03:35:40 +02:00
Christian Dywan
fa030cbaca Use the correct counter when storing adblock filters
This crash was tricky since 'length' looked correct while in fact
it is the number of items including invalid items, which can be
more than we store.
2009-10-14 03:17:23 +02:00
Alexander Butenko
5f30199df5 Add unit test for prefetching that tests which URIs to prefetch 2009-10-14 00:56:17 +02:00
Christian Dywan
8636d3b9c6 Bail out of DNS prefetch if the host is NULL 2009-10-13 13:25:29 +02:00
Alexander Butenko
e4f163447c Don't prefetch IP addresses and bail out if the soup URI is invalid 2009-10-13 02:37:52 +02:00
Alexander Butenko
ad04c92e30 Initialize hosts for prefetching with an empty string 2009-10-12 23:06:04 +02:00
Christian Dywan
9702fbf5e4 Check the length of form fields to save only once 2009-10-12 23:06:04 +02:00
Enrico Tröger
2fc3116f77 Only fetch form values when the message is accumulative 2009-10-12 23:06:04 +02:00
Christian Dywan
c3217c6365 Pass HILDON library (if used) when building extensions 2009-10-12 13:01:17 +02:00
Christian Dywan
e97a198e98 Cache scriptcode generated by adblock instead of generating on load 2009-10-12 12:12:38 +02:00
Christian Dywan
94db485293 Initialize adblock unit tests with an empty pattern 2009-10-10 11:08:29 +02:00
Christian Dywan
223e9be7e3 Don't leak blockcss but free it before replacing it 2009-10-09 17:20:55 +02:00
Alexander Butenko
2718e47ca0 Add a DNS prefetching extension which fetches hovered links 2009-10-09 17:13:24 +02:00
Alexander Butenko
63b25561ff Re-use one hashtable instead of replacing it 2009-10-09 17:05:07 +02:00
Christian Dywan
0706bdbbe7 Don't leak form suggestions and don't return from the loop 2009-10-07 23:04:30 +02:00
Alexander Butenko
37e2c84b2b Install formhistory resources, don't fill in passwords
Reading post data is there but nothing is written to disk yet.
2009-10-07 22:30:16 +02:00
Alexander Butenko
50c159e9bb Initial code for the form history extension 2009-10-06 20:35:56 +02:00
Alexander Butenko
53b3c6aee3 Measure the performance of adblock parsing with a unit test 2009-10-03 23:57:12 +02:00
Alexander Butenko
c812efad2b Go back to the previous, faster pattern handling in adblock 2009-10-03 23:52:59 +02:00
Christian Dywan
7c2eb4de16 Fix a crash caused by freeing the adblock filters in the wrong way 2009-10-03 13:27:12 +02:00
Christian Dywan
2b493414d5 Correct memory handling leading to corruption in adblock 2009-10-03 02:03:49 +02:00
Christian Dywan
0e0ce115f9 Update tab panel selection when tabs are switched, opened or closed
A convenince function tab_panel_get_iter_for_view is introduced
to make finding the right iter easier.
2009-09-29 20:50:04 +02:00
Alexander Butenko
a8a0ff625e Be sure to reload lists as they are added 2009-09-23 19:22:01 +02:00
Christian Dywan
c4808e1701 Setup mouse gestures properly without a restart 2009-09-16 21:52:14 +02:00
Alexander Butenko
8ed02c1f88 Impove adblock regex, skip data: URIs and handle |http:// 2009-09-15 21:03:40 +02:00
Alexander Butenko
5f98925a02 Generate CSS rules from adblock element blocking lines 2009-09-14 18:26:35 +02:00
Christian Dywan
516547814c Mention why disabled extensions are not available 2009-09-14 18:26:35 +02:00
Christian Dywan
39e47ac3b7 Disable extensions that are unavailable on the system
Extensions can be unavailable on a particular platform or a system
lacking a build-time requirement. Let's handle this more cleanly
and reflect it in the Extensions panel.
2009-09-10 02:07:27 +02:00
Alexander Butenko
e59b291709 Implement Adblock with WebKit resource API 2009-09-10 02:00:06 +02:00
Christian Dywan
b77fdd45cf Support minimizing in tab panel, improve treeview updating
We now differentiate minimized views by inserting a toolitem in the toolbar
instead of a row in the tree model. This needed quite a bit of refactoring
including notifications of icon and title, which we use to update the
tree model as well now. Models are also per-browser now.
2009-08-18 20:49:41 +02:00
Dale Whittaker
359be5e24b Revert usage of KatzeItem meta data in the feed panel for now 2009-08-17 20:51:35 +02:00
Christian Dywan
04dc7fe855 Pass news feed icon clicks to the feed panel
The secondary-icon-released signal of the location action returns
a boolean now so a callback can indicate that it handled it. So
if the feed panel is active, it adds feeds to the panel and
suppresses the default action.

A possible crash when disabling the panel and clicking the icon
afterwards is fixed by adding a missing signal disconnection.
2009-08-17 02:15:21 +02:00
Dale Whittaker
883007c05d Catch another case of feed markup not being converted to text 2009-08-16 23:33:21 +02:00
Dale Whittaker
f48f47f372 Be sure to handle feed panel elements as HTML rather than text
While we are at it, use the new metadata API of KatzeItem.
2009-08-14 23:33:10 +02:00
Enrico Tröger
d3237c46ca Skip adblock lines that are not handled 2009-08-09 15:21:02 +02:00
Christian Dywan
a905219267 Show close icons in the tab panel, if enabled 2009-07-28 01:25:46 +02:00
Christian Dywan
2f3204f61a Manually setup the tab panel tooltip 2009-07-27 23:41:36 +02:00
Christian Dywan
d0d0b3bba7 Ellipsize titles and show tooltips in the tab panel 2009-07-27 03:40:38 +02:00
Christian Dywan
a32bd1e39a Don't indent tab panel rows, we don't have expanders 2009-07-26 21:49:42 +02:00
Christian Dywan
43e6542702 Implement MidoriBrowser::populate-tool-menu and adjust extensions
Extensions used to look for the menu and append items manually.
In order to show Tools in the Compact menu a proper signal
is needed.

Adblock, Shortcuts and Toolbar Editor are ported to the new API.
2009-07-25 03:05:52 +02:00
Daniel P. Fore
4103dc48ea Improve the wording of a few English strings and use colons 2009-07-22 23:53:29 +02:00
Alexander Butenko
121d348c64 Escape adblock filters properly and adjust the tests 2009-07-22 21:42:33 +02:00
Christian Dywan
e241273ad5 Disable building of adblock again, it's still not ready 2009-07-19 18:59:30 +02:00
Enrico Tröger
54192725c0 Don't repopulate the toolbar when opening the toolbar editor 2009-07-18 15:19:54 +02:00
Enrico Tröger
b7b741a146 Show icons in the toolbar editor 2009-07-18 15:17:41 +02:00
Christian Dywan
d6f6a76755 Include unistd.h in adblock which declares close() 2009-07-18 15:14:26 +02:00
Christian Dywan
8cdbb32511 Implement unit tests in adblock 2009-07-18 03:05:40 +02:00
Enrico Tröger
349c9d2080 Apply changes in the toolbar editor instantly 2009-07-17 23:02:55 +02:00
Enrico Tröger
e0541d92ea Use constants to address tree model columns 2009-07-17 23:00:39 +02:00
Enrico Tröger
6e97bf2da6 Display item labels instead of raw names in the toolbar editor 2009-07-17 22:59:25 +02:00
Christian Dywan
cc326885bc Implement adding and removing of adblock URIs 2009-07-17 22:05:20 +02:00
Christian Dywan
746b17e49e Make adblock filter URIs editable and save them when edited 2009-07-17 21:37:36 +02:00
Christian Dywan
4135b1ffe8 Use katze_strip_mnemonics in Shortcuts 2009-07-17 21:30:40 +02:00
Christian Dywan
0c5ce0e515 No need for a data function for adblock text columns 2009-07-17 18:03:50 +02:00
Christian Dywan
cac8646b7e Replace leading * or ? in adblock lines with .* or \? respectively 2009-07-16 14:36:35 +02:00
Alexander Butenko
c269bfc466 Use a hash table of URIs to track blocked advertisements 2009-07-16 14:17:20 +02:00
Christian Dywan
c7a456dffd Re-enable building the adblock extension 2009-07-16 14:04:00 +02:00
Enrico Tröger
4df46b1266 Add a Toolbar Editor extension 2009-07-10 16:40:35 +01:00
Christian Dywan
c1fe050cd3 Insert tabs in the Tab Panel the same order as the notebook 2009-06-29 21:55:05 +02:00
Christian Dywan
e1d385d3ab Use the new public tab menu in the Tab Panel extension 2009-06-27 23:53:33 +02:00
Christian Dywan
1d8a7728a6 Use URI instead of the view itself to open tabs in new windows 2009-06-23 00:10:12 +02:00
Christian Dywan
7b36d4dd58 Close tabs in the Tab Panel with a middle click 2009-06-23 00:04:07 +02:00
Christian Dywan
f66e86a4fb Switch tabs in the Tab Panel with a single left click 2009-06-22 23:58:25 +02:00
Christian Dywan
e3c5aa9277 Use show-tabs in Tab Panel to hide the ordinary tabs 2009-06-22 23:51:24 +02:00
Christian Dywan
7860357ed2 Remove views from the tab panel as they are removed from the browser 2009-06-22 23:13:23 +02:00
Christian Dywan
75e3dae39a Implement a tree view of open tabs in the Tab Panel 2009-06-21 19:30:51 +02:00
Christian Dywan
1937a7785c Enable building of the Tab Panel again 2009-06-20 23:46:49 +02:00
Christian Dywan
f38fb44048 Hide the default tab labels when Tab Panel is active 2009-06-20 23:31:57 +02:00
Christian Dywan
1e28cd3b14 Refactor Tab Panel into a single file 2009-06-20 23:28:02 +02:00
Christian Dywan
42ab4b3848 Render unset shortcuts as "None" instead if "Deactivated" 2009-06-20 20:36:16 +02:00
Christian Dywan
7a6686ef71 Strip underscores from action labels in shortcuts extension 2009-06-20 20:30:03 +02:00
Christian Dywan
d7d06b9acd Use midori_browser_get_for_widget in Colourful Tabs 2009-06-18 23:55:16 +02:00
Christian Dywan
565ea61ba6 Add Shortcuts extension to edit keyboard shortcuts 2009-06-11 15:42:54 +02:00
Christian Dywan
4e19617fdc Use MDATADIR, import os and don't use waf_config_files 2009-06-09 02:02:43 +02:00
Christian Dywan
f643ed1ddd Don't bother to counter browser and also unref the array 2009-06-07 01:31:49 +02:00
Christian Dywan
d39e5590f9 Replace a few tabbed lines with space indentation 2009-06-07 01:26:12 +02:00
Michael Opitz
891d89e3fd Propagate button press event explicitly from the view
Apparently the button events tend to be stuck and not properly
propagated, so we resort to emitting the signal ourselves.
2009-06-07 00:48:19 +02:00
Enrico Tröger
246fc03151 Use only one GtkTreeStore for all browsers to improve performance
Split the code a bit more and use one GtkTreeStore for all
CookieManagerPage instances so we save some cycles when updating
the store when cookies have changed.
2009-06-06 23:40:08 +02:00
Christian Dywan
6296ce147d Show icons/ labels in statusbar features according to toolbar style 2009-06-01 02:46:10 +02:00
Christian Dywan
7275ea3a6a Disable adblock, it's incomplete and not ready for release 2009-05-28 23:16:13 +02:00
Christian Dywan
d90f3d7680 Initial implementation of an Advertisement blocker
The dialog isn't finished, you have to add URIs to the config
file by hand.
2009-05-19 21:01:09 +02:00
Jérôme Geulfucci
c9550d36e3 Adjust the Mouse Gestures coding style 2009-05-19 19:13:03 +02:00
Enrico Tröger
e1268d3dea Split the CookieManager extension into separate files 2009-05-19 19:04:25 +02:00
Enrico Tröger
e211c6884a Remove possibly remaining timers when closing browser windows 2009-05-18 02:47:56 +02:00
Dale Whittaker
20d03e43aa Improve handling of feeds with missing data
Previously the description was used in the treeview if the title
was not present, however this is not possible in some cases, as
it may contain markup.
The the RSS code is changed so now if there is no title, the
description is used as the title, but with the html stripped from
it. We also have to consider that some description elements may
simply contain an html tag (and therefore no text). In that
case the URI is used as the title.
2009-05-12 01:52:30 +02:00
Dale Whittaker
ec44108653 Improve title and URI display in the feed panel
We strip HTML from "title" elements when required now. And we
always try to show at least the URI for feeds in the WebKit view.
And we fallback to using the URI in the treeview if the title/
description is empty.
2009-05-09 14:08:06 +02:00
Enrico Tröger
dfef979499 Automatically reset the filter after deleting all matching cookies
Also fix wording in the confirmation dialog.
2009-05-03 10:14:55 +02:00
Dale Whittaker
c0df53a169 Fix item movement callback in feed panel 2009-04-30 19:00:27 +02:00
Christian Dywan
b7e852fe09 Localize 'Last updated' display of feeds and quote URIs 2009-04-29 23:46:41 +02:00
Christian Dywan
9e5477815a Wrap XML element names in error messages in quotes 2009-04-29 17:42:36 +02:00