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