Commit Graph

119 Commits

Author SHA1 Message Date
Henri Sivonen
3edc601325 Bug 1402247 - Use encoding_rs for XPCOM string encoding conversions. r=Nika,erahm,froydnj.
Correctness improvements:

 * UTF errors are handled safely per spec instead of dangerously truncating
   strings.

 * There are fewer converter implementations.

Performance improvements:

 * The old code did exact buffer length math, which meant doing UTF math twice
   on each input string (once for length calculation and another time for
   conversion). Exact length math is more complicated when handling errors
   properly, which the old code didn't do. The new code does UTF math on the
   string content only once (when converting) but risks allocating more than
   once. There are heuristics in place to lower the probability of
   reallocation in cases where the double math avoidance isn't enough of a
   saving to absorb an allocation and memcpy.

 * Previously, in UTF-16 <-> UTF-8 conversions, an ASCII prefix was optimized
   but a single non-ASCII code point pessimized the rest of the string. The
   new code tries to get back on the fast ASCII path.

 * UTF-16 to Latin1 conversion guarantees less about handling of out-of-range
   input to eliminate an operation from the inner loop on x86/x86_64.

 * When assigning to a pre-existing string, the new code tries to reuse the
   old buffer instead of first releasing the old buffer and then allocating a
   new one.

 * When reallocating from the new code, the memcpy covers only the data that
   is part of the logical length of the old string instead of memcpying the
   whole capacity. (For old callers old excess memcpy behavior is preserved
   due to bogus callers. See bug 1472113.)

 * UTF-8 strings in XPConnect that are in the Latin1 range are passed to
   SpiderMonkey as Latin1.

New features:

 * Conversion between UTF-8 and Latin1 is added in order to enable faster
   future interop between Rust code (or otherwise UTF-8-using code) and text
   node and SpiderMonkey code that uses Latin1.

MozReview-Commit-ID: JaJuExfILM9
2018-08-14 14:43:42 +03:00
Kyle Machulis
04b50a312d Bug 1480607 - Remove nsCWebBrowser and nsCWebBrowserPersist; r=nika
It doesn't appear these IDL files have had interfaces in them since
before the Netscape import, and were mostly just hanging around
because they contained some IDs needed elsewhere. Move the IDs
somewhere more appropriate and remove files.

MozReview-Commit-ID: AINtTerqHu1

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

--HG--
extra : moz-landing-system : lando
2018-08-07 01:10:31 +00:00
Boris Zbarsky
634a492dda Bug 1476145 part 9. Drop support for getting window utils via getInterface. r=nika 2018-07-24 19:47:43 -04:00
Gijs Kruitbosch
037abab7e3 Bug 1473509 - store principal information with the URIs to avoid having to locate documents after the fact, r=mccr8
The way we currently save resource URIs that we discovered by walking the document
isn't guaranteed to be in-order with when we save the documents they came from.
To deduce the correct principal to use to load these subresources, we need to
store it with the resource in the map of URIs we work with.

MozReview-Commit-ID: GNlNuS6TuVV

--HG--
extra : rebase_source : 99982f91971423730aa8661cf66c2dd14e276780
2018-07-06 17:27:17 +01:00
Gijs Kruitbosch
a68567a1a8 Bug 1473507 - fix crash in nsILoadInfo::GetOriginAttributes when passing no principal to SavePrivacyAwareURI, r=mccr8
Enforce that callers pass triggering principals through to any persist APIs,
which all delegate to SaveURIInternal.

Also add the missing principal information to the saveURL call in the page
info dialog code, which was triggering crashes in this way.

MozReview-Commit-ID: L9pNE7BxGws

