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