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