--HG--
extra : rebase_source : 957d765f965aa4f942532c693cae36addd8b781d
2018-07-05 23:50:45 +01:00
Gijs Kruitbosch
09a107bc24 Bug 1469916, r=ckerschb,jkt
--HG--
extra : rebase_source : 180442deeef92f0e9202d76c5e4e46b630072d99
extra : source : be11a32900298eb6fd4d18ad21b9a699995254c3
2018-06-22 15:41:39 +01:00
Gijs Kruitbosch
9396488809 Backed out changeset be11a3290029 (bug 1469916) for test orange involving Not enough arguments [nsIWebBrowserPersist.saveURI] 2018-07-03 15:45:13 +01:00
Gijs Kruitbosch
0d0616cad1 Bug 1469916, r=ckerschb,jkt
--HG--
extra : rebase_source : 5c2f49af85664fdb5375f6dc4cc57d6913f1eff9
2018-06-22 15:41:39 +01:00
Jeff Gilbert
5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Valentin Gosu
a8e3a8c349 Bug 1448330 - Make nsIURI.clone a private method r=mayhemer
MozReview-Commit-ID: 1efpeaEPaXP

--HG--
extra : rebase_source : e660f1e5bcae9b7119bc5b37713691069272b375
2018-06-14 13:05:43 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Boris Zbarsky
bea3100e53 Bug 1455676 part 14. Remove most use of nsIDOMNode in dom/. r=qdot 2018-05-29 22:58:49 -04:00
Boris Zbarsky
931b9e37ad Bug 1455676 part 10. Remove use of nsIDOMNode from remaining xpidl. r=qdot 2018-05-29 22:58:49 -04:00
Kris Maglione
6b12d08f7d Bug 1462937: Update callers to use nsIFile::GetDirectoryEntries as a nsIDirectoryEnumerator. r=froydnj
MozReview-Commit-ID: Iv4T1MVAF5

--HG--
extra : rebase_source : 1c518883d082884db7f9323a5acc20361228c26b
extra : histedit_source : 70a73c23d1199d3bfbb5379c78930401166c094b
2018-05-19 20:17:45 -07:00
Adrian Wielgosik
c501e3beb0 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle

--HG--
extra : rebase_source : a48b7c72a0f7ede38c91149a04d5de53987736f1
2018-05-11 19:46:15 +02:00
Adrian Wielgosik
b3c501adc4 Bug 1447389 - Remove nsIDOMNodeList. r=bz
MozReview-Commit-ID: 11szZP6dS6V

--HG--
extra : rebase_source : 9acfb352750e53d3b36684fa945a18e817c9b82e
2018-04-25 23:01:30 +02:00
Jeff Walden
821db93ccc Bug 1453456 - Replace nsCRT::IsAscii{Alpha,Digit} with mfbt/TextUtils.h versions. r=froydnj
--HG--
extra : rebase_source : b31986c0e6828be79442cfb0cf369eb80c232139
2018-04-12 20:19:30 -07: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
Boris Zbarsky
eb5f28a236 Bug 1452321. Remove nsIWebBrowserPersistable. r=mystor
MozReview-Commit-ID: CCw86gAtKn3
2018-04-09 16:30:33 -04:00
Boris Zbarsky
e15f8f10ff Bug 1444143 part 12. Remove use of nsIFrameLoader from XPIDL files. r=mystor
MozReview-Commit-ID: 8pZ655SgrZ0
2018-03-21 22:43:17 -04:00
Boris Zbarsky
29d232e53f Bug 1447098 part 1. Rename FromContent on various DOM classes to FromNode. r=mystor
MozReview-Commit-ID: 202nkbmkwfR
2018-03-21 17:39:04 -04:00
Boris Zbarsky
000840f44a Bug 1446533 part 3. Remove nsIDOMCharacterData::Get/SetData. r=mystor
MozReview-Commit-ID: 5YeaCPwvIJH
2018-03-19 15:18:07 -04:00
Boris Zbarsky
aa152ba529 Bug 1446599 part 2. Stop using nsIDOMProcessingInstruction in webbrowserpersist. r=mystor
MozReview-Commit-ID: 51QLffCZeW1
2018-03-19 15:15:39 -04:00
Boris Zbarsky
4fa4d2a7f5 Bug 1446598 part 2. Get rid of nsIDOMComment. r=mystor
MozReview-Commit-ID: GGXPQnlwuUM
2018-03-19 15:15:39 -04:00
Sylvestre Ledru
fa45a3c670 Bug 1443080 - Use the static call for static methods (not instance) r=Ehsan
MozReview-Commit-ID: JwHh4bzxuTR

