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