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