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