Commit graph

1514 commits

Author SHA1 Message Date
Oana Pop Rus
2ad74ef9f7 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-07-04 06:38:21 +03:00
Jeff Gilbert
bf0dbae910 Bug 1560736 - Re-enable tests.
Differential Revision: https://phabricator.services.mozilla.com/D36686

--HG--
extra : moz-landing-system : lando
2019-07-02 23:25:40 +00:00
Kris Maglione
3e44c16cf9 Bug 1541557: Part 5 - Update callers of ChromeScript.sendSyncMessage to use sendQuery instead. r=nika
Since JSWindowActors don't have direct access to synchronous messaging,
ChromeScript callers are going to need to migrate to asynchronous messaging
and queries instead.

Since there's no comparable API to sendQuery for frame message managers, this
patch adds a stub that uses synchronous messaging, but makes the API appear
asynchronous, and migrates callers to use it instead of direct synchronous
messaging. This will be replaced with a true synchronous API in the actor
migration.

Fortunately, most of the time, this actually leads to simpler code. The
`sendQuery` API doesn't have the odd return value semantics of
`sendSyncMessage`, and can usually just be used as a drop-in replacement. Many
of the `sendSyncMessage` callers don't actually use the result, and can just
be changed to `sendAsyncMessage`. And many of the existing async messaging
users can be changed to just use `sendQuery` rather than sending messages and
adding response listeners.

However, the APZ code is an exception. It relies on intricate properties of
the event loop, and doesn't have an easy way to slot in promise handlers, so I
migrated it to using sync messaging via process message managers instead.

Differential Revision: https://phabricator.services.mozilla.com/D35055

--HG--
extra : rebase_source : d5707e87f293a831a5cf2e0b0a7e977090267f78
extra : source : 75ebd6fce136ab3bd0e591c2b8b2d06d3b5bf923
2019-06-12 12:40:51 -07:00
Kris Maglione
f70e67ad2d Bug 1541557: Part 4 - Stop relying on synchronous preference getters/setters. r=nika
The SpecialPowers set*Pref/get*Pref APIs currently use synchronous messaging
to set and get preference values from the parent process. Aside from directly
affecting callers of those APIs, it also affects callers of `pushPrefEnv`,
which is meant to be asynchronous, but is in practice usually synchronous due
to the synchronous messaging it uses.

This patch updates the getPref APIs to use the in-process preference service
(which most callers are expecting anyway), and also updates the callers of
the setPref and pushPrefEnv APIs to await the result if they're relying on it
taking effect immediately.

Unfortunately, there are some corner cases in tests that appear to only work
because of the quirks of the current sync messaging approach. The synchronous
setPref APIs, for instance, trigger preference changes in the parent
instantly, but don't update the values in the child until we've returned to
the event loop and had a chance to process the notifications from the parent.
The differnce in timing leads some tests to fail in strange ways, which this
patch works around by just adding timeouts.

There should be follow-ups for test owners to fix the flakiness.

Differential Revision: https://phabricator.services.mozilla.com/D35054

--HG--
extra : rebase_source : 941298157e7c82f420cf50ce057154ce9b85301c
extra : source : 189dc8a359815e059a4a217f788d183260bb2bfe
2019-06-13 09:34:39 -07:00
Kris Maglione
fcb799ab11 Bug 1541557: Part 3 - Update callers of sync SpecialPowers functions to await the return value. r=nika
When we migrate SpecialPowers to a JSWindowActor, it will no longer be able to
use synchronous IPC messaging, which means that its current synchronous APIs
will have to become asynchronous.

This patch doesn't change the behavior of those functions, but it does change
their callers to `await` their return values rather than using them directly.
This pattern will work the same whether the functions return a promise or a
plain value, which simplifies the migration.

Differential Revision: https://phabricator.services.mozilla.com/D35053

--HG--
extra : rebase_source : baffba2107b175250573baae3f54d48becbd2a16
extra : source : b4ed40bea2698802ef562a0931c0b560737fb89d
2019-06-12 11:41:32 -07:00
dlee
9342a2ee04 Bug 1553951 - Safe Browsing doesn't call the lookup callback when an error occurs in DoLocalLookup. r=baku
Firefox cannot open any URL when Safe Browsing database is corrupted.
This is because when Necko asks URL Classifier to classify an URL, it
first suspends the channel, and then wait for a callback to see if the
channel should be canceled or resumed.

