[Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source...
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-03-04  Andy Estes  <aestes@apple.com>
2
3         [Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
4         https://bugs.webkit.org/show_bug.cgi?id=195080
5         <rdar://problem/48421558>
6
7         Reviewed by Antti Koivisto.
8
9         * wtf/FeatureDefines.h:
10
11 2019-03-04  Michael Catanzaro  <mcatanzaro@igalia.com>
12
13         URLHelpers should use unorm2_quickCheck before converting to NFC
14         https://bugs.webkit.org/show_bug.cgi?id=194272
15
16         Reviewed by Darin Adler.
17
18         If the string is already in normalization form C, don't try to normalize it.
19
20         * wtf/URLHelpers.cpp:
21         (WTF::URLHelpers::toNormalizationFormC):
22
23 2019-03-02  Darin Adler  <darin@apple.com>
24
25         Retire legacy dtoa function and DecimalNumber class
26         https://bugs.webkit.org/show_bug.cgi?id=195253
27
28         Reviewed by Daniel Bates.
29
30         * WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
31         * wtf/CMakeLists.txt: Ditto.
32
33         * wtf/DecimalNumber.cpp: Removed.
34         * wtf/DecimalNumber.h: Removed.
35
36         * wtf/JSONValues.cpp:
37         (WTF::JSONImpl::Value::writeJSON const): Use
38         StringBuilder::appendECMAScriptNumber instead of custom logic
39         using the DecimalNumber class.
40
41         * wtf/dtoa.cpp:
42         (WTF::storeInc): Deleted.
43         (WTF::BigInt): Deleted.
44         (WTF::multadd): Deleted.
45         (WTF::hi0bits): Deleted.
46         (WTF::lo0bits): Deleted.
47         (WTF::i2b): Deleted.
48         (WTF::mult): Deleted.
49         (WTF::P5Node::P5Node): Deleted.
50         (WTF::pow5mult): Deleted.
51         (WTF::lshift): Deleted.
52         (WTF::cmp): Deleted.
53         (WTF::diff): Deleted.
54         (WTF::d2b): Deleted.
55         (WTF::quorem): Deleted.
56         (WTF::dtoa): Deleted.
57
58         * wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.
59
60 2019-02-27  Darin Adler  <darin@apple.com>
61
62         Fixed makeString(float) to do shortest-form serialization without first converting to double
63         https://bugs.webkit.org/show_bug.cgi?id=195142
64
65         Reviewed by Daniel Bates.
66
67         * wtf/DecimalNumber.cpp: Removed unneeded includes.
68
69         * wtf/DecimalNumber.h: Removed unused constructors; over time we will be
70         deprecating DecimalNumber, so we should removed the unused parts. Also
71         marked the constructor explicit, removed types used only for arguments for
72         the constructors, and removed the sign, exponent, significand, and precision
73         member functions.
74
75         * wtf/JSONValues.cpp:
76         (WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
77         switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
78         std::array instead of C arrays.
79
80         * wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.
81         (WTF::dtoa): Updated to use std::array instead of C arrays.
82         (WTF::dtoaRoundSF): Removed.
83         (WTF::dtoaRoundDP): Removed.
84         (WTF::numberToString): Added an overload for float and updated to use std::array.
85         (WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
86         (WTF::numberToFixedPrecisionString): Ditto.
87         (WTF::numberToFixedWidthString): Ditto.
88
89         * wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the
90         array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
91         Added float overloads for numberToString, numberToFixedPrecisionString,
92         and numberToFixedWidthString. The only one of these that is called at this
93         time is numberToString, called by the floating point StringTypeAdapter in
94         StringConcatenateNummbers.h.
95
96         * wtf/text/StringConcatenateNumbers.h: Updated for std::array.
97
98 2019-03-01  Darin Adler  <darin@apple.com>
99
100         Finish removing String::format
101         https://bugs.webkit.org/show_bug.cgi?id=194893
102
103         Reviewed by Daniel Bates.
104
105         * wtf/Assertions.cpp:
106         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
107         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
108
109         * wtf/HexNumber.h: Deleted unneeded toString function.
110
111         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
112         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
113         a bit. Use function templates for writeTo functions rather than having two of each.
114         Removed unused toString functions. Optimized case where we use have a UChar* and
115         a length of zero to not force the result to be 16-bit. Also gets rid of a small
116         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
117         static member helper functions to compute string lengths. Added the pad function
118         and the PaddingSpecification struct template, so we can add padding to anything
119         we can turn into a string. Got rid of the special case overload for single
120         arguments, since it only worked for things that the String constructor can handle.
121         Instead we will now use StringTypeAdapter, which works for more types. Possibly
122         less optimal for some special cases, which we could specialize for later if we like.
123         * wtf/text/StringConcatenateNumbers.h: Ditto.
124         * wtf/text/StringOperators.h: Ditto.
125         * wtf/text/StringView.h: Ditto.
126
127         * wtf/text/WTFString.cpp:
128         (WTF::createWithFormatAndArguments): Deleted.
129         (WTF::String::format): Deleted.
130         * wtf/text/WTFString.h: Deleted declaration of String::format.
131
132 2019-03-01  Alex Christensen  <achristensen@webkit.org>
133
134         Revert r241223, r241235, and r241287
135         https://bugs.webkit.org/show_bug.cgi?id=194427
136         <rdar://48045861>
137
138         * wtf/spi/darwin/XPCSPI.h:
139
140 2019-03-01  Simon Fraser  <simon.fraser@apple.com>
141
142         Add a system trace scope for event region building
143         https://bugs.webkit.org/show_bug.cgi?id=195226
144
145         Reviewed by Jon Lee.
146
147         This trace scope measures the time spend converting element rects into Region objects,
148         which can be large on some pages.
149
150         The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.
151
152         * wtf/SystemTracing.h:
153
154 2019-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
155
156         [JSC] sizeof(JSString) should be 16
157         https://bugs.webkit.org/show_bug.cgi?id=194375
158
159         Reviewed by Saam Barati.
160
161         * wtf/text/StringImpl.h:
162         (WTF::StringImpl::flagIs8Bit):
163         (WTF::StringImpl::flagIsAtomic):
164         (WTF::StringImpl::flagIsSymbol):
165         (WTF::StringImpl::maskStringKind):
166         * wtf/text/WTFString.cpp:
167         (WTF::nullString):
168         * wtf/text/WTFString.h:
169
170 2019-02-28  Mark Lam  <mark.lam@apple.com>
171
172         Change CheckedArithmetic to not use std::enable_if_t.
173         https://bugs.webkit.org/show_bug.cgi?id=195187
174         <rdar://problem/48464665>
175
176         Reviewed by Keith Miller.
177
178         Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.
179
180         * wtf/CheckedArithmetic.h:
181
182 2019-02-27  Simon Fraser  <simon.fraser@apple.com>
183
184         Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)
185
186         * wtf/Assertions.cpp:
187         (WTF::createWithFormatAndArguments): Deleted.
188         * wtf/HexNumber.h:
189         (WTF::StringTypeAdapter<HexNumberBuffer>::toString const):
190         * wtf/text/StringConcatenate.h:
191         (WTF::makeString):
192         (WTF::pad): Deleted.
193         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
194         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
195         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
196         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.
197         * wtf/text/StringConcatenateNumbers.h:
198         (WTF::FormattedNumber::fixedPrecision):
199         (WTF::FormattedNumber::fixedWidth):
200         (WTF::StringTypeAdapter<FormattedNumber>::toString const):
201         * wtf/text/StringOperators.h:
202         (WTF::StringAppend::StringAppend):
203         * wtf/text/StringView.h:
204         (WTF::StringView::invalidate):
205         * wtf/text/WTFString.cpp:
206         (WTF::createWithFormatAndArguments):
207         (WTF::String::format):
208         * wtf/text/WTFString.h:
209
210 2019-02-26  Mark Lam  <mark.lam@apple.com>
211
212         Remove remaining poisoning code.
213         https://bugs.webkit.org/show_bug.cgi?id=194138
214
215         Reviewed by Saam Barati.
216
217         This patch removes the instantiation of Poisoned variants of the various containers
218         but retains the ability of those containers to work with pointer traits.  This
219         allows us to use them with smart pointers in the future (just like we used to with
220         Poisoned values).  At minimum, this ability will be useful when we want to insert
221         an observer into the container storage type for debugging purposes, or to collect
222         statistics for profiling.
223
224         * WTF.xcodeproj/project.pbxproj:
225         * wtf/Bag.h:
226         * wtf/CMakeLists.txt:
227         * wtf/Platform.h:
228         * wtf/Poisoned.cpp: Removed.
229         * wtf/Poisoned.h: Removed.
230         * wtf/PoisonedUniquePtr.h: Removed.
231         * wtf/Ref.h:
232         * wtf/RefCountedArray.h:
233         * wtf/RefPtr.h:
234         * wtf/WTFAssertions.cpp:
235
236 2019-02-26  Keith Miller  <keith_miller@apple.com>
237
238         Code quality cleanup in NeverDestroyed
239         https://bugs.webkit.org/show_bug.cgi?id=194824
240
241         Reviewed by Yusuke Suzuki.
242
243         First, move data members to the end of the class per WebKit
244         style. Also, add forbid heap allocation since we expect the
245         NeverDestroyed classes to be static.
246
247         * wtf/NeverDestroyed.h:
248
249 2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
250
251         Fix WTFLogVerbose variadic parameters forwarding
252         https://bugs.webkit.org/show_bug.cgi?id=194920
253
254         Reviewed by Alex Christensen.
255
256         WTFLogVerbose was passing the va_list to WTFLog but this function
257         also used variadic parameters and this is not allowed in C (that
258         part of the code is extern "C").
259
260         * wtf/Assertions.cpp:
261         (WTF::WTFLogVaList): Created to take a va_list argument instead of
262         variadic parameters.
263         (WTF::WTFLog): Kept with variadic parameters, which are
264         transformed to va_list and passed to WTFLogVaList.
265         (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.
266
267 2019-02-25  Sam Weinig  <sam@webkit.org>
268
269         Update double-conversion to the latest version
270         https://bugs.webkit.org/show_bug.cgi?id=194994
271
272         Import the latest version of the double-conversion library based on
273         https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307
274
275         In additon to importing the code, the following changes were applied (or re-applied) to maintain 
276         parity with what we had previously:
277              - Add #include "config.h" to each cpp file.
278              - Put everything inside the WTF namespace.
279              - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
280              - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
281              - Replaced duplicated functions with ASCIICType.h variants
282              - Made CachedPower table a constexpr.
283              - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
284              - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
285                parameterization, as we only ever want one configuration. Instead of constructing a
286                configured class and calling StringToDouble on it, StringToDouble is now a static
287                function. This allows a bunch of now dead code (hex support, octal support, etc.) to
288                be eliminated. As StringToDoubleConverter now supports single precision floats, some
289                additional templating of StringToIeee was added to avoid extra unnecessary branching.
290              - Added RemoveCharacters function to double_conversion::StringBuilder.
291
292         Reviewed by Darin Adler.
293
294         * WTF.xcodeproj/project.pbxproj:
295         * wtf/CMakeLists.txt:
296         * wtf/dtoa/AUTHORS: Added.
297         * wtf/dtoa/README: Removed.
298         * wtf/dtoa/README.md: Added.
299         * wtf/dtoa/bignum-dtoa.cc:
300         * wtf/dtoa/bignum-dtoa.h:
301         * wtf/dtoa/bignum.cc:
302         * wtf/dtoa/bignum.h:
303         (WTF::double_conversion::Bignum::Times10):
304         (WTF::double_conversion::Bignum::Equal):
305         (WTF::double_conversion::Bignum::LessEqual):
306         (WTF::double_conversion::Bignum::Less):
307         (WTF::double_conversion::Bignum::PlusEqual):
308         (WTF::double_conversion::Bignum::PlusLessEqual):
309         (WTF::double_conversion::Bignum::PlusLess):
310         (WTF::double_conversion::Bignum::EnsureCapacity):
311         (WTF::double_conversion::Bignum::BigitLength const):
312         * wtf/dtoa/cached-powers.cc:
313         * wtf/dtoa/cached-powers.h:
314         * wtf/dtoa/diy-fp.cc:
315         * wtf/dtoa/diy-fp.h:
316         (WTF::double_conversion::DiyFp::DiyFp):
317         (WTF::double_conversion::DiyFp::Subtract):
318         (WTF::double_conversion::DiyFp::Minus):
319         (WTF::double_conversion::DiyFp::Times):
320         (WTF::double_conversion::DiyFp::Normalize):
321         (WTF::double_conversion::DiyFp::f const):
322         (WTF::double_conversion::DiyFp::e const):
323         (WTF::double_conversion::DiyFp::set_f):
324         (WTF::double_conversion::DiyFp::set_e):
325         * wtf/dtoa/double-conversion.cc:
326         * wtf/dtoa/double-conversion.h:
327         (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
328         (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
329         (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
330         (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
331         * wtf/dtoa/double.h: Removed.
332         * wtf/dtoa/fast-dtoa.cc:
333         * wtf/dtoa/fast-dtoa.h:
334         * wtf/dtoa/fixed-dtoa.cc:
335         * wtf/dtoa/fixed-dtoa.h:
336         * wtf/dtoa/ieee.h: Added.
337         (WTF::double_conversion::double_to_uint64):
338         (WTF::double_conversion::uint64_to_double):
339         (WTF::double_conversion::float_to_uint32):
340         (WTF::double_conversion::uint32_to_float):
341         (WTF::double_conversion::Double::Double):
342         (WTF::double_conversion::Double::AsDiyFp const):
343         (WTF::double_conversion::Double::AsNormalizedDiyFp const):
344         (WTF::double_conversion::Double::AsUint64 const):
345         (WTF::double_conversion::Double::NextDouble const):
346         (WTF::double_conversion::Double::PreviousDouble const):
347         (WTF::double_conversion::Double::Exponent const):
348         (WTF::double_conversion::Double::Significand const):
349         (WTF::double_conversion::Double::IsDenormal const):
350         (WTF::double_conversion::Double::IsSpecial const):
351         (WTF::double_conversion::Double::IsNan const):
352         (WTF::double_conversion::Double::IsInfinite const):
353         (WTF::double_conversion::Double::Sign const):
354         (WTF::double_conversion::Double::UpperBoundary const):
355         (WTF::double_conversion::Double::NormalizedBoundaries const):
356         (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
357         (WTF::double_conversion::Double::value const):
358         (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
359         (WTF::double_conversion::Double::Infinity):
360         (WTF::double_conversion::Double::NaN):
361         (WTF::double_conversion::Double::DiyFpToUint64):
362         (WTF::double_conversion::Single::Single):
363         (WTF::double_conversion::Single::AsDiyFp const):
364         (WTF::double_conversion::Single::AsUint32 const):
365         (WTF::double_conversion::Single::Exponent const):
366         (WTF::double_conversion::Single::Significand const):
367         (WTF::double_conversion::Single::IsDenormal const):
368         (WTF::double_conversion::Single::IsSpecial const):
369         (WTF::double_conversion::Single::IsNan const):
370         (WTF::double_conversion::Single::IsInfinite const):
371         (WTF::double_conversion::Single::Sign const):
372         (WTF::double_conversion::Single::NormalizedBoundaries const):
373         (WTF::double_conversion::Single::UpperBoundary const):
374         (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
375         (WTF::double_conversion::Single::value const):
376         (WTF::double_conversion::Single::Infinity):
377         (WTF::double_conversion::Single::NaN):
378         * wtf/dtoa/strtod.cc:
379         * wtf/dtoa/strtod.h:
380         * wtf/dtoa/utils.h:
381         (abort_noreturn):
382         (WTF::double_conversion::Max):
383         (WTF::double_conversion::Min):
384         (WTF::double_conversion::StrLength):
385         (WTF::double_conversion::BufferReference::BufferReference):
386         (WTF::double_conversion::BufferReference::SubVector):
387         (WTF::double_conversion::BufferReference::length const):
388         (WTF::double_conversion::BufferReference::is_empty const):
389         (WTF::double_conversion::BufferReference::start const):
390         (WTF::double_conversion::BufferReference::operator[] const):
391         (WTF::double_conversion::BufferReference::first):
392         (WTF::double_conversion::BufferReference::last):
393         (WTF::double_conversion::StringBuilder::StringBuilder):
394         (WTF::double_conversion::StringBuilder::~StringBuilder):
395         (WTF::double_conversion::StringBuilder::size const):
396         (WTF::double_conversion::StringBuilder::position const):
397         (WTF::double_conversion::StringBuilder::Reset):
398         (WTF::double_conversion::StringBuilder::AddCharacter):
399         (WTF::double_conversion::StringBuilder::AddString):
400         (WTF::double_conversion::StringBuilder::AddSubstring):
401         (WTF::double_conversion::StringBuilder::AddPadding):
402         (WTF::double_conversion::StringBuilder::RemoveCharacters):
403         (WTF::double_conversion::StringBuilder::Finalize):
404         (WTF::double_conversion::StringBuilder::is_finalized const):
405         (WTF::double_conversion::BitCast):
406         (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
407         (WTF::double_conversion::StringBuilder::SetPosition): Deleted.
408
409 2019-02-20  Darin Adler  <darin@apple.com>
410
411         Finish removing String::format
412         https://bugs.webkit.org/show_bug.cgi?id=194893
413
414         Reviewed by Daniel Bates.
415
416         * wtf/Assertions.cpp:
417         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
418         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
419
420         * wtf/HexNumber.h: Deleted unneeded toString function.
421
422         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
423         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
424         a bit. Use function templates for writeTo functions rather than having two of each.
425         Removed unused toString functions. Optimized case where we use have a UChar* and
426         a length of zero to not force the result to be 16-bit. Also gets rid of a small
427         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
428         static member helper functions to compute string lengths. Added the pad function
429         and the PaddingSpecification struct template, so we can add padding to anything
430         we can turn into a string. Got rid of the special case overload for single
431         arguments, since it only worked for things that the String constructor can handle.
432         Instead we will now use StringTypeAdapter, which works for more types. Possibly
433         less optimal for some special cases, which we could specialize for later if we like.
434         * wtf/text/StringConcatenateNumbers.h: Ditto.
435         * wtf/text/StringOperators.h: Ditto.
436         * wtf/text/StringView.h: Ditto.
437
438         * wtf/text/WTFString.cpp:
439         (WTF::createWithFormatAndArguments): Deleted.
440         (WTF::String::format): Deleted.
441         * wtf/text/WTFString.h: Deleted declaration of String::format.
442
443 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
444
445         Unreviewed, fix find/replace error from r232178
446
447         Looks like this was the only such error in that commit.
448
449         * wtf/URLHelpers.cpp:
450         (WTF::URLHelpers::isLookalikeCharacter):
451
452 2019-02-23  Mark Lam  <mark.lam@apple.com>
453
454         Add an exception check and some assertions in StringPrototype.cpp.
455         https://bugs.webkit.org/show_bug.cgi?id=194962
456         <rdar://problem/48013416>
457
458         Reviewed by Yusuke Suzuki and Saam Barati.
459
460         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
461         for assertion purpose only on debug builds but sacrifices no performance on
462         release builds.
463
464         * wtf/CheckedArithmetic.h:
465         (WTF::AssertNoOverflow::overflowed):
466         (WTF::AssertNoOverflow::clearOverflow):
467         (WTF::AssertNoOverflow::crash):
468         (WTF::AssertNoOverflow::hasOverflowed const):
469         (WTF::observesOverflow):
470         (WTF::observesOverflow<AssertNoOverflow>):
471         (WTF::safeAdd):
472         (WTF::safeSub):
473         (WTF::safeMultiply):
474         (WTF::Checked::operator+=):
475         (WTF::Checked::operator-=):
476         (WTF::Checked::operator*=):
477         (WTF::operator+):
478         (WTF::operator-):
479         (WTF::operator*):
480
481 2019-02-23  Keith Miller  <keith_miller@apple.com>
482
483         Add new mac target numbers
484         https://bugs.webkit.org/show_bug.cgi?id=194955
485
486         Reviewed by Tim Horton.
487
488         * Configurations/Base.xcconfig:
489         * Configurations/DebugRelease.xcconfig:
490
491 2019-02-21  Antoine Quint  <graouts@apple.com>
492
493         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
494         https://bugs.webkit.org/show_bug.cgi?id=194531
495         <rdar://problem/47714562>
496
497         Reviewed by Tim Horton.
498
499         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
500
501         * wtf/Platform.h:
502
503 2019-02-21  Dean Jackson  <dino@apple.com>
504
505         Rotation animations sometimes use the wrong origin (affects apple.com)
506         https://bugs.webkit.org/show_bug.cgi?id=194878
507         <rdar://problem/43908047>
508
509         Follow-up commit to ensure this change only affects newer versions
510         of iOS.
511
512         * wtf/Platform.h: Add a version check.
513
514 2019-02-20  Alex Christensen  <achristensen@webkit.org>
515
516         URL percent-encode operations should use checked arithmetic for buffer allocation length
517         https://bugs.webkit.org/show_bug.cgi?id=194877
518         <rdar://problem/48212062>
519
520         Reviewed by Tim Horton.
521
522         * wtf/URLHelpers.cpp:
523         (WTF::URLHelpers::userVisibleURL):
524         * wtf/cocoa/NSURLExtras.mm:
525         (WTF::dataWithUserTypedString):
526
527 2019-02-20  Dean Jackson  <dino@apple.com>
528
529         Rotation animations sometimes use the wrong origin (affects apple.com)
530         https://bugs.webkit.org/show_bug.cgi?id=194878
531         <rdar://problem/43908047>
532
533         Reviewed by Simon Fraser.
534
535         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
536
537 2019-02-20  Andy Estes  <aestes@apple.com>
538
539         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
540         https://bugs.webkit.org/show_bug.cgi?id=194869
541
542         Rubber-stamped by Jer Noble.
543
544         * WTF.xcodeproj/project.pbxproj:
545
546 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
547
548         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
549         https://bugs.webkit.org/show_bug.cgi?id=167941
550
551         Reviewed by Carlos Garcia Campos.
552
553         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
554
555         * wtf/glib/GRefPtr.cpp:
556         (WTF::refGPtr): Added.
557         (WTF::derefGPtr): Added.
558         * wtf/glib/GRefPtr.h: Declare template specializations.
559
560 2019-02-19  Commit Queue  <commit-queue@webkit.org>
561
562         Unreviewed, rolling out r241770.
563         https://bugs.webkit.org/show_bug.cgi?id=194833
564
565         Caused crashes (Requested by smfr on #webkit).
566
567         Reverted changeset:
568
569         "Code quality cleanup in NeverDestroyed"
570         https://bugs.webkit.org/show_bug.cgi?id=194824
571         https://trac.webkit.org/changeset/241770
572
573 2019-02-19  Keith Miller  <keith_miller@apple.com>
574
575         Code quality cleanup in NeverDestroyed
576         https://bugs.webkit.org/show_bug.cgi?id=194824
577
578         Reviewed by Yusuke Suzuki.
579
580         First, move data members to the end of the class per WebKit
581         style. Also, add forbid heap allocation since we expect the
582         NeverDestroyed classes to be static.
583
584         * wtf/NeverDestroyed.h:
585
586 2019-02-16  Darin Adler  <darin@apple.com>
587
588         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
589         https://bugs.webkit.org/show_bug.cgi?id=194752
590
591         Reviewed by Daniel Bates.
592
593         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
594         * wtf/CMakeLists.txt: Ditto.
595
596         * wtf/HexNumber.cpp: Added.
597         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
598
599         * wtf/HexNumber.h:
600         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
601         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
602         use with StringTypeAdapter.
603         (WTF::appendUnsignedAsHex): Ditto.
604         (WTF::appendUnsignedAsHexFixedSize): Ditto.
605         (WTF::hex): Added.
606         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
607
608         * wtf/Logger.cpp: Added.
609         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
610         function and moved it here so that we don't need to include HexNumber.h
611         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
612         don't include it in any other headers.
613
614         * wtf/Logger.h:
615         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
616         a non-template function, LogSiteIdentifier::toString.
617
618         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
619         with function templates and used StringImpl::copyCharacters instead of
620         hand-written loops.
621
622 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
623
624         Web Inspector: Better categorize CPU usage per-thread / worker
625         https://bugs.webkit.org/show_bug.cgi?id=194564
626
627         Reviewed by Devin Rousso.
628
629         * wtf/Threading.h:
630         * wtf/Threading.cpp:
631         (WTF::Thread::allThreadsMutex):
632         (WTF::Thread::create):
633         (WTF::Thread::didExit):
634         Add a set of all WTF::Thread created threads.
635
636 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
637
638         Bytecode cache should a have a boot-specific validation
639         https://bugs.webkit.org/show_bug.cgi?id=194769
640         <rdar://problem/48149509>
641
642         Reviewed by Keith Miller.
643
644         Add helper to get kern.bootsessionuuid from sysctl
645
646         * wtf/UUID.cpp:
647         (WTF::bootSessionUUIDString):
648         * wtf/UUID.h:
649
650 2019-02-17  David Kilzer  <ddkilzer@apple.com>
651
652         Unreviewed, rolling out r241620.
653
654         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
655         (Requested by ddkilzer on #webkit.)
656
657         Reverted changeset:
658
659         "[WTF] Add environment variable helpers"
660         https://bugs.webkit.org/show_bug.cgi?id=192405
661         https://trac.webkit.org/changeset/241620
662
663 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
664
665         [WTF] Add environment variable helpers
666         https://bugs.webkit.org/show_bug.cgi?id=192405
667
668         Reviewed by Michael Catanzaro.
669
670         Create a new Environment API as a platform-independent, thread-safe(r)
671         way to get and set environment variables.
672
673         * WTF.xcodeproj/project.pbxproj:
674         * wtf/CMakeLists.txt:
675         * wtf/Environment.h: Added.
676         * wtf/PlatformGTK.cmake:
677         * wtf/PlatformJSCOnly.cmake:
678         * wtf/PlatformMac.cmake:
679         * wtf/PlatformPlayStation.cmake:
680         * wtf/PlatformWPE.cmake:
681         * wtf/PlatformWin.cmake:
682         * wtf/posix/EnvironmentPOSIX.cpp: Added.
683         * wtf/win/EnvironmentWin.cpp: Added.
684         Introduce WTF::Environment.
685
686         * wtf/Threading.cpp:
687         (WTF::threadingIsInitialized):
688         (WTF::initializeThreading):
689         * wtf/Threading.h:
690         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
691         false before setting an environment variable through the new API.
692
693         * wtf/DataLog.cpp:
694         (WTF::initializeLogFileOnce):
695         * wtf/NumberOfCores.cpp:
696         (WTF::numberOfProcessorCores):
697         * wtf/posix/FileSystemPOSIX.cpp:
698         (WTF::FileSystemImpl::openTemporaryFile):
699         Utilize WTF::Environment where possible.
700
701 2019-02-15  Brian Burg  <bburg@apple.com>
702
703         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
704         https://bugs.webkit.org/show_bug.cgi?id=194411
705         <rdar://problem/47787614>
706
707         Reviewed by Joseph Pecoraro.
708
709         * wtf/cocoa/SoftLinking.h:
710         Remove macro that now has no uses.
711
712 2019-02-15  Commit Queue  <commit-queue@webkit.org>
713
714         Unreviewed, rolling out r241559 and r241566.
715         https://bugs.webkit.org/show_bug.cgi?id=194710
716
717         Causes layout test crashes under GuardMalloc (Requested by
718         ryanhaddad on #webkit).
719
720         Reverted changesets:
721
722         "[WTF] Add environment variable helpers"
723         https://bugs.webkit.org/show_bug.cgi?id=192405
724         https://trac.webkit.org/changeset/241559
725
726         "Unreviewed build fix for WinCairo Debug after r241559."
727         https://trac.webkit.org/changeset/241566
728
729 2019-02-15  Truitt Savell  <tsavell@apple.com>
730
731         Unreviewed, rolling out r241564.
732
733         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
734
735         Reverted changeset:
736
737         "[Mac] WebInspectorUI.framework does not need to be soft-
738         linked anymore"
739         https://bugs.webkit.org/show_bug.cgi?id=194411
740         https://trac.webkit.org/changeset/241564
741
742 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
743
744         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
745         https://bugs.webkit.org/show_bug.cgi?id=194014
746
747         Reviewed by Michael Catanzaro.
748
749         Do not block SIGUSR1 when installing signal handlers, since this signal
750         is used to suspend/resume machine threads on Linux.
751
752         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
753         enabled watchdog and sampling.
754
755         Deadlock happened in the following situation:
756
757         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
758         and then tries to suspend the main thread.
759
760         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
761         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
762         SignalSender tries to lock codeBlockSet, but this is already locked by the
763         SamplingProfiler.
764
765         The SamplingProfiler can only give up the lock when it suspends
766         the thread. However since the VMTraps signal handler is active, all other signals blocked,
767         therefore the SamplingProfiler also waits until its signal handler is invoked.
768
769         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
770         it is used to suspend/resume threads on Linux.
771
772         * wtf/Threading.h:
773         * wtf/posix/ThreadingPOSIX.cpp:
774         * wtf/threads/Signals.cpp:
775         (WTF::installSignalHandler):
776
777 2019-02-15  Saam barati  <sbarati@apple.com>
778
779         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
780         https://bugs.webkit.org/show_bug.cgi?id=194036
781
782         Reviewed by Yusuke Suzuki.
783
784         * wtf/IndexMap.h:
785         (WTF::IndexMap::at):
786         (WTF::IndexMap::at const):
787         (WTF::IndexMap::operator[]):
788         (WTF::IndexMap::operator[] const):
789
790 2019-02-14  Brian Burg  <bburg@apple.com>
791
792         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
793         https://bugs.webkit.org/show_bug.cgi?id=194411
794         <rdar://problem/47787614>
795
796         Reviewed by Joseph Pecoraro.
797
798         * wtf/cocoa/SoftLinking.h:
799         Remove macro that now has no uses.
800
801 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
802
803         [WTF] Add environment variable helpers
804         https://bugs.webkit.org/show_bug.cgi?id=192405
805
806         Reviewed by Michael Catanzaro.
807
808         Create a new Environment API as a platform-independent, thread-safe(r)
809         way to get and set environment variables.
810
811         * WTF.xcodeproj/project.pbxproj:
812         * wtf/CMakeLists.txt:
813         * wtf/Environment.h: Added.
814         * wtf/PlatformGTK.cmake:
815         * wtf/PlatformJSCOnly.cmake:
816         * wtf/PlatformMac.cmake:
817         * wtf/PlatformPlayStation.cmake:
818         * wtf/PlatformWPE.cmake:
819         * wtf/PlatformWin.cmake:
820         * wtf/posix/EnvironmentPOSIX.cpp: Added.
821         * wtf/win/EnvironmentWin.cpp: Added.
822         Introduce WTF::Environment.
823
824         * wtf/Threading.cpp:
825         (WTF::threadingIsInitialized):
826         (WTF::initializeThreading):
827         * wtf/Threading.h:
828         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
829         false before setting an environment variable through the new API.
830
831         * wtf/DataLog.cpp:
832         (WTF::initializeLogFileOnce):
833         * wtf/NumberOfCores.cpp:
834         (WTF::numberOfProcessorCores):
835         * wtf/posix/FileSystemPOSIX.cpp:
836         (WTF::FileSystemImpl::openTemporaryFile):
837         Utilize WTF::Environment where possible.
838
839 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
840
841         We should only make rope strings when concatenating strings long enough.
842         https://bugs.webkit.org/show_bug.cgi?id=194465
843
844         Reviewed by Mark Lam.
845
846         * wtf/text/StringImpl.h:
847         (WTF::StringImpl::headerSize):
848
849 2019-02-12  Tim Horton  <timothy_horton@apple.com>
850
851         Remove WKLegacyPDFView
852         https://bugs.webkit.org/show_bug.cgi?id=194559
853
854         Reviewed by Andy Estes.
855
856         * wtf/FeatureDefines.h:
857
858 2019-02-12  David Kilzer  <ddkilzer@apple.com>
859
860         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
861         <https://webkit.org/b/194529>
862         <rdar://problem/47924449>
863
864         Reviewed by Eric Carlson.
865
866         * wtf/cocoa/SoftLinking.h:
867         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
868         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
869         and change `assertion` argument to `isOptional`.  Pass
870         `isOptional` to framework##Library() method to control assertion
871         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
872         that code should be optimized out by the compiler.  This fixes
873         the crash.
874         (NO_ASSERT): Remove macro since it's no longer used.
875         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
876         optional classes.
877         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
878         non-optional classes.
879         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
880         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
881         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
882         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
883         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
884
885 2019-02-12  Andy Estes  <aestes@apple.com>
886
887         [iOSMac] Enable Parental Controls Content Filtering
888         https://bugs.webkit.org/show_bug.cgi?id=194521
889         <rdar://39732376>
890
891         Reviewed by Tim Horton.
892
893         * wtf/Platform.h:
894
895 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
896
897         [Cocoa] Ask platform for generic font family mappings
898         https://bugs.webkit.org/show_bug.cgi?id=187723
899         <rdar://problem/41892438>
900
901         Reviewed by Brent Fulgham.
902
903         Add an ENABLE in Platform.
904
905         * wtf/Platform.h:
906
907 2019-02-11  Truitt Savell  <tsavell@apple.com>
908
909         Unreviewed, rolling out r241229.
910
911         Revision broke internal builds for watchOS.
912
913         Reverted changeset:
914
915         "[Cocoa] Ask platform for generic font family mappings"
916         https://bugs.webkit.org/show_bug.cgi?id=187723
917         https://trac.webkit.org/changeset/241229
918
919 2019-02-10  Darin Adler  <darin@apple.com>
920
921         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
922         https://bugs.webkit.org/show_bug.cgi?id=194485
923
924         Reviewed by Daniel Bates.
925
926         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
927         placeByteAsHex. Can always bring them back if someone needs them. Updated
928         appendUnsignedAsHex to be a template so we can use it on any integer type,
929         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
930         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
931         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
932
933         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
934
935         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
936
937         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
938         worked around in NSURLExtras.mm.
939         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
940         and Foundation.h.
941
942 2019-02-09  Darin Adler  <darin@apple.com>
943
944         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
945         https://bugs.webkit.org/show_bug.cgi?id=194021
946
947         Reviewed by Geoffrey Garen.
948
949         * wtf/URL.cpp:
950         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
951         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
952         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
953         and sometimes used for UTF-16 code units (UChar) and can be the same type.
954
955         * wtf/text/StringConcatenateNumbers.h:
956         Changed FormattedNumber::fixedPrecision to more closely match String::number and
957         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
958         a named enumeration for the truncation policy rather than a boolean.
959
960
961 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
962
963         Unreviewed, rolling in r241237 again
964         https://bugs.webkit.org/show_bug.cgi?id=194469
965
966         After the measurement, this patch was unrelated to recent regression.
967
968         * wtf/text/StringImpl.h:
969         (WTF::StringImpl::isSubString const):
970         (WTF::StringImpl::createSubstringSharingImpl):
971
972 2019-02-09  Commit Queue  <commit-queue@webkit.org>
973
974         Unreviewed, rolling out r241237.
975         https://bugs.webkit.org/show_bug.cgi?id=194474
976
977         Shows significant memory increase in WSL (Requested by
978         yusukesuzuki on #webkit).
979
980         Reverted changeset:
981
982         "[WTF] Use BufferInternal StringImpl if substring StringImpl
983         takes more memory"
984         https://bugs.webkit.org/show_bug.cgi?id=194469
985         https://trac.webkit.org/changeset/241237
986
987 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
988
989         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
990         https://bugs.webkit.org/show_bug.cgi?id=194469
991
992         Reviewed by Geoffrey Garen.
993
994         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
995         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
996         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
997         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
998
999         * wtf/text/StringImpl.h:
1000         (WTF::StringImpl::isSubString const):
1001         (WTF::StringImpl::createSubstringSharingImpl):
1002
1003 2019-02-08  Alex Christensen  <achristensen@webkit.org>
1004
1005         Add SPI to use networking daemon instead of XPC service
1006         https://bugs.webkit.org/show_bug.cgi?id=194427
1007
1008         Reviewed by Geoffrey Garen.
1009
1010         * wtf/spi/darwin/XPCSPI.h:
1011         Instead of using XPC bootstrap SPI, we just send a separate message.
1012         xpc_copy_bootstrap does not seem to work in  daemons.
1013
1014 2019-02-08  Truitt Savell  <tsavell@apple.com>
1015
1016         Unreviewed, rolling out r241197.
1017
1018         Broke iOS Simulator Debug build and casued 1 API failure on
1019         High Sierra
1020
1021         Reverted changeset:
1022
1023         "Add SPI to use networking daemon instead of XPC service"
1024         https://bugs.webkit.org/show_bug.cgi?id=194427
1025         https://trac.webkit.org/changeset/241197
1026
1027 2019-02-08  Alex Christensen  <achristensen@webkit.org>
1028
1029         Add SPI to use networking daemon instead of XPC service
1030         https://bugs.webkit.org/show_bug.cgi?id=194427
1031
1032         Reviewed by Geoffrey Garen.
1033
1034         * wtf/spi/darwin/XPCSPI.h:
1035         Instead of using XPC bootstrap SPI, we just send a separate message.
1036         xpc_copy_bootstrap does not seem to work in  daemons.
1037
1038 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
1039
1040         clampTo(): do not convert the input to double when dealing with integers
1041         https://bugs.webkit.org/show_bug.cgi?id=194263
1042         <rdar://problem/47692312>
1043
1044         Reviewed by Darin Adler.
1045
1046         Previously, every use of clampTo() was converting the input to double,
1047         doing the comparison in double, then casting back to whatever type was needed.
1048
1049         In many case, that was very wasteful. WebKit has many cases of clampTo() with
1050         the same type as input/output, or with integer types of different size/sign.
1051
1052         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
1053         In each case, I tried to minimize the amount of conversion needed at runtime.
1054
1055         * wtf/MathExtras.h:
1056         (clampTo):
1057
1058 2019-02-07  Chris Dumez  <cdumez@apple.com>
1059
1060         Mark more heap-allocated classes as fast allocated
1061         https://bugs.webkit.org/show_bug.cgi?id=194422
1062
1063         Reviewed by Ryosuke Niwa.
1064
1065         * wtf/Function.h:
1066         (WTF::Function<Out):
1067         * wtf/RefCounter.h:
1068         * wtf/URL.h:
1069         * wtf/text/StringView.cpp:
1070
1071 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
1072
1073         [macOS] Block coreservicesd in sandbox.
1074         https://bugs.webkit.org/show_bug.cgi?id=192670
1075
1076         Reviewed by Alexey Proskuryakov.
1077
1078         Add HAVE_CSCHECKFIXDISABLE define.
1079
1080         * wtf/Platform.h:
1081
1082 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
1083
1084         [MSE] Convert debug-only logging to runtime logging
1085         https://bugs.webkit.org/show_bug.cgi?id=194348
1086         <rdar://problem/47566449>
1087
1088         Reviewed by Jer Noble.
1089
1090         * wtf/LoggerHelper.h:
1091         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
1092         object that is associated with another logging object.
1093         * wtf/MediaTime.cpp:
1094         (WTF::MediaTime::toJSONObject const):
1095         (WTF::MediaTime::toJSONString const):
1096         (WTF::MediaTimeRange::toJSONString const):
1097         (WTF::toJSONStringInternal): Deleted.
1098         * wtf/MediaTime.h:
1099
1100 2019-02-05  Keith Rollin  <krollin@apple.com>
1101
1102         Enable the automatic checking and regenerations of .xcfilelists during builds
1103         https://bugs.webkit.org/show_bug.cgi?id=194124
1104         <rdar://problem/47721277>
1105
1106         Reviewed by Tim Horton.
1107
1108         Bug 193790 add a facility for checking -- during build time -- that
1109         any needed .xcfilelist files are up-to-date and for updating them if
1110         they are not. This facility was initially opt-in by setting
1111         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
1112         the process seemed robust. Its now time to enable this facility and
1113         make it opt-out. If there is a need to disable this facility, set and
1114         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
1115         running `make` or `build-webkit`, or before running Xcode from the
1116         command line.
1117
1118         Additionally, remove the step that generates a list of source files
1119         going into the UnifiedSources build step. It's only necessarily to
1120         specify Sources.txt and SourcesCocoa.txt as inputs.
1121
1122         * Scripts/generate-unified-source-bundles.rb:
1123
1124 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
1125
1126         [JSC] Shrink sizeof(UnlinkedCodeBlock)
1127         https://bugs.webkit.org/show_bug.cgi?id=194281
1128
1129         Reviewed by Michael Saboff.
1130
1131         * wtf/TriState.h:
1132
1133 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
1134
1135         [GLib] Stop URI-escaping file system representations
1136         https://bugs.webkit.org/show_bug.cgi?id=194213
1137
1138         Reviewed by Carlos Garcia Campos.
1139
1140         Stop URI-escaping of file representation strings in
1141         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
1142         of strings in FileSystem::fileSystemRepresentation().
1143
1144         This behavior deviates from POSIX and CF implementations and is
1145         currently breaking IndexedDB-specific calculation of database sizes due
1146         to directory components used in that process that are URL-based and are
1147         as such URI-escaped. When unescaped, those single directory components
1148         explode into multiple directory components, leading to incorrect total
1149         database size calculation when iterating the database directory.
1150
1151         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
1152         filename charsets and in worst case converts the filesystem
1153         representation to UTF-8 before String::fromUTF8() is used.
1154         FileSystem::fileSystemRepresentation() reverses that process, taking
1155         String's UTF-8 data and converting it to target charset if necessary.
1156
1157         Other FileSystem functions are adjusted to convert passed-in String
1158         objects to filesystem representations.
1159
1160         * wtf/glib/FileSystemGlib.cpp:
1161         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
1162         (WTF::FileSystemImpl::fileSystemRepresentation):
1163         (WTF::FileSystemImpl::validRepresentation):
1164         (WTF::FileSystemImpl::filenameForDisplay):
1165         (WTF::FileSystemImpl::fileExists):
1166         (WTF::FileSystemImpl::deleteFile):
1167         (WTF::FileSystemImpl::deleteEmptyDirectory):
1168         (WTF::FileSystemImpl::getFileStat):
1169         (WTF::FileSystemImpl::getFileLStat):
1170         (WTF::FileSystemImpl::makeAllDirectories):
1171         (WTF::FileSystemImpl::createSymbolicLink):
1172         (WTF::FileSystemImpl::pathGetFileName):
1173         (WTF::FileSystemImpl::getVolumeFreeSpace):
1174         (WTF::FileSystemImpl::directoryName):
1175         (WTF::FileSystemImpl::listDirectory):
1176         (WTF::FileSystemImpl::openFile):
1177         (WTF::FileSystemImpl::moveFile):
1178         (WTF::FileSystemImpl::hardLinkOrCopyFile):
1179         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
1180         and treat input CString as an existing filesystem representation.
1181         (WTF::FileSystemImpl::unescapedFilename): Deleted.
1182
1183 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
1184
1185         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
1186         https://bugs.webkit.org/show_bug.cgi?id=174816
1187
1188         Reviewed by Michael Catanzaro.
1189
1190         Translate userVisibleString and dependent code into platform-neutral C++
1191         in wtf/URLHelpers.{h,cpp}.
1192
1193         * WTF.xcodeproj/project.pbxproj:
1194         * wtf/CMakeLists.txt:
1195         * wtf/URLHelpers.cpp: Added.
1196         (WTF::URLHelpers::loadIDNScriptWhiteList):
1197         (WTF::URLHelpers::isArmenianLookalikeCharacter):
1198         (WTF::URLHelpers::isArmenianScriptCharacter):
1199         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
1200         (WTF::URLHelpers::isLookalikeCharacter):
1201         (WTF::URLHelpers::whiteListIDNScript):
1202         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
1203         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
1204         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1205         (WTF::URLHelpers::isRussianDomainNameCharacter):
1206         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
1207         (WTF::URLHelpers::mapHostName):
1208         (WTF::URLHelpers::collectRangesThatNeedMapping):
1209         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1210         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1211         (WTF::URLHelpers::mapHostNames):
1212         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1213         (WTF::URLHelpers::toNormalizationFormC):
1214         (WTF::URLHelpers::userVisibleURL):
1215         * wtf/URLHelpers.h: Added.
1216         * wtf/cocoa/NSURLExtras.mm:
1217         (WTF::URLHelpers::loadIDNScriptWhiteList):
1218         (WTF::decodePercentEscapes):
1219         (WTF::decodeHostName):
1220         (WTF::encodeHostName):
1221         (WTF::URLWithUserTypedString):
1222         (WTF::userVisibleString):
1223
1224 2019-02-03  Commit Queue  <commit-queue@webkit.org>
1225
1226         Unreviewed, rolling out r240896.
1227         https://bugs.webkit.org/show_bug.cgi?id=194202
1228
1229         "Fixes leaks, but is probably not the correct fix." (Requested
1230         by ddkilzer on #webkit).
1231
1232         Reverted changeset:
1233
1234         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
1235         (48 bytes) in com.apple.WebKit.WebContent running layout
1236         tests"
1237         https://bugs.webkit.org/show_bug.cgi?id=193291
1238         https://trac.webkit.org/changeset/240896
1239
1240 2019-02-02  David Kilzer  <ddkilzer@apple.com>
1241
1242         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
1243         <https://webkit.org/b/193291>
1244         <rdar://problem/46655953>
1245
1246         Reviewed by Keith Miller.
1247
1248         * wtf/text/SymbolImpl.h:
1249         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
1250         class destructor that calls StringImpl::deref() on `m_owner`.
1251         Two of the three constructors leak the StringImpl when setting
1252         `m_owner`, so we need to balance that by manually calling
1253         deref().
1254
1255 2018-12-16  Darin Adler  <darin@apple.com>
1256
1257         Convert additional String::format clients to alternative approaches
1258         https://bugs.webkit.org/show_bug.cgi?id=192746
1259
1260         Reviewed by Alexey Proskuryakov.
1261
1262         * wtf/JSONValues.cpp:
1263         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
1264         escapeChar and reordered arguments to make sense as an append function.
1265         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
1266         reordered arguments to make sense as an append function, take a
1267         StringView instead of a String, used early exit to make the code
1268         a bit easier to read. Use the ASCIIHexDigit functions to construct
1269         a hex number a nibble at a time rather than using String::format.
1270         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
1271         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
1272
1273 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1274
1275         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
1276
1277         * wtf/Platform.h:
1278
1279 2019-01-29  Chris Dumez  <cdumez@apple.com>
1280
1281         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
1282         https://bugs.webkit.org/show_bug.cgi?id=193848
1283
1284         Reviewed by Youenn Fablet.
1285
1286         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
1287         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
1288         identifiers such as Bug 193761.
1289
1290         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
1291         when they have a typedef for the ObjectIdentifier<T> type.
1292
1293         * WTF.xcodeproj/project.pbxproj:
1294         * wtf/CMakeLists.txt:
1295         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
1296         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
1297         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
1298         * wtf/ObjectIdentifier.h:
1299         (WTF::ObjectIdentifier::generate):
1300         (WTF::ObjectIdentifier::generateThreadSafe):
1301
1302 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
1303
1304         Move platform-specific files out of WTF root directory.
1305         https://bugs.webkit.org/show_bug.cgi?id=193929
1306
1307         Reviewed by Alex Christensen.
1308
1309         * WTF.xcodeproj/project.pbxproj:
1310         * wtf/CMakeLists.txt:
1311         * wtf/PlatformGTK.cmake:
1312         * wtf/PlatformJSCOnly.cmake:
1313         * wtf/PlatformMac.cmake:
1314         * wtf/PlatformPlayStation.cmake:
1315         * wtf/PlatformWPE.cmake:
1316         * wtf/PlatformWin.cmake:
1317         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
1318         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
1319         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
1320         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
1321         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
1322         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
1323         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
1324         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
1325         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
1326
1327 2019-01-28  Andy Estes  <aestes@apple.com>
1328
1329         [watchOS] Enable Parental Controls content filtering
1330         https://bugs.webkit.org/show_bug.cgi?id=193939
1331         <rdar://problem/46641912>
1332
1333         Reviewed by Ryosuke Niwa.
1334
1335         * wtf/Platform.h:
1336
1337 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
1338
1339         [JSCOnly][WTF] Expose FileSystem.
1340         https://bugs.webkit.org/show_bug.cgi?id=193789
1341
1342         Reviewed by Don Olmstead.
1343
1344         * wtf/FileSystem.h:
1345         * wtf/PlatformJSCOnly.cmake:
1346         * wtf/posix/FileSystemPOSIX.cpp:
1347         (WTF::FileSystemImpl::getVolumeFreeSpace):
1348         * wtf/win/FileSystemWin.cpp:
1349         (WTF::FileSystemImpl::fileSystemRepresentation):
1350
1351 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
1352
1353         AVStreamSession isn't always available, make a HAVE compile flag for it
1354         https://bugs.webkit.org/show_bug.cgi?id=193889
1355         <rdar://problem/47452863>
1356
1357         Reviewed by Jer Noble.
1358
1359         * wtf/FeatureDefines.h:
1360
1361 2018-12-15  Darin Adler  <darin@apple.com>
1362
1363         Replace many uses of String::format with more type-safe alternatives
1364         https://bugs.webkit.org/show_bug.cgi?id=192742
1365
1366         Reviewed by Mark Lam.
1367
1368         * wtf/WorkQueue.cpp:
1369         (WTF::WorkQueue::concurrentApply): Use makeString.
1370
1371         * wtf/dtoa.cpp:
1372         (WTF::dtoa): Use sprintf instead of String::format in the comments,
1373         since these functions have nothing to do with WTF::String.
1374
1375 2019-01-25  Chris Dumez  <cdumez@apple.com>
1376
1377         [iOS] Add support for the download attribute
1378         https://bugs.webkit.org/show_bug.cgi?id=167341
1379         <rdar://problem/30296281>
1380
1381         Reviewed by Geoffrey Garen.
1382
1383         Turn on HTML download attribute support on iOS.
1384
1385         * wtf/FeatureDefines.h:
1386
1387 2019-01-25  David Kilzer  <ddkilzer@apple.com>
1388
1389         Move soft-linking of Lookup.framework out of LookupSPI.h
1390         <https://webkit.org/b/193815>
1391
1392         Reviewed by Tim Horton.
1393
1394         * wtf/cocoa/SoftLinking.h:
1395         (SOFT_LINK_CONSTANT_FOR_HEADER):
1396         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
1397         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
1398         - Remove local declaration of constant.  This should be handled
1399           by including *SPI.h or "real" headers.
1400         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
1401         - Remove local declaration of constant.
1402         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
1403           `export` argument to support exporting of functions.
1404         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
1405         - Redefine in terms of
1406           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
1407
1408 2019-01-24  Youenn Fablet  <youenn@apple.com>
1409
1410         Use MonotonicTime in WorkerRunLoop
1411         https://bugs.webkit.org/show_bug.cgi?id=193417
1412
1413         Reviewed by Saam Barati.
1414
1415         * wtf/MessageQueue.h:
1416         (WTF::MessageQueue<DataType>::waitForMessage):
1417         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
1418
1419 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
1420
1421         Move FileSystem to WTF
1422         https://bugs.webkit.org/show_bug.cgi?id=193602
1423
1424         Reviewed by Yusuke Suzuki.
1425
1426         * WTF.xcodeproj/project.pbxproj:
1427         * wtf/CMakeLists.txt:
1428         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
1429         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
1430         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
1431         * wtf/PlatformGTK.cmake:
1432         * wtf/PlatformMac.cmake:
1433         * wtf/PlatformPlayStation.cmake:
1434         * wtf/PlatformWPE.cmake:
1435         * wtf/PlatformWin.cmake:
1436         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
1437         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
1438         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
1439         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
1440         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
1441         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
1442         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
1443         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
1444         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
1445
1446 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
1447
1448         [JSC] Reenable baseline JIT on mips
1449         https://bugs.webkit.org/show_bug.cgi?id=192983
1450
1451         Reviewed by Mark Lam.
1452
1453         Use baseline JIT by default on MIPS.
1454
1455         * wtf/Platform.h:
1456
1457 2019-01-24  David Kilzer  <ddkilzer@apple.com>
1458
1459         Duplicate global variables: WTF::asciiCaseFoldTable
1460         <https://webkit.org/b/193726>
1461         <rdar://problem/47334622>
1462
1463         Reviewed by Michael Catanzaro.
1464
1465         * WTF.xcodeproj/project.pbxproj:
1466         * wtf/CMakeLists.txt:
1467         - Add ASCIICType.cpp to build systems.
1468
1469         * wtf/ASCIICType.cpp: Added.
1470         (WTF::asciiCaseFoldTable): Move table to here so there is only
1471         one copy.  Mark as exported for other frameworks to use.
1472         * wtf/ASCIICType.h:
1473         (WTF::asciiCaseFoldTable): Change to extern declaration, and
1474         mark as exported for other frameworks to use.
1475
1476 2019-01-23  Mark Lam  <mark.lam@apple.com>
1477
1478         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
1479         https://bugs.webkit.org/show_bug.cgi?id=193744
1480         <rdar://problem/46262952>
1481
1482         Reviewed by Saam Barati.
1483
1484         * wtf/Platform.h:
1485
1486 2019-01-23  David Kilzer  <ddkilzer@apple.com>
1487
1488         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
1489         <https://webkit.org/b/193694>
1490         <rdar://problem/47464025>
1491
1492         Reviewed by Tim Horton.
1493
1494         * wtf/win/SoftLinking.h:
1495         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
1496         - Implement for Windows.
1497         (SOFT_LINK_CONSTANT_FOR_SOURCE):
1498         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
1499
1500 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
1501
1502         Cache bytecode to disk
1503         https://bugs.webkit.org/show_bug.cgi?id=192782
1504         <rdar://problem/46084932>
1505
1506         Reviewed by Keith Miller.
1507
1508         BitVectors have to be friends with JSC::CacheBitVector to allow
1509         serializing its buffer as part of the bytecode cache encoding.
1510
1511         * wtf/BitVector.h:
1512
1513 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
1514
1515         [GTK] Speculative build fix for Ubuntu LTS
1516         https://bugs.webkit.org/show_bug.cgi?id=193651
1517
1518         Unreviewed build fix.
1519
1520         * wtf/Assertions.h: Add missing <cstdlib> include.
1521
1522 2019-01-20  Saam Barati  <sbarati@apple.com>
1523
1524         Rollout r240210: It broke tests on iOS
1525         https://bugs.webkit.org/show_bug.cgi?id=193640
1526
1527         Unreviewed.
1528
1529         * wtf/BitVector.h:
1530
1531 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
1532
1533         Cache bytecode to disk
1534         https://bugs.webkit.org/show_bug.cgi?id=192782
1535         <rdar://problem/46084932>
1536
1537         Reviewed by Keith Miller.
1538
1539         BitVectors have to be friends with JSC::CacheBitVector to allow
1540         serializing its buffer as part of the bytecode cache encoding.
1541
1542         * wtf/BitVector.h:
1543
1544 2019-01-18  Tim Horton  <timothy_horton@apple.com>
1545
1546         Get rid of ADVANCED_SPELL_CHECKING
1547         https://bugs.webkit.org/show_bug.cgi?id=193592
1548
1549         Reviewed by Wenson Hsieh.
1550
1551         * wtf/Platform.h:
1552
1553 2019-01-18  Jer Noble  <jer.noble@apple.com>
1554
1555         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1556         https://bugs.webkit.org/show_bug.cgi?id=189553
1557
1558         Reviewed by Tim Horton.
1559
1560         * Configurations/Base.xcconfig:
1561         * Configurations/SDKVariant.xcconfig: Added.
1562
1563 2019-01-18  Keith Miller  <keith_miller@apple.com>
1564
1565         Gigacages should start allocations from a slide
1566         https://bugs.webkit.org/show_bug.cgi?id=193523
1567
1568         Reviewed by Mark Lam.
1569
1570         This patch changes some macros into constants since macros are the
1571         devil.
1572
1573         * wtf/Gigacage.cpp:
1574         * wtf/Gigacage.h:
1575
1576 2019-01-18  Matt Lewis  <jlewis3@apple.com>
1577
1578         Unreviewed, rolling out r240160.
1579
1580         This broke multiple internal builds.
1581
1582         Reverted changeset:
1583
1584         "Gigacages should start allocations from a slide"
1585         https://bugs.webkit.org/show_bug.cgi?id=193523
1586         https://trac.webkit.org/changeset/240160
1587
1588 2019-01-18  Keith Miller  <keith_miller@apple.com>
1589
1590         Gigacages should start allocations from a slide
1591         https://bugs.webkit.org/show_bug.cgi?id=193523
1592
1593         Reviewed by Mark Lam.
1594
1595         This patch changes some macros into constants since macros are the
1596         devil.
1597
1598         * wtf/Gigacage.cpp:
1599         * wtf/Gigacage.h:
1600
1601 2019-01-17  Truitt Savell  <tsavell@apple.com>
1602
1603         Unreviewed, rolling out r240124.
1604
1605         This commit broke an internal build.
1606
1607         Reverted changeset:
1608
1609         "SDK_VARIANT build destinations should be separate from non-
1610         SDK_VARIANT builds"
1611         https://bugs.webkit.org/show_bug.cgi?id=189553
1612         https://trac.webkit.org/changeset/240124
1613
1614 2019-01-17  Jer Noble  <jer.noble@apple.com>
1615
1616         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1617         https://bugs.webkit.org/show_bug.cgi?id=189553
1618
1619         Reviewed by Tim Horton.
1620
1621         * Configurations/Base.xcconfig:
1622         * Configurations/SDKVariant.xcconfig: Added.
1623
1624 2019-01-16  Keith Miller  <keith_miller@apple.com>
1625
1626         bmalloc should use JSC VM tag for gigacage
1627         https://bugs.webkit.org/show_bug.cgi?id=193496
1628
1629         Reviewed by Mark Lam.
1630
1631         Move most of the macros for vm tagging to bmalloc.
1632
1633         * wtf/VMTags.h:
1634
1635 2019-01-16  Alberto Garcia  <berto@igalia.com>
1636
1637         [WTF] Compilation fails with system malloc
1638         https://bugs.webkit.org/show_bug.cgi?id=172445
1639
1640         Reviewed by Michael Catanzaro.
1641
1642         Follow-up to r217270. The sysinfo() system call is specific to
1643         Linux so update the #ifdef checks accordingly.
1644
1645         * wtf/RAMSize.cpp:
1646         (WTF::computeRAMSize):
1647
1648 2019-01-15  Chris Dumez  <cdumez@apple.com>
1649
1650         Unreviewed, revert part of r239997 as it is not needed to fix the build.
1651
1652         * wtf/RefCounter.h:
1653
1654 2019-01-15  Alex Christensen  <achristensen@webkit.org>
1655
1656         Fix iOS build after r239993
1657         https://bugs.webkit.org/show_bug.cgi?id=193361
1658
1659         * wtf/RefCounter.h:
1660
1661 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
1662
1663         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
1664         https://bugs.webkit.org/show_bug.cgi?id=192945
1665
1666         Reviewed by Alex Christensen.
1667
1668         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
1669         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
1670         course this is much worse than the preexisting code, but this is just a transitional
1671         measure and not the final state of the code. It wouldn't make sense to do this if the code
1672         were to remain Objective C++.
1673
1674         * wtf/cocoa/NSURLExtras.mm:
1675         (WTF::toNormalizationFormC):
1676         (WTF::userVisibleString):
1677
1678 2019-01-14  Alex Christensen  <achristensen@webkit.org>
1679
1680         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
1681         https://bugs.webkit.org/show_bug.cgi?id=193411
1682         <rdar://problem/47215929>
1683
1684         Reviewed by Alexey Proskuryakov.
1685
1686         * wtf/cocoa/NSURLExtras.mm:
1687         (WTF::allCharactersAllowedByTLDRules):
1688
1689 2019-01-12  Timothy Hatcher  <timothy@apple.com>
1690
1691         Have prefers-color-scheme: light always match on macOS versions before Mojave.
1692         https://bugs.webkit.org/show_bug.cgi?id=191655
1693         rdar://problem/46074680
1694
1695         Reviewed by Megan Gardner.
1696
1697         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
1698
1699 2019-01-11  David Kilzer  <ddkilzer@apple.com>
1700
1701         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1702         https://bugs.webkit.org/show_bug.cgi?id=191350
1703
1704         * wtf/WorkQueue.cpp:
1705         (WTF::WorkQueue::concurrentApply): Fix whitespace.
1706
1707 2019-01-11  Devin Rousso  <drousso@apple.com>
1708
1709         Fix style CFNetworkSPI style checker warnings from r239698
1710         https://bugs.webkit.org/show_bug.cgi?id=193369
1711
1712         Reviewed by Joseph Pecoraro.
1713
1714         * wtf/Platform.h:
1715
1716 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
1717
1718         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1719         https://bugs.webkit.org/show_bug.cgi?id=191350
1720
1721         Reviewed by Brent Fulgham.
1722
1723         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
1724         String for the threadName and passes the raw pointer of this String to
1725         Thread::create(). After freeing this String, Thread::entryPoint() uses
1726         the raw char pointer to internally initialize the thread.
1727
1728         The fix is to use a single literal string for all the threads' names since
1729         they are created for a thread-pool.
1730
1731         * wtf/WorkQueue.cpp:
1732         (WTF::WorkQueue::concurrentApply):
1733
1734 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
1735
1736         Enable DFG on ARM/Linux again
1737         https://bugs.webkit.org/show_bug.cgi?id=192496
1738
1739         Reviewed by Yusuke Suzuki.
1740
1741         After changing the bytecode format DFG was disabled on all 32-bit
1742         architectures. Enable DFG now again on ARM/Linux.
1743
1744         * wtf/Platform.h:
1745
1746 2019-01-10  Commit Queue  <commit-queue@webkit.org>
1747
1748         Unreviewed, rolling out r239825.
1749         https://bugs.webkit.org/show_bug.cgi?id=193330
1750
1751         Broke tests on armv7/linux bots (Requested by guijemont on
1752         #webkit).
1753
1754         Reverted changeset:
1755
1756         "Enable DFG on ARM/Linux again"
1757         https://bugs.webkit.org/show_bug.cgi?id=192496
1758         https://trac.webkit.org/changeset/239825
1759
1760 2019-01-10  John Wilander  <wilander@apple.com>
1761
1762         Override the session configuration for cookieAcceptPolicy
1763         https://bugs.webkit.org/show_bug.cgi?id=190925
1764         <rdar://problem/45497382>
1765
1766         Reviewed by Alexey Proskuryakov and Alex Christensen.
1767
1768         * wtf/Platform.h:
1769             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
1770
1771 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
1772
1773         Enable DFG on ARM/Linux again
1774         https://bugs.webkit.org/show_bug.cgi?id=192496
1775
1776         Reviewed by Yusuke Suzuki.
1777
1778         After changing the bytecode format DFG was disabled on all 32-bit
1779         architectures. Enable DFG now again on ARM/Linux.
1780
1781         * wtf/Platform.h:
1782
1783 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1784
1785         [FreeType] Color emoji not properly supported
1786         https://bugs.webkit.org/show_bug.cgi?id=191976
1787
1788         Reviewed by Michael Catanzaro.
1789
1790         Add a name for combining enclosing keycap character.
1791
1792         * wtf/unicode/CharacterNames.h:
1793
1794 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
1795
1796         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
1797         https://bugs.webkit.org/show_bug.cgi?id=192391
1798
1799         Reviewed by Don Olmstead.
1800
1801         Unified Source Builds are using global sequential numbers for
1802         bundle filenames UnifiedSource{sequential-number}.cpp. As the
1803         result, every new source file added would shift the next ones and
1804         prevent compiler caches from speeding up consecutive builds e.g.
1805         in git-bisect sessions.
1806
1807         Changed it to directory local sequential numbers,
1808         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
1809
1810         This is affecting only CMake builds which is where no
1811         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
1812         are set. Xcode builds still use the old convention.
1813
1814         * Scripts/generate-unified-source-bundles.rb: Add new instance
1815         variables @currentDirectory and @extraFiles to BundleManager.
1816         Still use global sequential numbers if --max-cpp-bundle-count or
1817         --max-obj-c-bundle-count is given.
1818
1819 2019-01-09  Alex Christensen  <achristensen@webkit.org>
1820
1821         Expand use of sourceApplicationAuditData
1822         https://bugs.webkit.org/show_bug.cgi?id=192995
1823         <rdar://problem/46627875>
1824
1825         Reviewed by Brady Eidson.
1826
1827         * wtf/Platform.h:
1828
1829 2019-01-09  Mark Lam  <mark.lam@apple.com>
1830
1831         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
1832         https://bugs.webkit.org/show_bug.cgi?id=193292
1833         <rdar://problem/46485450>
1834
1835         Reviewed by Yusuke Suzuki.
1836
1837         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
1838
1839         * wtf/Gigacage.h:
1840
1841 2019-01-07  David Kilzer  <ddkilzer@apple.com>
1842
1843         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
1844         <https://webkit.org/b/193056>
1845
1846         Reviewed by Alex Christensen.
1847
1848         * wtf/RetainPtr.h:
1849         (WTF::RetainPtr<T>::HelperPtrType):
1850         - Use C++ template metaprogramming to define a shared return
1851           type for adoptNS() and retainPtr() that uses
1852           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
1853           non-Objective-C typedef is used with retainPtr() for CFTypeRef
1854           objects.
1855         (WTF::adoptNS):
1856         - Only make declarations available when compilng with
1857           Objective-C.  The inline implementation is only available for
1858           Objective-C, so this makes the declarations consistent.
1859         - Change return type to remove '*' from NS types using
1860           RetainPtr<T>::HelperPtrType.
1861         (WTF::retainPtr):
1862         - Change return type to remove '*' from NS types using
1863           RetainPtr<T>::HelperPtrType.
1864
1865         * wtf/SchedulePair.h:
1866         - Remove '*' from RetainPtr<> type.
1867
1868 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
1869
1870         A MediaTime timescale must never be zero
1871         https://bugs.webkit.org/show_bug.cgi?id=193156
1872         <rdar://problem/32504501>
1873
1874         Reviewed by Jer Noble.
1875
1876         * wtf/MediaTime.cpp:
1877         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
1878         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
1879         (WTF::MediaTime::createWithFloat): Ditto.
1880         (WTF::MediaTime::createWithDouble): Ditto.
1881         (WTF::MediaTime::setTimeScale): Ditto.
1882
1883 2019-01-02  Alex Christensen  <achristensen@webkit.org>
1884
1885         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
1886         https://bugs.webkit.org/show_bug.cgi?id=192944
1887
1888         Reviewed by Tim Horton.
1889
1890         * wtf/cocoa/NSURLExtras.mm:
1891         (WTF::isLookalikeCharacter):
1892
1893 2019-01-02  Commit Queue  <commit-queue@webkit.org>
1894
1895         Unreviewed, rolling out r239524.
1896         https://bugs.webkit.org/show_bug.cgi?id=193083
1897
1898         basic browsing seems not to work (Requested by thorton on
1899         #webkit).
1900
1901         Reverted changeset:
1902
1903         "Expand use of sourceApplicationAuditData"
1904         https://bugs.webkit.org/show_bug.cgi?id=192995
1905         https://trac.webkit.org/changeset/239524
1906
1907 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1908
1909         Add ENABLE_UNIFIED_BUILDS option to cmake ports
1910         https://bugs.webkit.org/show_bug.cgi?id=193045
1911
1912         Reviewed by Don Olmstead.
1913
1914         * Scripts/generate-unified-source-bundles.rb:
1915
1916 2018-12-27  Alex Christensen  <achristensen@webkit.org>
1917
1918         Resurrect Mac CMake build
1919         https://bugs.webkit.org/show_bug.cgi?id=192658
1920
1921         Reviewed by Yusuke Suzuki.
1922
1923         * wtf/PlatformMac.cmake:
1924         * wtf/cf/CFURLExtras.cpp:
1925         * wtf/cf/CFURLExtras.h:
1926         * wtf/cf/URLCF.cpp:
1927         * wtf/cocoa/NSURLExtras.h:
1928         * wtf/cocoa/NSURLExtras.mm:
1929         * wtf/cocoa/URLCocoa.mm:
1930
1931 2018-12-21  Dan Bernstein  <mitz@apple.com>
1932
1933         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
1934
1935         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
1936           deployment target, not the SDK.
1937
1938 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1939
1940         [JSC] Implement "well-formed JSON.stringify" proposal
1941         https://bugs.webkit.org/show_bug.cgi?id=191677
1942
1943         Reviewed by Darin Adler.
1944
1945         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
1946         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
1947         The proposal requires that broken surrogate pairs are unicode-escaped.
1948
1949         [1]: https://github.com/tc39/proposal-well-formed-stringify
1950
1951         * wtf/text/StringBuilderJSON.cpp:
1952         (WTF::appendQuotedJSONStringInternal):
1953
1954 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1955
1956         Expand use of sourceApplicationAuditData
1957         https://bugs.webkit.org/show_bug.cgi?id=192995
1958         <rdar://problem/46627875>
1959
1960         Reviewed by Brady Eidson.
1961
1962         * wtf/Platform.h:
1963
1964 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1965
1966         Revert r239503.
1967         https://bugs.webkit.org/show_bug.cgi?id=192944
1968
1969         * wtf/cocoa/NSURLExtras.mm:
1970         (WTF::isLookalikeCharacter):
1971
1972 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
1973
1974         Show punycode if URL contains Latin small letter dotless i
1975         https://bugs.webkit.org/show_bug.cgi?id=192944
1976         <rdar://problem/46103047>
1977
1978         Reviewed by Andy Estes.
1979
1980         Revise our "lookalike character" logic to include the small Latin
1981         dotless i character.
1982
1983         Test: fast/url/host.html
1984
1985         * wtf/cocoa/NSURLExtras.mm:
1986         (WTF::isLookalikeCharacter):
1987
1988 2018-12-20  Chris Dumez  <cdumez@apple.com>
1989
1990         Use Optional::hasValue() instead of Optional::has_value()
1991         https://bugs.webkit.org/show_bug.cgi?id=192948
1992
1993         Reviewed by Tim Horton.
1994
1995         * wtf/Hasher.h:
1996         (WTF::add):
1997         * wtf/Optional.h:
1998
1999 2018-12-20  Chris Dumez  <cdumez@apple.com>
2000
2001         Use Optional::valueOr() instead of Optional::value_or()
2002         https://bugs.webkit.org/show_bug.cgi?id=192933
2003
2004         Reviewed by Geoffrey Garen.
2005
2006         * wtf/Optional.h:
2007         (WTF::Optional<T::valueOr const):
2008
2009 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
2010
2011         Consistently use MaxLength for all WTF strings
2012         https://bugs.webkit.org/show_bug.cgi?id=192853
2013         <rdar://problem/45726906>
2014
2015         Reviewed by Mark Lam.
2016
2017         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
2018         but all the assertions were still done using UINT_MAX. Change it to
2019         use MaxLength for all checks.
2020
2021         * wtf/text/StringImpl.cpp:
2022         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2023         (WTF::StringImpl::reallocateInternal):
2024         (WTF::StringImpl::create):
2025         (WTF::StringImpl::convertToLowercaseWithoutLocale):
2026         (WTF::StringImpl::convertToUppercaseWithoutLocale):
2027         (WTF::StringImpl::convertToLowercaseWithLocale):
2028         (WTF::StringImpl::convertToUppercaseWithLocale):
2029         (WTF::StringImpl::foldCase):
2030         (WTF::StringImpl::find):
2031         (WTF::StringImpl::replace):
2032         (WTF::StringImpl::utf8ForCharacters):
2033         (WTF::StringImpl::tryGetUtf8ForRange const):
2034         * wtf/text/StringImpl.h:
2035         (WTF::lengthOfNullTerminatedString):
2036         (WTF::StringImpl::tryCreateUninitialized):
2037         (WTF::StringImpl::adopt):
2038         (WTF::StringImpl::maxInternalLength):
2039         * wtf/text/WTFString.cpp:
2040         (WTF::String::append):
2041         (WTF::String::insert):
2042         (WTF::String::fromUTF8):
2043         * wtf/text/WTFString.h:
2044         (WTF::String::reverseFind const):
2045
2046 2018-12-19  Chris Dumez  <cdumez@apple.com>
2047
2048         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
2049         https://bugs.webkit.org/show_bug.cgi?id=192728
2050         <rdar://problem/46746779>
2051
2052         Reviewed by Geoff Garen.
2053
2054         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
2055         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
2056
2057         Based on patch by David Kilzer.
2058
2059         * wtf/*:
2060
2061 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
2062
2063         [MediaStream] Force system camera/microphone TCC prompt if necessary
2064         https://bugs.webkit.org/show_bug.cgi?id=192820
2065         <rdar://problem/42680098>
2066
2067         Reviewed by Jer Noble.
2068
2069         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
2070
2071 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
2072
2073         Some builds are broken after r239262
2074         https://bugs.webkit.org/show_bug.cgi?id=192777
2075
2076         Reviewed by Simon Fraser.
2077
2078         * wtf/Platform.h:
2079
2080 2018-12-17  Daniel Bates  <dabates@apple.com>
2081
2082         Support concatenating StringView with other string types
2083         https://bugs.webkit.org/show_bug.cgi?id=177566
2084
2085         Reviewed by Darin Adler.
2086
2087         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
2088         other string types (e.g. String). This lets a person write more naturally looking code:
2089
2090         stringView + string
2091
2092         Instead of:
2093
2094         makeString(stringView, string)
2095
2096         * wtf/text/StringOperators.h:
2097         (WTF::operator+): Added various operator+ overloads.
2098
2099 2018-12-17  Commit Queue  <commit-queue@webkit.org>
2100
2101         Unreviewed, rolling out r239265 and r239274.
2102         https://bugs.webkit.org/show_bug.cgi?id=192765
2103
2104         unorm_normalize is deprecated, and broke an internal build
2105         (Requested by Truitt on #webkit).
2106
2107         Reverted changesets:
2108
2109         "[GTK][WPE] Need a function to convert internal URI to display
2110         ("pretty") URI"
2111         https://bugs.webkit.org/show_bug.cgi?id=174816
2112         https://trac.webkit.org/changeset/239265
2113
2114         "Fix the Apple Internal Mac build with a newer SDK"
2115         https://trac.webkit.org/changeset/239274
2116
2117 2018-12-17  Daniel Bates  <dabates@apple.com>
2118
2119         Fix the Apple Internal Mac build with a newer SDK
2120
2121         * wtf/URLHelpers.cpp:
2122         (WTF::URLHelpers::userVisibleURL):
2123
2124 2018-12-17  Matt Lewis  <jlewis3@apple.com>
2125
2126         Unreviewed, rolling out r239254.
2127
2128         This broke the Windows 10 Debug build
2129
2130         Reverted changeset:
2131
2132         "Replace many uses of String::format with more type-safe
2133         alternatives"
2134         https://bugs.webkit.org/show_bug.cgi?id=192742
2135         https://trac.webkit.org/changeset/239254
2136
2137 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
2138
2139         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
2140         https://bugs.webkit.org/show_bug.cgi?id=174816
2141
2142         Reviewed by Michael Catanzaro.
2143
2144         Translate userVisibleString and dependent code into platform-neutral C++
2145         in wtf/URLHelpers.{h,cpp}.
2146
2147         * WTF.xcodeproj/project.pbxproj:
2148         * wtf/CMakeLists.txt:
2149         * wtf/URLHelpers.cpp: Added.
2150         (WTF::URLHelpers::loadIDNScriptWhiteList):
2151         (WTF::URLHelpers::isArmenianLookalikeCharacter):
2152         (WTF::URLHelpers::isArmenianScriptCharacter):
2153         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
2154         (WTF::URLHelpers::isLookalikeCharacter):
2155         (WTF::URLHelpers::whiteListIDNScript):
2156         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
2157         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
2158         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
2159         (WTF::URLHelpers::isRussianDomainNameCharacter):
2160         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
2161         (WTF::URLHelpers::mapHostName):
2162         (WTF::URLHelpers::collectRangesThatNeedMapping):
2163         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
2164         (WTF::URLHelpers::applyHostNameFunctionToURLString):
2165         (WTF::URLHelpers::mapHostNames):
2166         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
2167         (WTF::URLHelpers::userVisibleURL):
2168         * wtf/URLHelpers.h: Added.
2169         * wtf/cocoa/NSURLExtras.mm:
2170         (WTF::URLHelpers::loadIDNScriptWhiteList):
2171         (WTF::decodePercentEscapes):
2172         (WTF::decodeHostName):
2173         (WTF::encodeHostName):
2174         (WTF::URLWithUserTypedString):
2175         (WTF::userVisibleString):
2176
2177 2018-12-15  Darin Adler  <darin@apple.com>
2178
2179         Use warning-ignoring macros more consistently and simply
2180         https://bugs.webkit.org/show_bug.cgi?id=192743
2181
2182         Reviewed by Mark Lam.
2183
2184         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
2185         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
2186         non-clang compilers, in part since the code is already inside
2187         #if COMPILER(CLANG), but also because it would be harmless to ignore this
2188         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
2189
2190 2018-12-15  Darin Adler  <darin@apple.com>
2191
2192         Replace many uses of String::format with more type-safe alternatives
2193         https://bugs.webkit.org/show_bug.cgi?id=192742
2194
2195         Reviewed by Mark Lam.
2196
2197         * wtf/WorkQueue.cpp:
2198         (WTF::WorkQueue::concurrentApply): Use makeString.
2199
2200         * wtf/dtoa.cpp:
2201         (WTF::dtoa): Use sprintf instead of String::format in the comments,
2202         since these functions have nothing to do with WTF::String.
2203
2204 2018-12-14  Darin Adler  <darin@apple.com>
2205
2206         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
2207         https://bugs.webkit.org/show_bug.cgi?id=192738
2208         rdar://problem/37502342
2209
2210         Reviewed by Mark Lam.
2211
2212         * wtf/Gigacage.cpp:
2213         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
2214         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
2215
2216 2018-12-14  David Kilzer  <ddkilzer@apple.com>
2217
2218         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
2219         <https://webkit.org/b/192710>
2220         <rdar://problem/46738962>
2221
2222         Reviewed by Eric Carlson.
2223
2224         * wtf/Logger.h:
2225         (WTF::LogArgument::toString): Make argument a const reference to
2226         avoid the copy.
2227
2228 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
2229
2230         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
2231         https://bugs.webkit.org/show_bug.cgi?id=192696
2232
2233         Reviewed by Michael Catanzaro.
2234
2235         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
2236         should support microsecond-precision delays. Such delays are common in
2237         JSC's Watchdog implementation and missing support for them has been
2238         causing test failures in the `testapi` program as well as some JSC
2239         tests that depend on the termination determination functionality of the
2240         JSC::Watchdog class.
2241
2242         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
2243         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
2244         The GSource's ready time is set manually, now with the necessary
2245         microsecond precision.
2246
2247         * wtf/glib/RunLoopGLib.cpp:
2248         (WTF::RunLoop::dispatchAfter):
2249
2250 2018-12-13  Saam Barati  <sbarati@apple.com>
2251
2252         The JSC shell should listen for memory pressure events and respond to them
2253         https://bugs.webkit.org/show_bug.cgi?id=192647
2254
2255         Reviewed by Keith Miller.
2256
2257         * wtf/MemoryPressureHandler.cpp:
2258         (WTF::MemoryPressureHandler::MemoryPressureHandler):
2259         (WTF::MemoryPressureHandler::setDispatchQueue):
2260         Make it so that we can customize which dispatch queue memory pressure
2261         events get handled on.
2262
2263         * wtf/MemoryPressureHandler.h:
2264         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
2265         Make it so that we can disable logging that happens on each memory
2266         pressure event.
2267
2268         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
2269         (WTF::MemoryPressureHandler::install):
2270         (WTF::MemoryPressureHandler::uninstall):
2271         (WTF::MemoryPressureHandler::holdOff):
2272
2273 2018-12-13  David Kilzer  <ddkilzer@apple.com>
2274
2275         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
2276         <https://webkit.org/b/192666>
2277         <rdar://problem/46697952>
2278
2279         Reviewed by Alex Christensen.
2280
2281         * wtf/ParallelHelperPool.cpp:
2282         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
2283         reference and WTFMove().
2284         (WTF::ParallelHelperClient::setTask): Ditto.
2285         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
2286         (WTF::ParallelHelperClient::runTask): Use const reference.
2287         * wtf/ParallelHelperPool.h: Update declarations to match
2288         implementations.
2289
2290 2018-12-12  Alex Christensen  <achristensen@webkit.org>
2291
2292         Implement safe browsing in WebKit on WatchOS
2293         https://bugs.webkit.org/show_bug.cgi?id=192641
2294         <rdar://problem/46376188>
2295
2296         Reviewed by Geoff Garen.
2297
2298         * wtf/Platform.h:
2299         WatchOS has safe browsing, too!
2300
2301 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
2302
2303         [Win][Clang] Fix compilation warnings of WTF
2304         https://bugs.webkit.org/show_bug.cgi?id=192583
2305
2306         Reviewed by Alex Christensen.
2307
2308         clang-cl reports the following warnings.
2309
2310         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
2311         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
2312         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
2313         >                                                ^
2314         > 1 warning generated.
2315         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
2316         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(34,54):  warning: ISO C++11 does not allow conversion from string literal to 'const LPWSTR' (aka 'wchar_t *const') [-Wwritable-strings]
2317         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
2318         >                                                      ^
2319         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
2320         >     WNDCLASS windowClass = { 0 };
2321         >                                ^
2322         > 2 warnings generated.
2323         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
2324         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
2325         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
2326         >                    ^
2327         > 1 warning generated.
2328
2329         * wtf/DateMath.cpp:
2330         (WTF::getLocalTime): Defined only if used.
2331         * wtf/StackBounds.cpp:
2332         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
2333         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
2334         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
2335
2336 2018-12-11  Andy Estes  <aestes@apple.com>
2337
2338         Introduce makeBlockPtr for lambdas
2339         https://bugs.webkit.org/show_bug.cgi?id=192594
2340
2341         Reviewed by Alex Christensen.
2342
2343         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
2344         signature as a class template argument. This patch introduces an overload of makeBlockPtr
2345         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
2346
2347         * wtf/BlockPtr.h:
2348         (WTF::makeBlockPtr):
2349
2350         Adopted makeBlockPtr.
2351
2352         * wtf/cocoa/WorkQueueCocoa.cpp:
2353         (WTF::WorkQueue::dispatch):
2354         (WTF::WorkQueue::dispatchAfter):
2355         (WTF::WorkQueue::concurrentApply):
2356
2357 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
2358
2359         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
2360         https://bugs.webkit.org/show_bug.cgi?id=192573
2361
2362         Reviewed by Simon Fraser.
2363
2364         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
2365         on it being set in FeatureDefines.xcconfig.
2366
2367         * wtf/Platform.h:
2368
2369 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
2370
2371         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
2372         https://bugs.webkit.org/show_bug.cgi?id=192428
2373
2374         Reviewed by Tim Horton.
2375
2376         * wtf/Platform.h:
2377
2378 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
2379
2380         Move more macros out of WebKit's config.h
2381         https://bugs.webkit.org/show_bug.cgi?id=192430
2382
2383         Reviewed by Tim Horton.
2384
2385         * wtf/Platform.h:
2386
2387 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2388
2389         Unreviewed, fix build failure on GCC 8.2, part 2
2390
2391         Add RefCountedArray::assign, and use it instead of operator= internally.
2392         We should have operator=(const RefCountedArray&) since it will be automatically generated
2393         if we do not have correct implementation here.
2394
2395         * wtf/RefCountedArray.h:
2396         (WTF::RefCountedArray::operator=):
2397         (WTF::RefCountedArray::assign):
2398
2399 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2400
2401         Unreviewed, fix build failure on GCC 8.2
2402
2403         We remove operator=<PtrTraits> call since it is not necessary.
2404         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
2405
2406         * wtf/RefCountedArray.h:
2407
2408 2018-12-08  Darin Adler  <darin@apple.com>
2409
2410         Fix stray-semicolon warning seen with a new version of clang in Xcode
2411         https://bugs.webkit.org/show_bug.cgi?id=192534
2412
2413         Reviewed by Alexey Proskuryakov.
2414
2415         * wtf/Lock.h: Removed an unneeded semicolon.
2416
2417 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
2418
2419         [WTF] Debug build fails due conflicting abort() method
2420         https://bugs.webkit.org/show_bug.cgi?id=192491
2421
2422         Reviewed by Michael Catanzaro.
2423
2424         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
2425         inside classes which have an ::abort() method, but only when __cplusplus is defined to
2426         allow inclusion of the header in plain C sources.
2427
2428 2018-12-07  Andy Estes  <aestes@apple.com>
2429
2430         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
2431         https://bugs.webkit.org/show_bug.cgi?id=192498
2432
2433         Reviewed by Tim Horton.
2434
2435         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
2436         which behave like their non-optional variants but do not require their classes to exist.
2437
2438         * wtf/cocoa/SoftLinking.h:
2439
2440 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
2441
2442         Move USE_NEW_THEME out of WebCore's config.h
2443         https://bugs.webkit.org/show_bug.cgi?id=192426
2444
2445         Reviewed by Tim Horton.
2446
2447         * wtf/Platform.h:
2448
2449 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2450
2451         [SOUP] Move URLSoup back to WebCore after r238771
2452         https://bugs.webkit.org/show_bug.cgi?id=192306
2453
2454         Reviewed by Michael Catanzaro.
2455
2456         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
2457         libsoup as a new dependency of libjavascriptcoregtk.
2458
2459         * wtf/PlatformGTK.cmake:
2460         * wtf/PlatformWPE.cmake:
2461         * wtf/URL.h:
2462         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
2463
2464 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
2465
2466         Fix some unused parameter warnings
2467         https://bugs.webkit.org/show_bug.cgi?id=192336
2468
2469         Reviewed by Fujii Hironori.
2470
2471         * wtf/StackTrace.cpp:
2472         (WTFGetBacktrace):
2473         (WTF::StackTrace::demangle):
2474         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
2475         (WTF::MemoryPressureHandler::holdOff):
2476         (WTF::MemoryPressureHandler::respondToMemoryPressure):
2477
2478 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
2479
2480         Modernize version check for _suppressedAutoAddedHTTPHeaders
2481         https://bugs.webkit.org/show_bug.cgi?id=192175
2482
2483         Reviewed by Tim Horton.
2484
2485         * wtf/Platform.h:
2486
2487 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2488
2489         Fix Windows build after r238771
2490         https://bugs.webkit.org/show_bug.cgi?id=190234
2491
2492         * wtf/URLParser.h:
2493         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
2494
2495 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2496
2497         Move URL from WebCore to WTF
2498         https://bugs.webkit.org/show_bug.cgi?id=190234
2499
2500         Reviewed by Keith Miller.
2501
2502         * WTF.xcodeproj/project.pbxproj:
2503         * wtf/CMakeLists.txt:
2504         * wtf/Forward.h:
2505         * wtf/PlatformGTK.cmake:
2506         * wtf/PlatformMac.cmake:
2507         * wtf/PlatformWPE.cmake:
2508         * wtf/PlatformWin.cmake:
2509         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
2510         (WTF::URL::protocolIs):
2511         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
2512         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
2513         (WTF::URLHash::hash):
2514         (WTF::URLHash::equal):
2515         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
2516         (WTF::URLParser::isInUserInfoEncodeSet):
2517         (WTF::URLParser::parseAuthority):
2518         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
2519         (WTF::URLParser::URLParser):
2520         (WTF::URLParser::result):
2521         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
2522         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
2523         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
2524         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
2525         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
2526         (WTF::isArmenianLookalikeCharacter):
2527         (WTF::isArmenianScriptCharacter):
2528         (WTF::isASCIIDigitOrValidHostCharacter):
2529         (WTF::isLookalikeCharacter):
2530         (WTF::whiteListIDNScript):
2531         (WTF::readIDNScriptWhiteListFile):
2532         (WTF::allCharactersInIDNScriptWhiteList):
2533         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
2534         (WTF::isRussianDomainNameCharacter):
2535         (WTF::allCharactersAllowedByTLDRules):
2536         (WTF::mapHostNameWithRange):
2537         (WTF::hostNameNeedsDecodingWithRange):
2538         (WTF::hostNameNeedsEncodingWithRange):
2539         (WTF::decodeHostNameWithRange):
2540         (WTF::encodeHostNameWithRange):
2541         (WTF::decodeHostName):
2542         (WTF::encodeHostName):
2543         (WTF::collectRangesThatNeedMapping):
2544         (WTF::collectRangesThatNeedEncoding):
2545         (WTF::collectRangesThatNeedDecoding):
2546         (WTF::applyHostNameFunctionToMailToURLString):
2547         (WTF::applyHostNameFunctionToURLString):
2548         (WTF::mapHostNames):
2549         (WTF::stringByTrimmingWhitespace):
2550         (WTF::URLByTruncatingOneCharacterBeforeComponent):
2551         (WTF::URLByRemovingResourceSpecifier):
2552         (WTF::URLWithData):
2553         (WTF::dataWithUserTypedString):
2554         (WTF::URLWithUserTypedString):
2555         (WTF::URLWithUserTypedStringDeprecated):
2556         (WTF::hasQuestionMarkOnlyQueryString):
2557         (WTF::dataForURLComponentType):
2558         (WTF::URLByRemovingComponentAndSubsequentCharacter):
2559         (WTF::URLByRemovingUserInfo):
2560         (WTF::originalURLData):
2561         (WTF::createStringWithEscapedUnsafeCharacters):
2562         (WTF::userVisibleString):
2563         (WTF::isUserVisibleURL):
2564         (WTF::rangeOfURLScheme):
2565         (WTF::looksLikeAbsoluteURL):
2566         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
2567         (WTF::URL::URL):
2568         (WTF::URL::createCFURL const):
2569         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
2570         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
2571
2572 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
2573
2574         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
2575         https://bugs.webkit.org/show_bug.cgi?id=192173
2576
2577         Reviewed by Tim Horton.
2578
2579         * wtf/Platform.h: Also renamed it to better match other version checks.
2580
2581 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
2582
2583         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
2584         https://bugs.webkit.org/show_bug.cgi?id=192041
2585
2586         Reviewed by Tim Horton.
2587
2588         * wtf/Platform.h:
2589
2590 2018-11-28  Mark Lam  <mark.lam@apple.com>
2591
2592         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
2593         https://bugs.webkit.org/show_bug.cgi?id=192110
2594         <rdar://problem/46317746>
2595
2596         Reviewed by Saam Barati.
2597
2598         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
2599         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
2600         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
2601         (and other projects) as well as JSC.  Hence, there's no reason why
2602         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
2603
2604         * wtf/Platform.h:
2605
2606 2018-11-28  Keith Rollin  <krollin@apple.com>
2607
2608         Update generate-unified-source-bundles.rb to generate .xcfilelist files
2609         https://bugs.webkit.org/show_bug.cgi?id=192029
2610         <rdar://problem/46285918>
2611
2612         Reviewed by Alex Christensen.
2613
2614         Update generate-unified-source-bundles.rb to generate output for
2615         .xcfilelist files. These files are used to indicate the sets of input
2616         and output files to Run Script build phases in Xcode. By invoking
2617         generate-unified-source-bundles.rb with -generate-xcfilelists, the
2618         script generates these .xcfilelist files. These .xcfilelist files can
2619         then be used to specify the inputs and outputs of the Generate Unified
2620         Sources build phases.
2621
2622         * Scripts/generate-unified-source-bundles.rb:
2623
2624 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2625
2626         Remove another OS version check from NetworkDataTaskCocoa.mm
2627         https://bugs.webkit.org/show_bug.cgi?id=192046
2628
2629         Reviewed by Alex Christensen.
2630
2631         * wtf/Platform.h:
2632
2633 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2634
2635         Modernize version checks for same site cookie support
2636         https://bugs.webkit.org/show_bug.cgi?id=192054
2637
2638         Reviewed by Tim Horton.
2639
2640         * wtf/Platform.h:
2641
2642 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
2643
2644         Modernize the check for async _saveCookies existence
2645         https://bugs.webkit.org/show_bug.cgi?id=191987
2646
2647         Reviewed by Dean Jackson.
2648
2649         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
2650         although it seems very likely that we want to do the same on other iOS family OSes.
2651
2652 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
2653
2654         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
2655         https://bugs.webkit.org/show_bug.cgi?id=191960
2656
2657         Reviewed by Alex Christensen.
2658
2659         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
2660         pointer argument of EncodePointer. Changed the type of stored
2661         function pointer returned by EncodePointer.
2662
2663 2018-11-26  Sam Weinig  <sam@webkit.org>
2664
2665         Streamline ListHashSet use in floating object code
2666         https://bugs.webkit.org/show_bug.cgi?id=191957
2667
2668         Reviewed by Alex Christensen.
2669
2670         * wtf/ListHashSet.h:
2671         Reverses the order of the template arguments for the find() and contains()
2672         overload that allow specifying a hash translator to allow the compiler to
2673         deduce type T. This simplifies call sites and matches other WTF containers.
2674
2675 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2676
2677         CRASH() should call abort() except on Darwin and in developer builds
2678         https://bugs.webkit.org/show_bug.cgi?id=184408
2679
2680         Reviewed by Daniel Bates.
2681
2682         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2683         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2684
2685         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2686         can't do that.
2687
2688         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2689         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2690
2691         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
2692         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
2693         is also non-constexpr.
2694
2695         * wtf/Assertions.h:
2696
2697 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2698
2699         Unreviewed, rolling out r238469.
2700
2701         Broke the build
2702
2703         Reverted changeset:
2704
2705         "CRASH() should call abort() except on Darwin and in developer
2706         builds"
2707         https://bugs.webkit.org/show_bug.cgi?id=184408
2708         https://trac.webkit.org/changeset/238469
2709
2710 2018-11-24  Andy Estes  <aestes@apple.com>
2711
2712         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
2713         https://bugs.webkit.org/show_bug.cgi?id=191899
2714
2715         Reviewed by Dean Jackson.
2716
2717         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
2718         framework name. For example, NSView would have a class getter named
2719         namespace::get_AppKit_NSViewClass().
2720
2721         Including the framework name in the getter is unnecessary. Objective-C classes already exist
2722         in a global namespace, so there is no need to disambiguate class names by framework. This
2723         patch elides the framework name from the getter function. For example, NSView would now have
2724         a getter named namespace::getNSViewClass().
2725
2726         * wtf/cocoa/SoftLinking.h:
2727
2728 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
2729
2730         CRASH() should call abort() except on Darwin and in developer builds
2731         https://bugs.webkit.org/show_bug.cgi?id=184408
2732
2733         Reviewed by Daniel Bates.
2734
2735         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2736         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2737
2738         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2739         can't do that.
2740
2741         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2742         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2743
2744         * wtf/Assertions.h:
2745
2746 2018-11-23  Sam Weinig  <sam@webkit.org>
2747
2748         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
2749         https://bugs.webkit.org/show_bug.cgi?id=191936
2750
2751         Reviewed by Zalan Bujtas.
2752
2753         Adds overloads for find, contains, insertBefore and remove that take raw pointers
2754         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
2755         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
2756         which already have this functionality. Like in the other collections, this is especially
2757         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
2758         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
2759         which is unique to ListHashSet. As would be expected, this specialization only changes the first
2760         parameter, the one that needs to be found, to support a raw pointer.  
2761
2762         * wtf/ListHashSet.h:
2763         (WTF::U>::find):
2764         (WTF::U>::find const):
2765         (WTF::U>::contains const):
2766         (WTF::U>::insertBefore):
2767         (WTF::U>::remove):
2768
2769 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2770
2771         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
2772         https://bugs.webkit.org/show_bug.cgi?id=191675
2773
2774         Reviewed by Mark Lam.
2775
2776         * wtf/InlineASM.h:
2777         * wtf/Platform.h:
2778
2779 2018-11-21  Andy Estes  <aestes@apple.com>
2780
2781         [Cocoa] Create a soft-linking file for PassKit
2782         https://bugs.webkit.org/show_bug.cgi?id=191875
2783         <rdar://problem/46203215>
2784
2785         Reviewed by Myles Maxfield.
2786
2787         * wtf/Platform.h: Defined USE_PASSKIT.
2788         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
2789         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
2790         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
2791
2792 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
2793
2794         Enable JIT on ARM/Linux
2795         https://bugs.webkit.org/show_bug.cgi?id=191548
2796
2797         Reviewed by Yusuke Suzuki.
2798
2799         Enable JIT by default on ARMv7/Linux after it was disabled with
2800         recent bytcode format change.
2801
2802         * wtf/Platform.h:
2803
2804 2018-11-14  Keith Rollin  <krollin@apple.com>
2805
2806         Fix #end vs. #endif typo.
2807         https://bugs.webkit.org/show_bug.cgi?id=191668
2808         <rdar://problem/46081704>
2809
2810         Reviewed by Alexey Proskuryakov.
2811
2812         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
2813         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
2814         to detect similar typos.
2815
2816         * Scripts/generate-unified-source-bundles.rb:
2817
2818 2018-11-12  Mark Lam  <mark.lam@apple.com>
2819
2820         Add OOM detection to StringPrototype's substituteBackreferences().
2821         https://bugs.webkit.org/show_bug.cgi?id=191563
2822         <rdar://problem/45720428>
2823
2824         Reviewed by Saam Barati.
2825
2826         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
2827         the hasOverflowed() check if m_string is not null.  When m_string is not null,
2828         the StringBuilder either only has a single String in m_string (with m_buffer being 
2829         null), or reifyString() has already been called (resulting in a non-null m_string
2830         with a possibly non-null m_buffer).
2831
2832         We can skip the overflow check because:
2833         1. if the StringBuilder only has a single String, then there cannot be an overflow.
2834         2. if reifyString() has already been called, then the hasOverflowed() checked has
2835            already been done because every code path that calls reifyString() first does
2836            the hasOverflowed() check.
2837
2838         We can skip shrinkToFit() because it only applies to m_buffer.
2839         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
2840         2. if reifyString() has already been called, then we either came down
2841            a. the toString() path with a null m_string previously, where we would have
2842               already called shrinkToFit() before reifyString(), or
2843            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
2844
2845         We can skip reifyString() because:
2846         1. if the StringBuilder only has a single String, then the string is already reified.
2847         2. if reifyString() has been already called, then the string is already reified.
2848
2849         Note that if m_string is the null string and m_buffer is null, reifyString() will
2850         replace it with the empty string.  For this reason, we cannot solely check for
2851         !m_buffer because we need to reify the null string into the empty string.
2852
2853         Note also that if m_string is null and m_buffer is non-null, reifyString() will
2854         create a String and set m_string to it.  However, m_buffer remains non-null.
2855         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
2856         We add a m_isReified flag (only when assertions are enabled) to track the reified
2857         case where both m_buffer and m_string are non-null.
2858
2859         * wtf/text/StringBuilder.cpp:
2860         (WTF::StringBuilder::reifyString const):
2861         * wtf/text/StringBuilder.h:
2862         (WTF::StringBuilder::toString):
2863
2864 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
2865
2866         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
2867         https://bugs.webkit.org/show_bug.cgi?id=191492
2868
2869         Reviewed by Alex Christensen.
2870
2871         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
2872         the cases, some systems have issues with applying this patch.
2873
2874         To work around the problem, the change is made is two patches, first rename to
2875         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
2876
2877         * WTF.xcodeproj/project.pbxproj:
2878         * wtf/CMakeLists.txt:
2879         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
2880         (wtfObjCMsgSend):
2881
2882 2018-11-09  Keith Miller  <keith_miller@apple.com>
2883
2884         LLInt VectorSizeOffset should be based on offset extraction
2885         https://bugs.webkit.org/show_bug.cgi?id=191468
2886
2887         Reviewed by Yusuke Suzuki.
2888
2889         Make things friends with LLIntOffsetsExtractor.
2890
2891         * wtf/RefCountedArray.h:
2892         * wtf/Vector.h:
2893
2894 2018-11-09  Jim Mason  <jmason@ibinx.com>
2895
2896         [WTF] Changes in bug 188867 break non-Linux Unix builds
2897         https://bugs.webkit.org/show_bug.cgi?id=191380
2898
2899         The intention of 188867 was to split out platform-specific
2900         heap query/release code.  Any unsupported platform
2901         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
2902         ended up sending all non-Linux platforms through the Linux
2903         implementation, which breaks the build for those platforms.
2904         This includes any user of the GTK target which is not Linux,
2905         such as the *BSDs, Solaris, etc.
2906
2907         Reviewed by Yusuke Suzuki.
2908
2909         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
2910         code only for Linux; all other platforms use the generic stub.
2911
2912 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
2913
2914         Removed mbmalloc target from WTF
2915         https://bugs.webkit.org/show_bug.cgi?id=191313
2916
2917         Reviewed by Saam Barati.
2918
2919         For benchmarking, WTF::fastMalloc is no longer meaningfully different
2920         from bmalloc. (And bmalloc has its own mbmalloc target.)
2921
2922         * Configurations/mbmalloc.xcconfig: Removed.
2923         * WTF.xcodeproj/project.pbxproj:
2924         * wtf/mbmalloc.cpp: Removed.
2925
2926 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
2927
2928         Re-add PLATFORM(IOS), now with the strict meaning
2929         https://bugs.webkit.org/show_bug.cgi?id=191281
2930
2931         Reviewed by Tim Horton.
2932
2933         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
2934         when expanded, it might be that the values are incorrect for some flavors of iOS family.
2935
2936 2018-11-08  Dean Jackson  <dino@apple.com>
2937
2938         Add a String literal that returns a String
2939         https://bugs.webkit.org/show_bug.cgi?id=191425
2940         <rdar://problem/45914556>
2941
2942         Reviewed by Sam Weinig.
2943
2944         Add a new String literal, _str, that will return a String type.
2945         This is useful when ""_s won't work, such as for things that
2946         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
2947         or Variants.
2948
2949         * wtf/text/WTFString.h:
2950         (WTF::StringLiterals::operator _str): Added.
2951
2952 2018-11-06  Justin Fan  <justin_fan@apple.com>
2953
2954         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
2955         https://bugs.webkit.org/show_bug.cgi?id=191291
2956
2957         Reviewed by Myles Maxfield.
2958
2959         Properly disable WEBGPU on all non-Metal platforms for now.
2960
2961         * wtf/Platform.h:
2962
2963 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
2964
2965         Cache glyph paths and share underline skipping code between all the ports
2966         https://bugs.webkit.org/show_bug.cgi?id=191239
2967
2968         Reviewed by Alex Christensen.
2969
2970         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
2971
2972         * wtf/Platform.h:
2973
2974 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
2975
2976         Enable LLInt on ARMv7/Linux
2977         https://bugs.webkit.org/show_bug.cgi?id=191190
2978
2979         Reviewed by Yusuke Suzuki.
2980
2981         After enabling the new bytecode format in r237547, C_LOOP was
2982         forced on all 32-bit platforms. Now enable LLInt again on
2983         ARMv7-Thumb2/Linux by default.
2984
2985         * wtf/Platform.h:
2986
2987 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
2988
2989         [Win] Use C++14, not C++17
2990         https://bugs.webkit.org/show_bug.cgi?id=191101
2991
2992         Reviewed by Alex Christensen.
2993
2994         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
2995         instead of _MSC_FULL_VER.
2996
2997 2018-11-02  Justin Fan  <justin_fan@apple.com>
2998
2999         [WebGPU] Experimental prototype for MSL shaders
3000         https://bugs.webkit.org/show_bug.cgi?id=191084
3001
3002         Reviewed by Dean Jackson.
3003
3004         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
3005
3006         * wtf/Platform.h:
3007
3008 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
3009
3010         Replace CommonRandom SPI with API
3011         https://bugs.webkit.org/show_bug.cgi?id=191178
3012         <rdar://problem/45722391>
3013
3014         Reviewed by Brent Fulgham.
3015
3016         * WTF.xcodeproj/project.pbxproj:
3017         * wtf/CMakeLists.txt:
3018         * wtf/RandomDevice.cpp:
3019         (WTF::RandomDevice::cryptographicallyRandomValues):
3020         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
3021
3022 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
3023
3024         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
3025         https://bugs.webkit.org/show_bug.cgi?id=189693
3026
3027         Reviewed by Yusuke Suzuki.
3028
3029         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
3030         * wtf/CMakeLists.txt: Ditto.
3031         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
3032         * wtf/text/StringImpl.cpp: Ditto.
3033         * wtf/text/StringView.cpp: Ditto.
3034         * wtf/text/WTFString.cpp: Ditto.
3035         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
3036         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
3037
3038 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
3039
3040         [PlayStation] Enable JavaScriptCore
3041         https://bugs.webkit.org/show_bug.cgi?id=191072
3042
3043         Reviewed by Brent Fulgham.
3044
3045         Add platform files for the PlayStation port.
3046
3047         * wtf/PlatformPlayStation.cmake: Added.
3048
3049 2018-10-30  David Kilzer  <ddkilzer@apple.com>
3050
3051         XSLTProcessor should limit max transform depth
3052         <https://webkit.org/b/191075>
3053         <rdar://problem/45531453>
3054
3055         Reviewed by Alex Christensen.
3056
3057         * wtf/cocoa/SoftLinking.h:
3058         (SOFT_LINK_VARIABLE_FOR_HEADER):
3059         (SOFT_LINK_VARIABLE_FOR_SOURCE):
3060         - Add macros for non-constant global variables.
3061
3062 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
3063
3064         Clean up some obsolete MAX_ALLOWED macros
3065         https://bugs.webkit.org/show_bug.cgi?id=190916
3066
3067         Reviewed by Tim Horton.
3068
3069         * WTF.xcodeproj/project.pbxproj:
3070         * wtf/PlatformMac.cmake:
3071         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
3072
3073 2018-10-29  Mark Lam  <mark.lam@apple.com>
3074
3075         Correctly detect string overflow when using the 'Function' constructor.
3076         https://bugs.webkit.org/show_bug.cgi?id=184883
3077         <rdar://problem/36320331>
3078
3079         Reviewed by Saam Barati.
3080
3081         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
3082            a. StringBuilder::OverflowHandler::CrashOnOverflow.
3083            b. StringBuilder::OverflowHandler::RecordOverflow.
3084
3085            CrashOnOverflow will crash the moment an overflow or failure to allocate
3086            memory is detected.
3087
3088            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
3089            overflow or failure to allocate memory is detected.  However, if the user
3090            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
3091            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
3092            will crash regardless because these methods can only meaningfully do their
3093            work and return a result if and only if the builder has not overflowed.
3094
3095            By default, the StringBuilder crashes on overflow (the old behavior) unless it
3096            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
3097            enum.
3098
3099            Design note:
3100
3101            The StringBuilder can only be put in 1 of the 2 modes at the time of
3102            construction.  This means that we could have implemented it as a template
3103            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
3104            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
3105
3106            However, I was not able to get clang to export the explicitly instantiated
3107            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
3108            Since the StringBuilder is a transient object (not stored for a long time on
3109            the heap), and the runtime check of the boolean is not that costly compared
3110            to other work that StringBuilder routinely does (e.g. memcpy), using the
3111            new ConditionalCrashOnOverflow (which does a runtime check to determine to
3112            crash or not on overflow) is fine.
3113
3114            When clang is able to export explicitly instantiated template methods, we can
3115            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
3116            See https://bugs.webkit.org/show_bug.cgi?id=191050.
3117
3118         To support the above, we also did:
3119
3120         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
3121            fail without crashing.  This also meant that ...
3122
3123         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
3124            FastMalloc, and bmalloc (and related peers) to enable this.
3125
3126         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
3127            like CrashOnOverflow or RecordOverflow.
3128
3129         * wtf/CheckedArithmetic.h:
3130         (WTF::ConditionalCrashOnOverflow::overflowed):
3131         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
3132         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
3133         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
3134         (WTF::ConditionalCrashOnOverflow::clearOverflow):
3135         (WTF::ConditionalCrashOnOverflow::crash):
3136         (WTF::RecordOverflow::overflowed):
3137         (WTF::Checked::unsafeGet const):
3138         * wtf/FastMalloc.cpp:
3139         (WTF::tryFastRealloc):
3140         * wtf/FastMalloc.h:
3141         * wtf/text/StringBuilder.cpp:
3142         (WTF::expandedCapacity):
3143         (WTF::StringBuilder::reifyString const):
3144         (WTF::StringBuilder::resize):
3145         (WTF::StringBuilder::allocateBuffer):
3146         (WTF::StringBuilder::allocateBufferUpConvert):
3147         (WTF::StringBuilder::reallocateBuffer<LChar>):
3148         (WTF::StringBuilder::reallocateBuffer<UChar>):
3149         (WTF::StringBuilder::reserveCapacity):
3150         (WTF::StringBuilder::appendUninitialized):
3151         (WTF::StringBuilder::appendUninitializedSlow):
3152         (WTF::StringBuilder::append):
3153         (WTF::StringBuilder::canShrink const):
3154         (WTF::StringBuilder::shrinkToFit):
3155         * wtf/text/StringBuilder.h:
3156         (WTF::StringBuilder::StringBuilder):
3157         (WTF::StringBuilder::didOverflow):
3158         (WTF::StringBuilder::hasOverflowed const):
3159         (WTF::StringBuilder::crashesOnOverflow const):
3160         (WTF::StringBuilder::append):
3161         (WTF::StringBuilder::toString):
3162         (WTF::StringBuilder::toStringPreserveCapacity const):
3163         (WTF::StringBuilder::toAtomicString const):
3164         (WTF::StringBuilder::length const):
3165         (WTF::StringBuilder::capacity const):
3166         (WTF::StringBuilder::operator[] const):
3167         (WTF::StringBuilder::swap):
3168         (WTF::StringBuilder::getBufferCharacters<UChar>):
3169         * wtf/text/StringBuilderJSON.cpp:
3170         (WTF::StringBuilder::appendQuotedJSONString):
3171         * wtf/text/StringImpl.cpp:
3172         (WTF::StringImpl::reallocateInternal):
3173         (WTF::StringImpl::reallocate):
3174         (WTF::StringImpl::tryReallocate):
3175         * wtf/text/StringImpl.h:
3176
3177 2018-10-29  Tim Horton  <timothy_horton@apple.com>
3178
3179         Modernize WebKit nibs and lprojs for localization's sake
3180         https://bugs.webkit.org/show_bug.cgi?id=190911
3181         <rdar://problem/45349466>
3182
3183         Reviewed by Dan Bernstein.
3184
3185         * WTF.xcodeproj/project.pbxproj:
3186         English->en
3187
3188 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
3189
3190         New bytecode format for JSC
3191         https://bugs.webkit.org/show_bug.cgi?id=187373
3192         <rdar://problem/44186758>
3193
3194         Reviewed by Filip Pizlo.
3195
3196         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
3197         a macro was passed multiple arguments
3198         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
3199         * wtf/Vector.h:
3200         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
3201
3202 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
3203
3204         HashMap should support selecting a random entry
3205         https://bugs.webkit.org/show_bug.cgi?id=190814
3206
3207         Reviewed by Ryosuke Niwa.
3208
3209         * wtf/HashTable.h:
3210         (WTF::HashTable::random):
3211         (WTF::HashTable::random const): Merge the empty and deleted checks, and
3212         use more idiomatic addressing.
3213
3214 2018-10-26  Commit Queue  <commit-queue@webkit.org>
3215
3216         Unreviewed, rolling out r237479 and r237484.
3217         https://bugs.webkit.org/show_bug.cgi?id=190978
3218
3219         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
3220
3221         Reverted changesets:
3222
3223         "New bytecode format for JSC"
3224         https://bugs.webkit.org/show_bug.cgi?id=187373
3225         https://trac.webkit.org/changeset/237479
3226
3227         "Gardening: Build fix after r237479."
3228         https://bugs.webkit.org/show_bug.cgi?id=187373
3229         https://trac.webkit.org/changeset/237484
3230
3231 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
3232
3233         New bytecode format for JSC
3234         https://bugs.webkit.org/show_bug.cgi?id=187373
3235         <rdar://problem/44186758>
3236
3237         Reviewed by Filip Pizlo.
3238
3239         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
3240         a macro was passed multiple arguments
3241         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
3242         * wtf/Vector.h:
3243         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
3244
3245 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
3246
3247         HashMap should support selecting a random entry
3248         https://bugs.webkit.org/show_bug.cgi?id=190814
3249
3250         Reviewed by Antti Koivisto.
3251
3252         * wtf/HashTable.h:
3253         (WTF::HashTable::random):
3254         (WTF::HashTable::random const): Draw a new random bucket any time we
3255         have a miss, to avoid bias caused by lopsided tables.
3256
3257 2018-10-26  Antti Koivisto  <antti@apple.com>
3258
3259         hashSet.remove(hashSet.random()) doesn't build
3260         https://bugs.webkit.org/show_bug.cgi?id=190953
3261
3262         Reviewed by Chris Dumez.
3263
3264         * wtf/HashSet.h:
3265
3266         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
3267
3268         * wtf/HashTable.h:
3269         (WTF::HashTable::random const):
3270
3271         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
3272
3273 2018-10-26  Alicia Boya García  <aboya@igalia.com>
3274
3275         [MSE][WTF][Media] Invalid MediaTime should be falsy
3276         https://bugs.webkit.org/show_bug.cgi?id=190893
3277
3278         Reviewed by Jer Noble.
3279
3280         This patch modifies the definition of MediaTime so that invalid times
3281         are evaluated to false in the context of a boolean expression.
3282
3283         * wtf/MediaTime.cpp:
3284         (WTF::MediaTime::operator! const):
3285         (WTF::MediaTime::operator bool const):
3286
3287 2018-10-26  Keith Miller  <keith_miller@apple.com>
3288
3289         Some internal projects include wtf headers and build with C++11
3290         https://bugs.webkit.org/show_bug.cgi?id=190791
3291
3292         Reviewed by Alexey Proskuryakov.
3293
3294         C++11 doesn't support constexpr functions that contain
3295         statements. This patch removes getLSBSet set from builds before
3296         C++14 to avoid this for now.
3297
3298         * wtf/MathExtras.h:
3299         (getLSBSet):
3300
3301 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
3302
3303         Cleanup: inline constexpr is redundant as constexpr implies inline
3304         https://bugs.webkit.org/show_bug.cgi?id=190819
3305
3306         Reviewed by Mark Lam.
3307
3308         * wtf/Bitmap.h:
3309         (WTF::WordType>::Bitmap):
3310         * wtf/LEBDecoder.h:
3311         (WTF::LEBDecoder::maxByteLength):
3312         * wtf/MathExtras.h:
3313         (defaultMinimumForClamp):
3314         (defaultMaximumForClamp):
3315         (clampToAccepting64):
3316         (isLessThan):
3317         (isLessThanEqual):
3318         (isGreaterThan):
3319         (isGreaterThanEqual):
3320         (WTF::roundUpToPowerOfTwo):
3321         (WTF::maskForSize):
3322         * wtf/Optional.h:
3323         * wtf/PtrTag.h:
3324         (WTF::tagCodePtr):
3325         (WTF::untagCodePtr):
3326         (WTF::retagCodePtr):
3327         (WTF::removeCodePtrTag):
3328         * wtf/StdLibExtras.h:
3329         (WTF::roundUpToMultipleOf):
3330         * wtf/Variant.h:
3331         (WTF::operator==):
3332         (WTF::operator!=):
3333         (WTF::operator>=):
3334         (WTF::operator<=):
3335         (WTF::operator>):
3336         (WTF::operator<):
3337         * wtf/text/StringImpl.h:
3338         (WTF::StringImplShape::StringImplShape):
3339         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
3340
3341 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
3342
3343         HashMap should support selecting a random entry
3344         https://bugs.webkit.org/show_bug.cgi?id=190814
3345
3346         Reviewed by Antti Koivisto.
3347
3348         In some cases, remove(begin()) is not quite good enough as a random
3349         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
3350         So, let's support real random eviction.
3351
3352         (And by "real" I mean "pseudo".)
3353
3354         * wtf/HashCountedSet.h:
3355         * wtf/HashMap.h:
3356         * wtf/HashSet.h:
3357         * wtf/ListHashSet.h:
3358         (WTF::ListHashSet::random):
3359         (WTF::ListHashSet::random const):
3360         * wtf/LoggingHashMap.h:
3361         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
3362
3363         * wtf/HashTable.h:
3364         (WTF::HashTable::random):
3365         (WTF::HashTable::random const): Implement the random() iterator.
3366         makeIterator() already supports starting from any bucket, so this is
3367         pretty easy.
3368
3369         In the subtle case where we select end(), we choose to wrap around and
3370         return begin(). We expect that clients don't really think of the end()
3371         bucket as being in the domain of the random search. Also, we don't want
3372         to annoy clients who know their tables are non-empty with needless
3373         checks for end().
3374
3375         * wtf/RandomNumber.cpp:
3376         (WTF::weakRandomUint32):
3377         * wtf/RandomNumber.h: Added a free function for weak random numbers so
3378         that clients that want cheap random numbers aren't required to allocate
3379         storage for a WeakRandom generator.
3380
3381 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
3382
3383         Turn on Conic Gradients
3384         https://bugs.webkit.org/show_bug.cgi?id=190810
3385
3386         Reviewed by Tim Horton.
3387
3388         * wtf/FeatureDefines.h:
3389
3390 2018-10-24  Christopher Reid  <chris.reid@sony.com>
3391
3392         [Win] Add function call name information to stack traces
3393         https://bugs.webkit.org/show_bug.cgi?id=190761
3394
3395         Reviewed by Fujii Hironori.
3396
3397         Add symbol information to stack traces using dbghelp.dll
3398         This library will use symbols files from these sources:
3399             - The current working directory
3400             - The directory containing the application's executable
3401             - _NT_SYMBOL_PATH environment variable
3402             - _NT_ALTERNATE_SYMBOL_PATH environment variable
3403
3404         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
3405         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
3406         can still attempt to call the library at the same time as WebKit.
3407
3408         * wtf/CMakeLists.txt:
3409         * wtf/PlatformWin.cmake:
3410         * wtf/StackTrace.cpp:
3411         * wtf/win/DbgHelperWin.cpp: Added.
3412         * wtf/win/DbgHelperWin.h: Added.
3413
3414 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
3415
3416         Really prevent PLATFORM(IOS) from being used
3417         https://bugs.webkit.org/show_bug.cgi?id=190813
3418
3419         Reviewed by Tim Horton.
3420
3421         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
3422
3423 2018-10-22  Chris Dumez  <cdumez@apple.com>
3424
3425         Deque's contains() and findIf() should be const
3426         https://bugs.webkit.org/show_bug.cgi?id=190796
3427
3428         Reviewed by Antti Koivisto.
3429
3430         Deque's contains() and findIf() should be const as they do not modify the container.
3431
3432         * wtf/Deque.h:
3433         (WTF::inlineCapacity>::findIf):
3434         (WTF::inlineCapacity>::findIf const):
3435         (WTF::inlineCapacity>::contains const):
3436         (WTF::inlineCapacity>::contains): Deleted.
3437
3438 2018-10-18  Alicia Boya García  <aboya@igalia.com>
3439
3440         [Media] Use nanoseconds as MaximumTimeScale
3441         https://bugs.webkit.org/show_bug.cgi?id=190631
3442
3443         1e9 is a much more useful timescale than the previous one 2^31-1.
3444         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3445         common among some formats like WebM and frameworks like GStreamer
3446         where base 10 timescale is common... and it's those big timescales the
3447         ones that are usually scaled up to MaximumTimeScale.
3448
3449         Reviewed by Jer Noble.
3450
3451         * wtf/MediaTime.cpp:
3452
3453 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3454
3455         Remove PLATFORM(IOS) for now
3456         https://bugs.webkit.org/show_bug.cgi?id=190737
3457
3458         Reviewed by Tim Horton.
3459
3460         * wtf/Platform.h:
3461
3462 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3463
3464         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
3465         https://bugs.webkit.org/show_bug.cgi?id=190729
3466
3467         Reviewed by Tim Horton.
3468
3469         * wtf/Assertions.h:
3470         * wtf/FeatureDefines.h:
3471         * wtf/InlineASM.h:
3472         * wtf/MemoryPressureHandler.cpp:
3473         (WTF::thresholdForPolicy):
3474         * wtf/Platform.h:
3475         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3476         (WTF::MemoryPressureHandler::install):
3477         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3478         * wtf/spi/cocoa/NSMapTableSPI.h:
3479         * wtf/spi/darwin/XPCSPI.h:
3480         * wtf/text/StringCommon.h:
3481         * wtf/text/TextBreakIterator.cpp:
3482         * wtf/text/TextBreakIterator.h:
3483         * wtf/unicode/icu/CollatorICU.cpp:
3484         (WTF::copyDefaultLocale):
3485
3486 2018-10-18  Alex Christensen  <achristensen@webkit.org>
3487
3488         Clean up FrameLoader two-state enums
3489         https://bugs.webkit.org/show_bug.cgi?id=190731
3490
3491         Reviewed by Chris Dumez.
3492
3493         * wtf/EnumTraits.h:
3494         (WTF::isValidEnum):
3495
3496 2018-10-17  Commit Queue  <commit-queue@webkit.org>
3497
3498         Unreviewed, rolling out r237208.
3499         https://bugs.webkit.org/show_bug.cgi?id=190691
3500
3501         Caused the API test that was changed to failure continuously
3502         (Requested by Truitt on #webkit).
3503
3504         Reverted changeset:
3505
3506         "[Media] Use nanoseconds as MaximumTimeScale"
3507         https://bugs.webkit.org/show_bug.cgi?id=190631
3508         https://trac.webkit.org/changeset/237208
3509
3510 2018-10-16  Alicia Boya García  <aboya@igalia.com>
3511
3512         [Media] Use nanoseconds as MaximumTimeScale
3513         https://bugs.webkit.org/show_bug.cgi?id=190631
3514
3515         1e9 is a much more useful timescale than the previous one 2^31-1.
3516         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3517         common among some formats like WebM and frameworks like GStreamer
3518         where base 10 timescale is common... and it's those big timescales the
3519         ones that are usually scaled up to MaximumTimeScale.
3520
3521         Reviewed by Jer Noble.
3522
3523         * wtf/MediaTime.cpp:
3524
3525 2018-10-15  Keith Miller  <keith_miller@apple.com>
3526
3527         Support arm64 CPUs with a 32-bit address space
3528         https://bugs.webkit.org/show_bug.cgi?id=190273
3529
3530         Reviewed by Michael Saboff.
3531
3532         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
3533
3534         * wtf/MathExtras.h:
3535         (getLSBSet):
3536         * wtf/Platform.h:
3537
3538 2018-10-15  Timothy Hatcher  <timothy@apple.com>
3539
3540         Add support for prefers-color-scheme media query
3541         https://bugs.webkit.org/show_bug.cgi?id=190499
3542         rdar://problem/45212025
3543
3544         Reviewed by Dean Jackson.
3545
3546         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
3547
3548 2018-10-15  Saam barati  <sbarati@apple.com>
3549
3550         Emit fjcvtzs on ARM64E on Darwin
3551         https://bugs.webkit.org/show_bug.cgi?id=184023
3552
3553         Reviewed by Yusuke Suzuki and Filip Pizlo.
3554
3555         * wtf/Platform.h:
3556
3557 2018-10-15  Alex Christensen  <achristensen@webkit.org>
3558
3559         Use pragma once in WTF
3560         https://bugs.webkit.org/show_bug.cgi?id=190527
3561
3562         Reviewed by Chris Dumez.
3563
3564         We also need to consistently include wtf headers from within wtf so we can build wtf without
3565         symbol redefinition errors from including the copy in Source and the copy in the build directory.
3566
3567         * wtf/ASCIICType.h:
3568         * wtf/Assertions.cpp:
3569         * wtf/Assertions.h:
3570         * wtf/Atomics.h:
3571         * wtf/AutomaticThread.cpp:
3572         * wtf/AutomaticThread.h:
3573         * wtf/BackwardsGraph.h:
3574         * wtf/Bag.h:
3575         * wtf/BagToHashMap.h:
3576         * wtf/BitVector.cpp:
3577         * wtf/BitVector.h:
3578         * wtf/Bitmap.h:
3579         * wtf/BloomFilter.h:
3580         * wtf/Box.h:
3581         * wtf/BubbleSort.h:
3582         * wtf/BumpPointerAllocator.h:
3583         * wtf/ByteOrder.h:
3584         * wtf/CPUTime.cpp:
3585         * wtf/CallbackAggregator.h:
3586         * wtf/CheckedArithmetic.h:
3587         * wtf/CheckedBoolean.h:
3588         * wtf/ClockType.cpp:
3589         * wtf/ClockType.h:
3590         * wtf/CommaPrinter.h:
3591         * wtf/CompilationThread.cpp:
3592         * wtf/CompilationThread.h:
3593         * wtf/Compiler.h:
3594         * wtf/ConcurrentPtrHashSet.cpp:
3595         * wtf/ConcurrentVector.h:
3596         * wtf/Condition.h:
3597         * wtf/CountingLock.cpp:
3598         * wtf/CrossThreadTaskHandler.cpp:
3599         * wtf/CryptographicUtilities.cpp:
3600         * wtf/CryptographicUtilities.h:
3601         * wtf/CryptographicallyRandomNumber.cpp:
3602         * wtf/CryptographicallyRandomNumber.h:
3603         * wtf/CurrentTime.cpp:
3604         * wtf/DataLog.cpp:
3605         * wtf/DataLog.h:
3606         * wtf/DateMath.cpp:
3607         * wtf/DateMath.h:
3608         * wtf/DecimalNumber.cpp:
3609         * wtf/DecimalNumber.h:
3610         * wtf/Deque.h:
3611         * wtf/DisallowCType.h:
3612         * wtf/Dominators.h:
3613         * wtf/DoublyLinkedList.h:
3614         * wtf/FastBitVector.cpp:
3615         * wtf/FastMalloc.cpp:
3616         * wtf/FastMalloc.h:
3617         * wtf/FeatureDefines.h:
3618         * wtf/FilePrintStream.cpp:
3619         * wtf/FilePrintStream.h:
3620         * wtf/FlipBytes.h:
3621         * wtf/FunctionDispatcher.cpp:
3622         * wtf/FunctionDispatcher.h:
3623         * wtf/GetPtr.h:
3624         * wtf/Gigacage.cpp:
3625         * wtf/GlobalVersion.cpp:
3626         * wtf/GraphNodeWorklist.h:
3627         * wtf/GregorianDateTime.cpp:
3628         * wtf/GregorianDateTime.h:
3629         * wtf/HashFunctions.h:
3630         * wtf/HashMap.h:
3631         * wtf/HashMethod.h:
3632         * wtf/HashSet.h:
3633         * wtf/HashTable.cpp:
3634         * wtf/HashTraits.h:
3635         * wtf/Indenter.h:
3636         * wtf/IndexSparseSet.h:
3637         * wtf/InlineASM.h:
3638         * wtf/Insertion.h:
3639         * wtf/IteratorAdaptors.h:
3640         * wtf/IteratorRange.h:
3641         * wtf/JSONValues.cpp:
3642         * wtf/JSValueMalloc.cpp:
3643         * wtf/LEBDecoder.h:
3644         * wtf/Language.cpp:
3645         * wtf/ListDump.h:
3646         * wtf/Lock.cpp:
3647         * wtf/Lock.h:
3648         * wtf/LockAlgorithm.h:
3649         * wtf/LockedPrintStream.cpp:
3650         * wtf/Locker.h:
3651         * wtf/MD5.cpp:
3652         * wtf/MD5.h:
3653         * wtf/MainThread.cpp:
3654         * wtf/MainThread.h:
3655         * wtf/MallocPtr.h:
3656         * wtf/MathExtras.h:
3657         * wtf/MediaTime.cpp:
3658         * wtf/MediaTime.h:
3659         * wtf/MemoryPressureHandler.cpp:
3660         * wtf/MessageQueue.h:
3661         * wtf/MetaAllocator.cpp:
3662         * wtf/MetaAllocator.h:
3663         * wtf/MetaAllocatorHandle.h:
3664         * wtf/MonotonicTime.cpp:
3665         * wtf/MonotonicTime.h:
3666         * wtf/NakedPtr.h:
3667         * wtf/NoLock.h:
3668         * wtf/NoTailCalls.h:
3669         * wtf/Noncopyable.h:
3670         * wtf/NumberOfCores.cpp:
3671         * wtf/NumberOfCores.h:
3672         * wtf/OSAllocator.h:
3673         * wtf/OSAllocatorPosix.cpp:
3674         * wtf/OSRandomSource.cpp:
3675         * wtf/OSRandomSource.h:
3676         * wtf/ObjcRuntimeExtras.h:
3677         * wtf/OrderMaker.h:
3678         * wtf/PackedIntVector.h:
3679         * wtf/PageAllocation.h:
3680         * wtf/PageBlock.cpp:
3681         * wtf/PageBlock.h:
3682         * wtf/PageReservation.h:
3683         * wtf/ParallelHelperPool.cpp:
3684         * wtf/ParallelHelperPool.h:
3685         * wtf/ParallelJobs.h:
3686         * wtf/ParallelJobsLibdispatch.h:
3687         * wtf/ParallelVectorIterator.h:
3688         * wtf/ParkingLot.cpp:
3689         * wtf/ParkingLot.h:
3690         * wtf/Platform.h:
3691         * wtf/PointerComparison.h:
3692         * wtf/Poisoned.cpp:
3693         * wtf/PrintStream.cpp:
3694         * wtf/PrintStream.h:
3695         * wtf/ProcessID.h:
3696         * wtf/ProcessPrivilege.cpp:
3697         * wtf/RAMSize.cpp:
3698         * wtf/RAMSize.h:
3699         * wtf/RandomDevice.cpp:
3700         * wtf/RandomNumber.cpp:
3701         * wtf/RandomNumber.h:
3702         * wtf/RandomNumberSeed.h:
3703         * wtf/RangeSet.h:
3704         * wtf/RawPointer.h:
3705         * wtf/ReadWriteLock.cpp:
3706         * wtf/RedBlackTree.h:
3707         * wtf/Ref.h:
3708         * wtf/RefCountedArray.h:
3709         * wtf/RefCountedLeakCounter.cpp:
3710         * wtf/RefCountedLeakCounter.h:
3711         * wtf/RefCounter.h:
3712         * wtf/RefPtr.h:
3713         * wtf/RetainPtr.h:
3714         * wtf/RunLoop.cpp:
3715         * wtf/RunLoop.h:
3716         * wtf/RunLoopTimer.h:
3717         * wtf/RunLoopTimerCF.cpp:
3718         * wtf/SHA1.cpp:
3719         * wtf/SHA1.h:
3720         * wtf/SaturatedArithmetic.h:
3721         (saturatedSubtraction):
3722         * wtf/SchedulePair.h:
3723         * wtf/SchedulePairCF.cpp:
3724         * wtf/SchedulePairMac.mm:
3725         * wtf/ScopedLambda.h:
3726         * wtf/Seconds.cpp:
3727         * wtf/Seconds.h:
3728         * wtf/SegmentedVector.h:
3729         * wtf/SentinelLinkedList.h:
3730         * wtf/SharedTask.h:
3731         * wtf/SimpleStats.h:
3732         * wtf/SingleRootGraph.h:
3733         * wtf/SinglyLinkedList.h:
3734         * wtf/SixCharacterHash.cpp:
3735         * wtf/SixCharacterHash.h:
3736         * wtf/SmallPtrSet.h:
3737         * wtf/Spectrum.h:
3738         * wtf/StackBounds.cpp:
3739         * wtf/StackBounds.h:
3740         * wtf/StackStats.cpp:
3741         * wtf/StackStats.h:
3742         * wtf/StackTrace.cpp:
3743         * wtf/StdLibExtras.h:
3744         * wtf/StreamBuffer.h:
3745         * wtf/StringHashDumpContext.h:
3746         * wtf/StringPrintStream.cpp:
3747         * wtf/StringPrintStream.h:
3748         * wtf/ThreadGroup.cpp:
3749         * wtf/ThreadMessage.cpp:
3750         * wtf/ThreadSpecific.h:
3751         * wtf/Threading.cpp:
3752         * wtf/Threading.h:
3753         * wtf/ThreadingPrimitives.h:
3754         * wtf/ThreadingPthreads.cpp:
3755         * wtf/TimeWithDynamicClockType.cpp:
3756         * wtf/TimeWithDynamicClockType.h:
3757         * wtf/TimingScope.cpp:
3758         * wtf/TinyLRUCache.h:
3759         * wtf/TinyPtrSet.h:
3760         * wtf/TriState.h:
3761         * wtf/TypeCasts.h:
3762         * wtf/UUID.cpp:
3763         * wtf/UnionFind.h:
3764         * wtf/VMTags.h:
3765         * wtf/ValueCheck.h:
3766         * wtf/Vector.h:
3767         * wtf/VectorTraits.h:
3768         * wtf/WallTime.cpp:
3769         * wtf/WallTime.h:
3770         * wtf/WeakPtr.h:
3771         * wtf/WeakRandom.h:
3772         * wtf/WordLock.cpp:
3773         * wtf/WordLock.h:
3774         * wtf/WorkQueue.cpp:
3775         * wtf/WorkQueue.h:
3776         * wtf/WorkerPool.cpp:
3777         * wtf/cf/LanguageCF.cpp:
3778         * wtf/cf/RunLoopCF.cpp:
3779         * wtf/cocoa/Entitlements.mm:
3780         * wtf/cocoa/MachSendRight.cpp:
3781         * wtf/cocoa/MainThreadCocoa.mm:
3782         * wtf/cocoa/MemoryFootprintCocoa.cpp:
3783         * wtf/cocoa/WorkQueueCocoa.cpp:
3784         * wtf/dtoa.cpp:
3785         * wtf/dtoa.h:
3786         * wtf/ios/WebCoreThread.cpp:
3787         * wtf/ios/WebCoreThread.h:
3788         * wtf/mac/AppKitCompatibilityDeclarations.h:
3789         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3790         * wtf/mbmalloc.cpp:
3791         * wtf/persistence/PersistentCoders.cpp:
3792         * wtf/persistence/PersistentDecoder.cpp:
3793         * wtf/persistence/PersistentEncoder.cpp:
3794         * wtf/spi/cf/CFBundleSPI.h:
3795         * wtf/spi/darwin/CommonCryptoSPI.h:
3796         * wtf/text/ASCIIFastPath.h:
3797         * wtf/text/ASCIILiteral.cpp:
3798         * wtf/text/AtomicString.cpp:
3799         * wtf/text/AtomicString.h:
3800         * wtf/text/AtomicStringHash.h:
3801         * wtf/text/AtomicStringImpl.cpp:
3802         * wtf/text/AtomicStringImpl.h:
3803         * wtf/text/AtomicStringTable.cpp:
3804         * wtf/text/AtomicStringTable.h:
3805         * wtf/text/Base64.cpp:
3806         * wtf/text/CString.cpp:
3807         * wtf/text/CString.h:
3808         * wtf/text/ConversionMode.h:
3809         * wtf/text/ExternalStringImpl.cpp:
3810         * wtf/text/IntegerToStringConversion.h:
3811         * wtf/text/LChar.h:
3812         * wtf/text/LineEnding.cpp:
3813         * wtf/text/StringBuffer.h:
3814         * wtf/text/StringBuilder.cpp:
3815         * wtf/text/StringBuilder.h:
3816         * wtf/text/StringBuilderJSON.cpp:
3817         * wtf/text/StringCommon.h:
3818         * wtf/text/StringConcatenate.h:
3819         * wtf/text/StringHash.h:
3820         * wtf/text/StringImpl.cpp:
3821         * wtf/text/StringImpl.h:
3822         * wtf/text/StringOperators.h:
3823         * wtf/text/StringView.cpp:
3824         * wtf/text/StringView.h:
3825         * wtf/text/SymbolImpl.cpp:
3826         * wtf/text/SymbolRegistry.cpp:
3827         * wtf/text/SymbolRegistry.h:
3828         * wtf/text/TextBreakIterator.cpp:
3829         * wtf/text/TextBreakIterator.h:
3830         * wtf/text/TextBreakIteratorInternalICU.h:
3831         * wtf/text/TextPosition.h:
3832         * wtf/text/TextStream.cpp:
3833         * wtf/text/UniquedStringImpl.h:
3834         * wtf/text/WTFString.cpp:
3835         * wtf/text/WTFString.h:
3836         * wtf/text/cocoa/StringCocoa.mm:
3837         * wtf/text/cocoa/StringViewCocoa.mm:
3838         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
3839         * wtf/text/icu/UTextProvider.cpp:
3840         * wtf/text/icu/UTextProvider.h:
3841         * wtf/text/icu/UTextProviderLatin1.cpp:
3842         * wtf/text/icu/UTextProviderLatin1.h:
3843         * wtf/text/icu/UTextProviderUTF16.cpp:
3844         * wtf/text/icu/UTextProviderUTF16.h:
3845         * wtf/threads/BinarySemaphore.cpp:
3846         * wtf/threads/BinarySemaphore.h:
3847         * wtf/threads/Signals.cpp:
3848         * wtf/unicode/CharacterNames.h:
3849         * wtf/unicode/Collator.h:
3850         * wtf/unicode/CollatorDefault.cpp:
3851         * wtf/unicode/UTF8.cpp:
3852         * wtf/unicode/UTF8.h:
3853
3854 2018-10-12  Alex Christensen  <achristensen@webkit.org>
3855
3856         Allow encoding of small enum classes
3857         https://bugs.webkit.org/show_bug.cgi?id=190531
3858
3859         Reviewed by Tim Horton.
3860
3861         * wtf/Forward.h:
3862
3863 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
3864
3865         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
3866         https://bugs.webkit.org/show_bug.cgi?id=190477
3867
3868         Reviewed by Tim Horton.
3869
3870         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
3871         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
3872         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
3873         because of dependencies in other source repositories.
3874
3875         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
3876         instances that actually target iOS only, having a version check.
3877
3878 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3879
3880         Use currentStackPointer more
3881         https://bugs.webkit.org/show_bug.cgi?id=190503
3882
3883         Reviewed by Saam Barati.
3884
3885         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
3886
3887         * wtf/StackBounds.cpp:
3888         (WTF::testStackDirection2):
3889         (WTF::testStackDirection):
3890         * wtf/ThreadingPthreads.cpp:
3891         (WTF::Thread::signalHandlerSuspendResume):
3892         (WTF::getApproximateStackPointer): Deleted.
3893
3894 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
3895
3896         [WTF] Semaphore.h conflicts with POSIX header
3897         https://bugs.webkit.org/show_bug.cgi?id=190486
3898
3899         Reviewed by Yusuke Suzuki.
3900
3901         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
3902
3903         * WTF.xcodeproj/project.pbxproj:
3904         * wtf/CMakeLists.txt:
3905         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
3906
3907 2018-10-10  Mark Lam  <mark.lam@apple.com>
3908
3909         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
3910         https://bugs.webkit.org/show_bug.cgi?id=190405
3911         <rdar://problem/45131464>
3912
3913         Reviewed by Michael Saboff.
3914
3915         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
3916
3917         * WTF.xcodeproj/project.pbxproj:
3918         * wtf/CMakeLists.txt:
3919         * wtf/StackBounds.h:
3920         (WTF::StackBounds::checkConsistency const):
3921         * wtf/StackPointer.cpp: Added.
3922         (WTF::currentStackPointer):
3923         * wtf/StackPointer.h: Added.
3924
3925 2018-10-09  Mark Lam  <mark.lam@apple.com>
3926
3927         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
3928         https://bugs.webkit.org/show_bug.cgi?id=190392
3929         <rdar://problem/45116210>
3930
3931         Reviewed by Saam Barati.
3932
3933         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
3934         unsigned length of the source string without an overflow check.  We now make that
3935         length a size_t which removes this issue, and assert that it's within
3936         String::MaxLength thereafter.
3937
3938         Also made the StringTypeAdapter constructor for a LChar* string behave in an
3939         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
3940         if the source string length exceeds String::MaxLength.
3941
3942         * wtf/text/StringConcatenate.h:
3943
3944 2018-10-09  Mark Lam  <mark.lam@apple.com>
3945
3946         Revert temporary asserts for debugging a mysterious ASAN bot crash.
3947         https://bugs.webkit.org/show_bug.cgi?id=190396
3948
3949         Reviewed by Yusuke Suzuki.
3950
3951         * wtf/StackBounds.cpp:
3952         (WTF::StackBounds::newThreadStackBounds):
3953         * wtf/StackBounds.h:
3954         (WTF::StackBounds::checkConsistency const):
3955
3956 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
3957
3958         Make <input type=color> a runtime enabled (on-by-default) feature
3959         https://bugs.webkit.org/show_bug.cgi?id=189162
3960
3961         Reviewed by Wenson Hsieh and Tim Horton.
3962
3963         * wtf/FeatureDefines.h:
3964
3965 2018-10-06  Mark Lam  <mark.lam@apple.com>
3966
3967         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
3968         https://bugs.webkit.org/show_bug.cgi?id=190334
3969         <rdar://problem/45071303>
3970
3971         Reviewed by Yusuke Suzuki.
3972
3973         These assertions are needed because we can't reproduce the issue locally.
3974         We'll remove these asserts after the needed data has been collected from the bot.
3975
3976         * wtf/StackBounds.cpp:
3977         (WTF::StackBounds::newThreadStackBounds):
3978         * wtf/StackBounds.h:
3979         (WTF::StackBounds::checkConsistency const):
3980
3981 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3982
3983         Name Heap threads
3984         https://bugs.webkit.org/show_bug.cgi?id=190337
3985
3986         Reviewed by Mark Lam.
3987
3988         Add a functionality naming threads of ParallelHelperPool.
3989
3990         * wtf/ParallelHelperPool.cpp:
3991         (WTF::ParallelHelperPool::ParallelHelperPool):
3992         * wtf/ParallelHelperPool.h:
3993
3994 2018-10-06  Mark Lam  <mark.lam@apple.com>
3995
3996         Adding some temporary asserts to debug a mysterious ASAN bot crash.
3997         https://bugs.webkit.org/show_bug.cgi?id=190331
3998
3999         Reviewed by Filip Pizlo.
4000
4001         These assertions are needed because we can't reproduce the issue locally.
4002         We'll remove these asserts after the needed data has been collected from the bot.
4003
4004         * wtf/StackBounds.h:
4005         (WTF::StackBounds::checkConsistency const):
4006
4007 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
4008
4009         [JSC][Linux] Support Perf JITDump logging
4010         https://bugs.webkit.org/show_bug.cgi?id=189893
4011
4012         Reviewed by Mark Lam.
4013
4014         * wtf/PageReservation.h:
4015         (WTF::PageReservation::reserveAndCommitWithGuardPages):
4016
4017 2018-10-03  Dan Bernstein  <mitz@apple.com>
4018
4019         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
4020         https://bugs.webkit.org/show_bug.cgi?id=190250
4021
4022         Reviewed by Alex Christensen.
4023
4024         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
4025           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
4026
4027         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
4028
4029         * wtf/MathExtras.h:
4030         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
4031           expressions into individual statements.
4032
4033 2018-10-03  Mark Lam  <mark.lam@apple.com>
4034
4035         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
4036         https://bugs.webkit.org/show_bug.cgi?id=190187
4037         <rdar://problem/42512909>
4038
4039         Reviewed by Michael Saboff.
4040
4041         * wtf/text/StringConcatenate.h:
4042         (WTF::tryMakeStringFromAdapters):
4043         (WTF::sumWithOverflow): Deleted.
4044         * wtf/text/StringImpl.h:
4045         * wtf/text/WTFString.h:
4046
4047 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
4048
4049         -Wunused-variable in RenderLayer::updateScrollableAreaSet
4050         https://bugs.webkit.org/show_bug.cgi?id=190200
4051
4052         Reviewed by Yusuke Suzuki.
4053
4054         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
4055
4056         * wtf/Compiler.h:
4057
4058 2018-10-01  Dean Jackson  <dino@apple.com>
4059
4060         [macOS] Switching to discrete GPU should be done in the UI process
4061         https://bugs.webkit.org/show_bug.cgi?id=189361
4062         <rdar://problem/43949622>
4063
4064         Reviewed by Simon Fraser.
4065
4066         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
4067
4068         * wtf/Platform.h:
4069
4070 2018-10-02  Commit Queue  <commit-queue@webkit.org>
4071
4072         Unreviewed, rolling out r236624 and r236671.
4073         https://bugs.webkit.org/show_bug.cgi?id=190207
4074
4075         The change in r236624 introduced crashes on the bots
4076         (Requested by ryanhaddad on #webkit).
4077
4078         Reverted changesets:
4079
4080         "Refactoring: eliminate raw pointer usage in Fullscreen code"
4081         https://bugs.webkit.org/show_bug.cgi?id=188747
4082         https://trac.webkit.org/changeset/236624
4083
4084         "Unify implementation in VideoFullscreenInterfaceAVKit"
4085         https://bugs.webkit.org/show_bug.cgi?id=190091
4086         https://trac.webkit.org/changeset/236671
4087
4088 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
4089
4090         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
4091         https://bugs.webkit.org/show_bug.cgi?id=190033
4092
4093         Reviewed by Yusuke Suzuki.
4094
4095         * wtf/MathExtras.h:
4096         (WTF::ctz32):
4097
4098 2018-10-01  Andy Estes  <aestes@apple.com>
4099
4100         [watchOS] Adopt NSURLSessionCompanionProxyPreference
4101         https://bugs.webkit.org/show_bug.cgi?id=190177
4102         <rdar://problem/43402114>
4103
4104         Reviewed by Wenson Hsieh.
4105
4106         * wtf/FeatureDefines.h:
4107
4108 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
4109
4110         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
4111         https://bugs.webkit.org/show_bug.cgi?id=190121
4112
4113         Reviewed by Yusuke Suzuki.
4114
4115         This fixes JSCOnly build on Windows after r236617.
4116
4117         * wtf/PlatformJSCOnly.cmake:
4118
4119 2018-10-01  Commit Queue  <commit-queue@webkit.org>
4120
4121         Unreviewed, rolling out r236647.
4122         https://bugs.webkit.org/show_bug.cgi?id=190124
4123
4124         Breaking test stress/big-int-to-string.js (Requested by
4125         caiolima_ on #webkit).
4126
4127         Reverted changeset:
4128
4129         "[BigInt] BigInt.proptotype.toString is broken when radix is
4130         power of 2"
4131         https://bugs.webkit.org/show_bug.cgi?id=190033
4132         https://trac.webkit.org/changeset/236647
4133
4134 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
4135
4136         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
4137         https://bugs.webkit.org/show_bug.cgi?id=190033
4138
4139         Reviewed by Yusuke Suzuki.
4140
4141         * wtf/MathExtras.h:
4142         (WTF::ctz32):
4143
4144 2018-09-28  Jer Noble  <jer.noble@apple.com>
4145
4146         Refactoring: eliminate raw pointer usage in Fullscreen code
4147         https://bugs.webkit.org/show_bug.cgi?id=188747
4148         <rdar://problem/43541164>
4149
4150         Reviewed by Alex Christensen.
4151
4152         * WTF.xcodeproj/project.pbxproj:
4153         * wtf/WeakPtrContainer.h: Added.
4154
4155 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
4156
4157         [WTF] Make isMainThread more reliable
4158         https://bugs.webkit.org/show_bug.cgi?id=189880
4159
4160         Reviewed by Mark Lam.
4161
4162         isMainThread() relied on Thread::current(). This API becomes broken in Windows
4163         when the Thread is about to be destroyed since TLS is already cleared. This causes
4164         a bug since `isMainThread()` is called in Thread::didExit in Windows.
4165
4166         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
4167         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
4168         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
4169         or `pthread_self` instead.
4170
4171         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
4172         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
4173         only happens in Windows since Windows calls TLS destructor for the main thread.
4174
4175         * WTF.xcodeproj/project.pbxproj:
4176         * wtf/MainThread.cpp:
4177         (WTF::initializeMainThread):
4178         (): Deleted.
4179         (WTF::isMainThread): Deleted.
4180         (WTF::isMainThreadIfInitialized): Deleted.
4181         * wtf/Platform.h:
4182         * wtf/PlatformMac.cmake:
4183         * wtf/Threading.cpp:
4184         (WTF::Thread::didExit):
4185         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
4186         * wtf/generic/MainThreadGeneric.cpp:
4187         (WTF::initializeMainThreadPlatform):
4188         (WTF::isMainThread):
4189         (WTF::isMainThreadIfInitialized):
4190         * wtf/win/MainThreadWin.cpp:
4191         (WTF::initializeMainThreadPlatform):
4192         (WTF::isMainThread):
4193         (WTF::isMainThreadIfInitialized):
4194
4195 2018-09-28  Commit Queue  <commit-queue@webkit.org>
4196
4197         Unreviewed, rolling out r236605.
4198         https://bugs.webkit.org/show_bug.cgi?id=190087
4199
4200         caused three API test timeouts (Requested by jernoble on
4201         #webkit).
4202
4203         Reverted changeset:
4204
4205         "Refactoring: eliminate raw pointer usage in Fullscreen code"
4206         https://bugs.webkit.org/show_bug.cgi?id=188747
4207         https://trac.webkit.org/changeset/236605
4208
4209 2018-09-28  Brian Burg  <bburg@apple.com>
4210
4211         Replace recently added line comments in Compiler.h
4212         https://bugs.webkit.org/show_bug.cgi?id=190062
4213         <rdar://problem/44838618>
4214
4215         Reviewed by Joseph Pecoraro.
4216
4217         This breaks some Apple-internal tooling. For now, work around it by
4218         changing the comment style. On the other side, the issue will be fixed
4219         more permanently by adopting the approach from r230213.
4220
4221         * wtf/Compiler.h: Use multiline comments.
4222
4223 2018-09-28  Jer Noble  <jer.noble@apple.com>
4224
4225         Refactoring: eliminate raw pointer usage in Fullscreen code
4226         https://bugs.webkit.org/show_bug.cgi?id=188747
4227         <rdar://problem/43541164>
4228
4229         Reviewed by Alex Christensen.
4230
4231         * WTF.xcodeproj/project.pbxproj:
4232         * wtf/WeakPtrContainer.h: Added.
4233
4234 2018-09-28  Koby Boyango  <koby.b@mce.systems>
4235
4236         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
4237         https://bugs.webkit.org/show_bug.cgi?id=189991
4238
4239         Reviewed by Yusuke Suzuki.
4240
4241         * WTF.xcodeproj/project.pbxproj:
4242         * wtf/CMakeLists.txt:
4243         * wtf/text/ExternalStringImpl.cpp: Added.
4244         * wtf/text/ExternalStringImpl.h: Added.
4245         * wtf/text/StringImpl.cpp:
4246         * wtf/text/StringImpl.h:
4247
4248 2018-09-27  Saam barati  <sbarati@apple.com>
4249
4250         Verify the contents of AssemblerBuffer on arm64e
4251         https://bugs.webkit.org/show_bug.cgi?id=190057
4252         <rdar://problem/38916630>
4253
4254         Reviewed by Mark Lam.
4255
4256         * wtf/PtrTag.h:
4257         (WTF::tagInt):