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