In this bug, DoLocalLookup returns an error because Safe Browsing is not
able to read its database(database is corrupted), but we don't call the
callback to resume loading channel, so users cannot load any website.

This patch adds a scope exit handler to make sure the callback will
always be invoked.

Differential Revision: https://phabricator.services.mozilla.com/D36456

--HG--
extra : moz-landing-system : lando
2019-07-01 13:26:44 +00:00
shindli
9b0b990567 Backed out changeset b308a5b128aa (bug 1553951) for causing bustages in builds/worker/workspace/build/src/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp CLOSED TREE 2019-07-01 14:45:59 +03:00
dlee
d13e3191fe Bug 1553951 - Safe Browsing doesn't call the lookup callback when an error occurs in DoLocalLookup. r=baku
Firefox cannot open any URL when Safe Browsing database is corrupted.
This is because when Necko asks URL Classifier to classify an URL, it
first suspends the channel, and then wait for a callback to see if the
channel should be canceled or resumed.

In this bug, DoLocalLookup returns an error because Safe Browsing is not
able to read its database(database is corrupted), but we don't call the
callback to resume loading channel, so users cannot load any website.

This patch adds a scope exit handler to make sure the callback will
always be invoked.

Differential Revision: https://phabricator.services.mozilla.com/D36456

--HG--
extra : moz-landing-system : lando
2019-07-01 11:26:11 +00:00
Cosmin Sabou
a3ed228afc Bug 1560736 - Disable test_socialtracking.html for frequent failures. a=testonly 2019-07-01 02:44:31 +03:00
dlee
d9634cfdf5 Bug 1531354 - P6. Remove unused testing files and load old version of prefixes data. r=gcp
This patch does the following:
1. Remove testing files from disk because they are no longer required.
2. Load completions from previous version of HashStore until an update
   is applied.
3. Older version of HashStore(.sbstore) & PrefixSet(.vlpset) will be
   removed during an update

Differential Revision: https://phabricator.services.mozilla.com/D36002

--HG--
extra : moz-landing-system : lando
2019-06-29 19:24:14 +00:00
dlee
d1ed4c245a 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

--HG--
extra : moz-landing-system : lando
2019-06-29 19:05:41 +00:00
dlee
82f987f7c9 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

--HG--
extra : moz-landing-system : lando
2019-06-21 23:11:06 +00:00
dlee
b57c5c8716 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

--HG--
extra : moz-landing-system : lando
2019-06-26 19:45:08 +00:00
dlee
e73ed82b2f 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

--HG--
extra : moz-landing-system : lando
2019-06-26 19:40:45 +00:00
dlee
128b3c174b 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

--HG--
extra : moz-landing-system : lando
2019-06-21 23:07:52 +00:00
Andreea Pavel
537e18b033 Bug 1560736 - delete extra skip-if condition 2019-06-28 07:22:13 +03:00
Andreea Pavel
b15747a680 Bug 1560736 - correct skip-if condition
Differential Revision: https://phabricator.services.mozilla.com/D36281

--HG--
extra : moz-landing-system : lando
2019-06-28 03:03:45 +00:00
Andreea Pavel
3455f61a94 Bug 1560736 - disabled test_socialtracking_annotate.html on android debug r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D36267

--HG--
extra : moz-landing-system : lando
2019-06-28 00:33:32 +00:00
Andrea Marchesini
6c816c5de8 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

--HG--
extra : moz-landing-system : lando
2019-06-22 16:54:04 +00:00
Gijs Kruitbosch
a8bd1715ab Bug 1519434 - only allow perma-enabling non-flash plugins, r=jmathies,aswan
Differential Revision: https://phabricator.services.mozilla.com/D34213

--HG--
extra : moz-landing-system : lando
2019-06-13 08:41:28 +00:00
Gijs Kruitbosch
38159f5246 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

--HG--
extra : moz-landing-system : lando
2019-06-13 08:40:59 +00:00
Andreea Pavel
f66f9762a5 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
fa4c2a54c9 Bug 1519434 - only allow perma-enabling non-flash plugins, r=jmathies,aswan
Differential Revision: https://phabricator.services.mozilla.com/D34213

