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
nowrep
e06517bdd4
Added EasyPrivacy into known third party subscriptions
...
- also fixed crashes when not having adblock enabled on startup
see #329
2012-07-01 20:38:37 +02:00
nowrep
699f309ffd
AdBlock: Disabling rules now persist through subscription updates
2012-07-01 20:11:37 +02:00
nowrep
dd170f653f
Using QChar instead of 1-char QString everywhere
2012-07-01 18:50:18 +02:00
nowrep
fbc44d2889
AdBlock: Show correct subscription when opening dialog with rule
...
- from AdBlock context menu or icon
2012-07-01 18:13:49 +02:00
nowrep
a37b29b275
Using QString::left instead of QString::mid(0, )
2012-07-01 18:11:43 +02:00
nowrep
066600ff10
AdBlock: Option to delete rule with Del key
...
- fixed setting color of newly added rule according to its type
2012-07-01 14:44:42 +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