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