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