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