Commit Graph

1504 Commits

Author SHA1 Message Date
dlee
f59bb40e5d Bug 1531354 - P5. Safe Browsing test entries are directly stored in LookupCache. r=gcp
Create test entries via update introduces performance overhead.
We can store them directly in LookupCache and do not save test entries
to disk.

Differential Revision: https://phabricator.services.mozilla.com/D34576
2019-06-29 19:05:41 +00:00
dlee
7a8ac63eb7 Bug 1531354 - P4. Skip reading hashstore in RegenActiveTables. r=gcp
For Safe Browsing V2, Data for lookup(LookupCache) and data for update(HashStore)
are now separated. |RegenActiveTables| doesn't need to check the chunk
number in HashStore.

Differential Revision: https://phabricator.services.mozilla.com/D34575
2019-06-21 23:11:06 +00:00
dlee
0864125fd4 Bug 1531354 - P3. Do not store completion in HashStore. r=gcp
Completions are now stored in .vlpset, we can remove it from .sbstore
Functions related to optimize reading completions from .sbstore can also
be removed because it is no longer HashStore's responsibility

Differential Revision: https://phabricator.services.mozilla.com/D34574
2019-06-26 19:45:08 +00:00
dlee
bbf7fa8756 Bug 1531354 - P2. Use variable-length prefix set in LookupCacheV2. r=gcp
1. VariableLengthPrefixSet supports getting/setting prefixes with
AddPrefixArray and AddCompletesArray

2. VariableLengthPrefixSet supports passing prefix as an integer in
Match API. This is because how V2 and V4 see prefixes as an integer
works differently.

Differential Revision: https://phabricator.services.mozilla.com/D34547
2019-06-26 19:40:45 +00:00
dlee
9aaaafdee3 Bug 1531354 - P1. Remove mPrefixSet and mUpdateCompletions from LookupCacheV2 and use mVLPresetSet. r=gcp
The goal of the series of patches is to improve Safe Browsing performance by
skipping uncessary file IO.

The first two patches is to remove the dependency between LookupCache and HashStore, so HashStore is only
responsible for udpates.

Before this patch, LookupCacheV2 treats prefixes and completions
differently. It uses two data structures to maintain
prefixes:
1. mPrefixSet to store prefixes from .pset
2. mUpdateCompletions to store completions from .sbstore

After this patch
1. LookupCacheV2 & LookupCacheV4 both use variable-length
prefix set. mUpdateCompletions and mPrefixSet are removed and
mVLPrefixSet is used to store all prefixes data.
2. Move common function to base class.

Note that in this patch, conversion between 4/32 bytes prefixes and
mVLPrefixSet is not yet included, it will be handled in next patch.
This patch tries not to deal with any logic changes, only focus on refining
LookupCacheV2 & LookupCacheV4 class structure to use variable-length
prefixset for both classes.

