Null dereference loading Blink layout test editing/execCommand/delete-hidden-crash...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-11-04  Jiewen Tan  <jiewen_tan@apple.com>
2
3         Null dereference loading Blink layout test editing/execCommand/delete-hidden-crash.html
4         https://bugs.webkit.org/show_bug.cgi?id=149289
5         <rdar://problem/22746352>
6
7         Reviewed by Enrica Casucci.
8
9         This is a merge of Blink r176497:
10         https://codereview.chromium.org/340713003
11
12         It ensures the start & end positions in DeleteSelectionCommand::initializePositionData
13         are editable.
14
15         Test: editing/execCommand/delete-hidden-crash.html
16
17         * editing/DeleteSelectionCommand.cpp:
18         (WebCore::DeleteSelectionCommand::initializePositionData):
19         * editing/Editor.cpp:
20         (WebCore::Editor::advanceToNextMisspelling):
21         * editing/htmlediting.cpp:
22         (WebCore::firstEditablePositionAfterPositionInRoot):
23         (WebCore::lastEditablePositionBeforePositionInRoot):
24         These two functions don't make any sense to return VisiblePosition. Change them
25         to return Position instead. Since there is a viable conversion from Position to
26         VisiblePosition. It should not change the behavior of any other components depending
27         on it.
28         * editing/htmlediting.h:
29
30 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
31
32         Ruby base ending in tatechuyoko forces a line break before the tatechuyoko
33         https://bugs.webkit.org/show_bug.cgi?id=150883
34
35         Reviewed by Darin Adler.
36
37         Asking the width of a 0-length tatechuyoko should return 0.
38
39         Test: fast/text/ruby-tatechuyoko.html
40
41         * rendering/RenderCombineText.cpp:
42         (WebCore::RenderCombineText::width):
43
44 2015-11-04  Tim Horton  <timothy_horton@apple.com>
45
46         Update the name of a Mail class that we hardcode
47         https://bugs.webkit.org/show_bug.cgi?id=150879
48         <rdar://problem/23384627>
49
50         Reviewed by Alexey Proskuryakov.
51
52         * editing/cocoa/HTMLConverter.mm:
53         (_WebMessageDocumentClass):
54
55 2015-11-04  Eric Carlson  <eric.carlson@apple.com>
56
57         [MediaStream] A RealtimeMediaSource should begin producing data automatically
58         https://bugs.webkit.org/show_bug.cgi?id=150851
59         rdar://problem/23380636
60
61         A RealtimeMediaSource should be producing data unless it is muted, which is not under the 
62         control of the application, so a local source should begin producing data as soon as it
63         is added to a stream. Remove "producing data" and "enabled" observer callbacks because 
64         they don't provide anything that the "muted" callback already provides.
65         
66         Reviewed by Jer Noble.
67
68         * Modules/mediastream/MediaStreamTrack.cpp:
69         (WebCore::MediaStreamTrack::trackProducingDataChanged): Deleted.
70         * Modules/mediastream/MediaStreamTrack.h:
71
72         * Modules/mediastream/UserMediaRequest.cpp:
73         (WebCore::UserMediaRequest::didCreateStream): Tell sources to begin producing data.
74
75         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
76         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Don't call stream->startProducingData,
77           it isn't necessary.
78         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setReadyState): Call characteristicsChanged 
79           when the readyState changes.
80
81         * platform/mediastream/MediaStreamPrivate.cpp:
82         (WebCore::MediaStreamPrivate::trackProducingDataChanged): Deleted.
83         * platform/mediastream/MediaStreamPrivate.h:
84
85         * platform/mediastream/MediaStreamTrackPrivate.cpp:
86         (WebCore::MediaStreamTrackPrivate::sourceProducingDataChanged): Deleted.
87         (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Deleted.
88         * platform/mediastream/MediaStreamTrackPrivate.h:
89
90         * platform/mediastream/RealtimeMediaSource.cpp:
91         (WebCore::RealtimeMediaSource::isProducingDataDidChange): Deleted.
92         (WebCore::RealtimeMediaSource::setEnabled): Deleted.
93         * platform/mediastream/RealtimeMediaSource.h:
94
95         * platform/mediastream/mac/AVAudioCaptureSource.mm:
96         (WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection): !enabled() -> muted().
97
98         * platform/mediastream/mac/AVMediaCaptureSource.mm:
99         (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): Don't call isProducingDataDidChange..
100
101         * platform/mediastream/mac/AVVideoCaptureSource.mm:
102         (WebCore::AVVideoCaptureSource::processNewFrame): !enabled() -> muted().
103
104 2015-11-04  Jer Noble  <jer.noble@apple.com>
105
106         [iOS] <video> elements without audio tracks should not interrupt music
107         https://bugs.webkit.org/show_bug.cgi?id=149888
108
109         Reviewed by Eric Carlson.
110
111         Tests: TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm
112
113         Only set the AVAudioSession category to "playback" when the video element in question has an
114         audio track.
115
116         Add a new PlatformMediaSessionClient method called canProduceAudio(), overridden in HTMLMediaElement
117         and AudioContext, which is checked when updating the AudioSession category in 
118         PlatformMediaSessionManager::updateSessionState().
119
120         * Modules/webaudio/AudioContext.h:
121         * html/HTMLMediaElement.cpp:
122         (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
123         * html/HTMLMediaElement.h:
124         * platform/audio/PlatformMediaSession.cpp:
125         (WebCore::PlatformMediaSession::activeAudioSessionRequired):
126         (WebCore::PlatformMediaSession::setCanProduceAudio):
127         * platform/audio/PlatformMediaSession.h:
128         (WebCore::PlatformMediaSession::canProduceAudio):
129         * platform/audio/PlatformMediaSessionManager.cpp:
130         (WebCore::PlatformMediaSessionManager::canProduceAudio):
131         (WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged):
132         (WebCore::PlatformMediaSessionManager::activeAudioSessionRequired):
133         (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
134         * platform/audio/PlatformMediaSessionManager.h:
135         * platform/audio/mac/MediaSessionManagerMac.cpp:
136         (PlatformMediaSessionManager::updateSessionState):
137
138 2015-11-03  Dean Jackson  <dino@apple.com>
139
140         Accept 8 and 4 value hex colors (#RRGGBBAA)
141         https://bugs.webkit.org/show_bug.cgi?id=150853
142         <rdar://problem/23380930>
143
144         Reviewed by Simon Fraser.
145
146         CSS Color Level 4 allows #RGBA and #RRGGBBAA values
147         for colors.
148
149         Test: fast/css/hex-colors.html
150
151         * platform/graphics/Color.cpp:
152         (WebCore::parseHexColorInternal): Update the color parsing for
153         the new syntax.
154
155 2015-11-04  Mario Sanchez Prada  <mario@webkit.org>
156
157         [AX] WebProcess from WebKitGtk+ 2.10.0 compiled in Debug mode hits ASSERT on textUnderElement
158         https://bugs.webkit.org/show_bug.cgi?id=150670
159
160         Reviewed by Chris Fleizach.
161
162         Move the ASSERTs stating that the render tree is stable before using the
163         TextIterator to their right place, in AccessibilityRenderObject, so that
164         we don't crash in debug builds in cases when this condition is irrelevant.
165
166         Test: accessibility/gtk/list-item-with-pseudo-element-crash.html
167
168         * accessibility/AccessibilityNodeObject.cpp:
169         (WebCore::AccessibilityNodeObject::textUnderElement): Removed ASSERTs.
170         * accessibility/AccessibilityRenderObject.cpp:
171         (WebCore::AccessibilityRenderObject::textUnderElement): Added ASSERTs, but
172         only before calling plainText and using the right document for the node.
173
174 2015-11-04  Xabier Rodriguez Calvar  <calvaris@igalia.com>
175
176         [Streams API] Shield streams against user replacing the Promise constructor
177         https://bugs.webkit.org/show_bug.cgi?id=150887
178
179         Reviewed by Youenn Fablet.
180
181         With this rework, we shield the Streams implementation against the user doing something like "Promise =
182         function() { /* do garbage */ };".
183
184         Test: streams/streams-promises.html.
185
186         * Modules/streams/ReadableStream.js:
187         (initializeReadableStream):
188         (cancel):
189         * Modules/streams/ReadableStreamInternals.js:
190         (privateInitializeReadableStreamReader):
191         (cancelReadableStream):
192         (readFromReadableStreamReader):
193         * Modules/streams/ReadableStreamReader.js:
194         (cancel):
195         (read):
196         (closed):
197         * Modules/streams/StreamInternals.js:
198         (promiseInvokeOrNoop):
199         (promiseInvokeOrFallbackOrNoop):
200         * Modules/streams/WritableStream.js:
201         (initializeWritableStream):
202         (abort):
203         (close):
204         (write):
205         (closed):
206         (ready):
207         * Modules/streams/WritableStreamInternals.js:
208         (syncWritableStreamStateWithQueue):
209
210 2015-11-04  Antoine Quint  <graouts@apple.com>
211
212         SVG: hit testing region for <text> elements is incorrect
213         https://bugs.webkit.org/show_bug.cgi?id=150838
214
215         Reviewed by Dean Jackson.
216
217         Hit testing for SVG <text> elements was using the same code as hit testing
218         for CSS-rendered elements. However, in SVG, text elements should only hit
219         test based on their character cells, not the rectangular bounds of the
220         element, see section 16.6 of the SVG 1.1 specification:
221         
222         http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty
223         
224         So we now hit test each SVGTextFragment of each SVGInlineTextBox
225         that is a child of an SVGRootInlineBox to correctly find whether the
226         provided HitTestLocation is contained within a character cell. 
227
228         Tests: svg/hittest/text-dominant-baseline-hanging.svg
229                svg/hittest/text-multiple-dx-values.svg
230                svg/hittest/text-with-multiple-tspans.svg
231                svg/hittest/text-with-text-node-and-content-elements.svg
232                svg/hittest/text-with-text-node-only.svg
233                svg/hittest/text-with-text-path.svg
234
235         * rendering/RootInlineBox.h:
236         Remove the final keyword since nodeAtPoint() may now be subclassed as
237         implemented in SVGRootInlineBox.
238  
239         * rendering/svg/SVGInlineTextBox.cpp:
240         (WebCore::SVGInlineTextBox::nodeAtPoint):
241         Iterate over the SVGTextFragments to look for a fragment containing the
242         provided HitTestLocation.
243  
244         * rendering/svg/SVGRootInlineBox.cpp:
245         (WebCore::SVGRootInlineBox::nodeAtPoint):
246         * rendering/svg/SVGRootInlineBox.h:
247         Override RootInlineBox::nodeAtPoint() to delegate hit testing to the
248         children inline boxes.
249
250 2015-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
251
252         [GStreamer] Use RunLoop::Timer for ready state timer in MediaPlayerPrivateGStreamer
253         https://bugs.webkit.org/show_bug.cgi?id=150836
254
255         Reviewed by Philippe Normand.
256
257         We don't really need a GThreadSafeMainLoopSource for this simple timer.
258
259         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
260         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
261         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
262         (WebCore::MediaPlayerPrivateGStreamer::readyTimerFired):
263         (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
264         (WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
265         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
266
267 2015-11-04  Frederic Wang  <fred.wang@free.fr>
268
269         Add support for the USE_TYPO_METRICS flag on iOS
270         https://bugs.webkit.org/show_bug.cgi?id=131839
271
272         Reviewed by Darin Adler.
273
274         Make the iOS Font service use the typo metrics for fonts with a MATH table when the OS/2 USE_TYPO_METRICS flag is set.
275         The code shared by iOS, OS X and AppleWin is moved into a separate OpenTypeCG module.
276
277         No new tests because this is already tested by fonts/use-typo-metrics-1.html
278
279         * PlatformAppleWin.cmake: Add OpenTypeCG files.
280         * PlatformMac.cmake: ditto.
281         * WebCore.vcxproj/WebCore.vcxproj: ditto.
282         * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
283         * WebCore.xcodeproj/project.pbxproj: ditto.
284         * platform/graphics/cocoa/FontCocoa.mm:
285         (WebCore::Font::platformInit): Use functions from OpenTypeCG.
286         (WebCore::fontHasMathTable): Deleted.
287         * platform/graphics/ios/FontServicesIOS.mm:
288         (WebCore::FontServicesIOS::FontServicesIOS): Use the typo metrics for fonts with a MATH table when the OS/2 USE_TYPO_METRICS flag is set.
289         * platform/graphics/opentype/OpenTypeCG.h: Added.
290         * platform/graphics/opentype/OpenTypeCG.cpp: Added.
291         (WebCore::OpenType::fontHasMathTable): Move this code from FontCocoa.mm.
292         (WebCore::OpenType::readShortFromTable): Inline function to read a 16-bit big endian integer from the OS/2 table and to cast it into a short integer.
293         (WebCore::OpenType::tryGetTypoMetrics): Move this code from FontCocoa.mm.
294         * platform/graphics/opentype/OpenTypeTypes.h: Add missing Glyph.h header needed by TableWithCoverage::getCoverageIndex.
295         * platform/graphics/win/SimpleFontDataCGWin.cpp:
296         (WebCore::Font::platformInit): Use functions from OpenTypeCG.
297
298 2015-11-04  Chris Dumez  <cdumez@apple.com>
299
300         Regression(r191652): Colloquy doesn’t render any chat content
301         https://bugs.webkit.org/show_bug.cgi?id=150861
302         <rdar://problem/23381007>
303
304         Reviewed by Antti Koivisto.
305
306         Do a partial revert of r191652 as this web-exposed behavior change
307         broke Colloquy app. This only reverts the code change, the tests
308         are left as is so that they don't rely of the frame ID setting the
309         Window name.
310
311         * html/HTMLFrameElementBase.cpp:
312         (WebCore::HTMLFrameElementBase::parseAttribute):
313         (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
314
315 2015-11-03  Brady Eidson  <beidson@apple.com>
316
317         Modern IDB: Fill out IDBIndex, create MemoryIndex in backing store.
318         https://bugs.webkit.org/show_bug.cgi?id=150868
319
320         Reviewed by Alex Christensen.
321
322         Tests: storage/indexeddb/modern/create-index-failures.html
323                storage/indexeddb/modern/get-index-failures.html
324                storage/indexeddb/modern/idbindex-properties-basic.html
325
326         Note: The MemoryIndex in the backing store doesn't actually do anything yet.
327         
328         That's coming next.
329     
330         * CMakeLists.txt:
331         * WebCore.xcodeproj/project.pbxproj:
332
333         * Modules/indexeddb/IDBIndex.h:
334
335         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
336         (WebCore::IDBClient::IDBConnectionToServer::createIndex):
337         (WebCore::IDBClient::IDBConnectionToServer::didCreateIndex):
338         * Modules/indexeddb/client/IDBConnectionToServer.h:
339         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
340
341         * Modules/indexeddb/client/IDBCursorWithValueImpl.h:
342
343         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
344         (WebCore::IDBClient::IDBDatabase::didCreateIndexInfo):
345         * Modules/indexeddb/client/IDBDatabaseImpl.h:
346
347         * Modules/indexeddb/client/IDBIndexImpl.cpp:
348         (WebCore::IDBClient::IDBIndex::create):
349         (WebCore::IDBClient::IDBIndex::IDBIndex):
350         (WebCore::IDBClient::IDBIndex::objectStore):
351         (WebCore::IDBClient::IDBIndex::keyPathAny):
352         (WebCore::IDBClient::IDBIndex::openCursor):
353         (WebCore::IDBClient::IDBIndex::count):
354         (WebCore::IDBClient::IDBIndex::openKeyCursor):
355         (WebCore::IDBClient::IDBIndex::get):
356         (WebCore::IDBClient::IDBIndex::getKey):
357         * Modules/indexeddb/client/IDBIndexImpl.h:
358
359         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
360         (WebCore::IDBClient::IDBObjectStore::createIndex):
361         (WebCore::IDBClient::IDBObjectStore::index):
362         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
363
364         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
365         (WebCore::IDBClient::IDBTransaction::createObjectStore):
366         (WebCore::IDBClient::IDBTransaction::createIndex):
367         (WebCore::IDBClient::IDBTransaction::createIndexOnServer):
368         (WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):
369         * Modules/indexeddb/client/IDBTransactionImpl.h:
370
371         * Modules/indexeddb/legacy/LegacyIndex.h:
372
373         * Modules/indexeddb/server/IDBBackingStore.h:
374
375         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
376         (WebCore::IDBServer::IDBConnectionToClient::didCreateIndex):
377         * Modules/indexeddb/server/IDBConnectionToClient.h:
378         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
379
380         * Modules/indexeddb/server/IDBServer.cpp:
381         (WebCore::IDBServer::IDBServer::createIndex):
382         * Modules/indexeddb/server/IDBServer.h:
383
384         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
385         (WebCore::IDBServer::MemoryBackingStoreTransaction::addNewIndex):
386         (WebCore::IDBServer::MemoryBackingStoreTransaction::addExistingIndex):
387         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
388
389         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
390         (WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
391         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
392
393         * Modules/indexeddb/server/MemoryIndex.cpp: Added.
394         (WebCore::IDBServer::MemoryIndex::create):
395         (WebCore::IDBServer::MemoryIndex::MemoryIndex):
396         (WebCore::IDBServer::MemoryIndex::~MemoryIndex):
397         * Modules/indexeddb/server/MemoryIndex.h: Added.
398         (WebCore::IDBServer::MemoryIndex::info):
399
400         * Modules/indexeddb/server/MemoryObjectStore.cpp:
401         (WebCore::IDBServer::MemoryObjectStore::createIndex):
402         (WebCore::IDBServer::MemoryObjectStore::registerIndex):
403         (WebCore::IDBServer::MemoryObjectStore::unregisterIndex):
404         * Modules/indexeddb/server/MemoryObjectStore.h:
405
406         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
407         (WebCore::IDBServer::UniqueIDBDatabase::createIndex):
408         (WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
409         (WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateIndex):
410         * Modules/indexeddb/server/UniqueIDBDatabase.h:
411
412         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
413         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didCreateIndex):
414         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
415
416         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
417         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
418         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
419
420         * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
421         (WebCore::IDBDatabaseInfo::getInfoForExistingObjectStore):
422         (WebCore::IDBDatabaseInfo::infoForExistingObjectStore):
423         * Modules/indexeddb/shared/IDBDatabaseInfo.h:
424
425         * Modules/indexeddb/shared/IDBIndexInfo.cpp:
426         (WebCore::IDBIndexInfo::IDBIndexInfo):
427         (WebCore::IDBIndexInfo::isolatedCopy):
428         * Modules/indexeddb/shared/IDBIndexInfo.h:
429         (WebCore::IDBIndexInfo::identifier):
430         (WebCore::IDBIndexInfo::objectStoreIdentifier):
431
432         * Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
433         (WebCore::IDBObjectStoreInfo::createNewIndex):
434         (WebCore::IDBObjectStoreInfo::addExistingIndex):
435         (WebCore::IDBObjectStoreInfo::hasIndex):
436         (WebCore::IDBObjectStoreInfo::infoForExistingIndex):
437         (WebCore::IDBObjectStoreInfo::isolatedCopy):
438         * Modules/indexeddb/shared/IDBObjectStoreInfo.h:
439
440         * Modules/indexeddb/shared/IDBResultData.cpp:
441         (WebCore::IDBResultData::createIndexSuccess):
442         * Modules/indexeddb/shared/IDBResultData.h:
443
444         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
445         (WebCore::InProcessIDBServer::didCreateIndex):
446         (WebCore::InProcessIDBServer::createIndex):
447         * Modules/indexeddb/shared/InProcessIDBServer.h:
448
449         * bindings/js/JSIDBObjectStoreCustom.cpp:
450         (WebCore::JSIDBObjectStore::createIndex):
451
452         * platform/CrossThreadCopier.cpp:
453         (WebCore::IDBIndexInfo>::copy):
454         * platform/CrossThreadCopier.h:
455
456 2015-11-03  Andy Estes  <aestes@apple.com>
457
458         [Cocoa] Only query for kMGQDeviceName on iOS
459         https://bugs.webkit.org/show_bug.cgi?id=150858
460
461         Reviewed by Brent Fulgham.
462
463         * platform/ios/Device.cpp:
464         (WebCore::deviceName): On non-iOS platorms, just return "iPhone" as the device name.
465
466 2015-11-03  Geoffrey Garen  <ggaren@apple.com>
467
468         Provide a way to turn off const in WebKit2.
469
470         Reviewed by Sam Weinig.
471
472         * bindings/js/JSDOMWindowBase.cpp:
473         (WebCore::JSDOMWindowBase::commonVM):
474         * page/Settings.h:
475         (WebCore::Settings::shouldUseHighResolutionTimers):
476         (WebCore::Settings::shouldRewriteConstAsVar):
477         (WebCore::Settings::setShouldRewriteConstAsVar):
478         (WebCore::Settings::backgroundShouldExtendBeyondPage):
479
480 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
481
482         Web Inspector: Remove duplication among ScriptDebugServer subclasses
483         https://bugs.webkit.org/show_bug.cgi?id=150860
484
485         Reviewed by Timothy Hatcher.
486
487         Refactoring covered by existing tests.
488
489         * bindings/js/WorkerScriptDebugServer.cpp:
490         (WebCore::WorkerScriptDebugServer::attachDebugger):
491         (WebCore::WorkerScriptDebugServer::detachDebugger):
492         (WebCore::WorkerScriptDebugServer::addListener): Deleted.
493         (WebCore::WorkerScriptDebugServer::removeListener): Deleted.
494         * bindings/js/WorkerScriptDebugServer.h:
495         * inspector/PageDebuggerAgent.cpp:
496         (WebCore::PageDebuggerAgent::startListeningScriptDebugServer): Deleted.
497         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer): Deleted.
498         * inspector/PageDebuggerAgent.h:
499         * inspector/PageScriptDebugServer.cpp:
500         (WebCore::PageScriptDebugServer::attachDebugger):
501         (WebCore::PageScriptDebugServer::detachDebugger):
502         (WebCore::PageScriptDebugServer::addListener): Deleted.
503         (WebCore::PageScriptDebugServer::removeListener): Deleted.
504         * inspector/PageScriptDebugServer.h:
505         * inspector/WorkerDebuggerAgent.cpp:
506         (WebCore::WorkerDebuggerAgent::startListeningScriptDebugServer): Deleted.
507         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer): Deleted.
508         * inspector/WorkerDebuggerAgent.h:
509
510 2015-11-03  Jiewen Tan  <jiewen_tan@apple.com>
511
512         Null dereference loading Blink layout test scrollbars/custom-scrollbar-appearance-property.html
513         https://bugs.webkit.org/show_bug.cgi?id=149312
514         <rdar://problem/22748910>
515
516         Reviewed by Darin Adler.
517
518         This is a merge from Blink r167503:
519         https://codereview.chromium.org/173433002
520
521         Test: scrollbars/custom-scrollbar-appearance-property.html
522
523         * rendering/RenderThemeMac.mm:
524         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
525         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
526
527 2015-11-03  Andreas Kling  <akling@apple.com>
528
529         ResourceUsageOverlay should show GC-owned malloc memory.
530         <https://webkit.org/b/150846>
531
532         Reviewed by Anders Carlsson.
533
534         Add a memory category for GC-owned malloc memory. This carves a significant chunk off of
535         the gigantic "bmalloc" mystery slice.
536
537         * page/ResourceUsageOverlay.h:
538         * page/cocoa/ResourceUsageOverlayCocoa.mm:
539         (WebCore::drawMemoryPie):
540         (WebCore::ResourceUsageOverlay::draw):
541         (WebCore::runSamplerThread):
542
543 2015-11-03  Saam barati  <sbarati@apple.com>
544
545         Rewrite "const" as "var" for iTunes/iBooks on the Mac
546         https://bugs.webkit.org/show_bug.cgi?id=150852
547
548         Reviewed by Geoffrey Garen.
549
550         * bindings/js/JSDOMWindowBase.cpp:
551         (WebCore::JSDOMWindowBase::commonVM):
552
553 2015-10-30  Jon Honeycutt  <jhoneycutt@apple.com>
554
555         Implement support for the autocomplete attribute
556         https://bugs.webkit.org/show_bug.cgi?id=150731
557         rdar://problem/21078968
558
559         The autocomplete attribute is defined by
560         https://html.spec.whatwg.org/multipage/forms.html#autofill.
561
562         Reviewed by Brent Fulgham.
563
564         Test: fast/forms/autocomplete-tokens.html
565
566         * html/HTMLFormControlElement.cpp:
567         (WebCore::isContactToken):
568         Return true if this is a contact token.
569         (WebCore::categoryForAutofillFieldToken):
570         Adds all of the autofill field tokens to a map, and returns the
571         category for a given token.
572         (WebCore::maxTokensForAutofillFieldCategory):
573         Return the maximum number of tokens an autofill category supports.
574         (WebCore::HTMLFormControlElement::parseAutocompleteAttribute):
575         Implement the processing model defined in
576         https://html.spec.whatwg.org/multipage/forms.html#processing-model-3
577         with respect to the IDL-exposed autofill value.
578         (WebCore::HTMLFormControlElement::setAutocomplete):
579         Set the autocomplete attribute to the given string.
580
581         * html/HTMLFormControlElement.h:
582         Declare setAutocomplete() and autocomplete().
583
584         * html/HTMLInputElement.idl:
585         Remove the Reflect attribute. We now have custom processing for getting
586         this attribute.
587
588         * html/HTMLSelectElement.idl:
589         Declare the autocomplete attribute.
590
591         * html/HTMLTextAreaElement.idl:
592         Ditto.
593
594 2015-11-03  Brady Eidson  <beidson@apple.com>
595
596         Modern IDB: Land empty IDBCursor/Index IDL implementations.
597         https://bugs.webkit.org/show_bug.cgi?id=150839
598
599         Reviewed by Alex Christensen.
600
601         No new tests (No change in behavior).
602
603         * CMakeLists.txt:
604         * WebCore.xcodeproj/project.pbxproj:
605
606         * Modules/indexeddb/IDBIndex.h:
607         
608         * Modules/indexeddb/client/IDBCursorImpl.cpp: Added.
609         (WebCore::IDBClient::IDBCursor::~IDBCursor):
610         (WebCore::IDBClient::IDBCursor::direction):
611         (WebCore::IDBClient::IDBCursor::key):
612         (WebCore::IDBClient::IDBCursor::primaryKey):
613         (WebCore::IDBClient::IDBCursor::value):
614         (WebCore::IDBClient::IDBCursor::source):
615         (WebCore::IDBClient::IDBCursor::update):
616         (WebCore::IDBClient::IDBCursor::advance):
617         (WebCore::IDBClient::IDBCursor::continueFunction):
618         (WebCore::IDBClient::IDBCursor::deleteFunction):
619         * Modules/indexeddb/client/IDBCursorImpl.h: Added.
620         
621         * Modules/indexeddb/client/IDBCursorWithValueImpl.cpp: Added.
622         * Modules/indexeddb/client/IDBCursorWithValueImpl.h: Added.
623         
624         * Modules/indexeddb/client/IDBIndexImpl.cpp: Added.
625         (WebCore::IDBClient::IDBIndex::~IDBIndex):
626         (WebCore::IDBClient::IDBIndex::name):
627         (WebCore::IDBClient::IDBIndex::objectStore):
628         (WebCore::IDBClient::IDBIndex::keyPathAny):
629         (WebCore::IDBClient::IDBIndex::keyPath):
630         (WebCore::IDBClient::IDBIndex::unique):
631         (WebCore::IDBClient::IDBIndex::multiEntry):
632         (WebCore::IDBClient::IDBIndex::openCursor):
633         (WebCore::IDBClient::IDBIndex::count):
634         (WebCore::IDBClient::IDBIndex::openKeyCursor):
635         (WebCore::IDBClient::IDBIndex::get):
636         (WebCore::IDBClient::IDBIndex::getKey):
637         * Modules/indexeddb/client/IDBIndexImpl.h: Copied from Source/WebCore/Modules/indexeddb/IDBIndex.h.
638         
639         * Modules/indexeddb/legacy/LegacyIndex.h:
640         (WebCore::LegacyIndex::id):
641         
642         * Modules/indexeddb/shared/IDBIndexInfo.cpp: Added.
643         * Modules/indexeddb/shared/IDBIndexInfo.h: Added.
644         (WebCore::IDBIndexInfo::name):
645         (WebCore::IDBIndexInfo::keyPath):
646         (WebCore::IDBIndexInfo::unique):
647         (WebCore::IDBIndexInfo::multiEntry):
648
649 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
650
651         Addressing post-review comments on r191934.
652
653         Unreviewed.
654
655         * platform/graphics/mac/FontCustomPlatformData.cpp:
656         (WebCore::FontCustomPlatformData::supportsFormat):
657
658 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
659
660         Web Inspector: Move ScriptDebugServer::Task to WorkerScriptDebugServer where it is actually used
661         https://bugs.webkit.org/show_bug.cgi?id=150847
662
663         Reviewed by Timothy Hatcher.
664
665         * bindings/js/WorkerScriptDebugServer.cpp:
666         (WebCore::WorkerScriptDebugServer::interruptAndRunTask):
667         * bindings/js/WorkerScriptDebugServer.h:
668         * inspector/WorkerDebuggerAgent.cpp:
669
670 2015-11-03  Tim Horton  <timothy_horton@apple.com>
671
672         Fix the build.
673
674         * platform/Widget.h:
675         (WebCore::Widget::boundsRect):
676         (WebCore::Widget::resize):
677
678 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
679
680         font-variant-* properties in @font-face declarations should be honored
681         https://bugs.webkit.org/show_bug.cgi?id=149771
682
683         Reviewed by Simon Fraser.
684
685         According to the CSS Fonts Level 3 spec, web authors are allowed to put
686         font-feature-settings / font-variant-* inside @font-face blocks. These
687         properties are supposed to be applied at a specific time during the
688         font selection algorithm.
689
690         This patch gives a FontFeatureSettings object and a FontVariantSettings
691         object to CSSFontFace, and moves common parsing logic from
692         StyleBuilderCustom to a shared location. Then, once the two properties
693         are parsed from the @font-face block, the relevant data structures are
694         passed down into the font selection algorithm. This algorithm then
695         consults with these values at the correct time (inside
696         preparePlatformFont()).
697
698         Tests: css3/font-feature-settings-font-face-rendering.html
699                css3/font-variant-font-face-all.html
700                css3/font-variant-font-face-override.html
701
702         * WebCore.xcodeproj/project.pbxproj: Add a header for the common
703         location of parsing font-variant-ligatures, font-variant-numeric,
704         and font-variant-east-asian.
705         * css/CSSFontFace.cpp:
706         (WebCore::CSSFontFace::font): Pass the relevant data structures
707         into the font selection algorithm.
708         * css/CSSFontFace.h: Add FontFeatureSettings and FontVariantSettings
709         member variables.
710         (WebCore::CSSFontFace::insertFeature):
711         (WebCore::CSSFontFace::setVariantCommonLigatures):
712         (WebCore::CSSFontFace::setVariantDiscretionaryLigatures):
713         (WebCore::CSSFontFace::setVariantHistoricalLigatures):
714         (WebCore::CSSFontFace::setVariantContextualAlternates):
715         (WebCore::CSSFontFace::setVariantPosition):
716         (WebCore::CSSFontFace::setVariantCaps):
717         (WebCore::CSSFontFace::setVariantNumericFigure):
718         (WebCore::CSSFontFace::setVariantNumericSpacing):
719         (WebCore::CSSFontFace::setVariantNumericFraction):
720         (WebCore::CSSFontFace::setVariantNumericOrdinal):
721         (WebCore::CSSFontFace::setVariantNumericSlashedZero):
722         (WebCore::CSSFontFace::setVariantAlternates):
723         (WebCore::CSSFontFace::setVariantEastAsianVariant):
724         (WebCore::CSSFontFace::setVariantEastAsianWidth):
725         (WebCore::CSSFontFace::setVariantEastAsianRuby):
726         * css/CSSFontFaceSource.cpp:
727         (WebCore::CSSFontFaceSource::font): Pass the relevant data
728         structures into the font selection algorithm.
729         * css/CSSFontFaceSource.h: Ditto.
730         * css/CSSFontSelector.cpp:
731         (WebCore::CSSFontSelector::addFontFaceRule): Call the shared
732         parsing logic to populate the FontFeatureSettings and
733         FontVariantSettings members.
734         * css/FontVariantBuilder.h: Added. Destination for shared parsing
735         logic.
736         (WebCore::applyValueFontVariantLigatures):
737         (WebCore::applyValueFontVariantNumeric):
738         (WebCore::applyValueFontVariantEastAsian):
739         * css/StyleBuilderCustom.h: Source for shared parsing logic.
740         (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures):
741         (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric):
742         (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian):
743         * loader/cache/CachedFont.cpp: Pass the relevant data structures
744         into the font selection algorithm.
745         (WebCore::CachedFont::createFont):
746         (WebCore::CachedFont::platformDataFromCustomData):
747         * loader/cache/CachedFont.h: Ditto.
748         * loader/cache/CachedSVGFont.cpp: Ditto.
749         (WebCore::CachedSVGFont::createFont):
750         (WebCore::CachedSVGFont::platformDataFromCustomData):
751         * loader/cache/CachedSVGFont.h: Ditto.
752         * platform/graphics/FontCache.h: Ditto.
753         * platform/graphics/FontCascade.cpp:
754         (WebCore::FontCascade::codePath): Adjust comment.
755         * platform/graphics/cocoa/FontCacheCoreText.cpp:
756         (WebCore::preparePlatformFont): Consult with the newly parsed values.
757         (WebCore::fontWithFamily): Pass the relevant data structures into the
758         font selection algorithm.
759         (WebCore::FontCache::systemFallbackForCharacters): Ditto.
760         * platform/graphics/mac/FontCustomPlatformData.cpp:
761         (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
762         * platform/graphics/mac/FontCustomPlatformData.h: Ditto.
763
764 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
765
766         Web Inspector: Handle or Remove ParseHTML Timeline Event Records
767         https://bugs.webkit.org/show_bug.cgi?id=150689
768
769         Reviewed by Timothy Hatcher.
770
771         Remove ParseHTML nesting recordings. We were not using them
772         and for most pages their self-time is very small in comparison
773         to other events. We may consider adding it back later for
774         UI purposes but for now the frontend doesn't use the records
775         so lets remove it.
776
777         * html/parser/HTMLDocumentParser.cpp:
778         (WebCore::HTMLDocumentParser::pumpTokenizer): Deleted.
779         * inspector/InspectorInstrumentation.cpp:
780         (WebCore::InspectorInstrumentation::willWriteHTMLImpl): Deleted.
781         (WebCore::InspectorInstrumentation::didWriteHTMLImpl): Deleted.
782         * inspector/InspectorInstrumentation.h:
783         (WebCore::InspectorInstrumentation::willWriteHTML): Deleted.
784         (WebCore::InspectorInstrumentation::didWriteHTML): Deleted.
785         * inspector/InspectorTimelineAgent.cpp:
786         (WebCore::InspectorTimelineAgent::willWriteHTML): Deleted.
787         (WebCore::InspectorTimelineAgent::didWriteHTML): Deleted.
788         (WebCore::toProtocol): Deleted.
789         * inspector/InspectorTimelineAgent.h:
790         * inspector/TimelineRecordFactory.cpp:
791         (WebCore::TimelineRecordFactory::createParseHTMLData): Deleted.
792         * inspector/TimelineRecordFactory.h:
793
794 2015-11-03  Keith Rollin  <krollin@apple.com>
795
796         HTMLOptionElement.text should never return the value of label
797         https://bugs.webkit.org/show_bug.cgi?id=148862
798         rdar://problem/22589226
799
800         Reviewed by Darin Adler.
801
802         According to the HTML spec, `option` elements should have the
803         following behavior:
804
805             - the `text` property should return text contents of element
806             - the `label` property should return value of label attribute if
807               it exists, else return text property
808             - the UI should display label property
809
810         12 years ago, in order to be compatibile with browsers of the time, we
811         diverged from this behavior: the text property behaved like the label
812         property, and the text property was used for display. This resulted in
813         our UI incidentally conforming to the spec, but also in the text
814         property *not* conforming to the spec. See <rdar://problem/3532519>
815         for discussion on this change.
816
817         The behavior of the browsers we were conforming to has changed. In
818         particular, the text property in Firefox now conforms to the spec
819         instead of behaving as we did. Therefore, it's less important to
820         retain our old behavior for the sake of compatibility. This check-in
821         brings us into conformance with the spec. The result is that the UI
822         stays the same, but the text property will return different values than
823         it used to if the option element has a label attribute that used to
824         hide it.
825
826         Updated tests:
827         - fast/dom/HTMLOptionElement/option-text.html:
828         - fast/forms/HTMLOptionElement_label01.html:
829         - fast/forms/HTMLOptionElement_label02.html:
830         - fast/forms/HTMLOptionElement_label03.html:
831         - fast/forms/HTMLOptionElement_label04.html:
832         - fast/forms/HTMLOptionElement_label05.html:
833         - fast/forms/HTMLOptionElement_label06.html:
834         - fast/forms/HTMLOptionElement_label07.html:
835         - fast/forms/option-value-and-label.html:
836
837         * accessibility/AccessibilityListBoxOption.cpp:
838         (WebCore::AccessibilityListBoxOption::stringValue):
839         * accessibility/AccessibilityMenuListOption.cpp:
840         (WebCore::AccessibilityMenuListOption::stringValue):
841         * html/HTMLOptionElement.cpp:
842         (WebCore::HTMLOptionElement::text):
843         (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
844
845 2015-11-03  Andreas Kling  <akling@apple.com>
846
847         ResourceUsageOverlay should draw itself using WebCore::GraphicsContext.
848         <https://webkit.org/b/150841>
849
850         Reviewed by Antti Koivisto.
851
852         Use WebCore text drawing primitives instead of poking at the CGContext directly.
853         And stop using deprecated CoreGraphics APIs, too.
854
855         * page/cocoa/ResourceUsageOverlayCocoa.mm:
856         (WebCore::drawCpuHistory):
857         (WebCore::drawGCHistory):
858
859             Adjust for unflipped Y axis.
860
861         (WebCore::fontCascade):
862         (WebCore::showText):
863
864             Draw using WebCore text drawing primitives.
865
866         (WebCore::ResourceUsageOverlay::draw):
867
868             Remove CGContext calls and stop flipping the Y axis.
869
870 2015-11-03  Youenn Fablet  <youenn.fablet@crf.canon.fr>
871
872         [Streams API] Vended promise capabilities should not need @resolve/@reject fields
873         https://bugs.webkit.org/show_bug.cgi?id=150835
874
875         Reviewed by Darin Adler.
876
877         No change in behavior, covered by existing tests.
878
879         * Modules/streams/ReadableStreamInternals.js:
880         (privateInitializeReadableStreamReader): Removed @resolve/@reject fields from resolved/rejected @closedPromiseCapability.
881         * Modules/streams/WritableStream.js:
882         (initializeWritableStream): Removed @resolve/@reject fields from resolved readyPromiseCapability.
883         * Modules/streams/WritableStreamInternals.js:
884         (syncWritableStreamStateWithQueue): Updated code to be closer to spec and removing the need to resolve an already resolved promise.
885
886 2015-11-03  Hunseop Jeong  <hs85.jeong@samsung.com>
887
888         Replace 0 and NULL with nullptr in WebCore/dom.
889         https://bugs.webkit.org/show_bug.cgi?id=150788
890
891         Reviewed by Darin Adler.
892
893         No new tests because there is no behavior change.
894
895         * dom/Attr.cpp:
896         (WebCore::Attr::Attr):
897         (WebCore::Attr::detachFromElementWithValue):
898         (WebCore::Attr::attachToElement):
899         * dom/Attr.h:
900         * dom/CheckedRadioButtons.cpp:
901         (WebCore::RadioButtonGroup::updateCheckedState):
902         (WebCore::CheckedRadioButtons::checkedButtonForGroup):
903         (WebCore::CheckedRadioButtons::isInRequiredGroup):
904         * dom/ChildListMutationScope.cpp:
905         (WebCore::ChildListMutationAccumulator::enqueueMutationRecord):
906         * dom/ContainerNode.cpp:
907         (WebCore::ContainerNode::removeBetween):
908         * dom/ContainerNode.h:
909         (WebCore::ContainerNode::ContainerNode):
910         * dom/ContainerNodeAlgorithms.cpp:
911         (WebCore::notifyNodeRemovedFromDocument):
912         * dom/Document.h:
913         (WebCore::Document::wellFormed):
914         (WebCore::Document::scriptRunner):
915         (WebCore::Document::moduleLoader):
916         (WebCore::Document::currentScript):
917         (WebCore::Document::webkitFullscreenElement):
918         * dom/DocumentOrderedMap.h:
919         (WebCore::DocumentOrderedMap::MapEntry::MapEntry):
920         * dom/DocumentParser.cpp:
921         (WebCore::DocumentParser::detach):
922         (WebCore::DocumentParser::suspendScheduledTasks):
923         * dom/Element.cpp:
924         (WebCore::Element::setAttributeInternal):
925         (WebCore::Element::shadowRoot):
926         (WebCore::Element::blur):
927         (WebCore::Element::beforePseudoElement):
928         (WebCore::Element::afterPseudoElement):
929         (WebCore::Element::setBeforePseudoElement):
930         * dom/Event.cpp:
931         (WebCore::Event::Event):
932         * dom/Event.h:
933         (WebCore::Event::legacyReturnValue):
934         (WebCore::Event::setLegacyReturnValue):
935         (WebCore::Event::clipboardData):
936         * dom/EventContext.cpp:
937         (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):
938         * dom/EventDispatcher.cpp:
939         (WebCore::EventPath::lastContextIfExists):
940         (WebCore::EventDispatcher::dispatchEvent):
941         * dom/EventListenerMap.cpp:
942         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
943         (WebCore::EventListenerIterator::EventListenerIterator):
944         * dom/EventListenerMap.h:
945         * dom/EventTarget.cpp:
946         (WebCore::EventTarget::fireEventListeners):
947         * dom/FocusEvent.cpp:
948         (WebCore::FocusEventInit::FocusEventInit):
949         * dom/GenericEventQueue.cpp:
950         (WebCore::GenericEventQueue::enqueueEvent):
951         * dom/IdTargetObserverRegistry.h:
952         (WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
953         (WebCore::IdTargetObserverRegistry::notifyObservers):
954         * dom/IgnoreDestructiveWriteCountIncrementer.h:
955         (WebCore::IgnoreDestructiveWriteCountIncrementer::IgnoreDestructiveWriteCountIncrementer):
956         * dom/MessageEvent.cpp:
957         (WebCore::MessageEvent::MessageEvent):
958         * dom/MessageEvent.h:
959         * dom/MessagePort.cpp:
960         (WebCore::MessagePort::contextDestroyed):
961         (WebCore::MessagePort::dispatchMessages):
962         (WebCore::MessagePort::locallyEntangledPort):
963         (WebCore::MessagePort::disentanglePorts):
964         * dom/MouseEvent.cpp:
965         (WebCore::MouseEventInit::MouseEventInit):
966         (WebCore::MouseEvent::cloneFor):
967         * dom/MouseEvent.h:
968         (WebCore::MouseEvent::dataTransfer):
969         * dom/MouseRelatedEvent.cpp:
970         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
971         (WebCore::MouseRelatedEvent::computeRelativePosition):
972         * dom/MutationEvent.h:
973         * dom/Node.cpp:
974         (WebCore::Node::nodeLists):
975         (WebCore::Node::clearNodeLists):
976         (WebCore::Node::nonShadowBoundaryParentNode):
977         (WebCore::Node::parentOrShadowHostElement):
978         * dom/Node.h:
979         * dom/NodeRareData.h:
980         (WebCore::NodeListsNodeData::removeCachedCollection):
981         (WebCore::NodeListsNodeData::isEmpty):
982         * dom/PendingScript.cpp:
983         (WebCore::PendingScript::releaseElementAndClear):
984         * dom/PopStateEvent.cpp:
985         (WebCore::PopStateEvent::PopStateEvent):
986         * dom/Position.h:
987         (WebCore::Position::deprecatedNode):
988         (WebCore::Position::document):
989         (WebCore::Position::rootEditableElement):
990         * dom/PositionIterator.cpp:
991         (WebCore::PositionIterator::decrement):
992         * dom/PositionIterator.h:
993         (WebCore::PositionIterator::PositionIterator):
994         * dom/ProcessingInstruction.cpp:
995         (WebCore::ProcessingInstruction::ProcessingInstruction):
996         (WebCore::ProcessingInstruction::checkStyleSheet):
997         (WebCore::ProcessingInstruction::parseStyleSheet):
998         * dom/ProcessingInstruction.h:
999         * dom/RangeBoundaryPoint.h:
1000         (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
1001         * dom/ScriptElement.cpp:
1002         (WebCore::ScriptElement::ScriptElement):
1003         (WebCore::ScriptElement::stopLoadRequest):
1004         (WebCore::ScriptElement::notifyFinished):
1005         (WebCore::ScriptElement::ignoresLoadRequest):
1006         * dom/ScriptedAnimationController.h:
1007         (WebCore::ScriptedAnimationController::create):
1008         (WebCore::ScriptedAnimationController::clearDocumentPointer):
1009         * dom/StyledElement.cpp:
1010         (WebCore::PresentationAttributeCacheKey::PresentationAttributeCacheKey):
1011         (WebCore::StyledElement::addSubresourceAttributeURLs):
1012         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
1013         * dom/StyledElement.h:
1014         (WebCore::StyledElement::additionalPresentationAttributeStyle):
1015         (WebCore::StyledElement::inlineStyle):
1016         * dom/TemplateContentDocumentFragment.h:
1017         * dom/TextEvent.cpp:
1018         (WebCore::TextEvent::TextEvent):
1019         * dom/UIEvent.cpp:
1020         (WebCore::UIEventInit::UIEventInit):
1021         * dom/UserTypingGestureIndicator.cpp:
1022         (WebCore::UserTypingGestureIndicator::UserTypingGestureIndicator):
1023         (WebCore::UserTypingGestureIndicator::~UserTypingGestureIndicator):
1024         * dom/ViewportArguments.cpp:
1025         (WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable):
1026         (WebCore::numericPrefix):
1027         * dom/default/PlatformMessagePortChannel.cpp:
1028         (WebCore::MessagePortChannel::disentangle):
1029         (WebCore::MessagePortChannel::postMessageToRemote):
1030         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
1031         * dom/default/PlatformMessagePortChannel.h:
1032
1033 2015-11-02  Wenson Hsieh  <wenson_hsieh@apple.com>
1034
1035         Tapping *below* some <input>s can focus them in Mobile Safari
1036         https://bugs.webkit.org/show_bug.cgi?id=146244
1037         <rdar://problem/21509310>
1038
1039         Reviewed by Darin Adler.
1040
1041         Removes iOS-specific logic in positionForPointRespectingEditingBoundaries that was causing us to focus inputs by
1042         tapping on the document element. We believe this logic, which causes VisiblePosition finding to recurse from a non-
1043         editable element to an editable child, is not necessary to focus editable elements underneath non-editable elements,
1044         since hit-testing will already have selected the contentEditable element prior to searching for a suitable
1045         VisiblePosition. Further investigation shows that this logic was added to fix <rdar://problem/5545799>, in which the
1046         first character in a Notes document could not be selected. However, I have not been able to reproduce this bug after
1047         removing this logic.
1048
1049         As a result of this change, we can also enable a WK1 test, editing/selection/click-outside-editable-div.html, that
1050         had also been marked as failing due to positionForPointRespectingEditingBoundaries recursing into a contentEditable
1051         div.
1052
1053         Test: fast/events/ios/clicking-document-should-not-trigger-focus.html
1054
1055         * rendering/RenderBlock.cpp:
1056         (WebCore::positionForPointRespectingEditingBoundaries): Deleted.
1057
1058 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
1059
1060         Update to match text-orientation spec
1061         https://bugs.webkit.org/show_bug.cgi?id=150765
1062
1063         Reviewed by Darin Adler.
1064
1065         The CSS spec has removed the "sideways-right" value of text-orientation in favor
1066         of "sideways." This patch makes the parser treat "sideways-right" the same as
1067         "sideways."
1068
1069         Test: fast/text/orientation-sideways-right.html
1070
1071         * css/CSSPrimitiveValueMappings.h:
1072         (WebCore::CSSPrimitiveValue::operator TextOrientation):
1073         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
1074         * rendering/style/RenderStyle.cpp:
1075         (WebCore::RenderStyle::fontAndGlyphOrientation): Deleted.
1076         * rendering/style/RenderStyleConstants.h:
1077
1078 2015-11-03  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1079
1080         [Streams API] Rework promises to use @newPromiseCapability
1081         https://bugs.webkit.org/show_bug.cgi?id=150627
1082
1083         Reviewed by Youenn Fablet.
1084
1085         We are removing the stream promises functions in favor of @newPromiseCapabity which basically provides the same
1086         functionality (keeping the resolve and reject functions without external slots). Slots and variables were
1087         renamed as *PromiseCapability to show that they no longer hold just a promise, but a promise capability.
1088
1089         Internal rework, no new tests needed.
1090
1091         * Modules/streams/ReadableStreamInternals.js:
1092         (privateInitializeReadableStreamReader.this.closedPromiseCapability.resolve):
1093         (privateInitializeReadableStreamReader.this.closedPromiseCapability.reject):
1094         (privateInitializeReadableStreamReader):
1095         (teeReadableStream):
1096         (teeReadableStreamBranch2CancelFunction):
1097         (errorReadableStream):
1098         (closeReadableStreamReader):
1099         (enqueueInReadableStream):
1100         (readFromReadableStreamReader):
1101         * Modules/streams/ReadableStreamReader.js:
1102         (closed):
1103         * Modules/streams/StreamInternals.js:
1104         (createNewStreamsPromise): Deleted.
1105         (resolveStreamsPromise): Deleted.
1106         (rejectStreamsPromise): Deleted.
1107         * Modules/streams/WritableStream.js:
1108         (this.readyPromiseCapability.resolve):
1109         (this.readyPromiseCapability.reject):
1110         (initializeWritableStream):
1111         (close):
1112         (write):
1113         (closed):
1114         (ready):
1115         * Modules/streams/WritableStreamInternals.js:
1116         (syncWritableStreamStateWithQueue):
1117         (errorWritableStream):
1118         * bindings/js/WebCoreBuiltinNames.h:
1119
1120 2015-11-03  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1121
1122         Move webkitGetUserMedia to JS Builtin
1123         https://bugs.webkit.org/show_bug.cgi?id=149499
1124
1125         Reviewed by Darin Adler.
1126
1127         Implemented webkitGetUserMedia as a JSBuiltin wrapper around navigator.mediaDevices.getUserMedia.
1128
1129         Removed cpp based version.
1130
1131         The js builting implementation checks for argument but does not raise exception when the request is not supported.
1132         The error callback is called instead, in an asynchronous fashion.
1133         The js builtin implementation does not check first that it is called on navigator, contrary to the cpp implementation.
1134         This is done afterwards when calling navigator.MediaDevices.@getUserMedia.
1135
1136         Covered by existing and modified tests.
1137
1138         * CMakeLists.txt: Adding NavigatorUserMedia.js as built-in JS file.
1139         * DerivedSources.make: Ditto.
1140         * Modules/mediastream/NavigatorUserMedia.idl: Making webkitGetUserMedia JSBuiltin
1141         * Modules/mediastream/NavigatorUserMedia.js:
1142         (webkitGetUserMedia):
1143         * Modules/mediastream/NavigatorUserMediaErrorCallback.h: Removed.
1144         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl: Removed.
1145         * Modules/mediastream/NavigatorUserMediaSuccessCallback.h: Removed.
1146         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl: Removed.
1147         * Modules/mediastream/UserMediaRequest.cpp:
1148         * Modules/mediastream/UserMediaRequest.h:
1149         * WebCore.xcodeproj/project.pbxproj:
1150         * bindings/js/JSDOMWindowBase.cpp:
1151         (WebCore::JSDOMWindowBase::finishCreation): Style modifications.
1152         * bindings/js/JSNavigatorCustom.cpp: Removed.
1153         * bindings/js/WebCoreJSBuiltins.cpp: Adding support for NavigatorUserMedia.js built-in JS file.
1154         * bindings/js/WebCoreJSBuiltins.h: Ditto.
1155         (WebCore::JSBuiltinFunctions::JSBuiltinFunctions):
1156         (WebCore::JSBuiltinFunctions::navigatorUserMediaBuiltins):
1157
1158 2015-11-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1159
1160         [GStreamer] Use GstBus sync message handler and schedule tasks to the main thread with RunLoop::dispatch
1161         https://bugs.webkit.org/show_bug.cgi?id=150800
1162
1163         Reviewed by Philippe Normand.
1164
1165         This way we would avoid all the GScource + polling mechanism that
1166         GST uses internally to handle messages asynchronously in the main thread.
1167
1168         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1169         (WTF::adoptGRef):
1170         (WTF::refGPtr<GstMessage>):
1171         (WTF::derefGPtr<GstMessage>):
1172         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
1173         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1174         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1175         Initialize the WeakPtr factory.
1176         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
1177         reset the GstBus sync handler.
1178         (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Make it void.
1179         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Add a
1180         GstBus sync message handler and schedule the messages to the main
1181         thread with RunLoop::main().dispatch().
1182         (WebCore::mediaPlayerPrivateMessageCallback): Deleted.
1183         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1184         (WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Create a WeakPtr.
1185         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1186         (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
1187         Handle the need context message that needs to be handled in the
1188         caller thread.
1189         (WebCore::mediaPlayerPrivateNeedContextMessageCallback): Deleted.
1190         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
1191         (WebCore::MediaPlayerPrivateGStreamerBase::setPipeline): Do not
1192         connect to sync-message signal, handleSyncMessage() will be called
1193         to handled messages synchronously.
1194         (WebCore::MediaPlayerPrivateGStreamerBase::handleNeedContextMessage): Deleted.
1195         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1196
1197 2015-11-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1198
1199         [GStreamer] Cleanup the iradio properties
1200         https://bugs.webkit.org/show_bug.cgi?id=148522
1201
1202         Reviewed by Philippe Normand.
1203
1204         Remove unused icecast code.
1205
1206         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1207         (StreamingClient::handleResponseReceived):
1208         (webKitWebSrcGetProperty): Deleted.
1209         (webKitWebSrcStop): Deleted.
1210
1211 2015-11-02  Keith Rollin  <krollin@apple.com>
1212
1213         input[type=number] does not increment/decrement integers with trailing decimal characters
1214         https://bugs.webkit.org/show_bug.cgi?id=148867
1215         rdar://problem/22589693
1216
1217         Reviewed by Chris Dumez.
1218
1219         Support input[type=number].value attributes of the form "###." (that
1220         is, leading digits with a decimal but no trailing digits). This form
1221         was supported in the setting of the attribute, but not when changing
1222         it through stepUp/Down.
1223
1224         Testing turned up similarly incorrect processing of -.###, so
1225         addressed that, too.
1226
1227         Test: fast/forms/range/input-appearance-range-decimals.html
1228
1229         Updated the following tests:
1230         - fast/forms/number/number-stepup-stepdown-from-renderer.html
1231         - fast/forms/number/number-stepup-stepdown.html
1232         - fast/forms/range/range-stepup-stepdown-from-renderer.html
1233         - fast/forms/range/range-stepup-stepdown.html
1234
1235         * html/InputType.cpp:
1236         (WebCore::InputType::stepUpFromRenderer):
1237         * platform/Decimal.cpp:
1238         (WebCore::Decimal::fromString):
1239
1240 2015-11-02  Jiewen Tan  <jiewen_tan@apple.com>
1241
1242         Null dereference loading Blink layout test fast/css/background-repeat-null-y-crash.html
1243         https://bugs.webkit.org/show_bug.cgi?id=150211
1244         <rdar://problem/23137321>
1245
1246         Reviewed by Alex Christensen.
1247
1248         This is a merge of Blink r188842:
1249         https://codereview.chromium.org/846933002
1250
1251         By setting the backgroundRepeatY property to null it can
1252         happen that accessing that CSS value returns a null pointer.
1253         In that case simply bail out early.
1254
1255         Test: fast/css/background-repeat-null-y-crash.html
1256
1257         * css/StyleProperties.cpp:
1258         (WebCore::StyleProperties::getLayeredShorthandValue):
1259
1260 2015-11-02  Myles C. Maxfield  <mmaxfield@apple.com>
1261
1262         [Vertical Writing Mode] Rename "vertical-right" CSS value to match spec
1263         https://bugs.webkit.org/show_bug.cgi?id=150766
1264
1265         Reviewed by Darin Adler.
1266
1267         The spec has changed the initial value of text-orientation from "vertical-right"
1268         to "mixed." This patch follows this movement, but also keeps the existing
1269         property working (the parser will treat both values the same).
1270
1271         Test: fast/text/vertical-mixed.html
1272
1273         * css/CSSParser.cpp:
1274         (WebCore::CSSParser::parseValue):
1275         * css/CSSPrimitiveValueMappings.h:
1276         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1277         (WebCore::CSSPrimitiveValue::operator TextOrientation):
1278         * css/CSSValueKeywords.in:
1279         * css/StyleResolver.cpp:
1280         (WebCore::checkForOrientationChange):
1281         * platform/graphics/FontCascadeFonts.cpp:
1282         (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation):
1283         * platform/graphics/FontDescription.cpp:
1284         (WebCore::FontDescription::FontDescription):
1285         * platform/graphics/cocoa/FontCascadeCocoa.mm:
1286         (WebCore::FontCascade::fontForCombiningCharacterSequence):
1287         * platform/text/TextFlags.h:
1288         * rendering/style/RenderStyle.cpp:
1289         (WebCore::RenderStyle::getFontAndGlyphOrientation):
1290         * rendering/style/RenderStyle.h:
1291         * rendering/style/RenderStyleConstants.h:
1292         * rendering/style/StyleRareInheritedData.cpp:
1293         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1294         * style/StyleResolveForDocument.cpp:
1295         (WebCore::Style::resolveForDocument):
1296
1297 2015-11-02  Myles C. Maxfield  <mmaxfield@apple.com>
1298
1299         [Cocoa] Support WOFF2
1300         https://bugs.webkit.org/show_bug.cgi?id=150830
1301
1302         Reviewed by Zalan Bujtas.
1303
1304         On platforms which support it, WebKit only needs to recognize WOFF2.
1305
1306         Test: fast/text/woff2.html
1307
1308         * platform/graphics/mac/FontCustomPlatformData.cpp:
1309         (WebCore::FontCustomPlatformData::supportsFormat):
1310
1311 2015-11-02  Nan Wang  <n_wang@apple.com>
1312
1313         AX: Add support for ARIA 1.1 attribute 'aria-modal' for dialog and alertdialog
1314         https://bugs.webkit.org/show_bug.cgi?id=138566
1315
1316         Reviewed by Chris Fleizach.
1317
1318         Added support for aria-modal attribute on dialog/alertdialog roles.
1319         When modal dialog is displayed, all other contents will be unaccessible.
1320
1321         Tests: accessibility/aria-modal-multiple-dialogs.html
1322                accessibility/aria-modal.html
1323
1324         * accessibility/AXObjectCache.cpp:
1325         (WebCore::AXObjectCache::AXObjectCache):
1326         (WebCore::AXObjectCache::~AXObjectCache):
1327         (WebCore::AXObjectCache::findAriaModalNodes):
1328         (WebCore::AXObjectCache::updateCurrentAriaModalNode):
1329         (WebCore::AXObjectCache::isNodeVisible):
1330         (WebCore::AXObjectCache::ariaModalNode):
1331         (WebCore::AXObjectCache::focusedImageMapUIElement):
1332         (WebCore::AXObjectCache::remove):
1333         (WebCore::AXObjectCache::handleAttributeChanged):
1334         (WebCore::AXObjectCache::handleAriaModalChange):
1335         (WebCore::AXObjectCache::labelChanged):
1336         * accessibility/AXObjectCache.h:
1337         (WebCore::AXObjectCache::handleActiveDescendantChanged):
1338         (WebCore::AXObjectCache::handleAriaExpandedChange):
1339         (WebCore::AXObjectCache::handleAriaRoleChanged):
1340         (WebCore::AXObjectCache::handleAriaModalChange):
1341         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1342         (WebCore::AXObjectCache::handleScrollbarUpdate):
1343         (WebCore::AXObjectCache::handleAttributeChanged):
1344         * accessibility/AccessibilityObject.cpp:
1345         (WebCore::AccessibilityObject::ariaCurrentState):
1346         (WebCore::AccessibilityObject::isAriaModalDescendant):
1347         (WebCore::AccessibilityObject::ignoredFromARIAModalPresence):
1348         (WebCore::AccessibilityObject::hasTagName):
1349         (WebCore::AccessibilityObject::defaultObjectInclusion):
1350         * accessibility/AccessibilityObject.h:
1351         * html/HTMLAttributeNames.in:
1352
1353 2015-11-02  Brady Eidson  <beidson@apple.com>
1354
1355         Modern IDB: IBDObjectStore.delete() support.
1356         https://bugs.webkit.org/show_bug.cgi?id=150784
1357
1358         Reviewed by Alex Christensen.
1359
1360         Tests: storage/indexeddb/modern/idbobjectstore-delete-1.html
1361                storage/indexeddb/modern/idbobjectstore-delete-2.html
1362                storage/indexeddb/modern/idbobjectstore-delete-failures.html
1363
1364         * Modules/indexeddb/IDBKeyRangeData.cpp:
1365         (WebCore::IDBKeyRangeData::isValid):
1366         * Modules/indexeddb/IDBKeyRangeData.h:
1367         
1368         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1369         (WebCore::IDBClient::IDBConnectionToServer::deleteRecord):
1370         (WebCore::IDBClient::IDBConnectionToServer::didDeleteRecord):
1371         * Modules/indexeddb/client/IDBConnectionToServer.h:
1372         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
1373         
1374         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1375         (WebCore::IDBClient::IDBObjectStore::get):
1376         (WebCore::IDBClient::IDBObjectStore::deleteFunction):
1377         
1378         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1379         (WebCore::IDBClient::IDBTransaction::requestDeleteRecord):
1380         (WebCore::IDBClient::IDBTransaction::deleteRecordOnServer):
1381         (WebCore::IDBClient::IDBTransaction::didDeleteRecordOnServer):
1382         * Modules/indexeddb/client/IDBTransactionImpl.h:
1383         
1384         * Modules/indexeddb/server/IDBBackingStore.h:
1385         
1386         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
1387         (WebCore::IDBServer::IDBConnectionToClient::didDeleteRecord):
1388         * Modules/indexeddb/server/IDBConnectionToClient.h:
1389         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
1390         
1391         * Modules/indexeddb/server/IDBServer.cpp:
1392         (WebCore::IDBServer::IDBServer::deleteRecord):
1393         * Modules/indexeddb/server/IDBServer.h:
1394         
1395         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1396         (WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
1397         (WebCore::IDBServer::MemoryIDBBackingStore::deleteRecord): Deleted.
1398         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
1399         
1400         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1401         (WebCore::IDBServer::MemoryObjectStore::deleteRange):
1402         * Modules/indexeddb/server/MemoryObjectStore.h:
1403         
1404         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1405         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
1406         (WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
1407         (WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
1408         (WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteRecord):
1409         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1410         
1411         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
1412         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
1413         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
1414         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
1415         
1416         * Modules/indexeddb/shared/IDBResultData.cpp:
1417         (WebCore::IDBResultData::deleteRecordSuccess):
1418         * Modules/indexeddb/shared/IDBResultData.h:
1419         
1420         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1421         (WebCore::InProcessIDBServer::didDeleteRecord):
1422         (WebCore::InProcessIDBServer::deleteRecord):
1423         * Modules/indexeddb/shared/InProcessIDBServer.h:
1424
1425 2015-11-02  Andy Estes  <aestes@apple.com>
1426
1427         Fix the iOS build again.
1428
1429         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: supportsPictureInPicture() needs to be declared even when
1430         AVKit is disabled.
1431
1432 2015-11-02  Tim Horton  <timothy_horton@apple.com>
1433
1434         PDFPlugin should take advantage of threaded scrolling
1435         https://bugs.webkit.org/show_bug.cgi?id=150037
1436
1437         Reviewed by Anders Carlsson.
1438
1439         * page/PageOverlay.cpp:
1440         (WebCore::PageOverlay::PageOverlay):
1441         (WebCore::PageOverlay::setNeedsDisplay):
1442         Don't reset the overlay layer's opacity if we're not animating,
1443         because it's possible the client wants to manage it.
1444
1445         * page/PageOverlayController.cpp:
1446         (WebCore::PageOverlayController::updateForceSynchronousScrollLayerPositionUpdates):
1447         Let the overlay itself determine whether it needes synchronous scrolling,
1448         and let PageOverlay clients override the default.
1449
1450         * platform/Widget.h:
1451         (WebCore::Widget::boundsRect):
1452         Export a few useful things.
1453
1454 2015-11-02  Chris Dumez  <cdumez@apple.com>
1455
1456         Regression(r191673): Crash in RunLoopTimer::schedule()
1457         https://bugs.webkit.org/show_bug.cgi?id=150816
1458         <rdar://problem/23335285>
1459
1460         Reviewed by Anders Carlsson.
1461
1462         The crash was happening when the RunLoopTimer would fire during the
1463         call to RunLoopTimer::schedule(), which can happen because we are
1464         calling schedule() from a background thread. In such case, the
1465         timerFired() callback execution would cause |this| to get destroyed.
1466
1467         To avoid this issue, DecodingResultDispatcher is now ref-counted. The
1468         object is ref'd while calling startTimer() so that the object cannot go
1469         away during the execution of this method. Also, we explicitly ref the
1470         object when starting the timer to keep the object alive until the
1471         RunLoopTimer has fired, at which point we explicitely de-ref.
1472
1473         This should handle correctly the cases where the RunLoopTimer fires
1474         during AND after the execution of startTimer().
1475
1476         * platform/network/DataURLDecoder.cpp:
1477         (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch):
1478         (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer):
1479         (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired):
1480
1481 2015-11-02  Andy Estes  <aestes@apple.com>
1482
1483         [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
1484         https://bugs.webkit.org/show_bug.cgi?id=150819
1485
1486         Reviewed by Dan Bernstein.
1487
1488         This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.
1489
1490         * Configurations/Base.xcconfig:
1491
1492 2015-11-02  Brent Fulgham  <bfulgham@apple.com>
1493
1494         [Win] MiniBrowser unable to use WebInspector
1495         https://bugs.webkit.org/show_bug.cgi?id=150810
1496         <rdar://problem/23358514>
1497
1498         Reviewed by Timothy Hatcher.
1499
1500         The CMakeList rule for creating the InjectedScriptSource.min.js was improperly including
1501         the quote characters in the text prepended to InjectedScriptSource.min.js. This caused a
1502         parsing error in the JS file.
1503         
1504         The solution was to switch from using "COMMAND echo" to use the more cross-platform
1505         compatible command "COMMAND ${CMAKE_COMMAND} -E echo ...", which handles the string
1506         escaping properly on all platforms.
1507
1508         * CMakeLists.txt: Switch the 'echo' command syntax to be more cross-platform.
1509
1510 2015-11-02  Zalan Bujtas  <zalan@apple.com>
1511
1512         hasOverflowClip() does not necessarily mean valid layer().
1513         https://bugs.webkit.org/show_bug.cgi?id=150814
1514
1515         Reviewed by Simon Fraser.
1516
1517         Certain RenderLayerModelObject derived classes simply return false for ::requiresLayer(), which means
1518         that we end up not creating a layer for the overflow clipped content.   
1519
1520         No change in functionality.
1521
1522         * rendering/RenderBlock.cpp:
1523         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
1524         (WebCore::RenderBlock::paint):
1525         * rendering/RenderBox.cpp:
1526         (WebCore::RenderBox::styleDidChange):
1527         (WebCore::RenderBox::scrollWidth):
1528         (WebCore::RenderBox::scrollHeight):
1529         (WebCore::RenderBox::scrollLeft):
1530         (WebCore::RenderBox::scrollTop):
1531         (WebCore::RenderBox::setScrollLeft):
1532         (WebCore::RenderBox::setScrollTop):
1533         (WebCore::RenderBox::includeVerticalScrollbarSize):
1534         (WebCore::RenderBox::includeHorizontalScrollbarSize):
1535         (WebCore::RenderBox::intrinsicScrollbarLogicalWidth):
1536         (WebCore::RenderBox::usesCompositedScrolling):
1537
1538 2015-11-02  Alex Christensen  <achristensen@webkit.org>
1539
1540         Fix Mac CMake build after r191904.
1541
1542         * PlatformMac.cmake:
1543         Move SettingsMac.mm to SettingsCocoa.mm.
1544
1545 2015-11-02  Eric Carlson  <eric.carlson@apple.com>
1546
1547         Add HTMLMediaElement behavior and attribute value restrictions for MediaStream
1548         https://bugs.webkit.org/show_bug.cgi?id=146853
1549
1550         Reviewed by Jer Noble.
1551
1552         * Modules/mediastream/MediaStream.cpp:
1553         (WebCore::MediaStream::scheduleActiveStateChange): Do nothing if the active state hasn't changed.
1554         (WebCore::MediaStream::activityEventTimerFired): Remove FIXME.
1555
1556         * Modules/mediastream/MediaStreamTrack.cpp:
1557         (WebCore::MediaStreamTrack::stopProducingData): Add comments. Notify observers that the track ended.
1558         (WebCore::MediaStreamTrack::trackEnded): Don't dispatch events after having been stopped.
1559         (WebCore::MediaStreamTrack::trackMutedChanged): Ditto.
1560
1561         * html/HTMLMediaElement.cpp:
1562         (WebCore::HTMLMediaElement::defaultPlaybackRate): Always return 1 when using a MediaStream.
1563         (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Do nothing when using a MediaStream.
1564         (WebCore::HTMLMediaElement::playbackRate): Always return 1 when using a MediaStream.
1565         (WebCore::HTMLMediaElement::setPlaybackRate): Do nothing when using a MediaStream.
1566         (WebCore::HTMLMediaElement::ended): Ask the media engine when using a MediaStream.
1567         (WebCore::HTMLMediaElement::preload): Always return "none" when using a MediaStream.
1568         (WebCore::HTMLMediaElement::setPreload): Do nothing when using a MediaStream.
1569         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Avoid unnecessary comparisons when the duration
1570           is not definite. Send ended event when MediaStream says stream has ended.
1571
1572         * platform/graphics/MediaPlayer.cpp:
1573         (WebCore::MediaPlayer::ended): New, passthrough to engine.
1574         * platform/graphics/MediaPlayer.h:
1575         * platform/graphics/MediaPlayerPrivate.h:
1576
1577         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
1578         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
1579         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Set m_ended from stream.
1580         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad): Pause the stream if necessary.
1581         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Return early if ended or already playing.
1582         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Return early if ended or already paused.
1583         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): Cleanup. Try to grab a paused
1584           image if the stream isn't active.
1585         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateReadyState): New.
1586         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Call updateReadyState.
1587         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::characteristicsChanged): Ditto.
1588
1589         * platform/mediastream/MediaStreamPrivate.cpp:
1590         (WebCore::MediaStreamPrivate::trackEnabledChanged): Call updateActiveState so the state will
1591           be updated if necessary.
1592
1593         * platform/mediastream/RealtimeMediaSource.cpp:
1594         (WebCore::RealtimeMediaSource::stop): Don't call reset, there is no need to tear everything down.
1595
1596 2015-10-31  Andy Estes  <aestes@apple.com>
1597
1598         Replace iOS-only WebKitSystemInterface calls with SPI
1599         https://bugs.webkit.org/show_bug.cgi?id=150763
1600
1601         Reviewed by Darin Adler.
1602
1603         * WebCore.xcodeproj/project.pbxproj:
1604         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
1605         * css/MediaQueryEvaluator.cpp:
1606         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
1607         * html/HTMLMediaElement.cpp:
1608         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1609         * html/HTMLObjectElement.cpp:
1610         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
1611         * html/HTMLVideoElement.cpp:
1612         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1613         * page/NavigatorBase.cpp:
1614         * page/Settings.h:
1615         * page/ViewportConfiguration.cpp:
1616         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
1617         * page/ios/UserAgentIOS.mm:
1618         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
1619         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
1620         (WebCore::deviceName): Ditto for wkGetDeviceName().
1621         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
1622         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
1623         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
1624         * platform/PlatformScreen.h:
1625         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
1626         (WebCore::deviceClass):
1627         (WebCore::deviceName):
1628         (WebCore::deviceHasIPadCapability):
1629         * platform/ios/Device.h:
1630         * platform/ios/PlatformScreenIOS.mm:
1631         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
1632         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
1633         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
1634         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
1635         (WebCore::mobileGestaltFloatValue): Deleted.
1636         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
1637         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
1638         (iosDeviceClass): Deleted.
1639         * platform/ios/WebCoreSystemInterfaceIOS.mm:
1640         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
1641         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1642         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1643         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
1644         * platform/ios/wak/WAKWindow.mm:
1645         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
1646         (-[WAKWindow initWithFrame:]): Ditto.
1647         * platform/ios/wak/WKGraphics.mm:
1648         (WKGraphicsCreateImageFromBundleWithName): Ditto.
1649         (WKDrawPatternBitmap): Ditto.
1650         * platform/mac/WebCoreSystemInterface.h:
1651         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
1652         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
1653         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
1654         * rendering/RenderThemeIOS.mm: Included UIKitSPI.h instead of UIColorSPI.h, and removed unnecessary forward declarations for the iOS public SDK build.
1655
1656 2015-11-02  Commit Queue  <commit-queue@webkit.org>
1657
1658         Unreviewed, rolling out r191902.
1659         https://bugs.webkit.org/show_bug.cgi?id=150811
1660
1661         This change broke iOS builders (Requested by ryanhaddad on
1662         #webkit).
1663
1664         Reverted changeset:
1665
1666         "Replace iOS-only WebKitSystemInterface calls with SPI"
1667         https://bugs.webkit.org/show_bug.cgi?id=150763
1668         http://trac.webkit.org/changeset/191902
1669
1670 2015-10-31  Andy Estes  <aestes@apple.com>
1671
1672         Replace iOS-only WebKitSystemInterface calls with SPI
1673         https://bugs.webkit.org/show_bug.cgi?id=150763
1674
1675         Reviewed by Darin Adler.
1676
1677         * WebCore.xcodeproj/project.pbxproj:
1678         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
1679         * css/MediaQueryEvaluator.cpp:
1680         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
1681         * html/HTMLMediaElement.cpp:
1682         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1683         * html/HTMLObjectElement.cpp:
1684         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
1685         * html/HTMLVideoElement.cpp:
1686         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1687         * page/NavigatorBase.cpp:
1688         * page/Settings.h:
1689         * page/ViewportConfiguration.cpp:
1690         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
1691         * page/ios/UserAgentIOS.mm:
1692         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
1693         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
1694         (WebCore::deviceName): Ditto for wkGetDeviceName().
1695         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
1696         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
1697         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
1698         * platform/PlatformScreen.h:
1699         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
1700         (WebCore::deviceClass):
1701         (WebCore::deviceName):
1702         (WebCore::deviceHasIPadCapability):
1703         * platform/ios/Device.h:
1704         * platform/ios/PlatformScreenIOS.mm:
1705         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
1706         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
1707         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
1708         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
1709         (WebCore::mobileGestaltFloatValue): Deleted.
1710         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
1711         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
1712         (iosDeviceClass): Deleted.
1713         * platform/ios/WebCoreSystemInterfaceIOS.mm:
1714         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
1715         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1716         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
1717         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
1718         * platform/ios/wak/WAKWindow.mm:
1719         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
1720         (-[WAKWindow initWithFrame:]): Ditto.
1721         * platform/ios/wak/WKGraphics.mm:
1722         (WKGraphicsCreateImageFromBundleWithName): Ditto.
1723         (WKDrawPatternBitmap): Ditto.
1724         * platform/mac/WebCoreSystemInterface.h:
1725         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
1726         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
1727         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
1728         * rendering/RenderThemeIOS.mm:
1729
1730 2015-11-02  Frederic Wang  <fred.wang@free.fr>
1731
1732         [Win] Add support for the USE_TYPO_METRICS flag
1733         https://bugs.webkit.org/show_bug.cgi?id=150451
1734
1735         Reviewed by Darin Adler.
1736
1737         Make the Windows backend use the typo metrics when the OS/2 USE_TYPO_METRICS flag is set.
1738
1739         No new tests because this is already tested by fonts/use-typo-metrics-1.html
1740
1741         * platform/graphics/win/SimpleFontDataCGWin.cpp:
1742         (WebCore::Font::platformInit):
1743         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
1744         (WebCore::Font::platformInit):
1745         * platform/graphics/win/SimpleFontDataWin.cpp:
1746         (WebCore::Font::initGDIFont):
1747
1748 2015-11-02  Hyunduk Kim  <hyunduk.kim@samsung.com>
1749
1750         Enable MediaSource::isTypeSupported() to handle the upper-cased MIME type & Codec
1751         https://bugs.webkit.org/show_bug.cgi?id=150436
1752
1753         Reviewed by Darin Adler.
1754
1755         Got the new test case from
1756         https://github.com/w3c/web-platform-tests/blob/master/media-source/mediasource-is-type-supported.html 
1757         Tests: http\tests\media\media-source\mediasource-is-type-supported.html
1758
1759         * Modules/mediasource/MediaSource.cpp:
1760         (WebCore::MediaSource::isTypeSupported):
1761
1762 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1763
1764         Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped
1765         https://bugs.webkit.org/show_bug.cgi?id=150613
1766
1767         Reviewed by Darin Adler.
1768
1769         Renaming impl to wrapped in classes and binding generated classes.
1770         No change in behavior.
1771
1772         * Modules/plugins/QuickTimePluginReplacement.mm:
1773         (WebCore::JSQuickTimePluginReplacement::timedMetaData):
1774         (WebCore::JSQuickTimePluginReplacement::accessLog):
1775         (WebCore::JSQuickTimePluginReplacement::errorLog):
1776         * bindings/js/JSAttrCustom.cpp:
1777         (WebCore::JSAttr::visitAdditionalChildren):
1778         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
1779         (WebCore::JSAudioBufferSourceNode::setBuffer):
1780         * bindings/js/JSAudioTrackCustom.cpp:
1781         (WebCore::JSAudioTrack::visitAdditionalChildren):
1782         (WebCore::JSAudioTrack::setKind):
1783         (WebCore::JSAudioTrack::setLanguage):
1784         * bindings/js/JSAudioTrackListCustom.cpp:
1785         (WebCore::JSAudioTrackList::visitAdditionalChildren):
1786         * bindings/js/JSBiquadFilterNodeCustom.cpp:
1787         (WebCore::JSBiquadFilterNode::setType):
1788         * bindings/js/JSCSSRuleCustom.cpp:
1789         (WebCore::JSCSSRule::visitAdditionalChildren):
1790         * bindings/js/JSCSSRuleListCustom.cpp:
1791         (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
1792         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1793         (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren):
1794         (WebCore::getPropertyValueFallback):
1795         (WebCore::cssPropertyGetterPixelOrPosPrefix):
1796         (WebCore::cssPropertyGetter):
1797         (WebCore::JSCSSStyleDeclaration::putDelegate):
1798         (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
1799         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
1800         * bindings/js/JSCSSValueCustom.cpp:
1801         (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
1802         (WebCore::JSCSSValueOwner::finalize):
1803         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1804         (WebCore::toHTMLCanvasStyle):
1805         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
1806         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
1807         (WebCore::JSCanvasRenderingContext2D::fillStyle):
1808         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
1809         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
1810         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
1811         * bindings/js/JSCanvasRenderingContextCustom.cpp:
1812         (WebCore::JSCanvasRenderingContext::visitAdditionalChildren):
1813         * bindings/js/JSCharacterDataCustom.cpp:
1814         (WebCore::JSCharacterData::before):
1815         (WebCore::JSCharacterData::after):
1816         (WebCore::JSCharacterData::replaceWith):
1817         * bindings/js/JSCommandLineAPIHostCustom.cpp:
1818         (WebCore::JSCommandLineAPIHost::inspectedObject):
1819         (WebCore::JSCommandLineAPIHost::getEventListeners):
1820         (WebCore::JSCommandLineAPIHost::inspect):
1821         (WebCore::JSCommandLineAPIHost::databaseId):
1822         (WebCore::JSCommandLineAPIHost::storageId):
1823         * bindings/js/JSCryptoCustom.cpp:
1824         (WebCore::JSCrypto::getRandomValues):
1825         * bindings/js/JSCryptoKeyCustom.cpp:
1826         (WebCore::JSCryptoKey::algorithm):
1827         * bindings/js/JSCryptoKeyPairCustom.cpp:
1828         (WebCore::JSCryptoKeyPair::visitAdditionalChildren):
1829         * bindings/js/JSCustomEventCustom.cpp:
1830         (WebCore::JSCustomEvent::detail):
1831         * bindings/js/JSCustomXPathNSResolver.cpp:
1832         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1833         * bindings/js/JSDOMBinding.cpp:
1834         (WebCore::reportException):
1835         (WebCore::activeDOMWindow):
1836         (WebCore::firstDOMWindow):
1837         * bindings/js/JSDOMFormDataCustom.cpp:
1838         (WebCore::toHTMLFormElementOrNull):
1839         (WebCore::JSDOMFormData::append):
1840         * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
1841         (WebCore::JSDOMMimeTypeArray::nameGetter):
1842         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
1843         (WebCore::JSDOMNamedFlowCollection::nameGetter):
1844         * bindings/js/JSDOMPluginArrayCustom.cpp:
1845         (WebCore::JSDOMPluginArray::nameGetter):
1846         * bindings/js/JSDOMPluginCustom.cpp:
1847         (WebCore::JSDOMPlugin::nameGetter):
1848         * bindings/js/JSDOMStringListCustom.cpp:
1849         (WebCore::JSDOMStringList::toWrapped):
1850         * bindings/js/JSDOMStringMapCustom.cpp:
1851         (WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
1852         (WebCore::JSDOMStringMap::getOwnPropertyNames):
1853         (WebCore::JSDOMStringMap::deleteProperty):
1854         (WebCore::JSDOMStringMap::putDelegate):
1855         * bindings/js/JSDOMTokenListCustom.cpp:
1856         (WebCore::JSDOMTokenList::toggle):
1857         * bindings/js/JSDOMWindowBase.cpp:
1858         (WebCore::shouldAllowAccessFrom):
1859         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
1860         (WebCore::JSDOMWindowBase::updateDocument):
1861         (WebCore::JSDOMWindowBase::scriptExecutionContext):
1862         (WebCore::JSDOMWindowBase::printErrorMessage):
1863         (WebCore::JSDOMWindowBase::supportsProfiling):
1864         (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
1865         (WebCore::JSDOMWindowBase::shouldInterruptScript):
1866         (WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
1867         (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
1868         (WebCore::JSDOMWindowBase::moduleLoaderResolve):
1869         (WebCore::JSDOMWindowBase::moduleLoaderFetch):
1870         (WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
1871         * bindings/js/JSDOMWindowBase.h:
1872         * bindings/js/JSDOMWindowCustom.cpp:
1873         (WebCore::JSDOMWindow::visitAdditionalChildren):
1874         (WebCore::childFrameGetter):
1875         (WebCore::namedItemGetter):
1876         (WebCore::jsDOMWindowWebKit):
1877         (WebCore::jsDOMWindowIndexedDB):
1878         (WebCore::JSDOMWindow::getOwnPropertySlot):
1879         (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
1880         (WebCore::JSDOMWindow::put):
1881         (WebCore::JSDOMWindow::putByIndex):
1882         (WebCore::JSDOMWindow::deleteProperty):
1883         (WebCore::JSDOMWindow::deletePropertyByIndex):
1884         (WebCore::JSDOMWindow::getEnumerableLength):
1885         (WebCore::JSDOMWindow::getStructurePropertyNames):
1886         (WebCore::JSDOMWindow::getGenericPropertyNames):
1887         (WebCore::JSDOMWindow::getPropertyNames):
1888         (WebCore::JSDOMWindow::getOwnPropertyNames):
1889         (WebCore::JSDOMWindow::defineOwnProperty):
1890         (WebCore::JSDOMWindow::setLocation):
1891         (WebCore::JSDOMWindow::open):
1892         (WebCore::JSDOMWindow::showModalDialog):
1893         (WebCore::JSDOMWindow::postMessage):
1894         (WebCore::JSDOMWindow::setTimeout):
1895         (WebCore::JSDOMWindow::setInterval):
1896         (WebCore::JSDOMWindow::addEventListener):
1897         (WebCore::JSDOMWindow::removeEventListener):
1898         (WebCore::JSDOMWindow::toWrapped):
1899         * bindings/js/JSDOMWindowShell.cpp:
1900         (WebCore::JSDOMWindowShell::setWindow):
1901         (WebCore::JSDOMWindowShell::wrapped):
1902         * bindings/js/JSDOMWindowShell.h:
1903         * bindings/js/JSDOMWrapper.h:
1904         (WebCore::JSDOMWrapper::wrapped):
1905         (WebCore::JSDOMWrapper::JSDOMWrapper):
1906         * bindings/js/JSDataCueCustom.cpp:
1907         (WebCore::JSDataCue::value):
1908         (WebCore::JSDataCue::setValue):
1909         * bindings/js/JSDataTransferCustom.cpp:
1910         (WebCore::JSDataTransfer::types):
1911         * bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp:
1912         (WebCore::JSDedicatedWorkerGlobalScope::postMessage):
1913         * bindings/js/JSDeviceMotionEventCustom.cpp:
1914         (WebCore::JSDeviceMotionEvent::acceleration):
1915         (WebCore::JSDeviceMotionEvent::accelerationIncludingGravity):
1916         (WebCore::JSDeviceMotionEvent::rotationRate):
1917         (WebCore::JSDeviceMotionEvent::interval):
1918         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
1919         * bindings/js/JSDeviceOrientationEventCustom.cpp:
1920         (WebCore::JSDeviceOrientationEvent::alpha):
1921         (WebCore::JSDeviceOrientationEvent::beta):
1922         (WebCore::JSDeviceOrientationEvent::gamma):
1923         (WebCore::JSDeviceOrientationEvent::webkitCompassHeading):
1924         (WebCore::JSDeviceOrientationEvent::webkitCompassAccuracy):
1925         (WebCore::JSDeviceOrientationEvent::absolute):
1926         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
1927         * bindings/js/JSDocumentCustom.cpp:
1928         (WebCore::JSDocument::prepend):
1929         (WebCore::JSDocument::append):
1930         * bindings/js/JSDocumentFragmentCustom.cpp:
1931         (WebCore::JSDocumentFragment::prepend):
1932         (WebCore::JSDocumentFragment::append):
1933         * bindings/js/JSDocumentTypeCustom.cpp:
1934         (WebCore::JSDocumentType::before):
1935         (WebCore::JSDocumentType::after):
1936         (WebCore::JSDocumentType::replaceWith):
1937         * bindings/js/JSElementCustom.cpp:
1938         (WebCore::JSElement::before):
1939         (WebCore::JSElement::after):
1940         (WebCore::JSElement::replaceWith):
1941         (WebCore::JSElement::prepend):
1942         (WebCore::JSElement::append):
1943         * bindings/js/JSEventCustom.cpp:
1944         (WebCore::JSEvent::clipboardData):
1945         * bindings/js/JSEventListener.cpp:
1946         (WebCore::JSEventListener::handleEvent):
1947         * bindings/js/JSEventTargetCustom.cpp:
1948         * bindings/js/JSFileReaderCustom.cpp:
1949         (WebCore::JSFileReader::result):
1950         * bindings/js/JSGeolocationCustom.cpp:
1951         (WebCore::JSGeolocation::getCurrentPosition):
1952         (WebCore::JSGeolocation::watchPosition):
1953         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1954         (WebCore::namedItems):
1955         (WebCore::callHTMLAllCollection):
1956         (WebCore::JSHTMLAllCollection::item):
1957         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1958         (WebCore::JSHTMLCanvasElement::getContext):
1959         (WebCore::JSHTMLCanvasElement::probablySupportsContext):
1960         (WebCore::JSHTMLCanvasElement::toDataURL):
1961         * bindings/js/JSHTMLCollectionCustom.cpp:
1962         (WebCore::JSHTMLCollection::nameGetter):
1963         * bindings/js/JSHTMLDocumentCustom.cpp:
1964         (WebCore::JSHTMLDocument::nameGetter):
1965         (WebCore::JSHTMLDocument::all):
1966         (WebCore::findCallingDocument):
1967         (WebCore::JSHTMLDocument::open):
1968         (WebCore::documentWrite):
1969         * bindings/js/JSHTMLElementCustom.cpp:
1970         (WebCore::JSHTMLElement::pushEventHandlerScope):
1971         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
1972         (WebCore::namedItems):
1973         * bindings/js/JSHTMLFormElementCustom.cpp:
1974         (WebCore::JSHTMLFormElement::nameGetter):
1975         * bindings/js/JSHTMLFrameElementCustom.cpp:
1976         (WebCore::JSHTMLFrameElement::setLocation):
1977         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
1978         (WebCore::JSHTMLFrameSetElement::nameGetter):
1979         * bindings/js/JSHTMLInputElementCustom.cpp:
1980         (WebCore::JSHTMLInputElement::selectionStart):
1981         (WebCore::JSHTMLInputElement::setSelectionStart):
1982         (WebCore::JSHTMLInputElement::selectionEnd):
1983         (WebCore::JSHTMLInputElement::setSelectionEnd):
1984         (WebCore::JSHTMLInputElement::selectionDirection):
1985         (WebCore::JSHTMLInputElement::setSelectionDirection):
1986         (WebCore::JSHTMLInputElement::setSelectionRange):
1987         * bindings/js/JSHTMLMediaElementCustom.cpp:
1988         (WebCore::JSHTMLMediaElement::setController):
1989         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1990         (WebCore::JSHTMLOptionsCollection::nameGetter):
1991         (WebCore::JSHTMLOptionsCollection::setLength):
1992         (WebCore::JSHTMLOptionsCollection::indexSetter):
1993         (WebCore::JSHTMLOptionsCollection::remove):
1994         * bindings/js/JSHTMLSelectElementCustom.cpp:
1995         (WebCore::JSHTMLSelectElement::remove):
1996         (WebCore::JSHTMLSelectElement::indexSetter):
1997         * bindings/js/JSHTMLTemplateElementCustom.cpp:
1998         (WebCore::JSHTMLTemplateElement::content):
1999         * bindings/js/JSHistoryCustom.cpp:
2000         (WebCore::JSHistory::getOwnPropertySlotDelegate):
2001         (WebCore::JSHistory::putDelegate):
2002         (WebCore::JSHistory::deleteProperty):
2003         (WebCore::JSHistory::deletePropertyByIndex):
2004         (WebCore::JSHistory::getOwnPropertyNames):
2005         (WebCore::JSHistory::state):
2006         (WebCore::JSHistory::pushState):
2007         (WebCore::JSHistory::replaceState):
2008         * bindings/js/JSIDBDatabaseCustom.cpp:
2009         (WebCore::JSIDBDatabase::createObjectStore):
2010         * bindings/js/JSIDBObjectStoreCustom.cpp:
2011         (WebCore::JSIDBObjectStore::createIndex):
2012         * bindings/js/JSInspectorFrontendHostCustom.cpp:
2013         (WebCore::JSInspectorFrontendHost::showContextMenu):
2014         * bindings/js/JSLocationCustom.cpp:
2015         (WebCore::JSLocation::getOwnPropertySlotDelegate):
2016         (WebCore::JSLocation::putDelegate):
2017         (WebCore::JSLocation::deleteProperty):
2018         (WebCore::JSLocation::deletePropertyByIndex):
2019         (WebCore::JSLocation::getOwnPropertyNames):
2020         (WebCore::JSLocation::toStringFunction):
2021         * bindings/js/JSMediaSourceStatesCustom.cpp:
2022         (WebCore::JSMediaSourceStates::width):
2023         (WebCore::JSMediaSourceStates::height):
2024         (WebCore::JSMediaSourceStates::frameRate):
2025         (WebCore::JSMediaSourceStates::aspectRatio):
2026         (WebCore::JSMediaSourceStates::facingMode):
2027         (WebCore::JSMediaSourceStates::volume):
2028         * bindings/js/JSMessageChannelCustom.cpp:
2029         (WebCore::JSMessageChannel::visitAdditionalChildren):
2030         * bindings/js/JSMessageEventCustom.cpp:
2031         (WebCore::JSMessageEvent::data):
2032         (WebCore::handleInitMessageEvent):
2033         * bindings/js/JSMessagePortCustom.cpp:
2034         (WebCore::JSMessagePort::visitAdditionalChildren):
2035         (WebCore::JSMessagePort::postMessage):
2036         * bindings/js/JSMockContentFilterSettingsCustom.cpp:
2037         (WebCore::JSMockContentFilterSettings::decisionPoint):
2038         (WebCore::JSMockContentFilterSettings::setDecisionPoint):
2039         (WebCore::JSMockContentFilterSettings::decision):
2040         (WebCore::JSMockContentFilterSettings::setDecision):
2041         (WebCore::JSMockContentFilterSettings::unblockRequestDecision):
2042         (WebCore::JSMockContentFilterSettings::setUnblockRequestDecision):
2043         * bindings/js/JSMutationObserverCustom.cpp:
2044         (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
2045         * bindings/js/JSNamedNodeMapCustom.cpp:
2046         (WebCore::JSNamedNodeMap::nameGetter):
2047         * bindings/js/JSNavigatorCustom.cpp:
2048         (WebCore::JSNavigator::webkitGetUserMedia):
2049         * bindings/js/JSNodeCustom.cpp:
2050         (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
2051         (WebCore::JSNode::insertBefore):
2052         (WebCore::JSNode::replaceChild):
2053         (WebCore::JSNode::removeChild):
2054         (WebCore::JSNode::appendChild):
2055         (WebCore::JSNode::visitAdditionalChildren):
2056         * bindings/js/JSNodeIteratorCustom.cpp:
2057         (WebCore::JSNodeIterator::visitAdditionalChildren):
2058         * bindings/js/JSNodeListCustom.cpp:
2059         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
2060         * bindings/js/JSNodeOrString.cpp:
2061         (WebCore::toNodeOrStringVector):
2062         * bindings/js/JSOscillatorNodeCustom.cpp:
2063         (WebCore::JSOscillatorNode::setType):
2064         * bindings/js/JSPannerNodeCustom.cpp:
2065         (WebCore::JSPannerNode::setPanningModel):
2066         (WebCore::JSPannerNode::setDistanceModel):
2067         * bindings/js/JSPluginElementFunctions.cpp:
2068         (WebCore::pluginScriptObjectFromPluginViewBase):
2069         (WebCore::pluginScriptObject):
2070         (WebCore::pluginElementGetCallData):
2071         * bindings/js/JSPopStateEventCustom.cpp:
2072         (WebCore::JSPopStateEvent::state):
2073         * bindings/js/JSRTCStatsResponseCustom.cpp:
2074         (WebCore::JSRTCStatsResponse::nameGetter):
2075         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2076         (WebCore::JSSQLResultSetRowList::item):
2077         * bindings/js/JSSQLTransactionCustom.cpp:
2078         (WebCore::JSSQLTransaction::executeSql):
2079         * bindings/js/JSSVGLengthCustom.cpp:
2080         (WebCore::JSSVGLength::value):
2081         (WebCore::JSSVGLength::setValue):
2082         (WebCore::JSSVGLength::convertToSpecifiedUnits):
2083         * bindings/js/JSStorageCustom.cpp:
2084         (WebCore::JSStorage::nameGetter):
2085         (WebCore::JSStorage::deleteProperty):
2086         (WebCore::JSStorage::getOwnPropertyNames):
2087         (WebCore::JSStorage::putDelegate):
2088         * bindings/js/JSStyleSheetCustom.cpp:
2089         (WebCore::JSStyleSheet::visitAdditionalChildren):
2090         * bindings/js/JSStyleSheetListCustom.cpp:
2091         (WebCore::JSStyleSheetList::nameGetter):
2092         * bindings/js/JSSubtleCryptoCustom.cpp:
2093         (WebCore::JSSubtleCrypto::encrypt):
2094         (WebCore::JSSubtleCrypto::decrypt):
2095         (WebCore::JSSubtleCrypto::sign):
2096         (WebCore::JSSubtleCrypto::verify):
2097         (WebCore::JSSubtleCrypto::wrapKey):
2098         (WebCore::JSSubtleCrypto::unwrapKey):
2099         * bindings/js/JSTextTrackCueCustom.cpp:
2100         (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
2101         (WebCore::JSTextTrackCue::visitAdditionalChildren):
2102         * bindings/js/JSTextTrackCustom.cpp:
2103         (WebCore::JSTextTrack::visitAdditionalChildren):
2104         (WebCore::JSTextTrack::setKind):
2105         (WebCore::JSTextTrack::setLanguage):
2106         * bindings/js/JSTextTrackListCustom.cpp:
2107         (WebCore::JSTextTrackList::visitAdditionalChildren):
2108         * bindings/js/JSTrackCustom.cpp:
2109         (WebCore::toTrack):
2110         * bindings/js/JSTrackEventCustom.cpp:
2111         (WebCore::JSTrackEvent::track):
2112         * bindings/js/JSTreeWalkerCustom.cpp:
2113         (WebCore::JSTreeWalker::visitAdditionalChildren):
2114         * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
2115         (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
2116         * bindings/js/JSVideoTrackCustom.cpp:
2117         (WebCore::JSVideoTrack::visitAdditionalChildren):
2118         (WebCore::JSVideoTrack::setKind):
2119         (WebCore::JSVideoTrack::setLanguage):
2120         * bindings/js/JSVideoTrackListCustom.cpp:
2121         (WebCore::JSVideoTrackList::visitAdditionalChildren):
2122         * bindings/js/JSWebGL2RenderingContextCustom.cpp:
2123         (WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):
2124         (WebCore::JSWebGL2RenderingContext::getIndexedParameter):
2125         * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
2126         (WebCore::getObjectParameter):
2127         (WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
2128         (WebCore::JSWebGLRenderingContextBase::getAttachedShaders):
2129         (WebCore::JSWebGLRenderingContextBase::getExtension):
2130         (WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter):
2131         (WebCore::JSWebGLRenderingContextBase::getParameter):
2132         (WebCore::JSWebGLRenderingContextBase::getProgramParameter):
2133         (WebCore::JSWebGLRenderingContextBase::getShaderParameter):
2134         (WebCore::JSWebGLRenderingContextBase::getSupportedExtensions):
2135         (WebCore::JSWebGLRenderingContextBase::getUniform):
2136         (WebCore::JSWebGLRenderingContextBase::uniform1fv):
2137         (WebCore::JSWebGLRenderingContextBase::uniform1iv):
2138         (WebCore::JSWebGLRenderingContextBase::uniform2fv):
2139         (WebCore::JSWebGLRenderingContextBase::uniform2iv):
2140         (WebCore::JSWebGLRenderingContextBase::uniform3fv):
2141         (WebCore::JSWebGLRenderingContextBase::uniform3iv):
2142         (WebCore::JSWebGLRenderingContextBase::uniform4fv):
2143         (WebCore::JSWebGLRenderingContextBase::uniform4iv):
2144         (WebCore::JSWebGLRenderingContextBase::uniformMatrix2fv):
2145         (WebCore::JSWebGLRenderingContextBase::uniformMatrix3fv):
2146         (WebCore::JSWebGLRenderingContextBase::uniformMatrix4fv):
2147         (WebCore::JSWebGLRenderingContextBase::vertexAttrib1fv):
2148         (WebCore::JSWebGLRenderingContextBase::vertexAttrib2fv):
2149         (WebCore::JSWebGLRenderingContextBase::vertexAttrib3fv):
2150         (WebCore::JSWebGLRenderingContextBase::vertexAttrib4fv):
2151         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2152         (WebCore::JSWebGLRenderingContext::visitAdditionalChildren):
2153         * bindings/js/JSWorkerCustom.cpp:
2154         (WebCore::JSWorker::postMessage):
2155         (WebCore::constructJSWorker):
2156         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2157         (WebCore::JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase):
2158         (WebCore::JSWorkerGlobalScopeBase::scriptExecutionContext):
2159         * bindings/js/JSWorkerGlobalScopeBase.h:
2160         (WebCore::JSWorkerGlobalScopeBase::wrapped):
2161         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
2162         (WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
2163         (WebCore::JSWorkerGlobalScope::importScripts):
2164         (WebCore::JSWorkerGlobalScope::setTimeout):
2165         (WebCore::JSWorkerGlobalScope::setInterval):
2166         * bindings/js/JSXMLHttpRequestCustom.cpp:
2167         (WebCore::JSXMLHttpRequest::visitAdditionalChildren):
2168         (WebCore::JSXMLHttpRequest::open):
2169         (WebCore::JSXMLHttpRequest::send):
2170         (WebCore::JSXMLHttpRequest::responseText):
2171         (WebCore::JSXMLHttpRequest::response):
2172         * bindings/js/JSXPathResultCustom.cpp:
2173         (WebCore::JSXPathResult::visitAdditionalChildren):
2174         * bindings/js/JSXSLTProcessorCustom.cpp:
2175         (WebCore::JSXSLTProcessor::setParameter):
2176         (WebCore::JSXSLTProcessor::getParameter):
2177         (WebCore::JSXSLTProcessor::removeParameter):
2178         * bindings/js/ScheduledAction.cpp:
2179         (WebCore::ScheduledAction::execute):
2180         * bindings/js/ScriptCachedFrameData.cpp:
2181         (WebCore::ScriptCachedFrameData::restore):
2182         * bindings/js/ScriptController.cpp:
2183         (WebCore::ScriptController::clearWindowShell):
2184         (WebCore::ScriptController::collectIsolatedContexts):
2185         * bindings/js/ScriptState.cpp:
2186         (WebCore::domWindowFromExecState):
2187         * bindings/objc/DOM.mm:
2188         (+[DOMNode _nodeFromJSWrapper:]):
2189         * bindings/objc/DOMUtility.mm:
2190         (JSC::createDOMWrapper):
2191         * bindings/objc/WebScriptObject.mm:
2192         (-[WebScriptObject _isSafeScript]):
2193         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
2194         * bindings/scripts/CodeGeneratorJS.pm:
2195         (GenerateGetOwnPropertySlotBody):
2196         (GenerateHeader):
2197         (GetIndexedGetterExpression):
2198         (GenerateImplementation):
2199         (NativeToJSValue):
2200         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2201         (WebCore::jsTestActiveDOMObjectExcitingAttr):
2202         (WebCore::jsTestActiveDOMObjectConstructor):
2203         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
2204         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
2205         (WebCore::JSTestActiveDOMObjectOwner::finalize):
2206         (WebCore::JSTestActiveDOMObject::toWrapped):
2207         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
2208         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
2209         (WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
2210         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2211         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
2212         (WebCore::JSTestCustomNamedGetterOwner::finalize):
2213         (WebCore::JSTestCustomNamedGetter::toWrapped):
2214         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2215         (WebCore::jsTestEventConstructorAttr1):
2216         (WebCore::jsTestEventConstructorAttr2):
2217         (WebCore::JSTestEventConstructorOwner::finalize):
2218         (WebCore::JSTestEventConstructor::toWrapped):
2219         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2220         (WebCore::JSTestEventTarget::getOwnPropertySlot):
2221         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
2222         (WebCore::JSTestEventTarget::getOwnPropertyNames):
2223         (WebCore::jsTestEventTargetPrototypeFunctionItem):
2224         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
2225         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
2226         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
2227         (WebCore::JSTestEventTarget::visitChildren):
2228         (WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
2229         (WebCore::JSTestEventTargetOwner::finalize):
2230         (WebCore::JSTestEventTarget::toWrapped):
2231         * bindings/scripts/test/JS/JSTestException.cpp:
2232         (WebCore::jsTestExceptionName):
2233         (WebCore::JSTestExceptionOwner::finalize):
2234         (WebCore::JSTestException::toWrapped):
2235         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2236         (WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
2237         (WebCore::JSTestGenerateIsReachableOwner::finalize):
2238         (WebCore::JSTestGenerateIsReachable::toWrapped):
2239         * bindings/scripts/test/JS/JSTestInterface.cpp:
2240         (WebCore::jsTestInterfaceImplementsStr1):
2241         (WebCore::jsTestInterfaceImplementsStr2):
2242         (WebCore::jsTestInterfaceImplementsNode):
2243         (WebCore::jsTestInterfaceSupplementalStr1):
2244         (WebCore::jsTestInterfaceSupplementalStr2):
2245         (WebCore::jsTestInterfaceSupplementalNode):
2246         (WebCore::setJSTestInterfaceImplementsStr2):
2247         (WebCore::setJSTestInterfaceImplementsNode):
2248         (WebCore::setJSTestInterfaceSupplementalStr2):
2249         (WebCore::setJSTestInterfaceSupplementalNode):
2250         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
2251         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
2252         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
2253         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
2254         (WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
2255         (WebCore::JSTestInterfaceOwner::finalize):
2256         (WebCore::JSTestInterface::toWrapped):
2257         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2258         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
2259         (WebCore::JSTestMediaQueryListListenerOwner::finalize):
2260         (WebCore::JSTestMediaQueryListListener::toWrapped):
2261         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2262         (WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
2263         (WebCore::JSTestNamedConstructorOwner::finalize):
2264         (WebCore::JSTestNamedConstructor::toWrapped):
2265         * bindings/scripts/test/JS/JSTestNode.cpp:
2266         (WebCore::jsTestNodeName):
2267         (WebCore::setJSTestNodeName):
2268         (WebCore::JSTestNode::visitChildren):
2269         * bindings/scripts/test/JS/JSTestNode.h:
2270         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2271         (WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
2272         (WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
2273         (WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
2274         (WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
2275         (WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
2276         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
2277         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
2278         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
2279         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
2280         (WebCore::jsTestNondeterministicPrototypeFunctionNondeterministicZeroArgFunction):
2281         (WebCore::JSTestNondeterministicOwner::finalize):
2282         (WebCore::JSTestNondeterministic::toWrapped):
2283         * bindings/scripts/test/JS/JSTestObj.cpp:
2284         (WebCore::jsTestObjReadOnlyLongAttr):
2285         (WebCore::jsTestObjReadOnlyStringAttr):
2286         (WebCore::jsTestObjReadOnlyTestObjAttr):
2287         (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
2288         (WebCore::jsTestObjEnumAttr):
2289         (WebCore::jsTestObjByteAttr):
2290         (WebCore::jsTestObjOctetAttr):
2291         (WebCore::jsTestObjShortAttr):
2292         (WebCore::jsTestObjUnsignedShortAttr):
2293         (WebCore::jsTestObjLongAttr):
2294         (WebCore::jsTestObjLongLongAttr):
2295         (WebCore::jsTestObjUnsignedLongLongAttr):
2296         (WebCore::jsTestObjStringAttr):
2297         (WebCore::jsTestObjTestObjAttr):
2298         (WebCore::jsTestObjXMLObjAttr):
2299         (WebCore::jsTestObjCreate):
2300         (WebCore::jsTestObjReflectedStringAttr):
2301         (WebCore::jsTestObjReflectedIntegralAttr):
2302         (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
2303         (WebCore::jsTestObjReflectedBooleanAttr):
2304         (WebCore::jsTestObjReflectedURLAttr):
2305         (WebCore::jsTestObjReflectedCustomIntegralAttr):
2306         (WebCore::jsTestObjReflectedCustomBooleanAttr):
2307         (WebCore::jsTestObjReflectedCustomURLAttr):
2308         (WebCore::jsTestObjTypedArrayAttr):
2309         (WebCore::jsTestObjAttrWithGetterException):
2310         (WebCore::jsTestObjAttrWithSetterException):
2311         (WebCore::jsTestObjStringAttrWithGetterException):
2312         (WebCore::jsTestObjStringAttrWithSetterException):
2313         (WebCore::jsTestObjStrictTypeCheckingAttribute):
2314         (WebCore::jsTestObjOnfoo):
2315         (WebCore::jsTestObjWithScriptStateAttribute):
2316         (WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
2317         (WebCore::jsTestObjWithScriptExecutionContextAttribute):
2318         (WebCore::jsTestObjWithScriptStateAttributeRaises):
2319         (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
2320         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
2321         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
2322         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
2323         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
2324         (WebCore::jsTestObjConditionalAttr1):
2325         (WebCore::jsTestObjConditionalAttr2):
2326         (WebCore::jsTestObjConditionalAttr3):
2327         (WebCore::jsTestObjCachedAttribute1):
2328         (WebCore::jsTestObjCachedAttribute2):
2329         (WebCore::jsTestObjAnyAttribute):
2330         (WebCore::jsTestObjContentDocument):
2331         (WebCore::jsTestObjMutablePoint):
2332         (WebCore::jsTestObjImmutablePoint):
2333         (WebCore::jsTestObjStrawberry):
2334         (WebCore::jsTestObjStrictFloat):
2335         (WebCore::jsTestObjDescription):
2336         (WebCore::jsTestObjId):
2337         (WebCore::jsTestObjHash):
2338         (WebCore::jsTestObjReplaceableAttribute):
2339         (WebCore::jsTestObjNullableDoubleAttribute):
2340         (WebCore::jsTestObjNullableLongAttribute):
2341         (WebCore::jsTestObjNullableBooleanAttribute):
2342         (WebCore::jsTestObjNullableStringAttribute):
2343         (WebCore::jsTestObjNullableLongSettableAttribute):
2344         (WebCore::jsTestObjNullableStringValue):
2345         (WebCore::jsTestObjAttribute):
2346         (WebCore::jsTestObjAttributeWithReservedEnumType):
2347         (WebCore::jsTestObjPutForwardsAttribute):
2348         (WebCore::jsTestObjPutForwardsNullableAttribute):
2349         (WebCore::setJSTestObjEnumAttr):
2350         (WebCore::setJSTestObjByteAttr):
2351         (WebCore::setJSTestObjOctetAttr):
2352         (WebCore::setJSTestObjShortAttr):
2353         (WebCore::setJSTestObjUnsignedShortAttr):
2354         (WebCore::setJSTestObjLongAttr):
2355         (WebCore::setJSTestObjLongLongAttr):
2356         (WebCore::setJSTestObjUnsignedLongLongAttr):
2357         (WebCore::setJSTestObjStringAttr):
2358         (WebCore::setJSTestObjTestObjAttr):
2359         (WebCore::setJSTestObjXMLObjAttr):
2360         (WebCore::setJSTestObjCreate):
2361         (WebCore::setJSTestObjReflectedStringAttr):
2362         (WebCore::setJSTestObjReflectedIntegralAttr):
2363         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
2364         (WebCore::setJSTestObjReflectedBooleanAttr):
2365         (WebCore::setJSTestObjReflectedURLAttr):
2366         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
2367         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
2368         (WebCore::setJSTestObjReflectedCustomURLAttr):
2369         (WebCore::setJSTestObjTypedArrayAttr):
2370         (WebCore::setJSTestObjAttrWithGetterException):
2371         (WebCore::setJSTestObjAttrWithSetterException):
2372         (WebCore::setJSTestObjStringAttrWithGetterException):
2373         (WebCore::setJSTestObjStringAttrWithSetterException):
2374         (WebCore::setJSTestObjStrictTypeCheckingAttribute):
2375         (WebCore::setJSTestObjOnfoo):
2376         (WebCore::setJSTestObjWithScriptStateAttribute):
2377         (WebCore::setJSTestObjWithCallWithAndSetterCallWithAttribute):
2378         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
2379         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
2380         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
2381         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
2382         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
2383         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
2384         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
2385         (WebCore::setJSTestObjConditionalAttr1):
2386         (WebCore::setJSTestObjConditionalAttr2):
2387         (WebCore::setJSTestObjConditionalAttr3):
2388         (WebCore::setJSTestObjAnyAttribute):
2389         (WebCore::setJSTestObjMutablePoint):
2390         (WebCore::setJSTestObjImmutablePoint):
2391         (WebCore::setJSTestObjStrawberry):
2392         (WebCore::setJSTestObjStrictFloat):
2393         (WebCore::setJSTestObjId):
2394         (WebCore::setJSTestObjNullableLongSettableAttribute):
2395         (WebCore::setJSTestObjNullableStringValue):
2396         (WebCore::setJSTestObjAttributeWithReservedEnumType):
2397         (WebCore::setJSTestObjPutForwardsAttribute):
2398         (WebCore::setJSTestObjPutForwardsNullableAttribute):
2399         (WebCore::jsTestObjPrototypeFunctionVoidMethod):
2400         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
2401         (WebCore::jsTestObjPrototypeFunctionByteMethod):
2402         (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
2403         (WebCore::jsTestObjPrototypeFunctionOctetMethod):
2404         (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
2405         (WebCore::jsTestObjPrototypeFunctionLongMethod):
2406         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
2407         (WebCore::jsTestObjPrototypeFunctionObjMethod):
2408         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
2409         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
2410         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2411         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2412         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
2413         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
2414         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
2415         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2416         (WebCore::jsTestObjPrototypeFunctionMethodWithException):
2417         (WebCore::jsTestObjPrototypeFunctionPrivateMethod):
2418         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
2419         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
2420         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
2421         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
2422         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
2423         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
2424         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
2425         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
2426         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
2427         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
2428         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
2429         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
2430         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue):
2431         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
2432         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
2433         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
2434         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue):
2435         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
2436         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
2437         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
2438         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
2439         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2440         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
2441         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
2442         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
2443         (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
2444         (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
2445         (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
2446         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
2447         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
2448         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
2449         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
2450         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
2451         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
2452         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
2453         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
2454         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
2455         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
2456         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
2457         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
2458         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
2459         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
2460         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
2461         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
2462         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
2463         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
2464         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
2465         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
2466         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
2467         (WebCore::jsTestObjPrototypeFunctionConvert1):
2468         (WebCore::jsTestObjPrototypeFunctionConvert2):
2469         (WebCore::jsTestObjPrototypeFunctionConvert4):
2470         (WebCore::jsTestObjPrototypeFunctionConvert5):
2471         (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
2472         (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
2473         (WebCore::jsTestObjPrototypeFunctionOrange):
2474         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
2475         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
2476         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
2477         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
2478         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
2479         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
2480         (WebCore::jsTestObjPrototypeFunctionAny):
2481         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
2482         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
2483         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
2484         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
2485         (WebCore::JSTestObjOwner::finalize):
2486         (WebCore::JSTestObj::toWrapped):
2487         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2488         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
2489         (WebCore::JSTestOverloadedConstructors::toWrapped):
2490         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
2491         (WebCore::JSTestOverrideBuiltins::getOwnPropertyNames):
2492         (WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
2493         (WebCore::JSTestOverrideBuiltinsOwner::finalize):
2494         (WebCore::JSTestOverrideBuiltins::toWrapped):
2495         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2496         (WebCore::jsTestSerializedScriptValueInterfaceValue):
2497         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
2498         (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
2499         (WebCore::jsTestSerializedScriptValueInterfacePorts):
2500         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
2501         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
2502         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
2503         (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
2504         (WebCore::JSTestSerializedScriptValueInterface::toWrapped):
2505         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2506         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
2507         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
2508         (WebCore::jsTestTypedefsAttrWithGetterException):
2509         (WebCore::jsTestTypedefsAttrWithSetterException):
2510         (WebCore::jsTestTypedefsStringAttrWithGetterException):
2511         (WebCore::jsTestTypedefsStringAttrWithSetterException):
2512         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
2513         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
2514         (WebCore::setJSTestTypedefsAttrWithGetterException):
2515         (WebCore::setJSTestTypedefsAttrWithSetterException):
2516         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
2517         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
2518         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
2519         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
2520         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
2521         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
2522         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
2523         (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
2524         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
2525         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
2526         (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
2527         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
2528         (WebCore::JSTestTypedefsOwner::finalize):
2529         (WebCore::JSTestTypedefs::toWrapped):
2530         * bindings/scripts/test/JS/JSattribute.cpp:
2531         (WebCore::jsattributeReadonly):
2532         (WebCore::JSattributeOwner::finalize):
2533         (WebCore::JSattribute::toWrapped):
2534         * bindings/scripts/test/JS/JSreadonly.cpp:
2535         (WebCore::JSreadonlyOwner::finalize):
2536         (WebCore::JSreadonly::toWrapped):
2537         * bridge/runtime_method.cpp:
2538         (JSC::callRuntimeMethod):
2539         * inspector/InspectorController.cpp:
2540         (WebCore::InspectorController::canAccessInspectedScriptState):
2541
2542 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
2543
2544         IDL functions and attributes should be JSBuiltin by default if interface is marked as JSBuiltinConstructor
2545         https://bugs.webkit.org/show_bug.cgi?id=150438
2546
2547         Reviewed by Darin Adler.
2548
2549         Binding generator is now deducing that function/attribute is JSBuiltin if the interface is marked as JSBuiltin.
2550         One exception is custom setters, getters or functions which remain C++ handled.
2551         Updated streams API IDLs accordingly.
2552
2553         Binding generator knows whether class needs a DOM class by checking whether the interface is marked as JSBuiltin.
2554         Binding generator knows that class uses a JS built-in constructor if marked as JSBuiltin+Constructor.
2555         In particular, JSBuiltIn+CustomConstructor means that a DOM class is not needed and constructor is not JS built-in.
2556
2557         Applied JSBuiltin+CustomConstructor to ReadableStreamReader and ReadableStreamController.
2558         Removing ReadableStreamReader and ReadableStreamController classes.
2559
2560         Removed unneeded "Default" keyword for cancel function in WebIDL.
2561
2562         Added a binding test case.
2563         No change in behavior.
2564
2565         * Modules/streams/ByteLengthQueuingStrategy.idl: Marking interface as JSBuiltin and Constructable.
2566         * Modules/streams/CountQueuingStrategy.idl: Ditto.
2567         * Modules/streams/ReadableStream.idl: Ditto.
2568         * Modules/streams/ReadableStreamController.h: Removed.
2569         * Modules/streams/ReadableStreamController.idl: Marking interface as JSBuiltin and Constructable.
2570         * Modules/streams/ReadableStreamReader.h: Removed.
2571         * Modules/streams/ReadableStreamReader.idl: Marking interface as JSBuiltin and Constructable.
2572         * Modules/streams/WritableStream.idl: Ditto.
2573         * bindings/js/JSReadableStreamPrivateConstructors.cpp:
2574         (WebCore::JSBuiltinReadableStreamReaderPrivateConstructor::createJSObject): Updated according new constructor.
2575         (WebCore::JSBuiltinReadableStreamControllerPrivateConstructor::createJSObject): Ditto.
2576         * bindings/scripts/CodeGeneratorJS.pm:
2577         (NeedsImplementationClass):
2578         (GetAttributeGetterName):
2579         (GetAttributeSetterName):
2580         (GetFunctionName):
2581         (InstanceNeedsVisitChildren):
2582         (GenerateHeader):
2583         (GenerateAttributesHashTable):
2584         (GenerateImplementation):
2585         (GetConstructorTemplateClassName):
2586         (GenerateConstructorDefinition):
2587         (GenerateConstructorHelperMethods):
2588         (IsConstructable):
2589         (ComputeFunctionSpecial):
2590         (IsJSBuiltin):
2591         (IsJSBuiltinConstructor):
2592         (AddJSBuiltinIncludesIfNeeded):
2593         (GetJSBuiltinFunctionName): Deleted.
2594         (GetJSBuiltinFunctionNameFromString): Deleted.
2595         (GetJSBuiltinScopeName): Deleted.
2596         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp:
2597         (webkit_dom_test_js_builtin_constructor_set_property):
2598         (webkit_dom_test_js_builtin_constructor_get_property):
2599         (webkit_dom_test_js_builtin_constructor_class_init):
2600         (webkit_dom_test_js_builtin_constructor_test_function):
2601         (webkit_dom_test_js_builtin_constructor_get_test_attribute):
2602         (webkit_dom_test_js_builtin_constructor_set_test_attribute):
2603         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h:
2604         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
2605         (WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
2606         (WebCore::JSTestJSBuiltinConstructor::getOwnPropertySlot):
2607         (WebCore::jsTestJSBuiltinConstructorTestAttribute):
2608         (WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
2609         (WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
2610         (WebCore::setJSTestJSBuiltinConstructorTestAttribute):
2611         (WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustom):
2612         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestFunction):
2613         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction):
2614         (WebCore::JSTestJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
2615         (WebCore::JSTestJSBuiltinConstructorOwner::finalize):
2616         (WebCore::toJSNewlyCreated):
2617         (WebCore::toJS):
2618         (WebCore::JSTestJSBuiltinConstructor::toWrapped):
2619         (WebCore::JSTestJSBuiltinConstructorPrototype::createStructure): Deleted.
2620         (WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties): Deleted.
2621         (WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
2622         (WebCore::JSTestJSBuiltinConstructor::getPrototype): Deleted.
2623         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
2624         (WebCore::JSTestJSBuiltinConstructor::create):
2625         (WebCore::JSTestJSBuiltinConstructor::finishCreation):
2626         (WebCore::wrapperOwner):
2627         (WebCore::toJS):
2628         (WebCore::JSTestJSBuiltinConstructor::createStructure): Deleted.
2629         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h:
2630         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:
2631         (-[DOMTestJSBuiltinConstructor testAttribute]):
2632         (-[DOMTestJSBuiltinConstructor setTestAttribute:]):
2633         (-[DOMTestJSBuiltinConstructor testAttributeCustom]):
2634         (-[DOMTestJSBuiltinConstructor testAttributeRWCustom]):
2635         (-[DOMTestJSBuiltinConstructor setTestAttributeRWCustom:]):
2636         (-[DOMTestJSBuiltinConstructor testFunction]):
2637         (-[DOMTestJSBuiltinConstructor testCustomFunction]):
2638         * bindings/scripts/test/TestJSBuiltinConstructor.idl:
2639
2640 2015-10-29  Sergio Villar Senin  <svillar@igalia.com>
2641
2642         [CSS Grid Layout] min-content row does not always shrink
2643         https://bugs.webkit.org/show_bug.cgi?id=144581
2644
2645         Reviewed by Zalan Bujtas.
2646
2647         Grid items height must be recomputed whenever the grid tracks
2648         change if the items had been previously stretched. In those
2649         cases we have to clear the override height and layout the item
2650         with the new row size.
2651
2652         Tests: fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html
2653                fast/css-grid-layout/relayout-indefinite-heights.html
2654
2655         * rendering/RenderGrid.cpp:
2656         (WebCore::RenderGrid::logicalContentHeightForChild):
2657
2658 2015-11-01  Brady Eidson  <beidson@apple.com>
2659
2660         Modern IDB: IBDObjectStore.count() support.
2661         https://bugs.webkit.org/show_bug.cgi?id=150785
2662
2663         Reviewed by Darin Adler.
2664
2665         Tests: storage/indexeddb/modern/idbobjectstore-count-1.html
2666                storage/indexeddb/modern/idbobjectstore-count-failures.html
2667
2668         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
2669         (WebCore::IDBClient::IDBConnectionToServer::getCount):
2670         (WebCore::IDBClient::IDBConnectionToServer::didGetCount):
2671         * Modules/indexeddb/client/IDBConnectionToServer.h:
2672         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
2673         
2674         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2675         (WebCore::IDBClient::IDBObjectStore::count):
2676         (WebCore::IDBClient::IDBObjectStore::doCount):
2677         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
2678         
2679         * Modules/indexeddb/client/IDBRequestImpl.cpp:
2680         (WebCore::IDBClient::IDBRequest::setResult):
2681         * Modules/indexeddb/client/IDBRequestImpl.h:
2682         
2683         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2684         (WebCore::IDBClient::IDBTransaction::requestCount):
2685         (WebCore::IDBClient::IDBTransaction::getCountOnServer):
2686         (WebCore::IDBClient::IDBTransaction::didGetCountOnServer):
2687         * Modules/indexeddb/client/IDBTransactionImpl.h:
2688         
2689         * Modules/indexeddb/server/IDBBackingStore.h:
2690         
2691         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
2692         (WebCore::IDBServer::IDBConnectionToClient::didGetCount):
2693         * Modules/indexeddb/server/IDBConnectionToClient.h:
2694         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
2695         
2696         * Modules/indexeddb/server/IDBServer.cpp:
2697         (WebCore::IDBServer::IDBServer::getCount):
2698         * Modules/indexeddb/server/IDBServer.h:
2699         
2700         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
2701         (WebCore::IDBServer::MemoryIDBBackingStore::getCount):
2702         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
2703         
2704         * Modules/indexeddb/server/MemoryObjectStore.cpp:
2705         (WebCore::IDBServer::MemoryObjectStore::countForKeyRange):
2706         (WebCore::IDBServer::MemoryObjectStore::valueForKeyRange):
2707         (WebCore::IDBServer::MemoryObjectStore::lowestKeyWithRecordInRange):
2708         * Modules/indexeddb/server/MemoryObjectStore.h:
2709         
2710         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2711         (WebCore::IDBServer::UniqueIDBDatabase::storeCallback):
2712         (WebCore::IDBServer::UniqueIDBDatabase::getCount):
2713         (WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
2714         (WebCore::IDBServer::UniqueIDBDatabase::didPerformGetCount):
2715         (WebCore::IDBServer::UniqueIDBDatabase::performCountCallback):
2716         * Modules/indexeddb/server/UniqueIDBDatabase.h:
2717         
2718         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
2719         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
2720         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
2721         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
2722         
2723         * Modules/indexeddb/shared/IDBResultData.cpp:
2724         (WebCore::IDBResultData::IDBResultData):
2725         (WebCore::IDBResultData::getCountSuccess):
2726         * Modules/indexeddb/shared/IDBResultData.h:
2727         (WebCore::IDBResultData::resultInteger):
2728         
2729         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
2730         (WebCore::InProcessIDBServer::didGetCount):
2731         (WebCore::InProcessIDBServer::getCount):
2732         * Modules/indexeddb/shared/InProcessIDBServer.h:
2733
2734 2015-11-01  Darin Adler  <darin@apple.com>
2735
2736         Tidy handling of type=color in HTMLInputElement a bit
2737         https://bugs.webkit.org/show_bug.cgi?id=150786
2738
2739         Reviewed by Andreas Kling.
2740
2741         * html/ColorInputType.cpp: Fix formatting.
2742         (WebCore::ColorInputType::fallbackValue): Use ASCIILiteral for slightly
2743         better performance.
2744         (WebCore::ColorInputType::sanitizeValue): Use convertToASCIILowercase,
2745         since there is no need for the general purpose Unicode lowercasing here;
2746         those non-ASCII characters aren't allowed by isValidColorString.
2747         (WebCore::ColorInputType::suggestions): Rewrote data list code to remove
2748         peculiarities such as using a null check to terminate the loop instead of
2749         the collection length, calling back to HTMLInputElement just to get the
2750         isValidColorString function called. Also used reserveInitialCapacity and
2751         uncheckedAppend for better memory use in the result vector.
2752         (WebCore::ColorInputType::selectColor): Added.
2753
2754         * html/ColorInputType.h: Made derivation from ColorChooserClient private.
2755         Made most functions private. Added overrides for valueAsColor and selectColor,
2756         now both virtual functions in InputType.
2757
2758         * html/HTMLInputElement.cpp: Removed now-unneeded include of ColorInputType.h.
2759         (WebCore::HTMLInputElement::valueAsColor): Added. Calls through to the InputType.
2760         In a later patch, will be used by accessibility code to get the color so it
2761         does not have to replicate the color parsing logic from this element.
2762         (WebCore::HTMLInputElement::selectColor): Renamed from selectColorInColorChooser,
2763         because the longer name is not clearer. Also made this non-conditional.
2764
2765         * html/HTMLInputElement.h: Added valueAsColor, renamed selectColorInColorChooser
2766         to selectColor and made it available unconditionally.
2767
2768         * html/InputType.cpp:
2769         (WebCore::InputType::valueAsColor): Added. Returns transparent color.
2770         (WebCore::InputType::selectColor): Added. Does nothing by default.
2771
2772         * html/InputType.h: Added virtual valueAsColor and selectColor. Also tidied
2773         up the header a bit and removed unneeded Noncopyable (since this class has
2774         a reference for one of the data members and so is intrinsically not copyable).
2775         Made isColorControl available unconditionally.
2776
2777         * testing/Internals.cpp:
2778         (WebCore::Internals::selectColorInColorChooser): Removed conditionals and
2779         made this call selectColor rather than selectColorInColorChooser.
2780
2781         * testing/Internals.h: Made selectColorInColorChooser unconditional.
2782
2783         * testing/Internals.idl: Made selectColorInColorChooser unconditionally
2784         present. Not important to optimize the test internals class by leaving it
2785         out when INPUT_TYPE_COLOR is not enabled.
2786
2787 2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2788
2789         [ES6] Support Generator Syntax
2790         https://bugs.webkit.org/show_bug.cgi?id=150769
2791
2792         Reviewed by Geoffrey Garen.
2793
2794         Added ENABLE_ES6_GENERATORS flag.
2795
2796         * Configurations/FeatureDefines.xcconfig:
2797
2798 2015-11-01  Myles C. Maxfield  <mmaxfield@apple.com>
2799
2800         Clean up some CSS & Font code
2801         https://bugs.webkit.org/show_bug.cgi?id=150767
2802
2803         Reviewed by Darin Adler.
2804
2805         This patch migrates some CSS code to use references instead of pointers.
2806         It also migrates some Font code to use RefPtr instead of PassRefPtr.
2807
2808         No new tests because there is no behavior change.
2809
2810         * css/CSSDefaultStyleSheets.cpp:
2811         (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
2812         (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
2813         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2814         * css/CSSFontSelector.cpp:
2815         (WebCore::createFontFace):
2816         (WebCore::CSSFontSelector::addFontFaceRule):
2817         * css/CSSFontSelector.h:
2818         * css/DocumentRuleSets.cpp:
2819         (WebCore::DocumentRuleSets::initUserStyle):
2820         (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
2821         (WebCore::DocumentRuleSets::appendAuthorStyleSheets):
2822         * css/RuleSet.cpp:
2823         (WebCore::RuleSet::addChildRules):
2824         (WebCore::RuleSet::addRulesFromSheet):
2825         * css/RuleSet.h:
2826         * css/StyleInvalidationAnalysis.cpp:
2827         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
2828         * platform/graphics/Font.cpp:
2829         (WebCore::Font::verticalRightOrientationFont):
2830         (WebCore::Font::uprightOrientationFont):
2831         (WebCore::Font::smallCapsFont):
2832         (WebCore::Font::emphasisMarkFont):
2833         (WebCore::Font::brokenIdeographFont):
2834         (WebCore::Font::nonSyntheticItalicFont):
2835         (WebCore::Font::createScaledFont):
2836         * platform/graphics/Font.h:
2837         (WebCore::Font::variantFont):
2838         * platform/graphics/cocoa/FontCocoa.mm:
2839         (WebCore::Font::platformCreateScaledFont):
2840         * svg/SVGFontFaceElement.h:
2841
2842 2015-11-01  Darin Adler  <darin@apple.com>
2843
2844         Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic)
2845         https://bugs.webkit.org/show_bug.cgi?id=150783
2846
2847         Reviewed by Tim Horton.
2848
2849         * PlatformWinCairo.cmake: Removed ScrollbarThemeSafari.cpp, no reason to compile it.
2850
2851         * platform/graphics/ca/GraphicsLayerCA.cpp:
2852         (WebCore::GraphicsLayerCA::setContentsToImage): Removed the code that set a color space
2853         on an image if it's set to device color space. This has been dead code for many releases
2854         of OS X and iOS at this point.
2855
2856         * platform/graphics/filters/FEColorMatrix.h: Removed some ENABLE(OPENCL)-only code.
2857         * platform/graphics/filters/FEFlood.h: Ditto.
2858         * platform/graphics/filters/FEMerge.h: Ditto.
2859         * platform/graphics/filters/FETurbulence.h: Ditto.
2860         * platform/graphics/filters/FilterEffect.cpp:
2861         (WebCore::FilterEffect::applyAll): Removed.
2862         (WebCore::FilterEffect::apply): Removed ENABLE(OPENCL)-only code.
2863         (WebCore::FilterEffect::platformApplyOpenCL): Removed.
2864         (WebCore::FilterEffect::clearResult): Removed ENABLE(OPENCL)-only code.
2865         (WebCore::FilterEffect::asImageBuffer): Ditto.
2866         (WebCore::FilterEffect::openCLImageToImageBuffer): Removed.
2867         (WebCore::FilterEffect::createOpenCLImageResult): Removed.
2868         (WebCore::FilterEffect::transformResultColorSpace): Removed ENABLE(OPENCL)-only code.
2869
2870         * platform/graphics/filters/FilterEffect.h: Removed ENABLE(OPENCL)-only code.
2871         * platform/graphics/filters/SourceAlpha.h: Ditto.
2872         * platform/graphics/filters/SourceGraphic.h: Ditto.
2873
2874         * platform/win/ScrollbarThemeSafari.cpp: Removed.
2875         * platform/win/ScrollbarThemeSafari.h: Removed.
2876
2877         * rendering/RenderThemeMac.mm: Removed an obsolete comment.
2878
2879         * rendering/RenderThemeSafari.cpp: Removed.
2880         * rendering/RenderThemeSafari.h: Removed.
2881
2882         * svg/graphics/filters/SVGFEImage.h: Removed ENABLE(OPENCL)-only code.
2883
2884 2015-11-01  Andreas Kling  <akling@apple.com>
2885
2886         Move the ResourceUsageOverlay out of the way by default.
2887         <https://webkit.org/b/150776>
2888
2889         Reviewed by Darin Adler.
2890
2891         Have the ResourceUsageOverlay show up in the bottom center of the viewport
2892         by default, instead of the top left. This way, you won't have to drag it
2893         out of the way all the time.
2894
2895         * page/ResourceUsageOverlay.cpp:
2896         (WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
2897         (WebCore::ResourceUsageOverlay::initialize):
2898         * page/ResourceUsageOverlay.h:
2899         * page/cocoa/ResourceUsageOverlayCocoa.mm:
2900         (WebCore::ResourceUsageOverlay::platformInitialize):
2901
2902 2015-11-01  Philip Chimento  <philip.chimento@gmail.com>
2903
2904         [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
2905         https://bugs.webkit.org/show_bug.cgi?id=144560
2906
2907         Reviewed by Darin Adler.
2908
2909         * platform/graphics/PlatformDisplay.cpp: Only include the
2910         X11-specific GDK header on PLATFORM(X11). In other cases the
2911         normal gdk.h header is needed, which would otherwise be pulled in
2912         by gdkx.h.
2913         * platform/graphics/opentype/OpenTypeMathData.cpp: Change check
2914         for FourCharCode type from OS(DARWIN) to PLATFORM(COCOA). We
2915         can't remove it altogether because OT_MAKE_TAG doesn't work for
2916         all platforms.
2917
2918 2015-11-01  Carlos Garcia Campos  <cgarcia@igalia.com>
2919
2920         [GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation
2921         https://bugs.webkit.org/show_bug.cgi?id=150754
2922
2923         Reviewed by Darin Adler.
2924
2925         It's more efficient because it uses a persistent source and it
2926         simplifies the code even more.
2927
2928         * platform/MainThreadSharedTimer.cpp:
2929         (WebCore::MainThreadSharedTimer::fired): Make it non-const to be
2930         able to use it as function callback of a RunLoop::Timer.
2931         * platform/MainThreadSharedTimer.h:
2932         * platform/gtk/MainThreadSharedTimerGtk.cpp:
2933         (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
2934         Initialize the RunLoop::Timer and set the prioriry.
2935         (WebCore::MainThreadSharedTimer::setFireInterval):
2936         (WebCore::MainThreadSharedTimer::stop):
2937
2938 2015-10-31  Andreas Kling  <akling@apple.com>
2939
2940         Add a debug overlay with information about web process resource usage.
2941         <https://webkit.org/b/150599>
2942
2943         Unreviewed follow-up to r191849.
2944
2945         Add missing call to uninstall the PageOverlay if the ResourceUsageOverlay is being
2946         disabled through the setting. This way you don't end up with an unremovable overlay
2947         in the MiniBrowser.
2948
2949         * page/ResourceUsageOverlay.cpp:
2950         (WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
2951
2952 2015-10-31  Brady Eidson  <beidson@apple.com>
2953
2954         IDB: Date objects don't work as keys or values.
2955         https://bugs.webkit.org/show_bug.cgi?id=150743
2956
2957         Reviewed by Darin Adler.
2958
2959         Test: storage/indexeddb/modern/date-basic.html
2960
2961         The combination of the autogenerated bindings with Deprecated::ScriptValue was
2962         losing the fidelity of "Date" objects being Dates, and not just normal Objects.
2963         
2964         This was breaking their usage as IDBKeys.
2965         
2966         Custom binding + reworking the IDBObjectStore IDLs to use JSValue instead of ScriptValue
2967         fixes this handily.
2968         
2969         * Modules/indexeddb/IDBObjectStore.h:
2970         * Modules/indexeddb/IDBObjectStore.idl:
2971         
2972         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2973         (WebCore::IDBClient::IDBObjectStore::add):
2974         (WebCore::IDBClient::IDBObjectStore::put):
2975         (WebCore::IDBClient::IDBObjectStore::putOrAdd):
2976         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
2977         
2978         * Modules/indexeddb/legacy/LegacyObjectStore.cpp:
2979         (WebCore::LegacyObjectStore::add):
2980         (WebCore::LegacyObjectStore::put):
2981         * Modules/indexeddb/legacy/LegacyObjectStore.h:
2982         
2983         * bindings/js/IDBBindingUtilities.cpp:
2984         (WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
2985         (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
2986         (WebCore::canInjectIDBKeyIntoScriptValue):
2987         (WebCore::scriptValueToIDBKey):
2988         * bindings/js/IDBBindingUtilities.h:
2989
2990         * bindings/js/JSIDBObjectStoreCustom.cpp:
2991         (WebCore::putOrAdd):
2992         (WebCore::JSIDBObjectStore::putRecord):
2993         (WebCore::JSIDBObjectStore::add):
2994
2995 2015-10-31  Andreas Kling  <akling@apple.com>
2996
2997         Add a debug overlay with information about web process resource usage.
2998         <https://webkit.org/b/150599>
2999
3000         Reviewed by Darin Adler.
3001
3002         A new kind of PageOverlay is added behind the ENABLE(RESOURCE_USAGE_OVERLAY) flag.
3003         It's owned by Page, but not instantiated unless the Settings::resourceUsageOverlayVisible flag is set.
3004
3005         All ResourceUsageOverlay objects share a single sampler thread. The thread currently runs every 500ms
3006         and samples CPU usage, dirty memory regions, and GC heap size/capacity.
3007
3008         Most things in here are currently quite Mac-specific, but I will be iterating on this towards a more
3009         cross-platform friendly solution.
3010
3011         There are two small changes to PageOverlay in order to support dragging the resource usage overlay:
3012
3013             - A "should ignore mouse events outside bounds" state flag. This is on by default
3014               but turned off during a drag.
3015             - PageOverlay::bounds() will now return the override frame verbatim if one is set,
3016               instead of returning it relocated to 0,0.
3017
3018         Note that this is intended as a tool for WebKit engine developers to better understand memory usage.
3019         It's not a goal to expose this information to end users.
3020
3021         * WebCore.xcodeproj/project.pbxproj:
3022         * page/Page.cpp:
3023         (WebCore::Page::setResourceUsageOverlayVisible):
3024         * page/Page.h:
3025         * page/PageOverlay.cpp:
3026         (WebCore::PageOverlay::bounds):
3027         (WebCore::PageOverlay::mouseEvent):
3028         * page/PageOverlay.h:
3029         * page/ResourceUsageOverlay.cpp: Added.
3030         (WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
3031         (WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
3032         (WebCore::ResourceUsageOverlay::mouseEvent):
3033         * page/ResourceUsageOverlay.h: Added.
3034         * page/Settings.cpp:
3035         (WebCore::Settings::setResourceUsageOverlayVisible):
3036         * page/Settings.h:
3037         (WebCore::Settings::resourceUsageOverlayVisible):
3038         * page/cocoa/ResourceUsageOverlayCocoa.mm: Added.
3039         (-[WebOverlayLayer initWithResourceUsageOverlay:]):
3040         (-[WebOverlayLayer drawInContext:]):
3041         (WebCore::RingBuffer::RingBuffer):
3042         (WebCore::RingBuffer::append):
3043         (WebCore::RingBuffer::last):
3044         (WebCore::RingBuffer::forEach):
3045         (WebCore::RingBuffer::incrementIndex):
3046         (WebCore::RingBuffer::decrementIndex):
3047         (WebCore::sharedData):
3048         (WebCore::ResourceUsageOverlay::platformInitialize):
3049         (WebCore::ResourceUsageOverlay::platformDestroy):
3050         (WebCore::drawCpuHistory):
3051         (WebCore::drawGCHistory):
3052         (WebCore::drawSlice):
3053         (WebCore::drawPlate):
3054         (WebCore::drawMemoryPie):
3055         (WebCore::formatByteNumber):
3056         (WebCore::showText):
3057         (WebCore::ResourceUsageOverlay::draw):
3058         (WebCore::dirtyPagesPerVMTag):
3059         (WebCore::cpuUsage):
3060         (WebCore::runSamplerThread):
3061         * platform/spi/cocoa/MachVMSPI.h:
3062
3063 2015-10-31  Brady Eidson  <beidson@apple.com>
3064
3065         storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html is flaky.
3066         https://bugs.webkit.org/show_bug.cgi?id=150735
3067
3068         Reviewed by Darin Adler.
3069
3070         No new tests (Covered by existing tests).
3071
3072         Transactions were liable to commit too early because IDBRequests could be waiting
3073         to dispatch their error/success events but their operations would no longer be
3074         registered with the transaction.
3075         
3076         Having outstanding requests should also keep a transaction from committing, just
3077         like having outstanding operations should.
3078         
3079         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
3080         (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):
3081         
3082         * Modules/indexeddb/client/IDBRequestImpl.cpp:
3083         (WebCore::IDBClient::IDBRequest::dispatchEvent):
3084         
3085         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3086         (WebCore::IDBClient::IDBTransaction::addRequest):
3087         (WebCore::IDBClient::IDBTransaction::removeRequest):
3088         (WebCore::IDBClient::IDBTransaction::operationTimerFired):
3089         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
3090         (WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
3091         (WebCore::IDBClient::IDBTransaction::requestPutOrAdd):
3092         (WebCore::IDBClient::IDBTransaction::operationDidComplete):
3093         * Modules/indexeddb/client/IDBTransactionImpl.h:
3094         
3095         * Modules/indexeddb/client/TransactionOperation.h:
3096         (WebCore::IDBClient::TransactionOperation::completed):
3097
3098 2015-10-31  Philippe Normand  <pnormand@igalia.com>
3099
3100         [GStreamer][Mac] Fix WebAudio build
3101         https://bugs.webkit.org/show_bug.cgi?id=150030
3102
3103         Reviewed by Darin Adler.
3104
3105         Wrap Accelerate.framework API calls around USE(ACCELERATE) ifdefs.
3106
3107         * platform/audio/Biquad.cpp:
3108         (WebCore::Biquad::Biquad):
3109         (WebCore::Biquad::process):
3110         (WebCore::Biquad::reset):
3111         * platform/audio/Biquad.h:
3112         * platform/audio/DirectConvolver.cpp:
3113         (WebCore::DirectConvolver::process):
3114         * platform/audio/FFTFrame.h:
3115         * platform/audio/VectorMath.cpp:
3116
3117 2015-10-31  Brian Burg  <bburg@apple.com>
3118
3119         Builtins generator should put WebCore-only wrappers in the per-builtin header
3120         https://bugs.webkit.org/show_bug.cgi?id=150539
3121
3122         Reviewed by Youenn Fablet.
3123
3124         Fix includes of removed XXXWrapper.h headers.
3125
3126         * CMakeLists.txt:
3127         * DerivedSources.make:
3128         * WebCore.xcodeproj/project.pbxproj:
3129         * bindings/js/WebCoreJSBuiltinInternals.h:
3130         * bindings/js/WebCoreJSBuiltins.h:
3131
3132 2015-10-31  Yusuke Suzuki  <utatane.tea@gmail.com>
3133
3134         Add the support for Symbol attributes on IDL
3135         https://bugs.webkit.org/show_bug.cgi?id=150586
3136
3137         Reviewed by Ryosuke Niwa.
3138
3139         This patch addes readonly attribute support for Symbols.
3140         It involves the IDL generator functionality converting Native type (PrivateName) to Symbol.
3141
3142         * bindings/scripts/CodeGeneratorGObject.pm:
3143         (SkipAttribute):
3144         (SkipFunction):
3145         * bindings/scripts/CodeGeneratorJS.pm:
3146         (NativeToJSValue):
3147         * bindings/scripts/CodeGeneratorObjC.pm:
3148         (SkipFunction):
3149         (SkipAttribute):
3150         * bindings/scripts/test/JS/JSTestObj.cpp:
3151         (WebCore::jsTestObjReadOnlySymbolAttr):
3152         (WebCore::jsTestObjConstructorStaticReadOnlySymbolAttr):
3153         * bindings/scripts/test/TestObj.idl:
3154
3155 2015-10-30  Brady Eidson  <beidson@apple.com>
3156
3157         Modern IDB: Support IDBObjectStore.get() for IDBKeyRanges.
3158         https://bugs.webkit.org/show_bug.cgi?id=150718
3159
3160         Reviewed by Alex Christensen.
3161
3162         Test: storage/indexeddb/modern/get-keyrange.html
3163
3164         * Modules/indexeddb/IDBKeyRangeData.cpp:
3165         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
3166         * Modules/indexeddb/IDBKeyRangeData.h:
3167         
3168         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
3169         (WebCore::IDBClient::IDBConnectionToServer::getRecord):
3170         * Modules/indexeddb/client/IDBConnectionToServer.h:
3171         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
3172         
3173         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3174         (WebCore::IDBClient::IDBObjectStore::get):
3175         
3176         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3177         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
3178         (WebCore::IDBClient::IDBTransaction::getRecordOnServer):
3179         * Modules/indexeddb/client/IDBTransactionImpl.h:
3180         
3181         * Modules/indexeddb/server/IDBBackingStore.h:
3182         
3183         * Modules/indexeddb/server/IDBServer.cpp:
3184         (WebCore::IDBServer::IDBServer::getRecord):
3185         * Modules/indexeddb/server/IDBServer.h:
3186         
3187         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
3188         (WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
3189         
3190         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3191         (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
3192         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
3193         
3194         * Modules/indexeddb/server/MemoryObjectStore.cpp:
3195         (WebCore::IDBServer::MemoryObjectStore::deleteRecord):
3196         (WebCore::IDBServer::MemoryObjectStore::setKeyValue):
3197         (WebCore::IDBServer::MemoryObjectStore::valueForKeyRange): Using a std::set, find the appropriate
3198           key in the range, and return the value if one exists.
3199         (WebCore::IDBServer::MemoryObjectStore::valueForKey): Deleted.
3200         * Modules/indexeddb/server/MemoryObjectStore.h:
3201         
3202         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
3203         (WebCore::IDBServer::UniqueIDBDatabase::getRecord):
3204         (WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
3205         * Modules/indexeddb/server/UniqueIDBDatabase.h:
3206         
3207         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
3208         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
3209         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
3210         
3211         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
3212         (WebCore::InProcessIDBServer::getRecord):
3213         * Modules/indexeddb/shared/InProcessIDBServer.h:
3214
3215 2015-10-30  Brady Eidson  <beidson@apple.com>
3216
3217         Modern IDB: IDBObjectStore.clear() support.
3218         https://bugs.webkit.org/show_bug.cgi?id=150733
3219
3220         Reviewed by Alex Christensen.
3221
3222         Tests: storage/indexeddb/modern/idbobjectstore-clear-1.html
3223                storage/indexeddb/modern/idbobjectstore-clear-2.html
3224
3225         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
3226         (WebCore::IDBClient::IDBConnectionToServer::clearObjectStore):
3227         (WebCore::IDBClient::IDBConnectionToServer::didClearObjectStore):
3228         * Modules/indexeddb/client/IDBConnectionToServer.h:
3229         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
3230         
3231         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3232         (WebCore::IDBClient::IDBObjectStore::clear):
3233         
3234         * Modules/indexeddb/client/IDBRequestImpl.cpp:
3235         (WebCore::IDBClient::IDBRequest::setResultToUndefined):
3236         * Modules/indexeddb/client/IDBRequestImpl.h:
3237         
3238         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3239         (WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
3240         (WebCore::IDBClient::IDBTransaction::clearObjectStoreOnServer):
3241         (WebCore::IDBClient::IDBTransaction::didClearObjectStoreOnServer):
3242         * Modules/indexeddb/client/IDBTransactionImpl.h:
3243
3244         * Modules/indexeddb/server/IDBBackingStore.h:
3245
3246         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
3247         (WebCore::IDBServer::IDBConnectionToClient::didClearObjectStore):
3248         * Modules/indexeddb/server/IDBConnectionToClient.h:
3249         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
3250
3251         * Modules/indexeddb/server/IDBServer.cpp:
3252         (WebCore::IDBServer::IDBServer::clearObjectStore):
3253         * Modules/indexeddb/server/IDBServer.h:
3254
3255         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
3256         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):
3257         (WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
3258         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
3259         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
3260         (WebCore::IDBServer::MemoryBackingStoreTransaction::isAborting):
3261
3262         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3263         (WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
3264         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
3265
3266         * Modules/indexeddb/server/MemoryObjectStore.cpp:
3267         (WebCore::IDBServer::MemoryObjectStore::clear):
3268         (WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore):
3269         * Modules/indexeddb/server/MemoryObjectStore.h:
3270
3271         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
3272         (WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
3273         (WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
3274         (WebCore::IDBServer::UniqueIDBDatabase::didPerformClearObjectStore):
3275         * Modules/indexeddb/server/UniqueIDBDatabase.h:
3276
3277         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
3278         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didClearObjectStore):
3279         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
3280
3281         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
3282         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
3283         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
3284
3285         * Modules/indexeddb/shared/IDBResultData.cpp:
3286         (WebCore::IDBResultData::clearObjectStoreSuccess):
3287         * Modules/indexeddb/shared/IDBResultData.h:
3288
3289         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
3290         (WebCore::InProcessIDBServer::didClearObjectStore):
3291         (WebCore::InProcessIDBServer::clearObjectStore):
3292         * Modules/indexeddb/shared/InProcessIDBServer.h:
3293
3294 2015-10-30  Joseph Pecoraro  <pecoraro@apple.com>
3295
3296         CSSParserVariable leaks seen on leaks bots
3297         https://bugs.webkit.org/show_bug.cgi?id=150724
3298
3299         Reviewed by Darin Adler.
3300
3301         * css/CSSParserValues.cpp:
3302         (WebCore::destroy):
3303         Cleanup variable CSSParserValues.
3304
3305 2015-10-30  Alex Christensen  <achristensen@webkit.org>
3306
3307         Fix Windows build.
3308
3309         * PlatformWin.cmake:
3310         Add missing files.
3311
3312 2015-10-30  Beth Dakin  <bdakin@apple.com>
3313
3314         Tapping and holding a link should have a share option
3315         https://bugs.webkit.org/show_bug.cgi?id=150693
3316         -and corresponding-
3317         rdar://problem/21319702
3318
3319         Reviewed by Tim Horton.
3320
3321         * English.lproj/Localizable.strings:
3322
3323 2015-10-30  Joseph Pecoraro  <pecoraro@apple.com>
3324
3325         Minor CGColor leaks seen on bots allocated in WebSystemBackdropLayer.mm
3326         https://bugs.webkit.org/show_bug.cgi?id=150722
3327
3328         Reviewed by Andreas Kling.
3329
3330         * platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:
3331         (-[WebLightSystemBackdropLayer init]):
3332         (-[WebDarkSystemBackdropLayer init]):
3333
3334 2015-10-30  Csaba Osztrogonác  <ossy@webkit.org>
3335
3336         [EFL] Fix the debug build after r191758
3337         https://bugs.webkit.org/show_bug.cgi?id=150719
3338
3339         Reviewed by Alex Christensen.
3340
3341         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3342         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
3343
3344 2015-10-30  Dan Bernstein  <mitz@apple.com>
3345
3346         Fixed the build.
3347
3348         * platform/graphics/Image.cpp:
3349         (WebCore::Image::draw): Deleted an infinitely-recursive implementation that caused the
3350           compiler to emit an error.
3351         * platform/graphics/Image.h:
3352         (WebCore::Image::draw): Made this pure virtual.
3353
3354 2015-10-30  Brady Eidson  <beidson@apple.com>
3355
3356         Modern IDB: IDBObjectStore.add() support.
3357         https://bugs.webkit.org/show_bug.cgi?id=150711
3358
3359         Reviewed by Alex Christensen.
3360
3361         Test: storage/indexeddb/modern/basic-add.html
3362
3363         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3364         (WebCore::IDBClient::IDBObjectStore::add):
3365
3366         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3367         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
3368
3369 2015-10-30  Hunseop Jeong  <hs85.jeong@samsung.com>
3370
3371         Use modern for-loops in WebCore/dom.
3372         https://bugs.webkit.org/show_bug.cgi?id=150664
3373
3374         Reviewed by Darin Adler.
3375
3376         No new tests because there is no behavior change.
3377
3378         * dom/AuthorStyleSheets.cpp:
3379         (WebCore::AuthorStyleSheets::analyzeStyleSheetChange):
3380         (WebCore::filterEnabledNonemptyCSSStyleSheets):
3381         (WebCore::AuthorStyleSheets::activeStyleSheetsContains):
3382         * dom/CheckedRadioButtons.cpp:
3383         (WebCore::RadioButtonGroup::updateValidityForAllButtons):
3384         * dom/ClientRectList.cpp:
3385         (WebCore::ClientRectList::ClientRectList):
3386         (WebCore::ClientRectList::~ClientRectList):
3387         * dom/ContainerNode.cpp:
3388         (WebCore::ContainerNode::insertBefore):
3389         * dom/DOMNamedFlowCollection.cpp:
3390         (WebCore::DOMNamedFlowCollection::DOMNamedFlowCollection):
3391         (WebCore::DOMNamedFlowCollection::length):
3392         (WebCore::DOMNamedFlowCollection::item):
3393         (WebCore::DOMNamedFlowCollection::namedItem):
3394         * dom/DOMStringList.cpp:
3395         (WebCore::DOMStringList::contains):
3396         * dom/Document.cpp:
3397         (WebCore::Document::Document):
3398         (WebCore::Document::~Document):
3399         (WebCore::Document::removedLastRef):
3400         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
3401         (WebCore::Document::updateHoverActiveState):
3402         * dom/DocumentMarkerController.cpp:
3403         (WebCore::DocumentMarkerController::copyMarkers):
3404         (WebCore::DocumentMarkerController::removeMarkers):
3405         (WebCore::DocumentMarkerController::repaintMarkers):
3406         (DocumentMarkerController::showMarkers):
3407         * dom/ElementData.cpp:
3408         (WebCore::UniqueElementData::findAttributeByName):
3409         * dom/EventDispatcher.cpp:
3410         (WebCore::EventPath::updateTouchLists):
3411         (WebCore::EventPath::hasEventListeners):
3412         * dom/EventListenerMap.cpp:
3413         (WebCore::EventListenerMap::contains):
3414         (WebCore::EventListenerMap::containsCapturing):
3415         (WebCore::EventListenerMap::eventTypes):
3416         (WebCore::EventListenerMap::add):
3417         (WebCore::EventListenerMap::find):
3418         (WebCore::copyListenersNotCreatedFromMarkupToTarget):
3419         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
3420         (WebCore::EventListenerIterator::EventListenerIterator):
3421         * dom/EventTarget.cpp:
3422         (WebCore::EventTarget::removeEventListener):
3423         (WebCore::EventTarget::getAttributeEventListener):
3424         (WebCore::EventTarget::removeAllEventListeners):
3425         * dom/IdTargetObserverRegistry.cpp:
3426         (WebCore::IdTargetObserverRegistry::notifyObserversInternal):
3427         * dom/MessagePort.cpp:
3428         (WebCore::MessagePort::postMessage):
3429         (WebCore::MessagePort::disentanglePorts):
3430         * dom/MutationObserver.cpp: