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