Differential Revision: https://phabricator.services.mozilla.com/D34546
2019-06-21 23:07:52 +00:00
Andreea Pavel
583dd126a7 Bug 1560736 - delete extra skip-if condition 2019-06-28 07:22:13 +03:00
Andreea Pavel
d5461605f0 Bug 1560736 - correct skip-if condition
Differential Revision: https://phabricator.services.mozilla.com/D36281
2019-06-28 03:03:45 +00:00
Andreea Pavel
f236b7b24d Bug 1560736 - disabled test_socialtracking_annotate.html on android debug r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D36267
2019-06-28 00:33:32 +00:00
Andrea Marchesini
d89749c697 Bug 1560040 - Introduce 2 new URL-Classifier features to annotate and block social trackers - tests, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D35422
2019-06-22 16:54:04 +00:00
Gijs Kruitbosch
91c33838c9 Bug 1519434 - only allow perma-enabling non-flash plugins, r=jmathies,aswan
Differential Revision: https://phabricator.services.mozilla.com/D34213
2019-06-13 08:41:28 +00:00
Gijs Kruitbosch
572dbf7379 Bug 1519434 - remove plugin click to play pref as running without it won't make sense anymore, r=aswan
Differential Revision: https://phabricator.services.mozilla.com/D34212
2019-06-13 08:40:59 +00:00
Andreea Pavel
cc37a3c8a9 Backed out 7 changesets (bug 1519434) for mochiest failures e.g test_bug1165981.html on a CLOSED TREE
Backed out changeset 1314623831ad (bug 1519434)
Backed out changeset 6dd4fa67e209 (bug 1519434)
Backed out changeset b241c580b293 (bug 1519434)
Backed out changeset b48dca2f487f (bug 1519434)
Backed out changeset 49c64ed2e67b (bug 1519434)
Backed out changeset dd009a001c6c (bug 1519434)
Backed out changeset 5b6ec4d2f0ab (bug 1519434)
2019-06-12 23:31:16 +03:00
Gijs Kruitbosch
ec5127afdc Bug 1519434 - only allow perma-enabling non-flash plugins, r=jmathies,aswan
Differential Revision: https://phabricator.services.mozilla.com/D34213
2019-06-12 18:49:42 +00:00
Gijs Kruitbosch
74e20f32e6 Bug 1519434 - remove plugin click to play pref as running without it won't make sense anymore, r=aswan
Differential Revision: https://phabricator.services.mozilla.com/D34212
2019-06-12 18:49:30 +00:00
Boris Zbarsky
cae135dd3f Bug 1557501. Stop using [array] in nsIPrefBranch. r=njn
Differential Revision: https://phabricator.services.mozilla.com/D34032
2019-06-07 01:01:12 +00:00
Zibi Braniecki
45dab10e39 Bug 1552714 - Fix two tests which were caught not waiting for l10n but checking for l10n values. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D33741
2019-06-06 16:33:18 +00:00
Bogdan Tara
1fffd35a23 Backed out changeset 5bb757ffb7e9 (bug 1553855) for Classifier.cpp assertion failures CLOSED TREE 2019-05-28 04:47:53 +03:00
Randell Jesup
18a763c705 Bug 1553855: Make the Classifier Update thread a LazyIdle thread r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D32529
2019-05-27 12:33:40 +00:00
Sylvestre Ledru
69746836db Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883
2019-05-25 17:46:15 +00:00
Alastor Wu
f288425092 Bug 1550633 - part17 : enable loading for track elements in 'browser_cache.js ' and 'trackerFrame.html '. r=timhuang
As now we won't load disabled text track, we have to mark track as default in order to trigger loading which would be done by automatically text track selection, or to set its track mode explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D32359
2019-05-24 19:07:18 +00:00
dlee
37e164a767 Bug 1553963 - Fix Safe Browsing doesn't cache the gethash result for V4 tables. r=gcp
We use ".pset" to find active tables, but in Bug 1353956, v4 prefix files
are renamed to ".vlpset".

This patches include both 'pset' and 'vlpset' to ScanStoreDir.

Differential Revision: https://phabricator.services.mozilla.com/D32433
2019-05-24 19:42:00 +00:00
arthur.iakab
699b884244 Backed out changeset a296439a25ff (bug 1519636) for frequent Windows cppunit failures CLOSED TREE 2019-05-24 14:26:01 +03:00
Sylvestre Ledru
10a773a4ca Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883
2019-05-24 09:59:17 +00:00
Michael Kaply
26c3c38490 Bug 1456140 - Remove unnecessary size args for getChildList. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D31631
2019-05-21 06:20:40 +00:00
dlee
355b8e4b76 Bug 1542744 - P3. Run the same prefixset testcases for different configuration. r=gcp
This patch does the following:
1. Run the same prefixset tests when
  * browser.safebrowsing.prefixset.max_array_size = 0
  * browser.safebrowsing.prefixset.max_array_size = UINT32_MAX

  This makes sure both of the methods to store prefixset are tested by existing testcases

2. Refine gtest with test fixture
3. Add TinySet and LargeSet testcases

Differential Revision: https://phabricator.services.mozilla.com/D30338
2019-05-14 22:42:28 +00:00
dlee
6577781d47 Bug 1542744 - P2. Improve performance of MakePrefixSet by using different algorithm according to the number of prefixes. r=gcp
The goal of this patch is to reduce the number of memory reallocation during
|MakePrefixSet|[1].

Here is the number of nsTArray memory reallocation occur during |MakePrefixSet|
(test in my local platform):
googpub-phish-proto: 58k times
goog-malware-proto: 9k times
goog-unwanted-proto: 25k times
goog-badbinurl-proto: 6k times

This patch improves the performance by:
1. For tables whose prefixes are less than 128*1024(malware, unwanted,
badinurl).

Store prefixes directly without dividing allocation into smaller chunks.
Because the maximum size to store all the prefixes in a single array for
these tables will be less than 512k, we can avoid Bug 1046038.

This simplifies the internal prefixset data structure generation and total
memory usage is also saved:
goog-malware-proto  : 437K -> 163k
goog-unwanted-proto : 658k -> 446k
goog-badbinurl-proto: 320k -> 110k

The single largest allocated continuous memory size is:
goog-malware-proto  : 86k -> 163k
goog-unwanted-proto : 86k -> 446k
goog-badbinurl-proto: 77k -> 110k

A further improvement can be done for this part is for tables with fewer
prefixes, we can use an one-dimension delta array to reduce the size of a
single continuous memory allocation.

2. For tables with more prefixes:

