1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-23 02:32:10 +02:00
Commit Graph

176 Commits

Author SHA1 Message Date
David Rosca
2d6ba21c03 AdBlockIcon: Set minimum size
See #1655
2015-05-28 11:15:51 +02:00
David Rosca
458c131170 AdBlockRule: Disable copy
Closes #1654
2015-05-28 11:15:43 +02:00
Jonathan Hooverman
610dd28ae1 Removed outdated AdBlock Fanboy subscription, closes #1637 2015-04-23 20:23:07 +02:00
David Rosca
8d7cfb0e2a Remove some Qt 4 specific code 2015-02-26 12:17:47 +01:00
David Rosca
60b2386a6e Initial port to QtWebEngine
This is first quick port to QtWebEngine, most of advanced features
are not working yet. Please read README.

For now, it will use separate profile directory as well as browser
session, that means you can use both QtWebEngine and QtWebKit versions
at the same time.
2015-01-27 11:01:52 +01:00
Jonathan Hooverman
fbcb3022ee ChinaList is deprecated and has been replaced by Easylist China
Fixes #1516
2014-11-05 12:53:34 +01:00
David Rosca
2ed002cb2a Fix build with Qt 4.7 2014-11-03 15:45:11 +01:00
David Rosca
a0dd1ddcb7 AdBlock: Use one cache for all subscriptions
Added new class AdBlockMatcher that holds the cache of
all subscriptions with rules.
This moves the matching logic from AdBlockSubscription into
separate class.
It also fixes issue that CSS exception rules weren't able to
affect rules from different subscription.
2014-10-31 15:39:02 +01:00
David Rosca
e5065185fd AdBlock: Add DuckDuckGo ad whitelist rules to custom list
Those rules cannot be deleted, but can be disabled.
Please consider not disabling those rules. Thanks!
2014-10-14 17:05:14 +02:00
David Rosca
a61e3ff0ad AdBlockTree: Fixed coloring CSS exception rules
CSS exception rules are now green (as exceptions) instead of
blue (as CSS rules)
2014-10-13 17:02:12 +02:00
David Rosca
6ae0109115 AdBlockRule: Add copy() method
Faster method to copy rule than parse again the filter.
2014-09-16 10:38:28 +02:00
David Rosca
e8cddd16ea AdBlock: Add support for exception css rules
Closes #1446
2014-09-16 09:39:25 +02:00
David Rosca
ed866dc9a4 AdBlock: Add support for parsing CSS Element hiding exceptions
Those rules are however not supported at the moment.
2014-09-16 00:37:13 +02:00
David Rosca
6dcf8c598a AdBlock: Reload global user stylesheet after disabling/enabling AdBlock
It was needed to restart the browser to completely disable / enable
AdBlock.
2014-09-15 23:43:47 +02:00
David Rosca
c4e0646915 [AdBlock] Add "Other..." entry in AddSubscription dialog
To make it less confusing how to add a subscription that is not
listed in known subscriptions.
2014-07-08 19:08:28 +02:00
S. Razi Alavizadeh
7fc0c8d06d [RTL] Force AdBlockTreeWidget and treeTags to be as LTR widgets. 2014-05-29 01:08:56 +04:30
David Rosca
9df585a8f8 [AdBlockSubscription] Fix infinite loading of subscription when cannot write to file 2014-04-16 17:15:55 +02:00
David Rosca
8a0b6f0d10 [Build] Fixed building with Qt4 2014-04-13 12:24:37 +02:00
David Rosca
eb8ae20cc1 [AdBlockRule] Improve performance of rule matching with QStringMatcher
Use QStringMatcher instead of QString::contains in RegExpFilters.
QStringMatcher internally uses fast Boyer-Moore algorithm.
2014-04-13 11:49:39 +02:00
nowrep
463fa96e04 [Build] Fixed building with Qt5 2014-04-06 13:50:09 +02:00
nowrep
db664184d0 [AdBlock] Improved performance of loading rules
Don't use regexps for parsing rules.
Added benchmark for loading subscriptions

