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

30 Commits

Author SHA1 Message Date
David Rosca
88c5b271e2 AdBlockRule: Add support for script, stylesheet and object-subrequest 2015-10-05 20:43:05 +02:00
David Rosca
e91d6482d1 Bring back AdBlock blocking network requests 2015-10-05 20:16:51 +02:00
David Rosca
458c131170 AdBlockRule: Disable copy
Closes #1654
2015-05-28 11:15:43 +02: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
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
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
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
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
5e4f703ef2 [Code] Renamed qz_namespace.h to qzcommon.h 2014-02-26 20:03:20 +01:00
nowrep
afae00e4a2 [Cleanup] Rename export macro to just QUPZILLA_EXPORT 2014-02-19 22:12:32 +01:00
Jonathan Hooverman
d917f43cf0 Updated copyright year to 2014 2014-01-11 16:11:42 +01:00
nowrep
4a85e59778 AdBlockRule: Add new rule type Invalid for invalid rules 2013-11-02 17:41:51 +01:00
S. Razi Alavizadeh
5ea3572368 [Windows][Tests] Fixed compile issues on Windows. 2013-06-19 02:07:46 +04:30
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
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
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
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
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
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
699f309ffd AdBlock: Disabling rules now persist through subscription updates 2012-07-01 20:11:37 +02:00
nowrep
a37b29b275 Using QString::left instead of QString::mid(0, ) 2012-07-01 18:11:43 +02:00
nowrep
1b000812b9 AdBlock: Improved performance in 2 types of rules
- ||domain.com^ and anything| rules are now using string matching
- edited updating EasyList to download more rules
   * only 50 rules are slow now (use regexp) in EasyList
2012-07-01 14:44:01 +02:00
nowrep
6228082225 AdBlock: Support for $object $subdocument and $xmlhttprequest options
- also there's now support for blocking all netscape plugins,
  not just flash plugin
2012-07-01 12:07:00 +02:00
nowrep
c6ccd6bd1f AdBlock: Added full support for $third-party option
- checking Referer of network request to determine
  if it is third party request or not
   * matching is performed on second-level domains
     (there is minor issue with it in Qt < 4.8)
2012-06-28 01:41:01 +02:00
nowrep
847469e0be AdBlock: Support for element hiding rules & improved performance
- improved performance with not using regexps when not necessary
- added support for element hiding even with domain restrictions
- almost all types of rules are supported now
   * exceptions are only some special cases when rule has
     unssuported options (part of rule after $ character)
   * those rules are ignored
2012-06-25 16:07:25 +02:00
nowrep
a0b9c0fc69 Fixed building on Windows + whole compilation is now faster. 2012-02-29 18:33:50 +01:00
nowrep
9c789792f4 Rearranged directory structure. All sources are under src/ dir now.
- updated Italian homepage translation
2012-02-23 19:18:08 +01:00