Refactoring: eliminate raw pointer usage in Fullscreen code
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-09-28  Jer Noble  <jer.noble@apple.com>
2
3         Refactoring: eliminate raw pointer usage in Fullscreen code
4         https://bugs.webkit.org/show_bug.cgi?id=188747
5         <rdar://problem/43541164>
6
7         Reviewed by Alex Christensen.
8
9         * WTF.xcodeproj/project.pbxproj:
10         * wtf/WeakPtrContainer.h: Added.
11
12 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
13
14         [WTF] Make isMainThread more reliable
15         https://bugs.webkit.org/show_bug.cgi?id=189880
16
17         Reviewed by Mark Lam.
18
19         isMainThread() relied on Thread::current(). This API becomes broken in Windows
20         when the Thread is about to be destroyed since TLS is already cleared. This causes
21         a bug since `isMainThread()` is called in Thread::didExit in Windows.
22
23         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
24         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
25         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
26         or `pthread_self` instead.
27
28         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
29         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
30         only happens in Windows since Windows calls TLS destructor for the main thread.
31
32         * WTF.xcodeproj/project.pbxproj:
33         * wtf/MainThread.cpp:
34         (WTF::initializeMainThread):
35         (): Deleted.
36         (WTF::isMainThread): Deleted.
37         (WTF::isMainThreadIfInitialized): Deleted.
38         * wtf/Platform.h:
39         * wtf/PlatformMac.cmake:
40         * wtf/Threading.cpp:
41         (WTF::Thread::didExit):
42         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
43         * wtf/generic/MainThreadGeneric.cpp:
44         (WTF::initializeMainThreadPlatform):
45         (WTF::isMainThread):
46         (WTF::isMainThreadIfInitialized):
47         * wtf/win/MainThreadWin.cpp:
48         (WTF::initializeMainThreadPlatform):
49         (WTF::isMainThread):
50         (WTF::isMainThreadIfInitialized):
51
52 2018-09-28  Commit Queue  <commit-queue@webkit.org>
53
54         Unreviewed, rolling out r236605.
55         https://bugs.webkit.org/show_bug.cgi?id=190087
56
57         caused three API test timeouts (Requested by jernoble on
58         #webkit).
59
60         Reverted changeset:
61
62         "Refactoring: eliminate raw pointer usage in Fullscreen code"
63         https://bugs.webkit.org/show_bug.cgi?id=188747
64         https://trac.webkit.org/changeset/236605
65
66 2018-09-28  Brian Burg  <bburg@apple.com>
67
68         Replace recently added line comments in Compiler.h
69         https://bugs.webkit.org/show_bug.cgi?id=190062
70         <rdar://problem/44838618>
71
72         Reviewed by Joseph Pecoraro.
73
74         This breaks some Apple-internal tooling. For now, work around it by
75         changing the comment style. On the other side, the issue will be fixed
76         more permanently by adopting the approach from r230213.
77
78         * wtf/Compiler.h: Use multiline comments.
79
80 2018-09-28  Jer Noble  <jer.noble@apple.com>
81
82         Refactoring: eliminate raw pointer usage in Fullscreen code
83         https://bugs.webkit.org/show_bug.cgi?id=188747
84         <rdar://problem/43541164>
85
86         Reviewed by Alex Christensen.
87
88         * WTF.xcodeproj/project.pbxproj:
89         * wtf/WeakPtrContainer.h: Added.
90
91 2018-09-28  Koby Boyango  <koby.b@mce.systems>
92
93         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
94         https://bugs.webkit.org/show_bug.cgi?id=189991
95
96         Reviewed by Yusuke Suzuki.
97
98         * WTF.xcodeproj/project.pbxproj:
99         * wtf/CMakeLists.txt:
100         * wtf/text/ExternalStringImpl.cpp: Added.
101         * wtf/text/ExternalStringImpl.h: Added.
102         * wtf/text/StringImpl.cpp:
103         * wtf/text/StringImpl.h:
104
105 2018-09-27  Saam barati  <sbarati@apple.com>
106
107         Verify the contents of AssemblerBuffer on arm64e
108         https://bugs.webkit.org/show_bug.cgi?id=190057
109         <rdar://problem/38916630>
110
111         Reviewed by Mark Lam.
112
113         * wtf/PtrTag.h:
114         (WTF::tagInt):
115
116 2018-09-27  Jer Noble  <jer.noble@apple.com>
117
118         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
119         https://bugs.webkit.org/show_bug.cgi?id=189951
120
121         Reviewed by Eric Carlson.
122
123         Templated functions should take r-value references, as they have perfect type deduction for
124         all parameter types; references, l-value references, and r-value references in template function
125         parameters have special type deduction semantics.
126         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
127
128         Previously, const reference parameters would be copied when passed into anyOf(), and containers
129         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
130         with r-value reference types in template parameters, a const reference is mapped to a const reference,
131         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
132         an r-value reference.
133
134         * wtf/Algorithms.h:
135         (WTF::forEach):
136         (WTF::anyOf):
137         (WTF::allOf):
138
139 2018-09-25  John Wilander  <wilander@apple.com>
140
141         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
142         https://bugs.webkit.org/show_bug.cgi?id=189959
143         <rdar://problem/44767642>
144
145         Reviewed by Chris Dumez.
146
147         * wtf/Platform.h:
148             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
149
150 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
151
152         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
153         https://bugs.webkit.org/show_bug.cgi?id=189733
154
155         Reviewed by Michael Catanzaro.
156
157         Clang for Windows build enables WTF_COMPILER_CLANG and
158         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
159         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
160         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
161         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
162         least at the moment, it is not feasible to define
163         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
164
165         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
166         to WTF_COMPILER_GCC_COMPATIBLE.
167
168         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
169         Clang for Windows builds.
170
171         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
172         * wtf/Assertions.h: Ditto.
173         * wtf/Atomics.h: Ditto.
174         * wtf/CheckedArithmetic.h: Ditto.
175         * wtf/FastMalloc.h: Ditto.
176         * wtf/MathExtras.h: Ditto.
177         * wtf/Platform.h: Ditto.
178         * wtf/StdLibExtras.h: Ditto.
179         * wtf/Vector.h: Ditto.
180         * wtf/text/ASCIIFastPath.h: Ditto.
181         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
182
183 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
184
185         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
186         https://bugs.webkit.org/show_bug.cgi?id=189778
187
188         Reviewed by Keith Miller.
189
190         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
191         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
192         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
193
194         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
195         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
196         information which is used for LLInt and SamplingProfiler.
197
198         * wtf/Platform.h:
199
200 2018-09-21  Keith Miller  <keith_miller@apple.com>
201
202         Add Promise SPI
203         https://bugs.webkit.org/show_bug.cgi?id=189809
204
205         Reviewed by Saam Barati.
206
207         Fix issue where creating a JSContextRef off the main thread before
208         creating initializing the main thread would cause an assertion
209         failure.
210
211         * wtf/MainThread.cpp:
212         (WTF::isMainThreadIfInitialized):
213         * wtf/MainThread.h:
214         * wtf/mac/MainThreadMac.mm:
215         (WTF::isMainThreadIfInitialized):
216         * wtf/text/cf/StringImplCF.cpp:
217         (WTF::StringImpl::createCFString):
218
219 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
220
221         Unreviewed, rolling out r236359.
222
223         Broke the Windows build.
224
225         Reverted changeset:
226
227         "Add Promise SPI"
228         https://bugs.webkit.org/show_bug.cgi?id=189809
229         https://trac.webkit.org/changeset/236359
230
231 2018-09-21  Keith Miller  <keith_miller@apple.com>
232
233         Add Promise SPI
234         https://bugs.webkit.org/show_bug.cgi?id=189809
235
236         Reviewed by Saam Barati.
237
238         Fix issue where creating a JSContextRef off the main thread before
239         creating initializing the main thread would cause an assertion
240         failure.
241
242         * wtf/MainThread.cpp:
243         (WTF::isMainThreadIfInitialized):
244         * wtf/MainThread.h:
245         * wtf/mac/MainThreadMac.mm:
246         (WTF::isMainThreadIfInitialized):
247         * wtf/text/cf/StringImplCF.cpp:
248         (WTF::StringImpl::createCFString):
249
250 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
251
252         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
253         https://bugs.webkit.org/show_bug.cgi?id=189732
254
255         Reviewed by Per Arne Vollan.
256
257         Clang for Windows can't compile the MSVC workaround of
258         UNUSED_PARAM which has been introduced for Windows CE and Visual
259         Studio 10. I think it's safe just to remove it.
260
261         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
262
263 2018-09-20  Alex Christensen  <achristensen@webkit.org>
264
265         Unreviewed, rolling out r235976.
266
267         Broke ARM
268
269         Reverted changeset:
270
271         "Use a Variant instead of a union in CSSSelector"
272         https://bugs.webkit.org/show_bug.cgi?id=188559
273         https://trac.webkit.org/changeset/235976
274
275 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
276
277         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
278         https://bugs.webkit.org/show_bug.cgi?id=185339
279
280         Reviewed by Mark Lam.
281
282         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
283
284         * WTF.xcodeproj/project.pbxproj:
285         * wtf/CMakeLists.txt:
286         * wtf/Semaphore.h: Added.
287         (WTF::Semaphore::Semaphore):
288         (WTF::Semaphore::signal):
289         (WTF::Semaphore::waitUntil):
290         (WTF::Semaphore::waitFor):
291         (WTF::Semaphore::wait):
292         * wtf/generic/WorkQueueGeneric.cpp:
293         (WorkQueue::platformInitialize):
294         * wtf/threads/BinarySemaphore.cpp:
295         (WTF::BinarySemaphore::waitUntil):
296         (WTF::BinarySemaphore::wait): Deleted.
297         * wtf/threads/BinarySemaphore.h:
298         (WTF::BinarySemaphore::waitFor):
299         (WTF::BinarySemaphore::wait):
300         Align the names of the functions to WTF::Condition.
301         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
302
303 2018-09-17  Jer Noble  <jer.noble@apple.com>
304
305         Add support for HEVC codec types in Media Capabilities
306         https://bugs.webkit.org/show_bug.cgi?id=189565
307
308         Reviewed by Eric Carlson.
309
310         Extract the toIntegralType template into its own header.
311
312         * wtf/CMakeLists.txt:
313         * wtf/text/StringConversion.h: Added.
314         (isCharacterAllowedInBase):
315         (toIntegralType):
316         * wtf/text/WTFString.cpp:
317
318 2018-09-17  Jer Noble  <jer.noble@apple.com>
319
320         Enable USE_MEDIAREMOTE on iOS
321         https://bugs.webkit.org/show_bug.cgi?id=189096
322
323         Reviewed by Eric Carlson.
324
325         * wtf/Platform.h:
326
327 2018-09-17  Frederic Wang  <fwang@igalia.com>
328
329         Build error in ImageBufferCG when compiled with IOSurfacePool
330         https://bugs.webkit.org/show_bug.cgi?id=189579
331
332         Reviewed by Tim Horton.
333
334         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
335         compilation errors when files in the same unified source do not agree on the definition.
336         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
337         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
338         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
339         to prevent future issues with Unified build rotating.
340
341         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
342
343 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
344
345         Unreviewed, rolling out r235990.
346
347         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
348
349         Reverted changeset:
350
351         "Enable USE_MEDIAREMOTE on iOS"
352         https://bugs.webkit.org/show_bug.cgi?id=189096
353         https://trac.webkit.org/changeset/235990
354
355 2018-09-13  Jer Noble  <jer.noble@apple.com>
356
357         Enable USE_MEDIAREMOTE on iOS
358         https://bugs.webkit.org/show_bug.cgi?id=189096
359
360         Reviewed by Eric Carlson.
361
362         * wtf/Platform.h:
363
364 2018-09-13  Alex Christensen  <achristensen@webkit.org>
365
366         Use a Variant instead of a union in CSSSelector
367         https://bugs.webkit.org/show_bug.cgi?id=188559
368
369         Reviewed by Antti Koivisto.
370
371         * wtf/Variant.h:
372         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
373
374 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
375
376         Add IGNORE_WARNING_.* macros
377         https://bugs.webkit.org/show_bug.cgi?id=188996
378
379         Reviewed by Michael Catanzaro.
380
381         * wtf/Assertions.cpp:
382         * wtf/Assertions.h:
383         * wtf/Compiler.h:
384         * wtf/MD5.cpp:
385         (WTF::MD5::MD5):
386         (WTF::MD5::addBytes):
387         (WTF::MD5::checksum):
388         * wtf/PrintStream.cpp:
389         (WTF::PrintStream::printfVariableFormat):
390         * wtf/SHA1.cpp:
391         (WTF::SHA1::SHA1):
392         (WTF::SHA1::addBytes):
393         (WTF::SHA1::computeHash):
394         * wtf/ThreadingPthreads.cpp:
395         * wtf/Vector.h:
396         (WTF::VectorBuffer::endOfBuffer):
397         * wtf/text/WTFString.cpp:
398         (WTF::createWithFormatAndArguments):
399
400 == Rolled over to ChangeLog-2018-09-11 ==