Before:

********* Start testing of AdBlockParseRule *********
Config: Using QTest library 4.8.6, Qt 4.8.6
PASS   : AdBlockParseRule::initTestCase()
RESULT : AdBlockParseRule::parseEasyList():
     596.3 msecs per iteration (total: 2,982, iterations: 5)
PASS   : AdBlockParseRule::parseEasyList()
PASS   : AdBlockParseRule::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of AdBlockParseRule *********

After:

********* Start testing of AdBlockParseRule *********
Config: Using QTest library 4.8.6, Qt 4.8.6
PASS   : AdBlockParseRule::initTestCase()
RESULT : AdBlockParseRule::parseEasyList():
     481.8 msecs per iteration (total: 2,409, iterations: 5)
PASS   : AdBlockParseRule::parseEasyList()
PASS   : AdBlockParseRule::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of AdBlockParseRule *********
2014-04-06 13:36:42 +02:00
nowrep
6874df57d7 [Coding Style] Edited coding style (use linux style brackets)
Linux style brackets are now used also for source files.
One line blocks can now be without brackets.

Example:

if (test)
    foo();

Multi-line if statements are now written with conditionals (||, &&, ...)
at the end of line. The last line of if body does not ends with closing
bracket, instead the closing bracket is written on separate line.
One line blocks in multi-line if statements should not be without brackets.

Example:

if (test ||
    test2 &&
    test3
   ) {
    foo();
}

[ci skip]
2014-04-05 14:53:45 +02:00
nowrep
e6baa54179 [Qt5] Fixed QIODevice::not open warning message 2014-03-16 14:30:59 +01:00
nowrep
fe0b03fdb7 Include QDebug in qzcommon.h
It's annoying to always include it just to remove a moment after...
2014-03-16 13:22:41 +01:00
nowrep
493edfc655 [AdBlockRule] Save some memory with dynamic allocation and removing member variables
m_regExpStrings are now also dynamically allocated only for RegExp rules
m_cssSelector is now merged with m_matchString (m_matchString was empty
for Css Rules)
2014-03-12 13:25:12 +01:00
nowrep
969f262cf8 [DataPaths] Don't add trailing slash to paths
Qt API is not adding trailing slashes to dir paths either.
2014-03-09 22:17:13 +01:00
nowrep
214279e3bb [DataPaths] Added new class DataPaths
This class holds all paths now (instead of MainApplication)
Renamed ProfileUpdater -> ProfileManager
ProfileManager is now responsible for all operations with profiles
2014-03-09 21:51:42 +01:00
nowrep
985db8a35d [AdBlockManager] Use Q_GLOBAL_STATIC for AdBlockManager 2014-03-09 12:54:23 +01:00
nowrep
a3c3dead87 [CodeCleanup] Get rid of Qz::AppMessage enum 2014-03-09 12:54:07 +01:00
nowrep
417da146e5 [QzTools] Make QzTools class and export only the class
Also fixed building on Windows
2014-03-07 22:54:50 +01:00
nowrep
5e4f703ef2 [Code] Renamed qz_namespace.h to qzcommon.h 2014-02-26 20:03:20 +01:00
nowrep
b6181315f7 [AdBlock] Don't add domain css rules to sites whitelisted with $document option
Closes #1246
2014-02-25 12:12:27 +01:00
nowrep
afae00e4a2 [Cleanup] Rename export macro to just QUPZILLA_EXPORT 2014-02-19 22:12:32 +01:00
nowrep
404fa68a1b [Cleanup] Renamed QupZilla class to BrowserWindow 2014-02-19 22:07:21 +01:00
nowrep
363cd01016 [AdBlockDialog] Show error if subscription can't be loaded 2014-02-14 10:38:43 +01:00
nowrep
8f5c422759 [AdBlock] Fixed incorrect handling of non-trivial exception rules
News are loading fine now on http://abcnews.go.com/
2014-02-05 14:28:44 +01:00
nowrep
b4377767c0 [AdBlockTreeWidget] Greatly speedup loading rules from subscriptions
Don't use per-pixel scrolling. For some reason, it massively slows
rendering of TreeWidget

