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