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