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