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