--HG--
extra : moz-landing-system : lando
2019-06-12 18:49:42 +00:00
Gijs Kruitbosch
7a17996536 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

--HG--
extra : moz-landing-system : lando
2019-06-12 18:49:30 +00:00
Boris Zbarsky
89baee69d9 Bug 1557501. Stop using [array] in nsIPrefBranch. r=njn
Differential Revision: https://phabricator.services.mozilla.com/D34032

--HG--
extra : moz-landing-system : lando
2019-06-07 01:01:12 +00:00
Zibi Braniecki
70e5a4ee3a 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

--HG--
extra : moz-landing-system : lando
2019-06-06 16:33:18 +00:00
Bogdan Tara
12ee428e36 Backed out changeset 5bb757ffb7e9 (bug 1553855) for Classifier.cpp assertion failures CLOSED TREE 2019-05-28 04:47:53 +03:00
Randell Jesup
9e861b651a Bug 1553855: Make the Classifier Update thread a LazyIdle thread r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D32529

--HG--
extra : moz-landing-system : lando
2019-05-27 12:33:40 +00:00
Sylvestre Ledru
d57d4905f1 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-25 17:46:15 +00:00
Alastor Wu
fb742c262d 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

--HG--
extra : moz-landing-system : lando
2019-05-24 19:07:18 +00:00
dlee
2c8cc96c07 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

--HG--
extra : moz-landing-system : lando
2019-05-24 19:42:00 +00:00
arthur.iakab
af8e458c5f Backed out changeset a296439a25ff (bug 1519636) for frequent Windows cppunit failures CLOSED TREE 2019-05-24 14:26:01 +03:00
Sylvestre Ledru
c82ea97226 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-24 09:59:17 +00:00
Michael Kaply
75cc987da6 Bug 1456140 - Remove unnecessary size args for getChildList. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D31631

--HG--
extra : moz-landing-system : lando
2019-05-21 06:20:40 +00:00
dlee
4eedc540b9 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

--HG--
extra : moz-landing-system : lando
2019-05-14 22:42:28 +00:00
dlee
20ab57f9ae 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

--HG--
extra : moz-landing-system : lando
2019-05-15 11:17:43 +00:00
dlee
4bc3c77e06 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

--HG--
extra : moz-landing-system : lando
2019-05-14 22:42:31 +00:00
shindli
905ea2ceef 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
d7daa3c130 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

--HG--
extra : moz-landing-system : lando
2019-05-10 17:40:11 +00:00
dlee
8370cfe1bf 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

--HG--
extra : moz-landing-system : lando
2019-05-14 21:05:41 +00:00
dlee
59923e57ab 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

--HG--
extra : moz-landing-system : lando
2019-05-08 08:35:06 +00:00
Boris Zbarsky
82d1bb0e94 Bug 1551399 part 2. Stop using [array] in url-classifier's makeFindFullHashRequestV4. r=dimi,gcp
Differential Revision: https://phabricator.services.mozilla.com/D31022

--HG--
extra : moz-landing-system : lando
2019-05-14 09:57:16 +00:00
Boris Zbarsky
482f862c51 Bug 1551399 part 1. Stop using [array] in url-classifier's makeUpdateRequestV4. r=dimi,gcp
Differential Revision: https://phabricator.services.mozilla.com/D31020

--HG--
extra : moz-landing-system : lando
2019-05-14 09:50:42 +00:00
dlee
d7aece18ce 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

--HG--
extra : moz-landing-system : lando
2019-05-10 19:39:24 +00:00
Geoff Brown
167de4a58d 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

--HG--
extra : moz-landing-system : lando
2019-05-13 20:52:36 +00:00
Thomas Nguyen
b0bfbd85aa Bug 1532318 - Part 2 : update changes of nsIHttpChannel in codebase r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D22786

--HG--
extra : moz-landing-system : lando
2019-05-02 12:33:55 +00:00
Sylvestre Ledru
e226046cb8 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

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Andrew McCreight
f242e71c8a 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

--HG--
extra : moz-landing-system : lando
2019-04-21 01:47:00 +00:00
Ehsan Akhgari
ccfae51c32 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

--HG--
extra : moz-landing-system : lando
2019-04-18 01:00:22 +00:00
Brian Grinstead
ede8c44ef2 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

--HG--
extra : moz-landing-system : lando
2019-04-16 03:50:44 +00:00