Open source arm64e code.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-03-20  Mark Lam  <mark.lam@apple.com>
2
3         Open source arm64e code.
4         https://bugs.webkit.org/show_bug.cgi?id=196012
5         <rdar://problem/49066237>
6
7         Reviewed by Keith Miller.
8
9         * WTF.xcodeproj/project.pbxproj:
10         * wtf/BlockPtr.h:
11         * wtf/Platform.h:
12         * wtf/PlatformRegisters.cpp: Added.
13         (WTF::threadStateLRInternal):
14         (WTF::threadStatePCInternal):
15         * wtf/PlatformRegisters.h:
16         * wtf/PointerPreparations.h:
17         * wtf/PtrTag.cpp: Added.
18         (WTF::tagForPtr):
19         (WTF::ptrTagName):
20         (WTF::registerPtrTagLookup):
21         (WTF::reportBadTag):
22         * wtf/PtrTag.h:
23         (WTF::removeCodePtrTag):
24         (WTF::tagCodePtrImpl):
25         (WTF::tagCodePtr):
26         (WTF::untagCodePtrImplHelper):
27         (WTF::untagCodePtrImpl):
28         (WTF::untagCodePtr):
29         (WTF::retagCodePtrImplHelper):
30         (WTF::retagCodePtrImpl):
31         (WTF::retagCodePtr):
32         (WTF::tagCFunctionPtrImpl):
33         (WTF::tagCFunctionPtr):
34         (WTF::untagCFunctionPtrImpl):
35         (WTF::untagCFunctionPtr):
36         (WTF::tagInt):
37         (WTF::assertIsCFunctionPtr):
38         (WTF::assertIsNullOrCFunctionPtr):
39         (WTF::assertIsNotTagged):
40         (WTF::assertIsTagged):
41         (WTF::assertIsNullOrTagged):
42         (WTF::isTaggedWith):
43         (WTF::assertIsTaggedWith):
44         (WTF::assertIsNullOrTaggedWith):
45         (WTF::usesPointerTagging):
46         (WTF::registerPtrTagLookup):
47         (WTF::reportBadTag):
48         (WTF::tagForPtr): Deleted.
49
50 2019-03-20  Keith Rollin  <krollin@apple.com>
51
52         Update checks that determine if WebKit is system WebKit
53         https://bugs.webkit.org/show_bug.cgi?id=195756
54
55         Reviewed by Alexey Proskuryakov.
56
57         The system WebKit can be installed in additional locations, so check
58         for and allow those, too.
59
60         * wtf/Platform.h:
61
62 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
63
64         Unreviewed, further attempt to fix clang 3.8 build
65         https://bugs.webkit.org/show_bug.cgi?id=195947
66
67         * wtf/MetaAllocator.cpp:
68         (WTF::MetaAllocator::allocate):
69
70 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
71
72         REGRESSION(r243115) breaks build for clang 3.8
73         https://bugs.webkit.org/show_bug.cgi?id=195947
74
75         Reviewed by Chris Dumez.
76
77         * wtf/text/StringConcatenate.h:
78         (WTF::tryMakeStringFromAdapters):
79
80 2019-03-20  Tim Horton  <timothy_horton@apple.com>
81
82         Add an platform-driven spell-checking mechanism
83         https://bugs.webkit.org/show_bug.cgi?id=195795
84
85         Reviewed by Ryosuke Niwa.
86
87         * wtf/Platform.h:
88         Add an ENABLE flag.
89
90 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
91
92         Build cleanly with GCC 9
93         https://bugs.webkit.org/show_bug.cgi?id=195920
94
95         Reviewed by Chris Dumez.
96
97         WebKit triggers three new GCC 9 warnings:
98
99         """
100         -Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
101         declared copy constructor and assignment operator if one of them is user-provided.
102         """
103
104         Solution is to either add a copy constructor or copy assignment operator, if required, or
105         else remove one if it is redundant.
106
107         """
108         -Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
109         -Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
110         """
111
112         These account for most of this patch. Solution is to just remove the bad WTFMove().
113
114         Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
115         These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
116         would be safer to not use memcpy on nontrivial types, but that's too complex for this
117         patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)
118
119         * wtf/CheckedArithmetic.h:
120         (WTF::Checked::Checked):
121         * wtf/MetaAllocator.cpp:
122         (WTF::MetaAllocator::allocate):
123         * wtf/URLParser.cpp:
124         (WTF::CodePointIterator::operator!= const):
125         (WTF::CodePointIterator::operator=): Deleted.
126         * wtf/text/StringView.h:
127         (WTF::StringView::CodePoints::Iterator::operator=): Deleted.
128
129 2019-03-19  Alex Christensen  <achristensen@webkit.org>
130
131         Make WTFLogChannelState and WTFLogLevel enum classes
132         https://bugs.webkit.org/show_bug.cgi?id=195904
133
134         Reviewed by Eric Carlson.
135
136         * wtf/Assertions.cpp:
137         * wtf/Assertions.h:
138         * wtf/Logger.h:
139         (WTF::Logger::logAlways const):
140         (WTF::Logger::error const):
141         (WTF::Logger::warning const):
142         (WTF::Logger::info const):
143         (WTF::Logger::debug const):
144         (WTF::Logger::willLog const):
145         (WTF::Logger::log):
146         * wtf/MemoryPressureHandler.cpp:
147         * wtf/RefCountedLeakCounter.cpp:
148
149 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
150
151         Unreviewed, rolling out r243132.
152
153         Broke GTK build
154
155         Reverted changeset:
156
157         "Make WTFLogChannelState and WTFLogLevel enum classes"
158         https://bugs.webkit.org/show_bug.cgi?id=195904
159         https://trac.webkit.org/changeset/243132
160
161 2019-03-18  Alex Christensen  <achristensen@webkit.org>
162
163         Make WTFLogChannelState and WTFLogLevel enum classes
164         https://bugs.webkit.org/show_bug.cgi?id=195904
165
166         Reviewed by Eric Carlson.
167
168         * wtf/Assertions.cpp:
169         * wtf/Assertions.h:
170         * wtf/Logger.h:
171         (WTF::Logger::logAlways const):
172         (WTF::Logger::error const):
173         (WTF::Logger::warning const):
174         (WTF::Logger::info const):
175         (WTF::Logger::debug const):
176         (WTF::Logger::willLog const):
177         (WTF::Logger::log):
178         * wtf/MemoryPressureHandler.cpp:
179         * wtf/RefCountedLeakCounter.cpp:
180
181 2019-03-18  Darin Adler  <darin@apple.com>
182
183         Cut down on use of StringBuffer, possibly leading toward removing it entirely
184         https://bugs.webkit.org/show_bug.cgi?id=195870
185
186         Reviewed by Daniel Bates.
187
188         * wtf/URL.cpp: Remove a now-inaccurate comment mentioning StringBuffer.
189
190         * wtf/text/StringView.cpp:
191         (WTF::convertASCIICase): Use createUninitialized instead of StringBuffer.
192
193 2019-03-18  Xan Lopez  <xan@igalia.com>
194
195         [WTF] Remove redundant std::move in StringConcatenate
196         https://bugs.webkit.org/show_bug.cgi?id=195798
197
198         Reviewed by Darin Adler.
199
200         Remove redundant calls to WTFMove in return values for this
201         method. C++ will already do an implicit move here since we are
202         returning a local value where copy/move elision is not applicable.
203
204         * wtf/text/StringConcatenate.h:
205         (WTF::tryMakeStringFromAdapters):
206
207 2019-03-16  Darin Adler  <darin@apple.com>
208
209         Improve normalization code, including moving from unorm.h to unorm2.h
210         https://bugs.webkit.org/show_bug.cgi?id=195330
211
212         Reviewed by Michael Catanzaro.
213
214         * wtf/URLHelpers.cpp: Removed unneeded include of unorm.h since the
215         normalization code is now in StringView.cpp.
216         (WTF::URLHelpers::escapeUnsafeCharacters): Renamed from
217         createStringWithEscapedUnsafeCharacters since it now only creates
218         a new string if one is needed. Use unsigned for string lengths, since
219         that's what WTF::String uses, not size_t. Added a first loop so that
220         we can return the string unmodified if no lookalike characters are
221         found. Removed unnecessary round trip from UTF-16 and then back in
222         the case where the character is not a lookalike.
223         (WTF::URLHelpers::toNormalizationFormC): Deleted. Moved this logic
224         into the WTF::normalizedNFC function in StringView.cpp.
225         (WTF::URLHelpers::userVisibleURL): Call escapeUnsafeCharacters and
226         normalizedNFC. The normalizedNFC function is better in multiple ways,
227         but primarily it handles 8-bit strings and other already-normalized
228         strings much more efficiently.
229
230         * wtf/text/StringView.cpp:
231         (WTF::normalizedNFC): Added. This has two overloads. One is for when
232         we already have a String, and want to re-use it if no normalization
233         is needed, and another is when we only have a StringView, and may need
234         to allocate a String to hold the result. Includes a fast special case
235         for 8-bit and already-normalized strings, and uses the same strategy
236         that JSC::normalize was already using: calls unorm2_normalize twice,
237         first just to determine the length.
238
239         * wtf/text/StringView.h: Added normalizedNFC, which can be called with
240         either a StringView or a String. Also moved StringViewWithUnderlyingString
241         here from JSString.h, here for use as the return value of normalizedNFC;
242         it is used for a similar purpose in the JavaScriptCore rope implementation.
243         Also removed an inaccurate comment.
244
245 2019-03-16  Diego Pino Garcia  <dpino@igalia.com>
246
247         [GTK] [WPE] Fix compilation errors due to undefined ALWAYS_LOG_IF
248         https://bugs.webkit.org/show_bug.cgi?id=195850
249
250         Unreviewed build fix after r243033. 
251
252         * wtf/LoggerHelper.h:
253
254 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
255
256         [iOS] Block the accessibility server when accessibility is not enabled.
257         https://bugs.webkit.org/show_bug.cgi?id=195342
258
259         Reviewed by Brent Fulgham.
260
261         Add SPI to issue a mach extension to a process by pid. Also, add a macro for
262         the availability of this SPI.
263
264         * wtf/Platform.h:
265         * wtf/spi/darwin/SandboxSPI.h:
266
267 2019-03-15  Eric Carlson  <eric.carlson@apple.com>
268
269         Add media stream release logging
270         https://bugs.webkit.org/show_bug.cgi?id=195823
271
272         Reviewed by Youenn Fablet.
273
274         * wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging.
275
276 2019-03-15  Truitt Savell  <tsavell@apple.com>
277
278         Unreviewed, rolling out r243008.
279
280         This revision broke High Sierra builders
281
282         Reverted changeset:
283
284         "[iOS] Block the accessibility server when accessibility is
285         not enabled."
286         https://bugs.webkit.org/show_bug.cgi?id=195342
287         https://trac.webkit.org/changeset/243008
288
289 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
290
291         [iOS] Block the accessibility server when accessibility is not enabled.
292         https://bugs.webkit.org/show_bug.cgi?id=195342
293
294         Reviewed by Brent Fulgham.
295
296         Add SPI to issue a mach extension to a process by pid.
297
298         * wtf/spi/darwin/SandboxSPI.h:
299
300 2019-03-13  Sam Weinig  <sam@webkit.org>
301
302         Add utility function to allow easy reverse range-based iteration of a container
303         https://bugs.webkit.org/show_bug.cgi?id=195542
304
305         Reviewed by Antti Koivisto.
306
307         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
308         works with any container that is compatible with std::rbegin() and std::rend(). It is
309         expected to be used in conjunction with range-based for-loops like so:
310
311         for (auto& value : WTF::makeReversedRange(myContainer)) 
312             ...
313
314         * wtf/IteratorRange.h:
315         (WTF::makeReversedRange):
316
317 2019-03-13  Keith Rollin  <krollin@apple.com>
318
319         Add support for new StagedFrameworks layout
320         https://bugs.webkit.org/show_bug.cgi?id=195543
321
322         Reviewed by Alexey Proskuryakov.
323
324         Opportunistic cleanup: remove unused JAVASCRIPTCORE_FRAMEWORKS_DIR
325         variable.
326
327         * Configurations/Base.xcconfig:
328
329 2019-03-13  Dominik Infuehr  <dinfuehr@igalia.com>
330
331         String overflow when using StringBuilder in JSC::createError
332         https://bugs.webkit.org/show_bug.cgi?id=194957
333
334         Reviewed by Mark Lam.
335
336         When calculating the new capacity of a StringBuilder object,
337         use a limit of MaxLength instead of MaxLength+1.  Allocating
338         a string of size MaxLength+1 always fails. This means that expanding
339         a StringBuilder only worked when the newly doubled capacity is less or
340         equal to MaxLength.
341
342         * wtf/text/StringBuilder.cpp:
343
344 2019-03-13  Chris Dumez  <cdumez@apple.com>
345
346         Better build fix after r242901.
347
348         Reviewed by Jer Noble.
349
350         * wtf/Logger.h:
351         (WTF::LogArgument::toString):
352
353 2019-03-13  Jer Noble  <jer.noble@apple.com>
354
355         Add AggregateLogger, a Logger specialization for singleton classes.
356         https://bugs.webkit.org/show_bug.cgi?id=195644
357
358         Reviewed by Eric Carlson.
359
360         Add a new class, AggregateLogger, which will log messages to each of its aggregated loggers.
361
362         Drive-by fixes: allow "const void*" to be directly logged by converting the pointer to a hex string.
363
364         * WTF.xcodeproj/project.pbxproj:
365         * wtf/AggregateLogger.h: Added.
366         (WTF::AggregateLogger::create):
367         (WTF::AggregateLogger::addLogger):
368         (WTF::AggregateLogger::removeLogger):
369         (WTF::AggregateLogger::logAlways const):
370         (WTF::AggregateLogger::error const):
371         (WTF::AggregateLogger::warning const):
372         (WTF::AggregateLogger::info const):
373         (WTF::AggregateLogger::debug const):
374         (WTF::AggregateLogger::willLog const):
375         (WTF::AggregateLogger::AggregateLogger):
376         (WTF::AggregateLogger::log const):
377         * wtf/CMakeLists.h:
378         * wtf/Logger.cpp:
379         (WTF::>::toString):
380         * wtf/Logger.h:
381
382 2019-03-12  Commit Queue  <commit-queue@webkit.org>
383
384         Unreviewed, rolling out r242747.
385         https://bugs.webkit.org/show_bug.cgi?id=195641
386
387         Performance measurement is difficult in this period, rolling
388         out it and rolling in later to isolate it from the other
389         sensitive patches (Requested by yusukesuzuki on #webkit).
390
391         Reverted changeset:
392
393         "[JSC] Make StaticStringImpl & StaticSymbolImpl actually
394         static"
395         https://bugs.webkit.org/show_bug.cgi?id=194212
396         https://trac.webkit.org/changeset/242747
397
398 2019-03-12  Robin Morisset  <rmorisset@apple.com>
399
400         A lot more classes have padding that can be reduced by reordering their fields
401         https://bugs.webkit.org/show_bug.cgi?id=195579
402
403         Reviewed by Mark Lam.
404
405         * wtf/CrossThreadQueue.h:
406         * wtf/Logger.h:
407         * wtf/MemoryPressureHandler.h:
408         * wtf/MetaAllocator.h:
409         * wtf/Threading.cpp:
410
411 2019-03-11  Alex Christensen  <achristensen@webkit.org>
412
413         WTF::Expected should use std::addressof instead of operator&
414         https://bugs.webkit.org/show_bug.cgi?id=195604
415
416         Reviewed by Myles Maxfield.
417
418         The latter was causing problems with types that do tricky things with constructors and operator&,
419         specifically UniqueRef but I made a reduced test case.  When it used operator&, it would get the contained
420         type and call the constructor that takes a contained type instead of the move constructor.
421
422         * wtf/Expected.h:
423         (std::experimental::fundamentals_v3::__expected_detail::base::base):
424         (std::experimental::fundamentals_v3::expected::swap):
425
426 2019-03-11  Ross Kirsling  <ross.kirsling@sony.com>
427
428         Add Optional to Forward.h.
429         https://bugs.webkit.org/show_bug.cgi?id=195586
430
431         Reviewed by Darin Adler.
432
433         * wtf/Forward.h:
434         Add forward declaration for Optional.
435
436         * wtf/CPUTime.h:
437         * wtf/Expected.h:
438         * wtf/MainThread.h:
439         * wtf/MemoryFootprint.h:
440         * wtf/URLHelpers.cpp:
441         * wtf/URLHelpers.h:
442         * wtf/cocoa/CPUTimeCocoa.cpp:
443         * wtf/fuchsia/CPUTimeFuchsia.cpp:
444         * wtf/unix/CPUTimeUnix.cpp:
445         * wtf/win/CPUTimeWin.cpp:
446         Remove unnecessary includes from headers.
447
448 2019-03-11  Andy Estes  <aestes@apple.com>
449
450         [Apple Pay] Use PKPaymentAuthorizationController to present the Apple Pay UI remotely from the Networking service on iOS
451         https://bugs.webkit.org/show_bug.cgi?id=195530
452         <rdar://problem/48747164>
453
454         Reviewed by Alex Christensen.
455
456         * wtf/FeatureDefines.h: Defined ENABLE_APPLE_PAY_REMOTE_UI.
457
458 2019-03-11  Yusuke Suzuki  <ysuzuki@apple.com>
459
460         [JSC] Make StaticStringImpl & StaticSymbolImpl actually static
461         https://bugs.webkit.org/show_bug.cgi?id=194212
462
463         Reviewed by Mark Lam.
464
465         Avoid mutation onto refcounts if `isStatic()` returns true so that the content of StaticStringImpl never gets modified.
466
467         * wtf/text/StringImpl.h:
468         (WTF::StringImpl::ref):
469         (WTF::StringImpl::deref):
470
471 2019-03-11  Sihui Liu  <sihui_liu@apple.com>
472
473         Crash under WebCore::IDBDatabase::connectionToServerLost
474         https://bugs.webkit.org/show_bug.cgi?id=195563
475         <rdar://problem/37193655>
476
477         CrossThreadTask should protect callee if it is ThreadSafeRefCounted.
478
479         Reviewed by Geoffrey Garen.
480
481         * wtf/CrossThreadTask.h:
482         (WTF::createCrossThreadTask):
483
484 2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>
485
486         Unreviewed, rolling out r242688, r242643, r242624.
487
488         Caused multiple layout test failures and crashes on iOS and macOS.
489
490         Reverted changeset:
491
492         "requestAnimationFrame should execute before the next frame"
493         https://bugs.webkit.org/show_bug.cgi?id=177484
494         https://trac.webkit.org/changeset/242624/webkit
495
496         * wtf/SystemTracing.h:
497
498 2019-03-11  Darin Adler  <darin@apple.com>
499
500         Specify fixed precision explicitly to prepare to change String::number and StringBuilder::appendNumber floating point behavior
501         https://bugs.webkit.org/show_bug.cgi?id=195533
502
503         Reviewed by Brent Fulgham.
504
505         Soon, we will change String::number and StringBuilder::appendNumber for floating
506         point to use "shortest form" serialization instead of the current default, which is
507         "6-digit fixed precision stripping trailing zeros". To prepare to do this safely
508         without accidentally changing any behavior, changing callers to call the explicit
509         versions. Later, we may want to return and change many of them to use shortest form
510         instead, but that may require rebaselining tests, and in some extreme cases, getting
511         rid of flawed logic that converts between different single and double precision
512         floating point; such problems may be hidden by fixed precision serialization.
513
514         Since "shortest form" is already the behavior for AtomicString::number and
515         for makeString, no changes required for clients of either of those.
516
517         * wtf/Logger.h:
518         (WTF::LogArgument::toString): Use numberToStringFixedPrecision.
519         * wtf/MediaTime.cpp:
520         (WTF::MediaTime::toString const): Use appendFixedPrecisionNumber.
521         * wtf/text/ValueToString.h:
522         (WTF::ValueToString<float>::string): Use numberToStringFixedPrecision.
523         (WTF::ValueToString<double>::string): Ditto.
524
525 2019-03-11  Truitt Savell  <tsavell@apple.com>
526
527         Unreviewed, rolling out r242702.
528
529         Broke High Sierra builders.
530
531         Reverted changeset:
532
533         "Add utility function to allow easy reverse range-based
534         iteration of a container"
535         https://bugs.webkit.org/show_bug.cgi?id=195542
536         https://trac.webkit.org/changeset/242702
537
538 2019-03-11  Sam Weinig  <sam@webkit.org>
539
540         Add utility function to allow easy reverse range-based iteration of a container
541         https://bugs.webkit.org/show_bug.cgi?id=195542
542
543         Reviewed by Antti Koivisto.
544
545         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
546         works with any container that is compatible with std::rbegin() and std::rend(). It is
547         expected to be used in conjunction with range-based for-loops like so:
548
549         for (auto& value : WTF::makeReversedRange(myContainer)) 
550             ...
551
552         * wtf/IteratorRange.h:
553         (WTF::makeReversedRange):
554
555 2019-03-10  Yusuke Suzuki <utatane.tea@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
556
557         [WTF] Align assumption in RunLoopWin to the other platform's RunLoop
558         https://bugs.webkit.org/show_bug.cgi?id=181151
559
560         Reviewed by Don Olmstead.
561
562         This patch fixes RunLoop in Windows to align it to the implementations in the other platforms
563         to use RunLoop more aggressively.
564
565         * wtf/RunLoop.h:
566         (WTF::RunLoop::Timer::Timer):
567         * wtf/win/MainThreadWin.cpp:
568         (initializeMainThreadPlatform): Call RunLoop::registerRunLoopMessageWindowClass.
569         * wtf/win/RunLoopWin.cpp:
570         (WTF::RunLoop::wndProc):
571         (WTF::RunLoop::iterate):
572         (WTF::RunLoop::stop):
573         PostQuitMessage is only available in the RunLoop's thread. We should post a message and call
574         it inside this task.
575
576         (WTF::RunLoop::registerRunLoopMessageWindowClass):
577         Changed the return type from bool to void, and added RELEASE_ASSERT to check the return value of RegisterClass.
578
579         (WTF::RunLoop::~RunLoop):
580         When the RunLoop's thread is freed, its associated window is freed. We do not need to do here.
581
582         (WTF::RunLoop::TimerBase::timerFired):
583         (WTF::RunLoop::TimerBase::TimerBase):
584         (WTF::RunLoop::TimerBase::start):
585         (WTF::RunLoop::TimerBase::stop):
586         (WTF::RunLoop::TimerBase::isActive const):
587         (WTF::RunLoop::TimerBase::secondsUntilFire const):
588         (WTF::generateTimerID): Deleted.
589         We can use TimerBase's pointer as ID since it is uintptr_t.
590
591 2019-03-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
592
593         requestAnimationFrame should execute before the next frame
594         https://bugs.webkit.org/show_bug.cgi?id=177484
595
596         Reviewed by Simon Fraser.
597
598         Add trace points for the page RenderingUpdate.
599
600         * wtf/SystemTracing.h:
601
602 2019-03-06  Ross Kirsling  <ross.kirsling@sony.com>
603
604         [Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
605         https://bugs.webkit.org/show_bug.cgi?id=195346
606
607         Reviewed by Fujii Hironori.
608
609         * wtf/PlatformWin.cmake:
610         * wtf/text/AtomicString.h:
611         (WTF::AtomicString::AtomicString):
612         * wtf/text/WTFString.h:
613         (WTF::String::String):
614         * wtf/text/win/StringWin.cpp: Added.
615         (WTF::String::wideCharacters const): Renamed from WTF::stringToNullTerminatedWChar.
616         * wtf/text/win/WCharStringExtras.h:
617         (WTF::ucharFrom):
618         (WTF::wcharFrom):
619         (WTF::stringToNullTerminatedWChar): Deleted.
620         (WTF::wcharToString): Deleted.
621         (WTF::nullTerminatedWCharToString): Deleted.
622         Add static_assert-guarded reinterpret_cast wrappers for going between UChar* and wchar_t*.
623         Move existing to/from-String helpers into the String (and AtomicString) class(es).
624
625         * wtf/win/FileSystemWin.cpp:
626         (WTF::FileSystemImpl::getFindData):
627         (WTF::FileSystemImpl::getFinalPathName):
628         (WTF::FileSystemImpl::createSymbolicLink):
629         (WTF::FileSystemImpl::deleteFile):
630         (WTF::FileSystemImpl::deleteEmptyDirectory):
631         (WTF::FileSystemImpl::moveFile):
632         (WTF::FileSystemImpl::pathByAppendingComponent):
633         (WTF::FileSystemImpl::fileSystemRepresentation):
634         (WTF::FileSystemImpl::makeAllDirectories):
635         (WTF::FileSystemImpl::pathGetFileName):
636         (WTF::FileSystemImpl::storageDirectory):
637         (WTF::FileSystemImpl::generateTemporaryPath):
638         (WTF::FileSystemImpl::openTemporaryFile):
639         (WTF::FileSystemImpl::openFile):
640         (WTF::FileSystemImpl::hardLinkOrCopyFile):
641         (WTF::FileSystemImpl::deleteNonEmptyDirectory):
642         * wtf/win/LanguageWin.cpp:
643         (WTF::localeInfo):
644         * wtf/win/PathWalker.cpp:
645         (WTF::PathWalker::PathWalker):
646         Use wchar helpers as needed.
647
648 2019-02-28  Ryosuke Niwa  <rniwa@webkit.org>
649
650         Add WeakHashSet
651         https://bugs.webkit.org/show_bug.cgi?id=195152
652
653         Reviewed by Antti Koivisto.
654
655         Added WeakHashSet which is a HashSet of WeakPtr. When the object pointed by WeakPtr is deleted,
656         WeakHashSet treats the key to be no longer in the set. That is, WeakHashSet::contains returns false
657         and const_iterator skips such a WeakPtr in the set.
658
659         We decided not to make HashSet<WeahPtr<T>> work because it involves weird semantics such as making
660         find(X) delete the table entry as remove(find(X)) would be a no-op otherwise as find(X) would return
661         necessarily need to return HashSet<WeakPtr<T>>::end().
662
663         Furthermore, we cannot determine the true size of this set in O(1) because the objected pointed by
664         some of WeakPtr in the set may have already been deleted. This has implications that we can't have
665         size(), isEmpty(), random(), etc... as O(1) operation.
666
667         WeakHashSet is implemented as HashSet<WeakReference<T>>. HashTable::rehash has been updated to delete
668         WeakReference<T>'s whose m_ptr has become null, and HashTable::expand first deletes any such entry
669         before deciding an actual expansion is needed. This is accomplished via newly added hash trait,
670         hasIsReleasedWeakValueFunction, and HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue which
671         returns true for when WeakReference<T> pointed by Ref<WeakReference<T>> has null m_ptr, not to be
672         confused with Ref<WeakReference<T>> itself pointing to a null WeakReference<T>.
673
674         * WTF.xcodeproj/project.pbxproj:
675         * wtf/CMakeLists.txt:
676         * wtf/Forward.h:
677         * wtf/HashSet.h:
678         (WTF::HashSet<T, U, V>::checkConsistency const): Added.
679         * wtf/HashTable.h:
680         (WTF::HashTable::isReleasedWeakBucket): Added.
681         (WTF::HashTable::expand): Delete WeakReference<T> with null m_ptr first. This updates m_keyCount
682         and may make mustRehashInPlace() return true.
683         (WTF::HashTable::deleteReleasedWeakBuckets): Added.
684         (WTF::HashTable::rehash): Delete WeakReference<T> with null m_ptr. Also refactored the code a bit
685         to avoid keep repeating oldTable[i].
686         * wtf/HashTraits.h:
687         (WTF::HashTraits<T>::isHashTraitsReleasedWeakValue): Added.
688         (WTF::RefHashTraits<T>): Extracted from HashTraits<Ref<P>> to share code with
689         HashTraits<Ref<WeakReference<T>>>.
690         (WTF::HashTraitsReleasedWeakValueChecker<Traits, hasIsReleasedWeakValueFunction>): Added.
691         (WTF::isHashTraitsReleasedWeakValue<Traits, hasIsReleasedWeakValueFunction>): Added.
692         * wtf/WeakHashSet.h: Added.
693         (WTF::WeakHashSet): Added.
694         (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
695         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
696         (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const):
697         (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const):
698         (WTF::WeakHashSet::WeakHashSetConstIterator::operator++):
699         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
700         (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const):
701         (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const):
702         (WTF::WeakHashSet::WeakHashSet):
703         (WTF::WeakHashSet::begin const):
704         (WTF::WeakHashSet::end const):
705         (WTF::WeakHashSet::add):
706         (WTF::WeakHashSet::remove):
707         (WTF::WeakHashSet::contains const):
708         (WTF::WeakHashSet::capacity const):
709         (WTF::WeakHashSet::computeSize const): Deletes any WeakReference<T> with null m_ptr first.
710         (WTF::WeakHashSet::checkConsistency const):
711         (WTF::HashTraits<Ref<WeakReference<T>>>): Added. This hash traits triggers the new code in HashTable's
712         expand and rehash methods to delete WeakReference<T> with null m_ptr.
713         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue):
714         * wtf/WeakPtr.h:
715         (WTF::WeakReference::~WeakReference): Added so that we can keep track the number of live WeakReference
716         in API tests by template specializations.
717
718 2019-03-03  Darin Adler  <darin@apple.com>
719
720         Prepare to improve handling of conversion of float to strings
721         https://bugs.webkit.org/show_bug.cgi?id=195262
722
723         Reviewed by Daniel Bates.
724
725         * wtf/dtoa.cpp:
726         (WTF::truncateTrailingZeros): Renamed from
727         formatStringTruncatingTrailingZerosIfNeeded and removed the calls
728         to double_conversion::StringBuilder::Finalizer, since the caller
729         already does that.
730         (WTF::numberToFixedPrecisionString): Added an overload for float
731         and updated to use the new truncateTrailingZeros.
732         (WTF::numberToFixedWidthString): Added an overload for float.
733
734         * wtf/text/AtomicString.cpp:
735         (WTF::AtomicString::number): Added float overload. This is a
736         behavior change, but in all cases for the better. The old behavior
737         was to convert to double first and then do "shortest form"
738         conversion, and it's always better to just do that as float.
739         * wtf/text/AtomicString.h: Added float overload of AtomicString::number.
740
741         * wtf/text/StringBuilder.cpp:
742         (WTF::StringBuilder::appendFixedPrecisionNumber): Added float
743         overload.
744         (WTF::StringBuilder::appendShortestFormNumber): Renamed from
745         appendECMAScriptNumber and did the above.
746         (WTF::StringBuilder::appendFixedWidthNumber): Ditto.
747         * wtf/text/StringBuilder.h: Added overloads for float and
748         appendShortestFormNumber. The appendNumber and appendECMAScriptNumber
749         functions are now inlines in the header, since they are expressed
750         entirely in terms of the other functions.
751
752         * wtf/text/WTFString.cpp:
753         (WTF::String::numberToStringFixedPrecision): Added float overload.
754         Removed unnecessary explicit conversion to String.
755         (WTF::String::numberToStringShortest): Renamed from
756         numberToStringECMAScript and did the above.
757         (WTF::String::numberToStringFixedWidth): Ditto.
758
759         * wtf/text/WTFString.h: Added overloads for float and
760         numberToStringShortest. The number and numberToStringECMAScript
761         functions are now inlines in the header, since they are expressed
762         entirely in terms of the other functions.
763
764 2019-03-04  Andy Estes  <aestes@apple.com>
765
766         [Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
767         https://bugs.webkit.org/show_bug.cgi?id=195080
768         <rdar://problem/48421558>
769
770         Reviewed by Antti Koivisto.
771
772         * wtf/FeatureDefines.h:
773
774 2019-03-04  Michael Catanzaro  <mcatanzaro@igalia.com>
775
776         URLHelpers should use unorm2_quickCheck before converting to NFC
777         https://bugs.webkit.org/show_bug.cgi?id=194272
778
779         Reviewed by Darin Adler.
780
781         If the string is already in normalization form C, don't try to normalize it.
782
783         * wtf/URLHelpers.cpp:
784         (WTF::URLHelpers::toNormalizationFormC):
785
786 2019-03-02  Darin Adler  <darin@apple.com>
787
788         Retire legacy dtoa function and DecimalNumber class
789         https://bugs.webkit.org/show_bug.cgi?id=195253
790
791         Reviewed by Daniel Bates.
792
793         * WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
794         * wtf/CMakeLists.txt: Ditto.
795
796         * wtf/DecimalNumber.cpp: Removed.
797         * wtf/DecimalNumber.h: Removed.
798
799         * wtf/JSONValues.cpp:
800         (WTF::JSONImpl::Value::writeJSON const): Use
801         StringBuilder::appendECMAScriptNumber instead of custom logic
802         using the DecimalNumber class.
803
804         * wtf/dtoa.cpp:
805         (WTF::storeInc): Deleted.
806         (WTF::BigInt): Deleted.
807         (WTF::multadd): Deleted.
808         (WTF::hi0bits): Deleted.
809         (WTF::lo0bits): Deleted.
810         (WTF::i2b): Deleted.
811         (WTF::mult): Deleted.
812         (WTF::P5Node::P5Node): Deleted.
813         (WTF::pow5mult): Deleted.
814         (WTF::lshift): Deleted.
815         (WTF::cmp): Deleted.
816         (WTF::diff): Deleted.
817         (WTF::d2b): Deleted.
818         (WTF::quorem): Deleted.
819         (WTF::dtoa): Deleted.
820
821         * wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.
822
823 2019-02-27  Darin Adler  <darin@apple.com>
824
825         Fixed makeString(float) to do shortest-form serialization without first converting to double
826         https://bugs.webkit.org/show_bug.cgi?id=195142
827
828         Reviewed by Daniel Bates.
829
830         * wtf/DecimalNumber.cpp: Removed unneeded includes.
831
832         * wtf/DecimalNumber.h: Removed unused constructors; over time we will be
833         deprecating DecimalNumber, so we should removed the unused parts. Also
834         marked the constructor explicit, removed types used only for arguments for
835         the constructors, and removed the sign, exponent, significand, and precision
836         member functions.
837
838         * wtf/JSONValues.cpp:
839         (WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
840         switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
841         std::array instead of C arrays.
842
843         * wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.
844         (WTF::dtoa): Updated to use std::array instead of C arrays.
845         (WTF::dtoaRoundSF): Removed.
846         (WTF::dtoaRoundDP): Removed.
847         (WTF::numberToString): Added an overload for float and updated to use std::array.
848         (WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
849         (WTF::numberToFixedPrecisionString): Ditto.
850         (WTF::numberToFixedWidthString): Ditto.
851
852         * wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the
853         array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
854         Added float overloads for numberToString, numberToFixedPrecisionString,
855         and numberToFixedWidthString. The only one of these that is called at this
856         time is numberToString, called by the floating point StringTypeAdapter in
857         StringConcatenateNummbers.h.
858
859         * wtf/text/StringConcatenateNumbers.h: Updated for std::array.
860
861 2019-03-01  Darin Adler  <darin@apple.com>
862
863         Finish removing String::format
864         https://bugs.webkit.org/show_bug.cgi?id=194893
865
866         Reviewed by Daniel Bates.
867
868         * wtf/Assertions.cpp:
869         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
870         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
871
872         * wtf/HexNumber.h: Deleted unneeded toString function.
873
874         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
875         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
876         a bit. Use function templates for writeTo functions rather than having two of each.
877         Removed unused toString functions. Optimized case where we use have a UChar* and
878         a length of zero to not force the result to be 16-bit. Also gets rid of a small
879         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
880         static member helper functions to compute string lengths. Added the pad function
881         and the PaddingSpecification struct template, so we can add padding to anything
882         we can turn into a string. Got rid of the special case overload for single
883         arguments, since it only worked for things that the String constructor can handle.
884         Instead we will now use StringTypeAdapter, which works for more types. Possibly
885         less optimal for some special cases, which we could specialize for later if we like.
886         * wtf/text/StringConcatenateNumbers.h: Ditto.
887         * wtf/text/StringOperators.h: Ditto.
888         * wtf/text/StringView.h: Ditto.
889
890         * wtf/text/WTFString.cpp:
891         (WTF::createWithFormatAndArguments): Deleted.
892         (WTF::String::format): Deleted.
893         * wtf/text/WTFString.h: Deleted declaration of String::format.
894
895 2019-03-01  Alex Christensen  <achristensen@webkit.org>
896
897         Revert r241223, r241235, and r241287
898         https://bugs.webkit.org/show_bug.cgi?id=194427
899         <rdar://48045861>
900
901         * wtf/spi/darwin/XPCSPI.h:
902
903 2019-03-01  Simon Fraser  <simon.fraser@apple.com>
904
905         Add a system trace scope for event region building
906         https://bugs.webkit.org/show_bug.cgi?id=195226
907
908         Reviewed by Jon Lee.
909
910         This trace scope measures the time spend converting element rects into Region objects,
911         which can be large on some pages.
912
913         The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.
914
915         * wtf/SystemTracing.h:
916
917 2019-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
918
919         [JSC] sizeof(JSString) should be 16
920         https://bugs.webkit.org/show_bug.cgi?id=194375
921
922         Reviewed by Saam Barati.
923
924         * wtf/text/StringImpl.h:
925         (WTF::StringImpl::flagIs8Bit):
926         (WTF::StringImpl::flagIsAtomic):
927         (WTF::StringImpl::flagIsSymbol):
928         (WTF::StringImpl::maskStringKind):
929         * wtf/text/WTFString.cpp:
930         (WTF::nullString):
931         * wtf/text/WTFString.h:
932
933 2019-02-28  Mark Lam  <mark.lam@apple.com>
934
935         Change CheckedArithmetic to not use std::enable_if_t.
936         https://bugs.webkit.org/show_bug.cgi?id=195187
937         <rdar://problem/48464665>
938
939         Reviewed by Keith Miller.
940
941         Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.
942
943         * wtf/CheckedArithmetic.h:
944
945 2019-02-27  Simon Fraser  <simon.fraser@apple.com>
946
947         Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)
948
949         * wtf/Assertions.cpp:
950         (WTF::createWithFormatAndArguments): Deleted.
951         * wtf/HexNumber.h:
952         (WTF::StringTypeAdapter<HexNumberBuffer>::toString const):
953         * wtf/text/StringConcatenate.h:
954         (WTF::makeString):
955         (WTF::pad): Deleted.
956         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
957         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
958         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
959         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.
960         * wtf/text/StringConcatenateNumbers.h:
961         (WTF::FormattedNumber::fixedPrecision):
962         (WTF::FormattedNumber::fixedWidth):
963         (WTF::StringTypeAdapter<FormattedNumber>::toString const):
964         * wtf/text/StringOperators.h:
965         (WTF::StringAppend::StringAppend):
966         * wtf/text/StringView.h:
967         (WTF::StringView::invalidate):
968         * wtf/text/WTFString.cpp:
969         (WTF::createWithFormatAndArguments):
970         (WTF::String::format):
971         * wtf/text/WTFString.h:
972
973 2019-02-26  Mark Lam  <mark.lam@apple.com>
974
975         Remove remaining poisoning code.
976         https://bugs.webkit.org/show_bug.cgi?id=194138
977
978         Reviewed by Saam Barati.
979
980         This patch removes the instantiation of Poisoned variants of the various containers
981         but retains the ability of those containers to work with pointer traits.  This
982         allows us to use them with smart pointers in the future (just like we used to with
983         Poisoned values).  At minimum, this ability will be useful when we want to insert
984         an observer into the container storage type for debugging purposes, or to collect
985         statistics for profiling.
986
987         * WTF.xcodeproj/project.pbxproj:
988         * wtf/Bag.h:
989         * wtf/CMakeLists.txt:
990         * wtf/Platform.h:
991         * wtf/Poisoned.cpp: Removed.
992         * wtf/Poisoned.h: Removed.
993         * wtf/PoisonedUniquePtr.h: Removed.
994         * wtf/Ref.h:
995         * wtf/RefCountedArray.h:
996         * wtf/RefPtr.h:
997         * wtf/WTFAssertions.cpp:
998
999 2019-02-26  Keith Miller  <keith_miller@apple.com>
1000
1001         Code quality cleanup in NeverDestroyed
1002         https://bugs.webkit.org/show_bug.cgi?id=194824
1003
1004         Reviewed by Yusuke Suzuki.
1005
1006         First, move data members to the end of the class per WebKit
1007         style. Also, add forbid heap allocation since we expect the
1008         NeverDestroyed classes to be static.
1009
1010         * wtf/NeverDestroyed.h:
1011
1012 2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1013
1014         Fix WTFLogVerbose variadic parameters forwarding
1015         https://bugs.webkit.org/show_bug.cgi?id=194920
1016
1017         Reviewed by Alex Christensen.
1018
1019         WTFLogVerbose was passing the va_list to WTFLog but this function
1020         also used variadic parameters and this is not allowed in C (that
1021         part of the code is extern "C").
1022
1023         * wtf/Assertions.cpp:
1024         (WTF::WTFLogVaList): Created to take a va_list argument instead of
1025         variadic parameters.
1026         (WTF::WTFLog): Kept with variadic parameters, which are
1027         transformed to va_list and passed to WTFLogVaList.
1028         (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.
1029
1030 2019-02-25  Sam Weinig  <sam@webkit.org>
1031
1032         Update double-conversion to the latest version
1033         https://bugs.webkit.org/show_bug.cgi?id=194994
1034
1035         Import the latest version of the double-conversion library based on
1036         https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307
1037
1038         In additon to importing the code, the following changes were applied (or re-applied) to maintain 
1039         parity with what we had previously:
1040              - Add #include "config.h" to each cpp file.
1041              - Put everything inside the WTF namespace.
1042              - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
1043              - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
1044              - Replaced duplicated functions with ASCIICType.h variants
1045              - Made CachedPower table a constexpr.
1046              - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
1047              - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
1048                parameterization, as we only ever want one configuration. Instead of constructing a
1049                configured class and calling StringToDouble on it, StringToDouble is now a static
1050                function. This allows a bunch of now dead code (hex support, octal support, etc.) to
1051                be eliminated. As StringToDoubleConverter now supports single precision floats, some
1052                additional templating of StringToIeee was added to avoid extra unnecessary branching.
1053              - Added RemoveCharacters function to double_conversion::StringBuilder.
1054
1055         Reviewed by Darin Adler.
1056
1057         * WTF.xcodeproj/project.pbxproj:
1058         * wtf/CMakeLists.txt:
1059         * wtf/dtoa/AUTHORS: Added.
1060         * wtf/dtoa/README: Removed.
1061         * wtf/dtoa/README.md: Added.
1062         * wtf/dtoa/bignum-dtoa.cc:
1063         * wtf/dtoa/bignum-dtoa.h:
1064         * wtf/dtoa/bignum.cc:
1065         * wtf/dtoa/bignum.h:
1066         (WTF::double_conversion::Bignum::Times10):
1067         (WTF::double_conversion::Bignum::Equal):
1068         (WTF::double_conversion::Bignum::LessEqual):
1069         (WTF::double_conversion::Bignum::Less):
1070         (WTF::double_conversion::Bignum::PlusEqual):
1071         (WTF::double_conversion::Bignum::PlusLessEqual):
1072         (WTF::double_conversion::Bignum::PlusLess):
1073         (WTF::double_conversion::Bignum::EnsureCapacity):
1074         (WTF::double_conversion::Bignum::BigitLength const):
1075         * wtf/dtoa/cached-powers.cc:
1076         * wtf/dtoa/cached-powers.h:
1077         * wtf/dtoa/diy-fp.cc:
1078         * wtf/dtoa/diy-fp.h:
1079         (WTF::double_conversion::DiyFp::DiyFp):
1080         (WTF::double_conversion::DiyFp::Subtract):
1081         (WTF::double_conversion::DiyFp::Minus):
1082         (WTF::double_conversion::DiyFp::Times):
1083         (WTF::double_conversion::DiyFp::Normalize):
1084         (WTF::double_conversion::DiyFp::f const):
1085         (WTF::double_conversion::DiyFp::e const):
1086         (WTF::double_conversion::DiyFp::set_f):
1087         (WTF::double_conversion::DiyFp::set_e):
1088         * wtf/dtoa/double-conversion.cc:
1089         * wtf/dtoa/double-conversion.h:
1090         (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
1091         (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
1092         (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
1093         (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
1094         * wtf/dtoa/double.h: Removed.
1095         * wtf/dtoa/fast-dtoa.cc:
1096         * wtf/dtoa/fast-dtoa.h:
1097         * wtf/dtoa/fixed-dtoa.cc:
1098         * wtf/dtoa/fixed-dtoa.h:
1099         * wtf/dtoa/ieee.h: Added.
1100         (WTF::double_conversion::double_to_uint64):
1101         (WTF::double_conversion::uint64_to_double):
1102         (WTF::double_conversion::float_to_uint32):
1103         (WTF::double_conversion::uint32_to_float):
1104         (WTF::double_conversion::Double::Double):
1105         (WTF::double_conversion::Double::AsDiyFp const):
1106         (WTF::double_conversion::Double::AsNormalizedDiyFp const):
1107         (WTF::double_conversion::Double::AsUint64 const):
1108         (WTF::double_conversion::Double::NextDouble const):
1109         (WTF::double_conversion::Double::PreviousDouble const):
1110         (WTF::double_conversion::Double::Exponent const):
1111         (WTF::double_conversion::Double::Significand const):
1112         (WTF::double_conversion::Double::IsDenormal const):
1113         (WTF::double_conversion::Double::IsSpecial const):
1114         (WTF::double_conversion::Double::IsNan const):
1115         (WTF::double_conversion::Double::IsInfinite const):
1116         (WTF::double_conversion::Double::Sign const):
1117         (WTF::double_conversion::Double::UpperBoundary const):
1118         (WTF::double_conversion::Double::NormalizedBoundaries const):
1119         (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
1120         (WTF::double_conversion::Double::value const):
1121         (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
1122         (WTF::double_conversion::Double::Infinity):
1123         (WTF::double_conversion::Double::NaN):
1124         (WTF::double_conversion::Double::DiyFpToUint64):
1125         (WTF::double_conversion::Single::Single):
1126         (WTF::double_conversion::Single::AsDiyFp const):
1127         (WTF::double_conversion::Single::AsUint32 const):
1128         (WTF::double_conversion::Single::Exponent const):
1129         (WTF::double_conversion::Single::Significand const):
1130         (WTF::double_conversion::Single::IsDenormal const):
1131         (WTF::double_conversion::Single::IsSpecial const):
1132         (WTF::double_conversion::Single::IsNan const):
1133         (WTF::double_conversion::Single::IsInfinite const):
1134         (WTF::double_conversion::Single::Sign const):
1135         (WTF::double_conversion::Single::NormalizedBoundaries const):
1136         (WTF::double_conversion::Single::UpperBoundary const):
1137         (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
1138         (WTF::double_conversion::Single::value const):
1139         (WTF::double_conversion::Single::Infinity):
1140         (WTF::double_conversion::Single::NaN):
1141         * wtf/dtoa/strtod.cc:
1142         * wtf/dtoa/strtod.h:
1143         * wtf/dtoa/utils.h:
1144         (abort_noreturn):
1145         (WTF::double_conversion::Max):
1146         (WTF::double_conversion::Min):
1147         (WTF::double_conversion::StrLength):
1148         (WTF::double_conversion::BufferReference::BufferReference):
1149         (WTF::double_conversion::BufferReference::SubVector):
1150         (WTF::double_conversion::BufferReference::length const):
1151         (WTF::double_conversion::BufferReference::is_empty const):
1152         (WTF::double_conversion::BufferReference::start const):
1153         (WTF::double_conversion::BufferReference::operator[] const):
1154         (WTF::double_conversion::BufferReference::first):
1155         (WTF::double_conversion::BufferReference::last):
1156         (WTF::double_conversion::StringBuilder::StringBuilder):
1157         (WTF::double_conversion::StringBuilder::~StringBuilder):
1158         (WTF::double_conversion::StringBuilder::size const):
1159         (WTF::double_conversion::StringBuilder::position const):
1160         (WTF::double_conversion::StringBuilder::Reset):
1161         (WTF::double_conversion::StringBuilder::AddCharacter):
1162         (WTF::double_conversion::StringBuilder::AddString):
1163         (WTF::double_conversion::StringBuilder::AddSubstring):
1164         (WTF::double_conversion::StringBuilder::AddPadding):
1165         (WTF::double_conversion::StringBuilder::RemoveCharacters):
1166         (WTF::double_conversion::StringBuilder::Finalize):
1167         (WTF::double_conversion::StringBuilder::is_finalized const):
1168         (WTF::double_conversion::BitCast):
1169         (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
1170         (WTF::double_conversion::StringBuilder::SetPosition): Deleted.
1171
1172 2019-02-20  Darin Adler  <darin@apple.com>
1173
1174         Finish removing String::format
1175         https://bugs.webkit.org/show_bug.cgi?id=194893
1176
1177         Reviewed by Daniel Bates.
1178
1179         * wtf/Assertions.cpp:
1180         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
1181         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
1182
1183         * wtf/HexNumber.h: Deleted unneeded toString function.
1184
1185         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
1186         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
1187         a bit. Use function templates for writeTo functions rather than having two of each.
1188         Removed unused toString functions. Optimized case where we use have a UChar* and
1189         a length of zero to not force the result to be 16-bit. Also gets rid of a small
1190         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
1191         static member helper functions to compute string lengths. Added the pad function
1192         and the PaddingSpecification struct template, so we can add padding to anything
1193         we can turn into a string. Got rid of the special case overload for single
1194         arguments, since it only worked for things that the String constructor can handle.
1195         Instead we will now use StringTypeAdapter, which works for more types. Possibly
1196         less optimal for some special cases, which we could specialize for later if we like.
1197         * wtf/text/StringConcatenateNumbers.h: Ditto.
1198         * wtf/text/StringOperators.h: Ditto.
1199         * wtf/text/StringView.h: Ditto.
1200
1201         * wtf/text/WTFString.cpp:
1202         (WTF::createWithFormatAndArguments): Deleted.
1203         (WTF::String::format): Deleted.
1204         * wtf/text/WTFString.h: Deleted declaration of String::format.
1205
1206 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
1207
1208         Unreviewed, fix find/replace error from r232178
1209
1210         Looks like this was the only such error in that commit.
1211
1212         * wtf/URLHelpers.cpp:
1213         (WTF::URLHelpers::isLookalikeCharacter):
1214
1215 2019-02-23  Mark Lam  <mark.lam@apple.com>
1216
1217         Add an exception check and some assertions in StringPrototype.cpp.
1218         https://bugs.webkit.org/show_bug.cgi?id=194962
1219         <rdar://problem/48013416>
1220
1221         Reviewed by Yusuke Suzuki and Saam Barati.
1222
1223         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
1224         for assertion purpose only on debug builds but sacrifices no performance on
1225         release builds.
1226
1227         * wtf/CheckedArithmetic.h:
1228         (WTF::AssertNoOverflow::overflowed):
1229         (WTF::AssertNoOverflow::clearOverflow):
1230         (WTF::AssertNoOverflow::crash):
1231         (WTF::AssertNoOverflow::hasOverflowed const):
1232         (WTF::observesOverflow):
1233         (WTF::observesOverflow<AssertNoOverflow>):
1234         (WTF::safeAdd):
1235         (WTF::safeSub):
1236         (WTF::safeMultiply):
1237         (WTF::Checked::operator+=):
1238         (WTF::Checked::operator-=):
1239         (WTF::Checked::operator*=):
1240         (WTF::operator+):
1241         (WTF::operator-):
1242         (WTF::operator*):
1243
1244 2019-02-23  Keith Miller  <keith_miller@apple.com>
1245
1246         Add new mac target numbers
1247         https://bugs.webkit.org/show_bug.cgi?id=194955
1248
1249         Reviewed by Tim Horton.
1250
1251         * Configurations/Base.xcconfig:
1252         * Configurations/DebugRelease.xcconfig:
1253
1254 2019-02-21  Antoine Quint  <graouts@apple.com>
1255
1256         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
1257         https://bugs.webkit.org/show_bug.cgi?id=194531
1258         <rdar://problem/47714562>
1259
1260         Reviewed by Tim Horton.
1261
1262         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
1263
1264         * wtf/Platform.h:
1265
1266 2019-02-21  Dean Jackson  <dino@apple.com>
1267
1268         Rotation animations sometimes use the wrong origin (affects apple.com)
1269         https://bugs.webkit.org/show_bug.cgi?id=194878
1270         <rdar://problem/43908047>
1271
1272         Follow-up commit to ensure this change only affects newer versions
1273         of iOS.
1274
1275         * wtf/Platform.h: Add a version check.
1276
1277 2019-02-20  Alex Christensen  <achristensen@webkit.org>
1278
1279         URL percent-encode operations should use checked arithmetic for buffer allocation length
1280         https://bugs.webkit.org/show_bug.cgi?id=194877
1281         <rdar://problem/48212062>
1282
1283         Reviewed by Tim Horton.
1284
1285         * wtf/URLHelpers.cpp:
1286         (WTF::URLHelpers::userVisibleURL):
1287         * wtf/cocoa/NSURLExtras.mm:
1288         (WTF::dataWithUserTypedString):
1289
1290 2019-02-20  Dean Jackson  <dino@apple.com>
1291
1292         Rotation animations sometimes use the wrong origin (affects apple.com)
1293         https://bugs.webkit.org/show_bug.cgi?id=194878
1294         <rdar://problem/43908047>
1295
1296         Reviewed by Simon Fraser.
1297
1298         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
1299
1300 2019-02-20  Andy Estes  <aestes@apple.com>
1301
1302         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
1303         https://bugs.webkit.org/show_bug.cgi?id=194869
1304
1305         Rubber-stamped by Jer Noble.
1306
1307         * WTF.xcodeproj/project.pbxproj:
1308
1309 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
1310
1311         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
1312         https://bugs.webkit.org/show_bug.cgi?id=167941
1313
1314         Reviewed by Carlos Garcia Campos.
1315
1316         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
1317
1318         * wtf/glib/GRefPtr.cpp:
1319         (WTF::refGPtr): Added.
1320         (WTF::derefGPtr): Added.
1321         * wtf/glib/GRefPtr.h: Declare template specializations.
1322
1323 2019-02-19  Commit Queue  <commit-queue@webkit.org>
1324
1325         Unreviewed, rolling out r241770.
1326         https://bugs.webkit.org/show_bug.cgi?id=194833
1327
1328         Caused crashes (Requested by smfr on #webkit).
1329
1330         Reverted changeset:
1331
1332         "Code quality cleanup in NeverDestroyed"
1333         https://bugs.webkit.org/show_bug.cgi?id=194824
1334         https://trac.webkit.org/changeset/241770
1335
1336 2019-02-19  Keith Miller  <keith_miller@apple.com>
1337
1338         Code quality cleanup in NeverDestroyed
1339         https://bugs.webkit.org/show_bug.cgi?id=194824
1340
1341         Reviewed by Yusuke Suzuki.
1342
1343         First, move data members to the end of the class per WebKit
1344         style. Also, add forbid heap allocation since we expect the
1345         NeverDestroyed classes to be static.
1346
1347         * wtf/NeverDestroyed.h:
1348
1349 2019-02-16  Darin Adler  <darin@apple.com>
1350
1351         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
1352         https://bugs.webkit.org/show_bug.cgi?id=194752
1353
1354         Reviewed by Daniel Bates.
1355
1356         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
1357         * wtf/CMakeLists.txt: Ditto.
1358
1359         * wtf/HexNumber.cpp: Added.
1360         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
1361
1362         * wtf/HexNumber.h:
1363         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
1364         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
1365         use with StringTypeAdapter.
1366         (WTF::appendUnsignedAsHex): Ditto.
1367         (WTF::appendUnsignedAsHexFixedSize): Ditto.
1368         (WTF::hex): Added.
1369         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
1370
1371         * wtf/Logger.cpp: Added.
1372         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
1373         function and moved it here so that we don't need to include HexNumber.h
1374         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
1375         don't include it in any other headers.
1376
1377         * wtf/Logger.h:
1378         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
1379         a non-template function, LogSiteIdentifier::toString.
1380
1381         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
1382         with function templates and used StringImpl::copyCharacters instead of
1383         hand-written loops.
1384
1385 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
1386
1387         Web Inspector: Better categorize CPU usage per-thread / worker
1388         https://bugs.webkit.org/show_bug.cgi?id=194564
1389
1390         Reviewed by Devin Rousso.
1391
1392         * wtf/Threading.h:
1393         * wtf/Threading.cpp:
1394         (WTF::Thread::allThreadsMutex):
1395         (WTF::Thread::create):
1396         (WTF::Thread::didExit):
1397         Add a set of all WTF::Thread created threads.
1398
1399 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
1400
1401         Bytecode cache should a have a boot-specific validation
1402         https://bugs.webkit.org/show_bug.cgi?id=194769
1403         <rdar://problem/48149509>
1404
1405         Reviewed by Keith Miller.
1406
1407         Add helper to get kern.bootsessionuuid from sysctl
1408
1409         * wtf/UUID.cpp:
1410         (WTF::bootSessionUUIDString):
1411         * wtf/UUID.h:
1412
1413 2019-02-17  David Kilzer  <ddkilzer@apple.com>
1414
1415         Unreviewed, rolling out r241620.
1416
1417         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
1418         (Requested by ddkilzer on #webkit.)
1419
1420         Reverted changeset:
1421
1422         "[WTF] Add environment variable helpers"
1423         https://bugs.webkit.org/show_bug.cgi?id=192405
1424         https://trac.webkit.org/changeset/241620
1425
1426 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
1427
1428         [WTF] Add environment variable helpers
1429         https://bugs.webkit.org/show_bug.cgi?id=192405
1430
1431         Reviewed by Michael Catanzaro.
1432
1433         Create a new Environment API as a platform-independent, thread-safe(r)
1434         way to get and set environment variables.
1435
1436         * WTF.xcodeproj/project.pbxproj:
1437         * wtf/CMakeLists.txt:
1438         * wtf/Environment.h: Added.
1439         * wtf/PlatformGTK.cmake:
1440         * wtf/PlatformJSCOnly.cmake:
1441         * wtf/PlatformMac.cmake:
1442         * wtf/PlatformPlayStation.cmake:
1443         * wtf/PlatformWPE.cmake:
1444         * wtf/PlatformWin.cmake:
1445         * wtf/posix/EnvironmentPOSIX.cpp: Added.
1446         * wtf/win/EnvironmentWin.cpp: Added.
1447         Introduce WTF::Environment.
1448
1449         * wtf/Threading.cpp:
1450         (WTF::threadingIsInitialized):
1451         (WTF::initializeThreading):
1452         * wtf/Threading.h:
1453         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
1454         false before setting an environment variable through the new API.
1455
1456         * wtf/DataLog.cpp:
1457         (WTF::initializeLogFileOnce):
1458         * wtf/NumberOfCores.cpp:
1459         (WTF::numberOfProcessorCores):
1460         * wtf/posix/FileSystemPOSIX.cpp:
1461         (WTF::FileSystemImpl::openTemporaryFile):
1462         Utilize WTF::Environment where possible.
1463
1464 2019-02-15  Brian Burg  <bburg@apple.com>
1465
1466         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
1467         https://bugs.webkit.org/show_bug.cgi?id=194411
1468         <rdar://problem/47787614>
1469
1470         Reviewed by Joseph Pecoraro.
1471
1472         * wtf/cocoa/SoftLinking.h:
1473         Remove macro that now has no uses.
1474
1475 2019-02-15  Commit Queue  <commit-queue@webkit.org>
1476
1477         Unreviewed, rolling out r241559 and r241566.
1478         https://bugs.webkit.org/show_bug.cgi?id=194710
1479
1480         Causes layout test crashes under GuardMalloc (Requested by
1481         ryanhaddad on #webkit).
1482
1483         Reverted changesets:
1484
1485         "[WTF] Add environment variable helpers"
1486         https://bugs.webkit.org/show_bug.cgi?id=192405
1487         https://trac.webkit.org/changeset/241559
1488
1489         "Unreviewed build fix for WinCairo Debug after r241559."
1490         https://trac.webkit.org/changeset/241566
1491
1492 2019-02-15  Truitt Savell  <tsavell@apple.com>
1493
1494         Unreviewed, rolling out r241564.
1495
1496         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
1497
1498         Reverted changeset:
1499
1500         "[Mac] WebInspectorUI.framework does not need to be soft-
1501         linked anymore"
1502         https://bugs.webkit.org/show_bug.cgi?id=194411
1503         https://trac.webkit.org/changeset/241564
1504
1505 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
1506
1507         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
1508         https://bugs.webkit.org/show_bug.cgi?id=194014
1509
1510         Reviewed by Michael Catanzaro.
1511
1512         Do not block SIGUSR1 when installing signal handlers, since this signal
1513         is used to suspend/resume machine threads on Linux.
1514
1515         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
1516         enabled watchdog and sampling.
1517
1518         Deadlock happened in the following situation:
1519
1520         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
1521         and then tries to suspend the main thread.
1522
1523         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
1524         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
1525         SignalSender tries to lock codeBlockSet, but this is already locked by the
1526         SamplingProfiler.
1527
1528         The SamplingProfiler can only give up the lock when it suspends
1529         the thread. However since the VMTraps signal handler is active, all other signals blocked,
1530         therefore the SamplingProfiler also waits until its signal handler is invoked.
1531
1532         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
1533         it is used to suspend/resume threads on Linux.
1534
1535         * wtf/Threading.h:
1536         * wtf/posix/ThreadingPOSIX.cpp:
1537         * wtf/threads/Signals.cpp:
1538         (WTF::installSignalHandler):
1539
1540 2019-02-15  Saam barati  <sbarati@apple.com>
1541
1542         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
1543         https://bugs.webkit.org/show_bug.cgi?id=194036
1544
1545         Reviewed by Yusuke Suzuki.
1546
1547         * wtf/IndexMap.h:
1548         (WTF::IndexMap::at):
1549         (WTF::IndexMap::at const):
1550         (WTF::IndexMap::operator[]):
1551         (WTF::IndexMap::operator[] const):
1552
1553 2019-02-14  Brian Burg  <bburg@apple.com>
1554
1555         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
1556         https://bugs.webkit.org/show_bug.cgi?id=194411
1557         <rdar://problem/47787614>
1558
1559         Reviewed by Joseph Pecoraro.
1560
1561         * wtf/cocoa/SoftLinking.h:
1562         Remove macro that now has no uses.
1563
1564 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
1565
1566         [WTF] Add environment variable helpers
1567         https://bugs.webkit.org/show_bug.cgi?id=192405
1568
1569         Reviewed by Michael Catanzaro.
1570
1571         Create a new Environment API as a platform-independent, thread-safe(r)
1572         way to get and set environment variables.
1573
1574         * WTF.xcodeproj/project.pbxproj:
1575         * wtf/CMakeLists.txt:
1576         * wtf/Environment.h: Added.
1577         * wtf/PlatformGTK.cmake:
1578         * wtf/PlatformJSCOnly.cmake:
1579         * wtf/PlatformMac.cmake:
1580         * wtf/PlatformPlayStation.cmake:
1581         * wtf/PlatformWPE.cmake:
1582         * wtf/PlatformWin.cmake:
1583         * wtf/posix/EnvironmentPOSIX.cpp: Added.
1584         * wtf/win/EnvironmentWin.cpp: Added.
1585         Introduce WTF::Environment.
1586
1587         * wtf/Threading.cpp:
1588         (WTF::threadingIsInitialized):
1589         (WTF::initializeThreading):
1590         * wtf/Threading.h:
1591         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
1592         false before setting an environment variable through the new API.
1593
1594         * wtf/DataLog.cpp:
1595         (WTF::initializeLogFileOnce):
1596         * wtf/NumberOfCores.cpp:
1597         (WTF::numberOfProcessorCores):
1598         * wtf/posix/FileSystemPOSIX.cpp:
1599         (WTF::FileSystemImpl::openTemporaryFile):
1600         Utilize WTF::Environment where possible.
1601
1602 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
1603
1604         We should only make rope strings when concatenating strings long enough.
1605         https://bugs.webkit.org/show_bug.cgi?id=194465
1606
1607         Reviewed by Mark Lam.
1608
1609         * wtf/text/StringImpl.h:
1610         (WTF::StringImpl::headerSize):
1611
1612 2019-02-12  Tim Horton  <timothy_horton@apple.com>
1613
1614         Remove WKLegacyPDFView
1615         https://bugs.webkit.org/show_bug.cgi?id=194559
1616
1617         Reviewed by Andy Estes.
1618
1619         * wtf/FeatureDefines.h:
1620
1621 2019-02-12  David Kilzer  <ddkilzer@apple.com>
1622
1623         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
1624         <https://webkit.org/b/194529>
1625         <rdar://problem/47924449>
1626
1627         Reviewed by Eric Carlson.
1628
1629         * wtf/cocoa/SoftLinking.h:
1630         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
1631         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
1632         and change `assertion` argument to `isOptional`.  Pass
1633         `isOptional` to framework##Library() method to control assertion
1634         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
1635         that code should be optimized out by the compiler.  This fixes
1636         the crash.
1637         (NO_ASSERT): Remove macro since it's no longer used.
1638         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
1639         optional classes.
1640         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
1641         non-optional classes.
1642         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
1643         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
1644         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
1645         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
1646         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
1647
1648 2019-02-12  Andy Estes  <aestes@apple.com>
1649
1650         [iOSMac] Enable Parental Controls Content Filtering
1651         https://bugs.webkit.org/show_bug.cgi?id=194521
1652         <rdar://39732376>
1653
1654         Reviewed by Tim Horton.
1655
1656         * wtf/Platform.h:
1657
1658 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
1659
1660         [Cocoa] Ask platform for generic font family mappings
1661         https://bugs.webkit.org/show_bug.cgi?id=187723
1662         <rdar://problem/41892438>
1663
1664         Reviewed by Brent Fulgham.
1665
1666         Add an ENABLE in Platform.
1667
1668         * wtf/Platform.h:
1669
1670 2019-02-11  Truitt Savell  <tsavell@apple.com>
1671
1672         Unreviewed, rolling out r241229.
1673
1674         Revision broke internal builds for watchOS.
1675
1676         Reverted changeset:
1677
1678         "[Cocoa] Ask platform for generic font family mappings"
1679         https://bugs.webkit.org/show_bug.cgi?id=187723
1680         https://trac.webkit.org/changeset/241229
1681
1682 2019-02-10  Darin Adler  <darin@apple.com>
1683
1684         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
1685         https://bugs.webkit.org/show_bug.cgi?id=194485
1686
1687         Reviewed by Daniel Bates.
1688
1689         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
1690         placeByteAsHex. Can always bring them back if someone needs them. Updated
1691         appendUnsignedAsHex to be a template so we can use it on any integer type,
1692         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
1693         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
1694         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
1695
1696         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
1697
1698         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
1699
1700         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
1701         worked around in NSURLExtras.mm.
1702         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
1703         and Foundation.h.
1704
1705 2019-02-09  Darin Adler  <darin@apple.com>
1706
1707         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
1708         https://bugs.webkit.org/show_bug.cgi?id=194021
1709
1710         Reviewed by Geoffrey Garen.
1711
1712         * wtf/URL.cpp:
1713         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
1714         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
1715         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
1716         and sometimes used for UTF-16 code units (UChar) and can be the same type.
1717
1718         * wtf/text/StringConcatenateNumbers.h:
1719         Changed FormattedNumber::fixedPrecision to more closely match String::number and
1720         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
1721         a named enumeration for the truncation policy rather than a boolean.
1722
1723
1724 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
1725
1726         Unreviewed, rolling in r241237 again
1727         https://bugs.webkit.org/show_bug.cgi?id=194469
1728
1729         After the measurement, this patch was unrelated to recent regression.
1730
1731         * wtf/text/StringImpl.h:
1732         (WTF::StringImpl::isSubString const):
1733         (WTF::StringImpl::createSubstringSharingImpl):
1734
1735 2019-02-09  Commit Queue  <commit-queue@webkit.org>
1736
1737         Unreviewed, rolling out r241237.
1738         https://bugs.webkit.org/show_bug.cgi?id=194474
1739
1740         Shows significant memory increase in WSL (Requested by
1741         yusukesuzuki on #webkit).
1742
1743         Reverted changeset:
1744
1745         "[WTF] Use BufferInternal StringImpl if substring StringImpl
1746         takes more memory"
1747         https://bugs.webkit.org/show_bug.cgi?id=194469
1748         https://trac.webkit.org/changeset/241237
1749
1750 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
1751
1752         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
1753         https://bugs.webkit.org/show_bug.cgi?id=194469
1754
1755         Reviewed by Geoffrey Garen.
1756
1757         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
1758         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
1759         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
1760         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
1761
1762         * wtf/text/StringImpl.h:
1763         (WTF::StringImpl::isSubString const):
1764         (WTF::StringImpl::createSubstringSharingImpl):
1765
1766 2019-02-08  Alex Christensen  <achristensen@webkit.org>
1767
1768         Add SPI to use networking daemon instead of XPC service
1769         https://bugs.webkit.org/show_bug.cgi?id=194427
1770
1771         Reviewed by Geoffrey Garen.
1772
1773         * wtf/spi/darwin/XPCSPI.h:
1774         Instead of using XPC bootstrap SPI, we just send a separate message.
1775         xpc_copy_bootstrap does not seem to work in  daemons.
1776
1777 2019-02-08  Truitt Savell  <tsavell@apple.com>
1778
1779         Unreviewed, rolling out r241197.
1780
1781         Broke iOS Simulator Debug build and casued 1 API failure on
1782         High Sierra
1783
1784         Reverted changeset:
1785
1786         "Add SPI to use networking daemon instead of XPC service"
1787         https://bugs.webkit.org/show_bug.cgi?id=194427
1788         https://trac.webkit.org/changeset/241197
1789
1790 2019-02-08  Alex Christensen  <achristensen@webkit.org>
1791
1792         Add SPI to use networking daemon instead of XPC service
1793         https://bugs.webkit.org/show_bug.cgi?id=194427
1794
1795         Reviewed by Geoffrey Garen.
1796
1797         * wtf/spi/darwin/XPCSPI.h:
1798         Instead of using XPC bootstrap SPI, we just send a separate message.
1799         xpc_copy_bootstrap does not seem to work in  daemons.
1800
1801 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
1802
1803         clampTo(): do not convert the input to double when dealing with integers
1804         https://bugs.webkit.org/show_bug.cgi?id=194263
1805         <rdar://problem/47692312>
1806
1807         Reviewed by Darin Adler.
1808
1809         Previously, every use of clampTo() was converting the input to double,
1810         doing the comparison in double, then casting back to whatever type was needed.
1811
1812         In many case, that was very wasteful. WebKit has many cases of clampTo() with
1813         the same type as input/output, or with integer types of different size/sign.
1814
1815         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
1816         In each case, I tried to minimize the amount of conversion needed at runtime.
1817
1818         * wtf/MathExtras.h:
1819         (clampTo):
1820
1821 2019-02-07  Chris Dumez  <cdumez@apple.com>
1822
1823         Mark more heap-allocated classes as fast allocated
1824         https://bugs.webkit.org/show_bug.cgi?id=194422
1825
1826         Reviewed by Ryosuke Niwa.
1827
1828         * wtf/Function.h:
1829         (WTF::Function<Out):
1830         * wtf/RefCounter.h:
1831         * wtf/URL.h:
1832         * wtf/text/StringView.cpp:
1833
1834 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
1835
1836         [macOS] Block coreservicesd in sandbox.
1837         https://bugs.webkit.org/show_bug.cgi?id=192670
1838
1839         Reviewed by Alexey Proskuryakov.
1840
1841         Add HAVE_CSCHECKFIXDISABLE define.
1842
1843         * wtf/Platform.h:
1844
1845 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
1846
1847         [MSE] Convert debug-only logging to runtime logging
1848         https://bugs.webkit.org/show_bug.cgi?id=194348
1849         <rdar://problem/47566449>
1850
1851         Reviewed by Jer Noble.
1852
1853         * wtf/LoggerHelper.h:
1854         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
1855         object that is associated with another logging object.
1856         * wtf/MediaTime.cpp:
1857         (WTF::MediaTime::toJSONObject const):
1858         (WTF::MediaTime::toJSONString const):
1859         (WTF::MediaTimeRange::toJSONString const):
1860         (WTF::toJSONStringInternal): Deleted.
1861         * wtf/MediaTime.h:
1862
1863 2019-02-05  Keith Rollin  <krollin@apple.com>
1864
1865         Enable the automatic checking and regenerations of .xcfilelists during builds
1866         https://bugs.webkit.org/show_bug.cgi?id=194124
1867         <rdar://problem/47721277>
1868
1869         Reviewed by Tim Horton.
1870
1871         Bug 193790 add a facility for checking -- during build time -- that
1872         any needed .xcfilelist files are up-to-date and for updating them if
1873         they are not. This facility was initially opt-in by setting
1874         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
1875         the process seemed robust. Its now time to enable this facility and
1876         make it opt-out. If there is a need to disable this facility, set and
1877         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
1878         running `make` or `build-webkit`, or before running Xcode from the
1879         command line.
1880
1881         Additionally, remove the step that generates a list of source files
1882         going into the UnifiedSources build step. It's only necessarily to
1883         specify Sources.txt and SourcesCocoa.txt as inputs.
1884
1885         * Scripts/generate-unified-source-bundles.rb:
1886
1887 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
1888
1889         [JSC] Shrink sizeof(UnlinkedCodeBlock)
1890         https://bugs.webkit.org/show_bug.cgi?id=194281
1891
1892         Reviewed by Michael Saboff.
1893
1894         * wtf/TriState.h:
1895
1896 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
1897
1898         [GLib] Stop URI-escaping file system representations
1899         https://bugs.webkit.org/show_bug.cgi?id=194213
1900
1901         Reviewed by Carlos Garcia Campos.
1902
1903         Stop URI-escaping of file representation strings in
1904         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
1905         of strings in FileSystem::fileSystemRepresentation().
1906
1907         This behavior deviates from POSIX and CF implementations and is
1908         currently breaking IndexedDB-specific calculation of database sizes due
1909         to directory components used in that process that are URL-based and are
1910         as such URI-escaped. When unescaped, those single directory components
1911         explode into multiple directory components, leading to incorrect total
1912         database size calculation when iterating the database directory.
1913
1914         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
1915         filename charsets and in worst case converts the filesystem
1916         representation to UTF-8 before String::fromUTF8() is used.
1917         FileSystem::fileSystemRepresentation() reverses that process, taking
1918         String's UTF-8 data and converting it to target charset if necessary.
1919
1920         Other FileSystem functions are adjusted to convert passed-in String
1921         objects to filesystem representations.
1922
1923         * wtf/glib/FileSystemGlib.cpp:
1924         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
1925         (WTF::FileSystemImpl::fileSystemRepresentation):
1926         (WTF::FileSystemImpl::validRepresentation):
1927         (WTF::FileSystemImpl::filenameForDisplay):
1928         (WTF::FileSystemImpl::fileExists):
1929         (WTF::FileSystemImpl::deleteFile):
1930         (WTF::FileSystemImpl::deleteEmptyDirectory):
1931         (WTF::FileSystemImpl::getFileStat):
1932         (WTF::FileSystemImpl::getFileLStat):
1933         (WTF::FileSystemImpl::makeAllDirectories):
1934         (WTF::FileSystemImpl::createSymbolicLink):
1935         (WTF::FileSystemImpl::pathGetFileName):
1936         (WTF::FileSystemImpl::getVolumeFreeSpace):
1937         (WTF::FileSystemImpl::directoryName):
1938         (WTF::FileSystemImpl::listDirectory):
1939         (WTF::FileSystemImpl::openFile):
1940         (WTF::FileSystemImpl::moveFile):
1941         (WTF::FileSystemImpl::hardLinkOrCopyFile):
1942         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
1943         and treat input CString as an existing filesystem representation.
1944         (WTF::FileSystemImpl::unescapedFilename): Deleted.
1945
1946 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
1947
1948         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
1949         https://bugs.webkit.org/show_bug.cgi?id=174816
1950
1951         Reviewed by Michael Catanzaro.
1952
1953         Translate userVisibleString and dependent code into platform-neutral C++
1954         in wtf/URLHelpers.{h,cpp}.
1955
1956         * WTF.xcodeproj/project.pbxproj:
1957         * wtf/CMakeLists.txt:
1958         * wtf/URLHelpers.cpp: Added.
1959         (WTF::URLHelpers::loadIDNScriptWhiteList):
1960         (WTF::URLHelpers::isArmenianLookalikeCharacter):
1961         (WTF::URLHelpers::isArmenianScriptCharacter):
1962         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
1963         (WTF::URLHelpers::isLookalikeCharacter):
1964         (WTF::URLHelpers::whiteListIDNScript):
1965         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
1966         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
1967         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1968         (WTF::URLHelpers::isRussianDomainNameCharacter):
1969         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
1970         (WTF::URLHelpers::mapHostName):
1971         (WTF::URLHelpers::collectRangesThatNeedMapping):
1972         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1973         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1974         (WTF::URLHelpers::mapHostNames):
1975         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1976         (WTF::URLHelpers::toNormalizationFormC):
1977         (WTF::URLHelpers::userVisibleURL):
1978         * wtf/URLHelpers.h: Added.
1979         * wtf/cocoa/NSURLExtras.mm:
1980         (WTF::URLHelpers::loadIDNScriptWhiteList):
1981         (WTF::decodePercentEscapes):
1982         (WTF::decodeHostName):
1983         (WTF::encodeHostName):
1984         (WTF::URLWithUserTypedString):
1985         (WTF::userVisibleString):
1986
1987 2019-02-03  Commit Queue  <commit-queue@webkit.org>
1988
1989         Unreviewed, rolling out r240896.
1990         https://bugs.webkit.org/show_bug.cgi?id=194202
1991
1992         "Fixes leaks, but is probably not the correct fix." (Requested
1993         by ddkilzer on #webkit).
1994
1995         Reverted changeset:
1996
1997         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
1998         (48 bytes) in com.apple.WebKit.WebContent running layout
1999         tests"
2000         https://bugs.webkit.org/show_bug.cgi?id=193291
2001         https://trac.webkit.org/changeset/240896
2002
2003 2019-02-02  David Kilzer  <ddkilzer@apple.com>
2004
2005         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
2006         <https://webkit.org/b/193291>
2007         <rdar://problem/46655953>
2008
2009         Reviewed by Keith Miller.
2010
2011         * wtf/text/SymbolImpl.h:
2012         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
2013         class destructor that calls StringImpl::deref() on `m_owner`.
2014         Two of the three constructors leak the StringImpl when setting
2015         `m_owner`, so we need to balance that by manually calling
2016         deref().
2017
2018 2018-12-16  Darin Adler  <darin@apple.com>
2019
2020         Convert additional String::format clients to alternative approaches
2021         https://bugs.webkit.org/show_bug.cgi?id=192746
2022
2023         Reviewed by Alexey Proskuryakov.
2024
2025         * wtf/JSONValues.cpp:
2026         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
2027         escapeChar and reordered arguments to make sense as an append function.
2028         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
2029         reordered arguments to make sense as an append function, take a
2030         StringView instead of a String, used early exit to make the code
2031         a bit easier to read. Use the ASCIIHexDigit functions to construct
2032         a hex number a nibble at a time rather than using String::format.
2033         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
2034         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
2035
2036 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
2037
2038         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
2039
2040         * wtf/Platform.h:
2041
2042 2019-01-29  Chris Dumez  <cdumez@apple.com>
2043
2044         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
2045         https://bugs.webkit.org/show_bug.cgi?id=193848
2046
2047         Reviewed by Youenn Fablet.
2048
2049         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
2050         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
2051         identifiers such as Bug 193761.
2052
2053         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
2054         when they have a typedef for the ObjectIdentifier<T> type.
2055
2056         * WTF.xcodeproj/project.pbxproj:
2057         * wtf/CMakeLists.txt:
2058         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
2059         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
2060         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
2061         * wtf/ObjectIdentifier.h:
2062         (WTF::ObjectIdentifier::generate):
2063         (WTF::ObjectIdentifier::generateThreadSafe):
2064
2065 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
2066
2067         Move platform-specific files out of WTF root directory.
2068         https://bugs.webkit.org/show_bug.cgi?id=193929
2069
2070         Reviewed by Alex Christensen.
2071
2072         * WTF.xcodeproj/project.pbxproj:
2073         * wtf/CMakeLists.txt:
2074         * wtf/PlatformGTK.cmake:
2075         * wtf/PlatformJSCOnly.cmake:
2076         * wtf/PlatformMac.cmake:
2077         * wtf/PlatformPlayStation.cmake:
2078         * wtf/PlatformWPE.cmake:
2079         * wtf/PlatformWin.cmake:
2080         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
2081         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
2082         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
2083         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
2084         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
2085         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
2086         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
2087         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
2088         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
2089
2090 2019-01-28  Andy Estes  <aestes@apple.com>
2091
2092         [watchOS] Enable Parental Controls content filtering
2093         https://bugs.webkit.org/show_bug.cgi?id=193939
2094         <rdar://problem/46641912>
2095
2096         Reviewed by Ryosuke Niwa.
2097
2098         * wtf/Platform.h:
2099
2100 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
2101
2102         [JSCOnly][WTF] Expose FileSystem.
2103         https://bugs.webkit.org/show_bug.cgi?id=193789
2104
2105         Reviewed by Don Olmstead.
2106
2107         * wtf/FileSystem.h:
2108         * wtf/PlatformJSCOnly.cmake:
2109         * wtf/posix/FileSystemPOSIX.cpp:
2110         (WTF::FileSystemImpl::getVolumeFreeSpace):
2111         * wtf/win/FileSystemWin.cpp:
2112         (WTF::FileSystemImpl::fileSystemRepresentation):
2113
2114 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
2115
2116         AVStreamSession isn't always available, make a HAVE compile flag for it
2117         https://bugs.webkit.org/show_bug.cgi?id=193889
2118         <rdar://problem/47452863>
2119
2120         Reviewed by Jer Noble.
2121
2122         * wtf/FeatureDefines.h:
2123
2124 2018-12-15  Darin Adler  <darin@apple.com>
2125
2126         Replace many uses of String::format with more type-safe alternatives
2127         https://bugs.webkit.org/show_bug.cgi?id=192742
2128
2129         Reviewed by Mark Lam.
2130
2131         * wtf/WorkQueue.cpp:
2132         (WTF::WorkQueue::concurrentApply): Use makeString.
2133
2134         * wtf/dtoa.cpp:
2135         (WTF::dtoa): Use sprintf instead of String::format in the comments,
2136         since these functions have nothing to do with WTF::String.
2137
2138 2019-01-25  Chris Dumez  <cdumez@apple.com>
2139
2140         [iOS] Add support for the download attribute
2141         https://bugs.webkit.org/show_bug.cgi?id=167341
2142         <rdar://problem/30296281>
2143
2144         Reviewed by Geoffrey Garen.
2145
2146         Turn on HTML download attribute support on iOS.
2147
2148         * wtf/FeatureDefines.h:
2149
2150 2019-01-25  David Kilzer  <ddkilzer@apple.com>
2151
2152         Move soft-linking of Lookup.framework out of LookupSPI.h
2153         <https://webkit.org/b/193815>
2154
2155         Reviewed by Tim Horton.
2156
2157         * wtf/cocoa/SoftLinking.h:
2158         (SOFT_LINK_CONSTANT_FOR_HEADER):
2159         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
2160         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
2161         - Remove local declaration of constant.  This should be handled
2162           by including *SPI.h or "real" headers.
2163         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
2164         - Remove local declaration of constant.
2165         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
2166           `export` argument to support exporting of functions.
2167         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
2168         - Redefine in terms of
2169           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
2170
2171 2019-01-24  Youenn Fablet  <youenn@apple.com>
2172
2173         Use MonotonicTime in WorkerRunLoop
2174         https://bugs.webkit.org/show_bug.cgi?id=193417
2175
2176         Reviewed by Saam Barati.
2177
2178         * wtf/MessageQueue.h:
2179         (WTF::MessageQueue<DataType>::waitForMessage):
2180         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
2181
2182 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
2183
2184         Move FileSystem to WTF
2185         https://bugs.webkit.org/show_bug.cgi?id=193602
2186
2187         Reviewed by Yusuke Suzuki.
2188
2189         * WTF.xcodeproj/project.pbxproj:
2190         * wtf/CMakeLists.txt:
2191         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
2192         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
2193         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
2194         * wtf/PlatformGTK.cmake:
2195         * wtf/PlatformMac.cmake:
2196         * wtf/PlatformPlayStation.cmake:
2197         * wtf/PlatformWPE.cmake:
2198         * wtf/PlatformWin.cmake:
2199         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
2200         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
2201         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
2202         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
2203         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
2204         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
2205         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
2206         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
2207         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
2208
2209 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
2210
2211         [JSC] Reenable baseline JIT on mips
2212         https://bugs.webkit.org/show_bug.cgi?id=192983
2213
2214         Reviewed by Mark Lam.
2215
2216         Use baseline JIT by default on MIPS.
2217
2218         * wtf/Platform.h:
2219
2220 2019-01-24  David Kilzer  <ddkilzer@apple.com>
2221
2222         Duplicate global variables: WTF::asciiCaseFoldTable
2223         <https://webkit.org/b/193726>
2224         <rdar://problem/47334622>
2225
2226         Reviewed by Michael Catanzaro.
2227
2228         * WTF.xcodeproj/project.pbxproj:
2229         * wtf/CMakeLists.txt:
2230         - Add ASCIICType.cpp to build systems.
2231
2232         * wtf/ASCIICType.cpp: Added.
2233         (WTF::asciiCaseFoldTable): Move table to here so there is only
2234         one copy.  Mark as exported for other frameworks to use.
2235         * wtf/ASCIICType.h:
2236         (WTF::asciiCaseFoldTable): Change to extern declaration, and
2237         mark as exported for other frameworks to use.
2238
2239 2019-01-23  Mark Lam  <mark.lam@apple.com>
2240
2241         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
2242         https://bugs.webkit.org/show_bug.cgi?id=193744
2243         <rdar://problem/46262952>
2244
2245         Reviewed by Saam Barati.
2246
2247         * wtf/Platform.h:
2248
2249 2019-01-23  David Kilzer  <ddkilzer@apple.com>
2250
2251         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
2252         <https://webkit.org/b/193694>
2253         <rdar://problem/47464025>
2254
2255         Reviewed by Tim Horton.
2256
2257         * wtf/win/SoftLinking.h:
2258         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
2259         - Implement for Windows.
2260         (SOFT_LINK_CONSTANT_FOR_SOURCE):
2261         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
2262
2263 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
2264
2265         Cache bytecode to disk
2266         https://bugs.webkit.org/show_bug.cgi?id=192782
2267         <rdar://problem/46084932>
2268
2269         Reviewed by Keith Miller.
2270
2271         BitVectors have to be friends with JSC::CacheBitVector to allow
2272         serializing its buffer as part of the bytecode cache encoding.
2273
2274         * wtf/BitVector.h:
2275
2276 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
2277
2278         [GTK] Speculative build fix for Ubuntu LTS
2279         https://bugs.webkit.org/show_bug.cgi?id=193651
2280
2281         Unreviewed build fix.
2282
2283         * wtf/Assertions.h: Add missing <cstdlib> include.
2284
2285 2019-01-20  Saam Barati  <sbarati@apple.com>
2286
2287         Rollout r240210: It broke tests on iOS
2288         https://bugs.webkit.org/show_bug.cgi?id=193640
2289
2290         Unreviewed.
2291
2292         * wtf/BitVector.h:
2293
2294 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
2295
2296         Cache bytecode to disk
2297         https://bugs.webkit.org/show_bug.cgi?id=192782
2298         <rdar://problem/46084932>
2299
2300         Reviewed by Keith Miller.
2301
2302         BitVectors have to be friends with JSC::CacheBitVector to allow
2303         serializing its buffer as part of the bytecode cache encoding.
2304
2305         * wtf/BitVector.h:
2306
2307 2019-01-18  Tim Horton  <timothy_horton@apple.com>
2308
2309         Get rid of ADVANCED_SPELL_CHECKING
2310         https://bugs.webkit.org/show_bug.cgi?id=193592
2311
2312         Reviewed by Wenson Hsieh.
2313
2314         * wtf/Platform.h:
2315
2316 2019-01-18  Jer Noble  <jer.noble@apple.com>
2317
2318         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
2319         https://bugs.webkit.org/show_bug.cgi?id=189553
2320
2321         Reviewed by Tim Horton.
2322
2323         * Configurations/Base.xcconfig:
2324         * Configurations/SDKVariant.xcconfig: Added.
2325
2326 2019-01-18  Keith Miller  <keith_miller@apple.com>
2327
2328         Gigacages should start allocations from a slide
2329         https://bugs.webkit.org/show_bug.cgi?id=193523
2330
2331         Reviewed by Mark Lam.
2332
2333         This patch changes some macros into constants since macros are the
2334         devil.
2335
2336         * wtf/Gigacage.cpp:
2337         * wtf/Gigacage.h:
2338
2339 2019-01-18  Matt Lewis  <jlewis3@apple.com>
2340
2341         Unreviewed, rolling out r240160.
2342
2343         This broke multiple internal builds.
2344
2345         Reverted changeset:
2346
2347         "Gigacages should start allocations from a slide"
2348         https://bugs.webkit.org/show_bug.cgi?id=193523
2349         https://trac.webkit.org/changeset/240160
2350
2351 2019-01-18  Keith Miller  <keith_miller@apple.com>
2352
2353         Gigacages should start allocations from a slide
2354         https://bugs.webkit.org/show_bug.cgi?id=193523
2355
2356         Reviewed by Mark Lam.
2357
2358         This patch changes some macros into constants since macros are the
2359         devil.
2360
2361         * wtf/Gigacage.cpp:
2362         * wtf/Gigacage.h:
2363
2364 2019-01-17  Truitt Savell  <tsavell@apple.com>
2365
2366         Unreviewed, rolling out r240124.
2367
2368         This commit broke an internal build.
2369
2370         Reverted changeset:
2371
2372         "SDK_VARIANT build destinations should be separate from non-
2373         SDK_VARIANT builds"
2374         https://bugs.webkit.org/show_bug.cgi?id=189553
2375         https://trac.webkit.org/changeset/240124
2376
2377 2019-01-17  Jer Noble  <jer.noble@apple.com>
2378
2379         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
2380         https://bugs.webkit.org/show_bug.cgi?id=189553
2381
2382         Reviewed by Tim Horton.
2383
2384         * Configurations/Base.xcconfig:
2385         * Configurations/SDKVariant.xcconfig: Added.
2386
2387 2019-01-16  Keith Miller  <keith_miller@apple.com>
2388
2389         bmalloc should use JSC VM tag for gigacage
2390         https://bugs.webkit.org/show_bug.cgi?id=193496
2391
2392         Reviewed by Mark Lam.
2393
2394         Move most of the macros for vm tagging to bmalloc.
2395
2396         * wtf/VMTags.h:
2397
2398 2019-01-16  Alberto Garcia  <berto@igalia.com>
2399
2400         [WTF] Compilation fails with system malloc
2401         https://bugs.webkit.org/show_bug.cgi?id=172445
2402
2403         Reviewed by Michael Catanzaro.
2404
2405         Follow-up to r217270. The sysinfo() system call is specific to
2406         Linux so update the #ifdef checks accordingly.
2407
2408         * wtf/RAMSize.cpp:
2409         (WTF::computeRAMSize):
2410
2411 2019-01-15  Chris Dumez  <cdumez@apple.com>
2412
2413         Unreviewed, revert part of r239997 as it is not needed to fix the build.
2414
2415         * wtf/RefCounter.h:
2416
2417 2019-01-15  Alex Christensen  <achristensen@webkit.org>
2418
2419         Fix iOS build after r239993
2420         https://bugs.webkit.org/show_bug.cgi?id=193361
2421
2422         * wtf/RefCounter.h:
2423
2424 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
2425
2426         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
2427         https://bugs.webkit.org/show_bug.cgi?id=192945
2428
2429         Reviewed by Alex Christensen.
2430
2431         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
2432         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
2433         course this is much worse than the preexisting code, but this is just a transitional
2434         measure and not the final state of the code. It wouldn't make sense to do this if the code
2435         were to remain Objective C++.
2436
2437         * wtf/cocoa/NSURLExtras.mm:
2438         (WTF::toNormalizationFormC):
2439         (WTF::userVisibleString):
2440
2441 2019-01-14  Alex Christensen  <achristensen@webkit.org>
2442
2443         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
2444         https://bugs.webkit.org/show_bug.cgi?id=193411
2445         <rdar://problem/47215929>
2446
2447         Reviewed by Alexey Proskuryakov.
2448
2449         * wtf/cocoa/NSURLExtras.mm:
2450         (WTF::allCharactersAllowedByTLDRules):
2451
2452 2019-01-12  Timothy Hatcher  <timothy@apple.com>
2453
2454         Have prefers-color-scheme: light always match on macOS versions before Mojave.
2455         https://bugs.webkit.org/show_bug.cgi?id=191655
2456         rdar://problem/46074680
2457
2458         Reviewed by Megan Gardner.
2459
2460         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
2461
2462 2019-01-11  David Kilzer  <ddkilzer@apple.com>
2463
2464         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
2465         https://bugs.webkit.org/show_bug.cgi?id=191350
2466
2467         * wtf/WorkQueue.cpp:
2468         (WTF::WorkQueue::concurrentApply): Fix whitespace.
2469
2470 2019-01-11  Devin Rousso  <drousso@apple.com>
2471
2472         Fix style CFNetworkSPI style checker warnings from r239698
2473         https://bugs.webkit.org/show_bug.cgi?id=193369
2474
2475         Reviewed by Joseph Pecoraro.
2476
2477         * wtf/Platform.h:
2478
2479 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
2480
2481         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
2482         https://bugs.webkit.org/show_bug.cgi?id=191350
2483
2484         Reviewed by Brent Fulgham.
2485
2486         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
2487         String for the threadName and passes the raw pointer of this String to
2488         Thread::create(). After freeing this String, Thread::entryPoint() uses
2489         the raw char pointer to internally initialize the thread.
2490
2491         The fix is to use a single literal string for all the threads' names since
2492         they are created for a thread-pool.
2493
2494         * wtf/WorkQueue.cpp:
2495         (WTF::WorkQueue::concurrentApply):
2496
2497 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
2498
2499         Enable DFG on ARM/Linux again
2500         https://bugs.webkit.org/show_bug.cgi?id=192496
2501
2502         Reviewed by Yusuke Suzuki.
2503
2504         After changing the bytecode format DFG was disabled on all 32-bit
2505         architectures. Enable DFG now again on ARM/Linux.
2506
2507         * wtf/Platform.h:
2508
2509 2019-01-10  Commit Queue  <commit-queue@webkit.org>
2510
2511         Unreviewed, rolling out r239825.
2512         https://bugs.webkit.org/show_bug.cgi?id=193330
2513
2514         Broke tests on armv7/linux bots (Requested by guijemont on
2515         #webkit).
2516
2517         Reverted changeset:
2518
2519         "Enable DFG on ARM/Linux again"
2520         https://bugs.webkit.org/show_bug.cgi?id=192496
2521         https://trac.webkit.org/changeset/239825
2522
2523 2019-01-10  John Wilander  <wilander@apple.com>
2524
2525         Override the session configuration for cookieAcceptPolicy
2526         https://bugs.webkit.org/show_bug.cgi?id=190925
2527         <rdar://problem/45497382>
2528
2529         Reviewed by Alexey Proskuryakov and Alex Christensen.
2530
2531         * wtf/Platform.h:
2532             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
2533
2534 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
2535
2536         Enable DFG on ARM/Linux again
2537         https://bugs.webkit.org/show_bug.cgi?id=192496
2538
2539         Reviewed by Yusuke Suzuki.
2540
2541         After changing the bytecode format DFG was disabled on all 32-bit
2542         architectures. Enable DFG now again on ARM/Linux.
2543
2544         * wtf/Platform.h:
2545
2546 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2547
2548         [FreeType] Color emoji not properly supported
2549         https://bugs.webkit.org/show_bug.cgi?id=191976
2550
2551         Reviewed by Michael Catanzaro.
2552
2553         Add a name for combining enclosing keycap character.
2554
2555         * wtf/unicode/CharacterNames.h:
2556
2557 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
2558
2559         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
2560         https://bugs.webkit.org/show_bug.cgi?id=192391
2561
2562         Reviewed by Don Olmstead.
2563
2564         Unified Source Builds are using global sequential numbers for
2565         bundle filenames UnifiedSource{sequential-number}.cpp. As the
2566         result, every new source file added would shift the next ones and
2567         prevent compiler caches from speeding up consecutive builds e.g.
2568         in git-bisect sessions.
2569
2570         Changed it to directory local sequential numbers,
2571         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
2572
2573         This is affecting only CMake builds which is where no
2574         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
2575         are set. Xcode builds still use the old convention.
2576
2577         * Scripts/generate-unified-source-bundles.rb: Add new instance
2578         variables @currentDirectory and @extraFiles to BundleManager.
2579         Still use global sequential numbers if --max-cpp-bundle-count or
2580         --max-obj-c-bundle-count is given.
2581
2582 2019-01-09  Alex Christensen  <achristensen@webkit.org>
2583
2584         Expand use of sourceApplicationAuditData
2585         https://bugs.webkit.org/show_bug.cgi?id=192995
2586         <rdar://problem/46627875>
2587
2588         Reviewed by Brady Eidson.
2589
2590         * wtf/Platform.h:
2591
2592 2019-01-09  Mark Lam  <mark.lam@apple.com>
2593
2594         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
2595         https://bugs.webkit.org/show_bug.cgi?id=193292
2596         <rdar://problem/46485450>
2597
2598         Reviewed by Yusuke Suzuki.
2599
2600         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
2601
2602         * wtf/Gigacage.h:
2603
2604 2019-01-07  David Kilzer  <ddkilzer@apple.com>
2605
2606         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
2607         <https://webkit.org/b/193056>
2608
2609         Reviewed by Alex Christensen.
2610
2611         * wtf/RetainPtr.h:
2612         (WTF::RetainPtr<T>::HelperPtrType):
2613         - Use C++ template metaprogramming to define a shared return
2614           type for adoptNS() and retainPtr() that uses
2615           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
2616           non-Objective-C typedef is used with retainPtr() for CFTypeRef
2617           objects.
2618         (WTF::adoptNS):
2619         - Only make declarations available when compilng with
2620           Objective-C.  The inline implementation is only available for
2621           Objective-C, so this makes the declarations consistent.
2622         - Change return type to remove '*' from NS types using
2623           RetainPtr<T>::HelperPtrType.
2624         (WTF::retainPtr):
2625         - Change return type to remove '*' from NS types using
2626           RetainPtr<T>::HelperPtrType.
2627
2628         * wtf/SchedulePair.h:
2629         - Remove '*' from RetainPtr<> type.
2630
2631 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
2632
2633         A MediaTime timescale must never be zero
2634         https://bugs.webkit.org/show_bug.cgi?id=193156
2635         <rdar://problem/32504501>
2636
2637         Reviewed by Jer Noble.
2638
2639         * wtf/MediaTime.cpp:
2640         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
2641         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
2642         (WTF::MediaTime::createWithFloat): Ditto.
2643         (WTF::MediaTime::createWithDouble): Ditto.
2644         (WTF::MediaTime::setTimeScale): Ditto.
2645
2646 2019-01-02  Alex Christensen  <achristensen@webkit.org>
2647
2648         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
2649         https://bugs.webkit.org/show_bug.cgi?id=192944
2650
2651         Reviewed by Tim Horton.
2652
2653         * wtf/cocoa/NSURLExtras.mm:
2654         (WTF::isLookalikeCharacter):
2655
2656 2019-01-02  Commit Queue  <commit-queue@webkit.org>
2657
2658         Unreviewed, rolling out r239524.
2659         https://bugs.webkit.org/show_bug.cgi?id=193083
2660
2661         basic browsing seems not to work (Requested by thorton on
2662         #webkit).
2663
2664         Reverted changeset:
2665
2666         "Expand use of sourceApplicationAuditData"
2667         https://bugs.webkit.org/show_bug.cgi?id=192995
2668         https://trac.webkit.org/changeset/239524
2669
2670 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2671
2672         Add ENABLE_UNIFIED_BUILDS option to cmake ports
2673         https://bugs.webkit.org/show_bug.cgi?id=193045
2674
2675         Reviewed by Don Olmstead.
2676
2677         * Scripts/generate-unified-source-bundles.rb:
2678
2679 2018-12-27  Alex Christensen  <achristensen@webkit.org>
2680
2681         Resurrect Mac CMake build
2682         https://bugs.webkit.org/show_bug.cgi?id=192658
2683
2684         Reviewed by Yusuke Suzuki.
2685
2686         * wtf/PlatformMac.cmake:
2687         * wtf/cf/CFURLExtras.cpp:
2688         * wtf/cf/CFURLExtras.h:
2689         * wtf/cf/URLCF.cpp:
2690         * wtf/cocoa/NSURLExtras.h:
2691         * wtf/cocoa/NSURLExtras.mm:
2692         * wtf/cocoa/URLCocoa.mm:
2693
2694 2018-12-21  Dan Bernstein  <mitz@apple.com>
2695
2696         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
2697
2698         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
2699           deployment target, not the SDK.
2700
2701 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2702
2703         [JSC] Implement "well-formed JSON.stringify" proposal
2704         https://bugs.webkit.org/show_bug.cgi?id=191677
2705
2706         Reviewed by Darin Adler.
2707
2708         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
2709         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
2710         The proposal requires that broken surrogate pairs are unicode-escaped.
2711
2712         [1]: https://github.com/tc39/proposal-well-formed-stringify
2713
2714         * wtf/text/StringBuilderJSON.cpp:
2715         (WTF::appendQuotedJSONStringInternal):
2716
2717 2018-12-21  Alex Christensen  <achristensen@webkit.org>
2718
2719         Expand use of sourceApplicationAuditData
2720         https://bugs.webkit.org/show_bug.cgi?id=192995
2721         <rdar://problem/46627875>
2722
2723         Reviewed by Brady Eidson.
2724
2725         * wtf/Platform.h:
2726
2727 2018-12-21  Alex Christensen  <achristensen@webkit.org>
2728
2729         Revert r239503.
2730         https://bugs.webkit.org/show_bug.cgi?id=192944
2731
2732         * wtf/cocoa/NSURLExtras.mm:
2733         (WTF::isLookalikeCharacter):
2734
2735 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
2736
2737         Show punycode if URL contains Latin small letter dotless i
2738         https://bugs.webkit.org/show_bug.cgi?id=192944
2739         <rdar://problem/46103047>
2740
2741         Reviewed by Andy Estes.
2742
2743         Revise our "lookalike character" logic to include the small Latin
2744         dotless i character.
2745
2746         Test: fast/url/host.html
2747
2748         * wtf/cocoa/NSURLExtras.mm:
2749         (WTF::isLookalikeCharacter):
2750
2751 2018-12-20  Chris Dumez  <cdumez@apple.com>
2752
2753         Use Optional::hasValue() instead of Optional::has_value()
2754         https://bugs.webkit.org/show_bug.cgi?id=192948
2755
2756         Reviewed by Tim Horton.
2757
2758         * wtf/Hasher.h:
2759         (WTF::add):
2760         * wtf/Optional.h:
2761
2762 2018-12-20  Chris Dumez  <cdumez@apple.com>
2763
2764         Use Optional::valueOr() instead of Optional::value_or()
2765         https://bugs.webkit.org/show_bug.cgi?id=192933
2766
2767         Reviewed by Geoffrey Garen.
2768
2769         * wtf/Optional.h:
2770         (WTF::Optional<T::valueOr const):
2771
2772 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
2773
2774         Consistently use MaxLength for all WTF strings
2775         https://bugs.webkit.org/show_bug.cgi?id=192853
2776         <rdar://problem/45726906>
2777
2778         Reviewed by Mark Lam.
2779
2780         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
2781         but all the assertions were still done using UINT_MAX. Change it to
2782         use MaxLength for all checks.
2783
2784         * wtf/text/StringImpl.cpp:
2785         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2786         (WTF::StringImpl::reallocateInternal):
2787         (WTF::StringImpl::create):
2788         (WTF::StringImpl::convertToLowercaseWithoutLocale):
2789         (WTF::StringImpl::convertToUppercaseWithoutLocale):
2790         (WTF::StringImpl::convertToLowercaseWithLocale):
2791         (WTF::StringImpl::convertToUppercaseWithLocale):
2792         (WTF::StringImpl::foldCase):
2793         (WTF::StringImpl::find):
2794         (WTF::StringImpl::replace):
2795         (WTF::StringImpl::utf8ForCharacters):
2796         (WTF::StringImpl::tryGetUtf8ForRange const):
2797         * wtf/text/StringImpl.h:
2798         (WTF::lengthOfNullTerminatedString):
2799         (WTF::StringImpl::tryCreateUninitialized):
2800         (WTF::StringImpl::adopt):
2801         (WTF::StringImpl::maxInternalLength):
2802         * wtf/text/WTFString.cpp:
2803         (WTF::String::append):
2804         (WTF::String::insert):
2805         (WTF::String::fromUTF8):
2806         * wtf/text/WTFString.h:
2807         (WTF::String::reverseFind const):
2808
2809 2018-12-19  Chris Dumez  <cdumez@apple.com>
2810
2811         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
2812         https://bugs.webkit.org/show_bug.cgi?id=192728
2813         <rdar://problem/46746779>
2814
2815         Reviewed by Geoff Garen.
2816
2817         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
2818         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
2819
2820         Based on patch by David Kilzer.
2821
2822         * wtf/*:
2823
2824 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
2825
2826         [MediaStream] Force system camera/microphone TCC prompt if necessary
2827         https://bugs.webkit.org/show_bug.cgi?id=192820
2828         <rdar://problem/42680098>
2829
2830         Reviewed by Jer Noble.
2831
2832         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
2833
2834 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
2835
2836         Some builds are broken after r239262
2837         https://bugs.webkit.org/show_bug.cgi?id=192777
2838
2839         Reviewed by Simon Fraser.
2840
2841         * wtf/Platform.h:
2842
2843 2018-12-17  Daniel Bates  <dabates@apple.com>
2844
2845         Support concatenating StringView with other string types
2846         https://bugs.webkit.org/show_bug.cgi?id=177566
2847
2848         Reviewed by Darin Adler.
2849
2850         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
2851         other string types (e.g. String). This lets a person write more naturally looking code:
2852
2853         stringView + string
2854
2855         Instead of:
2856
2857         makeString(stringView, string)
2858
2859         * wtf/text/StringOperators.h:
2860         (WTF::operator+): Added various operator+ overloads.
2861
2862 2018-12-17  Commit Queue  <commit-queue@webkit.org>
2863
2864         Unreviewed, rolling out r239265 and r239274.
2865         https://bugs.webkit.org/show_bug.cgi?id=192765
2866
2867         unorm_normalize is deprecated, and broke an internal build
2868         (Requested by Truitt on #webkit).
2869
2870         Reverted changesets:
2871
2872         "[GTK][WPE] Need a function to convert internal URI to display
2873         ("pretty") URI"
2874         https://bugs.webkit.org/show_bug.cgi?id=174816
2875         https://trac.webkit.org/changeset/239265
2876
2877         "Fix the Apple Internal Mac build with a newer SDK"
2878         https://trac.webkit.org/changeset/239274
2879
2880 2018-12-17  Daniel Bates  <dabates@apple.com>
2881
2882         Fix the Apple Internal Mac build with a newer SDK
2883
2884         * wtf/URLHelpers.cpp:
2885         (WTF::URLHelpers::userVisibleURL):
2886
2887 2018-12-17  Matt Lewis  <jlewis3@apple.com>
2888
2889         Unreviewed, rolling out r239254.
2890
2891         This broke the Windows 10 Debug build
2892
2893         Reverted changeset:
2894
2895         "Replace many uses of String::format with more type-safe
2896         alternatives"
2897         https://bugs.webkit.org/show_bug.cgi?id=192742
2898         https://trac.webkit.org/changeset/239254
2899
2900 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
2901
2902         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
2903         https://bugs.webkit.org/show_bug.cgi?id=174816
2904
2905         Reviewed by Michael Catanzaro.
2906
2907         Translate userVisibleString and dependent code into platform-neutral C++
2908         in wtf/URLHelpers.{h,cpp}.
2909
2910         * WTF.xcodeproj/project.pbxproj:
2911         * wtf/CMakeLists.txt:
2912         * wtf/URLHelpers.cpp: Added.
2913         (WTF::URLHelpers::loadIDNScriptWhiteList):
2914         (WTF::URLHelpers::isArmenianLookalikeCharacter):
2915         (WTF::URLHelpers::isArmenianScriptCharacter):
2916         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
2917         (WTF::URLHelpers::isLookalikeCharacter):
2918         (WTF::URLHelpers::whiteListIDNScript):
2919         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
2920         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
2921         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
2922         (WTF::URLHelpers::isRussianDomainNameCharacter):
2923         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
2924         (WTF::URLHelpers::mapHostName):
2925         (WTF::URLHelpers::collectRangesThatNeedMapping):
2926         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
2927         (WTF::URLHelpers::applyHostNameFunctionToURLString):
2928         (WTF::URLHelpers::mapHostNames):
2929         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
2930         (WTF::URLHelpers::userVisibleURL):
2931         * wtf/URLHelpers.h: Added.
2932         * wtf/cocoa/NSURLExtras.mm:
2933         (WTF::URLHelpers::loadIDNScriptWhiteList):
2934         (WTF::decodePercentEscapes):
2935         (WTF::decodeHostName):
2936         (WTF::encodeHostName):
2937         (WTF::URLWithUserTypedString):
2938         (WTF::userVisibleString):
2939
2940 2018-12-15  Darin Adler  <darin@apple.com>
2941
2942         Use warning-ignoring macros more consistently and simply
2943         https://bugs.webkit.org/show_bug.cgi?id=192743
2944
2945         Reviewed by Mark Lam.
2946
2947         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
2948         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
2949         non-clang compilers, in part since the code is already inside
2950         #if COMPILER(CLANG), but also because it would be harmless to ignore this
2951         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
2952
2953 2018-12-15  Darin Adler  <darin@apple.com>
2954
2955         Replace many uses of String::format with more type-safe alternatives
2956         https://bugs.webkit.org/show_bug.cgi?id=192742
2957
2958         Reviewed by Mark Lam.
2959
2960         * wtf/WorkQueue.cpp:
2961         (WTF::WorkQueue::concurrentApply): Use makeString.
2962
2963         * wtf/dtoa.cpp:
2964         (WTF::dtoa): Use sprintf instead of String::format in the comments,
2965         since these functions have nothing to do with WTF::String.
2966
2967 2018-12-14  Darin Adler  <darin@apple.com>
2968
2969         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
2970         https://bugs.webkit.org/show_bug.cgi?id=192738
2971         rdar://problem/37502342
2972
2973         Reviewed by Mark Lam.
2974
2975         * wtf/Gigacage.cpp:
2976         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
2977         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
2978
2979 2018-12-14  David Kilzer  <ddkilzer@apple.com>
2980
2981         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
2982         <https://webkit.org/b/192710>
2983         <rdar://problem/46738962>
2984
2985         Reviewed by Eric Carlson.
2986
2987         * wtf/Logger.h:
2988         (WTF::LogArgument::toString): Make argument a const reference to
2989         avoid the copy.
2990
2991 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
2992
2993         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
2994         https://bugs.webkit.org/show_bug.cgi?id=192696
2995
2996         Reviewed by Michael Catanzaro.
2997
2998         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
2999         should support microsecond-precision delays. Such delays are common in
3000         JSC's Watchdog implementation and missing support for them has been
3001         causing test failures in the `testapi` program as well as some JSC
3002         tests that depend on the termination determination functionality of the
3003         JSC::Watchdog class.
3004
3005         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
3006         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
3007         The GSource's ready time is set manually, now with the necessary
3008         microsecond precision.
3009
3010         * wtf/glib/RunLoopGLib.cpp:
3011         (WTF::RunLoop::dispatchAfter):
3012
3013 2018-12-13  Saam Barati  <sbarati@apple.com>
3014
3015         The JSC shell should listen for memory pressure events and respond to them
3016         https://bugs.webkit.org/show_bug.cgi?id=192647
3017
3018         Reviewed by Keith Miller.
3019
3020         * wtf/MemoryPressureHandler.cpp:
3021         (WTF::MemoryPressureHandler::MemoryPressureHandler):
3022         (WTF::MemoryPressureHandler::setDispatchQueue):
3023         Make it so that we can customize which dispatch queue memory pressure
3024         events get handled on.
3025
3026         * wtf/MemoryPressureHandler.h:
3027         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
3028         Make it so that we can disable logging that happens on each memory
3029         pressure event.
3030
3031         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3032         (WTF::MemoryPressureHandler::install):
3033         (WTF::MemoryPressureHandler::uninstall):
3034         (WTF::MemoryPressureHandler::holdOff):
3035
3036 2018-12-13  David Kilzer  <ddkilzer@apple.com>
3037
3038         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
3039         <https://webkit.org/b/192666>
3040         <rdar://problem/46697952>
3041
3042         Reviewed by Alex Christensen.
3043
3044         * wtf/ParallelHelperPool.cpp:
3045         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
3046         reference and WTFMove().
3047         (WTF::ParallelHelperClient::setTask): Ditto.
3048         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
3049         (WTF::ParallelHelperClient::runTask): Use const reference.
3050         * wtf/ParallelHelperPool.h: Update declarations to match
3051         implementations.
3052
3053 2018-12-12  Alex Christensen  <achristensen@webkit.org>
3054
3055         Implement safe browsing in WebKit on WatchOS
3056         https://bugs.webkit.org/show_bug.cgi?id=192641
3057         <rdar://problem/46376188>
3058
3059         Reviewed by Geoff Garen.
3060
3061         * wtf/Platform.h:
3062         WatchOS has safe browsing, too!
3063
3064 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
3065
3066         [Win][Clang] Fix compilation warnings of WTF
3067         https://bugs.webkit.org/show_bug.cgi?id=192583
3068
3069         Reviewed by Alex Christensen.
3070
3071         clang-cl reports the following warnings.
3072
3073         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
3074         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
3075         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
3076         >                                                ^
3077         > 1 warning generated.
3078         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
3079         > ..\..\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]
3080         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
3081         >                                                      ^
3082         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
3083         >     WNDCLASS windowClass = { 0 };
3084         >                                ^
3085         > 2 warnings generated.
3086         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
3087         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
3088         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
3089         >                    ^
3090         > 1 warning generated.
3091
3092         * wtf/DateMath.cpp:
3093         (WTF::getLocalTime): Defined only if used.
3094         * wtf/StackBounds.cpp:
3095         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
3096         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
3097         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
3098
3099 2018-12-11  Andy Estes  <aestes@apple.com>
3100
3101         Introduce makeBlockPtr for lambdas
3102         https://bugs.webkit.org/show_bug.cgi?id=192594
3103
3104         Reviewed by Alex Christensen.
3105
3106         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
3107         signature as a class template argument. This patch introduces an overload of makeBlockPtr
3108         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
3109
3110         * wtf/BlockPtr.h:
3111         (WTF::makeBlockPtr):
3112
3113         Adopted makeBlockPtr.
3114
3115         * wtf/cocoa/WorkQueueCocoa.cpp:
3116         (WTF::WorkQueue::dispatch):
3117         (WTF::WorkQueue::dispatchAfter):
3118         (WTF::WorkQueue::concurrentApply):
3119
3120 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
3121
3122         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
3123         https://bugs.webkit.org/show_bug.cgi?id=192573
3124
3125         Reviewed by Simon Fraser.
3126
3127         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
3128         on it being set in FeatureDefines.xcconfig.
3129
3130         * wtf/Platform.h:
3131
3132 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
3133
3134         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
3135         https://bugs.webkit.org/show_bug.cgi?id=192428
3136
3137         Reviewed by Tim Horton.
3138
3139         * wtf/Platform.h:
3140
3141 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
3142
3143         Move more macros out of WebKit's config.h
3144         https://bugs.webkit.org/show_bug.cgi?id=192430
3145
3146         Reviewed by Tim Horton.
3147
3148         * wtf/Platform.h:
3149
3150 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3151
3152         Unreviewed, fix build failure on GCC 8.2, part 2
3153
3154         Add RefCountedArray::assign, and use it instead of operator= internally.
3155         We should have operator=(const RefCountedArray&) since it will be automatically generated
3156         if we do not have correct implementation here.
3157
3158         * wtf/RefCountedArray.h:
3159         (WTF::RefCountedArray::operator=):
3160         (WTF::RefCountedArray::assign):
3161
3162 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3163
3164         Unreviewed, fix build failure on GCC 8.2
3165
3166         We remove operator=<PtrTraits> call since it is not necessary.
3167         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
3168
3169         * wtf/RefCountedArray.h:
3170
3171 2018-12-08  Darin Adler  <darin@apple.com>
3172
3173         Fix stray-semicolon warning seen with a new version of clang in Xcode
3174         https://bugs.webkit.org/show_bug.cgi?id=192534
3175
3176         Reviewed by Alexey Proskuryakov.
3177
3178         * wtf/Lock.h: Removed an unneeded semicolon.
3179
3180 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
3181
3182         [WTF] Debug build fails due conflicting abort() method
3183         https://bugs.webkit.org/show_bug.cgi?id=192491
3184
3185         Reviewed by Michael Catanzaro.
3186
3187         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
3188         inside classes which have an ::abort() method, but only when __cplusplus is defined to
3189         allow inclusion of the header in plain C sources.
3190
3191 2018-12-07  Andy Estes  <aestes@apple.com>
3192
3193         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
3194         https://bugs.webkit.org/show_bug.cgi?id=192498
3195
3196         Reviewed by Tim Horton.
3197
3198         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
3199         which behave like their non-optional variants but do not require their classes to exist.
3200
3201         * wtf/cocoa/SoftLinking.h:
3202
3203 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
3204
3205         Move USE_NEW_THEME out of WebCore's config.h
3206         https://bugs.webkit.org/show_bug.cgi?id=192426
3207
3208         Reviewed by Tim Horton.
3209
3210         * wtf/Platform.h:
3211
3212 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
3213
3214         [SOUP] Move URLSoup back to WebCore after r238771
3215         https://bugs.webkit.org/show_bug.cgi?id=192306
3216
3217         Reviewed by Michael Catanzaro.
3218
3219         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
3220         libsoup as a new dependency of libjavascriptcoregtk.
3221
3222         * wtf/PlatformGTK.cmake:
3223         * wtf/PlatformWPE.cmake:
3224         * wtf/URL.h:
3225         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
3226
3227 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
3228
3229         Fix some unused parameter warnings
3230         https://bugs.webkit.org/show_bug.cgi?id=192336
3231
3232         Reviewed by Fujii Hironori.
3233
3234         * wtf/StackTrace.cpp:
3235         (WTFGetBacktrace):
3236         (WTF::StackTrace::demangle):
3237         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
3238         (WTF::MemoryPressureHandler::holdOff):
3239         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3240
3241 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
3242
3243         Modernize version check for _suppressedAutoAddedHTTPHeaders
3244         https://bugs.webkit.org/show_bug.cgi?id=192175
3245
3246         Reviewed by Tim Horton.
3247
3248         * wtf/Platform.h:
3249
3250 2018-11-30  Alex Christensen  <achristensen@webkit.org>
3251
3252         Fix Windows build after r238771
3253         https://bugs.webkit.org/show_bug.cgi?id=190234
3254
3255         * wtf/URLParser.h:
3256         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
3257
3258 2018-11-30  Alex Christensen  <achristensen@webkit.org>
3259
3260         Move URL from WebCore to WTF
3261         https://bugs.webkit.org/show_bug.cgi?id=190234
3262
3263         Reviewed by Keith Miller.
3264
3265         * WTF.xcodeproj/project.pbxproj:
3266         * wtf/CMakeLists.txt:
3267         * wtf/Forward.h:
3268         * wtf/PlatformGTK.cmake:
3269         * wtf/PlatformMac.cmake:
3270         * wtf/PlatformWPE.cmake:
3271         * wtf/PlatformWin.cmake:
3272         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
3273         (WTF::URL::protocolIs):
3274         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
3275         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
3276         (WTF::URLHash::hash):
3277         (WTF::URLHash::equal):
3278         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
3279         (WTF::URLParser::isInUserInfoEncodeSet):
3280         (WTF::URLParser::parseAuthority):
3281         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
3282         (WTF::URLParser::URLParser):
3283         (WTF::URLParser::result):
3284         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
3285         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
3286         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
3287         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
3288         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
3289         (WTF::isArmenianLookalikeCharacter):
3290         (WTF::isArmenianScriptCharacter):
3291         (WTF::isASCIIDigitOrValidHostCharacter):
3292         (WTF::isLookalikeCharacter):
3293         (WTF::whiteListIDNScript):
3294         (WTF::readIDNScriptWhiteListFile):
3295         (WTF::allCharactersInIDNScriptWhiteList):
3296         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
3297         (WTF::isRussianDomainNameCharacter):
3298         (WTF::allCharactersAllowedByTLDRules):
3299         (WTF::mapHostNameWithRange):
3300         (WTF::hostNameNeedsDecodingWithRange):
3301         (WTF::hostNameNeedsEncodingWithRange):
3302         (WTF::decodeHostNameWithRange):
3303         (WTF::encodeHostNameWithRange):
3304         (WTF::decodeHostName):
3305         (WTF::encodeHostName):
3306         (WTF::collectRangesThatNeedMapping):
3307         (WTF::collectRangesThatNeedEncoding):
3308         (WTF::collectRangesThatNeedDecoding):
3309         (WTF::applyHostNameFunctionToMailToURLString):
3310         (WTF::applyHostNameFunctionToURLString):
3311         (WTF::mapHostNames):
3312         (WTF::stringByTrimmingWhitespace):
3313         (WTF::URLByTruncatingOneCharacterBeforeComponent):
3314         (WTF::URLByRemovingResourceSpecifier):
3315         (WTF::URLWithData):
3316         (WTF::dataWithUserTypedString):
3317         (WTF::URLWithUserTypedString):
3318         (WTF::URLWithUserTypedStringDeprecated):
3319         (WTF::hasQuestionMarkOnlyQueryString):
3320         (WTF::dataForURLComponentType):
3321         (WTF::URLByRemovingComponentAndSubsequentCharacter):
3322         (WTF::URLByRemovingUserInfo):
3323         (WTF::originalURLData):
3324         (WTF::createStringWithEscapedUnsafeCharacters):
3325         (WTF::userVisibleString):
3326         (WTF::isUserVisibleURL):
3327         (WTF::rangeOfURLScheme):
3328         (WTF::looksLikeAbsoluteURL):
3329         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
3330         (WTF::URL::URL):
3331         (WTF::URL::createCFURL const):
3332         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
3333         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
3334
3335 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
3336
3337         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
3338         https://bugs.webkit.org/show_bug.cgi?id=192173
3339
3340         Reviewed by Tim Horton.
3341
3342         * wtf/Platform.h: Also renamed it to better match other version checks.
3343
3344 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
3345
3346         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
3347         https://bugs.webkit.org/show_bug.cgi?id=192041
3348
3349         Reviewed by Tim Horton.
3350
3351         * wtf/Platform.h:
3352
3353 2018-11-28  Mark Lam  <mark.lam@apple.com>
3354
3355         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
3356         https://bugs.webkit.org/show_bug.cgi?id=192110
3357         <rdar://problem/46317746>
3358
3359         Reviewed by Saam Barati.
3360
3361         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
3362         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
3363         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
3364         (and other projects) as well as JSC.  Hence, there's no reason why
3365         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
3366
3367         * wtf/Platform.h:
3368
3369 2018-11-28  Keith Rollin  <krollin@apple.com>
3370
3371         Update generate-unified-source-bundles.rb to generate .xcfilelist files
3372         https://bugs.webkit.org/show_bug.cgi?id=192029
3373         <rdar://problem/46285918>
3374
3375         Reviewed by Alex Christensen.
3376
3377         Update generate-unified-source-bundles.rb to generate output for
3378         .xcfilelist files. These files are used to indicate the sets of input
3379         and output files to Run Script build phases in Xcode. By invoking
3380         generate-unified-source-bundles.rb with -generate-xcfilelists, the
3381         script generates these .xcfilelist files. These .xcfilelist files can
3382         then be used to specify the inputs and outputs of the Generate Unified
3383         Sources build phases.
3384
3385         * Scripts/generate-unified-source-bundles.rb:
3386
3387 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
3388
3389         Remove another OS version check from NetworkDataTaskCocoa.mm
3390         https://bugs.webkit.org/show_bug.cgi?id=192046
3391
3392         Reviewed by Alex Christensen.
3393
3394         * wtf/Platform.h:
3395
3396 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
3397
3398         Modernize version checks for same site cookie support
3399         https://bugs.webkit.org/show_bug.cgi?id=192054
3400
3401         Reviewed by Tim Horton.
3402
3403         * wtf/Platform.h:
3404
3405 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
3406
3407         Modernize the check for async _saveCookies existence
3408         https://bugs.webkit.org/show_bug.cgi?id=191987
3409
3410         Reviewed by Dean Jackson.
3411
3412         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
3413         although it seems very likely that we want to do the same on other iOS family OSes.
3414
3415 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
3416
3417         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
3418         https://bugs.webkit.org/show_bug.cgi?id=191960
3419
3420         Reviewed by Alex Christensen.
3421
3422         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
3423         pointer argument of EncodePointer. Changed the type of stored
3424         function pointer returned by EncodePointer.
3425
3426 2018-11-26  Sam Weinig  <sam@webkit.org>
3427
3428         Streamline ListHashSet use in floating object code
3429         https://bugs.webkit.org/show_bug.cgi?id=191957
3430
3431         Reviewed by Alex Christensen.
3432
3433         * wtf/ListHashSet.h:
3434         Reverses the order of the template arguments for the find() and contains()
3435         overload that allow specifying a hash translator to allow the compiler to
3436         deduce type T. This simplifies call sites and matches other WTF containers.
3437
3438 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
3439
3440         CRASH() should call abort() except on Darwin and in developer builds
3441         https://bugs.webkit.org/show_bug.cgi?id=184408
3442
3443         Reviewed by Daniel Bates.
3444
3445         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
3446         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
3447
3448         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
3449         can't do that.
3450
3451         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
3452         is reportedly useful in nightmare scenarios where core dumps are unavailable.
3453
3454         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
3455         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
3456         is also non-constexpr.
3457
3458         * wtf/Assertions.h:
3459
3460 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
3461
3462         Unreviewed, rolling out r238469.
3463
3464         Broke the build
3465
3466         Reverted changeset:
3467
3468         "CRASH() should call abort() except on Darwin and in developer
3469         builds"
3470         https://bugs.webkit.org/show_bug.cgi?id=184408
3471         https://trac.webkit.org/changeset/238469
3472
3473 2018-11-24  Andy Estes  <aestes@apple.com>
3474
3475         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
3476         https://bugs.webkit.org/show_bug.cgi?id=191899
3477
3478         Reviewed by Dean Jackson.
3479
3480         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
3481         framework name. For example, NSView would have a class getter named
3482         namespace::get_AppKit_NSViewClass().
3483
3484         Including the framework name in the getter is unnecessary. Objective-C classes already exist
3485         in a global namespace, so there is no need to disambiguate class names by framework. This
3486         patch elides the framework name from the getter function. For example, NSView would now have
3487         a getter named namespace::getNSViewClass().
3488
3489         * wtf/cocoa/SoftLinking.h:
3490
3491 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
3492
3493         CRASH() should call abort() except on Darwin and in developer builds
3494         https://bugs.webkit.org/show_bug.cgi?id=184408
3495
3496         Reviewed by Daniel Bates.
3497
3498         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
3499         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
3500
3501         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
3502         can't do that.
3503
3504         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
3505         is reportedly useful in nightmare scenarios where core dumps are unavailable.
3506
3507         * wtf/Assertions.h:
3508
3509 2018-11-23  Sam Weinig  <sam@webkit.org>
3510
3511         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
3512         https://bugs.webkit.org/show_bug.cgi?id=191936
3513
3514         Reviewed by Zalan Bujtas.
3515
3516         Adds overloads for find, contains, insertBefore and remove that take raw pointers
3517         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
3518         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
3519         which already have this functionality. Like in the other collections, this is especially
3520         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
3521         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
3522         which is unique to ListHashSet. As would be expected, this specialization only changes the first
3523         parameter, the one that needs to be found, to support a raw pointer.  
3524
3525         * wtf/ListHashSet.h:
3526         (WTF::U>::find):
3527         (WTF::U>::find const):
3528         (WTF::U>::contains const):
3529         (WTF::U>::insertBefore):
3530         (WTF::U>::remove):
3531
3532 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3533
3534         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
3535         https://bugs.webkit.org/show_bug.cgi?id=191675
3536
3537         Reviewed by Mark Lam.
3538
3539         * wtf/InlineASM.h:
3540         * wtf/Platform.h:
3541
3542 2018-11-21  Andy Estes  <aestes@apple.com>
3543
3544         [Cocoa] Create a soft-linking file for PassKit
3545         https://bugs.webkit.org/show_bug.cgi?id=191875
3546         <rdar://problem/46203215>
3547
3548         Reviewed by Myles Maxfield.
3549
3550         * wtf/Platform.h: Defined USE_PASSKIT.
3551         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
3552         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
3553         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
3554
3555 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
3556
3557         Enable JIT on ARM/Linux
3558         https://bugs.webkit.org/show_bug.cgi?id=191548
3559
3560         Reviewed by Yusuke Suzuki.
3561
3562         Enable JIT by default on ARMv7/Linux after it was disabled with
3563         recent bytcode format change.
3564
3565         * wtf/Platform.h:
3566
3567 2018-11-14  Keith Rollin  <krollin@apple.com>
3568
3569         Fix #end vs. #endif typo.
3570         https://bugs.webkit.org/show_bug.cgi?id=191668
3571         <rdar://problem/46081704>
3572
3573         Reviewed by Alexey Proskuryakov.
3574
3575         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
3576         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
3577         to detect similar typos.
3578
3579         * Scripts/generate-unified-source-bundles.rb:
3580
3581 2018-11-12  Mark Lam  <mark.lam@apple.com>
3582
3583         Add OOM detection to StringPrototype's substituteBackreferences().
3584         https://bugs.webkit.org/show_bug.cgi?id=191563
3585         <rdar://problem/45720428>
3586
3587         Reviewed by Saam Barati.
3588
3589         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
3590         the hasOverflowed() check if m_string is not null.  When m_string is not null,
3591         the StringBuilder either only has a single String in m_string (with m_buffer being 
3592         null), or reifyString() has already been called (resulting in a non-null m_string
3593         with a possibly non-null m_buffer).
3594
3595         We can skip the overflow check because:
3596         1. if the StringBuilder only has a single String, then there cannot be an overflow.
3597         2. if reifyString() has already been called, then the hasOverflowed() checked has
3598            already been done because every code path that calls reifyString() first does
3599            the hasOverflowed() check.
3600
3601         We can skip shrinkToFit() because it only applies to m_buffer.
3602         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
3603         2. if reifyString() has already been called, then we either came down
3604            a. the toString() path with a null m_string previously, where we would have
3605               already called shrinkToFit() before reifyString(), or
3606            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
3607
3608         We can skip reifyString() because:
3609         1. if the StringBuilder only has a single String, then the string is already reified.
3610         2. if reifyString() has been already called, then the string is already reified.
3611
3612         Note that if m_string is the null string and m_buffer is null, reifyString() will
3613         replace it with the empty string.  For this reason, we cannot solely check for
3614         !m_buffer because we need to reify the null string into the empty string.
3615
3616         Note also that if m_string is null and m_buffer is non-null, reifyString() will
3617         create a String and set m_string to it.  However, m_buffer remains non-null.
3618         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
3619         We add a m_isReified flag (only when assertions are enabled) to track the reified
3620         case where both m_buffer and m_string are non-null.
3621
3622         * wtf/text/StringBuilder.cpp:
3623         (WTF::StringBuilder::reifyString const):
3624         * wtf/text/StringBuilder.h:
3625         (WTF::StringBuilder::toString):
3626
3627 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
3628
3629         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
3630         https://bugs.webkit.org/show_bug.cgi?id=191492
3631
3632         Reviewed by Alex Christensen.
3633
3634         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
3635         the cases, some systems have issues with applying this patch.
3636
3637         To work around the problem, the change is made is two patches, first rename to
3638         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
3639
3640         * WTF.xcodeproj/project.pbxproj:
3641         * wtf/CMakeLists.txt:
3642         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
3643         (wtfObjCMsgSend):
3644
3645 2018-11-09  Keith Miller  <keith_miller@apple.com>
3646
3647         LLInt VectorSizeOffset should be based on offset extraction
3648         https://bugs.webkit.org/show_bug.cgi?id=191468
3649
3650         Reviewed by Yusuke Suzuki.
3651
3652         Make things friends with LLIntOffsetsExtractor.
3653
3654         * wtf/RefCountedArray.h:
3655         * wtf/Vector.h:
3656
3657 2018-11-09  Jim Mason  <jmason@ibinx.com>
3658
3659         [WTF] Changes in bug 188867 break non-Linux Unix builds
3660         https://bugs.webkit.org/show_bug.cgi?id=191380
3661
3662         The intention of 188867 was to split out platform-specific
3663         heap query/release code.  Any unsupported platform
3664         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
3665         ended up sending all non-Linux platforms through the Linux
3666         implementation, which breaks the build for those platforms.
3667         This includes any user of the GTK target which is not Linux,
3668         such as the *BSDs, Solaris, etc.
3669
3670         Reviewed by Yusuke Suzuki.
3671
3672         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
3673         code only for Linux; all other platforms use the generic stub.
3674
3675 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
3676
3677         Removed mbmalloc target from WTF
3678         https://bugs.webkit.org/show_bug.cgi?id=191313
3679
3680         Reviewed by Saam Barati.
3681
3682         For benchmarking, WTF::fastMalloc is no longer meaningfully different
3683         from bmalloc. (And bmalloc has its own mbmalloc target.)
3684
3685         * Configurations/mbmalloc.xcconfig: Removed.
3686         * WTF.xcodeproj/project.pbxproj:
3687         * wtf/mbmalloc.cpp: Removed.
3688
3689 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
3690
3691         Re-add PLATFORM(IOS), now with the strict meaning
3692         https://bugs.webkit.org/show_bug.cgi?id=191281
3693
3694         Reviewed by Tim Horton.
3695
3696         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
3697         when expanded, it might be that the values are incorrect for some flavors of iOS family.
3698
3699 2018-11-08  Dean Jackson  <dino@apple.com>
3700
3701         Add a String literal that returns a String
3702         https://bugs.webkit.org/show_bug.cgi?id=191425
3703         <rdar://problem/45914556>
3704
3705         Reviewed by Sam Weinig.
3706
3707         Add a new String literal, _str, that will return a String type.
3708         This is useful when ""_s won't work, such as for things that
3709         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
3710         or Variants.
3711
3712         * wtf/text/WTFString.h:
3713         (WTF::StringLiterals::operator _str): Added.
3714
3715 2018-11-06  Justin Fan  <justin_fan@apple.com>
3716
3717         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
3718         https://bugs.webkit.org/show_bug.cgi?id=191291
3719
3720         Reviewed by Myles Maxfield.
3721
3722         Properly disable WEBGPU on all non-Metal platforms for now.
3723
3724         * wtf/Platform.h:
3725
3726 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
3727
3728         Cache glyph paths and share underline skipping code between all the ports
3729         https://bugs.webkit.org/show_bug.cgi?id=191239
3730
3731         Reviewed by Alex Christensen.
3732
3733         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
3734
3735         * wtf/Platform.h:
3736
3737 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
3738
3739         Enable LLInt on ARMv7/Linux
3740         https://bugs.webkit.org/show_bug.cgi?id=191190
3741
3742         Reviewed by Yusuke Suzuki.
3743
3744         After enabling the new bytecode format in r237547, C_LOOP was
3745         forced on all 32-bit platforms. Now enable LLInt again on
3746         ARMv7-Thumb2/Linux by default.
3747
3748         * wtf/Platform.h:
3749
3750 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
3751
3752         [Win] Use C++14, not C++17
3753         https://bugs.webkit.org/show_bug.cgi?id=191101
3754
3755         Reviewed by Alex Christensen.
3756
3757         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
3758         instead of _MSC_FULL_VER.
3759
3760 2018-11-02  Justin Fan  <justin_fan@apple.com>
3761
3762         [WebGPU] Experimental prototype for MSL shaders
3763         https://bugs.webkit.org/show_bug.cgi?id=191084
3764
3765         Reviewed by Dean Jackson.
3766
3767         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
3768
3769         * wtf/Platform.h:
3770
3771 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
3772
3773         Replace CommonRandom SPI with API
3774         https://bugs.webkit.org/show_bug.cgi?id=191178
3775         <rdar://problem/45722391>
3776
3777         Reviewed by Brent Fulgham.
3778
3779         * WTF.xcodeproj/project.pbxproj:
3780         * wtf/CMakeLists.txt:
3781         * wtf/RandomDevice.cpp:
3782         (WTF::RandomDevice::cryptographicallyRandomValues):
3783         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
3784
3785 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
3786
3787         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
3788         https://bugs.webkit.org/show_bug.cgi?id=189693
3789
3790         Reviewed by Yusuke Suzuki.
3791
3792         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
3793         * wtf/CMakeLists.txt: Ditto.
3794         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
3795         * wtf/text/StringImpl.cpp: Ditto.
3796         * wtf/text/StringView.cpp: Ditto.
3797         * wtf/text/WTFString.cpp: Ditto.
3798         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
3799         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
3800
3801 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
3802
3803         [PlayStation] Enable JavaScriptCore
3804         https://bugs.webkit.org/show_bug.cgi?id=191072
3805
3806         Reviewed by Brent Fulgham.
3807
3808         Add platform files for the PlayStation port.
3809
3810         * wtf/PlatformPlayStation.cmake: Added.
3811
3812 2018-10-30  David Kilzer  <ddkilzer@apple.com>
3813
3814         XSLTProcessor should limit max transform depth
3815         <https://webkit.org/b/191075>
3816         <rdar://problem/45531453>
3817
3818         Reviewed by Alex Christensen.
3819
3820         * wtf/cocoa/SoftLinking.h:
3821         (SOFT_LINK_VARIABLE_FOR_HEADER):
3822         (SOFT_LINK_VARIABLE_FOR_SOURCE):
3823         - Add macros for non-constant global variables.
3824
3825 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
3826
3827         Clean up some obsolete MAX_ALLOWED macros
3828         https://bugs.webkit.org/show_bug.cgi?id=190916
3829
3830         Reviewed by Tim Horton.
3831
3832         * WTF.xcodeproj/project.pbxproj:
3833         * wtf/PlatformMac.cmake:
3834         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
3835
3836 2018-10-29  Mark Lam  <mark.lam@apple.com>
3837
3838         Correctly detect string overflow when using the 'Function' constructor.
3839         https://bugs.webkit.org/show_bug.cgi?id=184883
3840         <rdar://problem/36320331>
3841
3842         Reviewed by Saam Barati.
3843
3844         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
3845            a. StringBuilder::OverflowHandler::CrashOnOverflow.
3846            b. StringBuilder::OverflowHandler::RecordOverflow.
3847
3848            CrashOnOverflow will crash the moment an overflow or failure to allocate
3849            memory is detected.
3850
3851            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
3852            overflow or failure to allocate memory is detected.  However, if the user
3853            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
3854            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
3855            will crash regardless because these methods can only meaningfully do their
3856            work and return a result if and only if the builder has not overflowed.
3857
3858            By default, the StringBuilder crashes on overflow (the old behavior) unless it
3859            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
3860            enum.
3861
3862            Design note:
3863
3864            The StringBuilder can only be put in 1 of the 2 modes at the time of
3865            construction.  This means that we could have implemented it as a template
3866            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
3867            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
3868
3869            However, I was not able to get clang to export the explicitly instantiated
3870            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
3871            Since the StringBuilder is a transient object (not stored for a long time on
3872            the heap), and the runtime check of the boolean is not that costly compared
3873            to other work that StringBuilder routinely does (e.g. memcpy), using the
3874            new ConditionalCrashOnOverflow (which does a runtime check to determine to
3875            crash or not on overflow) is fine.
3876
3877            When clang is able to export explicitly instantiated template methods, we can
3878            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
3879            See https://bugs.webkit.org/show_bug.cgi?id=191050.
3880
3881         To support the above, we also did:
3882
3883         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
3884            fail without crashing.  This also meant that ...
3885
3886         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
3887            FastMalloc, and bmalloc (and related peers) to enable this.
3888
3889         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
3890            like CrashOnOverflow or RecordOverflow.
3891
3892         * wtf/CheckedArithmetic.h:
3893         (WTF::ConditionalCrashOnOverflow::overflowed):
3894         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
3895         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
3896         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
3897         (WTF::ConditionalCrashOnOverflow::clearOverflow):
3898         (WTF::ConditionalCrashOnOverflow::crash):
3899         (WTF::RecordOverflow::overflowed):
3900         (WTF::Checked::unsafeGet const):
3901         * wtf/FastMalloc.cpp:
3902         (WTF::tryFastRealloc):
3903         * wtf/FastMalloc.h:
3904         * wtf/text/StringBuilder.cpp:
3905         (WTF::expandedCapacity):
3906         (WTF::StringBuilder::reifyString const):
3907         (WTF::StringBuilder::resize):
3908         (WTF::StringBuilder::allocateBuffer):
3909         (WTF::StringBuilder::allocateBufferUpConvert):
3910         (WTF::StringBuilder::reallocateBuffer<LChar>):
3911         (WTF::StringBuilder::reallocateBuffer<UChar>):
3912         (WTF::StringBuilder::reserveCapacity):
3913         (WTF::StringBuilder::appendUninitialized):
3914         (WTF::StringBuilder::appendUninitializedSlow):
3915         (WTF::StringBuilder::append):
3916         (WTF::StringBuilder::canShrink const):
3917         (WTF::StringBuilder::shrinkToFit):
3918         * wtf/text/StringBuilder.h:
3919         (WTF::StringBuilder::StringBuilder):
3920         (WTF::StringBuilder::didOverflow):
3921         (WTF::StringBuilder::hasOverflowed const):
3922         (WTF::StringBuilder::crashesOnOverflow const):
3923         (WTF::StringBuilder::append):
3924         (WTF::StringBuilder::toString):
3925         (WTF::StringBuilder::toStringPreserveCapacity const):
3926         (WTF::StringBuilder::toAtomicString const):
3927         (WTF::StringBuilder::length const):
3928         (WTF::StringBuilder::capacity const):
3929         (WTF::StringBuilder::operator[] const):
3930         (WTF::StringBuilder::swap):
3931         (WTF::StringBuilder::getBufferCharacters<UChar>):
3932         * wtf/text/StringBuilderJSON.cpp:
3933         (WTF::StringBuilder::appendQuotedJSONString):
3934         * wtf/text/StringImpl.cpp:
3935         (WTF::StringImpl::reallocateInternal):
3936         (WTF::StringImpl::reallocate):
3937         (WTF::StringImpl::tryReallocate):
3938         * wtf/text/StringImpl.h:
3939
3940 2018-10-29  Tim Horton  <timothy_horton@apple.com>
3941
3942         Modernize WebKit nibs and lprojs for localization's sake
3943         https://bugs.webkit.org/show_bug.cgi?id=190911
3944         <rdar://problem/45349466>
3945
3946         Reviewed by Dan Bernstein.
3947
3948         * WTF.xcodeproj/project.pbxproj:
3949         English->en
3950
3951 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
3952
3953         New bytecode format for JSC
3954         https://bugs.webkit.org/show_bug.cgi?id=187373
3955         <rdar://problem/44186758>
3956
3957         Reviewed by Filip Pizlo.
3958
3959         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
3960         a macro was passed multiple arguments
3961         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
3962         * wtf/Vector.h:
3963         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
3964
3965 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
3966
3967         HashMap should support selecting a random entry
3968         https://bugs.webkit.org/show_bug.cgi?id=190814
3969
3970         Reviewed by Ryosuke Niwa.
3971
3972         * wtf/HashTable.h:
3973         (WTF::HashTable::random):
3974         (WTF::HashTable::random const): Merge the empty and deleted checks, and
3975         use more idiomatic addressing.
3976
3977 2018-10-26  Commit Queue  <commit-queue@webkit.org>
3978
3979         Unreviewed, rolling out r237479 and r237484.
3980         https://bugs.webkit.org/show_bug.cgi?id=190978
3981
3982         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
3983
3984         Reverted changesets:
3985
3986         "New bytecode format for JSC"
3987         https://bugs.webkit.org/show_bug.cgi?id=187373
3988         https://trac.webkit.org/changeset/237479
3989
3990         "Gardening: Build fix after r237479."
3991         https://bugs.webkit.org/show_bug.cgi?id=187373
3992         https://trac.webkit.org/changeset/237484
3993
3994 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
3995
3996         New bytecode format for JSC
3997         https://bugs.webkit.org/show_bug.cgi?id=187373
3998         <rdar://problem/44186758>
3999
4000         Reviewed by Filip Pizlo.
4001
4002         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
4003         a macro was passed multiple arguments
4004         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
4005         * wtf/Vector.h:
4006         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
4007
4008 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
4009
4010         HashMap should support selecting a random entry
4011         https://bugs.webkit.org/show_bug.cgi?id=190814
4012
4013         Reviewed by Antti Koivisto.
4014
4015         * wtf/HashTable.h:
4016         (WTF::HashTable::random):
4017         (WTF::HashTable::random const): Draw a new random bucket any time we
4018         have a miss, to avoid bias caused by lopsided tables.
4019
4020 2018-10-26  Antti Koivisto  <antti@apple.com>
4021
4022         hashSet.remove(hashSet.random()) doesn't build
4023         https://bugs.webkit.org/show_bug.cgi?id=190953
4024
4025         Reviewed by Chris Dumez.
4026
4027         * wtf/HashSet.h:
4028
4029         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
4030
4031         * wtf/HashTable.h:
4032         (WTF::HashTable::random const):
4033
4034         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
4035
4036 2018-10-26  Alicia Boya García  <aboya@igalia.com>
4037
4038         [MSE][WTF][Media] Invalid MediaTime should be falsy
4039         https://bugs.webkit.org/show_bug.cgi?id=190893
4040
4041         Reviewed by Jer Noble.
4042
4043         This patch modifies the definition of MediaTime so that invalid times
4044         are evaluated to false in the context of a boolean expression.
4045
4046         * wtf/MediaTime.cpp:
4047         (WTF::MediaTime::operator! const):
4048         (WTF::MediaTime::operator bool const):
4049
4050 2018-10-26  Keith Miller  <keith_miller@apple.com>
4051
4052         Some internal projects include wtf headers and build with C++11
4053         https://bugs.webkit.org/show_bug.cgi?id=190791
4054
4055         Reviewed by Alexey Proskuryakov.
4056
4057         C++11 doesn't support constexpr functions that contain
4058         statements. This patch removes getLSBSet set from builds before
4059         C++14 to avoid this for now.
4060
4061         * wtf/MathExtras.h:
4062         (getLSBSet):
4063
4064 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
4065
4066         Cleanup: inline constexpr is redundant as constexpr implies inline
4067         https://bugs.webkit.org/show_bug.cgi?id=190819
4068
4069         Reviewed by Mark Lam.
4070
4071         * wtf/Bitmap.h:
4072         (WTF::WordType>::Bitmap):
4073         * wtf/LEBDecoder.h:
4074         (WTF::LEBDecoder::maxByteLength):
4075         * wtf/MathExtras.h:
4076         (defaultMinimumForClamp):
4077         (defaultMaximumForClamp):
4078         (clampToAccepting64):
4079         (isLessThan):
4080         (isLessThanEqual):
4081         (isGreaterThan):
4082         (isGreaterThanEqual):
4083         (WTF::roundUpToPowerOfTwo):
4084         (WTF::maskForSize):
4085         * wtf/Optional.h:
4086         * wtf/PtrTag.h:
4087         (WTF::tagCodePtr):
4088         (WTF::untagCodePtr):
4089         (WTF::retagCodePtr):
4090         (WTF::removeCodePtrTag):
4091         * wtf/StdLibExtras.h:
4092         (WTF::roundUpToMultipleOf):
4093         * wtf/Variant.h:
4094         (WTF::operator==):
4095         (WTF::operator!=):
4096         (WTF::operator>=):
4097         (WTF::operator<=):
4098         (WTF::operator>):
4099         (WTF::operator<):
4100         * wtf/text/StringImpl.h:
4101         (WTF::StringImplShape::StringImplShape):
4102         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
4103
4104 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
4105
4106         HashMap should support selecting a random entry
4107         https://bugs.webkit.org/show_bug.cgi?id=190814
4108
4109         Reviewed by Antti Koivisto.
4110
4111         In some cases, remove(begin()) is not quite good enough as a random
4112         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
4113         So, let's support real random eviction.
4114
4115         (And by "real" I mean "pseudo".)
4116
4117         * wtf/HashCountedSet.h:
4118         * wtf/HashMap.h:
4119         * wtf/HashSet.h:
4120         * wtf/ListHashSet.h:
4121         (WTF::ListHashSet::random):
4122         (WTF::ListHashSet::random const):
4123         * wtf/LoggingHashMap.h:
4124         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
4125
4126         * wtf/HashTable.h:
4127         (WTF::HashTable::random):
4128         (WTF::HashTable::random const): Implement the random() iterator.
4129         makeIterator() already supports starting from any bucket, so this is
4130         pretty easy.
4131
4132         In the subtle case where we select end(), we choose to wrap around and
4133         return begin(). We expect that clients don't really think of the end()
4134         bucket as being in the domain of the random search. Also, we don't want
4135         to annoy clients who know their tables are non-empty with needless
4136         checks for end().
4137
4138         * wtf/RandomNumber.cpp:
4139         (WTF::weakRandomUint32):
4140         * wtf/RandomNumber.h: Added a free function for weak random numbers so
4141         that clients that want cheap random numbers aren't required to allocate
4142         storage for a WeakRandom generator.
4143
4144 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
4145
4146         Turn on Conic Gradients
4147         https://bugs.webkit.org/show_bug.cgi?id=190810
4148
4149         Reviewed by Tim Horton.
4150
4151         * wtf/FeatureDefines.h:
4152
4153 2018-10-24  Christopher Reid  <chris.reid@sony.com>
4154
4155         [Win] Add function call name information to stack traces
4156         https://bugs.webkit.org/show_bug.cgi?id=190761
4157
4158         Reviewed by Fujii Hironori.
4159
4160         Add symbol information to stack traces using dbghelp.dll
4161         This library will use symbols files from these sources:
4162             - The current working directory
4163             - The directory containing the application's executable
4164             - _NT_SYMBOL_PATH environment variable
4165             - _NT_ALTERNATE_SYMBOL_PATH environment variable
4166
4167         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
4168         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
4169         can still attempt to call the library at the same time as WebKit.
4170
4171         * wtf/CMakeLists.txt:
4172         * wtf/PlatformWin.cmake:
4173         * wtf/StackTrace.cpp:
4174         * wtf/win/DbgHelperWin.cpp: Added.
4175         * wtf/win/DbgHelperWin.h: Added.
4176
4177 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
4178
4179         Really prevent PLATFORM(IOS) from being used
4180         https://bugs.webkit.org/show_bug.cgi?id=190813
4181
4182         Reviewed by Tim Horton.
4183
4184         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
4185
4186 2018-10-22  Chris Dumez  <cdumez@apple.com>
4187
4188         Deque's contains() and findIf() should be const
4189         https://bugs.webkit.org/show_bug.cgi?id=190796
4190
4191         Reviewed by Antti Koivisto.
4192
4193         Deque's contains() and findIf() should be const as they do not modify the container.
4194
4195         * wtf/Deque.h:
4196         (WTF::inlineCapacity>::findIf):
4197         (WTF::inlineCapacity>::findIf const):
4198         (WTF::inlineCapacity>::contains const):
4199         (WTF::inlineCapacity>::contains): Deleted.
4200
4201 2018-10-18  Alicia Boya García  <aboya@igalia.com>
4202
4203         [Media] Use nanoseconds as MaximumTimeScale
4204         https://bugs.webkit.org/show_bug.cgi?id=190631
4205
4206         1e9 is a much more useful timescale than the previous one 2^31-1.
4207         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
4208         common among some formats like WebM and frameworks like GStreamer
4209         where base 10 timescale is common... and it's those big timescales the
4210         ones that are usually scaled up to MaximumTimeScale.
4211
4212         Reviewed by Jer Noble.
4213
4214         * wtf/MediaTime.cpp:
4215
4216 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
4217
4218         Remove PLATFORM(IOS) for now
4219         https://bugs.webkit.org/show_bug.cgi?id=190737
4220
4221         Reviewed by Tim Horton.
4222
4223         * wtf/Platform.h:
4224
4225 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
4226
4227         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)