16527092a3b2c19acd02e45e1170caee64abb00e
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-12-01  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         Unreviewed. Fix GTK+ build after r192849.
4
5         * bindings/scripts/CodeGeneratorGObject.pm:
6         (GenerateFunction):
7         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
8         (webkit_dom_test_interface_supplemental_method1):
9         (webkit_dom_test_interface_supplemental_method2):
10         (webkit_dom_test_interface_set_supplemental_str2):
11         (webkit_dom_test_interface_get_supplemental_node):
12         (webkit_dom_test_interface_set_supplemental_node):
13
14 2015-12-01  Youenn Fablet  <youenn.fablet@crf.canon.fr>
15
16         [Streams API] Remove use of @catch for exposed promises
17         https://bugs.webkit.org/show_bug.cgi?id=151625
18
19         Reviewed by Darin Adler.
20
21         Promise @catch is calling "then" which may be controlled by user scripts.
22         This patch simply replaces @catch by calling @then directly.
23
24         Covered by modified tests.
25
26         * Modules/streams/ReadableStream.js:
27         (pipeTo):
28         * Modules/streams/ReadableStreamInternals.js:
29         (teeReadableStream):
30
31 2015-11-30  Jaehun Lim  <ljaehun.lim@samsung.com>
32
33         Unreviewed, fix build after r192848 and r192849
34
35         - Rename canSuspendForPageCache to canSuspendForDocumentSuspension
36         - Use references instead of pointers
37
38         * Modules/battery/BatteryManager.cpp:
39         (WebCore::BatteryManager::canSuspendForDocumentSuspension):
40         (WebCore::BatteryManager::canSuspendForPageCache): Deleted.
41         * Modules/battery/BatteryManager.h:
42         * Modules/battery/NavigatorBattery.cpp:
43         (WebCore::NavigatorBattery::webkitBattery):
44         * Modules/battery/NavigatorBattery.h:
45         * Modules/gamepad/deprecated/NavigatorGamepad.cpp:
46         (WebCore::NavigatorGamepad::webkitGetGamepads):
47         * Modules/gamepad/deprecated/NavigatorGamepad.h:
48         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
49         (WebCore::NavigatorContentUtils::registerProtocolHandler):
50         (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
51         (WebCore::NavigatorContentUtils::unregisterProtocolHandler):
52         * Modules/navigatorcontentutils/NavigatorContentUtils.h:
53         * Modules/vibration/NavigatorVibration.cpp:
54         (WebCore::NavigatorVibration::vibrate):
55         * Modules/vibration/NavigatorVibration.h:
56
57 2015-11-30  Jiewen Tan  <jiewen_tan@apple.com>
58
59         Amazon.com Additional Information links aren't clickable
60         https://bugs.webkit.org/show_bug.cgi?id=151401
61         <rdar://problem/23454261>
62
63         Reviewed by Darin Adler.
64
65         The cause of this issue is that the painting order is different from the hittest order so we can end up
66         with visible but unreachable content. To fix this, the executation flow of hittest has been reordered.
67         According to the paint system, which renders the webpage from the bottom RenderLayer to the top, contents
68         are rendered before floats. Hence, for the hittest, which determines the hitted location from top RenderLayer
69         to the bottom, should do it reversedly. Now, hittest will first test floats then contents.
70
71         Test: fast/block/float/hit-test-on-overlapping-floats.html
72
73         * rendering/RenderBlock.cpp:
74         (WebCore::RenderBlock::nodeAtPoint):
75
76 2015-11-30  Simon Fraser  <simon.fraser@apple.com>
77
78         Fix possible crash with animated layers in reflections
79         https://bugs.webkit.org/show_bug.cgi?id=151689
80         rdar://problem/23018612
81
82         Reviewed by Darin Adler.
83
84         Reflections create additional PlatformCALayers whose owner is set to the GraphicsLayerCA.
85         Those PlatformCALayers need their owner pointer cleared out when the GraphicsLayerCA
86         is destroyed.
87         
88         Tested by compositing/reflections/nested-reflection-transition.html
89
90         * platform/graphics/ca/GraphicsLayerCA.cpp:
91         * platform/graphics/ca/GraphicsLayerCA.h:
92
93 2015-11-30  Brady Eidson  <beidson@apple.com>
94
95         Modern IDB: Iterating index cursors to a specific key is busted.
96         https://bugs.webkit.org/show_bug.cgi?id=151684
97
98         Reviewed by Darin Adler.
99
100         No new tests (At least one failing test now passes).
101
102         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
103         (WebCore::IDBServer::MemoryIndexCursor::iterate):
104
105 2015-11-30  Brady Eidson  <beidson@apple.com>
106
107         Modern IDB: ObjectStore cursors should not be able to iterate out of their range.
108         https://bugs.webkit.org/show_bug.cgi?id=151683
109
110         Reviewed by Darin Adler.
111
112         No new tests (Covered by at least one failing test that now passes).
113
114         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
115         (WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
116         (WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
117
118 2015-11-30  Anders Carlsson  <andersca@apple.com>
119
120         CTTE autogenerated bindings code
121         https://bugs.webkit.org/show_bug.cgi?id=151682
122
123         Reviewed by Darin Adler.
124
125         Make sure that JS bindings pass a reference to the object when calling static member functions.
126
127         * Modules/gamepad/NavigatorGamepad.cpp:
128         (WebCore::NavigatorGamepad::getGamepads):
129         * Modules/gamepad/NavigatorGamepad.h:
130         * Modules/geolocation/NavigatorGeolocation.cpp:
131         (WebCore::NavigatorGeolocation::geolocation):
132         * Modules/geolocation/NavigatorGeolocation.h:
133         * Modules/mediasource/AudioTrackMediaSource.h:
134         (WebCore::AudioTrackMediaSource::sourceBuffer):
135         * Modules/mediasource/TextTrackMediaSource.h:
136         (WebCore::TextTrackMediaSource::sourceBuffer):
137         * Modules/mediasource/VideoTrackMediaSource.h:
138         (WebCore::VideoTrackMediaSource::sourceBuffer):
139         * Modules/mediastream/HTMLMediaElementMediaStream.cpp:
140         (WebCore::HTMLMediaElementMediaStream::srcObject):
141         (WebCore::HTMLMediaElementMediaStream::setSrcObject):
142         * Modules/mediastream/HTMLMediaElementMediaStream.h:
143         * Modules/mediastream/NavigatorMediaDevices.cpp:
144         (WebCore::NavigatorMediaDevices::mediaDevices):
145         * Modules/mediastream/NavigatorMediaDevices.h:
146         * Modules/notifications/DOMWindowNotifications.cpp:
147         (WebCore::DOMWindowNotifications::webkitNotifications):
148         * Modules/notifications/DOMWindowNotifications.h:
149         * Modules/notifications/Notification.cpp:
150         (WebCore::Notification::Notification):
151         * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
152         (WebCore::WorkerGlobalScopeNotifications::webkitNotifications):
153         * Modules/notifications/WorkerGlobalScopeNotifications.h:
154         * Modules/speech/DOMWindowSpeechSynthesis.cpp:
155         (WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
156         * Modules/speech/DOMWindowSpeechSynthesis.h:
157         * Modules/webdatabase/DOMWindowWebDatabase.cpp:
158         (WebCore::DOMWindowWebDatabase::openDatabase):
159         * Modules/webdatabase/DOMWindowWebDatabase.h:
160         * bindings/scripts/CodeGeneratorJS.pm:
161         (GenerateImplementation):
162         (GenerateParametersCheck):
163         * testing/Internals.cpp:
164         (WebCore::Internals::enableMockSpeechSynthesizer):
165
166 2015-11-30  Katlyn Graff  <kgraff@apple.com>
167
168         Rename ActiveDOMObject/DOMWindow PageCacheSuspension code to support more reasons for suspension
169         https://bugs.webkit.org/show_bug.cgi?id=151677
170
171         Reviewed by Ryosuke Niwa.
172
173         Simply a refactoring patch, so no new tests.
174
175         * Modules/encryptedmedia/MediaKeySession.cpp:
176         (WebCore::MediaKeySession::canSuspendForDocumentSuspension):
177         (WebCore::MediaKeySession::canSuspendForPageCache): Deleted.
178         * Modules/encryptedmedia/MediaKeySession.h:
179         * Modules/geolocation/Geolocation.cpp:
180         (WebCore::Geolocation::canSuspendForDocumentSuspension):
181         (WebCore::Geolocation::canSuspendForPageCache): Deleted.
182         * Modules/geolocation/Geolocation.h:
183         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
184         (WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension):
185         (WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension):
186         (WebCore::DOMWindowIndexedDatabase::disconnectFrameForPageCache): Deleted.
187         (WebCore::DOMWindowIndexedDatabase::reconnectFrameFromPageCache): Deleted.
188         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
189         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
190         (WebCore::IDBClient::IDBDatabase::canSuspendForDocumentSuspension):
191         (WebCore::IDBClient::IDBDatabase::canSuspendForPageCache): Deleted.
192         * Modules/indexeddb/client/IDBDatabaseImpl.h:
193         * Modules/indexeddb/client/IDBRequestImpl.cpp:
194         (WebCore::IDBClient::IDBRequest::canSuspendForDocumentSuspension):
195         (WebCore::IDBClient::IDBRequest::canSuspendForPageCache): Deleted.
196         * Modules/indexeddb/client/IDBRequestImpl.h:
197         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
198         (WebCore::IDBClient::IDBTransaction::canSuspendForDocumentSuspension):
199         (WebCore::IDBClient::IDBTransaction::canSuspendForPageCache): Deleted.
200         * Modules/indexeddb/client/IDBTransactionImpl.h:
201         * Modules/indexeddb/legacy/LegacyDatabase.cpp:
202         (WebCore::LegacyDatabase::canSuspendForDocumentSuspension):
203         (WebCore::LegacyDatabase::canSuspendForPageCache): Deleted.
204         * Modules/indexeddb/legacy/LegacyDatabase.h:
205         * Modules/indexeddb/legacy/LegacyRequest.cpp:
206         (WebCore::LegacyRequest::canSuspendForDocumentSuspension):
207         (WebCore::LegacyRequest::canSuspendForPageCache): Deleted.
208         * Modules/indexeddb/legacy/LegacyRequest.h:
209         * Modules/indexeddb/legacy/LegacyTransaction.cpp:
210         (WebCore::LegacyTransaction::canSuspendForDocumentSuspension):
211         (WebCore::LegacyTransaction::canSuspendForPageCache): Deleted.
212         * Modules/indexeddb/legacy/LegacyTransaction.h:
213         * Modules/mediasource/MediaSource.cpp:
214         (WebCore::MediaSource::canSuspendForDocumentSuspension):
215         (WebCore::MediaSource::canSuspendForPageCache): Deleted.
216         * Modules/mediasource/MediaSource.h:
217         * Modules/mediasource/SourceBuffer.cpp:
218         (WebCore::SourceBuffer::canSuspendForDocumentSuspension):
219         (WebCore::SourceBuffer::canSuspendForPageCache): Deleted.
220         * Modules/mediasource/SourceBuffer.h:
221         * Modules/mediastream/MediaStreamTrack.cpp:
222         (WebCore::MediaStreamTrack::canSuspendForDocumentSuspension):
223         (WebCore::MediaStreamTrack::canSuspendForPageCache): Deleted.
224         * Modules/mediastream/MediaStreamTrack.h:
225         * Modules/mediastream/RTCDTMFSender.cpp:
226         (WebCore::RTCDTMFSender::canSuspendForDocumentSuspension):
227         (WebCore::RTCDTMFSender::canSuspendForPageCache): Deleted.
228         * Modules/mediastream/RTCDTMFSender.h:
229         * Modules/mediastream/RTCPeerConnection.cpp:
230         (WebCore::RTCPeerConnection::canSuspendForDocumentSuspension):
231         (WebCore::RTCPeerConnection::canSuspendForPageCache): Deleted.
232         * Modules/mediastream/RTCPeerConnection.h:
233         * Modules/notifications/DOMWindowNotifications.cpp:
234         (WebCore::DOMWindowNotifications::disconnectFrameForDocumentSuspension):
235         (WebCore::DOMWindowNotifications::reconnectFrameFromDocumentSuspension):
236         (WebCore::DOMWindowNotifications::disconnectFrameForPageCache): Deleted.
237         (WebCore::DOMWindowNotifications::reconnectFrameFromPageCache): Deleted.
238         * Modules/notifications/DOMWindowNotifications.h:
239         * Modules/notifications/Notification.cpp:
240         (WebCore::Notification::canSuspendForDocumentSuspension):
241         (WebCore::Notification::canSuspendForPageCache): Deleted.
242         * Modules/notifications/Notification.h:
243         * Modules/notifications/NotificationCenter.cpp:
244         (WebCore::NotificationCenter::canSuspendForDocumentSuspension):
245         (WebCore::NotificationCenter::canSuspendForPageCache): Deleted.
246         * Modules/notifications/NotificationCenter.h:
247         * Modules/webaudio/AudioContext.cpp:
248         (WebCore::AudioContext::canSuspendForDocumentSuspension):
249         (WebCore::AudioContext::canSuspendForPageCache): Deleted.
250         * Modules/webaudio/AudioContext.h:
251         * Modules/webdatabase/DatabaseContext.cpp:
252         (WebCore::DatabaseContext::canSuspendForDocumentSuspension):
253         (WebCore::DatabaseContext::canSuspendForPageCache): Deleted.
254         * Modules/webdatabase/DatabaseContext.h:
255         * Modules/websockets/WebSocket.cpp:
256         (WebCore::WebSocket::canSuspendForDocumentSuspension):
257         (WebCore::WebSocket::canSuspendForPageCache): Deleted.
258         * Modules/websockets/WebSocket.h:
259         * css/FontLoader.cpp:
260         (WebCore::FontLoader::canSuspendForDocumentSuspension):
261         (WebCore::FontLoader::canSuspendForPageCache): Deleted.
262         * css/FontLoader.h:
263         * dom/ActiveDOMObject.cpp:
264         (WebCore::ActiveDOMObject::canSuspendForDocumentSuspension):
265         (WebCore::ActiveDOMObject::canSuspendForPageCache): Deleted.
266         * dom/ActiveDOMObject.h:
267         * dom/Document.cpp:
268         (WebCore::Document::~Document):
269         * dom/ScriptExecutionContext.cpp:
270         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForTabSuspension):
271         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache): Deleted.
272         * dom/ScriptExecutionContext.h:
273         * fileapi/FileReader.cpp:
274         (WebCore::FileReader::canSuspendForDocumentSuspension):
275         (WebCore::FileReader::canSuspendForPageCache): Deleted.
276         * fileapi/FileReader.h:
277         * history/CachedFrame.cpp:
278         (WebCore::CachedFrame::CachedFrame):
279         * history/PageCache.cpp:
280         (WebCore::canCacheFrame):
281         * html/HTMLMarqueeElement.cpp:
282         (WebCore::HTMLMarqueeElement::canSuspendForDocumentSuspension):
283         (WebCore::HTMLMarqueeElement::canSuspendForPageCache): Deleted.
284         * html/HTMLMarqueeElement.h:
285         * html/HTMLMediaElement.cpp:
286         (WebCore::HTMLMediaElement::canSuspendForDocumentSuspension):
287         (WebCore::HTMLMediaElement::canSuspendForPageCache): Deleted.
288         * html/HTMLMediaElement.h:
289         * html/HTMLSourceElement.cpp:
290         (WebCore::HTMLSourceElement::canSuspendForDocumentSuspension):
291         (WebCore::HTMLSourceElement::canSuspendForPageCache): Deleted.
292         * html/HTMLSourceElement.h:
293         * html/PublicURLManager.cpp:
294         (WebCore::PublicURLManager::canSuspendForDocumentSuspension):
295         (WebCore::PublicURLManager::canSuspendForPageCache): Deleted.
296         * html/PublicURLManager.h:
297         * html/canvas/WebGLRenderingContextBase.cpp:
298         (WebCore::WebGLRenderingContextBase::canSuspendForDocumentSuspension):
299         (WebCore::WebGLRenderingContextBase::canSuspendForPageCache): Deleted.
300         * html/canvas/WebGLRenderingContextBase.h:
301         * loader/FrameLoader.cpp:
302         (WebCore::FrameLoader::clear):
303         (WebCore::FrameLoader::open):
304         * loader/appcache/DOMApplicationCache.cpp:
305         (WebCore::DOMApplicationCache::disconnectFrameForDocumentSuspension):
306         (WebCore::DOMApplicationCache::reconnectFrameFromDocumentSuspension):
307         (WebCore::DOMApplicationCache::disconnectFrameForPageCache): Deleted.
308         (WebCore::DOMApplicationCache::reconnectFrameFromPageCache): Deleted.
309         * loader/appcache/DOMApplicationCache.h:
310         * page/DOMWindow.cpp:
311         (WebCore::DOMWindow::DOMWindow):
312         (WebCore::DOMWindow::~DOMWindow):
313         (WebCore::DOMWindow::resetUnlessSuspendedForDocumentSuspension):
314         (WebCore::DOMWindow::suspendForDocumentSuspension):
315         (WebCore::DOMWindow::resumeFromDocumentSuspension):
316         (WebCore::DOMWindow::disconnectDOMWindowProperties):
317         (WebCore::DOMWindow::reconnectDOMWindowProperties):
318         (WebCore::DOMWindow::resetUnlessSuspendedForPageCache): Deleted.
319         (WebCore::DOMWindow::suspendForPageCache): Deleted.
320         (WebCore::DOMWindow::resumeFromPageCache): Deleted.
321         * page/DOMWindow.h:
322         * page/DOMWindowExtension.cpp:
323         (WebCore::DOMWindowExtension::disconnectFrameForDocumentSuspension):
324         (WebCore::DOMWindowExtension::reconnectFrameFromDocumentSuspension):
325         (WebCore::DOMWindowExtension::disconnectFrameForPageCache): Deleted.
326         (WebCore::DOMWindowExtension::reconnectFrameFromPageCache): Deleted.
327         * page/DOMWindowExtension.h:
328         * page/DOMWindowProperty.cpp:
329         (WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension):
330         (WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension):
331         (WebCore::DOMWindowProperty::disconnectFrameForPageCache): Deleted.
332         (WebCore::DOMWindowProperty::reconnectFrameFromPageCache): Deleted.
333         * page/DOMWindowProperty.h:
334         * page/EventSource.cpp:
335         (WebCore::EventSource::canSuspendForDocumentSuspension):
336         (WebCore::EventSource::canSuspendForPageCache): Deleted.
337         * page/EventSource.h:
338         * page/SuspendableTimer.cpp:
339         (WebCore::SuspendableTimer::canSuspendForDocumentSuspension):
340         (WebCore::SuspendableTimer::canSuspendForPageCache): Deleted.
341         * page/SuspendableTimer.h:
342         * workers/Worker.cpp:
343         (WebCore::Worker::canSuspendForDocumentSuspension):
344         (WebCore::Worker::canSuspendForPageCache): Deleted.
345         * workers/Worker.h:
346         * xml/XMLHttpRequest.cpp:
347         (WebCore::XMLHttpRequest::canSuspendForDocumentSuspension):
348         (WebCore::XMLHttpRequest::canSuspendForPageCache): Deleted.
349         * xml/XMLHttpRequest.h:
350
351 2015-11-30  Brady Eidson  <beidson@apple.com>
352
353         Modern IDB: "prevunique" cursors should point at the lowest primary key that matches, not the highest.
354         https://bugs.webkit.org/show_bug.cgi?id=151675.
355
356         Reviewed by Darin Adler.
357
358         No new tests (Covered by at least one failing test that now passes, and updates to previously incorrect tests).
359
360         * Modules/indexeddb/server/IndexValueEntry.cpp:
361         (WebCore::IDBServer::IndexValueEntry::reverseBegin): If CursorDuplicity is NoDuplicates, start at the lowest
362           entry instead of the highest.
363         (WebCore::IDBServer::IndexValueEntry::reverseFind):
364         * Modules/indexeddb/server/IndexValueEntry.h:
365         
366         * Modules/indexeddb/server/IndexValueStore.cpp:
367         (WebCore::IDBServer::IndexValueStore::reverseFind):
368         (WebCore::IDBServer::IndexValueStore::Iterator::Iterator):
369         (WebCore::IDBServer::IndexValueStore::Iterator::nextIndexEntry):
370         * Modules/indexeddb/server/IndexValueStore.h:
371         
372         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
373         (WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor):
374         (WebCore::IDBServer::MemoryIndexCursor::iterate):
375         
376         * Modules/indexeddb/shared/IDBCursorInfo.cpp:
377         (WebCore::IDBCursorInfo::duplicity):
378         (WebCore::IDBCursorInfo::isDirectionNoDuplicate): Deleted.
379         * Modules/indexeddb/shared/IDBCursorInfo.h:
380
381 2015-11-30  Jiewen Tan  <jiewen_tan@apple.com>
382
383         Null dereference loading Blink layout test http/tests/misc/detach-during-notifyDone.html
384         https://bugs.webkit.org/show_bug.cgi?id=149309
385         <rdar://problem/22748363>
386
387         Reviewed by Brent Fulgham.
388
389         A weird order of event execution introduced by the test case will kill the webpage in a
390         subframe of the page while executing its |frame.loader().checkLoadCompleteForThisFrame()|.
391         Therefore, any frames comes after the failing subframe will have no page. Check it before
392         calling to those frames' |frame.loader().checkLoadCompleteForThisFrame()|, otherwise the
393         assertion in |frame.loader().checkLoadCompleteForThisFrame()| will fail.
394
395         Test: http/tests/misc/detach-during-notifyDone.html
396
397         * loader/FrameLoader.cpp:
398         (WebCore::FrameLoader::checkLoadComplete):
399
400 2015-11-30  Commit Queue  <commit-queue@webkit.org>
401
402         Unreviewed, rolling out r192819.
403         https://bugs.webkit.org/show_bug.cgi?id=151681
404
405         This change broke existing layout tests on Windows (Requested
406         by ryanhaddad on #webkit).
407
408         Reverted changeset:
409
410         "Unify font-variant-* with font-variant shorthand"
411         https://bugs.webkit.org/show_bug.cgi?id=149773
412         http://trac.webkit.org/changeset/192819
413
414 2015-11-30  Darin Adler  <darin@apple.com>
415
416         Use Optional instead of isNull out argument for nullable getters
417         https://bugs.webkit.org/show_bug.cgi?id=151676
418
419         Reviewed by Anders Carlsson.
420
421         No behavior change, just cleaner code.
422
423         * Modules/geolocation/Coordinates.cpp:
424         (WebCore::Coordinates::altitude): Return an Optional.
425         (WebCore::Coordinates::altitudeAccuracy): Ditto.
426         (WebCore::Coordinates::heading): Ditto.
427         (WebCore::Coordinates::speed): Ditto.
428         * Modules/geolocation/Coordinates.h: Ditto.
429
430         * Modules/indexeddb/IDBVersionChangeEvent.cpp:
431         (WebCore::IDBVersionChangeEvent::create): Added. The code before was calling
432         through to Event::create, which is clearly not what was wanted. Also removed
433         unneeded explicit destructor.
434         * Modules/indexeddb/IDBVersionChangeEvent.h: Changed return type of newVersion
435         to Optional and updated for above change.
436
437         * Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp:
438         (WebCore::IDBClient::IDBVersionChangeEvent::newVersion): Changed to return
439         an Optional.
440         * Modules/indexeddb/client/IDBVersionChangeEventImpl.h: Removed unused
441         default argument values; the event type one, at least, was clearly incorrect.
442         Made more things private, got rid of unneeded destructor, marked class final
443         instead of marking all functions final.
444
445         * Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp:
446         (WebCore::LegacyVersionChangeEvent::newVersion): Same as above.
447         * Modules/indexeddb/legacy/LegacyVersionChangeEvent.h: Ditto.
448
449         * Modules/mediastream/MediaTrackConstraints.cpp:
450         (WebCore::MediaTrackConstraints::optional): Removed bogus bool value. If we
451         come back to finish later we will have to implement optional return values
452         for arrays in the JavaScript bindings generator, which should be straightforward.
453         * Modules/mediastream/MediaTrackConstraints.h: Ditto.
454
455         * bindings/js/JSDOMBinding.h:
456         (WebCore::toNullableJSNumber): Added. This function template is used for
457         return values that are nullable numbers.
458
459         * bindings/scripts/CodeGeneratorGObject.pm:
460         (GenerateFunction): Replaced some existing bogus code to handle nullables with
461         new equally-bogus code that should be no worse and will compile.
462
463         * bindings/scripts/CodeGeneratorJS.pm:
464         (GenerateImplementation): Removed old support for nullables.
465         (NativeToJSValue): Added new support for nullable numbers.
466
467         * bindings/scripts/CodeGeneratorObjC.pm:
468         (GenerateImplementation): Removed support for nullables. We almost certainly
469         won't need it for Objective-C bindings.
470
471         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated.
472         * bindings/scripts/test/JS/JSTestObj.cpp: Updated.
473         * bindings/scripts/test/ObjC/DOMTestObj.mm: Updated.
474
475 2015-11-30  Wenson Hsieh  <wenson_hsieh@apple.com>
476
477         Split platform-independent logic in AVCaptureDeviceManager out into a new class
478         https://bugs.webkit.org/show_bug.cgi?id=151388
479         <rdar://problem/23593980>
480
481         Reviewed by Eric Carlson.
482
483         To prepare for creating a MockCaptureDeviceManager to be able to test
484         MediaDevices.getUserMedia, we create a platform-independent capture device manager
485         which all platforms should extend and add platform-specific logic to.
486
487         The methods CaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints and
488         CaptureDeviceManager::captureDeviceList should be overridden by each platform
489         CaptureDeviceManager to respectively create a RealtimeMediaSource and return a list of
490         capture devices. createMediaSourceForCaptureDeviceWithConstraints attempts to create
491         a media source for a given device with some constraints; if the contraints cannot be
492         satisfied, this returns null.
493
494         The refactored capture device manager also introduces the notion of a platform-
495         independent capture session which may be extended by platform device managers for
496         determining whether a given constraint name, value and media type is valid.
497
498         A platform-independent CaptureDeviceInfo now represents either the video or audio
499         component of a capture device, but not both at once. This means a capture device that
500         supports both video and audio will emit two separate capture devices.
501
502         No new tests, since there should be no behavior change.
503
504         * Modules/mediastream/CaptureDeviceInfo.h: Added.
505         (WebCore::CaptureSessionInfo::~CaptureSessionInfo):
506         (WebCore::CaptureSessionInfo::supportsVideoSize):
507         (WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions):
508         * Modules/mediastream/CaptureDeviceManager.cpp: Added.
509         (CaptureDeviceManager::~CaptureDeviceManager):
510         (CaptureDeviceManager::getSourcesInfo):
511         (CaptureDeviceManager::captureDeviceFromDeviceID):
512         (CaptureDeviceManager::verifyConstraintsForMediaType):
513         (CaptureDeviceManager::bestSourcesForTypeAndConstraints):
514         (CaptureDeviceManager::sourceWithUID):
515         (CaptureDeviceManager::bestDeviceForFacingMode):
516         (facingModeFromString):
517         (CaptureDeviceManager::sessionSupportsConstraint):
518         (CaptureDeviceManager::isSupportedFrameRate):
519         * Modules/mediastream/CaptureDeviceManager.h: Added.
520         (WebCore::CaptureDeviceManager::refreshCaptureDeviceList):
521         (WebCore::CaptureDeviceManager::defaultCaptureSession):
522         * WebCore.xcodeproj/project.pbxproj:
523         * platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: Added.
524         (WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint):
525         (WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName):
526         (WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint):
527         * platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
528         * platform/mediastream/mac/AVCaptureDeviceManager.h:
529         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
530         (WebCore::AVCaptureSessionInfo::AVCaptureSessionInfo):
531         (WebCore::AVCaptureSessionInfo::supportsVideoSize):
532         (WebCore::AVCaptureSessionInfo::bestSessionPresetForVideoDimensions):
533         (WebCore::AVCaptureDeviceManager::captureDeviceList):
534         (WebCore::shouldConsiderDeviceInDeviceList):
535         (WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList):
536         (WebCore::AVCaptureDeviceManager::AVCaptureDeviceManager):
537         (WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):
538         (WebCore::AVCaptureDeviceManager::sourceWithUID):
539         (WebCore::AVCaptureDeviceManager::getSourcesInfo):
540         (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
541         (WebCore::AVCaptureDeviceManager::defaultCaptureSession):
542         (WebCore::AVCaptureDeviceManager::sessionSupportsConstraint):
543         (WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints):
544         (WebCore::AVCaptureDeviceManager::deviceDisconnected):
545         (WebCore::AVCaptureDeviceManager::isSupportedFrameRate):
546         (WebCore::CaptureDevice:::m_enabled): Deleted.
547         (WebCore::captureDeviceList): Deleted.
548         (WebCore::captureDeviceFromDeviceID): Deleted.
549         (WebCore::refreshCaptureDeviceList): Deleted.
550         (WebCore::AVCaptureDeviceManager::bestSessionPresetForVideoSize): Deleted.
551         (WebCore::AVCaptureDeviceManager::deviceSupportsFacingMode): Deleted.
552         (WebCore::AVCaptureDeviceManager::bestDeviceForFacingMode): Deleted.
553         (WebCore::AVCaptureDeviceManager::isValidConstraint): Deleted.
554         (WebCore::AVCaptureDeviceManager::validConstraintNames): Deleted.
555         (WebCore::AVCaptureDeviceManager::validFacingModes): Deleted.
556         * platform/mediastream/mac/AVVideoCaptureSource.mm:
557         (WebCore::AVVideoCaptureSource::applyConstraints):
558         * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
559         (WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):
560         (WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
561
562 2015-11-30  Brady Eidson  <beidson@apple.com>
563
564         Modern IDB: Set the correct source on the IDBRequest for cursor updates
565         https://bugs.webkit.org/show_bug.cgi?id=151665
566
567         Reviewed by Andy Estes.
568
569         No new tests (At least one existing failing test now passes).
570
571         * Modules/indexeddb/client/IDBCursorImpl.cpp:
572         (WebCore::IDBClient::IDBCursor::update):
573         
574         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
575         (WebCore::IDBClient::IDBObjectStore::putForCursorUpdate):
576         (WebCore::IDBClient::IDBObjectStore::putOrAdd):
577         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
578         
579         * Modules/indexeddb/client/IDBRequestImpl.cpp:
580         (WebCore::IDBClient::IDBRequest::IDBRequest):
581         (WebCore::IDBClient::IDBRequest::setSource):
582         * Modules/indexeddb/client/IDBRequestImpl.h:
583
584 2015-11-30  Tim Horton  <timothy_horton@apple.com>
585
586         Get rid of the legacy TextIndicatorWindow style
587         https://bugs.webkit.org/show_bug.cgi?id=151674
588
589         Reviewed by Anders Carlsson.
590
591         * page/TextIndicator.h:
592         * page/mac/TextIndicatorWindow.mm:
593         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]): Deleted.
594
595 2015-11-30  Brady Eidson  <beidson@apple.com>
596
597         Modern IDB: Correct handling of cursors finishing iteration.
598         https://bugs.webkit.org/show_bug.cgi?id=151664
599
600         Reviewed by Andy Estes.
601
602         No new tests (At least one previously failing test now passes).
603
604         * Modules/indexeddb/client/IDBCursorImpl.cpp:
605         (WebCore::IDBClient::IDBCursor::setGetResult):
606         
607         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
608         (WebCore::IDBClient::IDBObjectStore::putOrAdd):
609
610 2015-11-30  Myles C. Maxfield  <mmaxfield@apple.com>
611
612         Unify font-variant-* with font-variant shorthand
613         https://bugs.webkit.org/show_bug.cgi?id=149773
614
615         Reviewed by Darin Adler.
616
617         This patch makes font-variant a shorthand for the following properties:
618         font-variant-ligatures
619         font-variant-position
620         font-variant-caps
621         font-variant-numeric
622         font-variant-alternates
623         font-variant-east-asian
624
625         This is consistent with the CSS Fonts Level 3 spec.
626
627         This patch also migrates the "font" longhand to use the font-variant-caps
628         property.
629
630         Test: fast/text/font-variant-shorthand.html
631
632         * css/CSSComputedStyleDeclaration.cpp:
633         (WebCore::fontVariantEastAsianPropertyValue): Rename FontVariantEastAsian values.
634         (WebCore::fontVariantFromStyle): We must consult with the longhand properties to determine
635         font-variant computed style.
636         (WebCore::ComputedStyleExtractor::propertyValue): Don't put any-old font-variant-caps inside
637         the font shorthand.
638         * css/CSSFontSelector.cpp:
639         (WebCore::CSSFontSelector::addFontFaceRule): Guard against incorrect downcasts (due to inherit
640         of the new shorthand property).
641         * css/CSSParser.cpp: Parse font-variant as a shorthand. Also implement its "normal" and "none" values.
642         (WebCore::CSSParser::parseValue):
643         (WebCore::CSSParser::parseFont):
644         (WebCore::CSSParser::parseSystemFont):
645         (WebCore::CSSParser::parseFontVariantLigatures):
646         (WebCore::CSSParser::parseFontVariantNumeric):
647         (WebCore::CSSParser::parseFontVariantEastAsian):
648         (WebCore::CSSParser::parseFontVariant):
649         (WebCore::isValidKeywordPropertyAndValue): Deleted.
650         (WebCore::isKeywordPropertyID): Deleted.
651         * css/CSSParser.h:
652         * css/CSSPropertyNames.in: Turn font-variant into a shorthand property.
653         * css/FontVariantBuilder.h: Guard against incorrect downcasts. Also update for renamed
654         FontVariantEastAsian type.
655         (WebCore::applyValueFontVariantLigatures):
656         (WebCore::applyValueFontVariantNumeric):
657         (WebCore::applyValueFontVariantEastAsian):
658         * css/StyleProperties.cpp: Update to use the more specific property.
659         (WebCore::StyleProperties::appendFontLonghandValueIfExplicit):
660         (WebCore::StyleProperties::fontValue):
661         (WebCore::StyleProperties::asText):
662         * css/StyleResolver.cpp: Ditto.
663         (WebCore::StyleResolver::isValidCueStyleProperty):
664         * editing/EditingStyle.cpp: Ditto.
665         * editing/cocoa/HTMLConverter.mm: Ditto.
666         (HTMLConverterCaches::propertyValueForNode):
667         (HTMLConverter::computedAttributesForElement):
668         * editing/ios/EditorIOS.mm: Ditto.
669         (WebCore::Editor::removeUnchangeableStyles):
670         * html/canvas/CanvasRenderingContext2D.cpp: Ditto.
671         (WebCore::CanvasRenderingContext2D::font):
672         (WebCore::CanvasRenderingContext2D::setFont):
673         * platform/graphics/FontCache.h: Removing duplicate cache key value.
674         (WebCore::FontDescriptionKey::makeFlagsKey):
675         * platform/graphics/FontCascade.cpp: Migrate to the new font-variant-caps from the old member variable.
676         (WebCore::FontCascade::glyphDataForCharacter):
677         * platform/graphics/FontCascade.h: Ditto.
678         (WebCore::FontCascade::isSmallCaps):
679         * platform/graphics/FontDescription.cpp: Ditto.
680         (WebCore::FontDescription::FontDescription):
681         * platform/graphics/FontDescription.h: Ditto.
682         (WebCore::FontCascadeDescription::equalForTextAutoSizing):
683         (WebCore::FontDescription::smallCaps): Deleted.
684         (WebCore::FontDescription::setSmallCaps): Deleted.
685         (WebCore::FontDescription::setIsSmallCaps): Deleted.
686         (WebCore::FontDescription::operator==): Deleted.
687         * platform/graphics/cocoa/FontCacheCoreText.cpp: Rename FontVariantEastAsianWidth.
688         (WebCore::computeFeatureSettingsFromVariants):
689         * platform/text/TextFlags.h: Ditto.
690         (WebCore::FontVariantSettings::operator==):
691         * rendering/RenderText.cpp: Migrage to the new font-variant-caps from the old member variable.
692         (WebCore::RenderText::widthFromCache):
693
694 2015-11-30  Brady Eidson  <beidson@apple.com>
695
696         Modern IDB: After versionchange transactions abort, fire onerror on the original IDBOpenDBRequest.
697         https://bugs.webkit.org/show_bug.cgi?id=151648
698
699         Reviewed by Andy Estes.
700
701         No new tests. Covered by at least one existing failing test which now passes, and many
702         other tests updated to fix their incorrect behavior.
703
704         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
705         (WebCore::IDBClient::IDBDatabase::transaction):
706         (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
707         (WebCore::IDBClient::IDBDatabase::didAbortTransaction):
708         
709         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
710         (WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeAbort):
711         * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
712         
713         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
714         (WebCore::IDBClient::IDBTransaction::notifyDidAbort):
715         (WebCore::IDBClient::IDBTransaction::didAbort):
716         (WebCore::IDBClient::IDBTransaction::didCommit):
717         * Modules/indexeddb/client/IDBTransactionImpl.h:
718
719 2015-11-30  Chris Dumez  <cdumez@apple.com>
720
721         location.origin is undefined in a web worker
722         https://bugs.webkit.org/show_bug.cgi?id=151614
723
724         Reviewed by Darin Adler.
725
726         Expose location.origin to web workers, as per:
727         https://html.spec.whatwg.org/multipage/workers.html#workerlocation
728
729         This behavior is consistent with the behavior of Firefox and Chrome.
730
731         Test: fast/workers/worker-location.html
732
733         * workers/WorkerLocation.cpp:
734         (WebCore::WorkerLocation::origin):
735         * workers/WorkerLocation.h:
736         * workers/WorkerLocation.idl:
737
738 2015-11-30  Brady Eidson  <beidson@apple.com>
739
740         Modern IDB: Support updating cursor values when the object store uses inline keys.
741         https://bugs.webkit.org/show_bug.cgi?id=151647
742
743         Reviewed by Andy Estes.
744
745         No new tests (At least two previously failing tests now pass and are unskipped).
746
747         * Modules/indexeddb/client/IDBCursorImpl.cpp:
748         (WebCore::IDBClient::IDBCursor::update): Use putForCursorUpdate() instead of put()
749         
750         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
751         (WebCore::IDBClient::IDBObjectStore::add):
752         (WebCore::IDBClient::IDBObjectStore::put):
753         (WebCore::IDBClient::IDBObjectStore::putForCursorUpdate): Use the flag to skip the inline-key check.
754         (WebCore::IDBClient::IDBObjectStore::putOrAdd): Add a flag to skip the inline-key check.
755         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
756
757 2015-11-30  Brady Eidson  <beidson@apple.com>
758
759         Modern IDB: Resolve flaky GC-vs-wrapper issue with IDBOpenDBRequest.
760         https://bugs.webkit.org/show_bug.cgi?id=151645
761
762         Reviewed by Andy Estes.
763
764         No new tests (Resolves flakiness with hundreds of existing IDB tests).
765
766         Do to improper management of the m_hasPendingActivity flag on IDBRequestImpl,
767         the request wrapper for an IDBOpenDBRequest might be garbage collected in between the
768         onUpgradeNeeded event and onSuccess event.
769         
770         This manifested as flakiness in many tests, some more than others.
771         
772         I tried to write a targeted 100% reproducible case manually forcing GC, but could not get
773         the timing right.
774         
775         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
776         (WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
777         * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
778         
779         * Modules/indexeddb/client/IDBRequestImpl.cpp:
780         (WebCore::IDBClient::IDBRequest::dispatchEvent):
781         (WebCore::IDBClient::IDBRequest::willIterateCursor):
782         * Modules/indexeddb/client/IDBRequestImpl.h:
783         (WebCore::IDBClient::IDBRequest::isOpenDBRequest):
784
785 2015-11-30  Per Arne Vollan  <peavo@outlook.com>
786
787         [WinCairo][MediaFoundation] Implement seek.
788         https://bugs.webkit.org/show_bug.cgi?id=151609
789
790         Reviewed by Alex Christensen.
791
792         The methods maxTimeSeekable() and buffered() needs to be implemented.
793
794         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
795         (WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
796         (WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
797         (WebCore::MediaPlayerPrivateMediaFoundation::readyState):
798         (WebCore::MediaPlayerPrivateMediaFoundation::maxTimeSeekable):
799         (WebCore::MediaPlayerPrivateMediaFoundation::buffered):
800         (WebCore::MediaPlayerPrivateMediaFoundation::didLoadingProgress):
801         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::currentTime):
802         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isActive):
803         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
804         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::maxTimeLoaded):
805
806 2015-11-30  Brady Eidson  <beidson@apple.com>
807
808         Modern IDB: openCursor() fix resulting in at least 4 more passing tests.
809         https://bugs.webkit.org/show_bug.cgi?id=151630
810
811         Reviewed by Andy Estes.
812
813         No new tests (At least 4 failing tests now pass, and 9 other incorrect tests updated).
814
815         * Modules/indexeddb/IDBGetResult.cpp:
816         (WebCore::IDBGetResult::isolatedCopy):
817         * Modules/indexeddb/IDBGetResult.h:
818         (WebCore::IDBGetResult::IDBGetResult):
819         (WebCore::IDBGetResult::isDefined):
820
821         * Modules/indexeddb/client/IDBRequestImpl.cpp:
822         (WebCore::IDBClient::IDBRequest::didOpenOrIterateCursor): If the IDBGetResult is undefined,
823           do not expose the cursor as the result property of the IDBRequest.
824
825 2015-11-30  Brady Eidson  <beidson@apple.com>
826
827         Modern IDB: Support keyPath injection into object store records.
828         https://bugs.webkit.org/show_bug.cgi?id=151640
829
830         Reviewed by Andy Estes.
831
832         No new tests (At least one existing failure now passes and is unskipped,
833         while many other existing failures are now closer to passing).
834
835         * Modules/indexeddb/server/MemoryObjectStore.cpp:
836         (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Use the new UniqueIDBDatabase VM/ExecState.
837         (WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto
838         (WebCore::IDBServer::indexVM): Deleted.
839         (WebCore::IDBServer::indexGlobalExec): Deleted.
840         
841         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
842         (WebCore::IDBServer::UniqueIDBDatabase::databaseThreadVM):
843         (WebCore::IDBServer::UniqueIDBDatabase::databaseThreadExecState):
844         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): If appropriate, inject the key that will be used into
845           the value before storing the record.
846         * Modules/indexeddb/server/UniqueIDBDatabase.h:
847
848         Add modern JSValue/ExecState& version of some binding utilities, for use today and in preparation of getting 
849         rid of the DOMRequestState and Deprecated::ScriptValue versions later:
850         * bindings/js/IDBBindingUtilities.cpp:
851         (WebCore::idbKeyToJSValue):
852         (WebCore::injectIDBKeyIntoScriptValue):
853         (WebCore::deserializeIDBValueData):
854         (WebCore::deserializeIDBValueDataToJSValue):
855         * bindings/js/IDBBindingUtilities.h:
856
857 2015-11-25  Andy Estes  <aestes@apple.com>
858
859         [Content Filtering] Avoid creating a ContentFilter when loading the empty document
860         https://bugs.webkit.org/show_bug.cgi?id=151615
861
862         Reviewed by Daniel Bates.
863
864         It's expensive to create the first ContentFilter since two frameworks must be soft-linked. There's no reason to
865         pay this cost if we're just loading the empty document.
866
867         No new tests. It's not possible to write a test that would fail without this change since ContentFilter is not
868         notified of empty document loads.
869
870         * loader/DocumentLoader.cpp:
871         (WebCore::DocumentLoader::startLoadingMainResource): Don't initialize m_contentFilter until we know we aren't
872         loading the empty document.
873         (WebCore::DocumentLoader::DocumentLoader):
874
875 2015-11-29  Antoine Quint  <graouts@apple.com>
876
877         Browser does not fall back to SVG attribute value when CSS style value is invalid or not supported
878         https://bugs.webkit.org/show_bug.cgi?id=147932
879
880         Reviewed by Dean Jackson.
881
882         Instead of returning an SVGPaint object of type SVG_PAINTTYPE_UNKNOWN when we encounter an SVG paint
883         value that cannot be parsed, we now return `nullptr` which will cause that value to be ignored and
884         let another paint value in the cascade be used instead. This is the same approach used for SVGColor.
885         Since we're removing the only call site for `SVGPaint::createUnknown()`, we remove that function entirely.
886
887         Tests: svg/css/invalid-color-cascade.svg
888                svg/css/invalid-paint-cascade.svg
889
890         * css/SVGCSSParser.cpp:
891         (WebCore::CSSParser::parseSVGPaint):
892         * svg/SVGPaint.h:
893         (WebCore::SVGPaint::createUnknown): Deleted.
894
895 2015-11-29  Simon Fraser  <simon.fraser@apple.com>
896
897         Use SVGTransform::SVGTransformType instead of an unsigned short
898         https://bugs.webkit.org/show_bug.cgi?id=151637
899
900         Reviewed by Brady Eidson.
901
902         Make 'type' more strongly typed.
903
904         * svg/SVGTransformable.cpp:
905         (WebCore::SVGTransformable::parseTransformValue):
906         (WebCore::parseAndSkipType):
907         (WebCore::SVGTransformable::parseTransformType):
908         (WebCore::SVGTransformable::parseTransformAttribute):
909         * svg/SVGTransformable.h:
910
911 2015-11-27  Brady Eidson  <beidson@apple.com>
912
913         Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong.
914         https://bugs.webkit.org/show_bug.cgi?id=151627
915
916         Reviewed by Alexey Proskuryakov.
917
918         No new tests (No change in behavior).
919
920         * CMakeLists.txt:
921         * WebCore.xcodeproj/project.pbxproj:
922
923         * Modules/indexeddb/IDBGetResult.cpp: Added.
924         (WebCore::IDBGetResult::dataFromBuffer):
925         (WebCore::IDBGetResult::isolatedCopy):
926         * Modules/indexeddb/IDBGetResult.h:
927         (WebCore::IDBGetResult::IDBGetResult):
928         (WebCore::IDBGetResult::valueBuffer):
929         (WebCore::IDBGetResult::keyData):
930         (WebCore::IDBGetResult::primaryKeyData):
931         (WebCore::IDBGetResult::keyPath):
932         (WebCore::IDBGetResult::setValueBuffer):
933         (WebCore::IDBGetResult::setKeyData):
934         (WebCore::IDBGetResult::setPrimaryKeyData):
935         (WebCore::IDBGetResult::setKeyPath):
936         (WebCore::IDBGetResult::dataFromBuffer): Deleted.
937         (WebCore::IDBGetResult::isolatedCopy): Deleted.
938
939         * Modules/indexeddb/client/IDBCursorImpl.cpp:
940         (WebCore::IDBClient::IDBCursor::setGetResult):
941         * Modules/indexeddb/client/IDBCursorImpl.h:
942
943         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
944         (WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
945
946         * Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:
947         (WebCore::GetOperation::perform):
948
949         * Modules/indexeddb/server/IDBBackingStore.h:
950
951         * Modules/indexeddb/server/MemoryCursor.h:
952
953         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
954         (WebCore::IDBServer::MemoryIndexCursor::currentData):
955
956         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
957         (WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
958
959         * platform/CrossThreadCopier.h:
960
961 2015-11-27  Carlos Garcia Campos  <cgarcia@igalia.com>
962
963         [GTK] Do not use the WebCore garbage collector timer
964         https://bugs.webkit.org/show_bug.cgi?id=151623
965
966         Reviewed by Martin Robinson.
967
968         Now that garbage collector timers have been implemented in
969         JavaScriptCore for glib, we don't need to use another Timer in WebCore.
970
971         * bindings/js/GCController.cpp:
972         (WebCore::GCController::garbageCollectSoon):
973         (WebCore::GCController::garbageCollectNowIfNotDoneRecently):
974
975 2015-11-18  Andy Estes  <aestes@apple.com>
976
977         [Content Filtering] Crash in DocumentLoader::notifyFinished() when allowing a media document to load
978         https://bugs.webkit.org/show_bug.cgi?id=151433
979         rdar://problem/23506594
980
981         Reviewed by Alexey Proskuryakov.
982
983         When the main resource of a media document commits, WebKit cancels its load since the plug-in or media engine
984         will do its own loading. If content filtering is enabled, and the filter waits allow the load until the entire
985         resource is downloaded, then ContentFilter will attempt to call DocumentLoader::notifyFinished() immediately
986         after delivering the buffered resource data to DocumentLoader. However, delivering the data will have nulled out
987         DocumentLoader's m_mainResource when the load was cancelled, leading to a crash in notifyFinished().
988
989         To resolve this, add a new Stopped state to ContentFilter. Set this state if DocumentLoader clears its main
990         resource or detaches from its frame. If ContentFilter is in the Stopped state after calling
991         DocumentLoader::dataReceived(), do not proceed to call DocumentLoader::notifyFinished().
992
993         Test: contentfiltering/allow-media-document.html
994
995         * loader/ContentFilter.cpp:
996         (WebCore::ContentFilter::stopFilteringMainResource): Set m_state to Stopped. If m_mainResource is non-null,
997         removed ContentFilter as a client and set m_mainResource to null.
998         (WebCore::ContentFilter::notifyFinished): Stopped calling DocumentLoader::notifyFinished() if m_state is Stopped
999         after calling DocumentLoader::dataReceived().
1000         * loader/ContentFilter.h:
1001         * loader/DocumentLoader.cpp:
1002         (WebCore::DocumentLoader::detachFromFrame): Called ContentFilter::stopFilteringMainResource() instead of setting
1003         m_contentFilter to null.
1004         (WebCore::DocumentLoader::clearMainResource): Ditto.
1005
1006 2015-11-25  Pranjal Jumde  <pjumde@apple.com>
1007
1008         Checks for buffer-overflows when reading characters from textRun
1009         https://bugs.webkit.org/show_bug.cgi?id=151055
1010         <rdar://problem/23251789>
1011
1012         Reviewed by Myles C. Maxfield.
1013
1014         Prevents an off by one error when adding the last font data to the GlyphBuffer.
1015
1016         * Source/WebCore/platform/graphics/WidthIterator.cpp:
1017         * Source/WebCore/platform/graphics/FontCascade.cpp:
1018
1019 2015-11-24  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1020
1021         [Streams API] Implement pipeTo method in readable Stream
1022         https://bugs.webkit.org/show_bug.cgi?id=151588
1023
1024         Reviewed by Darin Adler.
1025
1026         Implemented pipeTo method according to the reference implementation in the spec as the spec is not written
1027         yet. It can be found at https://github.com/whatwg/streams/blob/632b26a05f3106650b1ec91239ad5b012e6c64af/reference-implementation/lib/readable-stream.js#L75.
1028
1029         Tests: streams/pipe-to.html
1030                streams/reference-implementation/brand-checks.html
1031                streams/reference-implementation/pipe-through.html
1032                streams/reference-implementation/pipe-to.html
1033                streams/reference-implementation/pipe-to-options.html
1034                streams/reference-implementation/readable-stream-templated
1035
1036         * Modules/streams/ReadableStream.js:
1037         (doPipe): Internal function of pipeTo.
1038         (closeDest): Internal function of pipeTo.
1039         (abortDest): Internal function of pipeTo.
1040         (pipeTo): Implemented as per spec with some other internal functions as helpers.
1041
1042 2015-11-24  Antti Koivisto  <antti@apple.com>
1043
1044         REGRESSION (r190983): Non-element, non-text nodes should not be distributed to slots
1045         https://bugs.webkit.org/show_bug.cgi?id=151566
1046         rdar://problem/23430177
1047
1048         Reviewed by Zalan Bujtas.
1049
1050         We don't invalidate slot assignments except for text or element children. Fix by not
1051         not assigning other nodes to slots as it is not useful.
1052
1053         Test: fast/html/details-comment-crash.html
1054
1055         * dom/SlotAssignment.cpp:
1056         (WebCore::slotNameFromSlotAttribute):
1057         (WebCore::SlotAssignment::findAssignedSlot):
1058         (WebCore::SlotAssignment::assignSlots):
1059
1060 2015-11-23  David Kilzer  <ddkilzer@apple.com>
1061
1062         Hardening against CSSSelector double frees
1063         <http://webkit.org/b/56124>
1064         <rdar://problem/9119036>
1065
1066         Reviewed by Antti Koivisto.
1067
1068         Add some security assertions to catch this issue if it ever
1069         happens in Debug builds, and make changes in
1070         CSSSelector::~CSSSelector() and
1071         CSSSelectorList::deleteSelectors() to prevent obvious issues if
1072         they're ever called twice in Release builds.
1073
1074         No new tests because we don't know how to reproduce this.
1075
1076         * css/CSSSelector.cpp:
1077         (WebCore::CSSSelector::CSSSelector): Initialize
1078         m_destructorHasBeenCalled.
1079         * css/CSSSelector.h:
1080         (WebCore::CSSSelector::m_destructorHasBeenCalled): Add bitfield.
1081         (WebCore::CSSSelector::CSSSelector): Initialize
1082         m_destructorHasBeenCalled.
1083         (WebCore::CSSSelector::~CSSSelector): Add security assertion
1084         that this is never called twice.  Clear out any fields that
1085         would have caused us to dereference an object twice.
1086
1087         * css/CSSSelectorList.cpp:
1088         (WebCore::CSSSelectorList::deleteSelectors): Clear
1089         m_selectorArray when freeing the memory to which it was
1090         pointing.  This prevents re-entrancy issues or calling this
1091         method twice on the same thread.  Also restructure the for()
1092         loop to prevent calling CSSSelector::isLastInSelectorList()
1093         after CSSSelector::~CSSSelector() has been called (via CRBug
1094         241892).
1095
1096 2015-11-23  Brian Burg  <bburg@apple.com>
1097
1098         Web Inspector: inspector settings should not be shared between different inspection levels
1099         https://bugs.webkit.org/show_bug.cgi?id=151151
1100
1101         Reviewed by Timothy Hatcher.
1102
1103         InspectorController and InspectorFrontendClient should know how to compute their
1104         inspection levels, so that this level can be exposed to the Inspector frontend for
1105         preference disambiguation by inspection level.
1106
1107          - A Page with normal web content has an inspection level of 0.
1108          - The first Web Inspector has an inspection level of 1.
1109          - The second Web Inspector that inspects the Inspector has an inspection level of 2.
1110          - And so forth...
1111
1112         For local frontend clients (WK1 and the ProtocolTestStub), the inspection level of
1113         a Page computed as follows:
1114
1115         - If the page's inspector controller has no frontend client, then the Page
1116         is normal web content (level 0).
1117         - If the page's inspector controller has a frontend client, ask for its inspection level.
1118         A frontend client looks at the inspection level reported by inspected page's inspector
1119         controller and increments by one to account for the crossed inspection boundary.
1120
1121         No new tests, this is blocked by test infrastructure fixes (https://webkit.org/b/151573).
1122
1123         * inspector/InspectorController.cpp:
1124         (WebCore::InspectorController::inspectionLevel): Added.
1125         (WebCore::InspectorController::hasInspectorFrontendClient): Deleted.
1126         * inspector/InspectorController.h:
1127         * inspector/InspectorFrontendClient.h:
1128         * inspector/InspectorFrontendClientLocal.cpp:
1129         (WebCore::InspectorFrontendClientLocal::canAttachWindow): Check inspectionLevel().
1130         (WebCore::InspectorFrontendClientLocal::inspectionLevel): Added.
1131         * inspector/InspectorFrontendClientLocal.h:
1132         * inspector/InspectorFrontendHost.cpp:
1133         (WebCore::InspectorFrontendHost::inspectionLevel): Added.
1134         * inspector/InspectorFrontendHost.h:
1135         * inspector/InspectorFrontendHost.idl:
1136         * page/ContextMenuController.cpp:
1137         (WebCore::ContextMenuController::populate): Check inspectionLevel().
1138
1139 2015-11-20  Brian Burg  <bburg@apple.com>
1140
1141         Web Inspector: RemoteInspector should track targets and connections for remote automation
1142         https://bugs.webkit.org/show_bug.cgi?id=151042
1143
1144         Reviewed by Joseph Pecoraro.
1145
1146         Use the new RemoteControllableTarget API method names.
1147
1148         No new tests, no behavior change.
1149
1150         * page/PageDebuggable.cpp:
1151         (WebCore::PageDebuggable::connect):
1152         (WebCore::PageDebuggable::dispatchMessageFromRemote):
1153         (WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend): Deleted.
1154         * page/PageDebuggable.h:
1155
1156 2015-11-23  Brady Eidson  <beidson@apple.com>
1157
1158         Modern IDB: Unskip all indexeddb/mozilla tests that pass.
1159         https://bugs.webkit.org/show_bug.cgi?id=151568
1160         
1161         Reviewed by Alex Christensen.
1162
1163         No new tests (Lots of skipped existing tests now pass).
1164
1165         * Modules/indexeddb/shared/IDBError.h:
1166
1167 2015-11-23  Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au>
1168
1169         Add WebCore namespace for generated bindings for supplemental method calls
1170         https://bugs.webkit.org/show_bug.cgi?id=151431
1171
1172         Reviewed by Alex Christensen.
1173
1174         Address build failures for generated supplemental method calls which are in the WebCore namespace. 
1175         The bindings are outside the WebCore namespace - so add WebCore namespace specifier where required.
1176
1177         * bindings/scripts/CodeGeneratorJS.pm:
1178         (GenerateHeader):
1179         (GenerateImplementation):
1180         (GenerateParametersCheck):
1181         * bindings/scripts/CodeGeneratorObjC.pm:
1182         (GenerateImplementation):
1183         * bindings/scripts/test/JS/JSTestInterface.cpp:
1184         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
1185         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
1186         (WebCore::jsTestInterfaceSupplementalStr1):
1187         (WebCore::jsTestInterfaceSupplementalStr2):
1188         (WebCore::jsTestInterfaceSupplementalNode):
1189         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
1190         (WebCore::setJSTestInterfaceSupplementalStr2):
1191         (WebCore::setJSTestInterfaceSupplementalNode):
1192         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
1193         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
1194         (WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4):
1195         * bindings/scripts/test/ObjC/DOMTestInterface.mm:
1196         (-[DOMTestInterface supplementalStr1]):
1197         (-[DOMTestInterface supplementalStr2]):
1198         (-[DOMTestInterface setSupplementalStr2:]):
1199         (-[DOMTestInterface supplementalStr3]):
1200         (-[DOMTestInterface setSupplementalStr3:]):
1201         (-[DOMTestInterface supplementalNode]):
1202         (-[DOMTestInterface setSupplementalNode:]):
1203         (-[DOMTestInterface builtinAttribute]):
1204         (-[DOMTestInterface setBuiltinAttribute:]):
1205         (-[DOMTestInterface supplementalMethod1]):
1206         (-[DOMTestInterface supplementalMethod2:objArg:]):
1207         (-[DOMTestInterface supplementalMethod3]):
1208         (-[DOMTestInterface supplementalMethod4]):
1209         (-[DOMTestInterface builtinFunction]):
1210
1211 2015-11-23  Brady Eidson  <beidson@apple.com>
1212
1213         Modern IDB: When a transaction is aborted, call onerror handlers for all in-progress requests.
1214         https://bugs.webkit.org/show_bug.cgi?id=151550
1215
1216         Reviewed by Alex Christensen.
1217
1218         Test: storage/indexeddb/modern/abort-requests-cancelled.html
1219               storage/indexeddb/modern/idbtransaction-objectstore-failures.html (with changes)
1220               storage/indexeddb/modern/index-5.html (with changes)
1221               Various (currently skipped) legacy IDB tests.
1222
1223         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
1224         (WebCore::IDBClient::IDBDatabase::transaction):
1225         (WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
1226         (WebCore::IDBClient::IDBDatabase::didStartTransaction):
1227         (WebCore::IDBClient::IDBDatabase::willCommitTransaction):
1228         (WebCore::IDBClient::IDBDatabase::didCommitTransaction):
1229         (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
1230         (WebCore::IDBClient::IDBDatabase::didAbortTransaction):
1231         (WebCore::IDBClient::IDBDatabase::didCommitOrAbortTransaction):
1232         
1233         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1234         (WebCore::IDBClient::IDBTransaction::abort):
1235         (WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):
1236         (WebCore::IDBClient::IDBTransaction::didCreateObjectStoreOnServer):
1237         (WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):
1238         (WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
1239         (WebCore::IDBClient::IDBTransaction::didDeleteObjectStoreOnServer):
1240         (WebCore::IDBClient::IDBTransaction::didDeleteIndexOnServer):
1241         (WebCore::IDBClient::IDBTransaction::immediateAbort): Deleted.
1242         (WebCore::IDBClient::IDBTransaction::abortOnServer): Deleted.
1243         * Modules/indexeddb/client/IDBTransactionImpl.h:
1244         
1245         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1246         (WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
1247         (WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
1248         
1249         * Modules/indexeddb/shared/IDBError.cpp:
1250         (WebCore::idbErrorName):
1251         (WebCore::idbErrorDescription):
1252         * Modules/indexeddb/shared/IDBError.h:
1253         
1254         * Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
1255         (WebCore::IDBResourceIdentifier::loggingString):
1256         * Modules/indexeddb/shared/IDBResourceIdentifier.h:
1257
1258 2015-11-23  Brady Eidson  <beidson@apple.com>
1259
1260         Modern IDB: Unskip storage/indexeddb/mozilla/global-data.html.
1261         https://bugs.webkit.org/show_bug.cgi?id=151557
1262
1263         Reviewed by Alex Christensen.
1264
1265         No new tests (Unskipping existing test storage/indexeddb/mozilla/global-data.html).
1266
1267         - Reworking some invalid ASSERTS
1268         - Actually opening pending open-database-requests after a version change transaction completes
1269         - Allow starting new transactions when the version change transaction has *started* finishing, 
1270           but before it finishes finishing.
1271
1272         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
1273         (WebCore::IDBClient::IDBDatabase::transaction):
1274         
1275         * Modules/indexeddb/client/IDBTransactionImpl.h:
1276         
1277         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1278         (WebCore::IDBServer::MemoryObjectStore::~MemoryObjectStore):
1279         
1280         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
1281         (WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded): Deleted.
1282         
1283         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1284         (WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
1285         (WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations):
1286         (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
1287         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1288
1289 2015-11-23  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1290
1291         Remove DOMPromiseWithCallback
1292         https://bugs.webkit.org/show_bug.cgi?id=151565
1293
1294         Reviewed by Eric Carlson.
1295
1296         DOMPromiseWithCallback is no longer used as WebCore JS built-ins are used to the cases where DOMPromiseWithCallback made sense.
1297
1298         No change in behavior.
1299
1300         * Modules/mediastream/MediaDevices.h: Moved from DOMPromiseWithCallback to DOMPromise since the API is now called by JS built-ins.
1301         * bindings/js/JSDOMPromise.h:
1302         (WebCore::DOMPromiseWithCallback::DOMPromiseWithCallback): Deleted.
1303         (WebCore::DOMPromiseIteratorWithCallback::DOMPromiseIteratorWithCallback): Deleted.
1304         (WebCore::Error>::resolve): Deleted.
1305         (WebCore::Error>::reject): Deleted.
1306         (WebCore::Error>::resolveEnd): Deleted.
1307
1308 2015-11-23  Brian Burg  <bburg@apple.com>
1309
1310         Web Inspector: when inspecting the inspector, add the inspection level to the title bar
1311         https://bugs.webkit.org/show_bug.cgi?id=151555
1312
1313         Reviewed by Timothy Hatcher.
1314
1315         * English.lproj/Localizable.strings: add new localized string for alternate inspector title.
1316
1317 2015-11-23  Zan Dobersek  <zdobersek@igalia.com>
1318
1319         [GStreamer] No need to assert the pipeline's bus presence in MediaPlayerPrivateGStreamerBase dtor
1320         https://bugs.webkit.org/show_bug.cgi?id=151558
1321
1322         Reviewed by Carlos Garcia Campos.
1323
1324         In the MediaPlayerPrivateGStreamerBase destructor, there's some leftover code
1325         that acquires a reference to the GStreamer pipeline's bus object and then
1326         just asserts that it's not null. Not very useful, so remove it.
1327
1328         Also use nullptr to null out the m_player member.
1329
1330         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1331         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
1332
1333 2015-11-17  Sergio Villar Senin  <svillar@igalia.com>
1334
1335         ASSERTION FAILED: freeSpace >= 0 in WebCore::RenderGrid::computeTrackSizesForDirection
1336         https://bugs.webkit.org/show_bug.cgi?id=151254
1337
1338         Reviewed by Darin Adler.
1339
1340         When in quirks mode, abnormally huge margins could lead to
1341         negative computations of available logical sizes. We could add
1342         an !document.inQuirksMode() check in the assertion but since
1343         negative freeSpace values are valid (i.e. the condition is not
1344         really part of the contract and everything will work as
1345         expected) I've decided to simply remove it.
1346
1347         Test: fast/css-grid-layout/grid-quirks-mode-huge-margin-crash.html
1348
1349         * rendering/RenderGrid.cpp:
1350         (WebCore::RenderGrid::computeTrackSizesForDirection): Deleted.
1351
1352 2015-11-22  Myles C. Maxfield  <mmaxfield@apple.com>
1353
1354         Font selection should not consult font-variant property
1355         https://bugs.webkit.org/show_bug.cgi?id=151537
1356
1357         Reviewed by Simon Fraser.
1358
1359         In section 4.7 of the CSS Fonts Level 3 spec, it says "[The font-variant and
1360         font-feature-settings] do not affect font selection."
1361
1362         All the other browsers (Chrome, Firefox, and Edge) all obey the spec here. We
1363         are the only one who misbehaves. This patch aligns our behavior with the other
1364         browsers.
1365
1366         Test: fast/text/font-selection-font-variant.html
1367
1368         * css/CSSFontSelector.cpp:
1369         (WebCore::computeTraitsMask): Deleted.
1370         (WebCore::compareFontFaces): Deleted.
1371         (WebCore::CSSFontSelector::getFontFace): Deleted.
1372         * css/CSSParser.cpp:
1373         (WebCore::isValidKeywordPropertyAndValue):
1374         (WebCore::isKeywordPropertyID):
1375         (WebCore::CSSParser::createFontFaceRule):
1376         (WebCore::CSSParser::CSSParser): Deleted.
1377         (WebCore::CSSParser::parseValue): Deleted.
1378         (WebCore::CSSParser::parseDeclaration): Deleted.
1379         (WebCore::CSSParser::clearProperties): Deleted.
1380         (WebCore::CSSParser::parseFontVariant): Deleted.
1381         (WebCore::CSSParser::createStyleRule): Deleted.
1382         (WebCore::CSSParser::deleteFontFaceOnlyValues): Deleted.
1383         * css/CSSParser.h:
1384         * platform/graphics/FontDescription.cpp:
1385         (WebCore::FontDescription::traitsMask): Deleted.
1386         * platform/graphics/win/FontCacheWin.cpp:
1387         (WebCore::traitsInFamilyEnumProc):
1388         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1389         (WebCore::toTraitsMask):
1390         * platform/text/TextFlags.h:
1391
1392 2015-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1393
1394         Unreviewed, rolling out r192727.
1395
1396         It made the selections transparent again and broke
1397         /webkit2/WebKitWebView/snapshot
1398
1399         Reverted changeset:
1400
1401         "[GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor,
1402         et. al. should not clobber state of cached GtkStyleContexts"
1403         https://bugs.webkit.org/show_bug.cgi?id=151533
1404         http://trac.webkit.org/changeset/192727
1405
1406 2015-11-22  Michael Catanzaro  <mcatanzaro@igalia.com>
1407
1408         [GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor, et. al. should not clobber state of cached GtkStyleContexts
1409         https://bugs.webkit.org/show_bug.cgi?id=151533
1410
1411         Reviewed by Carlos Garcia Campos.
1412
1413         platformActiveSelectionBackgroundColor(), platformInactiveSelectionBackgroundColor(), etc.
1414         are const functions intended only to return a color used for painting, but since r174929
1415         they also change the state of the cached style contexts we use for GTK_TYPE_ENTRY and
1416         GTK_TYPE_TREE_VIEW. That's wrong; those style contexts should not have any state set. This
1417         could cause theme colors returned by those GtkStyleContexts to change unexpectedly,
1418         depending on whether the state is explicitly set before each use, or whether the theme
1419         actually uses the states.
1420
1421         This didn't cause any regression only because every place using these style contexts
1422         explicitly sets the state of the style contexts before use. In fact, the GtkTreeView style
1423         context is not used anywhere else, and the GtkEntry style context is only used in
1424         paintTextField, which does set the state before use (and then reverts it using
1425         save/restore), so this cannot have broken anything in practice. But it's a landmine waiting
1426         for the next programmer to trip it.
1427
1428         Fix this with a gtk_style_context_save()/gtk_style_context_restore() pair.
1429
1430         * rendering/RenderThemeGtk.cpp:
1431         (WebCore::styleColor):
1432
1433 2015-11-21  Myles C. Maxfield  <mmaxfield@apple.com>
1434
1435         Tiny cleanup in ComplexTextController::collectComplexTextRuns()
1436         https://bugs.webkit.org/show_bug.cgi?id=151534
1437
1438         Reviewed by Zalan Bujtas.
1439
1440         The isMissingGlyph boolean is completely unnecessary. Its entire
1441         responsiblity is duplicated by the "font" pointer.
1442
1443         No new tests because there is no behavior change.
1444
1445         * platform/graphics/mac/ComplexTextController.cpp:
1446         (WebCore::ComplexTextController::collectComplexTextRuns):
1447
1448 == Rolled over to ChangeLog-2015-11-21 ==