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