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