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