Commit Graph

130 Commits

Author SHA1 Message Date
Nika Layzell
4f380cfe7d Bug 1444151 - Part 3: Only create a single allocation for MozURL objects, which is managed by rust, r=valentin
This patch rewrites the rust-url-capi crate as the mozurl crate, which
provides a threadsafe MozURL object which is compatible with the
previous MozURL class.

Creating a MozURL this way performs a single allocation, which contains
only a rust-url Url object and an atomic refcnt, however it is fully
compatible with the C++ RefPtr type.

This patch also exposes methods for accessing dependent substrings of
the serialized spec, meaning that string copies can be avoided in many
situations when inspecting attributes of the MozURL.




--HG--
rename : netwerk/base/rust-url-capi/.gitignore => netwerk/base/mozurl/.gitignore
2018-04-10 17:49:50 -04:00
Valentin Gosu
83e7f0c0ea Bug 1447190 - Remove internal mutability from nsStandardURL r=mayhemer
* Removes mSpecEncoding since the spec is always ASCII encoded
* nsStandardURL::InitGlobalObjects is now called from nsNetStartup
* Removes prefObserver from nsStandardURL
* mDisplayHost is now initialized every time that we change the hostname
* Adds locking to the gAllURLs list

MozReview-Commit-ID: 93mwECxYxWl
* * *
[mq]: overfix

MozReview-Commit-ID: 98nyTYa5ZeR

--HG--
extra : rebase_source : 82045e10771038d7168d1f235143c24c72dd5a45
2018-03-22 02:59:32 +01:00
Valentin Gosu
87857475e6 Bug 1433609 - Ensure that deserialized URL is correct r=mayhemer
MozReview-Commit-ID: BMQfPzPhDhc
2018-02-14 14:40:05 +01: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
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
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
Valentin Gosu
823bcbf677 Bug 1434766 - Make nsIFileURL attributes readonly r=mayhemer
MozReview-Commit-ID: AN5EzyuuKuJ

--HG--
extra : rebase_source : 20794ce1c867915b4cae71b7abb9dcdca27fd290
2018-02-26 05:24:09 +01:00
arthur.iakab
17cd218519 Backed out changeset 56336c4873fe (bug 1434766) for build bustages on a CLOSED TREE 2018-02-27 17:14:15 +02:00
Valentin Gosu
f77fba2c4c Bug 1434766 - Make nsIFileURL attributes readonly r=mayhemer
MozReview-Commit-ID: AN5EzyuuKuJ

--HG--
extra : rebase_source : 2d986fa39930469472f24a208d9b06650ddb78f4
2018-02-26 05:24:09 +01:00
Valentin Gosu
2a78b51a84 Bug 1433958 - If setting the host succeeds, SetHostPort should not return an error code r=mayhemer
WebPlatformTests expect that when calling
url.host = "host:" // port missing
url.host = "host:65536" // port too big
url.host = "host:bla" // invalid port
that the hostname will be set, but the port will be left unchanged.
Since DOM APIs are the only consumers for SetHostPort it means we can change this behaviour to match the WPT expectations.
As such, SetHostPort will return NS_OK if setting the host succeded, and will ignore if setting the port failed.

MozReview-Commit-ID: LoMw8hCWlCv

--HG--
extra : rebase_source : db28b73d98060c2f66f899afe1a4ae26f4db85db
2018-02-26 20:43:47 +01:00
Valentin Gosu
139db586dc Bug 1433958 - Don't fail when setting an empty password if the username is already empty r=mayhemer
We normally fail in nsStandardURL::SetPassword if the username is empty.
But if the password we are trying to set is also empty, we should't really fail.

MozReview-Commit-ID: FIDqkPrb1gp

--HG--
extra : rebase_source : 9080c44e91e27acd210f3ace3a234528513928c3
2018-02-26 20:43:46 +01:00
Valentin Gosu
3c233e8b30 Bug 1432519 - Make nsIURL attributes readonly r=mayhemer
MozReview-Commit-ID: KuPILT7rX6N

--HG--
extra : rebase_source : 75b84d74d74539ed3b178480cfa0aa37cfc9d947
2018-01-31 03:06:58 +01:00
Valentin Gosu
2cf8889195 Bug 1432257 - Remove nsIStandardURL setter methods r=mayhemer
* Removes nsIStandardURL.{init,setDefaultPort} as these have been migrated to nsIStandardURLMutator

MozReview-Commit-ID: 7JPZmyEr65h

