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