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