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