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