Commit Graph

6675 Commits

Author SHA1 Message Date
Valentin Gosu
f96bb4a629 Bug 1423495 - Part6: Use threadsafe refcounting for nsServerTiming r=baku,nwgh
* Also keeps the timing array as nsTArray<nsCOMPtr<nsIServerTiming>> instead of the scriptable nsIArray (which doesn't like being released on another thread)

MozReview-Commit-ID: 37uPZJ38saQ

--HG--
extra : rebase_source : 099ec74c3032ef6033d187a028466777200c6015
2018-04-24 13:04:12 +02:00
Kershaw Chang ext:(%2C%20Valentin%20Gosu%20%3Cvalentin.gosu%40gmail.com%3E)
042ac19155 Bug 1423495 - Part4: Create doc entry form http channel if server timing headers are found for a document load r=baku
Currently, the document entry is created at the first time when some JS code tries to access it. But for the case when server timing headers exist for a document loading channel, we need to create the document entry and save the server timing data in the document entry.
If we don’t do this, the server timing data would be lost since the http channel will be deleted.

MozReview-Commit-ID: B5ksAZvZACq

--HG--
extra : rebase_source : 27bc6284ec417b2ff430a59cd9eeddc56b7a77ac
2018-01-12 03:13:00 +01:00
Randell Jesup
77b8bbfbe2 Bug 1453387: Add network load status reports to gecko-profiler markers r=mstange 2018-04-19 23:32:17 -04:00
Honza Bambas
7488001940 Bug 1452028 - Bring back network.http.fast-fallback-to-IPv4 preference, regression from bug 1430659. r=valentin
--HG--
extra : rebase_source : a33a72e2117f94aeb101eac8cd2b560fadfaae85
2018-04-13 10:04:00 -04:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nathan Froyd
7bb7ffd8c9 Bug 1453134 - part 1 - add a string input stream constructor that accepts move references; r=baku
This method is more efficient when we know we're not going to need the
string afterwards, and should cut down on intermediate allocations.
2018-04-11 10:06:17 -04:00
Nika Layzell
952f6a915a Bug 1443954 - Part 3: Add support for RefCounted types to IPDL, r=bz,froydnj,baku
This patch was reviewed in parts, however the intermediate states would not build:

Bug 1443954 - Part 3A: Strip pointers from the argument to WriteParam and WriteIPDLParam before selecting the ParamTraits impl, r=froydnj

Bug 1443954 - Part 3B: Move nsIAlertNotification serialization to the refcounted system, r=bz

Bug 1443954 - Part 3C: Move geolocation serialization to the refcounted system, r=bz

Bug 1443954 - Part 3D: Move nsIInputStream serialization to the refcounted system, r=baku

Bug 1443954 - Part 3E: Move BlobImpl serialization to the refcounted system, r=baku

Bug 1443954 - Part 3F: Correctly implement ParamTraits for actors after the ParamTraits changes, r=froydnj
2018-04-10 17:49:48 -04:00
Nika Layzell
b286bc10d9 Bug 1443379 - Stop pretending cacheKey can be anything other than uint32_t, r=smaug 2018-04-10 17:49:46 -04:00
Christoph Kerschbaumer
c0f8ff4e4d Bug 1451094 - Fix null loadinfo deref. r=mayhemer 2018-04-10 17:26:36 +02:00
Dave Townsend
2debd7677a Bug 1449259: Don't do proxy lookups for loads that are only going to come from the cache. r=mayhemer
MozReview-Commit-ID: GI9t8HWesZY

--HG--
extra : rebase_source : 9ef3adaacce86c03371957a4b8a6babcffbc7a89
2018-04-04 16:17:25 -07:00
Valentin Gosu
0f7acc7f3e Bug 1451295 - Add a null check for mChannel r=michal
MozReview-Commit-ID: 7YYhFQuKsPk

--HG--
extra : rebase_source : 1fd1ed99038e5f785aac4e8bde40cecf71dd2cea
2018-04-05 17:47:14 +03:00
Valentin Gosu
44b773489f Bug 1450726 - Missing null check for mLoadInfo r=jkt
MozReview-Commit-ID: Cz7qj1qulK1

--HG--
extra : rebase_source : 79fc4e37ea6b9fc280dcaf11c2b9661a1493c04c
2018-04-02 20:18:53 +03:00
Ben Kelly
0145a9634a Bug 1450874 P2 Don't save service worker time stamps if the fetch event didn't actually dispatch. r=asuth 2018-04-03 19:53:21 -07:00
Daniel Stenberg
a204c8eb02 bug 1450583 - require macOS 10.13.4 (uname 17.5.0) for enabling TFO r=mcmanus
MozReview-Commit-ID: LbfgT9oS9O

--HG--
extra : rebase_source : 6099048103e227d25550a2ed2358cf1b3118042a
2018-04-03 14:49:39 +02:00
Michal Novotny
e4fe2d6393 Bug 1436809 - Check that stream message was converted to string correctly. r=valentin
--HG--
extra : amend_source : a4dbdaa91a4af641b0a538aa208c19a122d30ae4
2018-04-02 12:59:18 -04:00
Tom Ritter
449237fc51 Bug 1378552 - Reduce the liklihood of inadvertently misusing NullPrincipal::Create(). r=ckerschb
NullPrincipal::Create() (will null OA) may cause an OriginAttributes bypass.
We change Create() so OriginAttributes is no longer optional, and rename
Create() with no arguments to make it more explicit about what the caller is doing.

MozReview-Commit-ID: 7DQGlgh1tgJ
2018-03-22 13:36:20 -05:00
Honza Bambas
d6561f3cd0 Bug 1433088 - Make the HTTP cache entry age based validation calculation work with the internal one-second only round-down resolution to make max-age=0 force immediate expiration. r=michal 2018-03-28 08:35:00 -04:00
Honza Bambas
d0b352582e Bug 1442784 - Carry isMainDocumentChannel HTTP channel flag to redirected HTTP channels, r=michal
--HG--
extra : rebase_source : fc3fa8510359725c8c7165f973f1aae7a1cc5def
2018-03-26 10:49:00 +03:00
Nicholas Nethercote
136f284c7d Bug 1436655 - Introduce a mechanism for VarCache prefs to be defined entirely in the binary. r=glandium
Currently VarCache prefs are setup in two parts:

- The vanilla pref part, installed via a data file such as all.js, or via an
  API call.

- The VarCache variable part, setup by an Add*VarCache() call.

Both parts are needed for the pref to actually operate as a proper VarCache
pref. (There are various prefs for which we do one but not the other unless a
certain condition is met.)

This patch introduces a new way of doing things. There is a new file,
modules/libpref/init/StaticPrefList.h, which defines prefs like this:

> VARCACHE_PREF(
>   "layout.accessiblecaret.width",
>   layout_accessiblecaret_width,
>   float, 34.0
> )

This replaces both the existing parts.

The preprocessor is used to generate multiple things from this single
definition:

- A global variable (the VarCache itself).

- A getter for that global variable.

- A call to an init function that unconditionally installs the pref in the
  prefs hash table at startup.

C++ files can include the new StaticPrefs.h file to access the getter.

Rust code cannot use the getter, but can access the global variable directly
via structs.rs. This is similar to how things currently work for Rust code.

Non-VarCache prefs can also be declared in StaticPrefList.h, using PREF instead
of the VARCACHE_PREF.

The new approach has the following advantages.

+ It eliminates the duplication (in all.js and the Add*VarCache() call) of the
  pref name and default value, preventing potential mismatches. (This is a real
  problem in practice!)

+ There is now a single initialization point for these VarCache prefs.
  + This avoids need to find a place to insert the Add*VarCache() calls, which
    are currently spread all over the place.
  + It also eliminates the common pattern whereby these calls are wrapped in a
    execute-once block protected by a static boolean (see bug 1346224).
  + It's no longer possible to have a VarCache pref for which only one of the
    pieces has been setup.

+ It encapsulates the VarCache global variable, so there is no need to declare
  it separately.

+ VarCache reads are done via a getter (e.g. StaticPrefs::foo_bar_baz())
  instead of a raw global variable read.
  + This makes it clearer that you're reading a pref value, and easier to
    search for uses.
  + This prevents accidental writes to the global variable.
  + This prevents accidental mistyping of the pref name.
  + This provides a single chokepoint in the code for such accesses, which make
    adding checking and instrumentation feasible.

+ It subsumes MediaPrefs, and will allow that class to be removed. (gfxPrefs is
  a harder lift, unfortunately.)

+ Once all VarCache prefs are migrated to the new approach, the VarCache
  mechanism will be better encapsulated, with fewer details publicly visible.

+ (Future work) This will allow the pref names to be stored statically, saving
  memory in every process.

The main downside of the new approach is that all of these prefs are in a
single header that is included in quite a few places, so any changes to this
header will cause a fair amount of recompilation.

Another minor downside is that all VarCache prefs are defined and visible from
start-up. For test-only prefs like network.predictor.doing-tests, having them
show in about:config isn't particularly useful.

The patch also moves three network VarCache prefs to the new mechanism as a
basic demonstration. (And note the inconsistencies in the multiple initial
values that were provided for
network.auth.subresource-img-cross-origin-http-auth-allow!) There will be
numerous follow-up bugs to convert the remaining VarCache prefs.

MozReview-Commit-ID: 9ABNpOR16uW
* * *
[mq]: fixup

MozReview-Commit-ID: 6ToT9dQjIAq
2018-03-26 09:39:40 +11:00
Honza Bambas
ee49bea9fc Bug 1447566 - Remove all remaning MOZ_ASSERT(!mSynTimer) checks from nsHalfOpenSocket, since we no longer enforce it null under certain conditions. r=valentin 2018-03-21 08:28:00 -04:00
Miko Mynttinen
65c6bee9d6 Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj
MozReview-Commit-ID: rGjabnP2iz

--HG--
extra : rebase_source : 1ef6c5ce028ac9ebd9f3176d57835c43fe46bada
2018-03-13 14:51:33 +01:00
Valentin Gosu
eccc344c51 Bug 1442242 - Make the constuctors of URI implementations private r=mayhemer
MozReview-Commit-ID: LonNnZyJjVO

--HG--
extra : rebase_source : ceefc81a669b17f68f193fce5f172f9f2268a998
2018-03-20 23:23:31 +01:00
Valentin Gosu
d4bfa7921c Bug 1442242 - Add nsIURIMutator method to mark when the URI implementation should support nsIFileURL r=mayhemer
* This is needed in order to make the constructors of URI implementations private

MozReview-Commit-ID: 8dddDXbmrfF

--HG--
extra : rebase_source : b8e471d228617ae4bd07c5ed6317951c06ce8d56
2018-03-20 12:52:43 +01:00
Valentin Gosu
ba3f9989ec Bug 1426353 - Do not allow the parent process to consume alt-data generated in the content process. r=michal
MozReview-Commit-ID: htQ28muaBI

--HG--
rename : netwerk/test/unit/test_alt-data_simple.js => netwerk/test/unit/test_alt-data_cross_process.js
rename : netwerk/test/unit_ipc/test_alt-data_simple_wrap.js => netwerk/test/unit_ipc/test_alt-data_cross_process_wrap.js
2018-03-06 02:44:51 +01:00
Andreea Pavel
d9d9517a78 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-20 00:42:18 +02:00
Honza Bambas
e5943f18e9 Bug 1445796 - Add logging of a calling JS script to more http channel methods. r=valentin 2018-03-16 09:28:00 -04:00
Honza Bambas
c940bbdf06 Bug 1430659 - Network requests in "blocked" state for long time (1+ minute) when ipv6 hosts are no longer available. r=valentin 2018-03-16 09:06:00 -04:00
Valentin Gosu
af5eeff2e3 Bug 1442239 - Make URI deserialization (nsISerializable.read) happen via nsIURIMutator only r=mayhemer
* Deserialization now only happens via a mutator
* The CID for URI implementations actually returns the nsIURIMutator for each class
* The QueryInterface of mutators implementing nsISerializable will now act as a finalizer if passed the IID of an interface implemented by the URI it holds

MozReview-Commit-ID: H5MUJOEkpia

--HG--
extra : rebase_source : 01c8d16f7d31977eda6ca061e7889cedbf6940c2
2018-03-19 20:22:32 +01:00
Honza Bambas
55a95407a1 Bug 1395760 - In offline mode, fail HTTP load when a cache entry is partial, r=michal 2018-03-02 13:42:00 +02:00
Andreea Pavel
e5950c0d39 Backed out 2 changesets (bug 1442239) for xpcshell failures at widget/tests/unit/test_taskbar_jumplistitems.js on a CLOSED TREE
Backed out changeset 513cd669aca1 (bug 1442239)
Backed out changeset aef4c73f736f (bug 1442239)
2018-03-19 21:19:26 +02:00
Valentin Gosu
f0c7a1ae13 Bug 1442239 - Make URI deserialization (nsISerializable.read) happen via nsIURIMutator only r=mayhemer
* Deserialization now only happens via a mutator
* The CID for URI implementations actually returns the nsIURIMutator for each class
* The QueryInterface of mutators implementing nsISerializable will now act as a finalizer if passed the IID of an interface implemented by the URI it holds

MozReview-Commit-ID: H5MUJOEkpia

--HG--
extra : rebase_source : 8ebb459445cab23288a6c4c86e4e00c6ee611e34
2018-03-08 13:35:10 +01:00
David Keeler
394c8f01a3 bug 1444532 - fix a leak in SHA256 in nsHttpConnectionInfo.cpp r=mayhemer
The original code (from bug 1200802) declared an XPCOM object as a static bare
pointer, which for future reference is probably never the right thing to do. It
might have worked if it was cleared before shutdown but it never was.

MozReview-Commit-ID: EMe7wgzm6zv

--HG--
extra : rebase_source : 572ce6822e297692bab3311a65e1143785b913c4
2018-03-09 14:16:57 -08:00
Jonathan Kingston
10ebc30d5d Bug 1440701 - Adding in telemetry for upgrading display content. r=ckerschb,valentin
MozReview-Commit-ID: 7oEIith4Ehv

--HG--
extra : rebase_source : 454d56277aa5dc08bf8cfd7cd9c1e24d31014838
2018-03-04 14:33:33 +00:00
Tom Ritter
9c3d32ebab Bug 1444490 Declare classses (and one method) in network/ final to reduce virtual function calls r=nwgh
MozReview-Commit-ID: 4oaazbPhpbc

--HG--
extra : rebase_source : 7c01066363605c64fc76332686b2c4d9c2af6518
2018-03-09 08:37:18 -06:00
Andrea Marchesini
5784769019 Bug 1443079 - nsScriptError.isFromPrivateWindow must match the correct value also in e10s mode, r=smaug 2018-03-13 06:40:38 +01:00
Nathan Froyd
edc7498b90 Bug 1444472 - fix incorrect clang warning in nsCORSListenerProxy; r=valentin
Older versions of clang complain about this code, with:

netwerk/protocol/http/nsCORSListenerProxy.cpp:230:5: error: default initialization of an object of const type 'const struct CheckHeaderToken' without a user-provided default constructor

Later versions of the standard were amended to make this not an error,
but clang still warns.  Pacify clang by making the object not const.
2018-03-12 16:46:33 -04:00
Patrick McManus
aebf4bd069 Bug 1444453 - require version >= 10.13.4 for tfo on mac r=bagder
MozReview-Commit-ID: 6jYWQtcxRuA

--HG--
extra : rebase_source : 522fc28a04b951063c1c199f8017836c4f5f9e6a
2018-03-09 12:26:06 -05:00
Eric Rahm
cc1509e530 Bug 1442756 - Switch nsHttpAuthCache::mDB to nsClassHashtable. r=mayhemer
--HG--
extra : rebase_source : 398e2105ea78c26f14419179fb0387c771384858
2018-03-02 15:04:25 -08:00
Honza Bambas
ecd9c51e6f Bug 1440567 - Add non-null checks around assignment of warning report to preflight HTTP channel in nsCORSListenerProxy::StartCORSPreflight. r=dveditz 2018-03-07 08:03:00 -05:00
Nathan Froyd
72e140cbf6 Bug 1443316 - part 3 - make cache entry request checking more readable; r=ckerschb
What we're really doing in CacheEntry::CheckRequest is checking:

a) Whether the method is contained in our allowed methods; and
b) Whether all of the headers are contained in our allowed headers.

