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