--HG--
extra : rebase_source : 5c40f1ff8eff0f73b54fb148923bab7b8b2270a7
2018-01-22 20:20:18 +01:00
Valentin Gosu
033570496c Bug 1432602 - Add nsIFileURLMutator.setFile() r=mayhemer
MozReview-Commit-ID: EF2vVYoN8bg

--HG--
extra : rebase_source : 5d2b6fa353f0a0eb189fd08f9fda2bbf1ced30bb
2018-01-31 22:40:45 +01:00
Valentin Gosu
d4c640e9f7 Bug 1432320 - (Part 1) Add nsIURLMutator r=mayhemer
MozReview-Commit-ID: 8GYru46kFQE

--HG--
extra : rebase_source : 064fae8d2e31db071da524b1946f135dda01cc1a
2018-01-31 02:32:27 +01:00
Masatoshi Kimura
32bbccbd78 Bug 685236 - Stop using GetNativePath in netwerk/. r=mayhemer
MozReview-Commit-ID: JdHhXPiS0fv

--HG--
extra : source : ef77ec8c110852b74e251c28753467a79bad7d2a
extra : intermediate-source : 7e5b9d09196916daac73b23c58c6fe870f223970
2017-12-15 20:21:19 +09:00
Valentin Gosu
358af2c859 Bug 1432187 - Add nsIStandardURLMutator interface r=mayhemer
MozReview-Commit-ID: 4IbdO2gMwox

--HG--
extra : rebase_source : 4f64f44bc1f8e8ee4538c7624f00ab76cc914fae
2018-01-23 23:13:04 +01:00
Valentin Gosu
ea4e6b68ff Bug 1431204 - Make nsIURI.spec readonly r=mayhemer
MozReview-Commit-ID: 1l1CBUotIPh

--HG--
extra : rebase_source : 92af70ad412719d93222551b658f313cefd85e75
2018-01-19 15:26:07 +01:00
Masatoshi Kimura
8b05ff3704 Bug 1427023 - Remove nsCRT::strncmp. r=erahm 2018-01-09 23:49:37 +09:00
shindli
7ba06ee564 Backed out 2 changesets (bug 1420954) for build failure in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsIURIMutator.h:340:3: r=backout on a CLOSED TREE
Backed out changeset 8ce0a0d49d9e (bug 1420954)
Backed out changeset 480c6e1721e9 (bug 1420954)
2017-12-03 01:10:14 +02:00
Valentin Gosu
936a9adfc0 Bug 1420954 - Add NS_MutateURI helper function to chain nsIURIMutator setters in C++ r=bagder
MozReview-Commit-ID: 79NlOm08ebz

--HG--
extra : rebase_source : 2cb95ec86bd9dadbbaf233e6289bcb9d3087cd65
2017-12-02 23:15:55 +01:00
Valentin Gosu
d2d8524673 Bug 1415205 - Add nsIURIMutator impls for all objects implementing nsIURI r=bagder
This also changes URIUtils.cpp:DeserializeURI() to use the mutator to instantiate new URIs, instead of using their default constructor.

MozReview-Commit-ID: JQOvIquuQAP

--HG--
extra : rebase_source : e146624c5ae423f7f69a738aaaafaa55dd0940d9
2017-11-20 17:11:30 +01:00
Chris Peterson
feb58d9d37 Bug 1416164 - Replace NS_NOTYETIMPLEMENTED with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: B5TZB3v52wY

--HG--
extra : rebase_source : 56bef4eead24901191f190e31d2841710097cdcf
2017-10-25 00:37:02 -07:00
Valentin Gosu
132162d150 Bug 1415206 - Remove RustURL from Gecko r=bagder
This class isn't being used right now, and MozURL is a much better alternative if interaction with rust URLs is required.

MozReview-Commit-ID: ADdYRrrTnr6

--HG--
extra : rebase_source : b36aa26c20e7daaadab1f3360bab0ed4681eb7f8
2017-11-07 17:11:08 +01:00
Nicholas Nethercote
78030c0e7b Bug 1409598 - Change nsIXPCScriptable::className and nsIClassInfo::{contractID,classDescription} from string to AUTF8String. r=froydnj.
This lets us replace moz_xstrdup() of string literals with AssignLiteral(),
among other improvements.

--HG--
extra : rebase_source : 9994d8ccb4f196cf63564b0dac2ae6c4370defb4
2017-10-18 13:17:26 +11:00
Chris Peterson
14c40f3dac Bug 1402666 - Part 1: Replace Replace("") with ReplaceLiteral(""). r=erahm
MozReview-Commit-ID: s2hrTSkBiJ

