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