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