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