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