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