According to experiment, when prefixes are more than 400k
the delta arrays have very high chance that are full, in the case of
phishing table, we can estimate the capacity accurately before
applying delta algorithm.

The shortcoming of this part is when prefixes are between 130k~400k,
the capacity estimation is not accurate.

[1] https://searchfox.org/mozilla-central/rev/b2015fdd464f598d645342614593d4ebda922d95/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp#99

Differential Revision: https://phabricator.services.mozilla.com/D30046
2019-05-15 11:17:43 +00:00
dlee
9b83882ba3 Bug 1542744 - P1. Remove calculating checksum for mIndexDelta array. r=gcp
The checksum calculating code is used to find the root cause of a crash
bug during update(Bug 1362761). Since the algorithm will be update in
these series of patches, we don't need to keep it.

Differential Revision: https://phabricator.services.mozilla.com/D26667
2019-05-14 22:42:31 +00:00
shindli
35dcb332ae Backed out 3 changesets (bug 1542744) for causing perma mochitest failures in /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/StaticPrefList CLOSED TREE
Backed out changeset f94b6f3a7fff (bug 1542744)
Backed out changeset c51b622bb1fe (bug 1542744)
Backed out changeset aedbe6cdd06f (bug 1542744)
2019-05-15 01:41:06 +03:00
dlee
c07fea4783 Bug 1542744 - P3. Run the same prefixset testcases for different configuration. r=gcp
This patch does the following:
1. Run the same prefixset tests when
  * browser.safebrowsing.prefixset.max_array_size = 0
  * browser.safebrowsing.prefixset.max_array_size = UINT32_MAX

  This makes sure both of the methods to store prefixset are tested by existing testcases

2. Refine gtest with test fixture
3. Add TinySet and LargeSet testcases

Differential Revision: https://phabricator.services.mozilla.com/D30338
2019-05-10 17:40:11 +00:00
dlee
8fdf2aebfd Bug 1542744 - P2. Improve performance of MakePrefixSet by using different algorithm according to the number of prefixes. r=gcp
The goal of this patch is to reduce the number of memory reallocation during
|MakePrefixSet|[1].

Here is the number of nsTArray memory reallocation occur during |MakePrefixSet|
(test in my local platform):
googpub-phish-proto: 58k times
goog-malware-proto: 9k times
goog-unwanted-proto: 25k times
goog-badbinurl-proto: 6k times

This patch improves the performance by:
1. For tables whose prefixes are less than 128*1024(malware, unwanted,
badinurl).

Store prefixes directly without dividing allocation into smaller chunks.
Because the maximum size to store all the prefixes in a single array for
these tables will be less than 512k, we can avoid Bug 1046038.

This simplifies the internal prefixset data structure generation and total
memory usage is also saved:
goog-malware-proto  : 437K -> 163k
goog-unwanted-proto : 658k -> 446k
goog-badbinurl-proto: 320k -> 110k

The single largest allocated continuous memory size is:
goog-malware-proto  : 86k -> 163k
goog-unwanted-proto : 86k -> 446k
goog-badbinurl-proto: 77k -> 110k

A further improvement can be done for this part is for tables with fewer
prefixes, we can use an one-dimension delta array to reduce the size of a
single continuous memory allocation.

2. For tables with more prefixes:

According to experiment, when prefixes are more than 400k
the delta arrays have very high chance that are full, in the case of
phishing table, we can estimate the capacity accurately before
applying delta algorithm.

The shortcoming of this part is when prefixes are between 130k~400k,
the capacity estimation is not accurate.

[1] https://searchfox.org/mozilla-central/rev/b2015fdd464f598d645342614593d4ebda922d95/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp#99

Differential Revision: https://phabricator.services.mozilla.com/D30046
2019-05-14 21:05:41 +00:00
dlee
be3ab07d04 Bug 1542744 - P1. Remove calculating checksum for mIndexDelta array. r=gcp
The checksum calculating code is used to find the root cause of a crash
bug during update(Bug 1362761). Since the algorithm will be update in
these series of patches, we don't need to keep it.

Differential Revision: https://phabricator.services.mozilla.com/D26667
2019-05-08 08:35:06 +00:00
Boris Zbarsky
a9b6918cce Bug 1551399 part 2. Stop using [array] in url-classifier's makeFindFullHashRequestV4. r=dimi,gcp
Differential Revision: https://phabricator.services.mozilla.com/D31022
2019-05-14 09:57:16 +00:00
Boris Zbarsky
d288f51dc3 Bug 1551399 part 1. Stop using [array] in url-classifier's makeUpdateRequestV4. r=dimi,gcp
Differential Revision: https://phabricator.services.mozilla.com/D31020
2019-05-14 09:50:42 +00:00
dlee
7a482eb7df Bug 1548517 - Add hash for test entries added via HostInPrefTables. r=baku
Origin telemetry expects every tracking channel has tracker's hash.
Without hash value for test entries, it will trigger MOZ_ASSERT while running
testcases.

