1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-22 11:46:34 +01:00
Commit Graph

110 Commits

Author SHA1 Message Date
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