Revert r239503.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-12-21  Alex Christensen  <achristensen@webkit.org>
2
3         Revert r239503.
4         https://bugs.webkit.org/show_bug.cgi?id=192944
5
6         * wtf/cocoa/NSURLExtras.mm:
7         (WTF::isLookalikeCharacter):
8
9 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
10
11         Show punycode if URL contains Latin small letter dotless i
12         https://bugs.webkit.org/show_bug.cgi?id=192944
13         <rdar://problem/46103047>
14
15         Reviewed by Andy Estes.
16
17         Revise our "lookalike character" logic to include the small Latin
18         dotless i character.
19
20         Test: fast/url/host.html
21
22         * wtf/cocoa/NSURLExtras.mm:
23         (WTF::isLookalikeCharacter):
24
25 2018-12-20  Chris Dumez  <cdumez@apple.com>
26
27         Use Optional::hasValue() instead of Optional::has_value()
28         https://bugs.webkit.org/show_bug.cgi?id=192948
29
30         Reviewed by Tim Horton.
31
32         * wtf/Hasher.h:
33         (WTF::add):
34         * wtf/Optional.h:
35
36 2018-12-20  Chris Dumez  <cdumez@apple.com>
37
38         Use Optional::valueOr() instead of Optional::value_or()
39         https://bugs.webkit.org/show_bug.cgi?id=192933
40
41         Reviewed by Geoffrey Garen.
42
43         * wtf/Optional.h:
44         (WTF::Optional<T::valueOr const):
45
46 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
47
48         Consistently use MaxLength for all WTF strings
49         https://bugs.webkit.org/show_bug.cgi?id=192853
50         <rdar://problem/45726906>
51
52         Reviewed by Mark Lam.
53
54         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
55         but all the assertions were still done using UINT_MAX. Change it to
56         use MaxLength for all checks.
57
58         * wtf/text/StringImpl.cpp:
59         (WTF::StringImpl::createUninitializedInternalNonEmpty):
60         (WTF::StringImpl::reallocateInternal):
61         (WTF::StringImpl::create):
62         (WTF::StringImpl::convertToLowercaseWithoutLocale):
63         (WTF::StringImpl::convertToUppercaseWithoutLocale):
64         (WTF::StringImpl::convertToLowercaseWithLocale):
65         (WTF::StringImpl::convertToUppercaseWithLocale):
66         (WTF::StringImpl::foldCase):
67         (WTF::StringImpl::find):
68         (WTF::StringImpl::replace):
69         (WTF::StringImpl::utf8ForCharacters):
70         (WTF::StringImpl::tryGetUtf8ForRange const):
71         * wtf/text/StringImpl.h:
72         (WTF::lengthOfNullTerminatedString):
73         (WTF::StringImpl::tryCreateUninitialized):
74         (WTF::StringImpl::adopt):
75         (WTF::StringImpl::maxInternalLength):
76         * wtf/text/WTFString.cpp:
77         (WTF::String::append):
78         (WTF::String::insert):
79         (WTF::String::fromUTF8):
80         * wtf/text/WTFString.h:
81         (WTF::String::reverseFind const):
82
83 2018-12-19  Chris Dumez  <cdumez@apple.com>
84
85         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
86         https://bugs.webkit.org/show_bug.cgi?id=192728
87         <rdar://problem/46746779>
88
89         Reviewed by Geoff Garen.
90
91         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
92         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
93
94         Based on patch by David Kilzer.
95
96         * wtf/*:
97
98 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
99
100         [MediaStream] Force system camera/microphone TCC prompt if necessary
101         https://bugs.webkit.org/show_bug.cgi?id=192820
102         <rdar://problem/42680098>
103
104         Reviewed by Jer Noble.
105
106         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
107
108 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
109
110         Some builds are broken after r239262
111         https://bugs.webkit.org/show_bug.cgi?id=192777
112
113         Reviewed by Simon Fraser.
114
115         * wtf/Platform.h:
116
117 2018-12-17  Daniel Bates  <dabates@apple.com>
118
119         Support concatenating StringView with other string types
120         https://bugs.webkit.org/show_bug.cgi?id=177566
121
122         Reviewed by Darin Adler.
123
124         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
125         other string types (e.g. String). This lets a person write more naturally looking code:
126
127         stringView + string
128
129         Instead of:
130
131         makeString(stringView, string)
132
133         * wtf/text/StringOperators.h:
134         (WTF::operator+): Added various operator+ overloads.
135
136 2018-12-17  Commit Queue  <commit-queue@webkit.org>
137
138         Unreviewed, rolling out r239265 and r239274.
139         https://bugs.webkit.org/show_bug.cgi?id=192765
140
141         unorm_normalize is deprecated, and broke an internal build
142         (Requested by Truitt on #webkit).
143
144         Reverted changesets:
145
146         "[GTK][WPE] Need a function to convert internal URI to display
147         ("pretty") URI"
148         https://bugs.webkit.org/show_bug.cgi?id=174816
149         https://trac.webkit.org/changeset/239265
150
151         "Fix the Apple Internal Mac build with a newer SDK"
152         https://trac.webkit.org/changeset/239274
153
154 2018-12-17  Daniel Bates  <dabates@apple.com>
155
156         Fix the Apple Internal Mac build with a newer SDK
157
158         * wtf/URLHelpers.cpp:
159         (WTF::URLHelpers::userVisibleURL):
160
161 2018-12-17  Matt Lewis  <jlewis3@apple.com>
162
163         Unreviewed, rolling out r239254.
164
165         This broke the Windows 10 Debug build
166
167         Reverted changeset:
168
169         "Replace many uses of String::format with more type-safe
170         alternatives"
171         https://bugs.webkit.org/show_bug.cgi?id=192742
172         https://trac.webkit.org/changeset/239254
173
174 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
175
176         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
177         https://bugs.webkit.org/show_bug.cgi?id=174816
178
179         Reviewed by Michael Catanzaro.
180
181         Translate userVisibleString and dependent code into platform-neutral C++
182         in wtf/URLHelpers.{h,cpp}.
183
184         * WTF.xcodeproj/project.pbxproj:
185         * wtf/CMakeLists.txt:
186         * wtf/URLHelpers.cpp: Added.
187         (WTF::URLHelpers::loadIDNScriptWhiteList):
188         (WTF::URLHelpers::isArmenianLookalikeCharacter):
189         (WTF::URLHelpers::isArmenianScriptCharacter):
190         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
191         (WTF::URLHelpers::isLookalikeCharacter):
192         (WTF::URLHelpers::whiteListIDNScript):
193         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
194         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
195         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
196         (WTF::URLHelpers::isRussianDomainNameCharacter):
197         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
198         (WTF::URLHelpers::mapHostName):
199         (WTF::URLHelpers::collectRangesThatNeedMapping):
200         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
201         (WTF::URLHelpers::applyHostNameFunctionToURLString):
202         (WTF::URLHelpers::mapHostNames):
203         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
204         (WTF::URLHelpers::userVisibleURL):
205         * wtf/URLHelpers.h: Added.
206         * wtf/cocoa/NSURLExtras.mm:
207         (WTF::URLHelpers::loadIDNScriptWhiteList):
208         (WTF::decodePercentEscapes):
209         (WTF::decodeHostName):
210         (WTF::encodeHostName):
211         (WTF::URLWithUserTypedString):
212         (WTF::userVisibleString):
213
214 2018-12-15  Darin Adler  <darin@apple.com>
215
216         Use warning-ignoring macros more consistently and simply
217         https://bugs.webkit.org/show_bug.cgi?id=192743
218
219         Reviewed by Mark Lam.
220
221         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
222         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
223         non-clang compilers, in part since the code is already inside
224         #if COMPILER(CLANG), but also because it would be harmless to ignore this
225         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
226
227 2018-12-15  Darin Adler  <darin@apple.com>
228
229         Replace many uses of String::format with more type-safe alternatives
230         https://bugs.webkit.org/show_bug.cgi?id=192742
231
232         Reviewed by Mark Lam.
233
234         * wtf/WorkQueue.cpp:
235         (WTF::WorkQueue::concurrentApply): Use makeString.
236
237         * wtf/dtoa.cpp:
238         (WTF::dtoa): Use sprintf instead of String::format in the comments,
239         since these functions have nothing to do with WTF::String.
240
241 2018-12-14  Darin Adler  <darin@apple.com>
242
243         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
244         https://bugs.webkit.org/show_bug.cgi?id=192738
245         rdar://problem/37502342
246
247         Reviewed by Mark Lam.
248
249         * wtf/Gigacage.cpp:
250         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
251         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
252
253 2018-12-14  David Kilzer  <ddkilzer@apple.com>
254
255         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
256         <https://webkit.org/b/192710>
257         <rdar://problem/46738962>
258
259         Reviewed by Eric Carlson.
260
261         * wtf/Logger.h:
262         (WTF::LogArgument::toString): Make argument a const reference to
263         avoid the copy.
264
265 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
266
267         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
268         https://bugs.webkit.org/show_bug.cgi?id=192696
269
270         Reviewed by Michael Catanzaro.
271
272         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
273         should support microsecond-precision delays. Such delays are common in
274         JSC's Watchdog implementation and missing support for them has been
275         causing test failures in the `testapi` program as well as some JSC
276         tests that depend on the termination determination functionality of the
277         JSC::Watchdog class.
278
279         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
280         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
281         The GSource's ready time is set manually, now with the necessary
282         microsecond precision.
283
284         * wtf/glib/RunLoopGLib.cpp:
285         (WTF::RunLoop::dispatchAfter):
286
287 2018-12-13  Saam Barati  <sbarati@apple.com>
288
289         The JSC shell should listen for memory pressure events and respond to them
290         https://bugs.webkit.org/show_bug.cgi?id=192647
291
292         Reviewed by Keith Miller.
293
294         * wtf/MemoryPressureHandler.cpp:
295         (WTF::MemoryPressureHandler::MemoryPressureHandler):
296         (WTF::MemoryPressureHandler::setDispatchQueue):
297         Make it so that we can customize which dispatch queue memory pressure
298         events get handled on.
299
300         * wtf/MemoryPressureHandler.h:
301         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
302         Make it so that we can disable logging that happens on each memory
303         pressure event.
304
305         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
306         (WTF::MemoryPressureHandler::install):
307         (WTF::MemoryPressureHandler::uninstall):
308         (WTF::MemoryPressureHandler::holdOff):
309
310 2018-12-13  David Kilzer  <ddkilzer@apple.com>
311
312         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
313         <https://webkit.org/b/192666>
314         <rdar://problem/46697952>
315
316         Reviewed by Alex Christensen.
317
318         * wtf/ParallelHelperPool.cpp:
319         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
320         reference and WTFMove().
321         (WTF::ParallelHelperClient::setTask): Ditto.
322         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
323         (WTF::ParallelHelperClient::runTask): Use const reference.
324         * wtf/ParallelHelperPool.h: Update declarations to match
325         implementations.
326
327 2018-12-12  Alex Christensen  <achristensen@webkit.org>
328
329         Implement safe browsing in WebKit on WatchOS
330         https://bugs.webkit.org/show_bug.cgi?id=192641
331         <rdar://problem/46376188>
332
333         Reviewed by Geoff Garen.
334
335         * wtf/Platform.h:
336         WatchOS has safe browsing, too!
337
338 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
339
340         [Win][Clang] Fix compilation warnings of WTF
341         https://bugs.webkit.org/show_bug.cgi?id=192583
342
343         Reviewed by Alex Christensen.
344
345         clang-cl reports the following warnings.
346
347         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
348         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
349         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
350         >                                                ^
351         > 1 warning generated.
352         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
353         > ..\..\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]
354         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
355         >                                                      ^
356         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
357         >     WNDCLASS windowClass = { 0 };
358         >                                ^
359         > 2 warnings generated.
360         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
361         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
362         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
363         >                    ^
364         > 1 warning generated.
365
366         * wtf/DateMath.cpp:
367         (WTF::getLocalTime): Defined only if used.
368         * wtf/StackBounds.cpp:
369         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
370         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
371         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
372
373 2018-12-11  Andy Estes  <aestes@apple.com>
374
375         Introduce makeBlockPtr for lambdas
376         https://bugs.webkit.org/show_bug.cgi?id=192594
377
378         Reviewed by Alex Christensen.
379
380         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
381         signature as a class template argument. This patch introduces an overload of makeBlockPtr
382         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
383
384         * wtf/BlockPtr.h:
385         (WTF::makeBlockPtr):
386
387         Adopted makeBlockPtr.
388
389         * wtf/cocoa/WorkQueueCocoa.cpp:
390         (WTF::WorkQueue::dispatch):
391         (WTF::WorkQueue::dispatchAfter):
392         (WTF::WorkQueue::concurrentApply):
393
394 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
395
396         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
397         https://bugs.webkit.org/show_bug.cgi?id=192573
398
399         Reviewed by Simon Fraser.
400
401         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
402         on it being set in FeatureDefines.xcconfig.
403
404         * wtf/Platform.h:
405
406 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
407
408         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
409         https://bugs.webkit.org/show_bug.cgi?id=192428
410
411         Reviewed by Tim Horton.
412
413         * wtf/Platform.h:
414
415 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
416
417         Move more macros out of WebKit's config.h
418         https://bugs.webkit.org/show_bug.cgi?id=192430
419
420         Reviewed by Tim Horton.
421
422         * wtf/Platform.h:
423
424 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
425
426         Unreviewed, fix build failure on GCC 8.2, part 2
427
428         Add RefCountedArray::assign, and use it instead of operator= internally.
429         We should have operator=(const RefCountedArray&) since it will be automatically generated
430         if we do not have correct implementation here.
431
432         * wtf/RefCountedArray.h:
433         (WTF::RefCountedArray::operator=):
434         (WTF::RefCountedArray::assign):
435
436 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
437
438         Unreviewed, fix build failure on GCC 8.2
439
440         We remove operator=<PtrTraits> call since it is not necessary.
441         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
442
443         * wtf/RefCountedArray.h:
444
445 2018-12-08  Darin Adler  <darin@apple.com>
446
447         Fix stray-semicolon warning seen with a new version of clang in Xcode
448         https://bugs.webkit.org/show_bug.cgi?id=192534
449
450         Reviewed by Alexey Proskuryakov.
451
452         * wtf/Lock.h: Removed an unneeded semicolon.
453
454 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
455
456         [WTF] Debug build fails due conflicting abort() method
457         https://bugs.webkit.org/show_bug.cgi?id=192491
458
459         Reviewed by Michael Catanzaro.
460
461         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
462         inside classes which have an ::abort() method, but only when __cplusplus is defined to
463         allow inclusion of the header in plain C sources.
464
465 2018-12-07  Andy Estes  <aestes@apple.com>
466
467         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
468         https://bugs.webkit.org/show_bug.cgi?id=192498
469
470         Reviewed by Tim Horton.
471
472         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
473         which behave like their non-optional variants but do not require their classes to exist.
474
475         * wtf/cocoa/SoftLinking.h:
476
477 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
478
479         Move USE_NEW_THEME out of WebCore's config.h
480         https://bugs.webkit.org/show_bug.cgi?id=192426
481
482         Reviewed by Tim Horton.
483
484         * wtf/Platform.h:
485
486 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
487
488         [SOUP] Move URLSoup back to WebCore after r238771
489         https://bugs.webkit.org/show_bug.cgi?id=192306
490
491         Reviewed by Michael Catanzaro.
492
493         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
494         libsoup as a new dependency of libjavascriptcoregtk.
495
496         * wtf/PlatformGTK.cmake:
497         * wtf/PlatformWPE.cmake:
498         * wtf/URL.h:
499         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
500
501 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
502
503         Fix some unused parameter warnings
504         https://bugs.webkit.org/show_bug.cgi?id=192336
505
506         Reviewed by Fujii Hironori.
507
508         * wtf/StackTrace.cpp:
509         (WTFGetBacktrace):
510         (WTF::StackTrace::demangle):
511         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
512         (WTF::MemoryPressureHandler::holdOff):
513         (WTF::MemoryPressureHandler::respondToMemoryPressure):
514
515 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
516
517         Modernize version check for _suppressedAutoAddedHTTPHeaders
518         https://bugs.webkit.org/show_bug.cgi?id=192175
519
520         Reviewed by Tim Horton.
521
522         * wtf/Platform.h:
523
524 2018-11-30  Alex Christensen  <achristensen@webkit.org>
525
526         Fix Windows build after r238771
527         https://bugs.webkit.org/show_bug.cgi?id=190234
528
529         * wtf/URLParser.h:
530         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
531
532 2018-11-30  Alex Christensen  <achristensen@webkit.org>
533
534         Move URL from WebCore to WTF
535         https://bugs.webkit.org/show_bug.cgi?id=190234
536
537         Reviewed by Keith Miller.
538
539         * WTF.xcodeproj/project.pbxproj:
540         * wtf/CMakeLists.txt:
541         * wtf/Forward.h:
542         * wtf/PlatformGTK.cmake:
543         * wtf/PlatformMac.cmake:
544         * wtf/PlatformWPE.cmake:
545         * wtf/PlatformWin.cmake:
546         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
547         (WTF::URL::protocolIs):
548         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
549         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
550         (WTF::URLHash::hash):
551         (WTF::URLHash::equal):
552         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
553         (WTF::URLParser::isInUserInfoEncodeSet):
554         (WTF::URLParser::parseAuthority):
555         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
556         (WTF::URLParser::URLParser):
557         (WTF::URLParser::result):
558         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
559         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
560         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
561         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
562         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
563         (WTF::isArmenianLookalikeCharacter):
564         (WTF::isArmenianScriptCharacter):
565         (WTF::isASCIIDigitOrValidHostCharacter):
566         (WTF::isLookalikeCharacter):
567         (WTF::whiteListIDNScript):
568         (WTF::readIDNScriptWhiteListFile):
569         (WTF::allCharactersInIDNScriptWhiteList):
570         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
571         (WTF::isRussianDomainNameCharacter):
572         (WTF::allCharactersAllowedByTLDRules):
573         (WTF::mapHostNameWithRange):
574         (WTF::hostNameNeedsDecodingWithRange):
575         (WTF::hostNameNeedsEncodingWithRange):
576         (WTF::decodeHostNameWithRange):
577         (WTF::encodeHostNameWithRange):
578         (WTF::decodeHostName):
579         (WTF::encodeHostName):
580         (WTF::collectRangesThatNeedMapping):
581         (WTF::collectRangesThatNeedEncoding):
582         (WTF::collectRangesThatNeedDecoding):
583         (WTF::applyHostNameFunctionToMailToURLString):
584         (WTF::applyHostNameFunctionToURLString):
585         (WTF::mapHostNames):
586         (WTF::stringByTrimmingWhitespace):
587         (WTF::URLByTruncatingOneCharacterBeforeComponent):
588         (WTF::URLByRemovingResourceSpecifier):
589         (WTF::URLWithData):
590         (WTF::dataWithUserTypedString):
591         (WTF::URLWithUserTypedString):
592         (WTF::URLWithUserTypedStringDeprecated):
593         (WTF::hasQuestionMarkOnlyQueryString):
594         (WTF::dataForURLComponentType):
595         (WTF::URLByRemovingComponentAndSubsequentCharacter):
596         (WTF::URLByRemovingUserInfo):
597         (WTF::originalURLData):
598         (WTF::createStringWithEscapedUnsafeCharacters):
599         (WTF::userVisibleString):
600         (WTF::isUserVisibleURL):
601         (WTF::rangeOfURLScheme):
602         (WTF::looksLikeAbsoluteURL):
603         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
604         (WTF::URL::URL):
605         (WTF::URL::createCFURL const):
606         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
607         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
608
609 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
610
611         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
612         https://bugs.webkit.org/show_bug.cgi?id=192173
613
614         Reviewed by Tim Horton.
615
616         * wtf/Platform.h: Also renamed it to better match other version checks.
617
618 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
619
620         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
621         https://bugs.webkit.org/show_bug.cgi?id=192041
622
623         Reviewed by Tim Horton.
624
625         * wtf/Platform.h:
626
627 2018-11-28  Mark Lam  <mark.lam@apple.com>
628
629         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
630         https://bugs.webkit.org/show_bug.cgi?id=192110
631         <rdar://problem/46317746>
632
633         Reviewed by Saam Barati.
634
635         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
636         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
637         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
638         (and other projects) as well as JSC.  Hence, there's no reason why
639         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
640
641         * wtf/Platform.h:
642
643 2018-11-28  Keith Rollin  <krollin@apple.com>
644
645         Update generate-unified-source-bundles.rb to generate .xcfilelist files
646         https://bugs.webkit.org/show_bug.cgi?id=192029
647         <rdar://problem/46285918>
648
649         Reviewed by Alex Christensen.
650
651         Update generate-unified-source-bundles.rb to generate output for
652         .xcfilelist files. These files are used to indicate the sets of input
653         and output files to Run Script build phases in Xcode. By invoking
654         generate-unified-source-bundles.rb with -generate-xcfilelists, the
655         script generates these .xcfilelist files. These .xcfilelist files can
656         then be used to specify the inputs and outputs of the Generate Unified
657         Sources build phases.
658
659         * Scripts/generate-unified-source-bundles.rb:
660
661 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
662
663         Remove another OS version check from NetworkDataTaskCocoa.mm
664         https://bugs.webkit.org/show_bug.cgi?id=192046
665
666         Reviewed by Alex Christensen.
667
668         * wtf/Platform.h:
669
670 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
671
672         Modernize version checks for same site cookie support
673         https://bugs.webkit.org/show_bug.cgi?id=192054
674
675         Reviewed by Tim Horton.
676
677         * wtf/Platform.h:
678
679 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
680
681         Modernize the check for async _saveCookies existence
682         https://bugs.webkit.org/show_bug.cgi?id=191987
683
684         Reviewed by Dean Jackson.
685
686         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
687         although it seems very likely that we want to do the same on other iOS family OSes.
688
689 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
690
691         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
692         https://bugs.webkit.org/show_bug.cgi?id=191960
693
694         Reviewed by Alex Christensen.
695
696         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
697         pointer argument of EncodePointer. Changed the type of stored
698         function pointer returned by EncodePointer.
699
700 2018-11-26  Sam Weinig  <sam@webkit.org>
701
702         Streamline ListHashSet use in floating object code
703         https://bugs.webkit.org/show_bug.cgi?id=191957
704
705         Reviewed by Alex Christensen.
706
707         * wtf/ListHashSet.h:
708         Reverses the order of the template arguments for the find() and contains()
709         overload that allow specifying a hash translator to allow the compiler to
710         deduce type T. This simplifies call sites and matches other WTF containers.
711
712 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
713
714         CRASH() should call abort() except on Darwin and in developer builds
715         https://bugs.webkit.org/show_bug.cgi?id=184408
716
717         Reviewed by Daniel Bates.
718
719         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
720         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
721
722         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
723         can't do that.
724
725         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
726         is reportedly useful in nightmare scenarios where core dumps are unavailable.
727
728         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
729         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
730         is also non-constexpr.
731
732         * wtf/Assertions.h:
733
734 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
735
736         Unreviewed, rolling out r238469.
737
738         Broke the build
739
740         Reverted changeset:
741
742         "CRASH() should call abort() except on Darwin and in developer
743         builds"
744         https://bugs.webkit.org/show_bug.cgi?id=184408
745         https://trac.webkit.org/changeset/238469
746
747 2018-11-24  Andy Estes  <aestes@apple.com>
748
749         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
750         https://bugs.webkit.org/show_bug.cgi?id=191899
751
752         Reviewed by Dean Jackson.
753
754         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
755         framework name. For example, NSView would have a class getter named
756         namespace::get_AppKit_NSViewClass().
757
758         Including the framework name in the getter is unnecessary. Objective-C classes already exist
759         in a global namespace, so there is no need to disambiguate class names by framework. This
760         patch elides the framework name from the getter function. For example, NSView would now have
761         a getter named namespace::getNSViewClass().
762
763         * wtf/cocoa/SoftLinking.h:
764
765 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
766
767         CRASH() should call abort() except on Darwin and in developer builds
768         https://bugs.webkit.org/show_bug.cgi?id=184408
769
770         Reviewed by Daniel Bates.
771
772         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
773         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
774
775         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
776         can't do that.
777
778         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
779         is reportedly useful in nightmare scenarios where core dumps are unavailable.
780
781         * wtf/Assertions.h:
782
783 2018-11-23  Sam Weinig  <sam@webkit.org>
784
785         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
786         https://bugs.webkit.org/show_bug.cgi?id=191936
787
788         Reviewed by Zalan Bujtas.
789
790         Adds overloads for find, contains, insertBefore and remove that take raw pointers
791         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
792         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
793         which already have this functionality. Like in the other collections, this is especially
794         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
795         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
796         which is unique to ListHashSet. As would be expected, this specialization only changes the first
797         parameter, the one that needs to be found, to support a raw pointer.  
798
799         * wtf/ListHashSet.h:
800         (WTF::U>::find):
801         (WTF::U>::find const):
802         (WTF::U>::contains const):
803         (WTF::U>::insertBefore):
804         (WTF::U>::remove):
805
806 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
807
808         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
809         https://bugs.webkit.org/show_bug.cgi?id=191675
810
811         Reviewed by Mark Lam.
812
813         * wtf/InlineASM.h:
814         * wtf/Platform.h:
815
816 2018-11-21  Andy Estes  <aestes@apple.com>
817
818         [Cocoa] Create a soft-linking file for PassKit
819         https://bugs.webkit.org/show_bug.cgi?id=191875
820         <rdar://problem/46203215>
821
822         Reviewed by Myles Maxfield.
823
824         * wtf/Platform.h: Defined USE_PASSKIT.
825         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
826         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
827         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
828
829 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
830
831         Enable JIT on ARM/Linux
832         https://bugs.webkit.org/show_bug.cgi?id=191548
833
834         Reviewed by Yusuke Suzuki.
835
836         Enable JIT by default on ARMv7/Linux after it was disabled with
837         recent bytcode format change.
838
839         * wtf/Platform.h:
840
841 2018-11-14  Keith Rollin  <krollin@apple.com>
842
843         Fix #end vs. #endif typo.
844         https://bugs.webkit.org/show_bug.cgi?id=191668
845         <rdar://problem/46081704>
846
847         Reviewed by Alexey Proskuryakov.
848
849         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
850         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
851         to detect similar typos.
852
853         * Scripts/generate-unified-source-bundles.rb:
854
855 2018-11-12  Mark Lam  <mark.lam@apple.com>
856
857         Add OOM detection to StringPrototype's substituteBackreferences().
858         https://bugs.webkit.org/show_bug.cgi?id=191563
859         <rdar://problem/45720428>
860
861         Reviewed by Saam Barati.
862
863         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
864         the hasOverflowed() check if m_string is not null.  When m_string is not null,
865         the StringBuilder either only has a single String in m_string (with m_buffer being 
866         null), or reifyString() has already been called (resulting in a non-null m_string
867         with a possibly non-null m_buffer).
868
869         We can skip the overflow check because:
870         1. if the StringBuilder only has a single String, then there cannot be an overflow.
871         2. if reifyString() has already been called, then the hasOverflowed() checked has
872            already been done because every code path that calls reifyString() first does
873            the hasOverflowed() check.
874
875         We can skip shrinkToFit() because it only applies to m_buffer.
876         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
877         2. if reifyString() has already been called, then we either came down
878            a. the toString() path with a null m_string previously, where we would have
879               already called shrinkToFit() before reifyString(), or
880            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
881
882         We can skip reifyString() because:
883         1. if the StringBuilder only has a single String, then the string is already reified.
884         2. if reifyString() has been already called, then the string is already reified.
885
886         Note that if m_string is the null string and m_buffer is null, reifyString() will
887         replace it with the empty string.  For this reason, we cannot solely check for
888         !m_buffer because we need to reify the null string into the empty string.
889
890         Note also that if m_string is null and m_buffer is non-null, reifyString() will
891         create a String and set m_string to it.  However, m_buffer remains non-null.
892         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
893         We add a m_isReified flag (only when assertions are enabled) to track the reified
894         case where both m_buffer and m_string are non-null.
895
896         * wtf/text/StringBuilder.cpp:
897         (WTF::StringBuilder::reifyString const):
898         * wtf/text/StringBuilder.h:
899         (WTF::StringBuilder::toString):
900
901 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
902
903         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
904         https://bugs.webkit.org/show_bug.cgi?id=191492
905
906         Reviewed by Alex Christensen.
907
908         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
909         the cases, some systems have issues with applying this patch.
910
911         To work around the problem, the change is made is two patches, first rename to
912         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
913
914         * WTF.xcodeproj/project.pbxproj:
915         * wtf/CMakeLists.txt:
916         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
917         (wtfObjCMsgSend):
918
919 2018-11-09  Keith Miller  <keith_miller@apple.com>
920
921         LLInt VectorSizeOffset should be based on offset extraction
922         https://bugs.webkit.org/show_bug.cgi?id=191468
923
924         Reviewed by Yusuke Suzuki.
925
926         Make things friends with LLIntOffsetsExtractor.
927
928         * wtf/RefCountedArray.h:
929         * wtf/Vector.h:
930
931 2018-11-09  Jim Mason  <jmason@ibinx.com>
932
933         [WTF] Changes in bug 188867 break non-Linux Unix builds
934         https://bugs.webkit.org/show_bug.cgi?id=191380
935
936         The intention of 188867 was to split out platform-specific
937         heap query/release code.  Any unsupported platform
938         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
939         ended up sending all non-Linux platforms through the Linux
940         implementation, which breaks the build for those platforms.
941         This includes any user of the GTK target which is not Linux,
942         such as the *BSDs, Solaris, etc.
943
944         Reviewed by Yusuke Suzuki.
945
946         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
947         code only for Linux; all other platforms use the generic stub.
948
949 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
950
951         Removed mbmalloc target from WTF
952         https://bugs.webkit.org/show_bug.cgi?id=191313
953
954         Reviewed by Saam Barati.
955
956         For benchmarking, WTF::fastMalloc is no longer meaningfully different
957         from bmalloc. (And bmalloc has its own mbmalloc target.)
958
959         * Configurations/mbmalloc.xcconfig: Removed.
960         * WTF.xcodeproj/project.pbxproj:
961         * wtf/mbmalloc.cpp: Removed.
962
963 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
964
965         Re-add PLATFORM(IOS), now with the strict meaning
966         https://bugs.webkit.org/show_bug.cgi?id=191281
967
968         Reviewed by Tim Horton.
969
970         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
971         when expanded, it might be that the values are incorrect for some flavors of iOS family.
972
973 2018-11-08  Dean Jackson  <dino@apple.com>
974
975         Add a String literal that returns a String
976         https://bugs.webkit.org/show_bug.cgi?id=191425
977         <rdar://problem/45914556>
978
979         Reviewed by Sam Weinig.
980
981         Add a new String literal, _str, that will return a String type.
982         This is useful when ""_s won't work, such as for things that
983         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
984         or Variants.
985
986         * wtf/text/WTFString.h:
987         (WTF::StringLiterals::operator _str): Added.
988
989 2018-11-06  Justin Fan  <justin_fan@apple.com>
990
991         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
992         https://bugs.webkit.org/show_bug.cgi?id=191291
993
994         Reviewed by Myles Maxfield.
995
996         Properly disable WEBGPU on all non-Metal platforms for now.
997
998         * wtf/Platform.h:
999
1000 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
1001
1002         Cache glyph paths and share underline skipping code between all the ports
1003         https://bugs.webkit.org/show_bug.cgi?id=191239
1004
1005         Reviewed by Alex Christensen.
1006
1007         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
1008
1009         * wtf/Platform.h:
1010
1011 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
1012
1013         Enable LLInt on ARMv7/Linux
1014         https://bugs.webkit.org/show_bug.cgi?id=191190
1015
1016         Reviewed by Yusuke Suzuki.
1017
1018         After enabling the new bytecode format in r237547, C_LOOP was
1019         forced on all 32-bit platforms. Now enable LLInt again on
1020         ARMv7-Thumb2/Linux by default.
1021
1022         * wtf/Platform.h:
1023
1024 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
1025
1026         [Win] Use C++14, not C++17
1027         https://bugs.webkit.org/show_bug.cgi?id=191101
1028
1029         Reviewed by Alex Christensen.
1030
1031         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
1032         instead of _MSC_FULL_VER.
1033
1034 2018-11-02  Justin Fan  <justin_fan@apple.com>
1035
1036         [WebGPU] Experimental prototype for MSL shaders
1037         https://bugs.webkit.org/show_bug.cgi?id=191084
1038
1039         Reviewed by Dean Jackson.
1040
1041         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
1042
1043         * wtf/Platform.h:
1044
1045 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
1046
1047         Replace CommonRandom SPI with API
1048         https://bugs.webkit.org/show_bug.cgi?id=191178
1049         <rdar://problem/45722391>
1050
1051         Reviewed by Brent Fulgham.
1052
1053         * WTF.xcodeproj/project.pbxproj:
1054         * wtf/CMakeLists.txt:
1055         * wtf/RandomDevice.cpp:
1056         (WTF::RandomDevice::cryptographicallyRandomValues):
1057         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
1058
1059 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
1060
1061         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
1062         https://bugs.webkit.org/show_bug.cgi?id=189693
1063
1064         Reviewed by Yusuke Suzuki.
1065
1066         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
1067         * wtf/CMakeLists.txt: Ditto.
1068         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
1069         * wtf/text/StringImpl.cpp: Ditto.
1070         * wtf/text/StringView.cpp: Ditto.
1071         * wtf/text/WTFString.cpp: Ditto.
1072         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
1073         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
1074
1075 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
1076
1077         [PlayStation] Enable JavaScriptCore
1078         https://bugs.webkit.org/show_bug.cgi?id=191072
1079
1080         Reviewed by Brent Fulgham.
1081
1082         Add platform files for the PlayStation port.
1083
1084         * wtf/PlatformPlayStation.cmake: Added.
1085
1086 2018-10-30  David Kilzer  <ddkilzer@apple.com>
1087
1088         XSLTProcessor should limit max transform depth
1089         <https://webkit.org/b/191075>
1090         <rdar://problem/45531453>
1091
1092         Reviewed by Alex Christensen.
1093
1094         * wtf/cocoa/SoftLinking.h:
1095         (SOFT_LINK_VARIABLE_FOR_HEADER):
1096         (SOFT_LINK_VARIABLE_FOR_SOURCE):
1097         - Add macros for non-constant global variables.
1098
1099 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
1100
1101         Clean up some obsolete MAX_ALLOWED macros
1102         https://bugs.webkit.org/show_bug.cgi?id=190916
1103
1104         Reviewed by Tim Horton.
1105
1106         * WTF.xcodeproj/project.pbxproj:
1107         * wtf/PlatformMac.cmake:
1108         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
1109
1110 2018-10-29  Mark Lam  <mark.lam@apple.com>
1111
1112         Correctly detect string overflow when using the 'Function' constructor.
1113         https://bugs.webkit.org/show_bug.cgi?id=184883
1114         <rdar://problem/36320331>
1115
1116         Reviewed by Saam Barati.
1117
1118         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
1119            a. StringBuilder::OverflowHandler::CrashOnOverflow.
1120            b. StringBuilder::OverflowHandler::RecordOverflow.
1121
1122            CrashOnOverflow will crash the moment an overflow or failure to allocate
1123            memory is detected.
1124
1125            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
1126            overflow or failure to allocate memory is detected.  However, if the user
1127            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
1128            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
1129            will crash regardless because these methods can only meaningfully do their
1130            work and return a result if and only if the builder has not overflowed.
1131
1132            By default, the StringBuilder crashes on overflow (the old behavior) unless it
1133            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
1134            enum.
1135
1136            Design note:
1137
1138            The StringBuilder can only be put in 1 of the 2 modes at the time of
1139            construction.  This means that we could have implemented it as a template
1140            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
1141            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
1142
1143            However, I was not able to get clang to export the explicitly instantiated
1144            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
1145            Since the StringBuilder is a transient object (not stored for a long time on
1146            the heap), and the runtime check of the boolean is not that costly compared
1147            to other work that StringBuilder routinely does (e.g. memcpy), using the
1148            new ConditionalCrashOnOverflow (which does a runtime check to determine to
1149            crash or not on overflow) is fine.
1150
1151            When clang is able to export explicitly instantiated template methods, we can
1152            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
1153            See https://bugs.webkit.org/show_bug.cgi?id=191050.
1154
1155         To support the above, we also did:
1156
1157         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
1158            fail without crashing.  This also meant that ...
1159
1160         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
1161            FastMalloc, and bmalloc (and related peers) to enable this.
1162
1163         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
1164            like CrashOnOverflow or RecordOverflow.
1165
1166         * wtf/CheckedArithmetic.h:
1167         (WTF::ConditionalCrashOnOverflow::overflowed):
1168         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
1169         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
1170         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
1171         (WTF::ConditionalCrashOnOverflow::clearOverflow):
1172         (WTF::ConditionalCrashOnOverflow::crash):
1173         (WTF::RecordOverflow::overflowed):
1174         (WTF::Checked::unsafeGet const):
1175         * wtf/FastMalloc.cpp:
1176         (WTF::tryFastRealloc):
1177         * wtf/FastMalloc.h:
1178         * wtf/text/StringBuilder.cpp:
1179         (WTF::expandedCapacity):
1180         (WTF::StringBuilder::reifyString const):
1181         (WTF::StringBuilder::resize):
1182         (WTF::StringBuilder::allocateBuffer):
1183         (WTF::StringBuilder::allocateBufferUpConvert):
1184         (WTF::StringBuilder::reallocateBuffer<LChar>):
1185         (WTF::StringBuilder::reallocateBuffer<UChar>):
1186         (WTF::StringBuilder::reserveCapacity):
1187         (WTF::StringBuilder::appendUninitialized):
1188         (WTF::StringBuilder::appendUninitializedSlow):
1189         (WTF::StringBuilder::append):
1190         (WTF::StringBuilder::canShrink const):
1191         (WTF::StringBuilder::shrinkToFit):
1192         * wtf/text/StringBuilder.h:
1193         (WTF::StringBuilder::StringBuilder):
1194         (WTF::StringBuilder::didOverflow):
1195         (WTF::StringBuilder::hasOverflowed const):
1196         (WTF::StringBuilder::crashesOnOverflow const):
1197         (WTF::StringBuilder::append):
1198         (WTF::StringBuilder::toString):
1199         (WTF::StringBuilder::toStringPreserveCapacity const):
1200         (WTF::StringBuilder::toAtomicString const):
1201         (WTF::StringBuilder::length const):
1202         (WTF::StringBuilder::capacity const):
1203         (WTF::StringBuilder::operator[] const):
1204         (WTF::StringBuilder::swap):
1205         (WTF::StringBuilder::getBufferCharacters<UChar>):
1206         * wtf/text/StringBuilderJSON.cpp:
1207         (WTF::StringBuilder::appendQuotedJSONString):
1208         * wtf/text/StringImpl.cpp:
1209         (WTF::StringImpl::reallocateInternal):
1210         (WTF::StringImpl::reallocate):
1211         (WTF::StringImpl::tryReallocate):
1212         * wtf/text/StringImpl.h:
1213
1214 2018-10-29  Tim Horton  <timothy_horton@apple.com>
1215
1216         Modernize WebKit nibs and lprojs for localization's sake
1217         https://bugs.webkit.org/show_bug.cgi?id=190911
1218         <rdar://problem/45349466>
1219
1220         Reviewed by Dan Bernstein.
1221
1222         * WTF.xcodeproj/project.pbxproj:
1223         English->en
1224
1225 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
1226
1227         New bytecode format for JSC
1228         https://bugs.webkit.org/show_bug.cgi?id=187373
1229         <rdar://problem/44186758>
1230
1231         Reviewed by Filip Pizlo.
1232
1233         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
1234         a macro was passed multiple arguments
1235         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
1236         * wtf/Vector.h:
1237         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
1238
1239 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
1240
1241         HashMap should support selecting a random entry
1242         https://bugs.webkit.org/show_bug.cgi?id=190814
1243
1244         Reviewed by Ryosuke Niwa.
1245
1246         * wtf/HashTable.h:
1247         (WTF::HashTable::random):
1248         (WTF::HashTable::random const): Merge the empty and deleted checks, and
1249         use more idiomatic addressing.
1250
1251 2018-10-26  Commit Queue  <commit-queue@webkit.org>
1252
1253         Unreviewed, rolling out r237479 and r237484.
1254         https://bugs.webkit.org/show_bug.cgi?id=190978
1255
1256         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
1257
1258         Reverted changesets:
1259
1260         "New bytecode format for JSC"
1261         https://bugs.webkit.org/show_bug.cgi?id=187373
1262         https://trac.webkit.org/changeset/237479
1263
1264         "Gardening: Build fix after r237479."
1265         https://bugs.webkit.org/show_bug.cgi?id=187373
1266         https://trac.webkit.org/changeset/237484
1267
1268 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
1269
1270         New bytecode format for JSC
1271         https://bugs.webkit.org/show_bug.cgi?id=187373
1272         <rdar://problem/44186758>
1273
1274         Reviewed by Filip Pizlo.
1275
1276         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
1277         a macro was passed multiple arguments
1278         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
1279         * wtf/Vector.h:
1280         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
1281
1282 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
1283
1284         HashMap should support selecting a random entry
1285         https://bugs.webkit.org/show_bug.cgi?id=190814
1286
1287         Reviewed by Antti Koivisto.
1288
1289         * wtf/HashTable.h:
1290         (WTF::HashTable::random):
1291         (WTF::HashTable::random const): Draw a new random bucket any time we
1292         have a miss, to avoid bias caused by lopsided tables.
1293
1294 2018-10-26  Antti Koivisto  <antti@apple.com>
1295
1296         hashSet.remove(hashSet.random()) doesn't build
1297         https://bugs.webkit.org/show_bug.cgi?id=190953
1298
1299         Reviewed by Chris Dumez.
1300
1301         * wtf/HashSet.h:
1302
1303         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
1304
1305         * wtf/HashTable.h:
1306         (WTF::HashTable::random const):
1307
1308         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
1309
1310 2018-10-26  Alicia Boya García  <aboya@igalia.com>
1311
1312         [MSE][WTF][Media] Invalid MediaTime should be falsy
1313         https://bugs.webkit.org/show_bug.cgi?id=190893
1314
1315         Reviewed by Jer Noble.
1316
1317         This patch modifies the definition of MediaTime so that invalid times
1318         are evaluated to false in the context of a boolean expression.
1319
1320         * wtf/MediaTime.cpp:
1321         (WTF::MediaTime::operator! const):
1322         (WTF::MediaTime::operator bool const):
1323
1324 2018-10-26  Keith Miller  <keith_miller@apple.com>
1325
1326         Some internal projects include wtf headers and build with C++11
1327         https://bugs.webkit.org/show_bug.cgi?id=190791
1328
1329         Reviewed by Alexey Proskuryakov.
1330
1331         C++11 doesn't support constexpr functions that contain
1332         statements. This patch removes getLSBSet set from builds before
1333         C++14 to avoid this for now.
1334
1335         * wtf/MathExtras.h:
1336         (getLSBSet):
1337
1338 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
1339
1340         Cleanup: inline constexpr is redundant as constexpr implies inline
1341         https://bugs.webkit.org/show_bug.cgi?id=190819
1342
1343         Reviewed by Mark Lam.
1344
1345         * wtf/Bitmap.h:
1346         (WTF::WordType>::Bitmap):
1347         * wtf/LEBDecoder.h:
1348         (WTF::LEBDecoder::maxByteLength):
1349         * wtf/MathExtras.h:
1350         (defaultMinimumForClamp):
1351         (defaultMaximumForClamp):
1352         (clampToAccepting64):
1353         (isLessThan):
1354         (isLessThanEqual):
1355         (isGreaterThan):
1356         (isGreaterThanEqual):
1357         (WTF::roundUpToPowerOfTwo):
1358         (WTF::maskForSize):
1359         * wtf/Optional.h:
1360         * wtf/PtrTag.h:
1361         (WTF::tagCodePtr):
1362         (WTF::untagCodePtr):
1363         (WTF::retagCodePtr):
1364         (WTF::removeCodePtrTag):
1365         * wtf/StdLibExtras.h:
1366         (WTF::roundUpToMultipleOf):
1367         * wtf/Variant.h:
1368         (WTF::operator==):
1369         (WTF::operator!=):
1370         (WTF::operator>=):
1371         (WTF::operator<=):
1372         (WTF::operator>):
1373         (WTF::operator<):
1374         * wtf/text/StringImpl.h:
1375         (WTF::StringImplShape::StringImplShape):
1376         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
1377
1378 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
1379
1380         HashMap should support selecting a random entry
1381         https://bugs.webkit.org/show_bug.cgi?id=190814
1382
1383         Reviewed by Antti Koivisto.
1384
1385         In some cases, remove(begin()) is not quite good enough as a random
1386         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
1387         So, let's support real random eviction.
1388
1389         (And by "real" I mean "pseudo".)
1390
1391         * wtf/HashCountedSet.h:
1392         * wtf/HashMap.h:
1393         * wtf/HashSet.h:
1394         * wtf/ListHashSet.h:
1395         (WTF::ListHashSet::random):
1396         (WTF::ListHashSet::random const):
1397         * wtf/LoggingHashMap.h:
1398         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
1399
1400         * wtf/HashTable.h:
1401         (WTF::HashTable::random):
1402         (WTF::HashTable::random const): Implement the random() iterator.
1403         makeIterator() already supports starting from any bucket, so this is
1404         pretty easy.
1405
1406         In the subtle case where we select end(), we choose to wrap around and
1407         return begin(). We expect that clients don't really think of the end()
1408         bucket as being in the domain of the random search. Also, we don't want
1409         to annoy clients who know their tables are non-empty with needless
1410         checks for end().
1411
1412         * wtf/RandomNumber.cpp:
1413         (WTF::weakRandomUint32):
1414         * wtf/RandomNumber.h: Added a free function for weak random numbers so
1415         that clients that want cheap random numbers aren't required to allocate
1416         storage for a WeakRandom generator.
1417
1418 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
1419
1420         Turn on Conic Gradients
1421         https://bugs.webkit.org/show_bug.cgi?id=190810
1422
1423         Reviewed by Tim Horton.
1424
1425         * wtf/FeatureDefines.h:
1426
1427 2018-10-24  Christopher Reid  <chris.reid@sony.com>
1428
1429         [Win] Add function call name information to stack traces
1430         https://bugs.webkit.org/show_bug.cgi?id=190761
1431
1432         Reviewed by Fujii Hironori.
1433
1434         Add symbol information to stack traces using dbghelp.dll
1435         This library will use symbols files from these sources:
1436             - The current working directory
1437             - The directory containing the application's executable
1438             - _NT_SYMBOL_PATH environment variable
1439             - _NT_ALTERNATE_SYMBOL_PATH environment variable
1440
1441         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
1442         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
1443         can still attempt to call the library at the same time as WebKit.
1444
1445         * wtf/CMakeLists.txt:
1446         * wtf/PlatformWin.cmake:
1447         * wtf/StackTrace.cpp:
1448         * wtf/win/DbgHelperWin.cpp: Added.
1449         * wtf/win/DbgHelperWin.h: Added.
1450
1451 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
1452
1453         Really prevent PLATFORM(IOS) from being used
1454         https://bugs.webkit.org/show_bug.cgi?id=190813
1455
1456         Reviewed by Tim Horton.
1457
1458         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
1459
1460 2018-10-22  Chris Dumez  <cdumez@apple.com>
1461
1462         Deque's contains() and findIf() should be const
1463         https://bugs.webkit.org/show_bug.cgi?id=190796
1464
1465         Reviewed by Antti Koivisto.
1466
1467         Deque's contains() and findIf() should be const as they do not modify the container.
1468
1469         * wtf/Deque.h:
1470         (WTF::inlineCapacity>::findIf):
1471         (WTF::inlineCapacity>::findIf const):
1472         (WTF::inlineCapacity>::contains const):
1473         (WTF::inlineCapacity>::contains): Deleted.
1474
1475 2018-10-18  Alicia Boya García  <aboya@igalia.com>
1476
1477         [Media] Use nanoseconds as MaximumTimeScale
1478         https://bugs.webkit.org/show_bug.cgi?id=190631
1479
1480         1e9 is a much more useful timescale than the previous one 2^31-1.
1481         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1482         common among some formats like WebM and frameworks like GStreamer
1483         where base 10 timescale is common... and it's those big timescales the
1484         ones that are usually scaled up to MaximumTimeScale.
1485
1486         Reviewed by Jer Noble.
1487
1488         * wtf/MediaTime.cpp:
1489
1490 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1491
1492         Remove PLATFORM(IOS) for now
1493         https://bugs.webkit.org/show_bug.cgi?id=190737
1494
1495         Reviewed by Tim Horton.
1496
1497         * wtf/Platform.h:
1498
1499 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1500
1501         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
1502         https://bugs.webkit.org/show_bug.cgi?id=190729
1503
1504         Reviewed by Tim Horton.
1505
1506         * wtf/Assertions.h:
1507         * wtf/FeatureDefines.h:
1508         * wtf/InlineASM.h:
1509         * wtf/MemoryPressureHandler.cpp:
1510         (WTF::thresholdForPolicy):
1511         * wtf/Platform.h:
1512         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1513         (WTF::MemoryPressureHandler::install):
1514         (WTF::MemoryPressureHandler::respondToMemoryPressure):
1515         * wtf/spi/cocoa/NSMapTableSPI.h:
1516         * wtf/spi/darwin/XPCSPI.h:
1517         * wtf/text/StringCommon.h:
1518         * wtf/text/TextBreakIterator.cpp:
1519         * wtf/text/TextBreakIterator.h:
1520         * wtf/unicode/icu/CollatorICU.cpp:
1521         (WTF::copyDefaultLocale):
1522
1523 2018-10-18  Alex Christensen  <achristensen@webkit.org>
1524
1525         Clean up FrameLoader two-state enums
1526         https://bugs.webkit.org/show_bug.cgi?id=190731
1527
1528         Reviewed by Chris Dumez.
1529
1530         * wtf/EnumTraits.h:
1531         (WTF::isValidEnum):
1532
1533 2018-10-17  Commit Queue  <commit-queue@webkit.org>
1534
1535         Unreviewed, rolling out r237208.
1536         https://bugs.webkit.org/show_bug.cgi?id=190691
1537
1538         Caused the API test that was changed to failure continuously
1539         (Requested by Truitt on #webkit).
1540
1541         Reverted changeset:
1542
1543         "[Media] Use nanoseconds as MaximumTimeScale"
1544         https://bugs.webkit.org/show_bug.cgi?id=190631
1545         https://trac.webkit.org/changeset/237208
1546
1547 2018-10-16  Alicia Boya García  <aboya@igalia.com>
1548
1549         [Media] Use nanoseconds as MaximumTimeScale
1550         https://bugs.webkit.org/show_bug.cgi?id=190631
1551
1552         1e9 is a much more useful timescale than the previous one 2^31-1.
1553         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1554         common among some formats like WebM and frameworks like GStreamer
1555         where base 10 timescale is common... and it's those big timescales the
1556         ones that are usually scaled up to MaximumTimeScale.
1557
1558         Reviewed by Jer Noble.
1559
1560         * wtf/MediaTime.cpp:
1561
1562 2018-10-15  Keith Miller  <keith_miller@apple.com>
1563
1564         Support arm64 CPUs with a 32-bit address space
1565         https://bugs.webkit.org/show_bug.cgi?id=190273
1566
1567         Reviewed by Michael Saboff.
1568
1569         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
1570
1571         * wtf/MathExtras.h:
1572         (getLSBSet):
1573         * wtf/Platform.h:
1574
1575 2018-10-15  Timothy Hatcher  <timothy@apple.com>
1576
1577         Add support for prefers-color-scheme media query
1578         https://bugs.webkit.org/show_bug.cgi?id=190499
1579         rdar://problem/45212025
1580
1581         Reviewed by Dean Jackson.
1582
1583         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
1584
1585 2018-10-15  Saam barati  <sbarati@apple.com>
1586
1587         Emit fjcvtzs on ARM64E on Darwin
1588         https://bugs.webkit.org/show_bug.cgi?id=184023
1589
1590         Reviewed by Yusuke Suzuki and Filip Pizlo.
1591
1592         * wtf/Platform.h:
1593
1594 2018-10-15  Alex Christensen  <achristensen@webkit.org>
1595
1596         Use pragma once in WTF
1597         https://bugs.webkit.org/show_bug.cgi?id=190527
1598
1599         Reviewed by Chris Dumez.
1600
1601         We also need to consistently include wtf headers from within wtf so we can build wtf without
1602         symbol redefinition errors from including the copy in Source and the copy in the build directory.
1603
1604         * wtf/ASCIICType.h:
1605         * wtf/Assertions.cpp:
1606         * wtf/Assertions.h:
1607         * wtf/Atomics.h:
1608         * wtf/AutomaticThread.cpp:
1609         * wtf/AutomaticThread.h:
1610         * wtf/BackwardsGraph.h:
1611         * wtf/Bag.h:
1612         * wtf/BagToHashMap.h:
1613         * wtf/BitVector.cpp:
1614         * wtf/BitVector.h:
1615         * wtf/Bitmap.h:
1616         * wtf/BloomFilter.h:
1617         * wtf/Box.h:
1618         * wtf/BubbleSort.h:
1619         * wtf/BumpPointerAllocator.h:
1620         * wtf/ByteOrder.h:
1621         * wtf/CPUTime.cpp:
1622         * wtf/CallbackAggregator.h:
1623         * wtf/CheckedArithmetic.h:
1624         * wtf/CheckedBoolean.h:
1625         * wtf/ClockType.cpp:
1626         * wtf/ClockType.h:
1627         * wtf/CommaPrinter.h:
1628         * wtf/CompilationThread.cpp:
1629         * wtf/CompilationThread.h:
1630         * wtf/Compiler.h:
1631         * wtf/ConcurrentPtrHashSet.cpp:
1632         * wtf/ConcurrentVector.h:
1633         * wtf/Condition.h:
1634         * wtf/CountingLock.cpp:
1635         * wtf/CrossThreadTaskHandler.cpp:
1636         * wtf/CryptographicUtilities.cpp:
1637         * wtf/CryptographicUtilities.h:
1638         * wtf/CryptographicallyRandomNumber.cpp:
1639         * wtf/CryptographicallyRandomNumber.h:
1640         * wtf/CurrentTime.cpp:
1641         * wtf/DataLog.cpp:
1642         * wtf/DataLog.h:
1643         * wtf/DateMath.cpp:
1644         * wtf/DateMath.h:
1645         * wtf/DecimalNumber.cpp:
1646         * wtf/DecimalNumber.h:
1647         * wtf/Deque.h:
1648         * wtf/DisallowCType.h:
1649         * wtf/Dominators.h:
1650         * wtf/DoublyLinkedList.h:
1651         * wtf/FastBitVector.cpp:
1652         * wtf/FastMalloc.cpp:
1653         * wtf/FastMalloc.h:
1654         * wtf/FeatureDefines.h:
1655         * wtf/FilePrintStream.cpp:
1656         * wtf/FilePrintStream.h:
1657         * wtf/FlipBytes.h:
1658         * wtf/FunctionDispatcher.cpp:
1659         * wtf/FunctionDispatcher.h:
1660         * wtf/GetPtr.h:
1661         * wtf/Gigacage.cpp:
1662         * wtf/GlobalVersion.cpp:
1663         * wtf/GraphNodeWorklist.h:
1664         * wtf/GregorianDateTime.cpp:
1665         * wtf/GregorianDateTime.h:
1666         * wtf/HashFunctions.h:
1667         * wtf/HashMap.h:
1668         * wtf/HashMethod.h:
1669         * wtf/HashSet.h:
1670         * wtf/HashTable.cpp:
1671         * wtf/HashTraits.h:
1672         * wtf/Indenter.h:
1673         * wtf/IndexSparseSet.h:
1674         * wtf/InlineASM.h:
1675         * wtf/Insertion.h:
1676         * wtf/IteratorAdaptors.h:
1677         * wtf/IteratorRange.h:
1678         * wtf/JSONValues.cpp:
1679         * wtf/JSValueMalloc.cpp:
1680         * wtf/LEBDecoder.h:
1681         * wtf/Language.cpp:
1682         * wtf/ListDump.h:
1683         * wtf/Lock.cpp:
1684         * wtf/Lock.h:
1685         * wtf/LockAlgorithm.h:
1686         * wtf/LockedPrintStream.cpp:
1687         * wtf/Locker.h:
1688         * wtf/MD5.cpp:
1689         * wtf/MD5.h:
1690         * wtf/MainThread.cpp:
1691         * wtf/MainThread.h:
1692         * wtf/MallocPtr.h:
1693         * wtf/MathExtras.h:
1694         * wtf/MediaTime.cpp:
1695         * wtf/MediaTime.h:
1696         * wtf/MemoryPressureHandler.cpp:
1697         * wtf/MessageQueue.h:
1698         * wtf/MetaAllocator.cpp:
1699         * wtf/MetaAllocator.h:
1700         * wtf/MetaAllocatorHandle.h:
1701         * wtf/MonotonicTime.cpp:
1702         * wtf/MonotonicTime.h:
1703         * wtf/NakedPtr.h:
1704         * wtf/NoLock.h:
1705         * wtf/NoTailCalls.h:
1706         * wtf/Noncopyable.h:
1707         * wtf/NumberOfCores.cpp:
1708         * wtf/NumberOfCores.h:
1709         * wtf/OSAllocator.h:
1710         * wtf/OSAllocatorPosix.cpp:
1711         * wtf/OSRandomSource.cpp:
1712         * wtf/OSRandomSource.h:
1713         * wtf/ObjcRuntimeExtras.h:
1714         * wtf/OrderMaker.h:
1715         * wtf/PackedIntVector.h:
1716         * wtf/PageAllocation.h:
1717         * wtf/PageBlock.cpp:
1718         * wtf/PageBlock.h:
1719         * wtf/PageReservation.h:
1720         * wtf/ParallelHelperPool.cpp:
1721         * wtf/ParallelHelperPool.h:
1722         * wtf/ParallelJobs.h:
1723         * wtf/ParallelJobsLibdispatch.h:
1724         * wtf/ParallelVectorIterator.h:
1725         * wtf/ParkingLot.cpp:
1726         * wtf/ParkingLot.h:
1727         * wtf/Platform.h:
1728         * wtf/PointerComparison.h:
1729         * wtf/Poisoned.cpp:
1730         * wtf/PrintStream.cpp:
1731         * wtf/PrintStream.h:
1732         * wtf/ProcessID.h:
1733         * wtf/ProcessPrivilege.cpp:
1734         * wtf/RAMSize.cpp:
1735         * wtf/RAMSize.h:
1736         * wtf/RandomDevice.cpp:
1737         * wtf/RandomNumber.cpp:
1738         * wtf/RandomNumber.h:
1739         * wtf/RandomNumberSeed.h:
1740         * wtf/RangeSet.h:
1741         * wtf/RawPointer.h:
1742         * wtf/ReadWriteLock.cpp:
1743         * wtf/RedBlackTree.h:
1744         * wtf/Ref.h:
1745         * wtf/RefCountedArray.h:
1746         * wtf/RefCountedLeakCounter.cpp:
1747         * wtf/RefCountedLeakCounter.h:
1748         * wtf/RefCounter.h:
1749         * wtf/RefPtr.h:
1750         * wtf/RetainPtr.h:
1751         * wtf/RunLoop.cpp:
1752         * wtf/RunLoop.h:
1753         * wtf/RunLoopTimer.h:
1754         * wtf/RunLoopTimerCF.cpp:
1755         * wtf/SHA1.cpp:
1756         * wtf/SHA1.h:
1757         * wtf/SaturatedArithmetic.h:
1758         (saturatedSubtraction):
1759         * wtf/SchedulePair.h:
1760         * wtf/SchedulePairCF.cpp:
1761         * wtf/SchedulePairMac.mm:
1762         * wtf/ScopedLambda.h:
1763         * wtf/Seconds.cpp:
1764         * wtf/Seconds.h:
1765         * wtf/SegmentedVector.h:
1766         * wtf/SentinelLinkedList.h:
1767         * wtf/SharedTask.h:
1768         * wtf/SimpleStats.h:
1769         * wtf/SingleRootGraph.h:
1770         * wtf/SinglyLinkedList.h:
1771         * wtf/SixCharacterHash.cpp:
1772         * wtf/SixCharacterHash.h:
1773         * wtf/SmallPtrSet.h:
1774         * wtf/Spectrum.h:
1775         * wtf/StackBounds.cpp:
1776         * wtf/StackBounds.h:
1777         * wtf/StackStats.cpp:
1778         * wtf/StackStats.h:
1779         * wtf/StackTrace.cpp:
1780         * wtf/StdLibExtras.h:
1781         * wtf/StreamBuffer.h:
1782         * wtf/StringHashDumpContext.h:
1783         * wtf/StringPrintStream.cpp:
1784         * wtf/StringPrintStream.h:
1785         * wtf/ThreadGroup.cpp:
1786         * wtf/ThreadMessage.cpp:
1787         * wtf/ThreadSpecific.h:
1788         * wtf/Threading.cpp:
1789         * wtf/Threading.h:
1790         * wtf/ThreadingPrimitives.h:
1791         * wtf/ThreadingPthreads.cpp:
1792         * wtf/TimeWithDynamicClockType.cpp:
1793         * wtf/TimeWithDynamicClockType.h:
1794         * wtf/TimingScope.cpp:
1795         * wtf/TinyLRUCache.h:
1796         * wtf/TinyPtrSet.h:
1797         * wtf/TriState.h:
1798         * wtf/TypeCasts.h:
1799         * wtf/UUID.cpp:
1800         * wtf/UnionFind.h:
1801         * wtf/VMTags.h:
1802         * wtf/ValueCheck.h:
1803         * wtf/Vector.h:
1804         * wtf/VectorTraits.h:
1805         * wtf/WallTime.cpp:
1806         * wtf/WallTime.h:
1807         * wtf/WeakPtr.h:
1808         * wtf/WeakRandom.h:
1809         * wtf/WordLock.cpp:
1810         * wtf/WordLock.h:
1811         * wtf/WorkQueue.cpp:
1812         * wtf/WorkQueue.h:
1813         * wtf/WorkerPool.cpp:
1814         * wtf/cf/LanguageCF.cpp:
1815         * wtf/cf/RunLoopCF.cpp:
1816         * wtf/cocoa/Entitlements.mm:
1817         * wtf/cocoa/MachSendRight.cpp:
1818         * wtf/cocoa/MainThreadCocoa.mm:
1819         * wtf/cocoa/MemoryFootprintCocoa.cpp:
1820         * wtf/cocoa/WorkQueueCocoa.cpp:
1821         * wtf/dtoa.cpp:
1822         * wtf/dtoa.h:
1823         * wtf/ios/WebCoreThread.cpp:
1824         * wtf/ios/WebCoreThread.h:
1825         * wtf/mac/AppKitCompatibilityDeclarations.h:
1826         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
1827         * wtf/mbmalloc.cpp:
1828         * wtf/persistence/PersistentCoders.cpp:
1829         * wtf/persistence/PersistentDecoder.cpp:
1830         * wtf/persistence/PersistentEncoder.cpp:
1831         * wtf/spi/cf/CFBundleSPI.h:
1832         * wtf/spi/darwin/CommonCryptoSPI.h:
1833         * wtf/text/ASCIIFastPath.h:
1834         * wtf/text/ASCIILiteral.cpp:
1835         * wtf/text/AtomicString.cpp:
1836         * wtf/text/AtomicString.h:
1837         * wtf/text/AtomicStringHash.h:
1838         * wtf/text/AtomicStringImpl.cpp:
1839         * wtf/text/AtomicStringImpl.h:
1840         * wtf/text/AtomicStringTable.cpp:
1841         * wtf/text/AtomicStringTable.h:
1842         * wtf/text/Base64.cpp:
1843         * wtf/text/CString.cpp:
1844         * wtf/text/CString.h:
1845         * wtf/text/ConversionMode.h:
1846         * wtf/text/ExternalStringImpl.cpp:
1847         * wtf/text/IntegerToStringConversion.h:
1848         * wtf/text/LChar.h:
1849         * wtf/text/LineEnding.cpp:
1850         * wtf/text/StringBuffer.h:
1851         * wtf/text/StringBuilder.cpp:
1852         * wtf/text/StringBuilder.h:
1853         * wtf/text/StringBuilderJSON.cpp:
1854         * wtf/text/StringCommon.h:
1855         * wtf/text/StringConcatenate.h:
1856         * wtf/text/StringHash.h:
1857         * wtf/text/StringImpl.cpp:
1858         * wtf/text/StringImpl.h:
1859         * wtf/text/StringOperators.h:
1860         * wtf/text/StringView.cpp:
1861         * wtf/text/StringView.h:
1862         * wtf/text/SymbolImpl.cpp:
1863         * wtf/text/SymbolRegistry.cpp:
1864         * wtf/text/SymbolRegistry.h:
1865         * wtf/text/TextBreakIterator.cpp:
1866         * wtf/text/TextBreakIterator.h:
1867         * wtf/text/TextBreakIteratorInternalICU.h:
1868         * wtf/text/TextPosition.h:
1869         * wtf/text/TextStream.cpp:
1870         * wtf/text/UniquedStringImpl.h:
1871         * wtf/text/WTFString.cpp:
1872         * wtf/text/WTFString.h:
1873         * wtf/text/cocoa/StringCocoa.mm:
1874         * wtf/text/cocoa/StringViewCocoa.mm:
1875         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
1876         * wtf/text/icu/UTextProvider.cpp:
1877         * wtf/text/icu/UTextProvider.h:
1878         * wtf/text/icu/UTextProviderLatin1.cpp:
1879         * wtf/text/icu/UTextProviderLatin1.h:
1880         * wtf/text/icu/UTextProviderUTF16.cpp:
1881         * wtf/text/icu/UTextProviderUTF16.h:
1882         * wtf/threads/BinarySemaphore.cpp:
1883         * wtf/threads/BinarySemaphore.h:
1884         * wtf/threads/Signals.cpp:
1885         * wtf/unicode/CharacterNames.h:
1886         * wtf/unicode/Collator.h:
1887         * wtf/unicode/CollatorDefault.cpp:
1888         * wtf/unicode/UTF8.cpp:
1889         * wtf/unicode/UTF8.h:
1890
1891 2018-10-12  Alex Christensen  <achristensen@webkit.org>
1892
1893         Allow encoding of small enum classes
1894         https://bugs.webkit.org/show_bug.cgi?id=190531
1895
1896         Reviewed by Tim Horton.
1897
1898         * wtf/Forward.h:
1899
1900 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
1901
1902         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
1903         https://bugs.webkit.org/show_bug.cgi?id=190477
1904
1905         Reviewed by Tim Horton.
1906
1907         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
1908         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
1909         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
1910         because of dependencies in other source repositories.
1911
1912         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
1913         instances that actually target iOS only, having a version check.
1914
1915 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1916
1917         Use currentStackPointer more
1918         https://bugs.webkit.org/show_bug.cgi?id=190503
1919
1920         Reviewed by Saam Barati.
1921
1922         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
1923
1924         * wtf/StackBounds.cpp:
1925         (WTF::testStackDirection2):
1926         (WTF::testStackDirection):
1927         * wtf/ThreadingPthreads.cpp:
1928         (WTF::Thread::signalHandlerSuspendResume):
1929         (WTF::getApproximateStackPointer): Deleted.
1930
1931 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
1932
1933         [WTF] Semaphore.h conflicts with POSIX header
1934         https://bugs.webkit.org/show_bug.cgi?id=190486
1935
1936         Reviewed by Yusuke Suzuki.
1937
1938         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
1939
1940         * WTF.xcodeproj/project.pbxproj:
1941         * wtf/CMakeLists.txt:
1942         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
1943
1944 2018-10-10  Mark Lam  <mark.lam@apple.com>
1945
1946         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
1947         https://bugs.webkit.org/show_bug.cgi?id=190405
1948         <rdar://problem/45131464>
1949
1950         Reviewed by Michael Saboff.
1951
1952         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
1953
1954         * WTF.xcodeproj/project.pbxproj:
1955         * wtf/CMakeLists.txt:
1956         * wtf/StackBounds.h:
1957         (WTF::StackBounds::checkConsistency const):
1958         * wtf/StackPointer.cpp: Added.
1959         (WTF::currentStackPointer):
1960         * wtf/StackPointer.h: Added.
1961
1962 2018-10-09  Mark Lam  <mark.lam@apple.com>
1963
1964         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
1965         https://bugs.webkit.org/show_bug.cgi?id=190392
1966         <rdar://problem/45116210>
1967
1968         Reviewed by Saam Barati.
1969
1970         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
1971         unsigned length of the source string without an overflow check.  We now make that
1972         length a size_t which removes this issue, and assert that it's within
1973         String::MaxLength thereafter.
1974
1975         Also made the StringTypeAdapter constructor for a LChar* string behave in an
1976         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
1977         if the source string length exceeds String::MaxLength.
1978
1979         * wtf/text/StringConcatenate.h:
1980
1981 2018-10-09  Mark Lam  <mark.lam@apple.com>
1982
1983         Revert temporary asserts for debugging a mysterious ASAN bot crash.
1984         https://bugs.webkit.org/show_bug.cgi?id=190396
1985
1986         Reviewed by Yusuke Suzuki.
1987
1988         * wtf/StackBounds.cpp:
1989         (WTF::StackBounds::newThreadStackBounds):
1990         * wtf/StackBounds.h:
1991         (WTF::StackBounds::checkConsistency const):
1992
1993 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
1994
1995         Make <input type=color> a runtime enabled (on-by-default) feature
1996         https://bugs.webkit.org/show_bug.cgi?id=189162
1997
1998         Reviewed by Wenson Hsieh and Tim Horton.
1999
2000         * wtf/FeatureDefines.h:
2001
2002 2018-10-06  Mark Lam  <mark.lam@apple.com>
2003
2004         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
2005         https://bugs.webkit.org/show_bug.cgi?id=190334
2006         <rdar://problem/45071303>
2007
2008         Reviewed by Yusuke Suzuki.
2009
2010         These assertions are needed because we can't reproduce the issue locally.
2011         We'll remove these asserts after the needed data has been collected from the bot.
2012
2013         * wtf/StackBounds.cpp:
2014         (WTF::StackBounds::newThreadStackBounds):
2015         * wtf/StackBounds.h:
2016         (WTF::StackBounds::checkConsistency const):
2017
2018 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2019
2020         Name Heap threads
2021         https://bugs.webkit.org/show_bug.cgi?id=190337
2022
2023         Reviewed by Mark Lam.
2024
2025         Add a functionality naming threads of ParallelHelperPool.
2026
2027         * wtf/ParallelHelperPool.cpp:
2028         (WTF::ParallelHelperPool::ParallelHelperPool):
2029         * wtf/ParallelHelperPool.h:
2030
2031 2018-10-06  Mark Lam  <mark.lam@apple.com>
2032
2033         Adding some temporary asserts to debug a mysterious ASAN bot crash.
2034         https://bugs.webkit.org/show_bug.cgi?id=190331
2035
2036         Reviewed by Filip Pizlo.
2037
2038         These assertions are needed because we can't reproduce the issue locally.
2039         We'll remove these asserts after the needed data has been collected from the bot.
2040
2041         * wtf/StackBounds.h:
2042         (WTF::StackBounds::checkConsistency const):
2043
2044 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2045
2046         [JSC][Linux] Support Perf JITDump logging
2047         https://bugs.webkit.org/show_bug.cgi?id=189893
2048
2049         Reviewed by Mark Lam.
2050
2051         * wtf/PageReservation.h:
2052         (WTF::PageReservation::reserveAndCommitWithGuardPages):
2053
2054 2018-10-03  Dan Bernstein  <mitz@apple.com>
2055
2056         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
2057         https://bugs.webkit.org/show_bug.cgi?id=190250
2058
2059         Reviewed by Alex Christensen.
2060
2061         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
2062           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
2063
2064         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
2065
2066         * wtf/MathExtras.h:
2067         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
2068           expressions into individual statements.
2069
2070 2018-10-03  Mark Lam  <mark.lam@apple.com>
2071
2072         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
2073         https://bugs.webkit.org/show_bug.cgi?id=190187
2074         <rdar://problem/42512909>
2075
2076         Reviewed by Michael Saboff.
2077
2078         * wtf/text/StringConcatenate.h:
2079         (WTF::tryMakeStringFromAdapters):
2080         (WTF::sumWithOverflow): Deleted.
2081         * wtf/text/StringImpl.h:
2082         * wtf/text/WTFString.h:
2083
2084 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
2085
2086         -Wunused-variable in RenderLayer::updateScrollableAreaSet
2087         https://bugs.webkit.org/show_bug.cgi?id=190200
2088
2089         Reviewed by Yusuke Suzuki.
2090
2091         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
2092
2093         * wtf/Compiler.h:
2094
2095 2018-10-01  Dean Jackson  <dino@apple.com>
2096
2097         [macOS] Switching to discrete GPU should be done in the UI process
2098         https://bugs.webkit.org/show_bug.cgi?id=189361
2099         <rdar://problem/43949622>
2100
2101         Reviewed by Simon Fraser.
2102
2103         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
2104
2105         * wtf/Platform.h:
2106
2107 2018-10-02  Commit Queue  <commit-queue@webkit.org>
2108
2109         Unreviewed, rolling out r236624 and r236671.
2110         https://bugs.webkit.org/show_bug.cgi?id=190207
2111
2112         The change in r236624 introduced crashes on the bots
2113         (Requested by ryanhaddad on #webkit).
2114
2115         Reverted changesets:
2116
2117         "Refactoring: eliminate raw pointer usage in Fullscreen code"
2118         https://bugs.webkit.org/show_bug.cgi?id=188747
2119         https://trac.webkit.org/changeset/236624
2120
2121         "Unify implementation in VideoFullscreenInterfaceAVKit"
2122         https://bugs.webkit.org/show_bug.cgi?id=190091
2123         https://trac.webkit.org/changeset/236671
2124
2125 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
2126
2127         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
2128         https://bugs.webkit.org/show_bug.cgi?id=190033
2129
2130         Reviewed by Yusuke Suzuki.
2131
2132         * wtf/MathExtras.h:
2133         (WTF::ctz32):
2134
2135 2018-10-01  Andy Estes  <aestes@apple.com>
2136
2137         [watchOS] Adopt NSURLSessionCompanionProxyPreference
2138         https://bugs.webkit.org/show_bug.cgi?id=190177
2139         <rdar://problem/43402114>
2140
2141         Reviewed by Wenson Hsieh.
2142
2143         * wtf/FeatureDefines.h:
2144
2145 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
2146
2147         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
2148         https://bugs.webkit.org/show_bug.cgi?id=190121
2149
2150         Reviewed by Yusuke Suzuki.
2151
2152         This fixes JSCOnly build on Windows after r236617.
2153
2154         * wtf/PlatformJSCOnly.cmake:
2155
2156 2018-10-01  Commit Queue  <commit-queue@webkit.org>
2157
2158         Unreviewed, rolling out r236647.
2159         https://bugs.webkit.org/show_bug.cgi?id=190124
2160
2161         Breaking test stress/big-int-to-string.js (Requested by
2162         caiolima_ on #webkit).
2163
2164         Reverted changeset:
2165
2166         "[BigInt] BigInt.proptotype.toString is broken when radix is
2167         power of 2"
2168         https://bugs.webkit.org/show_bug.cgi?id=190033
2169         https://trac.webkit.org/changeset/236647
2170
2171 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
2172
2173         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
2174         https://bugs.webkit.org/show_bug.cgi?id=190033
2175
2176         Reviewed by Yusuke Suzuki.
2177
2178         * wtf/MathExtras.h:
2179         (WTF::ctz32):
2180
2181 2018-09-28  Jer Noble  <jer.noble@apple.com>
2182
2183         Refactoring: eliminate raw pointer usage in Fullscreen code
2184         https://bugs.webkit.org/show_bug.cgi?id=188747
2185         <rdar://problem/43541164>
2186
2187         Reviewed by Alex Christensen.
2188
2189         * WTF.xcodeproj/project.pbxproj:
2190         * wtf/WeakPtrContainer.h: Added.
2191
2192 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2193
2194         [WTF] Make isMainThread more reliable
2195         https://bugs.webkit.org/show_bug.cgi?id=189880
2196
2197         Reviewed by Mark Lam.
2198
2199         isMainThread() relied on Thread::current(). This API becomes broken in Windows
2200         when the Thread is about to be destroyed since TLS is already cleared. This causes
2201         a bug since `isMainThread()` is called in Thread::didExit in Windows.
2202
2203         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
2204         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
2205         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
2206         or `pthread_self` instead.
2207
2208         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
2209         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
2210         only happens in Windows since Windows calls TLS destructor for the main thread.
2211
2212         * WTF.xcodeproj/project.pbxproj:
2213         * wtf/MainThread.cpp:
2214         (WTF::initializeMainThread):
2215         (): Deleted.
2216         (WTF::isMainThread): Deleted.
2217         (WTF::isMainThreadIfInitialized): Deleted.
2218         * wtf/Platform.h:
2219         * wtf/PlatformMac.cmake:
2220         * wtf/Threading.cpp:
2221         (WTF::Thread::didExit):
2222         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
2223         * wtf/generic/MainThreadGeneric.cpp:
2224         (WTF::initializeMainThreadPlatform):
2225         (WTF::isMainThread):
2226         (WTF::isMainThreadIfInitialized):
2227         * wtf/win/MainThreadWin.cpp:
2228         (WTF::initializeMainThreadPlatform):
2229         (WTF::isMainThread):
2230         (WTF::isMainThreadIfInitialized):
2231
2232 2018-09-28  Commit Queue  <commit-queue@webkit.org>
2233
2234         Unreviewed, rolling out r236605.
2235         https://bugs.webkit.org/show_bug.cgi?id=190087
2236
2237         caused three API test timeouts (Requested by jernoble on
2238         #webkit).
2239
2240         Reverted changeset:
2241
2242         "Refactoring: eliminate raw pointer usage in Fullscreen code"
2243         https://bugs.webkit.org/show_bug.cgi?id=188747
2244         https://trac.webkit.org/changeset/236605
2245
2246 2018-09-28  Brian Burg  <bburg@apple.com>
2247
2248         Replace recently added line comments in Compiler.h
2249         https://bugs.webkit.org/show_bug.cgi?id=190062
2250         <rdar://problem/44838618>
2251
2252         Reviewed by Joseph Pecoraro.
2253
2254         This breaks some Apple-internal tooling. For now, work around it by
2255         changing the comment style. On the other side, the issue will be fixed
2256         more permanently by adopting the approach from r230213.
2257
2258         * wtf/Compiler.h: Use multiline comments.
2259
2260 2018-09-28  Jer Noble  <jer.noble@apple.com>
2261
2262         Refactoring: eliminate raw pointer usage in Fullscreen code
2263         https://bugs.webkit.org/show_bug.cgi?id=188747
2264         <rdar://problem/43541164>
2265
2266         Reviewed by Alex Christensen.
2267
2268         * WTF.xcodeproj/project.pbxproj:
2269         * wtf/WeakPtrContainer.h: Added.
2270
2271 2018-09-28  Koby Boyango  <koby.b@mce.systems>
2272
2273         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
2274         https://bugs.webkit.org/show_bug.cgi?id=189991
2275
2276         Reviewed by Yusuke Suzuki.
2277
2278         * WTF.xcodeproj/project.pbxproj:
2279         * wtf/CMakeLists.txt:
2280         * wtf/text/ExternalStringImpl.cpp: Added.
2281         * wtf/text/ExternalStringImpl.h: Added.
2282         * wtf/text/StringImpl.cpp:
2283         * wtf/text/StringImpl.h:
2284
2285 2018-09-27  Saam barati  <sbarati@apple.com>
2286
2287         Verify the contents of AssemblerBuffer on arm64e
2288         https://bugs.webkit.org/show_bug.cgi?id=190057
2289         <rdar://problem/38916630>
2290
2291         Reviewed by Mark Lam.
2292
2293         * wtf/PtrTag.h:
2294         (WTF::tagInt):
2295
2296 2018-09-27  Jer Noble  <jer.noble@apple.com>
2297
2298         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
2299         https://bugs.webkit.org/show_bug.cgi?id=189951
2300
2301         Reviewed by Eric Carlson.
2302
2303         Templated functions should take r-value references, as they have perfect type deduction for
2304         all parameter types; references, l-value references, and r-value references in template function
2305         parameters have special type deduction semantics.
2306         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
2307
2308         Previously, const reference parameters would be copied when passed into anyOf(), and containers
2309         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
2310         with r-value reference types in template parameters, a const reference is mapped to a const reference,
2311         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
2312         an r-value reference.
2313
2314         * wtf/Algorithms.h:
2315         (WTF::forEach):
2316         (WTF::anyOf):
2317         (WTF::allOf):
2318
2319 2018-09-25  John Wilander  <wilander@apple.com>
2320
2321         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
2322         https://bugs.webkit.org/show_bug.cgi?id=189959
2323         <rdar://problem/44767642>
2324
2325         Reviewed by Chris Dumez.
2326
2327         * wtf/Platform.h:
2328             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
2329
2330 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
2331
2332         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
2333         https://bugs.webkit.org/show_bug.cgi?id=189733
2334
2335         Reviewed by Michael Catanzaro.
2336
2337         Clang for Windows build enables WTF_COMPILER_CLANG and
2338         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
2339         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
2340         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
2341         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
2342         least at the moment, it is not feasible to define
2343         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
2344
2345         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
2346         to WTF_COMPILER_GCC_COMPATIBLE.
2347
2348         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
2349         Clang for Windows builds.
2350
2351         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
2352         * wtf/Assertions.h: Ditto.
2353         * wtf/Atomics.h: Ditto.
2354         * wtf/CheckedArithmetic.h: Ditto.
2355         * wtf/FastMalloc.h: Ditto.
2356         * wtf/MathExtras.h: Ditto.
2357         * wtf/Platform.h: Ditto.
2358         * wtf/StdLibExtras.h: Ditto.
2359         * wtf/Vector.h: Ditto.
2360         * wtf/text/ASCIIFastPath.h: Ditto.
2361         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
2362
2363 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2364
2365         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
2366         https://bugs.webkit.org/show_bug.cgi?id=189778
2367
2368         Reviewed by Keith Miller.
2369
2370         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
2371         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
2372         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
2373
2374         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
2375         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
2376         information which is used for LLInt and SamplingProfiler.
2377
2378         * wtf/Platform.h:
2379
2380 2018-09-21  Keith Miller  <keith_miller@apple.com>
2381
2382         Add Promise SPI
2383         https://bugs.webkit.org/show_bug.cgi?id=189809
2384
2385         Reviewed by Saam Barati.
2386
2387         Fix issue where creating a JSContextRef off the main thread before
2388         creating initializing the main thread would cause an assertion
2389         failure.
2390
2391         * wtf/MainThread.cpp:
2392         (WTF::isMainThreadIfInitialized):
2393         * wtf/MainThread.h:
2394         * wtf/mac/MainThreadMac.mm:
2395         (WTF::isMainThreadIfInitialized):
2396         * wtf/text/cf/StringImplCF.cpp:
2397         (WTF::StringImpl::createCFString):
2398
2399 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
2400
2401         Unreviewed, rolling out r236359.
2402
2403         Broke the Windows build.
2404
2405         Reverted changeset:
2406
2407         "Add Promise SPI"
2408         https://bugs.webkit.org/show_bug.cgi?id=189809
2409         https://trac.webkit.org/changeset/236359
2410
2411 2018-09-21  Keith Miller  <keith_miller@apple.com>
2412
2413         Add Promise SPI
2414         https://bugs.webkit.org/show_bug.cgi?id=189809
2415
2416         Reviewed by Saam Barati.
2417
2418         Fix issue where creating a JSContextRef off the main thread before
2419         creating initializing the main thread would cause an assertion
2420         failure.
2421
2422         * wtf/MainThread.cpp:
2423         (WTF::isMainThreadIfInitialized):
2424         * wtf/MainThread.h:
2425         * wtf/mac/MainThreadMac.mm:
2426         (WTF::isMainThreadIfInitialized):
2427         * wtf/text/cf/StringImplCF.cpp:
2428         (WTF::StringImpl::createCFString):
2429
2430 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
2431
2432         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
2433         https://bugs.webkit.org/show_bug.cgi?id=189732
2434
2435         Reviewed by Per Arne Vollan.
2436
2437         Clang for Windows can't compile the MSVC workaround of
2438         UNUSED_PARAM which has been introduced for Windows CE and Visual
2439         Studio 10. I think it's safe just to remove it.
2440
2441         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
2442
2443 2018-09-20  Alex Christensen  <achristensen@webkit.org>
2444
2445         Unreviewed, rolling out r235976.
2446
2447         Broke ARM
2448
2449         Reverted changeset:
2450
2451         "Use a Variant instead of a union in CSSSelector"
2452         https://bugs.webkit.org/show_bug.cgi?id=188559
2453         https://trac.webkit.org/changeset/235976
2454
2455 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
2456
2457         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
2458         https://bugs.webkit.org/show_bug.cgi?id=185339
2459
2460         Reviewed by Mark Lam.
2461
2462         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
2463
2464         * WTF.xcodeproj/project.pbxproj:
2465         * wtf/CMakeLists.txt:
2466         * wtf/Semaphore.h: Added.
2467         (WTF::Semaphore::Semaphore):
2468         (WTF::Semaphore::signal):
2469         (WTF::Semaphore::waitUntil):
2470         (WTF::Semaphore::waitFor):
2471         (WTF::Semaphore::wait):
2472         * wtf/generic/WorkQueueGeneric.cpp:
2473         (WorkQueue::platformInitialize):
2474         * wtf/threads/BinarySemaphore.cpp:
2475         (WTF::BinarySemaphore::waitUntil):
2476         (WTF::BinarySemaphore::wait): Deleted.
2477         * wtf/threads/BinarySemaphore.h:
2478         (WTF::BinarySemaphore::waitFor):
2479         (WTF::BinarySemaphore::wait):
2480         Align the names of the functions to WTF::Condition.
2481         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
2482
2483 2018-09-17  Jer Noble  <jer.noble@apple.com>
2484
2485         Add support for HEVC codec types in Media Capabilities
2486         https://bugs.webkit.org/show_bug.cgi?id=189565
2487
2488         Reviewed by Eric Carlson.
2489
2490         Extract the toIntegralType template into its own header.
2491
2492         * wtf/CMakeLists.txt:
2493         * wtf/text/StringConversion.h: Added.
2494         (isCharacterAllowedInBase):
2495         (toIntegralType):
2496         * wtf/text/WTFString.cpp:
2497
2498 2018-09-17  Jer Noble  <jer.noble@apple.com>
2499
2500         Enable USE_MEDIAREMOTE on iOS
2501         https://bugs.webkit.org/show_bug.cgi?id=189096
2502
2503         Reviewed by Eric Carlson.
2504
2505         * wtf/Platform.h:
2506
2507 2018-09-17  Frederic Wang  <fwang@igalia.com>
2508
2509         Build error in ImageBufferCG when compiled with IOSurfacePool
2510         https://bugs.webkit.org/show_bug.cgi?id=189579
2511
2512         Reviewed by Tim Horton.
2513
2514         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
2515         compilation errors when files in the same unified source do not agree on the definition.
2516         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
2517         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
2518         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
2519         to prevent future issues with Unified build rotating.
2520
2521         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
2522
2523 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
2524
2525         Unreviewed, rolling out r235990.
2526
2527         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
2528
2529         Reverted changeset:
2530
2531         "Enable USE_MEDIAREMOTE on iOS"
2532         https://bugs.webkit.org/show_bug.cgi?id=189096
2533         https://trac.webkit.org/changeset/235990
2534
2535 2018-09-13  Jer Noble  <jer.noble@apple.com>
2536
2537         Enable USE_MEDIAREMOTE on iOS
2538         https://bugs.webkit.org/show_bug.cgi?id=189096
2539
2540         Reviewed by Eric Carlson.
2541
2542         * wtf/Platform.h:
2543
2544 2018-09-13  Alex Christensen  <achristensen@webkit.org>
2545
2546         Use a Variant instead of a union in CSSSelector
2547         https://bugs.webkit.org/show_bug.cgi?id=188559
2548
2549         Reviewed by Antti Koivisto.
2550
2551         * wtf/Variant.h:
2552         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
2553
2554 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
2555
2556         Add IGNORE_WARNING_.* macros
2557         https://bugs.webkit.org/show_bug.cgi?id=188996
2558
2559         Reviewed by Michael Catanzaro.
2560
2561         * wtf/Assertions.cpp:
2562         * wtf/Assertions.h:
2563         * wtf/Compiler.h:
2564         * wtf/MD5.cpp:
2565         (WTF::MD5::MD5):
2566         (WTF::MD5::addBytes):
2567         (WTF::MD5::checksum):
2568         * wtf/PrintStream.cpp:
2569         (WTF::PrintStream::printfVariableFormat):
2570         * wtf/SHA1.cpp:
2571         (WTF::SHA1::SHA1):
2572         (WTF::SHA1::addBytes):
2573         (WTF::SHA1::computeHash):
2574         * wtf/ThreadingPthreads.cpp:
2575         * wtf/Vector.h:
2576         (WTF::VectorBuffer::endOfBuffer):
2577         * wtf/text/WTFString.cpp:
2578         (WTF::createWithFormatAndArguments):
2579
2580 == Rolled over to ChangeLog-2018-09-11 ==