3bfe0d23da312a807dd324704145efe0f65cc76b
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2
3         Unreviewed, fix build failure on GCC 8.2, part 2
4
5         Add RefCountedArray::assign, and use it instead of operator= internally.
6         We should have operator=(const RefCountedArray&) since it will be automatically generated
7         if we do not have correct implementation here.
8
9         * wtf/RefCountedArray.h:
10         (WTF::RefCountedArray::operator=):
11         (WTF::RefCountedArray::assign):
12
13 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
14
15         Unreviewed, fix build failure on GCC 8.2
16
17         We remove operator=<PtrTraits> call since it is not necessary.
18         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
19
20         * wtf/RefCountedArray.h:
21
22 2018-12-08  Darin Adler  <darin@apple.com>
23
24         Fix stray-semicolon warning seen with a new version of clang in Xcode
25         https://bugs.webkit.org/show_bug.cgi?id=192534
26
27         Reviewed by Alexey Proskuryakov.
28
29         * wtf/Lock.h: Removed an unneeded semicolon.
30
31 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
32
33         [WTF] Debug build fails due conflicting abort() method
34         https://bugs.webkit.org/show_bug.cgi?id=192491
35
36         Reviewed by Michael Catanzaro.
37
38         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
39         inside classes which have an ::abort() method, but only when __cplusplus is defined to
40         allow inclusion of the header in plain C sources.
41
42 2018-12-07  Andy Estes  <aestes@apple.com>
43
44         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
45         https://bugs.webkit.org/show_bug.cgi?id=192498
46
47         Reviewed by Tim Horton.
48
49         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
50         which behave like their non-optional variants but do not require their classes to exist.
51
52         * wtf/cocoa/SoftLinking.h:
53
54 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
55
56         Move USE_NEW_THEME out of WebCore's config.h
57         https://bugs.webkit.org/show_bug.cgi?id=192426
58
59         Reviewed by Tim Horton.
60
61         * wtf/Platform.h:
62
63 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
64
65         [SOUP] Move URLSoup back to WebCore after r238771
66         https://bugs.webkit.org/show_bug.cgi?id=192306
67
68         Reviewed by Michael Catanzaro.
69
70         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
71         libsoup as a new dependency of libjavascriptcoregtk.
72
73         * wtf/PlatformGTK.cmake:
74         * wtf/PlatformWPE.cmake:
75         * wtf/URL.h:
76         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
77
78 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
79
80         Fix some unused parameter warnings
81         https://bugs.webkit.org/show_bug.cgi?id=192336
82
83         Reviewed by Fujii Hironori.
84
85         * wtf/StackTrace.cpp:
86         (WTFGetBacktrace):
87         (WTF::StackTrace::demangle):
88         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
89         (WTF::MemoryPressureHandler::holdOff):
90         (WTF::MemoryPressureHandler::respondToMemoryPressure):
91
92 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
93
94         Modernize version check for _suppressedAutoAddedHTTPHeaders
95         https://bugs.webkit.org/show_bug.cgi?id=192175
96
97         Reviewed by Tim Horton.
98
99         * wtf/Platform.h:
100
101 2018-11-30  Alex Christensen  <achristensen@webkit.org>
102
103         Fix Windows build after r238771
104         https://bugs.webkit.org/show_bug.cgi?id=190234
105
106         * wtf/URLParser.h:
107         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
108
109 2018-11-30  Alex Christensen  <achristensen@webkit.org>
110
111         Move URL from WebCore to WTF
112         https://bugs.webkit.org/show_bug.cgi?id=190234
113
114         Reviewed by Keith Miller.
115
116         * WTF.xcodeproj/project.pbxproj:
117         * wtf/CMakeLists.txt:
118         * wtf/Forward.h:
119         * wtf/PlatformGTK.cmake:
120         * wtf/PlatformMac.cmake:
121         * wtf/PlatformWPE.cmake:
122         * wtf/PlatformWin.cmake:
123         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
124         (WTF::URL::protocolIs):
125         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
126         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
127         (WTF::URLHash::hash):
128         (WTF::URLHash::equal):
129         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
130         (WTF::URLParser::isInUserInfoEncodeSet):
131         (WTF::URLParser::parseAuthority):
132         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
133         (WTF::URLParser::URLParser):
134         (WTF::URLParser::result):
135         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
136         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
137         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
138         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
139         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
140         (WTF::isArmenianLookalikeCharacter):
141         (WTF::isArmenianScriptCharacter):
142         (WTF::isASCIIDigitOrValidHostCharacter):
143         (WTF::isLookalikeCharacter):
144         (WTF::whiteListIDNScript):
145         (WTF::readIDNScriptWhiteListFile):
146         (WTF::allCharactersInIDNScriptWhiteList):
147         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
148         (WTF::isRussianDomainNameCharacter):
149         (WTF::allCharactersAllowedByTLDRules):
150         (WTF::mapHostNameWithRange):
151         (WTF::hostNameNeedsDecodingWithRange):
152         (WTF::hostNameNeedsEncodingWithRange):
153         (WTF::decodeHostNameWithRange):
154         (WTF::encodeHostNameWithRange):
155         (WTF::decodeHostName):
156         (WTF::encodeHostName):
157         (WTF::collectRangesThatNeedMapping):
158         (WTF::collectRangesThatNeedEncoding):
159         (WTF::collectRangesThatNeedDecoding):
160         (WTF::applyHostNameFunctionToMailToURLString):
161         (WTF::applyHostNameFunctionToURLString):
162         (WTF::mapHostNames):
163         (WTF::stringByTrimmingWhitespace):
164         (WTF::URLByTruncatingOneCharacterBeforeComponent):
165         (WTF::URLByRemovingResourceSpecifier):
166         (WTF::URLWithData):
167         (WTF::dataWithUserTypedString):
168         (WTF::URLWithUserTypedString):
169         (WTF::URLWithUserTypedStringDeprecated):
170         (WTF::hasQuestionMarkOnlyQueryString):
171         (WTF::dataForURLComponentType):
172         (WTF::URLByRemovingComponentAndSubsequentCharacter):
173         (WTF::URLByRemovingUserInfo):
174         (WTF::originalURLData):
175         (WTF::createStringWithEscapedUnsafeCharacters):
176         (WTF::userVisibleString):
177         (WTF::isUserVisibleURL):
178         (WTF::rangeOfURLScheme):
179         (WTF::looksLikeAbsoluteURL):
180         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
181         (WTF::URL::URL):
182         (WTF::URL::createCFURL const):
183         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
184         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
185
186 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
187
188         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
189         https://bugs.webkit.org/show_bug.cgi?id=192173
190
191         Reviewed by Tim Horton.
192
193         * wtf/Platform.h: Also renamed it to better match other version checks.
194
195 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
196
197         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
198         https://bugs.webkit.org/show_bug.cgi?id=192041
199
200         Reviewed by Tim Horton.
201
202         * wtf/Platform.h:
203
204 2018-11-28  Mark Lam  <mark.lam@apple.com>
205
206         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
207         https://bugs.webkit.org/show_bug.cgi?id=192110
208         <rdar://problem/46317746>
209
210         Reviewed by Saam Barati.
211
212         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
213         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
214         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
215         (and other projects) as well as JSC.  Hence, there's no reason why
216         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
217
218         * wtf/Platform.h:
219
220 2018-11-28  Keith Rollin  <krollin@apple.com>
221
222         Update generate-unified-source-bundles.rb to generate .xcfilelist files
223         https://bugs.webkit.org/show_bug.cgi?id=192029
224         <rdar://problem/46285918>
225
226         Reviewed by Alex Christensen.
227
228         Update generate-unified-source-bundles.rb to generate output for
229         .xcfilelist files. These files are used to indicate the sets of input
230         and output files to Run Script build phases in Xcode. By invoking
231         generate-unified-source-bundles.rb with -generate-xcfilelists, the
232         script generates these .xcfilelist files. These .xcfilelist files can
233         then be used to specify the inputs and outputs of the Generate Unified
234         Sources build phases.
235
236         * Scripts/generate-unified-source-bundles.rb:
237
238 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
239
240         Remove another OS version check from NetworkDataTaskCocoa.mm
241         https://bugs.webkit.org/show_bug.cgi?id=192046
242
243         Reviewed by Alex Christensen.
244
245         * wtf/Platform.h:
246
247 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
248
249         Modernize version checks for same site cookie support
250         https://bugs.webkit.org/show_bug.cgi?id=192054
251
252         Reviewed by Tim Horton.
253
254         * wtf/Platform.h:
255
256 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
257
258         Modernize the check for async _saveCookies existence
259         https://bugs.webkit.org/show_bug.cgi?id=191987
260
261         Reviewed by Dean Jackson.
262
263         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
264         although it seems very likely that we want to do the same on other iOS family OSes.
265
266 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
267
268         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
269         https://bugs.webkit.org/show_bug.cgi?id=191960
270
271         Reviewed by Alex Christensen.
272
273         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
274         pointer argument of EncodePointer. Changed the type of stored
275         function pointer returned by EncodePointer.
276
277 2018-11-26  Sam Weinig  <sam@webkit.org>
278
279         Streamline ListHashSet use in floating object code
280         https://bugs.webkit.org/show_bug.cgi?id=191957
281
282         Reviewed by Alex Christensen.
283
284         * wtf/ListHashSet.h:
285         Reverses the order of the template arguments for the find() and contains()
286         overload that allow specifying a hash translator to allow the compiler to
287         deduce type T. This simplifies call sites and matches other WTF containers.
288
289 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
290
291         CRASH() should call abort() except on Darwin and in developer builds
292         https://bugs.webkit.org/show_bug.cgi?id=184408
293
294         Reviewed by Daniel Bates.
295
296         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
297         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
298
299         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
300         can't do that.
301
302         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
303         is reportedly useful in nightmare scenarios where core dumps are unavailable.
304
305         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
306         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
307         is also non-constexpr.
308
309         * wtf/Assertions.h:
310
311 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
312
313         Unreviewed, rolling out r238469.
314
315         Broke the build
316
317         Reverted changeset:
318
319         "CRASH() should call abort() except on Darwin and in developer
320         builds"
321         https://bugs.webkit.org/show_bug.cgi?id=184408
322         https://trac.webkit.org/changeset/238469
323
324 2018-11-24  Andy Estes  <aestes@apple.com>
325
326         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
327         https://bugs.webkit.org/show_bug.cgi?id=191899
328
329         Reviewed by Dean Jackson.
330
331         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
332         framework name. For example, NSView would have a class getter named
333         namespace::get_AppKit_NSViewClass().
334
335         Including the framework name in the getter is unnecessary. Objective-C classes already exist
336         in a global namespace, so there is no need to disambiguate class names by framework. This
337         patch elides the framework name from the getter function. For example, NSView would now have
338         a getter named namespace::getNSViewClass().
339
340         * wtf/cocoa/SoftLinking.h:
341
342 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
343
344         CRASH() should call abort() except on Darwin and in developer builds
345         https://bugs.webkit.org/show_bug.cgi?id=184408
346
347         Reviewed by Daniel Bates.
348
349         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
350         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
351
352         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
353         can't do that.
354
355         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
356         is reportedly useful in nightmare scenarios where core dumps are unavailable.
357
358         * wtf/Assertions.h:
359
360 2018-11-23  Sam Weinig  <sam@webkit.org>
361
362         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
363         https://bugs.webkit.org/show_bug.cgi?id=191936
364
365         Reviewed by Zalan Bujtas.
366
367         Adds overloads for find, contains, insertBefore and remove that take raw pointers
368         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
369         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
370         which already have this functionality. Like in the other collections, this is especially
371         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
372         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
373         which is unique to ListHashSet. As would be expected, this specialization only changes the first
374         parameter, the one that needs to be found, to support a raw pointer.  
375
376         * wtf/ListHashSet.h:
377         (WTF::U>::find):
378         (WTF::U>::find const):
379         (WTF::U>::contains const):
380         (WTF::U>::insertBefore):
381         (WTF::U>::remove):
382
383 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
384
385         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
386         https://bugs.webkit.org/show_bug.cgi?id=191675
387
388         Reviewed by Mark Lam.
389
390         * wtf/InlineASM.h:
391         * wtf/Platform.h:
392
393 2018-11-21  Andy Estes  <aestes@apple.com>
394
395         [Cocoa] Create a soft-linking file for PassKit
396         https://bugs.webkit.org/show_bug.cgi?id=191875
397         <rdar://problem/46203215>
398
399         Reviewed by Myles Maxfield.
400
401         * wtf/Platform.h: Defined USE_PASSKIT.
402         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
403         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
404         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
405
406 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
407
408         Enable JIT on ARM/Linux
409         https://bugs.webkit.org/show_bug.cgi?id=191548
410
411         Reviewed by Yusuke Suzuki.
412
413         Enable JIT by default on ARMv7/Linux after it was disabled with
414         recent bytcode format change.
415
416         * wtf/Platform.h:
417
418 2018-11-14  Keith Rollin  <krollin@apple.com>
419
420         Fix #end vs. #endif typo.
421         https://bugs.webkit.org/show_bug.cgi?id=191668
422         <rdar://problem/46081704>
423
424         Reviewed by Alexey Proskuryakov.
425
426         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
427         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
428         to detect similar typos.
429
430         * Scripts/generate-unified-source-bundles.rb:
431
432 2018-11-12  Mark Lam  <mark.lam@apple.com>
433
434         Add OOM detection to StringPrototype's substituteBackreferences().
435         https://bugs.webkit.org/show_bug.cgi?id=191563
436         <rdar://problem/45720428>
437
438         Reviewed by Saam Barati.
439
440         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
441         the hasOverflowed() check if m_string is not null.  When m_string is not null,
442         the StringBuilder either only has a single String in m_string (with m_buffer being 
443         null), or reifyString() has already been called (resulting in a non-null m_string
444         with a possibly non-null m_buffer).
445
446         We can skip the overflow check because:
447         1. if the StringBuilder only has a single String, then there cannot be an overflow.
448         2. if reifyString() has already been called, then the hasOverflowed() checked has
449            already been done because every code path that calls reifyString() first does
450            the hasOverflowed() check.
451
452         We can skip shrinkToFit() because it only applies to m_buffer.
453         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
454         2. if reifyString() has already been called, then we either came down
455            a. the toString() path with a null m_string previously, where we would have
456               already called shrinkToFit() before reifyString(), or
457            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
458
459         We can skip reifyString() because:
460         1. if the StringBuilder only has a single String, then the string is already reified.
461         2. if reifyString() has been already called, then the string is already reified.
462
463         Note that if m_string is the null string and m_buffer is null, reifyString() will
464         replace it with the empty string.  For this reason, we cannot solely check for
465         !m_buffer because we need to reify the null string into the empty string.
466
467         Note also that if m_string is null and m_buffer is non-null, reifyString() will
468         create a String and set m_string to it.  However, m_buffer remains non-null.
469         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
470         We add a m_isReified flag (only when assertions are enabled) to track the reified
471         case where both m_buffer and m_string are non-null.
472
473         * wtf/text/StringBuilder.cpp:
474         (WTF::StringBuilder::reifyString const):
475         * wtf/text/StringBuilder.h:
476         (WTF::StringBuilder::toString):
477
478 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
479
480         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
481         https://bugs.webkit.org/show_bug.cgi?id=191492
482
483         Reviewed by Alex Christensen.
484
485         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
486         the cases, some systems have issues with applying this patch.
487
488         To work around the problem, the change is made is two patches, first rename to
489         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
490
491         * WTF.xcodeproj/project.pbxproj:
492         * wtf/CMakeLists.txt:
493         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
494         (wtfObjCMsgSend):
495
496 2018-11-09  Keith Miller  <keith_miller@apple.com>
497
498         LLInt VectorSizeOffset should be based on offset extraction
499         https://bugs.webkit.org/show_bug.cgi?id=191468
500
501         Reviewed by Yusuke Suzuki.
502
503         Make things friends with LLIntOffsetsExtractor.
504
505         * wtf/RefCountedArray.h:
506         * wtf/Vector.h:
507
508 2018-11-09  Jim Mason  <jmason@ibinx.com>
509
510         [WTF] Changes in bug 188867 break non-Linux Unix builds
511         https://bugs.webkit.org/show_bug.cgi?id=191380
512
513         The intention of 188867 was to split out platform-specific
514         heap query/release code.  Any unsupported platform
515         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
516         ended up sending all non-Linux platforms through the Linux
517         implementation, which breaks the build for those platforms.
518         This includes any user of the GTK target which is not Linux,
519         such as the *BSDs, Solaris, etc.
520
521         Reviewed by Yusuke Suzuki.
522
523         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
524         code only for Linux; all other platforms use the generic stub.
525
526 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
527
528         Removed mbmalloc target from WTF
529         https://bugs.webkit.org/show_bug.cgi?id=191313
530
531         Reviewed by Saam Barati.
532
533         For benchmarking, WTF::fastMalloc is no longer meaningfully different
534         from bmalloc. (And bmalloc has its own mbmalloc target.)
535
536         * Configurations/mbmalloc.xcconfig: Removed.
537         * WTF.xcodeproj/project.pbxproj:
538         * wtf/mbmalloc.cpp: Removed.
539
540 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
541
542         Re-add PLATFORM(IOS), now with the strict meaning
543         https://bugs.webkit.org/show_bug.cgi?id=191281
544
545         Reviewed by Tim Horton.
546
547         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
548         when expanded, it might be that the values are incorrect for some flavors of iOS family.
549
550 2018-11-08  Dean Jackson  <dino@apple.com>
551
552         Add a String literal that returns a String
553         https://bugs.webkit.org/show_bug.cgi?id=191425
554         <rdar://problem/45914556>
555
556         Reviewed by Sam Weinig.
557
558         Add a new String literal, _str, that will return a String type.
559         This is useful when ""_s won't work, such as for things that
560         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
561         or Variants.
562
563         * wtf/text/WTFString.h:
564         (WTF::StringLiterals::operator _str): Added.
565
566 2018-11-06  Justin Fan  <justin_fan@apple.com>
567
568         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
569         https://bugs.webkit.org/show_bug.cgi?id=191291
570
571         Reviewed by Myles Maxfield.
572
573         Properly disable WEBGPU on all non-Metal platforms for now.
574
575         * wtf/Platform.h:
576
577 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
578
579         Cache glyph paths and share underline skipping code between all the ports
580         https://bugs.webkit.org/show_bug.cgi?id=191239
581
582         Reviewed by Alex Christensen.
583
584         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
585
586         * wtf/Platform.h:
587
588 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
589
590         Enable LLInt on ARMv7/Linux
591         https://bugs.webkit.org/show_bug.cgi?id=191190
592
593         Reviewed by Yusuke Suzuki.
594
595         After enabling the new bytecode format in r237547, C_LOOP was
596         forced on all 32-bit platforms. Now enable LLInt again on
597         ARMv7-Thumb2/Linux by default.
598
599         * wtf/Platform.h:
600
601 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
602
603         [Win] Use C++14, not C++17
604         https://bugs.webkit.org/show_bug.cgi?id=191101
605
606         Reviewed by Alex Christensen.
607
608         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
609         instead of _MSC_FULL_VER.
610
611 2018-11-02  Justin Fan  <justin_fan@apple.com>
612
613         [WebGPU] Experimental prototype for MSL shaders
614         https://bugs.webkit.org/show_bug.cgi?id=191084
615
616         Reviewed by Dean Jackson.
617
618         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
619
620         * wtf/Platform.h:
621
622 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
623
624         Replace CommonRandom SPI with API
625         https://bugs.webkit.org/show_bug.cgi?id=191178
626         <rdar://problem/45722391>
627
628         Reviewed by Brent Fulgham.
629
630         * WTF.xcodeproj/project.pbxproj:
631         * wtf/CMakeLists.txt:
632         * wtf/RandomDevice.cpp:
633         (WTF::RandomDevice::cryptographicallyRandomValues):
634         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
635
636 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
637
638         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
639         https://bugs.webkit.org/show_bug.cgi?id=189693
640
641         Reviewed by Yusuke Suzuki.
642
643         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
644         * wtf/CMakeLists.txt: Ditto.
645         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
646         * wtf/text/StringImpl.cpp: Ditto.
647         * wtf/text/StringView.cpp: Ditto.
648         * wtf/text/WTFString.cpp: Ditto.
649         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
650         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
651
652 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
653
654         [PlayStation] Enable JavaScriptCore
655         https://bugs.webkit.org/show_bug.cgi?id=191072
656
657         Reviewed by Brent Fulgham.
658
659         Add platform files for the PlayStation port.
660
661         * wtf/PlatformPlayStation.cmake: Added.
662
663 2018-10-30  David Kilzer  <ddkilzer@apple.com>
664
665         XSLTProcessor should limit max transform depth
666         <https://webkit.org/b/191075>
667         <rdar://problem/45531453>
668
669         Reviewed by Alex Christensen.
670
671         * wtf/cocoa/SoftLinking.h:
672         (SOFT_LINK_VARIABLE_FOR_HEADER):
673         (SOFT_LINK_VARIABLE_FOR_SOURCE):
674         - Add macros for non-constant global variables.
675
676 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
677
678         Clean up some obsolete MAX_ALLOWED macros
679         https://bugs.webkit.org/show_bug.cgi?id=190916
680
681         Reviewed by Tim Horton.
682
683         * WTF.xcodeproj/project.pbxproj:
684         * wtf/PlatformMac.cmake:
685         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
686
687 2018-10-29  Mark Lam  <mark.lam@apple.com>
688
689         Correctly detect string overflow when using the 'Function' constructor.
690         https://bugs.webkit.org/show_bug.cgi?id=184883
691         <rdar://problem/36320331>
692
693         Reviewed by Saam Barati.
694
695         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
696            a. StringBuilder::OverflowHandler::CrashOnOverflow.
697            b. StringBuilder::OverflowHandler::RecordOverflow.
698
699            CrashOnOverflow will crash the moment an overflow or failure to allocate
700            memory is detected.
701
702            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
703            overflow or failure to allocate memory is detected.  However, if the user
704            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
705            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
706            will crash regardless because these methods can only meaningfully do their
707            work and return a result if and only if the builder has not overflowed.
708
709            By default, the StringBuilder crashes on overflow (the old behavior) unless it
710            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
711            enum.
712
713            Design note:
714
715            The StringBuilder can only be put in 1 of the 2 modes at the time of
716            construction.  This means that we could have implemented it as a template
717            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
718            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
719
720            However, I was not able to get clang to export the explicitly instantiated
721            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
722            Since the StringBuilder is a transient object (not stored for a long time on
723            the heap), and the runtime check of the boolean is not that costly compared
724            to other work that StringBuilder routinely does (e.g. memcpy), using the
725            new ConditionalCrashOnOverflow (which does a runtime check to determine to
726            crash or not on overflow) is fine.
727
728            When clang is able to export explicitly instantiated template methods, we can
729            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
730            See https://bugs.webkit.org/show_bug.cgi?id=191050.
731
732         To support the above, we also did:
733
734         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
735            fail without crashing.  This also meant that ...
736
737         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
738            FastMalloc, and bmalloc (and related peers) to enable this.
739
740         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
741            like CrashOnOverflow or RecordOverflow.
742
743         * wtf/CheckedArithmetic.h:
744         (WTF::ConditionalCrashOnOverflow::overflowed):
745         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
746         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
747         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
748         (WTF::ConditionalCrashOnOverflow::clearOverflow):
749         (WTF::ConditionalCrashOnOverflow::crash):
750         (WTF::RecordOverflow::overflowed):
751         (WTF::Checked::unsafeGet const):
752         * wtf/FastMalloc.cpp:
753         (WTF::tryFastRealloc):
754         * wtf/FastMalloc.h:
755         * wtf/text/StringBuilder.cpp:
756         (WTF::expandedCapacity):
757         (WTF::StringBuilder::reifyString const):
758         (WTF::StringBuilder::resize):
759         (WTF::StringBuilder::allocateBuffer):
760         (WTF::StringBuilder::allocateBufferUpConvert):
761         (WTF::StringBuilder::reallocateBuffer<LChar>):
762         (WTF::StringBuilder::reallocateBuffer<UChar>):
763         (WTF::StringBuilder::reserveCapacity):
764         (WTF::StringBuilder::appendUninitialized):
765         (WTF::StringBuilder::appendUninitializedSlow):
766         (WTF::StringBuilder::append):
767         (WTF::StringBuilder::canShrink const):
768         (WTF::StringBuilder::shrinkToFit):
769         * wtf/text/StringBuilder.h:
770         (WTF::StringBuilder::StringBuilder):
771         (WTF::StringBuilder::didOverflow):
772         (WTF::StringBuilder::hasOverflowed const):
773         (WTF::StringBuilder::crashesOnOverflow const):
774         (WTF::StringBuilder::append):
775         (WTF::StringBuilder::toString):
776         (WTF::StringBuilder::toStringPreserveCapacity const):
777         (WTF::StringBuilder::toAtomicString const):
778         (WTF::StringBuilder::length const):
779         (WTF::StringBuilder::capacity const):
780         (WTF::StringBuilder::operator[] const):
781         (WTF::StringBuilder::swap):
782         (WTF::StringBuilder::getBufferCharacters<UChar>):
783         * wtf/text/StringBuilderJSON.cpp:
784         (WTF::StringBuilder::appendQuotedJSONString):
785         * wtf/text/StringImpl.cpp:
786         (WTF::StringImpl::reallocateInternal):
787         (WTF::StringImpl::reallocate):
788         (WTF::StringImpl::tryReallocate):
789         * wtf/text/StringImpl.h:
790
791 2018-10-29  Tim Horton  <timothy_horton@apple.com>
792
793         Modernize WebKit nibs and lprojs for localization's sake
794         https://bugs.webkit.org/show_bug.cgi?id=190911
795         <rdar://problem/45349466>
796
797         Reviewed by Dan Bernstein.
798
799         * WTF.xcodeproj/project.pbxproj:
800         English->en
801
802 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
803
804         New bytecode format for JSC
805         https://bugs.webkit.org/show_bug.cgi?id=187373
806         <rdar://problem/44186758>
807
808         Reviewed by Filip Pizlo.
809
810         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
811         a macro was passed multiple arguments
812         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
813         * wtf/Vector.h:
814         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
815
816 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
817
818         HashMap should support selecting a random entry
819         https://bugs.webkit.org/show_bug.cgi?id=190814
820
821         Reviewed by Ryosuke Niwa.
822
823         * wtf/HashTable.h:
824         (WTF::HashTable::random):
825         (WTF::HashTable::random const): Merge the empty and deleted checks, and
826         use more idiomatic addressing.
827
828 2018-10-26  Commit Queue  <commit-queue@webkit.org>
829
830         Unreviewed, rolling out r237479 and r237484.
831         https://bugs.webkit.org/show_bug.cgi?id=190978
832
833         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
834
835         Reverted changesets:
836
837         "New bytecode format for JSC"
838         https://bugs.webkit.org/show_bug.cgi?id=187373
839         https://trac.webkit.org/changeset/237479
840
841         "Gardening: Build fix after r237479."
842         https://bugs.webkit.org/show_bug.cgi?id=187373
843         https://trac.webkit.org/changeset/237484
844
845 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
846
847         New bytecode format for JSC
848         https://bugs.webkit.org/show_bug.cgi?id=187373
849         <rdar://problem/44186758>
850
851         Reviewed by Filip Pizlo.
852
853         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
854         a macro was passed multiple arguments
855         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
856         * wtf/Vector.h:
857         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
858
859 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
860
861         HashMap should support selecting a random entry
862         https://bugs.webkit.org/show_bug.cgi?id=190814
863
864         Reviewed by Antti Koivisto.
865
866         * wtf/HashTable.h:
867         (WTF::HashTable::random):
868         (WTF::HashTable::random const): Draw a new random bucket any time we
869         have a miss, to avoid bias caused by lopsided tables.
870
871 2018-10-26  Antti Koivisto  <antti@apple.com>
872
873         hashSet.remove(hashSet.random()) doesn't build
874         https://bugs.webkit.org/show_bug.cgi?id=190953
875
876         Reviewed by Chris Dumez.
877
878         * wtf/HashSet.h:
879
880         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
881
882         * wtf/HashTable.h:
883         (WTF::HashTable::random const):
884
885         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
886
887 2018-10-26  Alicia Boya García  <aboya@igalia.com>
888
889         [MSE][WTF][Media] Invalid MediaTime should be falsy
890         https://bugs.webkit.org/show_bug.cgi?id=190893
891
892         Reviewed by Jer Noble.
893
894         This patch modifies the definition of MediaTime so that invalid times
895         are evaluated to false in the context of a boolean expression.
896
897         * wtf/MediaTime.cpp:
898         (WTF::MediaTime::operator! const):
899         (WTF::MediaTime::operator bool const):
900
901 2018-10-26  Keith Miller  <keith_miller@apple.com>
902
903         Some internal projects include wtf headers and build with C++11
904         https://bugs.webkit.org/show_bug.cgi?id=190791
905
906         Reviewed by Alexey Proskuryakov.
907
908         C++11 doesn't support constexpr functions that contain
909         statements. This patch removes getLSBSet set from builds before
910         C++14 to avoid this for now.
911
912         * wtf/MathExtras.h:
913         (getLSBSet):
914
915 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
916
917         Cleanup: inline constexpr is redundant as constexpr implies inline
918         https://bugs.webkit.org/show_bug.cgi?id=190819
919
920         Reviewed by Mark Lam.
921
922         * wtf/Bitmap.h:
923         (WTF::WordType>::Bitmap):
924         * wtf/LEBDecoder.h:
925         (WTF::LEBDecoder::maxByteLength):
926         * wtf/MathExtras.h:
927         (defaultMinimumForClamp):
928         (defaultMaximumForClamp):
929         (clampToAccepting64):
930         (isLessThan):
931         (isLessThanEqual):
932         (isGreaterThan):
933         (isGreaterThanEqual):
934         (WTF::roundUpToPowerOfTwo):
935         (WTF::maskForSize):
936         * wtf/Optional.h:
937         * wtf/PtrTag.h:
938         (WTF::tagCodePtr):
939         (WTF::untagCodePtr):
940         (WTF::retagCodePtr):
941         (WTF::removeCodePtrTag):
942         * wtf/StdLibExtras.h:
943         (WTF::roundUpToMultipleOf):
944         * wtf/Variant.h:
945         (WTF::operator==):
946         (WTF::operator!=):
947         (WTF::operator>=):
948         (WTF::operator<=):
949         (WTF::operator>):
950         (WTF::operator<):
951         * wtf/text/StringImpl.h:
952         (WTF::StringImplShape::StringImplShape):
953         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
954
955 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
956
957         HashMap should support selecting a random entry
958         https://bugs.webkit.org/show_bug.cgi?id=190814
959
960         Reviewed by Antti Koivisto.
961
962         In some cases, remove(begin()) is not quite good enough as a random
963         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
964         So, let's support real random eviction.
965
966         (And by "real" I mean "pseudo".)
967
968         * wtf/HashCountedSet.h:
969         * wtf/HashMap.h:
970         * wtf/HashSet.h:
971         * wtf/ListHashSet.h:
972         (WTF::ListHashSet::random):
973         (WTF::ListHashSet::random const):
974         * wtf/LoggingHashMap.h:
975         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
976
977         * wtf/HashTable.h:
978         (WTF::HashTable::random):
979         (WTF::HashTable::random const): Implement the random() iterator.
980         makeIterator() already supports starting from any bucket, so this is
981         pretty easy.
982
983         In the subtle case where we select end(), we choose to wrap around and
984         return begin(). We expect that clients don't really think of the end()
985         bucket as being in the domain of the random search. Also, we don't want
986         to annoy clients who know their tables are non-empty with needless
987         checks for end().
988
989         * wtf/RandomNumber.cpp:
990         (WTF::weakRandomUint32):
991         * wtf/RandomNumber.h: Added a free function for weak random numbers so
992         that clients that want cheap random numbers aren't required to allocate
993         storage for a WeakRandom generator.
994
995 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
996
997         Turn on Conic Gradients
998         https://bugs.webkit.org/show_bug.cgi?id=190810
999
1000         Reviewed by Tim Horton.
1001
1002         * wtf/FeatureDefines.h:
1003
1004 2018-10-24  Christopher Reid  <chris.reid@sony.com>
1005
1006         [Win] Add function call name information to stack traces
1007         https://bugs.webkit.org/show_bug.cgi?id=190761
1008
1009         Reviewed by Fujii Hironori.
1010
1011         Add symbol information to stack traces using dbghelp.dll
1012         This library will use symbols files from these sources:
1013             - The current working directory
1014             - The directory containing the application's executable
1015             - _NT_SYMBOL_PATH environment variable
1016             - _NT_ALTERNATE_SYMBOL_PATH environment variable
1017
1018         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
1019         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
1020         can still attempt to call the library at the same time as WebKit.
1021
1022         * wtf/CMakeLists.txt:
1023         * wtf/PlatformWin.cmake:
1024         * wtf/StackTrace.cpp:
1025         * wtf/win/DbgHelperWin.cpp: Added.
1026         * wtf/win/DbgHelperWin.h: Added.
1027
1028 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
1029
1030         Really prevent PLATFORM(IOS) from being used
1031         https://bugs.webkit.org/show_bug.cgi?id=190813
1032
1033         Reviewed by Tim Horton.
1034
1035         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
1036
1037 2018-10-22  Chris Dumez  <cdumez@apple.com>
1038
1039         Deque's contains() and findIf() should be const
1040         https://bugs.webkit.org/show_bug.cgi?id=190796
1041
1042         Reviewed by Antti Koivisto.
1043
1044         Deque's contains() and findIf() should be const as they do not modify the container.
1045
1046         * wtf/Deque.h:
1047         (WTF::inlineCapacity>::findIf):
1048         (WTF::inlineCapacity>::findIf const):
1049         (WTF::inlineCapacity>::contains const):
1050         (WTF::inlineCapacity>::contains): Deleted.
1051
1052 2018-10-18  Alicia Boya García  <aboya@igalia.com>
1053
1054         [Media] Use nanoseconds as MaximumTimeScale
1055         https://bugs.webkit.org/show_bug.cgi?id=190631
1056
1057         1e9 is a much more useful timescale than the previous one 2^31-1.
1058         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1059         common among some formats like WebM and frameworks like GStreamer
1060         where base 10 timescale is common... and it's those big timescales the
1061         ones that are usually scaled up to MaximumTimeScale.
1062
1063         Reviewed by Jer Noble.
1064
1065         * wtf/MediaTime.cpp:
1066
1067 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1068
1069         Remove PLATFORM(IOS) for now
1070         https://bugs.webkit.org/show_bug.cgi?id=190737
1071
1072         Reviewed by Tim Horton.
1073
1074         * wtf/Platform.h:
1075
1076 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1077
1078         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
1079         https://bugs.webkit.org/show_bug.cgi?id=190729
1080
1081         Reviewed by Tim Horton.
1082
1083         * wtf/Assertions.h:
1084         * wtf/FeatureDefines.h:
1085         * wtf/InlineASM.h:
1086         * wtf/MemoryPressureHandler.cpp:
1087         (WTF::thresholdForPolicy):
1088         * wtf/Platform.h:
1089         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1090         (WTF::MemoryPressureHandler::install):
1091         (WTF::MemoryPressureHandler::respondToMemoryPressure):
1092         * wtf/spi/cocoa/NSMapTableSPI.h:
1093         * wtf/spi/darwin/XPCSPI.h:
1094         * wtf/text/StringCommon.h:
1095         * wtf/text/TextBreakIterator.cpp:
1096         * wtf/text/TextBreakIterator.h:
1097         * wtf/unicode/icu/CollatorICU.cpp:
1098         (WTF::copyDefaultLocale):
1099
1100 2018-10-18  Alex Christensen  <achristensen@webkit.org>
1101
1102         Clean up FrameLoader two-state enums
1103         https://bugs.webkit.org/show_bug.cgi?id=190731
1104
1105         Reviewed by Chris Dumez.
1106
1107         * wtf/EnumTraits.h:
1108         (WTF::isValidEnum):
1109
1110 2018-10-17  Commit Queue  <commit-queue@webkit.org>
1111
1112         Unreviewed, rolling out r237208.
1113         https://bugs.webkit.org/show_bug.cgi?id=190691
1114
1115         Caused the API test that was changed to failure continuously
1116         (Requested by Truitt on #webkit).
1117
1118         Reverted changeset:
1119
1120         "[Media] Use nanoseconds as MaximumTimeScale"
1121         https://bugs.webkit.org/show_bug.cgi?id=190631
1122         https://trac.webkit.org/changeset/237208
1123
1124 2018-10-16  Alicia Boya García  <aboya@igalia.com>
1125
1126         [Media] Use nanoseconds as MaximumTimeScale
1127         https://bugs.webkit.org/show_bug.cgi?id=190631
1128
1129         1e9 is a much more useful timescale than the previous one 2^31-1.
1130         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1131         common among some formats like WebM and frameworks like GStreamer
1132         where base 10 timescale is common... and it's those big timescales the
1133         ones that are usually scaled up to MaximumTimeScale.
1134
1135         Reviewed by Jer Noble.
1136
1137         * wtf/MediaTime.cpp:
1138
1139 2018-10-15  Keith Miller  <keith_miller@apple.com>
1140
1141         Support arm64 CPUs with a 32-bit address space
1142         https://bugs.webkit.org/show_bug.cgi?id=190273
1143
1144         Reviewed by Michael Saboff.
1145
1146         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
1147
1148         * wtf/MathExtras.h:
1149         (getLSBSet):
1150         * wtf/Platform.h:
1151
1152 2018-10-15  Timothy Hatcher  <timothy@apple.com>
1153
1154         Add support for prefers-color-scheme media query
1155         https://bugs.webkit.org/show_bug.cgi?id=190499
1156         rdar://problem/45212025
1157
1158         Reviewed by Dean Jackson.
1159
1160         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
1161
1162 2018-10-15  Saam barati  <sbarati@apple.com>
1163
1164         Emit fjcvtzs on ARM64E on Darwin
1165         https://bugs.webkit.org/show_bug.cgi?id=184023
1166
1167         Reviewed by Yusuke Suzuki and Filip Pizlo.
1168
1169         * wtf/Platform.h:
1170
1171 2018-10-15  Alex Christensen  <achristensen@webkit.org>
1172
1173         Use pragma once in WTF
1174         https://bugs.webkit.org/show_bug.cgi?id=190527
1175
1176         Reviewed by Chris Dumez.
1177
1178         We also need to consistently include wtf headers from within wtf so we can build wtf without
1179         symbol redefinition errors from including the copy in Source and the copy in the build directory.
1180
1181         * wtf/ASCIICType.h:
1182         * wtf/Assertions.cpp:
1183         * wtf/Assertions.h:
1184         * wtf/Atomics.h:
1185         * wtf/AutomaticThread.cpp:
1186         * wtf/AutomaticThread.h:
1187         * wtf/BackwardsGraph.h:
1188         * wtf/Bag.h:
1189         * wtf/BagToHashMap.h:
1190         * wtf/BitVector.cpp:
1191         * wtf/BitVector.h:
1192         * wtf/Bitmap.h:
1193         * wtf/BloomFilter.h:
1194         * wtf/Box.h:
1195         * wtf/BubbleSort.h:
1196         * wtf/BumpPointerAllocator.h:
1197         * wtf/ByteOrder.h:
1198         * wtf/CPUTime.cpp:
1199         * wtf/CallbackAggregator.h:
1200         * wtf/CheckedArithmetic.h:
1201         * wtf/CheckedBoolean.h:
1202         * wtf/ClockType.cpp:
1203         * wtf/ClockType.h:
1204         * wtf/CommaPrinter.h:
1205         * wtf/CompilationThread.cpp:
1206         * wtf/CompilationThread.h:
1207         * wtf/Compiler.h:
1208         * wtf/ConcurrentPtrHashSet.cpp:
1209         * wtf/ConcurrentVector.h:
1210         * wtf/Condition.h:
1211         * wtf/CountingLock.cpp:
1212         * wtf/CrossThreadTaskHandler.cpp:
1213         * wtf/CryptographicUtilities.cpp:
1214         * wtf/CryptographicUtilities.h:
1215         * wtf/CryptographicallyRandomNumber.cpp:
1216         * wtf/CryptographicallyRandomNumber.h:
1217         * wtf/CurrentTime.cpp:
1218         * wtf/DataLog.cpp:
1219         * wtf/DataLog.h:
1220         * wtf/DateMath.cpp:
1221         * wtf/DateMath.h:
1222         * wtf/DecimalNumber.cpp:
1223         * wtf/DecimalNumber.h:
1224         * wtf/Deque.h:
1225         * wtf/DisallowCType.h:
1226         * wtf/Dominators.h:
1227         * wtf/DoublyLinkedList.h:
1228         * wtf/FastBitVector.cpp:
1229         * wtf/FastMalloc.cpp:
1230         * wtf/FastMalloc.h:
1231         * wtf/FeatureDefines.h:
1232         * wtf/FilePrintStream.cpp:
1233         * wtf/FilePrintStream.h:
1234         * wtf/FlipBytes.h:
1235         * wtf/FunctionDispatcher.cpp:
1236         * wtf/FunctionDispatcher.h:
1237         * wtf/GetPtr.h:
1238         * wtf/Gigacage.cpp:
1239         * wtf/GlobalVersion.cpp:
1240         * wtf/GraphNodeWorklist.h:
1241         * wtf/GregorianDateTime.cpp:
1242         * wtf/GregorianDateTime.h:
1243         * wtf/HashFunctions.h:
1244         * wtf/HashMap.h:
1245         * wtf/HashMethod.h:
1246         * wtf/HashSet.h:
1247         * wtf/HashTable.cpp:
1248         * wtf/HashTraits.h:
1249         * wtf/Indenter.h:
1250         * wtf/IndexSparseSet.h:
1251         * wtf/InlineASM.h:
1252         * wtf/Insertion.h:
1253         * wtf/IteratorAdaptors.h:
1254         * wtf/IteratorRange.h:
1255         * wtf/JSONValues.cpp:
1256         * wtf/JSValueMalloc.cpp:
1257         * wtf/LEBDecoder.h:
1258         * wtf/Language.cpp:
1259         * wtf/ListDump.h:
1260         * wtf/Lock.cpp:
1261         * wtf/Lock.h:
1262         * wtf/LockAlgorithm.h:
1263         * wtf/LockedPrintStream.cpp:
1264         * wtf/Locker.h:
1265         * wtf/MD5.cpp:
1266         * wtf/MD5.h:
1267         * wtf/MainThread.cpp:
1268         * wtf/MainThread.h:
1269         * wtf/MallocPtr.h:
1270         * wtf/MathExtras.h:
1271         * wtf/MediaTime.cpp:
1272         * wtf/MediaTime.h:
1273         * wtf/MemoryPressureHandler.cpp:
1274         * wtf/MessageQueue.h:
1275         * wtf/MetaAllocator.cpp:
1276         * wtf/MetaAllocator.h:
1277         * wtf/MetaAllocatorHandle.h:
1278         * wtf/MonotonicTime.cpp:
1279         * wtf/MonotonicTime.h:
1280         * wtf/NakedPtr.h:
1281         * wtf/NoLock.h:
1282         * wtf/NoTailCalls.h:
1283         * wtf/Noncopyable.h:
1284         * wtf/NumberOfCores.cpp:
1285         * wtf/NumberOfCores.h:
1286         * wtf/OSAllocator.h:
1287         * wtf/OSAllocatorPosix.cpp:
1288         * wtf/OSRandomSource.cpp:
1289         * wtf/OSRandomSource.h:
1290         * wtf/ObjcRuntimeExtras.h:
1291         * wtf/OrderMaker.h:
1292         * wtf/PackedIntVector.h:
1293         * wtf/PageAllocation.h:
1294         * wtf/PageBlock.cpp:
1295         * wtf/PageBlock.h:
1296         * wtf/PageReservation.h:
1297         * wtf/ParallelHelperPool.cpp:
1298         * wtf/ParallelHelperPool.h:
1299         * wtf/ParallelJobs.h:
1300         * wtf/ParallelJobsLibdispatch.h:
1301         * wtf/ParallelVectorIterator.h:
1302         * wtf/ParkingLot.cpp:
1303         * wtf/ParkingLot.h:
1304         * wtf/Platform.h:
1305         * wtf/PointerComparison.h:
1306         * wtf/Poisoned.cpp:
1307         * wtf/PrintStream.cpp:
1308         * wtf/PrintStream.h:
1309         * wtf/ProcessID.h:
1310         * wtf/ProcessPrivilege.cpp:
1311         * wtf/RAMSize.cpp:
1312         * wtf/RAMSize.h:
1313         * wtf/RandomDevice.cpp:
1314         * wtf/RandomNumber.cpp:
1315         * wtf/RandomNumber.h:
1316         * wtf/RandomNumberSeed.h:
1317         * wtf/RangeSet.h:
1318         * wtf/RawPointer.h:
1319         * wtf/ReadWriteLock.cpp:
1320         * wtf/RedBlackTree.h:
1321         * wtf/Ref.h:
1322         * wtf/RefCountedArray.h:
1323         * wtf/RefCountedLeakCounter.cpp:
1324         * wtf/RefCountedLeakCounter.h:
1325         * wtf/RefCounter.h:
1326         * wtf/RefPtr.h:
1327         * wtf/RetainPtr.h:
1328         * wtf/RunLoop.cpp:
1329         * wtf/RunLoop.h:
1330         * wtf/RunLoopTimer.h:
1331         * wtf/RunLoopTimerCF.cpp:
1332         * wtf/SHA1.cpp:
1333         * wtf/SHA1.h:
1334         * wtf/SaturatedArithmetic.h:
1335         (saturatedSubtraction):
1336         * wtf/SchedulePair.h:
1337         * wtf/SchedulePairCF.cpp:
1338         * wtf/SchedulePairMac.mm:
1339         * wtf/ScopedLambda.h:
1340         * wtf/Seconds.cpp:
1341         * wtf/Seconds.h:
1342         * wtf/SegmentedVector.h:
1343         * wtf/SentinelLinkedList.h:
1344         * wtf/SharedTask.h:
1345         * wtf/SimpleStats.h:
1346         * wtf/SingleRootGraph.h:
1347         * wtf/SinglyLinkedList.h:
1348         * wtf/SixCharacterHash.cpp:
1349         * wtf/SixCharacterHash.h:
1350         * wtf/SmallPtrSet.h:
1351         * wtf/Spectrum.h:
1352         * wtf/StackBounds.cpp:
1353         * wtf/StackBounds.h:
1354         * wtf/StackStats.cpp:
1355         * wtf/StackStats.h:
1356         * wtf/StackTrace.cpp:
1357         * wtf/StdLibExtras.h:
1358         * wtf/StreamBuffer.h:
1359         * wtf/StringHashDumpContext.h:
1360         * wtf/StringPrintStream.cpp:
1361         * wtf/StringPrintStream.h:
1362         * wtf/ThreadGroup.cpp:
1363         * wtf/ThreadMessage.cpp:
1364         * wtf/ThreadSpecific.h:
1365         * wtf/Threading.cpp:
1366         * wtf/Threading.h:
1367         * wtf/ThreadingPrimitives.h:
1368         * wtf/ThreadingPthreads.cpp:
1369         * wtf/TimeWithDynamicClockType.cpp:
1370         * wtf/TimeWithDynamicClockType.h:
1371         * wtf/TimingScope.cpp:
1372         * wtf/TinyLRUCache.h:
1373         * wtf/TinyPtrSet.h:
1374         * wtf/TriState.h:
1375         * wtf/TypeCasts.h:
1376         * wtf/UUID.cpp:
1377         * wtf/UnionFind.h:
1378         * wtf/VMTags.h:
1379         * wtf/ValueCheck.h:
1380         * wtf/Vector.h:
1381         * wtf/VectorTraits.h:
1382         * wtf/WallTime.cpp:
1383         * wtf/WallTime.h:
1384         * wtf/WeakPtr.h:
1385         * wtf/WeakRandom.h:
1386         * wtf/WordLock.cpp:
1387         * wtf/WordLock.h:
1388         * wtf/WorkQueue.cpp:
1389         * wtf/WorkQueue.h:
1390         * wtf/WorkerPool.cpp:
1391         * wtf/cf/LanguageCF.cpp:
1392         * wtf/cf/RunLoopCF.cpp:
1393         * wtf/cocoa/Entitlements.mm:
1394         * wtf/cocoa/MachSendRight.cpp:
1395         * wtf/cocoa/MainThreadCocoa.mm:
1396         * wtf/cocoa/MemoryFootprintCocoa.cpp:
1397         * wtf/cocoa/WorkQueueCocoa.cpp:
1398         * wtf/dtoa.cpp:
1399         * wtf/dtoa.h:
1400         * wtf/ios/WebCoreThread.cpp:
1401         * wtf/ios/WebCoreThread.h:
1402         * wtf/mac/AppKitCompatibilityDeclarations.h:
1403         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
1404         * wtf/mbmalloc.cpp:
1405         * wtf/persistence/PersistentCoders.cpp:
1406         * wtf/persistence/PersistentDecoder.cpp:
1407         * wtf/persistence/PersistentEncoder.cpp:
1408         * wtf/spi/cf/CFBundleSPI.h:
1409         * wtf/spi/darwin/CommonCryptoSPI.h:
1410         * wtf/text/ASCIIFastPath.h:
1411         * wtf/text/ASCIILiteral.cpp:
1412         * wtf/text/AtomicString.cpp:
1413         * wtf/text/AtomicString.h:
1414         * wtf/text/AtomicStringHash.h:
1415         * wtf/text/AtomicStringImpl.cpp:
1416         * wtf/text/AtomicStringImpl.h:
1417         * wtf/text/AtomicStringTable.cpp:
1418         * wtf/text/AtomicStringTable.h:
1419         * wtf/text/Base64.cpp:
1420         * wtf/text/CString.cpp:
1421         * wtf/text/CString.h:
1422         * wtf/text/ConversionMode.h:
1423         * wtf/text/ExternalStringImpl.cpp:
1424         * wtf/text/IntegerToStringConversion.h:
1425         * wtf/text/LChar.h:
1426         * wtf/text/LineEnding.cpp:
1427         * wtf/text/StringBuffer.h:
1428         * wtf/text/StringBuilder.cpp:
1429         * wtf/text/StringBuilder.h:
1430         * wtf/text/StringBuilderJSON.cpp:
1431         * wtf/text/StringCommon.h:
1432         * wtf/text/StringConcatenate.h:
1433         * wtf/text/StringHash.h:
1434         * wtf/text/StringImpl.cpp:
1435         * wtf/text/StringImpl.h:
1436         * wtf/text/StringOperators.h:
1437         * wtf/text/StringView.cpp:
1438         * wtf/text/StringView.h:
1439         * wtf/text/SymbolImpl.cpp:
1440         * wtf/text/SymbolRegistry.cpp:
1441         * wtf/text/SymbolRegistry.h:
1442         * wtf/text/TextBreakIterator.cpp:
1443         * wtf/text/TextBreakIterator.h:
1444         * wtf/text/TextBreakIteratorInternalICU.h:
1445         * wtf/text/TextPosition.h:
1446         * wtf/text/TextStream.cpp:
1447         * wtf/text/UniquedStringImpl.h:
1448         * wtf/text/WTFString.cpp:
1449         * wtf/text/WTFString.h:
1450         * wtf/text/cocoa/StringCocoa.mm:
1451         * wtf/text/cocoa/StringViewCocoa.mm:
1452         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
1453         * wtf/text/icu/UTextProvider.cpp:
1454         * wtf/text/icu/UTextProvider.h:
1455         * wtf/text/icu/UTextProviderLatin1.cpp:
1456         * wtf/text/icu/UTextProviderLatin1.h:
1457         * wtf/text/icu/UTextProviderUTF16.cpp:
1458         * wtf/text/icu/UTextProviderUTF16.h:
1459         * wtf/threads/BinarySemaphore.cpp:
1460         * wtf/threads/BinarySemaphore.h:
1461         * wtf/threads/Signals.cpp:
1462         * wtf/unicode/CharacterNames.h:
1463         * wtf/unicode/Collator.h:
1464         * wtf/unicode/CollatorDefault.cpp:
1465         * wtf/unicode/UTF8.cpp:
1466         * wtf/unicode/UTF8.h:
1467
1468 2018-10-12  Alex Christensen  <achristensen@webkit.org>
1469
1470         Allow encoding of small enum classes
1471         https://bugs.webkit.org/show_bug.cgi?id=190531
1472
1473         Reviewed by Tim Horton.
1474
1475         * wtf/Forward.h:
1476
1477 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
1478
1479         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
1480         https://bugs.webkit.org/show_bug.cgi?id=190477
1481
1482         Reviewed by Tim Horton.
1483
1484         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
1485         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
1486         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
1487         because of dependencies in other source repositories.
1488
1489         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
1490         instances that actually target iOS only, having a version check.
1491
1492 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1493
1494         Use currentStackPointer more
1495         https://bugs.webkit.org/show_bug.cgi?id=190503
1496
1497         Reviewed by Saam Barati.
1498
1499         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
1500
1501         * wtf/StackBounds.cpp:
1502         (WTF::testStackDirection2):
1503         (WTF::testStackDirection):
1504         * wtf/ThreadingPthreads.cpp:
1505         (WTF::Thread::signalHandlerSuspendResume):
1506         (WTF::getApproximateStackPointer): Deleted.
1507
1508 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
1509
1510         [WTF] Semaphore.h conflicts with POSIX header
1511         https://bugs.webkit.org/show_bug.cgi?id=190486
1512
1513         Reviewed by Yusuke Suzuki.
1514
1515         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
1516
1517         * WTF.xcodeproj/project.pbxproj:
1518         * wtf/CMakeLists.txt:
1519         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
1520
1521 2018-10-10  Mark Lam  <mark.lam@apple.com>
1522
1523         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
1524         https://bugs.webkit.org/show_bug.cgi?id=190405
1525         <rdar://problem/45131464>
1526
1527         Reviewed by Michael Saboff.
1528
1529         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
1530
1531         * WTF.xcodeproj/project.pbxproj:
1532         * wtf/CMakeLists.txt:
1533         * wtf/StackBounds.h:
1534         (WTF::StackBounds::checkConsistency const):
1535         * wtf/StackPointer.cpp: Added.
1536         (WTF::currentStackPointer):
1537         * wtf/StackPointer.h: Added.
1538
1539 2018-10-09  Mark Lam  <mark.lam@apple.com>
1540
1541         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
1542         https://bugs.webkit.org/show_bug.cgi?id=190392
1543         <rdar://problem/45116210>
1544
1545         Reviewed by Saam Barati.
1546
1547         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
1548         unsigned length of the source string without an overflow check.  We now make that
1549         length a size_t which removes this issue, and assert that it's within
1550         String::MaxLength thereafter.
1551
1552         Also made the StringTypeAdapter constructor for a LChar* string behave in an
1553         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
1554         if the source string length exceeds String::MaxLength.
1555
1556         * wtf/text/StringConcatenate.h:
1557
1558 2018-10-09  Mark Lam  <mark.lam@apple.com>
1559
1560         Revert temporary asserts for debugging a mysterious ASAN bot crash.
1561         https://bugs.webkit.org/show_bug.cgi?id=190396
1562
1563         Reviewed by Yusuke Suzuki.
1564
1565         * wtf/StackBounds.cpp:
1566         (WTF::StackBounds::newThreadStackBounds):
1567         * wtf/StackBounds.h:
1568         (WTF::StackBounds::checkConsistency const):
1569
1570 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
1571
1572         Make <input type=color> a runtime enabled (on-by-default) feature
1573         https://bugs.webkit.org/show_bug.cgi?id=189162
1574
1575         Reviewed by Wenson Hsieh and Tim Horton.
1576
1577         * wtf/FeatureDefines.h:
1578
1579 2018-10-06  Mark Lam  <mark.lam@apple.com>
1580
1581         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
1582         https://bugs.webkit.org/show_bug.cgi?id=190334
1583         <rdar://problem/45071303>
1584
1585         Reviewed by Yusuke Suzuki.
1586
1587         These assertions are needed because we can't reproduce the issue locally.
1588         We'll remove these asserts after the needed data has been collected from the bot.
1589
1590         * wtf/StackBounds.cpp:
1591         (WTF::StackBounds::newThreadStackBounds):
1592         * wtf/StackBounds.h:
1593         (WTF::StackBounds::checkConsistency const):
1594
1595 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1596
1597         Name Heap threads
1598         https://bugs.webkit.org/show_bug.cgi?id=190337
1599
1600         Reviewed by Mark Lam.
1601
1602         Add a functionality naming threads of ParallelHelperPool.
1603
1604         * wtf/ParallelHelperPool.cpp:
1605         (WTF::ParallelHelperPool::ParallelHelperPool):
1606         * wtf/ParallelHelperPool.h:
1607
1608 2018-10-06  Mark Lam  <mark.lam@apple.com>
1609
1610         Adding some temporary asserts to debug a mysterious ASAN bot crash.
1611         https://bugs.webkit.org/show_bug.cgi?id=190331
1612
1613         Reviewed by Filip Pizlo.
1614
1615         These assertions are needed because we can't reproduce the issue locally.
1616         We'll remove these asserts after the needed data has been collected from the bot.
1617
1618         * wtf/StackBounds.h:
1619         (WTF::StackBounds::checkConsistency const):
1620
1621 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1622
1623         [JSC][Linux] Support Perf JITDump logging
1624         https://bugs.webkit.org/show_bug.cgi?id=189893
1625
1626         Reviewed by Mark Lam.
1627
1628         * wtf/PageReservation.h:
1629         (WTF::PageReservation::reserveAndCommitWithGuardPages):
1630
1631 2018-10-03  Dan Bernstein  <mitz@apple.com>
1632
1633         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
1634         https://bugs.webkit.org/show_bug.cgi?id=190250
1635
1636         Reviewed by Alex Christensen.
1637
1638         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
1639           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
1640
1641         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
1642
1643         * wtf/MathExtras.h:
1644         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
1645           expressions into individual statements.
1646
1647 2018-10-03  Mark Lam  <mark.lam@apple.com>
1648
1649         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
1650         https://bugs.webkit.org/show_bug.cgi?id=190187
1651         <rdar://problem/42512909>
1652
1653         Reviewed by Michael Saboff.
1654
1655         * wtf/text/StringConcatenate.h:
1656         (WTF::tryMakeStringFromAdapters):
1657         (WTF::sumWithOverflow): Deleted.
1658         * wtf/text/StringImpl.h:
1659         * wtf/text/WTFString.h:
1660
1661 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
1662
1663         -Wunused-variable in RenderLayer::updateScrollableAreaSet
1664         https://bugs.webkit.org/show_bug.cgi?id=190200
1665
1666         Reviewed by Yusuke Suzuki.
1667
1668         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
1669
1670         * wtf/Compiler.h:
1671
1672 2018-10-01  Dean Jackson  <dino@apple.com>
1673
1674         [macOS] Switching to discrete GPU should be done in the UI process
1675         https://bugs.webkit.org/show_bug.cgi?id=189361
1676         <rdar://problem/43949622>
1677
1678         Reviewed by Simon Fraser.
1679
1680         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
1681
1682         * wtf/Platform.h:
1683
1684 2018-10-02  Commit Queue  <commit-queue@webkit.org>
1685
1686         Unreviewed, rolling out r236624 and r236671.
1687         https://bugs.webkit.org/show_bug.cgi?id=190207
1688
1689         The change in r236624 introduced crashes on the bots
1690         (Requested by ryanhaddad on #webkit).
1691
1692         Reverted changesets:
1693
1694         "Refactoring: eliminate raw pointer usage in Fullscreen code"
1695         https://bugs.webkit.org/show_bug.cgi?id=188747
1696         https://trac.webkit.org/changeset/236624
1697
1698         "Unify implementation in VideoFullscreenInterfaceAVKit"
1699         https://bugs.webkit.org/show_bug.cgi?id=190091
1700         https://trac.webkit.org/changeset/236671
1701
1702 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
1703
1704         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
1705         https://bugs.webkit.org/show_bug.cgi?id=190033
1706
1707         Reviewed by Yusuke Suzuki.
1708
1709         * wtf/MathExtras.h:
1710         (WTF::ctz32):
1711
1712 2018-10-01  Andy Estes  <aestes@apple.com>
1713
1714         [watchOS] Adopt NSURLSessionCompanionProxyPreference
1715         https://bugs.webkit.org/show_bug.cgi?id=190177
1716         <rdar://problem/43402114>
1717
1718         Reviewed by Wenson Hsieh.
1719
1720         * wtf/FeatureDefines.h:
1721
1722 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
1723
1724         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
1725         https://bugs.webkit.org/show_bug.cgi?id=190121
1726
1727         Reviewed by Yusuke Suzuki.
1728
1729         This fixes JSCOnly build on Windows after r236617.
1730
1731         * wtf/PlatformJSCOnly.cmake:
1732
1733 2018-10-01  Commit Queue  <commit-queue@webkit.org>
1734
1735         Unreviewed, rolling out r236647.
1736         https://bugs.webkit.org/show_bug.cgi?id=190124
1737
1738         Breaking test stress/big-int-to-string.js (Requested by
1739         caiolima_ on #webkit).
1740
1741         Reverted changeset:
1742
1743         "[BigInt] BigInt.proptotype.toString is broken when radix is
1744         power of 2"
1745         https://bugs.webkit.org/show_bug.cgi?id=190033
1746         https://trac.webkit.org/changeset/236647
1747
1748 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
1749
1750         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
1751         https://bugs.webkit.org/show_bug.cgi?id=190033
1752
1753         Reviewed by Yusuke Suzuki.
1754
1755         * wtf/MathExtras.h:
1756         (WTF::ctz32):
1757
1758 2018-09-28  Jer Noble  <jer.noble@apple.com>
1759
1760         Refactoring: eliminate raw pointer usage in Fullscreen code
1761         https://bugs.webkit.org/show_bug.cgi?id=188747
1762         <rdar://problem/43541164>
1763
1764         Reviewed by Alex Christensen.
1765
1766         * WTF.xcodeproj/project.pbxproj:
1767         * wtf/WeakPtrContainer.h: Added.
1768
1769 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1770
1771         [WTF] Make isMainThread more reliable
1772         https://bugs.webkit.org/show_bug.cgi?id=189880
1773
1774         Reviewed by Mark Lam.
1775
1776         isMainThread() relied on Thread::current(). This API becomes broken in Windows
1777         when the Thread is about to be destroyed since TLS is already cleared. This causes
1778         a bug since `isMainThread()` is called in Thread::didExit in Windows.
1779
1780         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
1781         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
1782         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
1783         or `pthread_self` instead.
1784
1785         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
1786         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
1787         only happens in Windows since Windows calls TLS destructor for the main thread.
1788
1789         * WTF.xcodeproj/project.pbxproj:
1790         * wtf/MainThread.cpp:
1791         (WTF::initializeMainThread):
1792         (): Deleted.
1793         (WTF::isMainThread): Deleted.
1794         (WTF::isMainThreadIfInitialized): Deleted.
1795         * wtf/Platform.h:
1796         * wtf/PlatformMac.cmake:
1797         * wtf/Threading.cpp:
1798         (WTF::Thread::didExit):
1799         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
1800         * wtf/generic/MainThreadGeneric.cpp:
1801         (WTF::initializeMainThreadPlatform):
1802         (WTF::isMainThread):
1803         (WTF::isMainThreadIfInitialized):
1804         * wtf/win/MainThreadWin.cpp:
1805         (WTF::initializeMainThreadPlatform):
1806         (WTF::isMainThread):
1807         (WTF::isMainThreadIfInitialized):
1808
1809 2018-09-28  Commit Queue  <commit-queue@webkit.org>
1810
1811         Unreviewed, rolling out r236605.
1812         https://bugs.webkit.org/show_bug.cgi?id=190087
1813
1814         caused three API test timeouts (Requested by jernoble on
1815         #webkit).
1816
1817         Reverted changeset:
1818
1819         "Refactoring: eliminate raw pointer usage in Fullscreen code"
1820         https://bugs.webkit.org/show_bug.cgi?id=188747
1821         https://trac.webkit.org/changeset/236605
1822
1823 2018-09-28  Brian Burg  <bburg@apple.com>
1824
1825         Replace recently added line comments in Compiler.h
1826         https://bugs.webkit.org/show_bug.cgi?id=190062
1827         <rdar://problem/44838618>
1828
1829         Reviewed by Joseph Pecoraro.
1830
1831         This breaks some Apple-internal tooling. For now, work around it by
1832         changing the comment style. On the other side, the issue will be fixed
1833         more permanently by adopting the approach from r230213.
1834
1835         * wtf/Compiler.h: Use multiline comments.
1836
1837 2018-09-28  Jer Noble  <jer.noble@apple.com>
1838
1839         Refactoring: eliminate raw pointer usage in Fullscreen code
1840         https://bugs.webkit.org/show_bug.cgi?id=188747
1841         <rdar://problem/43541164>
1842
1843         Reviewed by Alex Christensen.
1844
1845         * WTF.xcodeproj/project.pbxproj:
1846         * wtf/WeakPtrContainer.h: Added.
1847
1848 2018-09-28  Koby Boyango  <koby.b@mce.systems>
1849
1850         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
1851         https://bugs.webkit.org/show_bug.cgi?id=189991
1852
1853         Reviewed by Yusuke Suzuki.
1854
1855         * WTF.xcodeproj/project.pbxproj:
1856         * wtf/CMakeLists.txt:
1857         * wtf/text/ExternalStringImpl.cpp: Added.
1858         * wtf/text/ExternalStringImpl.h: Added.
1859         * wtf/text/StringImpl.cpp:
1860         * wtf/text/StringImpl.h:
1861
1862 2018-09-27  Saam barati  <sbarati@apple.com>
1863
1864         Verify the contents of AssemblerBuffer on arm64e
1865         https://bugs.webkit.org/show_bug.cgi?id=190057
1866         <rdar://problem/38916630>
1867
1868         Reviewed by Mark Lam.
1869
1870         * wtf/PtrTag.h:
1871         (WTF::tagInt):
1872
1873 2018-09-27  Jer Noble  <jer.noble@apple.com>
1874
1875         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
1876         https://bugs.webkit.org/show_bug.cgi?id=189951
1877
1878         Reviewed by Eric Carlson.
1879
1880         Templated functions should take r-value references, as they have perfect type deduction for
1881         all parameter types; references, l-value references, and r-value references in template function
1882         parameters have special type deduction semantics.
1883         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
1884
1885         Previously, const reference parameters would be copied when passed into anyOf(), and containers
1886         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
1887         with r-value reference types in template parameters, a const reference is mapped to a const reference,
1888         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
1889         an r-value reference.
1890
1891         * wtf/Algorithms.h:
1892         (WTF::forEach):
1893         (WTF::anyOf):
1894         (WTF::allOf):
1895
1896 2018-09-25  John Wilander  <wilander@apple.com>
1897
1898         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
1899         https://bugs.webkit.org/show_bug.cgi?id=189959
1900         <rdar://problem/44767642>
1901
1902         Reviewed by Chris Dumez.
1903
1904         * wtf/Platform.h:
1905             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
1906
1907 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
1908
1909         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
1910         https://bugs.webkit.org/show_bug.cgi?id=189733
1911
1912         Reviewed by Michael Catanzaro.
1913
1914         Clang for Windows build enables WTF_COMPILER_CLANG and
1915         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
1916         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
1917         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
1918         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
1919         least at the moment, it is not feasible to define
1920         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
1921
1922         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
1923         to WTF_COMPILER_GCC_COMPATIBLE.
1924
1925         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
1926         Clang for Windows builds.
1927
1928         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
1929         * wtf/Assertions.h: Ditto.
1930         * wtf/Atomics.h: Ditto.
1931         * wtf/CheckedArithmetic.h: Ditto.
1932         * wtf/FastMalloc.h: Ditto.
1933         * wtf/MathExtras.h: Ditto.
1934         * wtf/Platform.h: Ditto.
1935         * wtf/StdLibExtras.h: Ditto.
1936         * wtf/Vector.h: Ditto.
1937         * wtf/text/ASCIIFastPath.h: Ditto.
1938         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
1939
1940 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1941
1942         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
1943         https://bugs.webkit.org/show_bug.cgi?id=189778
1944
1945         Reviewed by Keith Miller.
1946
1947         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
1948         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
1949         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
1950
1951         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
1952         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
1953         information which is used for LLInt and SamplingProfiler.
1954
1955         * wtf/Platform.h:
1956
1957 2018-09-21  Keith Miller  <keith_miller@apple.com>
1958
1959         Add Promise SPI
1960         https://bugs.webkit.org/show_bug.cgi?id=189809
1961
1962         Reviewed by Saam Barati.
1963
1964         Fix issue where creating a JSContextRef off the main thread before
1965         creating initializing the main thread would cause an assertion
1966         failure.
1967
1968         * wtf/MainThread.cpp:
1969         (WTF::isMainThreadIfInitialized):
1970         * wtf/MainThread.h:
1971         * wtf/mac/MainThreadMac.mm:
1972         (WTF::isMainThreadIfInitialized):
1973         * wtf/text/cf/StringImplCF.cpp:
1974         (WTF::StringImpl::createCFString):
1975
1976 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
1977
1978         Unreviewed, rolling out r236359.
1979
1980         Broke the Windows build.
1981
1982         Reverted changeset:
1983
1984         "Add Promise SPI"
1985         https://bugs.webkit.org/show_bug.cgi?id=189809
1986         https://trac.webkit.org/changeset/236359
1987
1988 2018-09-21  Keith Miller  <keith_miller@apple.com>
1989
1990         Add Promise SPI
1991         https://bugs.webkit.org/show_bug.cgi?id=189809
1992
1993         Reviewed by Saam Barati.
1994
1995         Fix issue where creating a JSContextRef off the main thread before
1996         creating initializing the main thread would cause an assertion
1997         failure.
1998
1999         * wtf/MainThread.cpp:
2000         (WTF::isMainThreadIfInitialized):
2001         * wtf/MainThread.h:
2002         * wtf/mac/MainThreadMac.mm:
2003         (WTF::isMainThreadIfInitialized):
2004         * wtf/text/cf/StringImplCF.cpp:
2005         (WTF::StringImpl::createCFString):
2006
2007 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
2008
2009         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
2010         https://bugs.webkit.org/show_bug.cgi?id=189732
2011
2012         Reviewed by Per Arne Vollan.
2013
2014         Clang for Windows can't compile the MSVC workaround of
2015         UNUSED_PARAM which has been introduced for Windows CE and Visual
2016         Studio 10. I think it's safe just to remove it.
2017
2018         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
2019
2020 2018-09-20  Alex Christensen  <achristensen@webkit.org>
2021
2022         Unreviewed, rolling out r235976.
2023
2024         Broke ARM
2025
2026         Reverted changeset:
2027
2028         "Use a Variant instead of a union in CSSSelector"
2029         https://bugs.webkit.org/show_bug.cgi?id=188559
2030         https://trac.webkit.org/changeset/235976
2031
2032 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
2033
2034         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
2035         https://bugs.webkit.org/show_bug.cgi?id=185339
2036
2037         Reviewed by Mark Lam.
2038
2039         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
2040
2041         * WTF.xcodeproj/project.pbxproj:
2042         * wtf/CMakeLists.txt:
2043         * wtf/Semaphore.h: Added.
2044         (WTF::Semaphore::Semaphore):
2045         (WTF::Semaphore::signal):
2046         (WTF::Semaphore::waitUntil):
2047         (WTF::Semaphore::waitFor):
2048         (WTF::Semaphore::wait):
2049         * wtf/generic/WorkQueueGeneric.cpp:
2050         (WorkQueue::platformInitialize):
2051         * wtf/threads/BinarySemaphore.cpp:
2052         (WTF::BinarySemaphore::waitUntil):
2053         (WTF::BinarySemaphore::wait): Deleted.
2054         * wtf/threads/BinarySemaphore.h:
2055         (WTF::BinarySemaphore::waitFor):
2056         (WTF::BinarySemaphore::wait):
2057         Align the names of the functions to WTF::Condition.
2058         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
2059
2060 2018-09-17  Jer Noble  <jer.noble@apple.com>
2061
2062         Add support for HEVC codec types in Media Capabilities
2063         https://bugs.webkit.org/show_bug.cgi?id=189565
2064
2065         Reviewed by Eric Carlson.
2066
2067         Extract the toIntegralType template into its own header.
2068
2069         * wtf/CMakeLists.txt:
2070         * wtf/text/StringConversion.h: Added.
2071         (isCharacterAllowedInBase):
2072         (toIntegralType):
2073         * wtf/text/WTFString.cpp:
2074
2075 2018-09-17  Jer Noble  <jer.noble@apple.com>
2076
2077         Enable USE_MEDIAREMOTE on iOS
2078         https://bugs.webkit.org/show_bug.cgi?id=189096
2079
2080         Reviewed by Eric Carlson.
2081
2082         * wtf/Platform.h:
2083
2084 2018-09-17  Frederic Wang  <fwang@igalia.com>
2085
2086         Build error in ImageBufferCG when compiled with IOSurfacePool
2087         https://bugs.webkit.org/show_bug.cgi?id=189579
2088
2089         Reviewed by Tim Horton.
2090
2091         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
2092         compilation errors when files in the same unified source do not agree on the definition.
2093         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
2094         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
2095         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
2096         to prevent future issues with Unified build rotating.
2097
2098         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
2099
2100 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
2101
2102         Unreviewed, rolling out r235990.
2103
2104         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
2105
2106         Reverted changeset:
2107
2108         "Enable USE_MEDIAREMOTE on iOS"
2109         https://bugs.webkit.org/show_bug.cgi?id=189096
2110         https://trac.webkit.org/changeset/235990
2111
2112 2018-09-13  Jer Noble  <jer.noble@apple.com>
2113
2114         Enable USE_MEDIAREMOTE on iOS
2115         https://bugs.webkit.org/show_bug.cgi?id=189096
2116
2117         Reviewed by Eric Carlson.
2118
2119         * wtf/Platform.h:
2120
2121 2018-09-13  Alex Christensen  <achristensen@webkit.org>
2122
2123         Use a Variant instead of a union in CSSSelector
2124         https://bugs.webkit.org/show_bug.cgi?id=188559
2125
2126         Reviewed by Antti Koivisto.
2127
2128         * wtf/Variant.h:
2129         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
2130
2131 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
2132
2133         Add IGNORE_WARNING_.* macros
2134         https://bugs.webkit.org/show_bug.cgi?id=188996
2135
2136         Reviewed by Michael Catanzaro.
2137
2138         * wtf/Assertions.cpp:
2139         * wtf/Assertions.h:
2140         * wtf/Compiler.h:
2141         * wtf/MD5.cpp:
2142         (WTF::MD5::MD5):
2143         (WTF::MD5::addBytes):
2144         (WTF::MD5::checksum):
2145         * wtf/PrintStream.cpp:
2146         (WTF::PrintStream::printfVariableFormat):
2147         * wtf/SHA1.cpp:
2148         (WTF::SHA1::SHA1):
2149         (WTF::SHA1::addBytes):
2150         (WTF::SHA1::computeHash):
2151         * wtf/ThreadingPthreads.cpp:
2152         * wtf/Vector.h:
2153         (WTF::VectorBuffer::endOfBuffer):
2154         * wtf/text/WTFString.cpp:
2155         (WTF::createWithFormatAndArguments):
2156
2157 == Rolled over to ChangeLog-2018-09-11 ==