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