--HG--
extra : rebase_source : 5f5e37517aa80c2e7b5933962178d761074886e7
2018-03-16 14:29:15 +01:00
Coroiu Cristina
0f6841e0d2 Backed out 2 changesets (bug 1443080) for spidermonkey build bustage at build/src/js/src/jit/BaselineCacheIRCompiler.cpp
Backed out changeset 7d509bb8a35d (bug 1443080)
Backed out changeset 53bdcd5937cd (bug 1443080)

--HG--
extra : rebase_source : 59b5350d2959c0b065aedd34bfe8337216c0ea4b
2018-03-14 11:13:21 +02:00
Sylvestre Ledru
c07eb73986 Bug 1443080 - Use the static call for static methods (not instance) r=Ehsan
MozReview-Commit-ID: JwHh4bzxuTR

--HG--
extra : rebase_source : 17c91bfd7241e3e522b1413b6e544df74f5361a0
2018-03-05 13:43:54 +01:00
Valentin Gosu
84b854ce2c Bug 1433958 - Change code that sets nsIURI.userPass to use nsIURIMutator r=mayhemer
* Code in XMLHttpRequestMainThread is converted to set the username and password individually. This is because when the parameters are empty, it ended up calling SetUserPass(":") which always returns an error.

MozReview-Commit-ID: 3cK5HeyzjFE

--HG--
extra : rebase_source : f34400c11245d88648b0ae9c196637628afa9517
2018-02-26 20:43:46 +01:00
Valentin Gosu
7bd0336d01 Bug 1433958 - Change code that sets nsIURI.pathQueryRef to use nsIURIMutator r=mayhemer
MozReview-Commit-ID: HVyZ3E1XuLN

--HG--
extra : rebase_source : fd122b3122e0f3eb371d429bd86ad35d09dcfbf6
2018-02-26 20:43:45 +01:00
Valentin Gosu
a55742105b Bug 1436589 - Use nsIFileURLMutator::SetFile in nsWebBrowserPersist.cpp r=baku,mayhemer
* Uses NS_MutateURI in order to call nsIFileURLMutator::SetFile
* After changing the URL to append the correct file extension it also changes
  the nsWebBrowserPersist::mURIMap entry to reflect these changes

MozReview-Commit-ID: GCBK5hBurGd

--HG--
extra : rebase_source : 1328bbc94d5ad0aabc340536386834fafbfbbf78
2018-02-26 20:28:20 +01:00
Adrian Wielgosik
2d4df58ad8 Bug 1439751 - Remove all members from nsIDOMHTMLInputElement. r=qdot
MozReview-Commit-ID: JVagEzvSONN

--HG--
extra : rebase_source : a7e1cf2e5ccc1925f3a11c7d935438ef6307c70c
2018-02-20 23:10:44 +01:00
Valentin Gosu
55a7a824c6 Bug 1435671 - Reduce binary size by making NS_MutateURI.Apply not be a templated method r=mayhemer
We instead add a templated method NS_MutatorMethod that returns a std::function<nsresult(nsIURIMutator*)> which Apply then calls with mMutator as an argument.
The function returned by NS_MutatorMethod performs a QueryInterface, then calls the passed method with arguments on the result.

MozReview-Commit-ID: Jjqp7gGLG1D

--HG--
extra : rebase_source : f2a17aee7bb66a7ba8652817d43b9aa7ec7ef710
2018-02-21 01:00:54 +01:00
nbeleuzu@mozilla.com
01eef6aff1 Backed out changeset c9dcce0a1068 (bug 1435671) for build bustages on nsIURIMutator.h. CLOSED TREE 2018-02-21 00:06:46 +02:00
Valentin Gosu
f1850e9354 Bug 1435671 - Reduce binary size by making NS_MutateURI.Apply not be a templated method r=mayhemer
We instead add a templated method NS_MutatorMethod that returns a std::function<nsresult(nsIURIMutator*)> which Apply then calls with mMutator as an argument.
The function returned by NS_MutatorMethod performs a QueryInterface, then calls the passed method with arguments on the result.

MozReview-Commit-ID: Jjqp7gGLG1D

--HG--
extra : rebase_source : 592d13349a8c4627c7ce3146ec592f577b39f3cc
2018-02-20 22:39:40 +01:00
Kyle Machulis
384f6ede78 Bug 1407040 - Change nsIDOMHTMLMediaElement QIs to Media/Video type checks; r=bz
Change all QIs or instanceof checks against nsIDOMHTMLMediaElement to
check against HTMLVideoElement/HTMLAudioElement.

