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