See #1169
2014-01-25 21:13:14 +01:00
nowrep
4a7423b02f [AdBlockDialog] Change AdBlockDialog to QWidget
Closes #1169
2014-01-25 20:06:08 +01:00
nowrep
8eea60fe6a [AdBlockDialog] Options button is now QPushButton
Qt renders better down icon indicating the button has menu
2014-01-22 15:31:42 +01:00
Jonathan Hooverman
d917f43cf0 Updated copyright year to 2014 2014-01-11 16:11:42 +01:00
nowrep
da15e5868d [CodingStyle] Don't use references when assigning to local variable
Let the compiler do the optimization
2013-12-30 13:43:48 +01:00
nowrep
5fbf11c8f2 AdBlock: Fix issue when enabling rule didn't work until restart.
When attempting to enable rule that was already disabled on startup,
it won't have an effect until completely restarting the browser.
2013-11-04 16:06:07 +01:00
nowrep
2abefeaf79 AdBlock: Added option to use full EasyList subscription
Instead of downloading only the essential half of EasyList,
user can now choose to download and use the full list.
This restriction is still here because the other half of EasyList
is full of domain restricted rules that are using RegExps in our
implementation, and thus being slow.
2013-11-03 16:04:38 +01:00
nowrep
d73d4f7ad7 AdBlockSearchTree: Save few string allocations on searching 2013-11-03 14:49:58 +01:00
nowrep
511ef3c346 AdBlockSubscription: Don't allocate search tree on heap. 2013-11-03 14:29:23 +01:00
nowrep
c07e9cff3c Typo s/childs/children 2013-11-03 14:22:27 +01:00
nowrep
3159407c18 AdBlock: Use fast search tree for basic rules
For all rules that can be matched with simple string-contains match,
use fast tree searching.
Only in EasyList, there is 6000 those rules.
It improves overall performance of AdBlock matching by 5 - 10 times,
at the cost of memory.
The tree needs about 1.5MB memory for 1000 rules, which is a great
tradeoff for such big performance improvement.
2013-11-02 17:43:18 +01:00
nowrep
22b8103fb4 AdBlockManager: Match always by lower case strings 2013-11-02 17:42:20 +01:00
nowrep
4a85e59778 AdBlockRule: Add new rule type Invalid for invalid rules 2013-11-02 17:41:51 +01:00
Jonathan Hooverman
4848def230 Modified copyright year 2013-07-11 16:21:57 +02:00
S. Razi Alavizadeh
5ea3572368 [Windows][Tests] Fixed compile issues on Windows. 2013-06-19 02:07:46 +04:30
nowrep
58c0c77479 [GreaseMonkey, AdBlock] Use 16x16 icons in statusbar 2013-06-03 15:50:57 +02:00
nowrep
a65d7b00b3 [Acid3] Make Acid3 test pass with enabled AdBlock.
AdBlock element hiding rules are inserted into body element of
page. This does not like the Acid3 test.
2013-05-05 00:14:42 +02:00
nowrep
1b617068b2 [AdBlock] Fixed hiding rules when more than 5000 rules in subscription.
Closes #873
2013-05-02 21:01:17 +02:00
nowrep
621753ac1b [AdBlock] Added ABPindo (Indonesian) into known subscriptions. 2013-04-29 20:26:50 +02:00
nowrep
f09fc7fcec [AdBlock] Make it possible to remove EasyList.
Closes #534
2013-04-13 23:00:22 +02:00
nowrep
6c74289aaa [AdBlock] Added ChinaList into list of known subscriptions.
Closes #768
2013-03-10 00:37:35 +01:00
nowrep
5f5cf7417d [Code] Updated coding style with patched Astyle + normalized signals.
Code was formatted with patched astyle that correctly formats
foreach macro.
Normalize tool is now used to normalize all signal/slots signatures
to normalized format. It saves few reallocations on connections.
2013-03-06 09:08:29 +01:00
nowrep
9d6e34e3e5 [Code] Rewritten AdBlockRule to use enums for rule options.
Instead of using boolean variables for every option, use one QFlag
for options and second for exceptions.
2013-02-27 21:26:41 +01:00
nowrep
4d82e307ad [AdBlock] Download also whitelist rules from EasyList. 2013-02-27 19:51:34 +01:00
nowrep
7e6d619516 AdBlock: Greatly improves performance of regexp rules.
Regexp will be parsed into parts that can be used with
QString::contains for quick match. If url contains all parts,
real QRegExp matching is applied.