MozReview-Commit-ID: EpywwFGK33C

--HG--
extra : rebase_source : 3eff2df9580074ed0a71c8fa6750d84a4750fde8
2018-02-14 21:14:06 -08:00
Valentin Gosu
4aade813b4 Bug 1435772 - File extensions are stripped out from saved web page source, leading to 404 errors r=me
Backs out the part of part of changeset a20fbbe7b948 (Bug 1432602) that uses nsIURIMutator instead of calling nsIFileURL::SetFile()

MozReview-Commit-ID: 9mC3fv85pUl
2018-02-07 17:30:13 +01:00
Boris Zbarsky
7a9f022f1a Bug 1434819 part 7. Remove the SHOW_* constants from nsIDOMNodeFilter. r=qdot
MozReview-Commit-ID: 7E2KZkLfbSI
2018-02-01 14:26:12 -05:00
Boris Zbarsky
7946bcf30a Bug 1434819 part 3. Stop using XPCOM treewalker bits in webbrowserpersist. r=qdot
MozReview-Commit-ID: GmY7L4p00D1
2018-02-01 14:26:12 -05:00
Boris Zbarsky
478687c2e8 Bug 1434686 part 4. Use IgnoreErrors() in dom/. r=mystor
MozReview-Commit-ID: GwVDrTLPTOb
2018-02-01 14:21:14 -05: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
Boris Zbarsky
0935ca9973 Bug 1434318 part 12. Remove nsIDOMDocument's contentType attribute. r=mystor
MozReview-Commit-ID: DAXrxIxiac4
2018-01-31 15:18:11 -05:00
Boris Zbarsky
d42eaf220e Bug 1434318 part 9. Remove nsIDOMDocument::CreateTreeWalker. r=mystor
MozReview-Commit-ID: 53JPEy7AQtp
2018-01-31 15:18:10 -05:00
Valentin Gosu
7183e543b2 Bug 1432320 - (Part 2) Change calls to nsIURL.{fileName,fileBaseName,fileExtension} setters to use nsIURLMutator r=mayhemer
MozReview-Commit-ID: D5aTl1i14gI

--HG--
extra : rebase_source : 6d4a8606da971426c554c31d188567cf1e6c8741
2018-01-31 02:33:06 +01:00
Boris Zbarsky
9da3878bc9 Bug 1418076 part 11. Eliminate the nsIDOMHTMLDocument interface. r=mystor
MozReview-Commit-ID: 4lEcUeenbg3
2018-01-26 01:03:25 -05:00
Boris Zbarsky
151487a675 Bug 1432944 part 10. Remove nsIDOMElement::SetAttribute. r=mccr8
MozReview-Commit-ID: 6eIdX8iA5Rg
2018-01-29 23:28:00 -05:00
Boris Zbarsky
f60fd673d6 Bug 1432186 part 19. Remove the nsIDOMNode::*_NODE constants. r=mccr8
MozReview-Commit-ID: KvKjeKIOB9K
2018-01-29 23:10:53 -05:00
Boris Zbarsky
37aaea3c1f Bug 1432186 part 16. Remove nsIDOMNode's ownerDocument attribute. r=mccr8
MozReview-Commit-ID: JqfAFxPBz41
2018-01-29 23:10:52 -05:00
Boris Zbarsky
cc90b5dd5b Bug 1432186 part 7. Remove nsIDOMNode's textContent attribute. r=mccr8
MozReview-Commit-ID: I5cIxa5WAk
2018-01-29 23:10:50 -05:00
Boris Zbarsky
abfab07da3 Bug 1432186 part 5. Remove nsIDOMNode's nodeType attribute. r=mccr8
MozReview-Commit-ID: LKsBgKcqtBS
2018-01-29 23:10:50 -05:00
Andrea Marchesini
c6da271117 Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug
* * *
Bug 1425458 - Resource timing entries Workers - part 10 - Correct parameters in NS_NewChannel in nsDataObj.cpp, r=me
2018-01-24 17:17:31 +01:00