nsTArray lets us check directly for containing elements, so let's use
that facility rather than rolling our own.
2018-03-07 13:39:54 -05:00
Nathan Froyd
4e5f97268e Bug 1443316 - part 2 - don't repeatedly construct comparators when checking cache entries; r=ckerschb
nsCaseInsensitiveCStringComparator ought to be cheap to construct, but
the object actually has a vtable to install and whatnot.  So it's
beneficial to pull the construction of it outside of the headers loop.
2018-03-07 13:39:54 -05:00
Nathan Froyd
4e03eee08a Bug 1443316 - part 1 - micro-optimize purging expired preflight cache entries; r=ckerschb
The entries in mMethods and mHeaders aren't sorted in any special way,
so we can remove expired entries using UnorderedRemoveElementAt, which
is faster than RemoveElementAt.
2018-03-07 13:39:54 -05:00
Honza Bambas
8aaa7351b0 Bug 1438935 - Serialize selected LoadInfo properties from HTTPChannelParent to HTTPChannelChild through OnStartRequest and Redirect1Begin, r=asuth
--HG--
extra : rebase_source : 6d93112fbd0bcd9562094a05c70cb02e0c3bb4b9
2018-03-06 08:07:00 +02:00
Nika Layzell
7f7a76ec67 Bug 1440771 - Part 4: Use nsCOMPtr<nsIInputStream> directly in PNecko, r=baku
MozReview-Commit-ID: COnMiadbCjn
2018-03-05 16:00:06 -05:00
Valentin Gosu
f102a081b2 Bug 1434163 - Make all nsIURI attributes readonly r=mayhemer
MozReview-Commit-ID: KtjO8VWjPF5

--HG--
extra : rebase_source : 061a6db73e36b3a0b3732d44379bbc10e8268f9a
2018-02-27 00:07:48 +01:00
Ben Kelly
6a92d27239 Bug 1440775 Make fetch API force-cache and only-if-cached use VALIDATE_NEVER instead of LOAD_FROM_CACHE. r=mayhemer 2018-03-01 07:37:31 -08:00
Ben Kelly
251a6dfaf4 Bug 1440565 P1 Make sure to clear any existing cache related load flags when setting the default fetch() RequestCache value. r=asuth 2018-02-28 10:34:13 -08:00
Sebastian Hengst
769222fadf merge mozilla-inbound to mozilla-central. a=merge
--HG--
rename : browser/base/content/tabbrowser.xml => browser/base/content/tabbrowser.js
2018-02-28 12:54:12 +02:00
Nathan Froyd
b5d5605a54 Bug 1441584 - part 2 - declare some URI classes final; r=valentin 2018-02-27 20:13:57 -05:00