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