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