Paweł Forysiuk
7939dc1bf1
Try matching URI by extension first in script/ style infobar
...
Fallback to hostname if that fails
2011-02-09 00:14:27 +01:00
Paweł Forysiuk
6b48f9c639
Escape markup in user script/style tooltip and delete dialog
2011-02-09 00:10:06 +01:00
Paweł Forysiuk
7504edaa11
Fix script name extraction and re-enable installer on userscripts.org "review" pages
2011-02-04 00:33:48 +01:00
Christian Dywan
90e11d3713
Only no adblock if main frame in provisional state
2011-02-01 01:52:39 +01:00
Christian Dywan
2e35f1718b
Never filter the main page itself with adblock
...
Fixes: https://bugs.launchpad.net/midori/+bug/706862
2011-01-30 19:25:50 +01:00
Christian Dywan
57d529d309
Don't support 'review' pages on userstyles.org for now
2011-01-30 18:58:00 +01:00
Paweł Forysiuk
1efabca2b1
Don't use GtkInfoBar api explicitly in user style/script infobar installer
2011-01-30 18:58:00 +01:00
Christian Dywan
650aa8c102
Don't error when saving addons config in test
2011-01-16 14:05:23 +01:00
André Stösel
b4e94b4f19
Be sure to end up at last opened tab after closing
2010-12-14 01:16:20 +01:00
Christian Dywan
54971fd8ae
Make sure minimized tabs show up in Tab Panel
2010-12-11 20:31:18 +01:00
André Stösel
aadfd1e289
Switch to newest tabs with Ctrl+1 and Ctrl+2
2010-12-12 00:36:33 +01:00
Christian Dywan
613e78a951
Be more careful about consecuitve spaces in styles
2010-12-12 00:36:32 +01:00
Paweł Forysiuk
7bd0683869
Omit spaces and comments in user stylesheets
...
This fixes parsing breaking due to comments.
Further more it noticibly reduces the size of stylesheets.
2010-12-07 01:43:27 +01:00
André Stösel
cb5bdb8646
Resize History List based on the requested size
2010-11-23 23:22:47 +01:00
Paweł Forysiuk
b26df3af22
Remove unused kind_name variable in addons_uri_install
2010-11-10 00:34:31 +01:00
Paweł Forysiuk
2feb127e4b
Reword userstyle/ script install message in infobar
2010-11-09 23:22:34 +01:00
Paweł Forysiuk
91390db88c
Implement infobar for easy userscript/ style install
2010-11-07 23:58:26 +01:00
Paweł Forysiuk
96a276219a
Handle multi-line -moz-document blocks
2010-11-05 23:27:57 +01:00
Christian Dywan
34a3c307b5
Properly omit quotes from -moz-document domain
2010-11-04 19:03:49 +01:00
Paweł Forysiuk
53a205be4d
Handle single, double and absent quotes in -moz-document
2010-11-03 00:12:05 +01:00
Paweł Forysiuk
eae7ec4ac3
Recognize -moz-document domain in user stylesheets
2010-11-01 19:35:29 +01:00
Christian Dywan
ed6d44df5f
Use function to access browser settings an panel
2010-11-01 16:47:32 +01:00
Christian Dywan
560ad66d48
Add 'Identify As' button to Statusbar Features
2010-10-31 21:24:34 +01:00
Christian Dywan
b86b5056f8
Remove External Applications extension
2010-10-24 21:06:28 +02:00
Christian Dywan
c78c982613
Mention Ctrl+Tab in description of History List
...
Otherwise people don't understand how to use it.
2010-10-22 21:50:20 +02:00
Christian Dywan
68c12e950e
Slice allocations in addons, net, scrolled, transferbar
2010-10-21 21:09:01 +02:00
Christian Dywan
936758afdc
Add translation comments to 'History' and 'Form History'
2010-10-21 21:09:00 +02:00
Christian Dywan
b25f27cd66
Add static keywords, fix #ifdefs and spurious lines
2010-10-20 23:48:36 +02:00
Paweł Forysiuk
30f3dc0461
Clean up redundant item lists from addons helpers
2010-10-20 23:47:14 +02:00
Christian Dywan
ce64fd3e25
Add item to clear Form History database
2010-10-17 23:11:50 +02:00
Christian Dywan
d73b471ec4
Implement sokoke_register_privacy_item facility
...
The new function allows registering callbacks which clear data,
with a name and label so they show up in the Clear Private Data
dialogue and the chosen items are saved.
The old enumeration still keeps history, trash and the flag
whether to clear when Midori quits.
2010-10-17 22:48:32 +02:00
Christian Dywan
52d7a43e28
Don't use "path" setting in web cache to create the folder
2010-10-14 22:20:21 +02:00
Christian Dywan
ab414bc251
Remove web cache path and size settings
2010-10-12 00:25:49 +02:00
Christian Dywan
e74f89f8c2
Remove 'filename' argument from sokoke_spawn_program
2010-10-10 13:27:06 +02:00
Christian Dywan
1e49e9f95c
Don't use a custom stock icon for Cookie Manager
...
Due to the change of the stock icon names in GTK+ 2.22 the
stock item trick doesn't work anymore. Using the authentication
icon directly is good enough.
2010-10-05 21:43:34 +02:00
Christian Dywan
2cf3c2f5b0
Fix removal of tabs from Tab Panel treeview
2010-10-05 21:43:34 +02:00
Christian Dywan
5a0fc37d2f
Don't use the deprecated GTK_IN_DESTRUCTION flag
...
As a workaround, the browser now sets its own flag.
2010-10-05 00:04:28 +02:00
Christian Dywan
195c5191ef
Showing the (feed) panel needs to be a GtkWidget*
2010-09-12 00:59:24 +02:00
Christian Dywan
40dc38fd21
Implement and use KATZE_ARRAY_FOREACH_ITEM
...
Iterating an array by a GList is considerably faster than
continuously retrieving items, however it is also a lot
more complicated. So the new macro takes care of that and
uses a new semi-private function to avoid copying the list.
Note that the macro can't be nested, which basically isn't
useful in practise anyway.
2010-09-12 00:59:24 +02:00
Christian Dywan
3b4ae37664
Always free uri of the web view after applying addons
2010-09-01 23:56:03 +02:00
Paweł Forysiuk
f7a6011d1b
Provide a context menu for scripts and styles
2010-09-01 22:39:09 +02:00
Paweł Forysiuk
8448eabd26
Add button to open folder of scripts/ styles
2010-09-01 22:28:32 +02:00
Paweł Forysiuk
65338e5ab0
Remove button labels and separator from addon toolbar
2010-09-01 22:08:21 +02:00
Paweł Forysiuk
d7b68b9d94
Add button to open addon in text editor
2010-08-30 00:59:57 +02:00
Paweł Forysiuk
ce56f60ccd
Show addon filename and/ or description in tooltip
2010-08-29 23:49:38 +02:00
Paweł Forysiuk
1640aedd44
Make addons delete confirmation dialog more readable
2010-08-29 23:49:38 +02:00
Paweł Forysiuk
dc90ad18e9
Provide gui dialog for adding addons to user directories
2010-08-28 02:14:29 +02:00
Paweł Forysiuk
eee7cbcff9
Add button for deleting user addons
2010-08-28 01:59:54 +02:00
Paweł Forysiuk
49d249e6e1
Show full path to addon in tooltips
2010-08-28 01:46:17 +02:00
Christian Dywan
5a86115a9a
Rename 'Minimize Tabs' to 'Show Tab Icon Only'
2010-08-23 19:38:11 +02:00
Christian Dywan
99a9cfc34c
Show the Feed Panel after adding a new news feed
2010-08-23 19:38:11 +02:00
Christian Dywan
233ff2602d
Switch to Tab Panel after activating it for the first time
2010-08-23 19:38:11 +02:00
Paweł Forysiuk
ac1ba277e4
Clean up redundant user addons item list copies in helper functions
2010-08-22 03:08:46 +02:00
Paweł Forysiuk
8bea9b586d
Fix mistype in addons monitoring to enable watching userscript dirs
2010-08-22 03:07:39 +02:00
Christian Dywan
94fbf158f6
Remove conditional guards for sqlite
2010-07-17 21:31:29 +02:00
Dale Whittaker
0fcc460312
Handle news feeds with empty date and update them correctly
2010-07-15 00:06:15 +02:00
Christian Dywan
c3e145f540
Localize Vala extensions and mark strings for translation
...
The -include switch is passed to the compiler to work around
Vala failing to include gi18n.h first. This works for
clang and gcc at least.
2010-07-04 10:53:21 +02:00
Alexander Butenko
a04bf24b5e
Properly disconnect add-tab on destruction in adblock
2010-06-30 22:41:32 +02:00
André Stösel
07053d49a0
Re-implement History List extension in Vala
2010-06-30 22:27:52 +02:00
Alexander Butenko
e7e2181858
Escape special chars in formhistory array keys
2010-06-30 21:09:55 +02:00
Alexander Butenko
f759fe921a
Improve duplicate skipping logic in form history extension
2010-06-30 21:09:55 +02:00
Alexander Butenko
3d972f11e4
Skip '+' sign in adblock rules
2010-06-30 21:09:55 +02:00
Alexander Butenko
0d5a18b69c
Skip values from the inputboxes with disabled autocompletion
2010-06-30 21:09:55 +02:00
Alexander Butenko
896cc75f57
Don't inject autosuggest bits where we dont need it
2010-06-30 21:09:55 +02:00
Christian Dywan
a25553edba
Add Statusbar Clock extension to POTFILES.in
2010-06-26 22:11:13 +02:00
MonkeyOfDoom
09af931756
Disconnect tabs_minimized_add_tab_cb when deactivating
2010-06-19 22:37:46 +02:00
Alexander Butenko
633b7ed294
Inline functions in adblock for 0.5 percent speedup
2010-06-19 16:22:16 +02:00
MonkeyOfDoom
89e72b73d3
Add extension 'Minimize new Tabs'
...
Once it is activated the extension will minimize all newly opened
tabs by default.
2010-06-19 00:32:05 +02:00
MonkeyOfDoom
8cbdd61c97
Add extension 'Copy Addresses of Tabs'
...
The extension adds a menu item to copy the addresses of all tabs
to the clipboard.
2010-06-19 00:30:46 +02:00
André Stösel
0aa24037bd
Connect tab switcher to child web view key events
...
The parent view will do its best to forward the focus to the
child web view, so the tab switcher should listen to it.
2010-06-01 22:16:47 +02:00
Christian Dywan
c571a6394f
Don't pass around KatzeNet instances anymore
...
The KatzeNet is always a singleton, no need to pass it around.
2010-05-25 19:03:01 +02:00
Enrico Tröger
bab6124cff
Guard debug variables in Adblock with G_ENABLE_DEBUG
2010-05-15 01:06:17 +02:00
Christian Dywan
25a08b36ee
Move construction of ExternalApplications inside the class
2010-05-15 01:06:17 +02:00
Christian Dywan
9241afa0db
Implement FTP support in External Applications
...
For the moment 'gftp' is hardcoded for ftp://.
2010-05-13 01:06:58 +02:00
Arno Renevier
7c0e58a835
Refactor userscripts and userstyles as an extension
2010-05-02 11:53:05 +02:00
Christian Dywan
6a5585254a
Implement gesture button setting and default to right
2010-04-29 02:31:11 +02:00
Christian Dywan
43baf4706a
Tweak mouse gestures to properly support right button
...
We need to be more considerate when to indicate that button
signals were 'handled' and we need to popup the context menu
if we override the default handler.
2010-04-29 02:22:12 +02:00
Christian Dywan
0533e67902
Implement External Applications extension
2010-04-28 23:48:47 +02:00
Christian Dywan
3aad0189c4
Remove incomplete Javascript extension
2010-04-27 23:54:38 +02:00
Christian Dywan
7a7f4c6a44
Provide midori.vapi for App, Browser, Extension and WebSettings
...
With this API description extensions can be written in Vala. Mind
it is not complete yet, missing interfaces can be added later.
2010-04-27 23:49:45 +02:00
Christian Dywan
ccb60bb8d4
Only pick up .vala files if Vala is available
2010-04-25 23:39:00 +02:00
Christian Dywan
7e5dd2db32
Minimal support for tests and extensions in Vala
2010-04-25 00:11:57 +02:00
Christian Dywan
779c582058
Guard WebKitDownload to WebKitGTK+ 1.1.2
2010-04-24 23:59:07 +02:00
Christian Dywan
efc5252048
Revise MIDORI_ADBLOCK so 1 is parsing and 2 is timing
...
Huge amounts of console output affect performance, so timing
should be taken separately.
2010-04-10 00:58:15 +02:00
Christian Dywan
63a5eeb0f0
Output adblock debug if variable MIDORI_ADBLOCK set
...
If Midori is compiled with full debug mode, and the environment
variable MIDORI_ADBLOCK is set, Adblock will output a lot of
debugging information.
This spares testers from editing code. grep is recommended.
2010-04-08 21:39:05 +02:00
Christian Dywan
95358acc82
Handle https:// URIs in Adblock properly
...
We mark URIs as 'disabled' by replacing the : with a -. This
fails if there is an https:// URI and we want to restore it.
For clarity, the macros ADBLOCK_FILTER_SET and
ADBLOCK_FILTER_IS_SET are introduced to handle the details.
2010-04-06 02:41:29 +02:00
Arno Renevier
dc90c7f093
Use midori_view_get_web_view in extensions
2010-03-31 00:18:42 +02:00
Dale Whittaker
9607f2107e
Take text from each feed element for tree and web view
2010-03-27 14:22:31 +01:00
Dale Whittaker
3f8b34853d
Update year in Copyright headers
2010-03-25 23:06:38 +01:00
Dale Whittaker
181d62dc01
Don't skip CDATA section nodes in feeds
2010-03-25 23:01:46 +01:00
Dale Whittaker
a8c055bdbc
Ignore navigation for clicks in news feeds
2010-03-23 20:27:00 +01:00
Christian Dywan
6496dd5403
Update tab panel colours in icon callback
...
Since Colorful Tabs now updates colors in the icon callback,
we also need to update in the icon callback.
2010-03-22 22:34:03 +01:00
Arno Renevier
9b9440d49e
Use a 60 second timeout if format has no seconds
2010-03-22 21:52:06 +01:00
Samuel Creshal
3cbce9896b
Implement page icon based tab colors
...
Colorful Tabs now uses the icon of a page as the basis for the
tab color, if it has one, otherwise falls back to the previous
address based hash.
The forground color is also adjusted for dark colored tabs.
2010-03-19 21:10:22 +01:00
Arno Renevier
0d27d6f17d
Implement Status Clock extension
2010-03-19 20:50:34 +01:00
Samuel Creshal
8f23dcfd33
Disconnect tab callback when disabling Colorful Tabs
2010-03-04 02:08:49 +01:00
Peter de Ridder
6ad713c6d5
Look for the formhistory javascript dynamically
2010-02-16 00:59:42 +01:00
Peter de Ridder
b993cdc553
Add win32 specific linker flags for Midori extensions
2010-02-16 00:59:42 +01:00
Christian Dywan
c21807bc4a
Use g_unlink for G_FILE_CREATE_REPLACE_DESTINATION with Glib < 2.20
2010-02-12 02:19:54 +01:00
Christian Dywan
8414836c76
Remove conditionals to disable Toolbar Editor on Hildon
2010-02-06 17:37:15 +01:00
Christian Dywan
458252d053
Localize 'Block image' and 'Block link' menuitems in adblock
2010-02-06 17:32:09 +01:00
Alexander Butenko
c550d36649
Implement an 'Edit rule' dialogue when blocking images
2010-02-03 18:58:07 +01:00
Alexander Butenko
27653d6670
Only connect liststore after populating the model with filters
...
We don't want to reload the rules for each row.
2010-02-03 18:30:48 +01:00
Alexander Butenko
de7818b7aa
Don't cache local adblock filters, and remove disabled filter files
2010-02-03 18:26:44 +01:00
Alexander Butenko
ce43fb3c03
Rebuild formhistory script on reload and do not leak the script
...
1. Don't leak the script in formhistory_window_object_cleared_cb ()
2. Disconnect add-tab signal in the right place
3. Rebuild the base javascript code on extension reload
2010-02-02 21:32:20 +01:00
Alexander Butenko
62dac745d6
Rebuild adblock js after download a new filter file
2010-02-02 21:26:05 +01:00
Alexander Butenko
7b42792caf
Prevent styles with a "'" character from breaking adblock
2010-01-26 22:07:57 +01:00
Enrico Tröger
8f37e3802e
Always expand rows when trying to restore the selection
2010-01-20 07:19:11 +01:00
Enrico Tröger
3af420622c
Restore selection in cookie manager after deleting items
2010-01-19 06:53:48 +01:00
Alexander Butenko
97a5eb0df2
Read cache asynchronously, use GOutputStream, plug a leak
...
1. We are now reading from the cache asyncronously. Fixing UI freezes.
2. Cache writing switched to GOutputStream. One open/ close per file
3. Plugged a leak of cache headers in web_cache_message_rewrite ()
4. We don't need the URI in web_cache_mesage_got_headers_cb ()
2010-01-17 22:56:41 +01:00
Alexander Butenko
57865955dc
Simpler element hiding and some adblock optimizations
...
1. Less hungry and simpler blocked element hider
2. We are now also adding a context menuitem for uris in
preparation for creating rules from the web inspector
3. Removed old hack for blocked element hider
4. Element hider javascript fixes
5. Unit test for small sized rules
6. Removed unneeded WebKitWebView casts
2010-01-17 20:04:17 +01:00
Enrico Tröger
e6163a761f
Only define adblock_prepare_urihider_js() if it is used
2010-01-15 07:07:00 +01:00
Alexander Butenko
9b01e48975
Tell the soup message it was finished to allow it to release memory
2010-01-14 02:23:00 +01:00
Alexander Butenko
bb4c381b43
Use a script to hide images and frames that are blocked
2010-01-14 02:19:38 +01:00
Enrico Tröger
27567de620
Guard image with #define to prevent unused variable warnings
2010-01-14 02:01:30 +01:00
Alexander Butenko
4dae65d802
Speedup adblock by removing greedy regex if we have 1 or 2 signatures
2010-01-14 01:52:43 +01:00
Christian Dywan
d536d90d33
Do not call xmlCleanupParser after parsing news feeds
...
This function is an aggressive means of releasing memory that may
leave libxml in an unusable state.
2010-01-13 06:52:42 +01:00
Alexander Butenko
2832704f7d
Implement "autosuggest" in form history and bump the version
...
1. Honor non W3C but commonly used "autosuggest" attribute.
2. Bump version to 1.0. The plugin can be considered stable.
2010-01-10 22:57:17 +01:00
Alexander Butenko
089315bcaa
Speedup adblock with blacklists and reorganize unit tests
...
1. Blacklist for pattern matching. 1 regexp has more than 1
signature. If the 1st match failed, there is no need to
match with the same regex a second time if the signature matched.
This gives us 20% speedup.
2. Cleanup for performance tests.
3. Tests reorganized. now we are checking pattern validation
plus performance timing. Simlifies testing.
4. Bump version to 0.5. The next patch will add option matching
so we will bump it to 1.0 once it is tested.
2010-01-10 22:52:06 +01:00
Enrico Tröger
ca73b5fede
Allow DND also for cookie items by using the value of the parent node
2010-01-08 00:16:56 +01:00
Enrico Tröger
e67d87247a
Align domains with and without leading dots equally
2010-01-08 00:16:56 +01:00
Enrico Tröger
170163cbab
Implement cm_skip_leading_dot() to avoid code duplication
2010-01-08 00:16:56 +01:00
Enrico Tröger
973c82fdae
Show some basic information in description box when domain is selected
2010-01-08 00:16:56 +01:00
Enrico Tröger
d7aa05b9ec
Implement cm_list_length() for faster list length computations
...
Since we only need to know whether the list of selected items
has 0, 1 or 2 or more items, it's enough to check for these 3 cases
2010-01-08 00:16:56 +01:00
Tsahee Zidenberg
e126271ad8
Disconnect add-browser callback when deactivating Colourful Tabs
2010-01-07 00:02:12 +01:00
Alexander Butenko
22f347ca38
Increase filter line buffer, revise css block matching, use strchr
2010-01-03 23:37:44 +01:00
Christian Dywan
7383a647c9
Use mnemonic _o instead of _l for 'Block image'
2010-01-02 22:04:50 +01:00
Christian Dywan
cf9dec176c
Refactor adblock_reload_rules to handle filters versus only custom
2010-01-02 21:34:17 +01:00
Alexander Butenko
b0de3f35df
Block and hide images by domain and relative path
2010-01-02 21:15:58 +01:00
Alexander Butenko
20059d74b9
Hide images blocked with 'Block image' via element hiding
2010-01-02 04:11:44 +01:00
Alexander Butenko
5452c7c71d
Implement 'Block image' menuitem in adblock, adding URIs to custom list
...
For now it only has effect after reloading the page.
2010-01-02 03:47:56 +01:00
Christian Dywan
fc7689f906
Move DNS prefetching into the core
...
The feature is going to be included with WebKitGTK+ and
having it in the core allows us to prefetch bookmarks as well.
2010-01-01 18:16:55 +01:00
Enrico Tröger
6fe8a5e9ec
Allow selecting (and so deleting) multiple cookies at once
2009-12-30 23:52:20 +01:00
Enrico Tröger
c91cc72505
Move code to delete selected item from button handler into separate function
2009-12-30 23:52:20 +01:00
Enrico Tröger
b98064d0b6
Handle Delete key for the selected item in the Cookie Manager
2009-12-30 23:52:20 +01:00
Enrico Tröger
9183f8e16d
Connect callbacks for gtk_widget_destroy where signature differs
...
Apparently dependent on architecture and compiler, mismatching
callback signatures can cause segmentation faults.
2009-12-29 23:49:10 +01:00
Enrico Tröger
d0a52ac09c
Use g_strndup as opposed to strndup in Adblock
2009-12-28 23:59:54 +01:00
Alexander Butenko
33565cc2f3
Check whether the header file was created and mkdir the parent folder
...
When the web cache folder is deleted, the filenames passed to callbacks
may not be updated, so trying to write headers results in a crash.
We need to make sure we only write after opening the file properly.
2009-12-27 22:04:27 +01:00
Alexander Butenko
138e837457
Free the URI when the file was already cached
2009-12-26 15:20:57 +01:00
Alexander Butenko
06f5306d56
Fix a typo when using g_access in Web Cache
2009-12-23 23:39:54 +01:00
Alexander Butenko
05601be635
Use id to avoid inserting adblock/ form history style more than once
2009-12-23 15:35:09 +01:00
Alexander Butenko
9ab1040e5f
Don't use titles for adblock styles, WebKit only loads one with a title
2009-12-22 01:05:54 +01:00
Alexander Butenko
1c424106f1
Don't test file existence in adblock, katze_mkdir and check download status
...
It is enough to see if g_fopen fails, thus we don't need g_access
to test file existence additionally.
katze_mkdir_with_parents is optimized for existing folders.
We need to check the status, to see if file downloads are finished.
For Windows, we need to use g_strndup instead of strndup.
2009-12-22 00:07:39 +01:00
Alexander Butenko
61266c26ec
No need to g_access when checking cached file, fopen is enough
2009-12-21 23:48:51 +01:00
Alexander Butenko
dc288dd3c3
Don't use g_access, use the return value of g_file_get_contents
2009-12-21 23:27:00 +01:00
Alexander Butenko
49d452a438
Eval form history script so it applies to the right frame
...
webkit_web_view_execute_script always works on the web view.
2009-12-19 20:22:23 +01:00
Alexander Butenko
9af30a1eda
Optimize and clean-up form history
...
Switch from g_file_test() to g_access()
Initialize suggestions once the DOM is ready and only once
No need to handle WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED
[JS] Hide suggestions if search pattern was cleared
[JS] Human usable up/ down navigation in the suggestion window
Reusing a single suggestion window introduced a regression.
Suggestions were filling into the wrong editbox if there was more
than 1 on the page.
Some comments fixed and style clean-ups
Removed dead code
2009-12-19 11:28:46 +01:00
Alexander Butenko
045cc81b45
Use g_access instead of g_file_test consistently
2009-12-19 11:28:46 +01:00
Alexander Butenko
8c724eccd9
Use g_access in web cache, only SoupSession, pass filenames
...
Using g_access instead of g_file_test is a lot faster and avoids
big delays when accessing the disk.
Using only the SoupSession without resource-request-starting simplifies
the code. So offline mode is not an option for the moment.
Pass filenames directly to speed up lookups.
2009-12-18 21:21:56 +01:00
Alexander Butenko
12ed2da768
Refactor Adblock to use simpler checks with optional pattern matching
...
The style is only added once. Match checks are simpler so they can
be a lot faster. And slow pattern matching is optional, albeit
it currently is hardcoded in the source.
2009-12-18 21:21:56 +01:00