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