This speedup affects rules that are internally converted into
regexp, not AdBlock's regexp rules (but those rules are very rarely used
in subscriptions, so there's no need to optimise them)
2013-02-26 15:48:47 +01:00
S. Razi Alavizadeh
b52d150e7d [Mac] Small fixes in themes + fixed building
Theme: fixed color of statusbar
Building: fixed linking to CoreServices framework
QzTools: show correct version of Mac OS X
Code: coding style
2013-02-26 13:01:00 +01:00
nowrep
d885444501 [Code] Use QVector instead of QList for elements bigger than pointer. 2013-02-26 12:56:11 +01:00
nowrep
a25e189904 [AdBlock] Added debug output with ADBLOCK_DEBUG define.
It will print the time needed to load all rules and also
to block each url.
2013-02-26 12:29:46 +01:00
nowrep
9f226b9738 Significant memory savings in AdBlock (~ 30MB with just EasyList)
Even empty QRegExp can occupy a lot of space in memory, which can
grow into a big number with tens of thousands AdBlock rules.
QRegExp is now allocated with new, and only when really needed.
2013-02-26 10:45:33 +01:00
nowrep
bed43ed0c8 [Qt5] Use RegExp wrapper to take advantage of new regexp engine.
QzRegExp wrapper is using QRegExp directly on Qt 4 and
QRegularExpression (with PCRE engine) on Qt 5.
2013-02-24 10:57:58 +01:00
S. Razi Alavizadeh
72c66cb218 [Mac] RSSManager/AdBlockDialog documentMode was disabled and fixed double cursor problem. 2013-02-21 00:20:07 +03:30
nowrep
3b3e62cd76 [code] Explicitly set UTF-8 codec when using QTextStream.
Fixes encoding issues on Windows.

