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