Differential Revision: https://phabricator.services.mozilla.com/D30061
2019-05-10 19:39:24 +00:00
Geoff Brown
55ee3dbaff Bug 1551226 - Run Android x86_64 7.0/debug mochitests; r=snorp
We can run /debug mochitests against geckoview for the cost of another dozen
or so test annotations. Both /opt and /debug mochitests are nearly worthy of
tier 1, but still waiting for bug 1534732.

Differential Revision: https://phabricator.services.mozilla.com/D30931
2019-05-13 20:52:36 +00:00
Thomas Nguyen
2b9a6d0f8d Bug 1532318 - Part 2 : update changes of nsIHttpChannel in codebase r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D22786
2019-05-02 12:33:55 +00:00
Sylvestre Ledru
ad31adba4c Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956
2019-05-01 08:47:10 +00:00
Andrew McCreight
633cb8ef7a Bug 1545822 - Clean up some whitespace in XPIDL files. r=froydnj
The attributes for an interface should be on the line right before the
interface.

Interface attributes should be separated by spaces.

Clean up some trailing whitespace in widget/.

Differential Revision: https://phabricator.services.mozilla.com/D28234
2019-04-21 01:47:00 +00:00
Ehsan Akhgari
ec06a69fb8 Bug 1500533 - Ensure that TLS session resumption tickets are only consumed if the channel isn't isolated by anti-tracking checks; r=michal,baku
Differential Revision: https://phabricator.services.mozilla.com/D26996
2019-04-18 01:00:22 +00:00
Brian Grinstead
6bf5cf3d2a Bug 1544322 - Part 2.1 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in everything except for dom/ r=bzbarsky
This excludes dom/, otherwise the file size is too large for phabricator to handle.

This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 2` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27456
2019-04-16 03:50:44 +00:00
Brian Grinstead
36c26fa2b9 Bug 1544322 - Part 1 - Remove the [type] attribute for one-liner <script> tags loading files in chrome://mochikit/content/ r=bzbarsky
This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 1` argument.

Differential Revision: https://phabricator.services.mozilla.com/D26812
2019-04-15 20:56:58 +00:00
Sylvestre Ledru
72e7e7d7e7 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D27245
2019-04-12 13:14:25 +00:00
Oana Pop Rus
9757115ee8 Backed out changeset acb04833e713 (bug 1500533) for assertion failure in nsHttpChannel.cpp on a CLOSED TREE 2019-04-11 23:15:08 +03:00
Ehsan Akhgari
8648b0b8e6 Bug 1500533 - Ensure that TLS session resumption tickets are only consumed if the channel isn't isolated by anti-tracking checks; r=michal,baku
Differential Revision: https://phabricator.services.mozilla.com/D26996
2019-04-11 18:36:16 +00:00
dlee
158ec83968 Bug 1543341 - Refine Safe Browsing log output. r=baku
After calling Lookup API per table, Safe Browsing outputs too many debug
message for a single URL lookup. Refine the current output.

Differential Revision: https://phabricator.services.mozilla.com/D27066
2019-04-11 18:57:56 +00:00
dlee
7320ffd6ce Bug 1543319 - P2. Swap the byte order in-place. r=gcp
We don't need an additional array just for byte reordering, replace
it with in-place processing.

Testcase are modified because the LookupCacheV4::Build API now clears the
input parameter.

Differential Revision: https://phabricator.services.mozilla.com/D26861
2019-04-10 20:53:17 +00:00
dlee
f066428f6b Bug 1543319 - P1. Free intermediate memory as early as possible during Safe Browsing update. r=gcp
Here is the flow how prefixes are handled during an V4 update:
1. Prefixes are received from Safe Browsing update, stored in ProtocolBuffer
2. Copy the prefixes from ProtocolBuffer to TableUpdate structure
3. Prefixes in TableUpdate are merged with local prefixes (stored in LookupCacheV4)
4. Merged prefixes are processes by PrefixSet to generate the in-memory prefix
   set data structure (MakePrefixSet).

In this patch, we free the prefixes stored in TableUpdate right after step3.
This reduces the peak memory used during an update (peak happens in step 4).

Differential Revision: https://phabricator.services.mozilla.com/D26860
2019-04-10 14:32:54 +00:00
Sylvestre Ledru
1666e92b07 Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26280
2019-04-05 21:42:17 +00:00
Csoregi Natalia
2ded4ab36d Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru
ebe9c62d30 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098
2019-04-04 21:36:16 +00:00