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