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