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