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