Update double-conversion to the latest version
[WebKit-https.git] / Source / WTF / ChangeLog-2018-09-11
1 2018-09-10  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2
3         [WTF] Add Markable<T, Traits>
4         https://bugs.webkit.org/show_bug.cgi?id=189231
5
6         Reviewed by Sam Weinig.
7
8         We can represent a value with nullopt by using std::optional<T>. However, std::optional<T> has storage efficiency
9         problem. It always has a bool indicating that the value is nullopt or not. If we have a following class,
10
11             class A {
12                 std::optional<WallTime> m_timeA;
13                 std::optional<WallTime> m_timeB;
14                 std::optional<WallTime> m_timeC;
15             };
16
17         This class has significant amount of padding between m_timeA / m_timeB, m_timeB / m_timeC due to the above bool.
18
19         If we know that WallTime has a value that represents invalid, we can use it instead and save the storage.
20         This is very similar problem to our HashTable implementation. In our HashTable implementation, we need Deleted
21         and Empty value, which can represent Deleted and Empty values without sacrificing storage efficiency.
22
23         We should have similar mechanism here. In this patch, we have WTF::Markable<T, Traits>. Traits offers
24         `Traits::isEmptyValue(value)` and `Traits::emptyValue()`. Then, we use this empty value instead of having bool
25         flag. This way, we can make `sizeof(WTF::Markable<T>) == sizeof(T)`.
26
27         This idea is inspired from https://github.com/akrzemi1/markable. But we would like to have WTF::Markable<T>
28         here instead of importing it since we would like to have (1) integrated interfaces with std::optional<T> and (2)
29         aligned function names to HashTraits' `isEmptyValue` and `emptyValue`.
30
31         * WTF.xcodeproj/project.pbxproj:
32         * wtf/CMakeLists.txt:
33         * wtf/Markable.h: Added.
34         (WTF::std::underlying_type<EnumType>::type>::max): EnumMarkableTraits can be used as an MarkableTraits for enum
35         values. We can specify a constant value as an empty value.
36         (WTF::IntegralMarkableTraits::isEmptyValue):
37         (WTF::IntegralMarkableTraits::emptyValue): IntegralMarkableTraits can be used as an MarkableTraits for integral
38         types including int etc.
39         (WTF::Markable::Markable):
40         (WTF::Markable::operator bool const):
41         (WTF::Markable::reset):
42         (WTF::Markable::value const):
43         (WTF::Markable::value):
44         (WTF::Markable::operator-> const):
45         (WTF::Markable::operator->):
46         (WTF::Markable::operator* const):
47         (WTF::Markable::operator*):
48         (WTF::Markable::operator std::optional<T>):
49         (WTF::Markable::operator std::optional<T> const): This operator allows us to cast Markable<T> to
50         std::optional<T>.
51         * wtf/MonotonicTime.h:
52         (WTF::MonotonicTime::MarkableTraits::isEmptyValue):
53         (WTF::MonotonicTime::MarkableTraits::emptyValue): MarkableTraits for MonotonicTime. MonotonicTime::nan() is used
54         as an empty value.
55         * wtf/Seconds.h:
56         (WTF::Seconds::MarkableTraits::isEmptyValue):
57         (WTF::Seconds::MarkableTraits::emptyValue): MarkableTraits for Seconds. Seconds::nan() is used as an empty value.
58         * wtf/WallTime.h:
59         (WTF::WallTime::nan):
60         (WTF::WallTime::MarkableTraits::isEmptyValue):
61         (WTF::WallTime::MarkableTraits::emptyValue): MarkableTraits for WallTime. WallTime::nan() is used as an empty value.
62
63 2018-09-09  Fujii Hironori  <Hironori.Fujii@sony.com>
64
65         Add specialized template declarations of HashTraits and DefaultHash to detect misuse
66         https://bugs.webkit.org/show_bug.cgi?id=189044
67
68         Reviewed by Yusuke Suzuki.
69
70         * wtf/BitVector.h: Removed unnecessary HashTraits declaration.
71         * wtf/MetaAllocatorPtr.h: Ditto.
72         * wtf/IndexSparseSet.h: Removed unused #include <wtf/HashTraits.h>.
73         * wtf/LoggingHashMap.h: Removed unused #include <wtf/LoggingHashTraits.h>.
74         * wtf/StackShot.h: Added #include <wtf/HashTraits.h> because this header uses SimpleClassHashTraits.
75         Removed unnecessary HashTraits declaration.
76
77 2018-09-07  Commit Queue  <commit-queue@webkit.org>
78
79         Unreviewed, rolling out r235784.
80         https://bugs.webkit.org/show_bug.cgi?id=189421
81
82         RunLoopCF does not agree to the fix (Requested by yusukesuzuki
83         on #webkit).
84
85         Reverted changeset:
86
87         "[RunLoopGeneric] OneShotTimer should be inactive when fired."
88         https://bugs.webkit.org/show_bug.cgi?id=189335
89         https://trac.webkit.org/changeset/235784
90
91 2018-09-07  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
92
93         [RunLoopGeneric] OneShotTimer should be inactive when fired.
94         https://bugs.webkit.org/show_bug.cgi?id=189335
95
96         Reviewed by Yusuke Suzuki.
97
98         * wtf/generic/RunLoopGeneric.cpp:
99         (WTF::RunLoop::TimerBase::ScheduledTask::fired):
100         (WTF::RunLoop::TimerBase::isActive const):
101
102         Deactivate one-shot timer before invoking its callback. 
103
104 2018-09-05  Brent Fulgham  <bfulgham@apple.com>
105
106         The width of an empty or nullptr TextRun should be zero
107         https://bugs.webkit.org/show_bug.cgi?id=189154
108         <rdar://problem/43685926>
109
110         Reviewed by Zalan Bujtas.
111
112         Most accessors in WTFString.cpp, such as isAllASCII(), hash(), etc., perform a nullptr check
113         before using m_impl, but is8Bit() does not.
114
115         This patch adds a check in the is8Bit() implementation to be consistent with other methods,
116         and to address a small number of crashes observed in testing.
117
118         * wtf/text/WTFString.h:
119         (WTF::String::is8Bit const):
120
121 2018-09-05  Mark Lam  <mark.lam@apple.com>
122
123         Remove unused bad_optional_access implementation.
124         https://bugs.webkit.org/show_bug.cgi?id=189297
125
126         Reviewed by David Kilzer.
127
128         This is a speculative fix for resolving build errors arising from conflicting
129         definitions of bad_optional_access when building WebKit with the latest clang.
130
131         * wtf/Optional.h:
132         (std::bad_optional_access::bad_optional_access): Deleted.
133
134 2018-09-04  Michael Saboff  <msaboff@apple.com>
135
136         YARR: JIT RegExps with back references
137         https://bugs.webkit.org/show_bug.cgi?id=180874
138
139         Reviewed by Filip Pizlo.
140
141         Added ENABLE_YARR_JIT_BACKREFERENCES to enable RegExp JIT'ing of back references
142         for 64 bit platforms only.
143
144         * wtf/Platform.h:
145
146 2018-08-31  Antti Koivisto  <antti@apple.com>
147
148         Replace OptionSet |= and -= operators with add() and remove() functions
149         https://bugs.webkit.org/show_bug.cgi?id=189169
150
151         Reviewed by Anders Carlsson.
152
153         Improve code readability.
154
155         * wtf/OptionSet.h:
156         (WTF::OptionSet::add):
157         (WTF::OptionSet::remove):
158         (WTF::OptionSet::operator==):
159         (WTF::OptionSet::operator!=):
160         (WTF::OptionSet::operator|=): Deleted.
161         (WTF::OptionSet::operator-=): Deleted.
162         * wtf/ProcessPrivilege.cpp:
163         (WTF::addProcessPrivilege):
164         (WTF::removeProcessPrivilege):
165
166 2018-08-31  David Kilzer  <ddkilzer@apple.com>
167
168         REGRESSION (r226407): Remove unused BlockStack.h
169         <https://webkit.org/b/189189>
170
171         Reviewed by Yusuke Suzuki.
172
173         * WTF.xcodeproj/project.pbxproj: Remove references to BlockStack.h.
174         * wtf/BlockStack.h: Remove.
175         * wtf/CMakeLists.txt: Remove references to BlockStack.h.
176
177 2018-08-30  Don Olmstead  <don.olmstead@sony.com>
178
179         [CMake] Replace AVFoundationSupport.py using CMake
180         https://bugs.webkit.org/show_bug.cgi?id=182891
181
182         Reviewed by Per Arne Vollan.
183
184         Rely on CMake values for the added HAVE_* checks.
185
186         * wtf/Platform.h:
187
188 2018-08-30  Tim Horton  <timothy_horton@apple.com>
189
190         Bundle unified sources more tightly in projects with deep directory structures
191         https://bugs.webkit.org/show_bug.cgi?id=189009
192
193         Reviewed by Simon Fraser.
194
195         * Scripts/generate-unified-source-bundles.rb:
196         It turns out our plan to switch unified source bundle every time the directory
197         changes is not a good fit for projects like WebKit2 with many small directories.
198         It leaves many unified source bundles with only a single source file,
199         achieving only ~40% density.
200
201         Instead, switch unified source bundles every time the top-level directory changes.
202         This still achieves the goal of *usually* only rebuilding the one top-level
203         directory you touched, and increases source bundle density wildly, to ~95%.
204
205         * wtf/Platform.h:
206
207 2018-08-29  David Kilzer  <ddkilzer@apple.com>
208
209         Rename wtf/text/mac/StringMac.mm to wtf/text/cococa/StringCococa.mm
210         <https://webkit.org/b/189082>
211
212         Reviewed by Sam Weinig.
213
214         Includes a drive-by fix for a webkit-style warning:
215
216             ERROR: Source/WTF/wtf/text/cocoa/StringCocoa.mm:34:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
217
218         * WTF.xcodeproj/project.pbxproj: Update for move and rename.
219         * wtf/PlatformMac.cmake: Add missing cocoa/StringCocoa.mm source
220         file.  Drive-by fix for rename of
221         TextBreakIteratorInternalICUMac.mm to
222         TextBreakIteratorInternalICUCocoa.cpp.
223         * wtf/text/cocoa/StringCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringMac.mm.
224         (WTF::String::String):
225
226 2018-08-27  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
227
228         [WebAssembly] Parse wasm modules in a streaming fashion
229         https://bugs.webkit.org/show_bug.cgi?id=188943
230
231         Reviewed by Mark Lam.
232
233         Add maxByteLength function to get the maximum size for T.
234
235         * wtf/LEBDecoder.h:
236         (WTF::LEBDecoder::maxByteLength):
237         (WTF::LEBDecoder::decodeUInt):
238         (WTF::LEBDecoder::decodeInt):
239
240 2018-08-27  Keith Rollin  <krollin@apple.com>
241
242         Unreviewed build fix -- disable LTO for production builds
243
244         * Configurations/Base.xcconfig:
245
246 2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
247
248         Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
249         https://bugs.webkit.org/show_bug.cgi?id=188931
250
251         Reviewed by Wenson Hsieh.
252
253         * wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
254
255 2018-08-27  Keith Rollin  <krollin@apple.com>
256
257         Build system support for LTO
258         https://bugs.webkit.org/show_bug.cgi?id=187785
259         <rdar://problem/42353132>
260
261         Reviewed by Dan Bernstein.
262
263         Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
264         LTO.
265
266         * Configurations/Base.xcconfig:
267         * Configurations/DebugRelease.xcconfig:
268
269 2018-08-25  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
270
271         Shrink size of XMLHttpRequest
272         https://bugs.webkit.org/show_bug.cgi?id=188944
273
274         Reviewed by Saam Barati.
275
276         StringBuilder is included in XMLHttpRequest. We reduce the size of StringBuilder too
277         by reordering members.
278
279         * wtf/text/StringBuilder.h:
280         (WTF::StringBuilder::StringBuilder):
281
282 2018-08-24  Tim Horton  <timothy_horton@apple.com>
283
284         Improve unified source generator script logging and error messages
285         https://bugs.webkit.org/show_bug.cgi?id=188932
286
287         Reviewed by Simon Fraser.
288
289         * Scripts/generate-unified-source-bundles.rb:
290         Add the ability to explain why you're getting usage() instead of just printing it.
291         Capitalize log messages, and improve the wording in a few places.
292
293 2018-08-24  Antti Koivisto  <antti@apple.com>
294
295         Allow creating WeakPtrs to const objects
296         https://bugs.webkit.org/show_bug.cgi?id=188785
297
298         Reviewed by Geoff Garen.
299
300         const Foo foo;
301         WeakPtr<const Foo> weakConstFoo = makeWeakPtr(foo);
302
303         * wtf/WeakPtr.h:
304         (WTF::WeakPtrFactory::createWeakPtr const):
305
306         Add a separate factory function for const T.
307         The underlying WeakReference is kept non-const in all cases.
308
309 2018-08-23  David Fenton  <david_fenton@apple.com>
310
311         Unreviewed, rolling out r235129.
312
313         broke internal builds
314
315         Reverted changeset:
316
317         "Allow creating WeakPtrs to const objects"
318         https://bugs.webkit.org/show_bug.cgi?id=188785
319         https://trac.webkit.org/changeset/235129
320
321 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
322
323         [CMake] Add HAVE_MALLOC_TRIM definition
324         https://bugs.webkit.org/show_bug.cgi?id=188897
325
326         Reviewed by Konstantin Tokarev.
327
328         Use HAVE(MALLOC_TRIM) check instead of __GLIBC__.
329
330         * wtf/linux/MemoryPressureHandlerLinux.cpp:
331         (WTF::MemoryPressureHandler::platformReleaseMemory):
332
333 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
334
335         [WTF] Add generic implementation for Memory querying
336         https://bugs.webkit.org/show_bug.cgi?id=188867
337         <rdar://problem/43630726>
338
339         Unreviewed build fix.
340
341         Adding MemoryPressureHandler::memoryMeasurementTimerFired was done
342         prematurely.
343
344         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
345         (WTF::MemoryPressureHandler::memoryMeasurementTimerFired): Deleted.
346
347 2018-08-22  Don Olmstead  <don.olmstead@sony.com>
348
349         [WTF] Add generic implementation for Memory querying
350         https://bugs.webkit.org/show_bug.cgi?id=188867
351
352         Reviewed by Fujii Hironori.
353
354         Moves generic implementation of MemoryPressureHandler from
355         MemoryPressureHandler.cpp into MemoryPressureHandlerGeneric
356         and generic implementation of memoryFootprint from
357         MemoryFootprintLinux.cpp to MemoryFootprintGeneric.
358
359         * wtf/MemoryPressureHandler.cpp:
360         (WTF::MemoryPressureHandler::install): Deleted.
361         (WTF::MemoryPressureHandler::uninstall): Deleted.
362         (WTF::MemoryPressureHandler::respondToMemoryPressure): Deleted.
363         (WTF::MemoryPressureHandler::platformReleaseMemory): Deleted.
364         (WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage): Deleted.
365         * wtf/PlatformJSCOnly.cmake:
366         * wtf/generic/MemoryFootprintGeneric.cpp: Added.
367         (WTF::memoryFootprint):
368         * wtf/generic/MemoryPressureHandlerGeneric.cpp: Added.
369         (WTF::MemoryPressureHandler::memoryMeasurementTimerFired):
370         (WTF::MemoryPressureHandler::platformReleaseMemory):
371         (WTF::MemoryPressureHandler::install):
372         (WTF::MemoryPressureHandler::uninstall):
373         (WTF::MemoryPressureHandler::holdOff):
374         (WTF::MemoryPressureHandler::respondToMemoryPressure):
375         (WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
376         * wtf/linux/CurrentProcessMemoryStatus.cpp:
377         * wtf/linux/CurrentProcessMemoryStatus.h:
378         * wtf/linux/MemoryFootprintLinux.cpp:
379         (WTF::computeMemoryFootprint):
380         (WTF::memoryFootprint):
381         * wtf/linux/MemoryPressureHandlerLinux.cpp:
382
383 2018-08-21  Antti Koivisto  <antti@apple.com>
384
385         Allow creating WeakPtrs to const objects
386         https://bugs.webkit.org/show_bug.cgi?id=188785
387
388         Reviewed by Geoffrey Garen.
389
390         const Foo foo;
391         WeakPtr<const Foo> weakConstFoo = makeWeakPtr(foo);
392
393         * wtf/WeakPtr.h:
394         (WTF::WeakPtrFactory::createWeakPtr const):
395
396         Add a separate factory function for const T.
397         The underlying WeakReference is kept non-const in all cases.
398
399 2018-08-21  Carlos Garcia Campos  <cgarcia@igalia.com>
400
401         [Linux] Cache the memory footprint and only update it after 1 second
402         https://bugs.webkit.org/show_bug.cgi?id=188791
403
404         Reviewed by Yusuke Suzuki.
405
406         Getting the memory footprint is an expensive operation in Linux. When called multiple times, the CPU usage is
407         too much (see bug #188787). We could cache the result for at least 1 second to ensure we don't call it more than
408         once per second.
409
410         * wtf/linux/MemoryFootprintLinux.cpp:
411         (WTF::forEachLine):
412         (WTF::computeMemoryFootprint):
413         (WTF::memoryFootprint):
414
415 2018-08-20  Saam barati  <sbarati@apple.com>
416
417         Inline DataView accesses into DFG/FTL
418         https://bugs.webkit.org/show_bug.cgi?id=188573
419         <rdar://problem/43286746>
420
421         Reviewed by Michael Saboff.
422
423         * wtf/TriState.h:
424
425 2018-08-19  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
426
427         [WTF] Add WTF::unalignedLoad and WTF::unalignedStore
428         https://bugs.webkit.org/show_bug.cgi?id=188716
429
430         Reviewed by Darin Adler.
431
432         While some CPUs allow unaligned accesses to memory, doing it in C++ with `reinterpret_cast<>` is
433         undefined behavior. This patch adds WTF::{unalignedLoad,unalignedStore} helper functions, which
434         can load from and store to the pointer in an unaligned manner.
435         Actual implementation uses `memcpy`. This can be optimized to direct unaligned access operations
436         in supported CPUs like x86. Even though a CPU does not support unaligned accesses, memcpy is still
437         safe and the compiler emits appropriate code.
438
439         We name these functions `unalignedLoad` and `unalignedStore` instead of `loadUnaligned` and `storeUnaligned`
440         in order to align them to `atomicLoad` and `atomicStore`.
441
442         * WTF.xcodeproj/project.pbxproj:
443         * wtf/CMakeLists.txt:
444         * wtf/UnalignedAccess.h: Added.
445         (WTF::unalignedLoad):
446         (WTF::unalignedStore):
447         * wtf/text/StringCommon.h:
448         (WTF::equal):
449         (WTF::loadUnaligned): Deleted.
450
451 2018-08-17  David Kilzer  <ddkilzer@apple.com>
452
453         WTF's internal std::optional implementation should release assert on all bad accesses
454         <https://webkit.org/b/187669>
455
456         Reviewed by Ryosuke Niwa.
457
458         * wtf/Assertions.h:
459         (RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT): Add macro definitions.
460         * wtf/Optional.h:
461         (std::optional::operator -> const):
462         (std::optional::operator ->):
463         (std::optional::operator * const):
464         (std::optional::operator *):
465         (std::optional::value const):
466         (std::optional::value):
467         (std::optional<T::operator-> const):
468         (std::optional<T::operator* const):
469         (std::optional<T::value const):
470         - Change ASSERT_UNDER_CONSTEXPR_CONTEXT() macros to
471           RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT() macros.
472
473 2018-08-16  Andy Estes  <aestes@apple.com>
474
475         [watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions)
476         https://bugs.webkit.org/show_bug.cgi?id=188664
477
478         Reviewed by Tim Horton.
479
480         * wtf/FeatureDefines.h: Defined ENABLE_PROXIMITY_NETWORKING to 1 on watchOS.
481
482 2018-08-16  Alex Christensen  <achristensen@webkit.org>
483
484         Re-introduce assertion removed in r234890
485         https://bugs.webkit.org/show_bug.cgi?id=188611
486
487         Reviewed by Geoffrey Garen.
488
489         * wtf/text/WTFString.h:
490
491 2018-08-16  Antti Koivisto  <antti@apple.com>
492
493         Use OptionSet for ActivityState::Flags
494         https://bugs.webkit.org/show_bug.cgi?id=188554
495
496         Reviewed by Brent Fulgham.
497
498         * wtf/OptionSet.h:
499         (WTF::OptionSet::operator^):
500
501         Add xor operator, useful for finding changes between sets.
502
503 2018-08-15  Ben Richards  <benton_richards@apple.com>
504
505         We should cache the compiled sandbox profile in a data vault
506         https://bugs.webkit.org/show_bug.cgi?id=184991
507
508         Reviewed by Ryosuke Niwa.
509
510         Added trace points for sandbox initialization and exposed functions needed for sandbox caching
511
512         * wtf/SystemTracing.h:
513         * wtf/spi/darwin/SandboxSPI.h:
514
515 2018-08-15  Michael Catanzaro  <mcatanzaro@igalia.com>
516
517         [WPE][GTK] WaylandCompositor fails to properly remove surface from its page map
518         https://bugs.webkit.org/show_bug.cgi?id=188520
519
520         Reviewed by Alex Christensen.
521
522         Add a comment pointing to CanMakeWeakPtr, since it's useful and I very nearly missed it.
523
524         * wtf/WeakPtr.h:
525
526 2018-08-14  Saam barati  <sbarati@apple.com>
527
528         HashMap<Ref<P>, V> asserts when V is not zero for its empty value
529         https://bugs.webkit.org/show_bug.cgi?id=188582
530
531         Reviewed by Sam Weinig.
532
533         The issue happened when we'd fill the hash table buffer with empty values. We
534         would iterate the buffer and invoke placement new with the incoming value being the
535         empty value. For Ref, this means that, we'd call its move constructor, which calls
536         leakRef(), which asserts that the Ref's pointer is not null. We'd like to keep
537         this assert since it catches bugs where you leakRef() more than once or WTFMove
538         an already moved Ref.
539         
540         This patch fixes this issue by adding a new trait for constructing an empty
541         value. We use that in HashTable instead of directly calling placement new.
542
543         * wtf/HashTable.h:
544         (WTF::HashTableBucketInitializer<false>::initialize):
545         * wtf/HashTraits.h:
546         (WTF::GenericHashTraits::constructEmptyValue):
547         (WTF::HashTraits<Ref<P>>::constructEmptyValue):
548         (WTF::KeyValuePairHashTraits::constructEmptyValue):
549
550 2018-08-14  Fujii Hironori  <Hironori.Fujii@sony.com>
551
552         Unreviewed, rolling out r234859.
553
554         Windows ports can't compile
555
556         Reverted changeset:
557
558         "Use a Variant instead of a union in CSSSelector"
559         https://bugs.webkit.org/show_bug.cgi?id=188559
560         https://trac.webkit.org/changeset/234859
561
562 2018-08-14  Alex Christensen  <achristensen@webkit.org>
563
564         isValidCSSSelector is unsafe to be called from a non-main thread
565         https://bugs.webkit.org/show_bug.cgi?id=188581
566         <rdar://problem/40517358>
567
568         Reviewed by Sam Weinig.
569
570         * wtf/Vector.h:
571         (WTF::minCapacity>::isolatedCopy):
572
573 2018-08-14  Alex Christensen  <achristensen@webkit.org>
574
575         Use a Variant instead of a union in CSSSelector
576         https://bugs.webkit.org/show_bug.cgi?id=188559
577
578         Reviewed by Antti Koivisto.
579
580         * wtf/Variant.h:
581         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
582
583 2018-08-13  Don Olmstead  <don.olmstead@sony.com>
584
585         Meaning of OptionSet::contains is unclear when used with OptionSet argument
586         https://bugs.webkit.org/show_bug.cgi?id=188501
587         <rdar://problem/43246242>
588
589         Reviewed by Simon Fraser.
590
591         MSVC is unable to compile contains using an initializer_list within a lambda.
592
593         * wtf/OptionSet.h:
594         (WTF::OptionSet::contains const):
595
596 2018-08-13  Antti Koivisto  <antti@apple.com>
597
598         Meaning of OptionSet::contains is unclear when used with OptionSet argument
599         https://bugs.webkit.org/show_bug.cgi?id=188501
600
601         Reviewed by Anders Carlsson.
602
603         The existing behavior is "contains any" but it is not very clear from the name.
604
605         * wtf/OptionSet.h:
606         (WTF::OptionSet::contains const):
607
608         This is now for testing a single option only.
609
610         (WTF::OptionSet::containsAny const):
611         (WTF::OptionSet::containsAll const):
612
613         Add separate functions for OptionSet argument.
614
615 2018-08-13  Commit Queue  <commit-queue@webkit.org>
616
617         Unreviewed, rolling out r234747.
618         https://bugs.webkit.org/show_bug.cgi?id=188524
619
620         plugin processes crash on launch (Requested by smfr on
621         #webkit).
622
623         Reverted changeset:
624
625         "We should cache the compiled sandbox profile in a data vault"
626         https://bugs.webkit.org/show_bug.cgi?id=184991
627         https://trac.webkit.org/changeset/234747
628
629 2018-08-10  Ryosuke Niwa  <rniwa@webkit.org>
630
631         [macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
632         https://bugs.webkit.org/show_bug.cgi?id=188480
633
634         Reviewed by Simon Fraser.
635
636         Added the SDK version for macOS Mojave.
637
638         * wtf/spi/darwin/dyldSPI.h:
639
640 2018-08-10  Antti Koivisto  <antti@apple.com>
641
642         Use OptionSet for various RenderLayer flags
643         https://bugs.webkit.org/show_bug.cgi?id=188472
644
645         Reviewed by Simon Fraser.
646
647         * wtf/MathExtras.h:
648         (hasOneBitSet):
649         (hasZeroOrOneBitsSet):
650         (hasTwoOrMoreBitsSet):
651
652         Make constexpr.
653
654         * wtf/OptionSet.h:
655         (WTF::OptionSet::OptionSet):
656
657         Always use constexpr, no need for separate debug versions with C++14.
658
659 2018-08-09  Ben Richards  <benton_richards@apple.com>
660
661         We should cache the compiled sandbox profile in a data vault
662         https://bugs.webkit.org/show_bug.cgi?id=184991
663
664         Reviewed by Ryosuke Niwa.
665
666         Added trace points for sandbox initialization and exposed functions needed for sandbox caching
667
668         * wtf/SystemTracing.h:
669         * wtf/spi/darwin/SandboxSPI.h:
670
671 2018-08-09  Saam Barati  <sbarati@apple.com>
672
673         memoryFootprint should return size_t not optional<size_t>
674         https://bugs.webkit.org/show_bug.cgi?id=188444
675
676         Reviewed by Simon Fraser.
677
678         We're now going to return zero instead of returning nullopt on failure.
679         There was a lot of code dancing around memoryFootprint failing for no
680         good reason.
681         
682         Users of this API were previously doing this on failure:
683         - Treating it as zero (this was the most common user).
684         - Crashing.
685         - Bailing out early and not changing our memory pressure state. This change
686         has the effect that instead of not changing our memory pressure state on
687         failure, we will go back to thinking we're not under memory pressure. Since
688         we relied on this API not failing to do anything useful (like kill the process
689         or release memory), this won't change our behavior here in a meaningful way.
690
691         * wtf/MemoryFootprint.h:
692         * wtf/MemoryPressureHandler.cpp:
693         (WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
694         (WTF::MemoryPressureHandler::shrinkOrDie):
695         (WTF::MemoryPressureHandler::measurementTimerFired):
696         * wtf/cocoa/MemoryFootprintCocoa.cpp:
697         (WTF::memoryFootprint):
698         * wtf/linux/MemoryFootprintLinux.cpp:
699         (WTF::memoryFootprint):
700         * wtf/linux/MemoryPressureHandlerLinux.cpp:
701         (WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
702         * wtf/win/MemoryFootprintWin.cpp:
703         (WTF::memoryFootprint):
704
705 2018-08-05  Darin Adler  <darin@apple.com>
706
707         [Cocoa] More tweaks and refactoring to prepare for ARC
708         https://bugs.webkit.org/show_bug.cgi?id=188245
709
710         Reviewed by Dan Bernstein.
711
712         * WTF.xcodeproj/project.pbxproj: Updated for rename: FoundationSPI.h -> objcSPI.h.
713
714         * wtf/BlockPtr.h: Added missing include of "StdLibExtras.h".
715         Also re-sorted includes.
716
717         * wtf/HashFunctions.h: Add function for "__unsafe_unretained id".
718         * wtf/HashTraits.h: Add traits for "__unsafe_unretained id".
719
720         * wtf/PlatformMac.cmake: Updated for rename: FoundationSPI.h -> objcSPI.h.
721
722         * wtf/WeakObjCPtr.h: Use mutable instead of const_cast, and write a version
723         that uses __weak explicitly under ARC. Also moved function declarations from
724         here to objcSPI.h.
725
726         * wtf/cocoa/AutodrainedPool.cpp: Updated include for rename: FoundationSPI.h -> objcSPI.h.
727
728         * wtf/spi/cocoa/objcSPI.h: Renamed from FoundationSPI.h and added the
729         additional functions used by WeakObjCPtr.h. Also changed to both include the
730         internal header and the function definitions when compiling with
731         USE(APPLE_INTERNAL_SDK), helping us check that function definitions match.
732
733 2018-08-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
734
735         Shrink size of PropertyCondition by packing UniquedStringImpl* and Kind
736         https://bugs.webkit.org/show_bug.cgi?id=188328
737
738         Reviewed by Saam Barati.
739
740         This patch adds CompactPointerTuple, which can pack a pointer and 8bit value into 8bytes.
741         In 32bit architecture, it just has two fields for a pointer and 8bit value. In 64bit architecture,
742         we use upper 5bits (zeros because of the effective width of virtual address) and lower 3bits (zeros
743         because of the alignment ensured by static_assert) to pack 8bit value into the pointer data. Since
744         even the 5-level page tables use 57bit effective address, this strategy works well.
745
746         * WTF.xcodeproj/project.pbxproj:
747         * wtf/CMakeLists.txt:
748         * wtf/CompactPointerTuple.h: Added.
749         (WTF::CompactPointerTuple::encodeType):
750         (WTF::CompactPointerTuple::decodeType):
751         (WTF::CompactPointerTuple::CompactPointerTuple):
752         (WTF::CompactPointerTuple::pointer const):
753         (WTF::CompactPointerTuple::setPointer):
754         (WTF::CompactPointerTuple::type const):
755         (WTF::CompactPointerTuple::setType):
756         * wtf/Platform.h:
757
758 2018-08-07  Ryan Haddad  <ryanhaddad@apple.com>
759
760         Unreviewed, suppress warnings to fix the build.
761
762         * wtf/SHA1.cpp:
763         (WTF::SHA1::SHA1):
764         (WTF::SHA1::addBytes):
765         (WTF::SHA1::computeHash):
766
767 2018-08-07  Karo Gyoker  <karogyoker2+webkit@gmail.com>
768
769         Hardcoded LFENCE instruction
770         https://bugs.webkit.org/show_bug.cgi?id=188145
771
772         Reviewed by Filip Pizlo.
773
774         Remove lfence instruction because it is crashing systems without SSE2 and
775         this is not the way how WebKit mitigates Spectre.
776
777         * wtf/Atomics.h:
778         (WTF::crossModifyingCodeFence):
779         (WTF::speculationFence): Deleted.
780         (WTF::x86_lfence): Deleted.
781
782 2018-08-07  Antti Koivisto  <antti@apple.com>
783
784         Web process never leaves memory pressured state if caused by process size limit
785         https://bugs.webkit.org/show_bug.cgi?id=188299
786         <rdar://problem/42157442>
787
788         Reviewed by Darin Adler.
789
790         For vm memory pressure warnings we get notified when exiting the state and we can clear
791         the isUnderMemoryPressure bit. However as a compatibility behavior we were also notified using
792         the same event when approaching the process size limit. In this case there is no "all clear"
793         event so we'd stay in pressured state forever, leading to unnecessarily degraded user experience.
794
795         * WTF.xcodeproj/project.pbxproj:
796         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
797         (WTF::MemoryPressureHandler::install):
798
799         Install a handler for process size limit events. This disables the compatibility behavior,
800         vm pressure events will be received for vm pressure only.
801
802         Process size limit events are treated as one-shot. We do cleanups based on criticality but
803         don't enter the pressured state.
804
805         (WTF::MemoryPressureHandler::uninstall):
806         (WTF::MemoryPressureHandler::holdOff):
807         * wtf/spi/darwin/DispatchSPI.h: Added.
808
809 2018-08-06  Alex Christensen  <achristensen@webkit.org>
810
811         Use enum classes and OptionSets for PaintPhase and PaintBehavior
812         https://bugs.webkit.org/show_bug.cgi?id=188323
813
814         Reviewed by Simon Fraser.
815
816         * wtf/OptionSet.h:
817         (WTF::OptionSet::OptionSet):
818         Allow a zero-valued enum value in the OptionSet constructor.
819
820 2018-08-06  Ryan Haddad  <ryanhaddad@apple.com>
821
822         Unreviewed, rolling out r234569.
823
824         Breaks internal builds.
825
826         Reverted changeset:
827
828         "We should cache the compiled sandbox profile in a data vault"
829         https://bugs.webkit.org/show_bug.cgi?id=184991
830         https://trac.webkit.org/changeset/234569
831
832 2018-08-03  Ryan Haddad  <ryanhaddad@apple.com>
833
834         Unreviewed, fix the build by ignoring some deprecation warnings.
835
836         * wtf/MD5.cpp:
837         (WTF::MD5::MD5):
838         (WTF::MD5::addBytes):
839         (WTF::MD5::checksum):
840
841 2018-08-03  Ben Richards  <benton_richards@apple.com>
842
843         We should cache the compiled sandbox profile in a data vault
844         https://bugs.webkit.org/show_bug.cgi?id=184991
845
846         Reviewed by Ryosuke Niwa.
847
848         Added trace points for sandbox initialization and exposed functions needed for sandbox caching
849
850         * wtf/SystemTracing.h:
851         * wtf/spi/darwin/SandboxSPI.h:
852
853 2018-08-02  Saam Barati  <sbarati@apple.com>
854
855         Reading instructionPointer from PlatformRegisters may fail when using pointer tagging
856         https://bugs.webkit.org/show_bug.cgi?id=188271
857         <rdar://problem/42850884>
858
859         Reviewed by Michael Saboff.
860
861         * wtf/PtrTag.h:
862         (WTF::isTaggedWith):
863         (WTF::usesPointerTagging):
864
865 2018-08-02  Alex Christensen  <achristensen@webkit.org>
866
867         Add some Variant types to Forward.h
868         https://bugs.webkit.org/show_bug.cgi?id=188250
869
870         * wtf/Forward.h:
871
872 2018-08-02  David Fenton  <david_fenton@apple.com>
873
874         Unreviewed, rolling out r234489.
875
876         Caused 50+ crashes and 60+ API failures on iOS
877
878         Reverted changeset:
879
880         "[WTF] Rename String::format to String::deprecatedFormat"
881         https://bugs.webkit.org/show_bug.cgi?id=188191
882         https://trac.webkit.org/changeset/234489
883
884 2018-08-01  Tomas Popela  <tpopela@redhat.com>
885
886         [WTF] Rename String::format to String::deprecatedFormat
887         https://bugs.webkit.org/show_bug.cgi?id=188191
888
889         Reviewed by Darin Adler.
890
891         It should be replaced with string concatenation.
892
893         * wtf/Assertions.cpp:
894         * wtf/JSONValues.cpp:
895         * wtf/WorkQueue.cpp:
896         (WTF::WorkQueue::concurrentApply):
897         * wtf/dtoa.cpp:
898         (WTF::dtoa):
899         * wtf/text/WTFString.cpp:
900         (WTF::String::deprecatedFormat):
901         (WTF::String::format): Deleted.
902         * wtf/text/WTFString.h:
903
904 2018-07-31  Tomas Popela  <tpopela@redhat.com>
905
906         [WTF] String::formatWithArguments() is unused
907         https://bugs.webkit.org/show_bug.cgi?id=187955
908
909         Reviewed by Darin Adler.
910
911         This method is unused, remove it.
912
913         * wtf/text/WTFString.cpp:
914         (WTF::String::formatWithArguments): Deleted.
915         * wtf/text/WTFString.h:
916
917 2018-07-28  Mark Lam  <mark.lam@apple.com>
918
919         Gardening: build fix for internal builds.
920         https://bugs.webkit.org/show_bug.cgi?id=188123
921         <rdar://problem/42672268>
922
923         Not reviewed.
924
925         Some code is relying on RELEASE_ASSERT (without extra crash info arguments)
926         being purely inlined and not require linkage to an external symbol.  This patch
927         restores this property of the original RELEASE_ASSERT.
928
929         This means moving the variant of WTFCrashWithInfo that does not take extra args
930         to Assertions.h and making it an "inline" function.  When compiling with clang,
931         we also specify __attribute__((optnone)) to force the function out of being an
932         inline function (each linkage unit will get a copy of the function).  This causes
933         the 1st 4 arguments of WTFCrashWithInfo (e.g. line number) to still be captured
934         in the argument registers for crash diagnostics.
935
936         * wtf/Assertions.cpp:
937         (WTFCrashWithInfo):
938         * wtf/Assertions.h:
939
940 2018-07-27  Mark Lam  <mark.lam@apple.com>
941
942         Add some crash info to Heap::checkConn() RELEASE_ASSERTs.
943         https://bugs.webkit.org/show_bug.cgi?id=188123
944         <rdar://problem/42672268>
945
946         Reviewed by Keith Miller.
947
948         1. Rename STUFF_FOR_CRASH_REGISTERx to CRASH_GPRx.  These are only used in
949            locally in Assertions.cpp.  There is little to no chance of a name collision,
950            and the shorter names will be much easier to read and grok in the code.
951
952         2. Added an additional 2 registers so that we can pass more info.
953
954         3. Change the WTFCrashWithInfo() implementations to issue only a single asm
955            statement so that the compiler does not inadvertently move values out of the
956            CRASH_GPRs that we want them to be in.
957
958         4. Use register targeting for local variables to get the compiler to put our
959            desired values in specific registers.  For how this works, see
960            https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html#Local-Register-Variables
961
962            "The only supported use for this feature is to specify registers for input and
963            output operands when calling Extended asm (see Extended Asm).  This may be
964            necessary if the constraints for a particular machine don’t provide sufficient
965            control to select the desired register."
966
967         5. Enhance ASSERT, ASSERT_UNUSED, RELEASE_ASSERT, RELEASE_ASSERT_NOT_REACHED to
968            accept crash info arguments.  We no longer need to use an if statement with a
969            call to CRASH_WITH_INFO instead of these assertions.  The only case not handled
970            yet is one where we might want to dataLog some info before the crash.  I'll
971            add that functionality in a subsequent patch.
972
973         6. Move UNREACHABLE_FOR_PLATFORM to the bottom of Assertions.h because it depends
974            on the definition of RELEASE_ASSERT_NOT_REACHED, which now depends on the
975            definiton of CRASH_WITH_INFO.
976
977         * wtf/Assertions.cpp:
978         (WTFCrashWithInfo):
979         * wtf/Assertions.h:
980
981 2018-07-27  Alex Christensen  <achristensen@webkit.org>
982
983         Make CompletionHandler more const correct
984         https://bugs.webkit.org/show_bug.cgi?id=186543
985
986         Reviewed by Saam Barati.
987
988         * wtf/CompletionHandler.h:
989         (WTF::CompletionHandler<Out):
990         Calling a CompletionHandler mutates it. Make the code reflect that.
991
992 2018-07-27  Simon Fraser  <simon.fraser@apple.com>
993
994         Be more conservative with compositing layer creation when memory is low
995         https://bugs.webkit.org/show_bug.cgi?id=187866
996         rdar://problem/42366345
997
998         Reviewed by Zalan Bujtas.
999         
1000         When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
1001         compositing layers. We avoid compositing for these situations:
1002         1. Layers with 3D transforms which are affine (like translateZ(0)).
1003         2. Layers with will-change
1004         3. Layers for canvases (other than WebGL/WebGPU)
1005         
1006         We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
1007         falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
1008         Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.
1009         
1010         Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
1011         flakily falling into a different mode, and so that we can impose the conservative
1012         mode for testing.
1013
1014         * wtf/MemoryPressureHandler.cpp:
1015         (WTF::thresholdForPolicy):
1016         (WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
1017         * wtf/MemoryPressureHandler.h:
1018
1019 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
1020
1021         [INTL] Remove INTL sub-feature compile flags
1022         https://bugs.webkit.org/show_bug.cgi?id=188081
1023
1024         Reviewed by Michael Catanzaro.
1025
1026         Removed INTL sub-feature compile flags, and an old unused i18n flag.
1027
1028         * wtf/FeatureDefines.h:
1029
1030 2018-07-26  Chris Dumez  <cdumez@apple.com>
1031
1032         It should be possible to use WTF::CallbackAggregator from a background thread
1033         https://bugs.webkit.org/show_bug.cgi?id=188084
1034
1035         Reviewed by Alex Christensen.
1036
1037         Make WTF::CallbackAggregator usable on background threads by updating its destructor to call the
1038         completion handler on whatever thread it is destroyed on, instead of always dispatching to the
1039         main thread before calling the completion handler.
1040
1041         Existing CallbackAggregator users that deal with threads have been updated to make sure they
1042         destroy the CallbackAggregator on the expected thread.
1043
1044         This will allow us to use CallbackAggregator in the ResourceLoadStatisticsMemoryStore, which lives
1045         on a background WorkQueue.
1046
1047         * wtf/CallbackAggregator.h:
1048         (WTF::CallbackAggregator::~CallbackAggregator):
1049         (WTF::CallbackAggregator::CallbackAggregator):
1050
1051 2018-07-26  Ross Kirsling  <ross.kirsling@sony.com>
1052
1053         String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter
1054         https://bugs.webkit.org/show_bug.cgi?id=187963
1055
1056         Reviewed by Alex Christensen.
1057
1058         * wtf/Assertions.cpp:
1059         Update split/splitAllowingEmptyEntries usage.
1060
1061         * wtf/text/StringView.h:
1062         (WTF::StringView::splitAllowingEmptyEntries const):
1063         * wtf/text/WTFString.cpp:
1064         (WTF::String::splitInternal const):
1065         (WTF::String::split const):
1066         (WTF::String::splitAllowingEmptyEntries const):
1067         * wtf/text/WTFString.h:
1068         (WTF::String::split const):
1069         Introduce splitAllowingEmptyEntries instead of boolean or enum parameter.
1070
1071 2018-07-26  Sam Weinig  <sam@webkit.org>
1072
1073         Remove unused/undefined String::appendInternal
1074         https://bugs.webkit.org/show_bug.cgi?id=188063
1075
1076         Reviewed by Daniel Bates.
1077
1078         * wtf/text/WTFString.h:
1079         String::appendInternal is declared in WTFString.h, but is never used
1080         and and never even defined. Remove it.
1081
1082 2018-07-26  Commit Queue  <commit-queue@webkit.org>
1083
1084         Unreviewed, rolling out r234181 and r234189.
1085         https://bugs.webkit.org/show_bug.cgi?id=188075
1086
1087         These are not needed right now (Requested by thorton on
1088         #webkit).
1089
1090         Reverted changesets:
1091
1092         "Enable Web Content Filtering on watchOS"
1093         https://bugs.webkit.org/show_bug.cgi?id=187979
1094         https://trac.webkit.org/changeset/234181
1095
1096         "HAVE(PARENTAL_CONTROLS) should be true on watchOS"
1097         https://bugs.webkit.org/show_bug.cgi?id=187985
1098         https://trac.webkit.org/changeset/234189
1099
1100 2018-07-04  Darin Adler  <darin@apple.com>
1101
1102         Improve WebGPU implementation, including using Metal Objective-C protocols more simply and correctly
1103         https://bugs.webkit.org/show_bug.cgi?id=187333
1104
1105         Reviewed by Sam Weinig.
1106
1107         * wtf/Compiler.h: Added OBJC_PROTOCOL, a macro for convieniently treating an
1108         Objective-C protocol in a way that lets it be mentioned in a C++ source file.
1109         This is the rough equivalent of OBJC_CLASS, but for protocols.
1110
1111         * wtf/Platform.h: Added USE(METAL), alongside USE(OPENGL) and the like.
1112         Now used in the WebGPU platform layer to guard the Metal-specific code.
1113
1114 2018-07-26  Tomas Popela  <tpopela@redhat.com>
1115
1116         [WTF] Coverity scan issues
1117         https://bugs.webkit.org/show_bug.cgi?id=186800
1118
1119         Reviewed by Brent Fulgham.
1120
1121         * wtf/CheckedArithmetic.h: Swap the operands to multiply().
1122         * wtf/ThreadSpecific.h: Initialize the m_key variable.
1123         * wtf/dtoa.cpp: Initialize the next variable.
1124
1125 2018-07-25  Tomas Popela  <tpopela@redhat.com>
1126
1127         Correctly close the variable argument list
1128         https://bugs.webkit.org/show_bug.cgi?id=186758
1129
1130         Reviewed by Michael Catanzaro.
1131
1132         The argcCopy is not ended when we early return. Also don't call
1133         va_end() on args because it's closed in caller.
1134
1135         * wtf/text/WTFString.cpp:
1136         (WTF::createWithFormatAndArguments):
1137
1138 2018-07-24  Tim Horton  <timothy_horton@apple.com>
1139
1140         HAVE(PARENTAL_CONTROLS) should be true on watchOS
1141         https://bugs.webkit.org/show_bug.cgi?id=187985
1142         <rdar://problem/42559346>
1143
1144         Reviewed by Andy Estes.
1145
1146         * wtf/Platform.h:
1147
1148 2018-07-24  Daniel Bates  <dabates@apple.com>
1149
1150         Move-constructing NeverDestroyed should move construct underlying object instead of copy constructing it
1151         https://bugs.webkit.org/show_bug.cgi?id=187971
1152
1153         Reviewed by Saam Barati.
1154
1155         Fixes an issue where move constructing a NeverDestroyed<T> would always copy construct T into
1156         the destination storage buffer regardless of whether T is move constructable. For example:
1157
1158         {
1159             static NeverDestroyed<T> x;
1160             static NeverDestroyed<T> y { WTFMove(x) }; // currently makes a copy of x's T even if T is move constructable
1161         }
1162
1163         Currently the NeverDestroyed<T> instantiates T into the destination storage buffer by WTFMove()ing
1164         the NeverDestroyed<T> into it, implicitly converting it to const T& by way of const T& conversion
1165         operator. As a result the compiler picks the copy constructor for T to invoke instead of evaluating
1166         whether T can be move constructed. Instead we should explicitly WTFMove() the underlying T so that
1167         the compiler can choose to either move-construct T or copy construct it.
1168
1169         A side benefit of this change it is now possible to invoke makeNeverDestroyed() with the result
1170         of a function that returns a move-only type (e.g. RenderStyle):
1171
1172         static auto sharedStyle = makeNeverDestroyed([] {
1173             auto style = RenderStyle::create();
1174             ...
1175             return style;
1176         }());
1177
1178         * wtf/NeverDestroyed.h:
1179         (WTF::NeverDestroyed::NeverDestroyed):
1180
1181 2018-07-24  Ryan Haddad  <ryanhaddad@apple.com>
1182
1183         Unreviewed, rolling out r234121.
1184
1185         Caused perf test failures.
1186
1187         Reverted changeset:
1188
1189         "We should cache the compiled sandbox profile in a data vault"
1190         https://bugs.webkit.org/show_bug.cgi?id=184991
1191         https://trac.webkit.org/changeset/234121
1192
1193 2018-07-24  Thibault Saunier  <tsaunier@igalia.com>
1194
1195         [GStreamer] Implement bitrate modulation support in GStreamer based libwebrtc Encoders
1196         https://bugs.webkit.org/show_bug.cgi?id=187643
1197
1198         Reviewed by Philippe Normand.
1199
1200         Added support for GRegex in GRefPtr.
1201
1202         Source/WTF:
1203         * wtf/glib/GRefPtr.cpp:
1204         (WTF::refGPtr):
1205         (WTF::derefGPtr):
1206         * wtf/glib/GRefPtr.h:
1207
1208 2018-07-23  Ross Kirsling  <ross.kirsling@sony.com>
1209
1210         WTF::StringView::split should have an allowEmptyEntries flag
1211         https://bugs.webkit.org/show_bug.cgi?id=187864
1212
1213         Reviewed by Konstantin Tokarev.
1214
1215         * wtf/text/StringView.cpp:
1216         (WTF::StringView::SplitResult::Iterator::findNextSubstring):
1217         (WTF::StringView::SplitResult::Iterator::operator++):
1218         * wtf/text/StringView.h:
1219         (WTF::StringView::split const):
1220         (WTF::StringView::SplitResult::SplitResult):
1221         (WTF::StringView::SplitResult::Iterator::operator== const):
1222         We can't mimic String::split completely, because this one's iterator-based --
1223         achieve desired behavior by adding m_allowEmptyEntries to SplitResult and m_isDone to its Iterator.
1224         (The latter keeps us from hitting begin() == end() prematurely on a final empty entry.)
1225
1226 2018-07-23  Ben Richards  <benton_richards@apple.com>
1227
1228         We should cache the compiled sandbox profile in a data vault
1229         https://bugs.webkit.org/show_bug.cgi?id=184991
1230
1231         Reviewed by Ryosuke Niwa.
1232
1233         Added trace points for sandbox initialization and exposed functions needed for sandbox caching
1234
1235         * wtf/SystemTracing.h:
1236         * wtf/spi/darwin/SandboxSPI.h:
1237
1238 2018-06-06  Filip Pizlo  <fpizlo@apple.com>
1239
1240         We should support CreateThis in the FTL
1241         https://bugs.webkit.org/show_bug.cgi?id=164904
1242
1243         Reviewed by Yusuke Suzuki.
1244
1245         * wtf/TinyPtrSet.h:
1246         (WTF::TinyPtrSet::operator!= const):
1247
1248 2018-07-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1249
1250         [JSC] Use Function / ScopedLambda / RecursableLambda instead of std::function
1251         https://bugs.webkit.org/show_bug.cgi?id=187472
1252
1253         Reviewed by Mark Lam.
1254
1255         * wtf/ScopedLambda.h:
1256         (WTF::ScopedLambda<ResultType):
1257
1258 2018-07-18  Michael Catanzaro  <mcatanzaro@igalia.com>
1259
1260         Switch CMake ports back to C++ 14
1261         https://bugs.webkit.org/show_bug.cgi?id=187744
1262
1263         Reviewed by Ryosuke Niwa.
1264
1265         Always use WTF's internal std::optional implementation, since std::optional is not part of
1266         C++ 14.
1267
1268         * wtf/Optional.h:
1269
1270 2018-07-17  Keith Miller  <keith_miller@apple.com>
1271
1272         Revert r233630 since it broke internal wasm benchmarks
1273         https://bugs.webkit.org/show_bug.cgi?id=187746
1274
1275         Unreviewed revert.
1276
1277         * wtf/TriState.h:
1278
1279 2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>
1280
1281         Ensure WebKit stack is ad-hoc signed
1282         https://bugs.webkit.org/show_bug.cgi?id=187667
1283
1284         Reviewed by Alexey Proskuryakov.
1285
1286         * Configurations/Base.xcconfig:
1287
1288 2018-07-14  David Kilzer  <ddkilzer@apple.com>
1289
1290         Replace TR2_OPTIONAL_ASSERTED_EXPRESSION macro in <wtf/Optional.h>
1291         <https://webkit.org/b/187672>
1292
1293         Reviewed by Frédéric Wang.
1294
1295         * wtf/Optional.h:
1296         (std::optional::operator -> const):
1297         (std::optional::operator * const):
1298         (std::optional<T::operator-> const):
1299         (std::optional<T::operator* const):
1300         - Replace TR2_OPTIONAL_ASSERTED_EXPRESSION macro with
1301           ASSERT_UNDER_CONSTEXPR_CONTEXT macro and return statement.
1302
1303 2018-07-13  Mark Lam  <mark.lam@apple.com>
1304
1305         Signal.cpp's activeThreads() should only create its ThreadGroup once.
1306         https://bugs.webkit.org/show_bug.cgi?id=187634
1307         <rdar://problem/40662311>
1308
1309         Reviewed by Yusuke Suzuki.
1310
1311         registerThreadForMachExceptionHandling() is relying on the activeThreads()
1312         ThreadGroup being a singleton.
1313
1314         * wtf/threads/Signals.cpp:
1315         (WTF::activeThreads):
1316
1317 2018-07-12  David Kilzer  <ddkilzer@apple.com>
1318
1319         Revert: iOS port should define HAVE_RUNLOOP_TIMER
1320         <https://webkit.org/b/187370>
1321
1322         * wtf/Platform.h: This is only needed on macOS when using
1323         -[WebView scheduleInRunLoop:forMode:] and
1324         -[WebView unscheduleFromRunLoop:forMode:] to make WK1 WebViews
1325         load synchronously using -loadHTMLString: or -loadData:.
1326
1327 2018-07-12  Per Arne Vollan  <pvollan@apple.com>
1328
1329         Add compile guard for enabling NSRunLoop in the WebContent process.
1330         https://bugs.webkit.org/show_bug.cgi?id=187563
1331
1332         Reviewed by Chris Dumez.
1333
1334         * wtf/FeatureDefines.h:
1335
1336 2018-07-09  Zan Dobersek  <zdobersek@igalia.com>
1337
1338         Unreviewed follow-up to r233660.
1339
1340         * wtf/linux/MemoryFootprintLinux.cpp:
1341         (WTF::memoryFootprint): Revert accidental change of logical OR into a bitwise OR.
1342
1343 2018-07-09  Youenn Fablet  <youenn@apple.com>
1344
1345         StringView operator==(char*) should check the length of the string
1346         https://bugs.webkit.org/show_bug.cgi?id=187422
1347
1348         Reviewed by Chris Dumez.
1349
1350         Update StringView operator== to ensure that any character raw pointer comparison actually check the length of the raw pointer string.
1351         This patch mimicks the behavior of String.
1352         For instance, comparing a StringView with "he\0llo" and "he" will give the same result.
1353
1354         * wtf/linux/MemoryFootprintLinux.cpp:
1355         (WTF::memoryFootprint):
1356         * wtf/text/StringView.h:
1357         (WTF::operator==):
1358         (WTF::operator!=):
1359         (WTF::equal):
1360         (WTF::StringView::stripLeadingAndTrailingMatchedCharacters):
1361
1362 2018-07-09  Yusuke Suzuki  <utatane.tea@gmail.com>
1363
1364         [WTF] Annotate RunLoop::Timer fast-allocated
1365         https://bugs.webkit.org/show_bug.cgi?id=187473
1366
1367         Reviewed by Saam Barati.
1368
1369         It is allocated by std::unique_ptr for MemoryPressureHandler. And it uses system malloc now.
1370
1371         * wtf/RunLoop.h:
1372
1373 2018-07-08  Yusuke Suzuki  <utatane.tea@gmail.com>
1374
1375         [JSC] Optimize padding of UnlinkedCodeBlock to shrink
1376         https://bugs.webkit.org/show_bug.cgi?id=187448
1377
1378         Reviewed by Saam Barati.
1379
1380         * wtf/TriState.h:
1381
1382 2018-07-07  David Kilzer  <ddkilzer@apple.com>
1383
1384         iOS port should define HAVE_RUNLOOP_TIMER
1385         <https://webkit.org/b/187370>
1386
1387         Reviewed by Simon Fraser.
1388
1389         * wtf/Platform.h:
1390         (HAVE_DTRACE): Remove unused macro since r200568.
1391         (HAVE_RUNLOOP_TIMER): Define for PLATFORM(COCOA), not just
1392         PLATFORM(MAC).  Alphabetize macros.
1393
1394 2018-07-07  Yusuke Suzuki  <utatane.tea@gmail.com>
1395
1396         [linux] ASSERT: Using an alternative signal stack is not supported. Consider disabling the concurrent GC.
1397         https://bugs.webkit.org/show_bug.cgi?id=187297
1398
1399         Reviewed by Mark Lam.
1400
1401         This patch relaxes the JSC's limitation: accepting an alternative signal stack mechanism.
1402
1403         * wtf/ThreadingPthreads.cpp:
1404         (WTF::getApproximateStackPointer):
1405         Fix approximate stack pointer function to make it valid.
1406
1407         (WTF::Thread::signalHandlerSuspendResume):
1408         Use StackBounds::contains to check whether the given stack pointer is in range of StackBounds.
1409         If it is out of range, it seems that this stack pointer is pointing an alternative signal stack.
1410
1411         (WTF::Thread::suspend):
1412         Repeatedly retry suspension by using Thread::yield().
1413
1414         (WTF::isOnAlternativeSignalStack): Deleted.
1415
1416 2018-07-06  Frederic Wang  <fwang@igalia.com>
1417
1418         WTF's internal std::optional implementation should abort() on bad optional access
1419         https://bugs.webkit.org/show_bug.cgi?id=186536
1420
1421         Reviewed by Michael Catanzaro.
1422
1423         Currently, some ports built with recent compilers will cause the program to abort when one
1424         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
1425         However, most ports still use WTF's internal std::optional implementation, which does not
1426         verify illegal access. Hence it's not possible for developers working on these ports to
1427         detect issues like bugs #186189, #186535, #186752, #186753, #187139, #187145, #187243 or
1428         #187382.
1429         WTF's version of std::optional was introduced in bug #164199 but it was not possible to
1430         verify the availability of the value inside constexpr member functions because the assert
1431         might involve asm declarations. This commit introduces a new ASSERT_UNDER_CONSTEXPR_CONTEXT
1432         macro (a simplified version of ASSERT that can be used in constexpr context) and uses it in
1433         WTF's implementation of std::optional.
1434
1435         * wtf/Assertions.h: Define ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of ASSERT that can be
1436         used in constexpr context (in particular avoids asm declarations).
1437         * wtf/Optional.h:
1438         (std::optional::operator ->): Add an assert to ensure the optional value is available.
1439         (std::optional::operator *): Ditto.
1440         (std::optional::value const): Ditto.
1441         (std::optional::value): Ditto.
1442         (std::optional<T::value const): Ditto.
1443
1444 2018-07-05  Commit Queue  <commit-queue@webkit.org>
1445
1446         Unreviewed, rolling out r233417 and r233418.
1447         https://bugs.webkit.org/show_bug.cgi?id=187364
1448
1449         Introduced an occasional crash on Google Drive (Requested by
1450         rniwa on #webkit).
1451
1452         Reverted changesets:
1453
1454         "WTF's internal std::optional implementation should abort() on
1455         bad optional access"
1456         https://bugs.webkit.org/show_bug.cgi?id=186536
1457         https://trac.webkit.org/changeset/233417
1458
1459         "WTF's internal std::optional implementation should abort() on
1460         bad optional access"
1461         https://bugs.webkit.org/show_bug.cgi?id=186536
1462         https://trac.webkit.org/changeset/233418
1463
1464 2018-07-04  Guillaume Emont  <guijemont@igalia.com>
1465
1466         FunctionTraits: Make cCallArity() constant on 32-bits.
1467         https://bugs.webkit.org/show_bug.cgi?id=187292
1468
1469         Reviewed by Yusuke Suzuki.
1470
1471         On X86, in Source/JavaScriptCore/jit/CCallHelpers.h we have a
1472         static_assert that uses cCallArity(), so it needs to be constant to
1473         avoid a compilation error. This is achieved by changing an ASSERT into
1474         a static_assert.
1475
1476
1477         * wtf/FunctionTraits.h:
1478         (WTF::slotsForCCallArgument):
1479
1480 2018-07-04  Tim Horton  <timothy_horton@apple.com>
1481
1482         Introduce PLATFORM(IOSMAC)
1483         https://bugs.webkit.org/show_bug.cgi?id=187315
1484
1485         Reviewed by Dan Bernstein.
1486
1487         * Configurations/Base.xcconfig:
1488         * wtf/FeatureDefines.h:
1489         * wtf/Platform.h:
1490
1491 2018-07-02  Alicia Boya García  <aboya@igalia.com>
1492
1493         [Linux] Fix memory leak in WTF::forEachLine()
1494         https://bugs.webkit.org/show_bug.cgi?id=187174
1495
1496         Reviewed by Žan Doberšek.
1497
1498         * wtf/linux/MemoryFootprintLinux.cpp:
1499         (WTF::forEachLine):
1500
1501 2018-07-02  Frederic Wang  <fwang@igalia.com>
1502
1503         WTF's internal std::optional implementation should abort() on bad optional access
1504         https://bugs.webkit.org/show_bug.cgi?id=186536
1505
1506         Reviewed by Michael Catanzaro.
1507
1508         Currently, some ports built with recent compilers will cause the program to abort when one
1509         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
1510         However, most ports still use WTF's internal std::optional implementation, which does not
1511         verify illegal access. Hence it's not possible for developers working on these ports to
1512         detect issues like bugs #186189, #186535, #186752, #186753, #187139, #187145 or #187243.
1513         WTF's version of std::optional was introduced in bug #164199 but it was not possible to
1514         verify the availability of the value inside constexpr member functions because the assert
1515         might involve asm declarations. This commit introduces a new
1516         RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT macro (a simplified version of RELEASE_ASSERT that can
1517         be used in constexpr context) and uses it in WTF's implementation of std::optional.
1518
1519         * wtf/Assertions.h: Define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of
1520         RELEASE_ASSERT that can be used in constexpr context (in particular avoids asm declarations).
1521         * wtf/Optional.h:
1522         (std::optional::operator ->): Add an assert to ensure the optional value is available.
1523         (std::optional::operator *): Ditto.
1524         (std::optional::value const): Ditto.
1525         (std::optional::value): Ditto.
1526         (std::optional<T::value const): Ditto.
1527
1528 2018-07-01  Yusuke Suzuki  <utatane.tea@gmail.com>
1529
1530         [WTF] RandomDevice should be initialized inside std::call_once
1531         https://bugs.webkit.org/show_bug.cgi?id=186017
1532
1533         Reviewed by Darin Adler.
1534
1535         While Linux ports uses mutex-guarded static variables, Mac ports do not.
1536         So we should guard static variables' initialization by using std::call_once.
1537         This patch does it for RandomDevice.
1538
1539         * wtf/OSRandomSource.cpp:
1540         (WTF::cryptographicallyRandomValuesFromOS):
1541         * wtf/RandomDevice.h: Small fix for OS(FUCHSIA).
1542
1543 2018-07-01  Myles C. Maxfield  <mmaxfield@apple.com>
1544
1545         [Cocoa] LastResort in the font family list causes emoji with joiners to be rendered as multiple .notdef characters
1546         https://bugs.webkit.org/show_bug.cgi?id=187209
1547         <rdar://problem/40920785>
1548
1549         Reviewed by Darin Adler.
1550
1551         * wtf/unicode/CharacterNames.h:
1552
1553 2018-06-23  Darin Adler  <darin@apple.com>
1554
1555         [Cocoa] Improve ARC compatibility of more code in JavaScriptCore
1556         https://bugs.webkit.org/show_bug.cgi?id=186973
1557
1558         Reviewed by Dan Bernstein.
1559
1560         * WTF.xcodeproj/project.pbxproj: Added CFXPCBridgeSPI.h, fixed a few
1561         other small problems in the project file, and let Xcode fix a few too.
1562
1563         * wtf/cocoa/Entitlements.h: Added hasEntitlement function with overloads
1564         for an audit token and an XPC connection.
1565         * wtf/cocoa/Entitlements.mm:
1566         (WTF::hasEntitlement): Added, with overloads for a SecTask, an audit token,
1567         and an XPC connection.
1568         (WTF::processHasEntitlement): Refactored to use the function above.
1569
1570         * wtf/spi/cocoa/CFXPCBridgeSPI.h: Added.
1571
1572 2018-06-30  Adam Barth  <abarth@webkit.org>
1573
1574         Port JavaScriptCore to OS(FUCHSIA)
1575         https://bugs.webkit.org/show_bug.cgi?id=187223
1576
1577         Reviewed by Daniel Bates.
1578
1579         * wtf/Platform.h: Fuchsia uses mcontext_t to provide machine context.
1580
1581 2018-06-30  Adam Barth  <abarth@webkit.org>
1582
1583         Port WTF to OS(FUCHSIA)
1584         https://bugs.webkit.org/show_bug.cgi?id=187221
1585
1586         Reviewed by Yusuke Suzuki.
1587
1588         * wtf/FastMalloc.cpp: Fuchsia does not have resource.h
1589         (WTF::fastMallocStatistics): Skip collecting stats without resource.h
1590         * wtf/InlineASM.h: Fuchsia uses ELF
1591         * wtf/Platform.h: Define OS(FUCHSIA) as an OS(UNIX) variant
1592         * wtf/RandomDevice.cpp: Call zx_cprng_draw for crypographic randomness
1593         (WTF::RandomDevice::cryptographicallyRandomValues):
1594         * wtf/ThreadingPthreads.cpp: Fuchsia does not have pthread_setschedparam
1595         (WTF::Thread::changePriority):
1596         * wtf/unix/CPUTimeFuchsia.cpp: Added.
1597
1598 2018-06-30  Commit Queue  <commit-queue@webkit.org>
1599
1600         Unreviewed, rolling out r233391.
1601         https://bugs.webkit.org/show_bug.cgi?id=187217
1602
1603         This patch broke Windows ports (Requested by fredw on
1604         #webkit).
1605
1606         Reverted changeset:
1607
1608         "WTF's internal std::optional implementation should abort() on
1609         bad optional access"
1610         https://bugs.webkit.org/show_bug.cgi?id=186536
1611         https://trac.webkit.org/changeset/233391
1612
1613 2018-06-29  Frederic Wang  <fwang@igalia.com>
1614
1615         WTF's internal std::optional implementation should abort() on bad optional access
1616         https://bugs.webkit.org/show_bug.cgi?id=186536
1617
1618         Reviewed by Michael Catanzaro.
1619
1620         Currently, some ports built with recent compilers will cause the program to abort when one
1621         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
1622         However, most ports still use WTF's internal std::optional implementation, which does not
1623         verify illegal access. Hence it's not possible for developers working on these ports to
1624         detect issues like bugs #186189, #186535, #186752, #186753, #187139 or #187145. WTF's version
1625         of std::optional was introduced in bug #164199 but it was not possible to verify the
1626         availability of the value inside constexpr member functions because the assert might involve
1627         asm declarations. This commit introduces a new RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT macro
1628         (a simplified version of RELEASE_ASSERT that can be used in constexpr context) and uses it in
1629         WTF's implementation of std::optional.
1630
1631         * wtf/Assertions.h: Define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of
1632         RELEASE_ASSERT that can be used in constexpr context (in particular avoids asm declarations).
1633         * wtf/Optional.h:
1634         (std::optional::operator ->): Add an assert to ensure the optional value is available.
1635         (std::optional::operator *): Ditto.
1636         (std::optional::value const): Ditto. 
1637         (std::optional::value): Ditto.
1638         (std::optional<T::value const): Ditto.
1639
1640 2018-06-29  Darin Adler  <darin@apple.com>
1641
1642         [Cocoa] reduce unnecessary use of .mm source files in WTF, spruce up some implementation details
1643         https://bugs.webkit.org/show_bug.cgi?id=186924
1644
1645         Reviewed by Anders Carlsson.
1646
1647         * WTF.xcodeproj/project.pbxproj: Update for file and directory renames, file type changes,
1648         and deletions.
1649
1650         * wtf/MemoryPressureHandler.cpp:
1651         (WTF::MemoryPressureHandler::holdOff): Deleted empty placeholder; this one is not needed.
1652
1653         * wtf/PlatformMac.cmake: Update for file and directory renames, file type changes,
1654         and deletions.
1655
1656         * wtf/cocoa/CPUTimeCocoa.cpp: Renamed from Source/WTF/wtf/cocoa/CPUTimeCocoa.mm.
1657
1658         * wtf/text/cocoa/StringImplCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringImplMac.mm.
1659         Also removed an unneeded include.
1660
1661         * wtf/text/cocoa/StringViewCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringViewObjC.mm.
1662
1663         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: Renamed from
1664         Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm.
1665
1666 2018-06-28  Olivia Barnett  <obarnett@apple.com>
1667
1668         Find in page for typographic quotes does not find low (German) quotes
1669         https://bugs.webkit.org/show_bug.cgi?id=187164
1670         <rdar://problem/29612785>
1671
1672         Reviewed by Tim Horton.
1673
1674         Added Unicode definitions for German quotation marks.
1675
1676         * wtf/unicode/CharacterNames.h:
1677
1678 2018-06-27  Jonathan Bedard  <jbedard@apple.com>
1679
1680         Enable WebKit iOS 12 build
1681         https://bugs.webkit.org/show_bug.cgi?id=187024
1682         <rdar://problem/39759057>
1683
1684         Reviewed by David Kilzer.
1685
1686         * wtf/spi/darwin/XPCSPI.h: Add endpoint and connection declarations.
1687
1688 2018-06-25  David Fenton  <david_fenton@apple.com>
1689
1690         Unreviewed, rolling out r233120.
1691
1692         caused regression in ios API tests
1693
1694         Reverted changeset:
1695
1696         "[Cocoa] reduce unnecessary use of .mm source files in WTF,
1697         spruce up some implementation details"
1698         https://bugs.webkit.org/show_bug.cgi?id=186924
1699         https://trac.webkit.org/changeset/233120
1700
1701 2018-06-25  Alicia Boya García  <aboya@igalia.com>
1702
1703         Fix ASAN_ENABLED in GCC
1704         https://bugs.webkit.org/show_bug.cgi?id=186957
1705
1706         Reviewed by Michael Catanzaro.
1707
1708         ASAN_ENABLED used to rely on Clang-specific features for detection.
1709         This patch enables ASAN_ENABLED to work on GCC too.
1710
1711         It also fixes compilation errors and warnings that were triggered when
1712         compiling code guarded by ASAN_ENABLED in gcc.
1713
1714         * wtf/Compiler.h:
1715         * wtf/Vector.h:
1716         (WTF::VectorBuffer::endOfBuffer):
1717
1718 2018-06-22  Darin Adler  <darin@apple.com>
1719
1720         [Cocoa] Convert the small bit of Objective-C++ code in WTF to ARC
1721         https://bugs.webkit.org/show_bug.cgi?id=186961
1722
1723         Reviewed by Anders Carlsson.
1724
1725         * Configurations/Base.xcconfig: Turn on ARC.
1726
1727         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1728         (WTF::MemoryPressureHandler::uninstall): Remove calls to dispatch_release.
1729         (WTF::MemoryPressureHandler::holdOff): Ditto.
1730
1731         * wtf/mac/MainThreadMac.mm:
1732         (WTF::initializeMainThreadPlatform): Remove call to retain.
1733         (WTF::initializeWebThreadPlatform): Ditto.
1734
1735 2018-06-22  Yusuke Suzuki  <utatane.tea@gmail.com>
1736
1737         [WTF] Use Ref<> for the result type of non-failing factory functions
1738         https://bugs.webkit.org/show_bug.cgi?id=186920
1739
1740         Reviewed by Darin Adler.
1741
1742         Use Ref<> instead of RefPtr<> if the `create` function do not return nullptr.
1743
1744         * wtf/AutomaticThread.cpp:
1745         (WTF::AutomaticThreadCondition::create):
1746         (WTF::AutomaticThread::AutomaticThread):
1747         * wtf/AutomaticThread.h:
1748         * wtf/ParallelHelperPool.cpp:
1749         (WTF::ParallelHelperPool::Thread::Thread):
1750         * wtf/ParallelHelperPool.h:
1751         * wtf/WorkerPool.cpp:
1752         (WTF::WorkerPool::WorkerPool):
1753         * wtf/WorkerPool.h:
1754         * wtf/win/WorkQueueWin.cpp:
1755         (WTF::TimerContext::create):
1756         (WTF::WorkQueue::dispatchAfter):
1757
1758 2018-06-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1759
1760         [WTF] Add user-defined literal for ASCIILiteral
1761         https://bugs.webkit.org/show_bug.cgi?id=186839
1762
1763         Reviewed by Darin Adler.
1764
1765         This patch adds user-defined literal for ASCIILiteral. We can create ASCIILiteral in the form of `"Hello World"_s`.
1766         And we remove public ASCIILiteral constructor. This change ensures that ASCIILiteral is created from literal.
1767
1768         * WTF.xcodeproj/project.pbxproj:
1769         * wtf/CMakeLists.txt:
1770         * wtf/Indenter.h:
1771         (WTF::Indenter::Indenter):
1772         * wtf/Logger.h:
1773         (WTF::LogArgument::toString):
1774         * wtf/MediaTime.cpp:
1775         (WTF::toJSONStringInternal):
1776         (WTF::MediaTimeRange::toJSONString const):
1777         * wtf/linux/MemoryFootprintLinux.cpp:
1778         (WTF::memoryFootprint):
1779         * wtf/text/ASCIILiteral.cpp: Copied from Source/WebCore/css/CSSUnsetValue.cpp.
1780         (WTF::ASCIILiteral::dump const):
1781         * wtf/text/ASCIILiteral.h: Copied from Source/WTF/wtf/Indenter.h.
1782         (WTF::ASCIILiteral::operator const char* const):
1783         (WTF::ASCIILiteral::fromLiteralUnsafe):
1784         (WTF::ASCIILiteral::null):
1785         (WTF::ASCIILiteral::characters const):
1786         (WTF::ASCIILiteral::ASCIILiteral):
1787         (WTF::StringLiterals::operator _s):
1788         * wtf/text/WTFString.cpp:
1789         (asciiDebug):
1790         * wtf/text/WTFString.h:
1791         (WTF::operator==):
1792         (WTF::operator!=):
1793         (WTF::ASCIILiteral::ASCIILiteral): Deleted.
1794         (WTF::ASCIILiteral::operator const char*): Deleted.
1795         * wtf/unix/LanguageUnix.cpp:
1796         (WTF::platformLanguage):
1797
1798 2018-06-22  Darin Adler  <darin@apple.com>
1799
1800         [Cocoa] reduce unnecessary use of .mm source files in WTF, spruce up some implementation details
1801         https://bugs.webkit.org/show_bug.cgi?id=186924
1802
1803         Reviewed by Anders Carlsson.
1804
1805         * WTF.xcodeproj/project.pbxproj: Update for file and directory renames, file type changes,
1806         and deletions.
1807
1808         * wtf/MemoryPressureHandler.cpp:
1809         (WTF::MemoryPressureHandler::holdOff): Deleted empty placeholder; this one is not needed.
1810
1811         * wtf/PlatformMac.cmake: Update for file and directory renames, file type changes,
1812         and deletions.
1813
1814         * wtf/cocoa/CPUTimeCocoa.cpp: Renamed from Source/WTF/wtf/cocoa/CPUTimeCocoa.mm.
1815         Reworked math to make better use of the Seconds class.
1816
1817         * wtf/text/WTFString.h: Added a new inline version of the constructor that takes an NSString.
1818         This is identical to the one that takes a CFStringRef, so no need to keep both.
1819
1820         * wtf/text/cocoa/StringImplCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringImplMac.mm.
1821         Also removed an unneeded include.
1822
1823         * wtf/text/cocoa/StringViewCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringViewObjC.mm.
1824
1825         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: Renamed from
1826         Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm.
1827
1828         * wtf/text/mac/StringMac.mm: Removed.
1829
1830 2018-06-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1831
1832         [GLIB] improve get_type() fast path in WEBKIT_DEFINE_TYPE
1833         https://bugs.webkit.org/show_bug.cgi?id=186885
1834
1835         Reviewed by Anders Carlsson.
1836
1837         This is a backport of glib commit
1838         https://gitlab.gnome.org/GNOME/glib/commit/e924f777369710221c3e0a9d7bf40392a27d1fa4
1839
1840         "The -fstack-protector-strong used in many distributions by default has a
1841         rather drastic slowdown of the fast path in generated _get_type()
1842         functions using G_DEFINE_* macros. The amount can vary by architecture,
1843         GCC version, and compiler flags.
1844
1845         To work around this, and ensure a higher probability that our fast-path
1846         will match what we had previously, we need to break out the slow-path
1847         (registering the type) into a secondary function that is not a candidate
1848         for inlining.
1849
1850         This ensures that the common case (type registered, return the GType id)
1851         is the hot path and handled in the prologue of the generated assembly even
1852         when -fstack-protector-strong is enabled."
1853
1854         * wtf/glib/WTFGType.h:
1855
1856 2018-06-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1857
1858         [GTK][WPE][Nicosia] Add name for Nicosia Painting Threads
1859         https://bugs.webkit.org/show_bug.cgi?id=186836
1860
1861         Reviewed by Carlos Garcia Campos.
1862
1863         AutomaticThread can take a name for the generated threads now.
1864         This patch adds the above ability to WorkerPool.
1865
1866         * wtf/WorkerPool.cpp:
1867         (WTF::WorkerPool::WorkerPool):
1868         * wtf/WorkerPool.h:
1869         (WTF::WorkerPool::create):
1870         (WTF::WorkerPool::name const):
1871
1872 2018-06-18  Jiewen Tan  <jiewen_tan@apple.com>
1873
1874         Add a graceful exit for AuthenticationManager::initializeConnection
1875         https://bugs.webkit.org/show_bug.cgi?id=186632
1876         <rdar://problem/41041033>
1877
1878         Reviewed by Brent Fulgham.
1879
1880         * wtf/spi/darwin/XPCSPI.h:
1881
1882 2018-06-18  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1883
1884         [WTF] Remove workarounds needed to support libstdc++-4
1885         https://bugs.webkit.org/show_bug.cgi?id=186762
1886
1887         Reviewed by Michael Catanzaro.
1888
1889         Revert r226299, r226300 r226301 and r226302-
1890
1891         * wtf/StdLibExtras.h:
1892
1893 2018-06-12  Darin Adler  <darin@apple.com>
1894
1895         [Cocoa] Make some RetainPtr refinements to get more ready for ARC
1896         https://bugs.webkit.org/show_bug.cgi?id=186526
1897
1898         Reviewed by Anders Carlsson.
1899
1900         * wtf/RetainPtr.h: Improved the definition of autorelease so it does
1901         the right thing for both Objective-C types and non-Objective-C types.
1902         Also added bridgingAutorelease for when we want to autorelease as
1903         part of converting from a CF type to an Objective-C type. The two
1904         advantages of bridgingAutorelease are that it does not require an
1905         additional explicit __bridge cast and that it does not prevent the
1906         ARC objc_autoreleaseReturnValue optimization the way that doing an
1907         autorelease on the CF type would.
1908
1909         * wtf/text/mac/StringImplMac.mm:
1910         (WTF::StringImpl::operator NSString *): Use bridgingAutorelease.
1911
1912 2018-06-15  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1913
1914         [WinCairo] Move unrelated features of WorkQueueWin into IPC::Connection
1915         https://bugs.webkit.org/show_bug.cgi?id=186582
1916
1917         Remove unrelated feature from WorkQueueWin.
1918
1919         Reviewed by Brent Fulgham.
1920
1921         * wtf/PlatformWin.cmake: Remove WorkItemContext.*
1922         * wtf/WorkQueue.cpp:
1923         * wtf/WorkQueue.h:
1924         * wtf/win/Win32Handle.h:
1925         * wtf/win/WorkItemContext.cpp: Removed.
1926         * wtf/win/WorkItemContext.h: Removed.
1927         * wtf/win/WorkQueueWin.cpp:
1928         (WTF::WorkQueue::handleCallback): Deleted.
1929         (WTF::WorkQueue::registerHandle): Deleted.
1930         (WTF::WorkQueue::unregisterAndCloseHandle): Deleted.
1931         (WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted.
1932         (WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted.
1933
1934 2018-06-13  Keith Miller  <keith_miller@apple.com>
1935
1936         AutomaticThread should have a way to provide a thread name
1937         https://bugs.webkit.org/show_bug.cgi?id=186604
1938
1939         Reviewed by Filip Pizlo.
1940
1941         AutomaticThread now has a virtual method to get a name, which can be
1942         overridden to provide a custom name to the thread.
1943
1944         * wtf/AutomaticThread.cpp:
1945         (WTF::AutomaticThread::start):
1946         * wtf/AutomaticThread.h:
1947         * wtf/WorkerPool.cpp:
1948
1949 2018-06-11  Saam Barati  <sbarati@apple.com>
1950
1951         The NaturalLoops algorithm only works when the list of blocks in a loop is de-duplicated
1952         https://bugs.webkit.org/show_bug.cgi?id=184829
1953
1954         Reviewed by Michael Saboff.
1955
1956         This patch switches NaturalLoops to walking over a block's predecessors
1957         instead of successors when building the initial list of loops and their
1958         headers. The algorithm broke down when we had a footer block with multiple
1959         control flow edges pointing to the same header. This made the loop data
1960         structure contain multiple entries for the same basic block. The algorithm
1961         breaks down when we end up in this state, since it means our way of detecting
1962         what loop is more inner is broken, since that check uses a loop's size.
1963
1964         * wtf/NaturalLoops.h:
1965         (WTF::NaturalLoop::addBlock):
1966         (WTF::NaturalLoops::NaturalLoops):
1967
1968 2018-06-11  Keith Rollin  <krollin@apple.com>
1969
1970         Add logging around internalError(const URL&)
1971         https://bugs.webkit.org/show_bug.cgi?id=186369
1972         <rdar://problem/40872046>
1973
1974         Reviewed by Brent Fulgham.
1975
1976         There are times when we receive bug reports where the user says that
1977         they are simply shown a page saying an internal error occurred. To
1978         help understand the circumstances of that error, add some logging to
1979         internalError() in WebErrors.cpp. This logging logs at the Error level
1980         that internalError() was called and then logs a backtrace.
1981
1982         * wtf/Assertions.cpp:
1983         * wtf/Assertions.h:
1984
1985 2018-06-11  Michael Saboff  <msaboff@apple.com>
1986
1987         JavaScriptCore: Disable 32-bit JIT on Windows
1988         https://bugs.webkit.org/show_bug.cgi?id=185989
1989
1990         Reviewed by Mark Lam.
1991
1992         Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.
1993
1994         * wtf/Platform.h:
1995
1996 2018-06-09  Dan Bernstein  <mitz@apple.com>
1997
1998         [Xcode] Clean up and modernize some build setting definitions
1999         https://bugs.webkit.org/show_bug.cgi?id=186463
2000
2001         Reviewed by Sam Weinig.
2002
2003         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
2004         * Configurations/DebugRelease.xcconfig: Ditto.
2005
2006 2018-06-08  Darin Adler  <darin@apple.com>
2007
2008         [Cocoa] Remove all uses of NSAutoreleasePool as part of preparation for ARC
2009         https://bugs.webkit.org/show_bug.cgi?id=186436
2010
2011         Reviewed by Anders Carlsson.
2012
2013         * WTF.xcodeproj/project.pbxproj: Added FoundationSPI.h.
2014
2015         * wtf/AutodrainedPool.h: Streamlined header a bit, added some comments.
2016
2017         * wtf/PlatformMac.cmake: Added FoundationSPI.h.
2018
2019         * wtf/cocoa/AutodrainedPool.cpp: Moved here from AutodrainedPoolMac.mm.
2020         (WTF::AutodrainedPool::AutodrainedPool): Use objc_autoreleasePoolPush/Pop instead of
2021         the NSAutoreleasePool class.
2022         (WTF::AutodrainedPool::~AutodrainedPool): Ditto.
2023
2024          * wtf/spi/cocoa/FoundationSPI.h: Moved from Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h.
2025          Changed both include and declarations so it's the objc_autoreleasePoolPush/Pop instead
2026          of the higher level NS functions that call them.
2027
2028 2018-06-08  Brian Burg  <bburg@apple.com>
2029
2030         [Cocoa] Web Automation: include browser name and version in listing for automation targets
2031         https://bugs.webkit.org/show_bug.cgi?id=186204
2032         <rdar://problem/36950423>
2033
2034         Reviewed by Darin Adler.
2035
2036         * wtf/spi/cf/CFBundleSPI.h: Add needed infoDictionary key values.
2037
2038 2018-06-07  Yusuke Suzuki  <utatane.tea@gmail.com>
2039
2040         [WTF] Add WorkerPool
2041         https://bugs.webkit.org/show_bug.cgi?id=174569
2042
2043         Reviewed by Carlos Garcia Campos.
2044
2045         This patch adds WorkerPool, which is a thread pool that consists of AutomaticThread.
2046         Since it is based on AutomaticThread, this WorkerPool can take `timeout`: once `timeout`
2047         passes without any tasks, threads in WorkerPool will be destroyed.
2048
2049         We add shouldSleep handler to AutomaticThread to make destruction of threads in WorkerPool moderate.
2050         Without this, all threads are destroyed at once after `timeout` passes.
2051
2052         * WTF.xcodeproj/project.pbxproj:
2053         * wtf/AutomaticThread.cpp:
2054         (WTF::AutomaticThread::AutomaticThread):
2055         (WTF::AutomaticThread::start):
2056         * wtf/AutomaticThread.h:
2057         * wtf/CMakeLists.txt:
2058         * wtf/WorkerPool.cpp: Added.
2059         (WTF::WorkerPool::WorkerPool):
2060         (WTF::WorkerPool::~WorkerPool):
2061         (WTF::WorkerPool::shouldSleep):
2062         (WTF::WorkerPool::postTask):
2063         * wtf/WorkerPool.h: Added.
2064         (WTF::WorkerPool::create):
2065
2066 2018-06-07  Chris Dumez  <cdumez@apple.com>
2067
2068         Add base class to get WeakPtrFactory member and avoid some boilerplate code
2069         https://bugs.webkit.org/show_bug.cgi?id=186407
2070
2071         Reviewed by Brent Fulgham.
2072
2073         Add CanMakeWeakPtr base class to get WeakPtrFactory member and its getter, in
2074         order to avoid some boilerplate code in every class needing a WeakPtrFactory.
2075         This also gets rid of old-style createWeakPtr() methods in favor of the newer
2076         makeWeakPtr().
2077
2078         * wtf/WeakPtr.h:
2079         (WTF::CanMakeWeakPtr::weakPtrFactory const):
2080         (WTF::CanMakeWeakPtr::weakPtrFactory):
2081
2082 2018-06-07  Tadeu Zagallo  <tzagallo@apple.com>
2083
2084         Don't try to allocate JIT memory if we don't have the JIT entitlement
2085         https://bugs.webkit.org/show_bug.cgi?id=182605
2086         <rdar://problem/38271229>
2087
2088         Reviewed by Mark Lam.
2089
2090         Move processHasEntitlement from Source/WebKit/Shared/mac/SandboxUtilities.h
2091         into WTF so JavaScriptCore can also use it.
2092
2093         * WTF.xcodeproj/project.pbxproj:
2094         * wtf/PlatformMac.cmake:
2095         * wtf/cocoa/Entitlements.cpp:
2096         (WTF::processHasEntitlement):
2097         * wtf/cocoa/Entitlements.h:
2098         * wtf/spi/cocoa/SecuritySPI.h:
2099
2100 2018-06-05  Darin Adler  <darin@apple.com>
2101
2102         [Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers
2103         https://bugs.webkit.org/show_bug.cgi?id=186324
2104
2105         Reviewed by Anders Carlsson.
2106
2107         * WTF.xcodeproj/project.pbxproj: Removed DispatchPtr.h.
2108         * wtf/BlockPtr.h: Remove unneeded checks for __OBJC__. Added some use
2109         of WTFMove.
2110         * wtf/CMakeLists.txt: Removed DispatchPtr.h.
2111         * wtf/DispatchPtr.h: Removed. We no longer need to support Mavericks.
2112         * wtf/OSObjectPtr.h: Remove unneeded checks for __OBJC__. Added some use
2113         of WTFMove.
2114
2115 2018-06-05  Darin Adler  <darin@apple.com>
2116
2117         [Cocoa] More preparation for ARC, focusing on WebKit and smart pointers
2118         https://bugs.webkit.org/show_bug.cgi?id=186314
2119
2120         Reviewed by Anders Carlsson.
2121
2122         * wtf/BlockPtr.h: Put Block_copy/release calls into #if since they are
2123         not needed under ARC.
2124
2125         * wtf/OSObjectPtr.h: Added constructor and assignment operator so we can
2126         work with OS objects without adopting them.
2127
2128 2018-06-05  Darin Adler  <darin@apple.com>
2129
2130         [Cocoa] Improve some soft linking compatibility with ARC
2131         https://bugs.webkit.org/show_bug.cgi?id=186309
2132
2133         Reviewed by Anders Carlsson.
2134
2135         * wtf/cocoa/SoftLinking.h: Updated the SOFT_LINK_CONSTANT family of
2136         macros to use a const type. This increases the chance that they will
2137         work without triggering ARC compilation errors since it's easier to
2138         get the type right for read-only access than for read/write.
2139
2140 2018-06-05  Youenn Fablet  <youenn@apple.com>
2141
2142         ServiceWorker registration should store any script fetched through importScripts
2143         https://bugs.webkit.org/show_bug.cgi?id=182444
2144         <rdar://problem/37164835>
2145
2146         Reviewed by Chris Dumez.
2147
2148         * wtf/persistence/PersistentCoders.h:
2149
2150 2018-06-04  Darin Adler  <darin@apple.com>
2151
2152         [Cocoa] Improve smart pointer support for ARC (OSObjectPtr/DispatchPtr)
2153         https://bugs.webkit.org/show_bug.cgi?id=186300
2154
2155         Reviewed by Daniel Bates.
2156
2157         * wtf/DispatchPtr.h: Don't call dispatch_retain or dispatch_release
2158         since ARC will automatically do it for us in the same places we are
2159         doing it here.
2160
2161         * wtf/OSObjectPtr.h:
2162         (WTF::retainOSObject): Don't call os_retain since ARC will do it.
2163         (WTF::releaseOSObject): Don't call os_release since ARC will do it.
2164
2165 2018-05-31  Commit Queue  <commit-queue@webkit.org>
2166
2167         Unreviewed, rolling out r232212.
2168         https://bugs.webkit.org/show_bug.cgi?id=186153
2169
2170         broke build (Requested by alexchristensen on #webkit).
2171
2172         Reverted changeset:
2173
2174         "JavaScriptCore: Disable 32-bit JIT on Windows"
2175         https://bugs.webkit.org/show_bug.cgi?id=185989
2176         https://trac.webkit.org/changeset/232212
2177
2178 2018-05-30  Keith Miller  <keith_miller@apple.com>
2179
2180         LLInt get_by_id prototype caching doesn't properly handle changes
2181         https://bugs.webkit.org/show_bug.cgi?id=186112
2182
2183         Reviewed by Filip Pizlo.
2184
2185         Mark some methods const.
2186
2187         * wtf/Bag.h:
2188         (WTF::Bag::begin const):
2189         (WTF::Bag::end const):
2190         (WTF::Bag::unwrappedHead const):
2191         (WTF::Bag::end): Deleted.
2192         (WTF::Bag::unwrappedHead): Deleted.
2193
2194 2018-05-30  Alex Christensen  <achristensen@webkit.org>
2195
2196         Reduce String allocations
2197         https://bugs.webkit.org/show_bug.cgi?id=186059
2198
2199         Reviewed by Darin Adler.
2200
2201         * wtf/text/StringView.cpp:
2202         (WTF::convertASCIICase):
2203         (WTF::StringView::convertToASCIILowercase const):
2204         (WTF::StringView::convertToASCIIUppercase const):
2205         * wtf/text/StringView.h:
2206         * wtf/text/cf/StringViewCF.cpp:
2207         (WTF::StringView::createCFString const):
2208
2209 2018-05-30  Dominik Infuehr  <dinfuehr@igalia.com>
2210
2211         [MIPS] Fix build on MIPS32r1
2212         https://bugs.webkit.org/show_bug.cgi?id=185944
2213
2214         Reviewed by Yusuke Suzuki.
2215
2216         Added WTF_MIPS_ISA_REV_AT_LEAST to test for certain release or later.
2217
2218         * wtf/Platform.h:
2219
2220 2018-05-29  Tim Horton  <timothy_horton@apple.com>
2221
2222         Fix the build
2223         https://bugs.webkit.org/show_bug.cgi?id=186078
2224
2225         Unreviewed build fix.
2226
2227         * wtf/Platform.h:
2228
2229 2018-05-29  Saam Barati  <sbarati@apple.com>
2230
2231         JSC should put bmalloc's scavenger into mini mode
2232         https://bugs.webkit.org/show_bug.cgi?id=185988
2233
2234         Reviewed by Michael Saboff.
2235
2236         * wtf/FastMalloc.cpp:
2237         (WTF::fastEnableMiniMode):
2238         * wtf/FastMalloc.h:
2239
2240 2018-05-29  Yusuke Suzuki  <utatane.tea@gmail.com>
2241
2242         Unreviewed, follow-up after r232244
2243         https://bugs.webkit.org/show_bug.cgi?id=186023
2244
2245         _BitScanReverse64 is available only in X86_64 and ARM.
2246
2247         * wtf/MathExtras.h:
2248         (WTF::clz64):
2249
2250 2018-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
2251
2252         [WTF] Add clz32 / clz64 for MSVC
2253         https://bugs.webkit.org/show_bug.cgi?id=186023
2254
2255         Reviewed by Daniel Bates.
2256
2257         This patch adds efficient implementations of clz32 and clz64 for MSVC.
2258         While MSVC has _lzcnt intrinsic, it is only valid if the CPU has lzcnt instruction.
2259         Instead of checking cpuid here, we just use _BitScanReverse and _BitScanReverse64.
2260
2261         * wtf/MathExtras.h:
2262         (WTF::clz32):
2263         (WTF::clz64):
2264
2265 2018-05-26  Filip Pizlo  <fpizlo@apple.com>
2266
2267         testair sometimes crashes due to races in initialization of ARC4RandomNumberGenerator
2268         https://bugs.webkit.org/show_bug.cgi?id=186014
2269
2270         Reviewed by Yusuke Suzuki.
2271         
2272         testair launches a bunch of threads and the threads do B3 things that use random numbers.
2273         Sometimes two threads will initialize the random number generator at the same time, because
2274         that's what happens when you use static NeverDestroyed<>.
2275         
2276         This changes that code to use std::call_once to initialize the shared
2277         ARC4RandomNumberGenerator.
2278         
2279         Also, this adds a diagnostic message to the lock's assertion. This assertion was the symptom
2280         of the race, and knowing the state of the lock when the assertion fired gave a darn good clue
2281         about what was going on: the lock's value was 0 at time of unlock, implying that another
2282         thread reinitialized the lock to zero by rerunning the constructor.
2283
2284         * wtf/CryptographicallyRandomNumber.cpp:
2285         * wtf/LockAlgorithmInlines.h:
2286         (WTF::Hooks>::unlockSlow):
2287
2288 2018-05-25  Michael Saboff  <msaboff@apple.com>
2289
2290         JavaScriptCore: Disable 32-bit JIT on Windows
2291         https://bugs.webkit.org/show_bug.cgi?id=185989
2292
2293         Reviewed by Saam Barati.
2294
2295         * wtf/Platform.h:
2296
2297 2018-05-24  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2298
2299         [GTK][WPE] Memory pressure monitor doesn't reliable notify all the subprocesses
2300         https://bugs.webkit.org/show_bug.cgi?id=184261
2301
2302         Reviewed by Carlos Garcia Campos.
2303
2304         Receive the memory pressure notifications from the UIProcess memory monitor via WebKit IPC.
2305
2306         * wtf/MemoryPressureHandler.h:
2307         * wtf/linux/MemoryPressureHandlerLinux.cpp:
2308         (WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
2309         (WTF::MemoryPressureHandler::install):
2310         (WTF::MemoryPressureHandler::uninstall):
2311
2312 2018-05-24  Jiewen Tan  <jiewen_tan@apple.com>
2313
2314         Adopt SecKeyProxy SPI in certificate based challenge response code
2315         https://bugs.webkit.org/show_bug.cgi?id=185848
2316         <rdar://problem/34586181>
2317
2318         Reviewed by Alex Christensen.
2319
2320         Add a condition macro to determine if SecKeyProxy SPI exists.
2321
2322         * wtf/Platform.h:
2323
2324 2018-05-23  Eric Carlson  <eric.carlson@apple.com>
2325
2326         Avoid loading AVFoundation to check supported MIME types if possible
2327         https://bugs.webkit.org/show_bug.cgi?id=185839
2328         <rdar://problem/40182010>
2329
2330         Reviewed by Jer Noble.
2331
2332         * wtf/cocoa/SoftLinking.h: Add SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT.
2333
2334 2018-05-23  Filip Pizlo  <fpizlo@apple.com>
2335
2336         Speed up JetStream/base64
2337         https://bugs.webkit.org/show_bug.cgi?id=185914
2338
2339         Reviewed by Michael Saboff.
2340         
2341         Make Vector<>::append ALWAYS_INLINE.
2342
2343         * wtf/Vector.h:
2344         (WTF::Vector::append):
2345         (WTF::minCapacity>::expandCapacity):
2346         (WTF::minCapacity>::append):
2347         (WTF::minCapacity>::tryAppend):
2348
2349 2018-05-23  Michael Saboff  <msaboff@apple.com>
2350
2351         Date.parse() doesn't properly handle input outside of ES Spec limits
2352         https://bugs.webkit.org/show_bug.cgi?id=185868
2353
2354         Reviewed by Mark Lam.
2355
2356         Clamped date creation to +/-100,000,000 days relative to midnight at the beginning
2357         of 01 January, 1970 UTC as per ecma262/#sec-time-values-and-time-range and
2358         ecma262/#sec-date-time-string-format.
2359
2360         * wtf/DateMath.cpp:
2361         (WTF::ymdhmsToSeconds):
2362         (WTF::parseES5DateFromNullTerminatedCharacters):
2363
2364 2018-05-22  Michael Catanzaro  <mcatanzaro@igalia.com>
2365
2366         Prohibit shrinking the FastBitVector
2367         https://bugs.webkit.org/show_bug.cgi?id=181020
2368
2369         Reviewed by Oliver Hunt.
2370
2371         Prohibit shrinking the FastBitVector. It's not prepared for this and the current usage does
2372         not require it.
2373
2374         * wtf/FastBitVector.cpp:
2375         (WTF::FastBitVectorWordOwner::resizeSlow):
2376
2377 2018-05-22  Mark Lam  <mark.lam@apple.com>
2378
2379         StringImpl utf8 conversion should not fail silently.
2380         https://bugs.webkit.org/show_bug.cgi?id=185888
2381         <rdar://problem/40464506>
2382
2383         Reviewed by Filip Pizlo.
2384
2385         * WTF.xcodeproj/project.pbxproj:
2386         * wtf/CMakeLists.txt:
2387         * wtf/PrintStream.cpp:
2388         (WTF::printExpectedCStringHelper):
2389         (WTF::printInternal):
2390         * wtf/text/StringImpl.cpp:
2391         (WTF::StringImpl::utf8Impl):
2392         (WTF::StringImpl::utf8ForCharacters):
2393         (WTF::StringImpl::tryUtf8ForRange const):
2394         (WTF::StringImpl::tryUtf8 const):
2395         (WTF::StringImpl::utf8 const):
2396         (WTF::StringImpl::utf8ForRange const): Deleted.
2397         * wtf/text/StringImpl.h:
2398         * wtf/text/StringView.cpp:
2399         (WTF::StringView::tryUtf8 const):
2400         (WTF::StringView::utf8 const):
2401         * wtf/text/StringView.h:
2402         * wtf/text/UTF8ConversionError.h: Added.
2403         * wtf/text/WTFString.cpp:
2404         (WTF::String::tryUtf8 const):
2405         (WTF::String::utf8 const):
2406         * wtf/text/WTFString.h:
2407
2408 2018-05-22  Chris Dumez  <cdumez@apple.com>
2409
2410         Regression(AsyncPolicyDelegates): Box.app login Window is blank
2411         https://bugs.webkit.org/show_bug.cgi?id=185832
2412         <rdar://problem/40307871>
2413
2414         Reviewed by Geoffrey Garen.
2415
2416         Moved WeakObjCPtr.h from WebKit2 to WTF with RetainPtr.h, so that it can be used
2417         in WebKitLegacy code.
2418
2419         * WTF.xcodeproj/project.pbxproj:
2420         * wtf/WeakObjCPtr.h: Renamed from Source/WebKit/Shared/mac/WeakObjCPtr.h.
2421
2422 2018-05-22  Filip Pizlo  <fpizlo@apple.com>
2423
2424         Get rid of TLCs
2425         https://bugs.webkit.org/show_bug.cgi?id=185846
2426
2427         Rubber stamped by Geoffrey Garen.
2428
2429         * wtf/Platform.h:
2430
2431 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
2432
2433         Unreviewed, rolling out r232052.
2434
2435         Breaks internal builds.
2436
2437         Reverted changeset:
2438
2439         "Use more C++17"
2440         https://bugs.webkit.org/show_bug.cgi?id=185176
2441         https://trac.webkit.org/changeset/232052
2442
2443 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2444
2445         Use more C++17
2446         https://bugs.webkit.org/show_bug.cgi?id=185176
2447
2448         Reviewed by JF Bastien.
2449
2450         * Configurations/Base.xcconfig:
2451         * wtf/StdLibExtras.h:
2452
2453 2018-05-18  Filip Pizlo  <fpizlo@apple.com>
2454
2455         DFG should inline InstanceOf ICs
2456         https://bugs.webkit.org/show_bug.cgi?id=185695
2457
2458         Reviewed by Yusuke Suzuki.
2459         
2460         I found myself needing a way to represent bottom/false/true/top, so I created it.
2461
2462         * WTF.xcodeproj/project.pbxproj:
2463         * wtf/BooleanLattice.h: Added.
2464         (WTF::lubBooleanLattice):
2465         (WTF::printInternal):
2466         * wtf/CMakeLists.txt:
2467
2468 2018-05-17  Jiewen Tan  <jiewen_tan@apple.com>
2469
2470         Convert CertificateInfo into Credential in UI Process instead of Networking Process
2471         https://bugs.webkit.org/show_bug.cgi?id=185662
2472         <rdar://problem/40275561>
2473
2474         Reviewed by Alex Christensen.
2475
2476         Remove marco HAVE_SEC_IDENTITY since it is no longer useful.
2477
2478         * wtf/Platform.h:
2479
2480 2018-05-17  Zalan Bujtas  <zalan@apple.com>
2481
2482         Add ASSERT_NOT_IMPLEMENTED_YET() macro
2483         https://bugs.webkit.org/show_bug.cgi?id=185713
2484
2485         Reviewed by Antti Koivisto.
2486
2487         To mark unimplemented code paths.
2488
2489         * wtf/Assertions.cpp:
2490         * wtf/Assertions.h:
2491
2492 2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
2493
2494         Add support for Intl NumberFormat formatToParts
2495         https://bugs.webkit.org/show_bug.cgi?id=185375
2496
2497         Reviewed by Yusuke Suzuki.
2498
2499         Add flag for NumberFormat formatToParts.
2500
2501         * wtf/FeatureDefines.h:
2502
2503 2018-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2504
2505         Unreviewed, follow-up after r231762
2506         https://bugs.webkit.org/show_bug.cgi?id=185589
2507
2508         Addresses darin's suggestions to improve timeClip.
2509
2510         * wtf/DateMath.cpp:
2511         (WTF::timeClip):
2512
2513 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
2514
2515         [Win] Use C++17 in MSVC
2516         https://bugs.webkit.org/show_bug.cgi?id=185232
2517
2518         Reviewed by Alex Christensen.
2519
2520         Disable some WebKit defined C++17 features for MSVC.
2521
2522         * wtf/StdLibExtras.h:
2523
2524 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
2525
2526         [JSC] timeClip(-0) should produce +0
2527         https://bugs.webkit.org/show_bug.cgi?id=185589
2528
2529         Reviewed by Saam Barati.
2530
2531         According to the spec[1], timeClip(-0) should produce +0.
2532         We achieve this by adding 0.0 to the result of trunc(t).
2533
2534         [1]: https://tc39.github.io/ecma262/#sec-timeclip
2535
2536         * wtf/DateMath.cpp:
2537         (WTF::timeClip):
2538
2539 2018-05-13  Geoffrey Garen  <ggaren@apple.com>
2540
2541         Simplified Mach exception handling
2542         https://bugs.webkit.org/show_bug.cgi?id=185595
2543
2544         Reviewed by Keith Miller.
2545
2546         * wtf/threads/Signals.cpp:
2547         (WTF::startMachExceptionHandlerThread): Use mach_msg_server_once instead
2548         of duplicating its functionality. Separate error handling logic from
2549         program logic to help program logic stand out. Use
2550         DISPATCH_TARGET_QUEUE_* instead of explicitly fetching a queue.
2551
2552         Also, we don't need the high priority queue. The kernel donates a
2553         priority voucher from the exception thread to the receiver thread, and
2554         mach_msg_server_once takes care to forward that voucher.
2555
2556 2018-05-14  Zan Dobersek  <zdobersek@igalia.com>
2557
2558         [GTK] REGRESSION(r231170) Build broken with Clang 5.0
2559         https://bugs.webkit.org/show_bug.cgi?id=185198
2560
2561         Reviewed by Michael Catanzaro.
2562
2563         * wtf/Compiler.h:
2564         * wtf/Forward.h: Delete the std::optional forward declaration that is
2565         potentially incompatible with definition provided by the standard library.
2566         * wtf/Hasher.h:
2567         * wtf/StdLibExtras.h: In addition to the remaining C++14 configurations,
2568         also use custom std::in_place_t implementation when compiling with
2569         libstdc++ 6.x, which doesn't provide its own.
2570
2571 2018-05-13  Filip Pizlo  <fpizlo@apple.com>
2572
2573         Disable pointer poisoning
2574         https://bugs.webkit.org/show_bug.cgi?id=185586
2575
2576         Reviewed by Yusuke Suzuki.
2577         
2578         This seems like a 0.3% speed-up on microbenchmarks. It seems like it may be a small speed-up on
2579         other tests, too.
2580
2581         * wtf/Platform.h:
2582
2583 2018-05-11  Chris Dumez  <cdumez@apple.com>
2584
2585         REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download
2586         https://bugs.webkit.org/show_bug.cgi?id=185531
2587         <rdar://problem/39909589>
2588
2589         Reviewed by Geoffrey Garen.
2590
2591         Add a default constructor for CompletionHandlerCallingScope, for convenience.
2592
2593         * wtf/CompletionHandler.h:
2594
2595 2018-05-11  Saam Barati  <sbarati@apple.com>
2596
2597         Don't allocate value profiles when the JIT is disabled
2598         https://bugs.webkit.org/show_bug.cgi?id=185525
2599
2600         Reviewed by Michael Saboff.
2601
2602         * wtf/RefCountedArray.h:
2603         (WTF::RefCountedArray::RefCountedArray):
2604
2605 2018-05-10  Tim Horton  <timothy_horton@apple.com>
2606
2607         Fix the build after r231393
2608         https://bugs.webkit.org/show_bug.cgi?id=185519
2609         <rdar://problem/40131741>
2610
2611         Reviewed by Simon Fraser.
2612
2613         * wtf/Platform.h:
2614
2615 2018-05-09  Michael Catanzaro  <mcatanzaro@igalia.com>
2616
2617         [WPE] Build cleanly with GCC 8 and ICU 60
2618         https://bugs.webkit.org/show_bug.cgi?id=185462
2619
2620         Reviewed by Carlos Alberto Lopez Perez.
2621
2622         * wtf/HashTable.h:
2623         (WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
2624         is probably safe enough, since it's for an empty bucket.
2625         * wtf/StdLibExtras.h:
2626         (WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.
2627         * wtf/Vector.h: Ditto, all uses are safe.
2628         * wtf/glib/WTFGType.h: Silence -Wcast-function-type.
2629
2630 2018-05-09  Yusuke Suzuki  <utatane.tea@gmail.com>
2631
2632         [ARMv7] Drop ARMv7 disassembler in favor of capstone
2633         https://bugs.webkit.org/show_bug.cgi?id=185423
2634
2635         Reviewed by Michael Catanzaro.
2636
2637         Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.
2638
2639         * wtf/Platform.h:
2640
2641 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2642
2643         [JSC][GTK][JSCONLY] Use capstone disassembler
2644         https://bugs.webkit.org/show_bug.cgi?id=185283
2645
2646         Reviewed by Michael Catanzaro.
2647
2648         Add USE_CAPSTONE used for MIPS and ARM.
2649
2650         * wtf/Platform.h:
2651
2652 2018-05-09  Antti Koivisto  <antti@apple.com>
2653
2654         Add OptionSet::operator& and operator bool
2655         https://bugs.webkit.org/show_bug.cgi?id=185306
2656
2657         Reviewed by Anders Carlsson.
2658
2659         This is primarily to allow writing
2660
2661             if (options & Option:A)
2662
2663         instead of
2664
2665             if (options.contains(Option:A))
2666
2667         This is consistent with other OptionSet operators.
2668
2669         * wtf/OptionSet.h:
2670         (WTF::OptionSet::operator bool):
2671         (WTF::OptionSet::operator&):
2672
2673         Also remove T versions of operator| and operator-, they are not needed due to
2674         implicit conversion from T to OptionSet<T>.
2675
2676 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
2677
2678         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
2679         https://bugs.webkit.org/show_bug.cgi?id=185365
2680
2681         Reviewed by Saam Barati.
2682         
2683         Fix some inlining goof-ups.
2684         
2685         Rolling back in after fixing cloop build.
2686
2687         * wtf/TinyPtrSet.h:
2688         (WTF::TinyPtrSet::add):
2689         (WTF::TinyPtrSet::merge):
2690         (WTF::TinyPtrSet::addOutOfLine):
2691         (WTF::TinyPtrSet::mergeOtherOutOfLine):
2692
2693 2018-05-08  Dean Jackson  <dino@apple.com>
2694
2695         Use thumbnails in System Previews
2696         https://bugs.webkit.org/show_bug.cgi?id=185397
2697         <rdar://problem/40039376>
2698
2699         Reviewed by Jon Lee.
2700
2701         SYSTEM_PREVIEW is only available on some platforms.
2702
2703         * wtf/Platform.h:
2704
2705 2018-05-08  Ryan Haddad  <ryanhaddad@apple.com>
2706
2707         Unreviewed, rolling out r231468.
2708
2709         Broke the CLoop build
2710
2711         Reverted changeset:
2712
2713         "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
2714         any abstract values"
2715         https://bugs.webkit.org/show_bug.cgi?id=185365
2716         https://trac.webkit.org/changeset/231468
2717
2718 2018-05-07  Yusuke Suzuki  <utatane.tea@gmail.com>
2719
2720         [JSCONLY] Enable ARMv7 DFG
2721         https://bugs.webkit.org/show_bug.cgi?id=185415
2722
2723         Reviewed by Mark Lam.
2724
2725         Enable ARMv7 DFG JIT by default on Linux and FreeBSD.
2726
2727         * wtf/Platform.h:
2728
2729 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
2730
2731         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
2732         https://bugs.webkit.org/show_bug.cgi?id=185365
2733
2734         Reviewed by Saam Barati.
2735         
2736         Fix some inlining goof-ups.
2737
2738         * wtf/TinyPtrSet.h:
2739         (WTF::TinyPtrSet::add):
2740         (WTF::TinyPtrSet::merge):
2741         (WTF::TinyPtrSet::addOutOfLine):
2742         (WTF::TinyPtrSet::mergeOtherOutOfLine):
2743
2744 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2745
2746         [WTF] Embed default atomic string table in Thread
2747         https://bugs.webkit.org/show_bug.cgi?id=185349
2748
2749         Reviewed by Darin Adler.
2750
2751         Do not need to allocate AtomicStringTable separate from Thread
2752         since the table's lifetime is completely the same as Thread.
2753
2754         This patch just embeds it as a data member of Thread.
2755
2756         * wtf/Threading.cpp:
2757         (WTF::Thread::initializeInThread):
2758         (WTF::Thread::didExit):
2759         * wtf/Threading.h:
2760         * wtf/text/AtomicStringTable.cpp:
2761         (WTF::AtomicStringTable::create): Deleted.
2762         (WTF::AtomicStringTable::destroy): Deleted.
2763         * wtf/text/AtomicStringTable.h:
2764
2765 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2766
2767         [WTF] Use static initializers for WTF::Mutex and WTF::ThreadCondition
2768         https://bugs.webkit.org/show_bug.cgi?id=185361
2769
2770         Reviewed by Sam Weinig.
2771
2772         Use static initializers for WTF::Mutex and WTF::ThreadCondition to make
2773         constructors of them simple and constexpr.
2774
2775         * wtf/ThreadingPrimitives.h:
2776         * wtf/ThreadingPthreads.cpp:
2777         (WTF::Mutex::Mutex): Deleted.
2778         (WTF::ThreadCondition::ThreadCondition): Deleted.
2779         * wtf/ThreadingWin.cpp:
2780         (WTF::Mutex::Mutex): Deleted.
2781         (WTF::ThreadCondition::ThreadCondition): Deleted.
2782
2783 2018-05-04  Tim Horton  <timothy_horton@apple.com>
2784
2785         Shift to a lower-level framework for simplifying URLs
2786         https://bugs.webkit.org/show_bug.cgi?id=185334
2787
2788         Reviewed by Dan Bernstein.
2789
2790         * wtf/Platform.h:
2791
2792 2018-05-04  Eric Carlson  <eric.carlson@apple.com>
2793
2794         Log media time range as JSON
2795         https://bugs.webkit.org/show_bug.cgi?id=185321
2796         <rdar://problem/39986746>
2797
2798         Reviewed by Youenn Fablet.
2799
2800         * wtf/MediaTime.cpp:
2801         (WTF::toJSONStringInternal): Extract guts of MediaTime::toJSONString to this static function
2802         so it can be used by MediaTimeRange::toJSONString as well.
2803         (WTF::MediaTime::toJSONString const):
2804         (WTF::MediaTimeRange::toJSONString const):
2805         * wtf/MediaTime.h:
2806
2807 2018-05-04  Antti Koivisto  <antti@apple.com>
2808
2809         OptionsSet initializer list constructor should be constexpr
2810         https://bugs.webkit.org/show_bug.cgi?id=185298
2811
2812         Reviewed by Anders Carlsson.
2813
2814         * wtf/OptionSet.h:
2815         (WTF::OptionSet::OptionSet):
2816
2817 2018-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>
2818
2819         Use default std::optional if it is provided
2820         https://bugs.webkit.org/show_bug.cgi?id=185159
2821
2822         Reviewed by Michael Catanzaro.
2823
2824         * wtf/Expected.h:
2825         * wtf/Optional.h:
2826         Do not use <optional> for clang currently.
2827         (WTF::valueOrCompute):
2828
2829 2018-05-03  Filip Pizlo  <fpizlo@apple.com>
2830
2831         Strings should not be allocated in a gigacage
2832         https://bugs.webkit.org/show_bug.cgi?id=185218
2833
2834         Reviewed by Saam Barati.
2835         
2836         * WTF.xcodeproj/project.pbxproj:
2837         * wtf/Deque.h:
2838         * wtf/Forward.h:
2839         * wtf/Gigacage.h:
2840         (Gigacage::name):
2841         (Gigacage::basePtr):
2842         * wtf/Vector.h:
2843         (WTF::VectorBufferBase::allocateBuffer):
2844         (WTF::VectorBufferBase::tryAllocateBuffer):
2845         (WTF::VectorBufferBase::reallocateBuffer):
2846         (WTF::VectorBufferBase::deallocateBuffer):
2847         (WTF::minCapacity>::Vector):
2848         (WTF::=):
2849         (WTF::minCapacity>::contains const):
2850         (WTF::minCapacity>::findMatching const):
2851         (WTF::minCapacity>::find const):
2852         (WTF::minCapacity>::reverseFind const):
2853         (WTF::minCapacity>::appendIfNotContains):
2854         (WTF::minCapacity>::fill):
2855         (WTF::minCapacity>::appendRange):
2856         (WTF::minCapacity>::expandCapacity):
2857         (WTF::minCapacity>::tryExpandCapacity):
2858         (WTF::minCapacity>::resize):
2859         (WTF::minCapacity>::resizeToFit):
2860         (WTF::minCapacity>::shrink):
2861         (WTF::minCapacity>::grow):
2862         (WTF::minCapacity>::asanSetInitialBufferSizeTo):
2863         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
2864         (WTF::minCapacity>::asanBufferSizeWillChangeTo):
2865         (WTF::minCapacity>::reserveCapacity):
2866         (WTF::minCapacity>::tryReserveCapacity):
2867         (WTF::minCapacity>::reserveInitialCapacity):
2868         (WTF::minCapacity>::shrinkCapacity):
2869         (WTF::minCapacity>::append):
2870         (WTF::minCapacity>::tryAppend):
2871         (WTF::minCapacity>::constructAndAppend):
2872         (WTF::minCapacity>::tryConstructAndAppend):
2873         (WTF::minCapacity>::appendSlowCase):
2874         (WTF::minCapacity>::constructAndAppendSlowCase):
2875         (WTF::minCapacity>::tryConstructAndAppendSlowCase):
2876         (WTF::minCapacity>::uncheckedAppend):
2877         (WTF::minCapacity>::appendVector):
2878         (WTF::minCapacity>::insert):
2879         (WTF::minCapacity>::insertVector):
2880         (WTF::minCapacity>::remove):
2881         (WTF::minCapacity>::removeFirst):
2882         (WTF::minCapacity>::removeFirstMatching):
2883         (WTF::minCapacity>::removeAll):
2884         (WTF::minCapacity>::removeAllMatching):
2885         (WTF::minCapacity>::reverse):
2886         (WTF::minCapacity>::map const):
2887         (WTF::minCapacity>::releaseBuffer):
2888         (WTF::minCapacity>::checkConsistency):
2889         (WTF::swap):
2890         (WTF::operator==):
2891         (WTF::operator!=):
2892         (WTF::removeRepeatedElements):
2893         (WTF::Malloc>::Vector): Deleted.
2894         (WTF::Malloc>::contains const): Deleted.
2895         (WTF::Malloc>::findMatching const): Deleted.
2896         (WTF::Malloc>::find const): Deleted.
2897         (WTF::Malloc>::reverseFind const): Deleted.
2898         (WTF::Malloc>::appendIfNotContains): Deleted.
2899         (WTF::Malloc>::fill): Deleted.
2900         (WTF::Malloc>::appendRange): Deleted.
2901         (WTF::Malloc>::expandCapacity): Deleted.
2902         (WTF::Malloc>::tryExpandCapacity): Deleted.
2903         (WTF::Malloc>::resize): Deleted.
2904         (WTF::Malloc>::resizeToFit): Deleted.
2905         (WTF::Malloc>::shrink): Deleted.
2906         (WTF::Malloc>::grow): Deleted.
2907         (WTF::Malloc>::asanSetInitialBufferSizeTo): Deleted.
2908         (WTF::Malloc>::asanSetBufferSizeToFullCapacity): Deleted.
2909         (WTF::Malloc>::asanBufferSizeWillChangeTo): Deleted.
2910         (WTF::Malloc>::reserveCapacity): Deleted.
2911         (WTF::Malloc>::tryReserveCapacity): Deleted.
2912         (WTF::Malloc>::reserveInitialCapacity): Deleted.
2913         (WTF::Malloc>::shrinkCapacity): Deleted.
2914         (WTF::Malloc>::append): Deleted.
2915         (WTF::Malloc>::tryAppend): Deleted.
2916         (WTF::Malloc>::constructAndAppend): Deleted.
2917         (WTF::Malloc>::tryConstructAndAppend): Deleted.
2918         (WTF::Malloc>::appendSlowCase): Deleted.
2919         (WTF::Malloc>::constructAndAppendSlowCase): Deleted.
2920         (WTF::Malloc>::tryConstructAndAppendSlowCase): Deleted.
2921         (WTF::Malloc>::uncheckedAppend): Deleted.
2922         (WTF::Malloc>::appendVector): Deleted.
2923         (WTF::Malloc>::insert): Deleted.
2924         (WTF::Malloc>::insertVector): Deleted.
2925         (WTF::Malloc>::remove): Deleted.
2926         (WTF::Malloc>::removeFirst): Deleted.
2927         (WTF::Malloc>::removeFirstMatching): Deleted.
2928         (WTF::Malloc>::removeAll): Deleted.
2929         (WTF::Malloc>::removeAllMatching): Deleted.
2930         (WTF::Malloc>::reverse): Deleted.
2931         (WTF::Malloc>::map const): Deleted.
2932         (WTF::Malloc>::releaseBuffer): Deleted.
2933         (WTF::Malloc>::checkConsistency): Deleted.
2934         * wtf/text/AtomicStringImpl.h:
2935         * wtf/text/CString.cpp:
2936         (WTF::CStringBuffer::createUninitialized):
2937         * wtf/text/CString.h:
2938         * wtf/text/StringBuffer.h:
2939         (WTF::StringBuffer::StringBuffer):
2940         (WTF::StringBuffer::~StringBuffer):
2941         (WTF::StringBuffer::resize):
2942         * wtf/text/StringImpl.cpp:
2943         (WTF::StringImpl::~StringImpl):
2944         (WTF::StringImpl::destroy):
2945         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2946         (WTF::StringImpl::reallocateInternal):
2947         (WTF::StringImpl::releaseAssertCaged const): Deleted.
2948         * wtf/text/StringImpl.h:
2949         (WTF::StringImpl::createSubstringSharingImpl):
2950         (WTF::StringImpl::tryCreateUninitialized):
2951         (WTF::StringImpl::adopt):
2952         (WTF::StringImpl::assertCaged const): Deleted.
2953         * wtf/text/StringMalloc.cpp: Removed.
2954         * wtf/text/StringMalloc.h: Removed.
2955         * wtf/text/StringVector.h: Removed.
2956         * wtf/text/SymbolImpl.h:
2957         * wtf/text/UniquedStringImpl.h:
2958         * wtf/text/WTFString.h:
2959         (WTF::String::adopt):
2960         (WTF::String::assertCaged const): Deleted.
2961         (WTF::String::releaseAssertCaged const): Deleted.
2962
2963 2018-05-03  Wenson Hsieh  <wenson_hsieh@apple.com>
2964
2965         Ads in NYTimes app are shifted downwards by the scroll view's top content inset
2966         https://bugs.webkit.org/show_bug.cgi?id=185251
2967         <rdar://problem/39062357>
2968
2969         Reviewed by Tim Horton.
2970
2971         Add a new DYLD_IOS_VERSION macro definition for previous or non-internal SDKs.
2972
2973         * wtf/spi/darwin/dyldSPI.h:
2974
2975 2018-05-03  Ryan Haddad  <ryanhaddad@apple.com>
2976
2977         Unreviewed, rolling out r231197.
2978
2979         The test added with this change crashes on the 32-bit JSC bot.
2980
2981         Reverted changeset:
2982
2983         "Correctly detect string overflow when using the 'Function'
2984         constructor"
2985         https://bugs.webkit.org/show_bug.cgi?id=184883
2986         https://trac.webkit.org/changeset/231197
2987
2988 2018-05-03  Commit Queue  <commit-queue@webkit.org>
2989
2990         Unreviewed, rolling out r231223 and r231288.
2991         https://bugs.webkit.org/show_bug.cgi?id=185256
2992
2993         The change in r231223 breaks internal builds, and r231288 is a
2994         dependent change. (Requested by ryanhaddad on #webkit).
2995
2996         Reverted changesets:
2997
2998         "Use default std::optional if it is provided"
2999         https://bugs.webkit.org/show_bug.cgi?id=185159
3000         https://trac.webkit.org/changeset/231223
3001
3002         "Use pointer instead of
3003         std::optional<std::reference_wrapper<>>"
3004         https://bugs.webkit.org/show_bug.cgi?id=185186
3005         https://trac.webkit.org/changeset/231288
3006
3007 2018-05-02  Commit Queue  <commit-queue@webkit.org>
3008
3009         Unreviewed, rolling out r231251.
3010         https://bugs.webkit.org/show_bug.cgi?id=185229
3011
3012         __cpp_lib_optional should be used after including <optional>
3013         since it is defined in <optional> (Requested by yusukesuzuki
3014         on #webkit).
3015
3016         Reverted changeset:
3017
3018         "Follow-up build fix for r231223"
3019         https://bugs.webkit.org/show_bug.cgi?id=185159
3020         https://trac.webkit.org/changeset/231251
3021
3022 2018-05-02  Jonathan Bedard  <jbedard@apple.com>
3023
3024         Follow-up build fix for r231223
3025         https://bugs.webkit.org/show_bug.cgi?id=185159
3026         <rdar://problem/39891074>
3027
3028         Unreviewed build fix.
3029
3030         We should be consistent about when we include <optional> vs define our own.
3031
3032         * wtf/Optional.h:
3033
3034 2018-05-02  Jer Noble  <jer.noble@apple.com>
3035
3036         Enable HAVE_AVKIT for the MINIMAL_SIMULATOR
3037         https://bugs.webkit.org/show_bug.cgi?id=185183
3038
3039         Reviewed by Daniel Bates.
3040
3041         * wtf/Platform.h:
3042
3043 2018-05-01  Yusuke Suzuki  <utatane.tea@gmail.com>
3044
3045         Use default std::optional if it is provided
3046         https://bugs.webkit.org/show_bug.cgi?id=185159
3047
3048         Reviewed by JF Bastien.
3049
3050         Now C++17 flag is enabled. It means that any standard libraries can use <optional> internally.
3051         If we define std::optional regardless of the existence of the standard library's <optional>,
3052         it causes compile errors. For example, in GCC 7 (specifically GCC 7.3.0) environment,
3053         <optional> is included in <unordered_map>.
3054         We do not define std::optional in WebKit side if <optional> is offered.
3055
3056         And we also remove std::optional<T&> use since this is not accepted in C++17. Use
3057         std::optional<std::reference_wrapper<T>> instead.
3058
3059         * wtf/Expected.h:
3060         constexpr does not mean const in C++17.
3061
3062         * wtf/Optional.h:
3063         Do not define std::optional if <optional> is provided.
3064
3065         (WTF::valueOrCompute):
3066
3067 2018-05-01  Robin Morisset  <rmorisset@apple.com>
3068
3069         Correctly detect string overflow when using the 'Function' constructor
3070         https://bugs.webkit.org/show_bug.cgi?id=184883
3071         <rdar://problem/36320331>
3072
3073         Reviewed by Filip Pizlo.
3074
3075         I added new tryAppend methods alongside the old append methods in StringBuilder, that return a boolean (true means success, false means an overflow happened).
3076         I made new methods instead of just adapting the existing ones (and reverted such a change on appendQuotedJSONString) so that callers that rely on the old behaviour (a hard CRASH() on overflow) don't silently start failing.
3077
3078         * wtf/text/StringBuilder.cpp:
3079         (WTF::StringBuilder::allocateBufferUpConvert):
3080         (WTF::StringBuilder::tryAllocateBufferUpConvert):
3081         (WTF::StringBuilder::appendUninitialized):
3082         (WTF::StringBuilder::append):
3083         (WTF::StringBuilder::tryAppend):
3084         * wtf/text/StringBuilder.h:
3085         (WTF::StringBuilder::tryAppend):
3086         (WTF::StringBuilder::append):
3087         (WTF::StringBuilder::tryAppendLiteral):
3088         * wtf/text/StringBuilderJSON.cpp:
3089         (WTF::StringBuilder::appendQuotedJSONString):
3090         (WTF::StringBuilder::tryAppendQuotedJSONString):
3091
3092 2018-04-30  Mark Lam  <mark.lam@apple.com>
3093
3094         Apply PtrTags to the MetaAllocator and friends.
3095         https://bugs.webkit.org/show_bug.cgi?id=185110
3096         <rdar://problem/39533895>
3097
3098         Reviewed by Saam Barati.
3099
3100         1. Introduce a MetaAllocatorPtr smart pointer to do pointer tagging.
3101         2. Use MetaAllocatorPtr in MetaAllocator and MetaAllocatorHandle.
3102
3103         * WTF.xcodeproj/project.pbxproj:
3104         * wtf/CMakeLists.txt:
3105         * wtf/MetaAllocator.cpp:
3106         (WTF::MetaAllocator::release):
3107         (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
3108         (WTF::MetaAllocatorHandle::shrink):
3109         (WTF::MetaAllocatorHandle::dump const):
3110         (WTF::MetaAllocator::allocate):
3111         (WTF::MetaAllocator::findAndRemoveFreeSpace):
3112         (WTF::MetaAllocator::addFreeSpaceFromReleasedHandle):
3113         (WTF::MetaAllocator::addFreshFreeSpace):
3114         (WTF::MetaAllocator::debugFreeSpaceSize):
3115         (WTF::MetaAllocator::addFreeSpace):
3116         (WTF::MetaAllocator::allocFreeSpaceNode):
3117         * wtf/MetaAllocator.h:
3118         (WTF::MetaAllocatorTracker::find):
3119         (WTF::MetaAllocator::FreeSpaceNode::FreeSpaceNode):
3120         (WTF::MetaAllocator::FreeSpaceNode::sizeInBytes):
3121         (WTF::MetaAllocator::FreeSpaceNode::key):
3122         * wtf/MetaAllocatorHandle.h:
3123         (WTF::MetaAllocatorHandle::start const):
3124         (WTF::MetaAllocatorHandle::end const):
3125         (WTF::MetaAllocatorHandle::startAsInteger const):
3126         (WTF::MetaAllocatorHandle::endAsInteger const):
3127         (WTF::MetaAllocatorHandle::sizeInBytes const):
3128         (WTF::MetaAllocatorHandle::containsIntegerAddress const):
3129         (WTF::MetaAllocatorHandle::key):
3130         * wtf/MetaAllocatorPtr.h: Added.
3131         (WTF::MetaAllocatorPtr::MetaAllocatorPtr):
3132         (WTF::MetaAllocatorPtr:: const):
3133         (WTF::MetaAllocatorPtr::operator bool const):
3134         (WTF::MetaAllocatorPtr::operator! const):
3135         (WTF::MetaAllocatorPtr::operator== const):
3136         (WTF::MetaAllocatorPtr::operator!= const):
3137         (WTF::MetaAllocatorPtr::operator+ const):
3138         (WTF::MetaAllocatorPtr::operator- const):
3139         (WTF::MetaAllocatorPtr::operator+=):
3140         (WTF::MetaAllocatorPtr::operator-=):
3141         (WTF::MetaAllocatorPtr::isEmptyValue const):
3142         (WTF::MetaAllocatorPtr::isDeletedValue const):
3143         (WTF::MetaAllocatorPtr::hash const):
3144         (WTF::MetaAllocatorPtr::emptyValue):
3145         (WTF::MetaAllocatorPtr::deletedValue):
3146         (WTF::MetaAllocatorPtrHash::hash):
3147         (WTF::MetaAllocatorPtrHash::equal):
3148         * wtf/PtrTag.h:
3149
3150 2018-04-30  JF Bastien  <jfbastien@apple.com>
3151
3152         Use some C++17 features
3153         https://bugs.webkit.org/show_bug.cgi?id=185135
3154
3155         Reviewed by Alex Christensen.
3156
3157         * wtf/StdLibExtras.h: libstdc++ doesn't say it's C++17 when it
3158         defines std::conjunction. Use the feature test macro instead.
3159
3160 2018-04-30  Yusuke Suzuki  <utatane.tea@gmail.com>
3161
3162         Use WordLock instead of std::mutex for Threading
3163         https://bugs.webkit.org/show_bug.cgi?id=185121
3164
3165         Reviewed by Geoffrey Garen.
3166
3167         Before r231151, WordLock depends on ThreadSpecific. It means that our Threading implementation
3168         cannot use this lock since Threading primitives could touch these locks after ThreadSpecific
3169         for that WordLock is destroyed.
3170
3171         Now WordLock is changed not to use ThreadSpecific. So it does not depend on our Threading
3172         mechanism and our Threading can start using WordLock internally.
3173
3174         This patch changes WTF::Thread and WTF::ThreadGroup to use WordLock instead of std::mutex.
3175
3176         And add constexpr to explicitly describe that Lock, Condition, and WordLock constructors are constexpr.
3177
3178         * wtf/Condition.h:
3179         * wtf/Lock.h:
3180         * wtf/ThreadGroup.h:
3181         (WTF::ThreadGroup::getLock):
3182         * wtf/Threading.cpp:
3183         (WTF::Thread::didExit):
3184         (WTF::Thread::addToThreadGroup):
3185         (WTF::Thread::removeFromThreadGroup):
3186         * wtf/Threading.h:
3187         * wtf/ThreadingPthreads.cpp:
3188         (WTF::Thread::changePriority):
3189         (WTF::Thread::waitForCompletion):
3190         (WTF::Thread::detach):
3191         (WTF::Thread::signal):
3192         (WTF::Thread::establishPlatformSpecificHandle):
3193         * wtf/ThreadingWin.cpp:
3194         (WTF::Thread::changePriority):
3195         (WTF::Thread::waitForCompletion):
3196         (WTF::Thread::detach):
3197         (WTF::Thread::establishPlatformSpecificHandle):
3198         (WTF::Thread::initializeTLSKey):
3199         (WTF::Thread::currentDying):
3200         (WTF::Thread::get):
3201         (WTF::Thread::initializeTLS):
3202         (WTF::Thread::destructTLS):
3203         (WTF::threadMapMutex): Deleted.
3204         * wtf/WordLock.h:
3205
3206 2018-04-29  Michael Catanzaro  <mcatanzaro@igalia.com>
3207
3208         [CMake] Require GCC 6
3209         https://bugs.webkit.org/show_bug.cgi?id=184985
3210
3211         Reviewed by Alex Christensen.
3212
3213         Stop enforcing GCC version in Compiler.h. It's better to do this in the build system. And I
3214         don't like having the same check in two different places.
3215
3216         * wtf/Compiler.h:
3217
3218 2018-04-29  Geoffrey Garen  <ggaren@apple.com>
3219
3220         WordLock doesn't need per-thread data
3221         https://bugs.webkit.org/show_bug.cgi?id=185119
3222
3223         Reviewed by Yusuke Suzuki.
3224
3225         The stack is per-thread data, so we can stack-allocate our ThreadData.
3226
3227         This eliminates malloc() and high-level WTF threading primitives from
3228         WordLock, making WordLock more portable to non-WTF code, including
3229         bmalloc.
3230
3231         (NOTE: This patch makes the bug fixed in r231148 100% reproducible.)
3232
3233         * wtf/WordLock.cpp:
3234         (WTF::WordLock::lockSlow): Allocate ThreadData on the stack.
3235
3236 2018-04-28  Geoffrey Garen  <ggaren@apple.com>
3237
3238         Fixed a very unlikely race condition in WTF::WordLock
3239         https://bugs.webkit.org/show_bug.cgi?id=185117
3240
3241         Reviewed by Saam Barati.
3242
3243         The race goes like this:
3244
3245         Thread L is in lockSlowCase() and thread U is in unlockSlowCase();
3246
3247         - U acquires queueHead->parkingLock.
3248         - U sets queueHead->shouldPark = false
3249         - U releases queueHead->parkingLock.
3250         - L spuriously wakes up from queueHead->parkingLock.wait()
3251         - L acquires queueHead->parkingLock.
3252         - L notices that queueHead->shouldPark = false, and acquires the WordLock
3253         - L finishes all its work and exits, freeing queueHead
3254         - U notifies queueHead->parkingLock (after free) and crashes or deadlocks
3255
3256         These conditions are currently so unlikely that I don't know how to test
3257         them. I noticed this race because I changed WordLock's allocation pattern
3258         to allow queueHead to be freed more often, and I crashed / deadlocked 100%.
3259
3260         Shout out to <http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one>
3261         for explaining this.
3262
3263         * benchmarks/ToyLocks.h: Fixed build.
3264
3265         * wtf/WordLock.cpp:
3266         (WTF::WordLock::unlockSlow): Hold the lock a little longer to avoid
3267         this race.
3268
3269 2018-04-27  David Kilzer  <ddkilzer@apple.com>
3270
3271         Add logging when SpringBoard enables WebThread
3272         <https://webkit.org/b/185100>
3273         <rdar://problem/39746542>
3274
3275         Reviewed by Daniel Bates.
3276
3277         * wtf/Assertions.h:
3278         (RELEASE_LOG_FAULT): Add macro to call os_log_fault().
3279         * wtf/Platform.h: Drive-by fix to enable USE(OS_LOG) on
3280         public iOS SDKs since <rdar://problem/27758343> was
3281         fixed in iOS 11.0.
3282
3283 2018-04-26  Mark Lam  <mark.lam@apple.com>
3284
3285         Gardening: Speculative build fix for Windows.
3286         https://bugs.webkit.org/show_bug.cgi?id=184976
3287         <rdar://problem/39723901>
3288
3289         Not reviewed.
3290
3291         * wtf/PtrTag.h:
3292         (WTF::makePtrTagHash): Undo last speculative build fix that did not work for 64-bit.
3293
3294 2018-04-26  Andy VanWagoner  <thetalecrafter@gmail.com>
3295
3296         [INTL] Implement Intl.PluralRules
3297         https://bugs.webkit.org/show_bug.cgi?id=184312
3298
3299         Reviewed by JF Bastien.
3300
3301         Added Intl.PluralRules feature flag.
3302
3303         * wtf/FeatureDefines.h:
3304
3305 2018-04-25  Mark Lam  <mark.lam@apple.com>
3306
3307         Gardening: Speculative build fix for Windows 32-bit to compensate for MSVC's lack of smarts.
3308         https://bugs.webkit.org/show_bug.cgi?id=184976
3309         <rdar://problem/39723901>
3310
3311         Not reviewed.
3312
3313         According to https://stackoverflow.com/questions/37658794/integer-constant-overflow-warning-in-constexpr,
3314         disabling the warning around the definition of the function will not disable it
3315         for all clients of the function.
3316
3317         * wtf/PtrTag.h:
3318         (WTF::makePtrTagHash):
3319
3320 2018-04-25  Mark Lam  <mark.lam@apple.com>
3321
3322         Push the definition of PtrTag down to the WTF layer.
3323         https://bugs.webkit.org/show_bug.cgi?id=184976
3324         <rdar://problem/39723901>
3325
3326         Reviewed by Saam Barati.
3327
3328         This is in preparation for doing pointer profiling at the WTF layer as well.
3329         Also deleted an unused ptrTag() function.
3330
3331         * WTF.xcodeproj/project.pbxproj:
3332         * wtf/CMakeLists.txt:
3333         * wtf/PtrTag.h: Copied from Source/JavaScriptCore/runtime/PtrTag.h.
3334         (WTF::makePtrTagHash):
3335         (JSC::ptrTagName): Deleted.
3336         (JSC::tagForPtr): Deleted.
3337         (JSC::ptrTag): Deleted.
3338         (JSC::tagCodePtr): Deleted.
3339         (JSC::untagCodePtr): Deleted.
3340         (JSC::retagCodePtr): Deleted.
3341         (JSC::removeCodePtrTag): Deleted.
3342         (JSC::tagCFunctionPtr): Deleted.
3343         (JSC::untagCFunctionPtr): Deleted.
3344         (JSC::assertIsCFunctionPtr): Deleted.
3345         (JSC::assertIsNullOrCFunctionPtr): Deleted.
3346         (JSC::assertIsNotTagged): Deleted.
3347         (JSC::assertIsTagged): Deleted.
3348         (JSC::assertIsNullOrTagged): Deleted.
3349         (JSC::assertIsTaggedWith): Deleted.
3350         (JSC::assertIsNullOrTaggedWith): Deleted.
3351
3352 2018-04-25  Dean Jackson  <dino@apple.com>
3353
3354         Make a better flag for system preview, and disable it where necessary
3355         https://bugs.webkit.org/show_bug.cgi?id=184968
3356         <rdar://problem/39686506>
3357
3358         Reviewed by Eric Carlson.
3359
3360         Add a new USE(SYSTEM_PREVIEW).
3361
3362         * wtf/Platform.h:
3363
3364 2018-04-24  Commit Queue  <commit-queue@webkit.org>
3365
3366         Unreviewed, rolling out r230971.
3367         https://bugs.webkit.org/show_bug.cgi?id=184939
3368
3369         This fix was not appropriate (Requested by n_wang on #webkit).
3370
3371         Reverted changeset:
3372
3373         "AX: soft link libAccessibility.dylb"
3374         https://bugs.webkit.org/show_bug.cgi?id=184919
3375         https://trac.webkit.org/changeset/230971
3376
3377 2018-04-24  Nan Wang  <n_wang@apple.com>
3378
3379         AX: soft link libAccessibility.dylb
3380         https://bugs.webkit.org/show_bug.cgi?id=184919
3381
3382         Reviewed by Chris Fleizach.
3383
3384         * wtf/cocoa/SoftLinking.h:
3385
3386 2018-04-23  Zalan Bujtas  <zalan@apple.com>
3387
3388         [LayoutFormattingContext] Initial commit.
3389         https://bugs.webkit.org/show_bug.cgi?id=184896
3390
3391         Reviewed by Antti Koivisto.
3392
3393         * wtf/FeatureDefines.h:
3394
3395 2018-04-23  Per Arne Vollan  <pvollan@apple.com>
3396
3397         Deactivate the WindowServer connection for the WebContent process.
3398         https://bugs.webkit.org/show_bug.cgi?id=184451
3399         <rdar://problem/38313938>
3400
3401         Reviewed by Brent Fulgham.
3402
3403         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
3404         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
3405         process startup. After calling this function, every attempt to establish a connection to the
3406         WindowServer from the WebContent process will fail, except for CA render server connections.
3407
3408         * wtf/FeatureDefines.h:
3409
3410 2018-04-20  JF Bastien  <jfbastien@apple.com>
3411
3412         Handle more JSON stringify OOM
3413         https://bugs.webkit.org/show_bug.cgi?id=184846
3414         <rdar://problem/39390672>
3415
3416         Reviewed by Mark Lam.
3417
3418         JSON stringification can OOM easily. Here's another case.
3419
3420         * wtf/text/StringBuilderJSON.cpp:
3421         (WTF::StringBuilder::appendQuotedJSONString):
3422
3423 2018-04-18  Jer Noble  <jer.noble@apple.com>
3424
3425         Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds
3426         https://bugs.webkit.org/show_bug.cgi?id=184762
3427
3428         Reviewed by Dan Bernstein.
3429
3430         * Configurations/Base.xcconfig:
3431
3432 2018-04-20  Daniel Bates  <dabates@apple.com>
3433
3434         Remove code for compilers that did not support NSDMI for aggregates
3435         https://bugs.webkit.org/show_bug.cgi?id=184599
3436
3437         Reviewed by Per Arne Vollan.
3438
3439         Remove workaround for earlier Visual Studio versions that did not support non-static data
3440         member initializers (NSDMI) for aggregates. We have since updated all the build.webkit.org
3441         and EWS bots to a newer version that supports this feature.
3442
3443         * wtf/Compiler.h:
3444
3445 2018-04-19  David Kilzer  <ddkilzer@apple.com>
3446
3447         Enable Objective-C weak references
3448         <https://webkit.org/b/184789>
3449         <rdar://problem/39571716>
3450
3451         Reviewed by Dan Bernstein.
3452
3453         * Configurations/Base.xcconfig:
3454         (CLANG_ENABLE_OBJC_WEAK): Enable.
3455
3456 2018-04-19  Brady Eidson  <beidson@apple.com>
3457
3458         Add globally-unique HistoryItem identifiers (and have WebKit2 adopt them).
3459         <rdar://problem/39533949> and https://bugs.webkit.org/show_bug.cgi?id=184750
3460
3461         Reviewed by Ryosuke Niwa.
3462
3463         * wtf/DebugUtilities.h:
3464         (WTF::debugString):
3465
3466 2018-04-19  Per Arne Vollan  <pvollan@apple.com>
3467
3468         Unreviewed, rolling out r230677.
3469
3470         Introduced Netflix problems.
3471
3472         Reverted changeset:
3473
3474         "Deactivate the WindowServer connection for the WebContent process."
3475         https://bugs.webkit.org/show_bug.cgi?id=184451
3476         https://trac.webkit.org/changeset/230677
3477
3478 2018-04-19  Nan Wang  <n_wang@apple.com>
3479
3480         AX: AOM: respect the accessibility setting for dispatching the accessible events
3481         https://bugs.webkit.org/show_bug.cgi?id=184619
3482
3483         Reviewed by Ryosuke Niwa.
3484
3485         * wtf/Platform.h:
3486
3487 2018-04-18  Ross Kirsling  <ross.kirsling@sony.com>
3488
3489         [Win] Layout Test js/date-constructor.html is failing
3490         https://bugs.webkit.org/show_bug.cgi?id=140945
3491
3492         Reviewed by Per Arne Vollan.
3493
3494         * wtf/DateMath.cpp:
3495         (WTF::calculateDSTOffset):
3496         Move all shared calculations outside of the #if -- including the "jump forward a day" case that had been overlooked.
3497
3498 2018-04-17  Saam Barati  <sbarati@apple.com>
3499
3500         Add system trace points for process launch and for initializeWebProcess
3501         https://bugs.webkit.org/show_bug.cgi?id=184669
3502
3503         Reviewed by Simon Fraser.
3504
3505         This patch adds TracePointCodes to measure process launch time and