--HG--
extra : rebase_source : d3b3551ed7ed1d5c8f70fc98d72510a13868ada1
extra : source : 1c45e10702e7884cd536a25b1d39c3de90fd2914
2017-09-15 19:22:58 -07:00
Valentin Gosu
7520c99a2c Bug 1380617 - Add nsIURI.displayPrePath r=mcmanus,Gijs
- Use displayPrePath in the pageInfo permissions that shows "Permissions for:"
- The extra displayPrePath method is necessary because it's difficult to compute it manually, as opposed to not having a displaySpecWithoutRef - as it's easy to get that by truncating displaySpec at the first '#' symbol.

MozReview-Commit-ID: 9RM5kQ2OqfC
2017-08-09 17:43:58 +02:00
Masatoshi Kimura
8ed4a80a4e Bug 1322874 - Get rid of nsIURI.originCharset. r=valentin.gosu
nsIURI.originCharset had two use cases:
 1) Dealing with the spec-incompliant feature of escapes in the hash
    (reference) part of the URL.
 2) For UI display of non-UTF-8 URLs.

For hash part handling, we use the document charset instead. For pretty
display of query strings on legacy-encoded pages, we no longer care to them
(see bug 817374 comment 18).

Also, the URL Standard has no concept of "origin charset". This patch
removes nsIURI.originCharset for reducing complexity and spec compliance.

MozReview-Commit-ID: 3tHd0VCWSqF

--HG--
extra : rebase_source : b2caa01f75e5dd26078a7679fd7caa319a65af14
2017-08-02 20:43:30 +09:00
Masatoshi Kimura
f143125cc2 Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu
MozReview-Commit-ID: DqJdTGopR9G

--HG--
extra : rebase_source : e8c9eb03468c075b79013b6e0bd8b367229c24cd
2017-07-29 20:50:21 +09:00
Valentin Gosu
da0fc06913 Bug 1386195 - mDisplayHost must be initalized even when host does not start with xn-- r=dragana
MozReview-Commit-ID: HnDqw8oyE2r
2017-08-01 14:24:53 +03:00
Valentin Gosu
6f0b819964 Bug 1385883 - nsStandardURL - make sure we always check if the host is ascii r=jduell
SetRef and several other methods call InvalidateCache, which in turn sets mCheckedIfHostA to false.
That means that each time before trying to access mDisplayHost we need to make sure it is properly initalized.

MozReview-Commit-ID: Agtsy6Lx7Nb
2017-08-01 01:51:48 +03:00
Catalin Badea
bd7f60e72e Bug 1344751 - Make nsStandardURL and nsIDNService available on worker threads. r=valentin 2017-07-13 12:17:19 +01:00
Valentin Gosu
aef4546a8f Bug 945240 - Add a pref to be able to restore previous behaviour where nsIURI.host/.spec returned unicode instead of punycode r=mcmanus
This is to deal with possible bugs or web-compat issues that may arrise.
Also fixes GetDisplayHostPort which would not return the correct brackets for IPv6 addresses

MozReview-Commit-ID: 3OfiBDND5Cs
* * *
[mq]: fix_ipv6_hostport.patch

MozReview-Commit-ID: 3VYCwlt7IGT

--HG--
extra : rebase_source : a1e97b426de2ed7f5e00023407d1fcd81eb0df0e
2017-07-11 19:10:10 +02:00
Valentin Gosu
f957fd9eef Bug 945240 - Make nsIURI.host & variants return ASCII strings r=mcmanus
* nsStandardURL::GetHost/GetHostPort/GetSpec contain an punycode encoded hostname.
* Added nsIURI::GetDisplayHost/GetDisplayHostPort/GetDisplaySpec which have unicode hostnames, depending on the hostname, character blacklist and the network.IDN_show_punycode pref
* remove mHostEncoding since it's not needed anymore (the hostname is always ASCII encoded)
* Add mCheckedIfHostA to know when GetDisplayHost can return the regular host, or when we need to use the cached mDisplayHost

MozReview-Commit-ID: 4qV9Ynhr2Jl
* * *
Bug 945240 - Make sure nsIURI.specIgnoringRef/.getSensitiveInfoHiddenSpec/.prePath contain unicode hosts when network.standard-url.punycode-host is set to false r=mcmanus

MozReview-Commit-ID: F6bZuHOWEsj

--HG--
extra : rebase_source : d8ae8bf774eb22b549370ca96565bafc930faf51
2017-07-11 19:09:10 +02:00
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Nicholas Nethercote
f1364a75ea Bug 1374580 (part 3) - Remove ns{,C}Substring typedefs. r=froydnj.
All the instances are converted as follows.