Closes #769
2013-02-20 19:50:59 +01:00
nowrep
e4ebeb3252 [Code] Use QString::SkipEmptyParts in QString::split. 2013-02-15 12:36:25 +01:00
nowrep
0a9f2ec4d6 Coding style. 2013-02-08 12:10:12 +01:00
nowrep
9c31ff875e [adblock] Added RU Adlist into known subscriptions. 2013-02-07 11:12:54 +01:00
nowrep
3b301e8446 [adblock] Added support for $image rules.
It tests whether the url ends with .jpg/.jpeg/.gif/.png
2013-02-07 11:04:09 +01:00
nowrep
67a08d237d [code] Using QVariant::fromValue instead of obsolted qVariantFromValue. 2013-02-05 22:33:54 +01:00
nowrep
e28f9d438e [Code] qz_ prefixed functions moved to QzTools namespace. 2013-01-22 19:04:22 +01:00
nowrep
9f2de4b73a [Code] Made all helper functions static. 2013-01-22 18:12:21 +01:00
nowrep
2f764f0a25 AdBlock: Slightly edited behavior of showing menu
Don't show blocking options in menu on sites that AdBlock
cannot run.
eg. qupzilla:, file:
2012-12-22 12:14:55 +01:00
nowrep
cadfd63b1e Fixed rendering pages with Qt 5
Filtering "\" from AdBlock CSS rules.
2012-12-20 22:57:58 +01:00
nowrep
89e091f09c Qt5: Main code has been edited to support both Qt4 and Qt5
It doesn't include plugins yet.
Even thought the app can be built with Qt5 now, it won't run.
I am still working on a fix.
2012-12-20 14:45:35 +01:00
Franz Fellner
37da53731c Don't crash on adblock menu when adblock is disabled. 2012-10-27 13:36:48 +02:00
nowrep
528f398cbe Using QLatin1String and QLatin1Char now everywhere
- it saves few unnecessary allocations
2012-09-04 12:42:45 +02:00
nowrep
1afc663e91 GreaseMonkey: Use QLatin1String and QLatin1Char in script parsing 2012-09-04 11:29:47 +02:00
nowrep
40a335bc1f AdBlock: Improved string performance when parsing rules
- using QLatin1String and QLatin1Char
2012-09-04 11:24:41 +02:00
nowrep
b2181f0bab Coding style: Use empty QString() constructor instead of "" everywhere 2012-09-02 11:42:41 +02:00
nowrep
b442492c27 Fixed small bug with domain matching
- accounts.youtube.com won't be matched by s.youtube.com anymore
- fixes ||s.youtube.com^ AdBlock rule matching anything from
  https://accounts.youtube.com
2012-09-01 11:41:12 +02:00
nowrep
8d2391da6f Moved scheme handlers into own directory network/schemehandlers 2012-08-23 11:36:36 +02:00
nowrep
06c5118e6f AdBlock: New options in AdBlock menu to disable it for domain
- and also "only for this page"
2012-08-09 19:02:25 +02:00
nowrep
435ab60e79 AdBlock: Fixed $subdocument matching.
- also improved a little blocked element's placoholders hiding
2012-07-13 14:12:48 +02:00
nowrep
14e0040a9f AdBlock: Fixed $third-party option when Referer header is empty
- should fix a lot of false positives with $third-party rules

see #444
2012-07-13 11:04:14 +02:00
nowrep
f70d77a413 AdBlock + GreaseMonkey: Fixed downloading UTF-8 subscriptions / scripts 2012-07-12 15:14:02 +02:00
nowrep
014fa12159 Added GreaseMonkey + PIM plugins 2012-07-11 18:30:00 +02:00
nowrep
ac36261549 Plugins: Calling unload() on app shutdown. 2012-07-08 14:03:50 +02:00
nowrep
7fee7053d4 Plugins: New method in API (createRequest in network manager) 2012-07-08 00:15:03 +02:00
nowrep
19f34ecd4c Fixed potentional issue with starting external download manager 2012-07-06 20:22:08 +02:00
nowrep
c0c996dbbd Fixed building with Qt 4.7 2012-07-06 16:52:27 +02:00
nowrep
d8e0556d3e AdBlock: Changes to element blocking rules are now instant.
- instead of need to reload settings / restart browser
2012-07-04 17:53:49 +02:00
nowrep
2dc0785aff AdBlock: Support for $elemhide and $document exception rules
- with @@||qupzilla.com^$document you can completely disable
  AdBlock from running on qupzilla.com site
2012-07-04 16:00:53 +02:00
nowrep
138ffdfe93 AdBlock: Better and faster hiding placeholders of blocked elements
- also Ctrl+C in AdBlock tree now copies url filter into clipboard
2012-07-04 10:08:55 +02:00
nowrep
adac699cc9 AdBlock: Subscription downloading now follows redirects.
- fixed related possible crash
2012-07-03 21:54:04 +02:00
nowrep
608135ac95 AdBlock: Using QString::endsWith in domain matching
- instead of QString::contains
2012-07-02 09:58:56 +02:00
nowrep
c73c9820e4 AdBlock: Fixed domain match rules ||domain.com^
- it should also match something.domain.com
2012-07-02 01:40:32 +02:00