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