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