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