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