- nsSubstring  --> nsAString
- nsCSubstring --> nsACString

--HG--
extra : rebase_source : cfd2238c52e3cb4d13e3bd5ddb80ba6584ab6d91
2017-06-20 19:19:52 +10:00
Nicholas Nethercote
fe9268c4cd Bug 1374580 (part 2) - Remove nsAFlat{,C}String typedefs. r=froydnj.
All the instances are converted as follows.

- nsAFlatString  --> nsString
- nsAFlatCString --> nsCString

--HG--
extra : rebase_source : b37350642c58a85a08363df2e7c610873faa6e41
2017-06-20 19:19:05 +10:00
Nicholas Nethercote
1572f96f5d Bug 1374580 (part 1) - Remove nsASingleFragment{,C}String typedefs. r=froydnj.
All the instances are converted as follows.

- nsASingleFragmentString  --> nsAString
- nsASingleFragmentCString --> nsACString

--HG--
extra : rebase_source : e6a1ddc8938fecd9a735b15e872c054edf4c7910
2017-06-20 19:18:17 +10:00
Henri Sivonen
432653453a Bug 1261841 part 2 - Use encoding_rs instead of uconv. r=emk,mystor.
MozReview-Commit-ID: 15Y5GTX98bv
2017-06-13 13:23:23 +03:00
Milan Sreckovic
43933b80d8 Bug 1358225: Validate characters with a cached lookup array. About 10-15% improvement on TestStandardURL.Perf gtest. r=valentin.gosu
MozReview-Commit-ID: KMABJ3X6IZ1

--HG--
extra : rebase_source : c5bde6642a193e47628226a38d6ec9d8366aaa90
2017-05-15 11:53:40 -04:00
Milan Sreckovic
da5b96ea90 Bug 1304605: Part 2. Optimizing NormalizeIPv4. Seems to be 4-6x faster. r=valentin.gosu
MozReview-Commit-ID: FjkNmbW5I93

--HG--
extra : rebase_source : f3b6e2c07e9376b6b25a62a93cffc4a58584e243
2017-04-26 12:02:58 -04:00
Milan Sreckovic
ff6839a8e1 Bug 1304605: Part 1. Unit tests, including performance, for NormalizeIPv4. r=valentin.gosu
MozReview-Commit-ID: KAecFlYTUfW

--HG--
extra : rebase_source : cddfd6fd05f33d2d2c50caf66669d87dc2f79ce7
2017-04-26 11:56:16 -04:00
dOn'tReallycAre
7686899ef4 Bug 1357155 - Convert PRCList usage in nsStandardURL to LinkedList. r=erahm 2017-04-21 01:46:12 +09:00
Valentin Gosu
e0f474ede9 Bug 1326175 - Stop preserving empty passwords in URLs r=mcmanus
MozReview-Commit-ID: 7wdZSJmpErF

--HG--
extra : rebase_source : 100061a5c1921f1a10cf339207548aceb3afbe49
2017-03-27 23:56:28 +02:00
Valentin Gosu
1c5fbd8c6e Bug 1342438 - Remove url .hash encoding/decoding prefs r=bagder
These prefs have been added close to two years ago:
dom.url.encode_decode_hash and dom.url.getters_decode_hash
The main reason for their existence was in case we encounter any web-compat issues. At this point the extra code is mostly useless, and flipping the pref may lead to crashes.

MozReview-Commit-ID: LhAHkYmv0TR

--HG--
extra : rebase_source : 8f2d50d5633496cf165b3925d952bb6475bce3e0
2017-03-08 22:19:34 +01:00
Valentin Gosu
5847af980b Bug 1324243 - Normalize IPv6 r=manishearth
MozReview-Commit-ID: 1UFIdeWrz1E

--HG--
extra : rebase_source : cb7e44b0afe06426e3268e80d94a2f59af633b9b
2017-03-09 00:55:05 +01:00
Carsten "Tomcat" Book
a25648d3cd Backed out changeset 189b914221f4 (bug 1324243) for wpt-11 bustage 2017-03-06 14:13:03 +01:00
Valentin Gosu
0cb0b2702b Bug 1324243 - Normalize IPv6 r=manishearth
MozReview-Commit-ID: Kxe9eLqvKp6

--HG--
extra : rebase_source : 195cafb81adeb9d5fa0a84535144debe1b26f6ff
2017-03-01 00:01:15 +01:00
Eric Rahm
6d6da9f240 Bug 1332202 - Followup to fix comment to say infallible. DONTBUILD r=me
MozReview-Commit-ID: ByRWrv7nGnM
2017-02-16 11:52:54 -08:00