Regression(r191673): Crash in RunLoopTimer::schedule()
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-11-02  Chris Dumez  <cdumez@apple.com>
2
3         Regression(r191673): Crash in RunLoopTimer::schedule()
4         https://bugs.webkit.org/show_bug.cgi?id=150816
5         <rdar://problem/23335285>
6
7         Reviewed by Anders Carlsson.
8
9         The crash was happening when the RunLoopTimer would fire during the
10         call to RunLoopTimer::schedule(), which can happen because we are
11         calling schedule() from a background thread. In such case, the
12         timerFired() callback execution would cause |this| to get destroyed.
13
14         To avoid this issue, DecodingResultDispatcher is now ref-counted. The
15         object is ref'd while calling startTimer() so that the object cannot go
16         away during the execution of this method. Also, we explicitly ref the
17         object when starting the timer to keep the object alive until the
18         RunLoopTimer has fired, at which point we explicitely de-ref.
19
20         This should handle correctly the cases where the RunLoopTimer fires
21         during AND after the execution of startTimer().
22
23         * platform/network/DataURLDecoder.cpp:
24         (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch):
25         (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer):
26         (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired):
27
28 2015-11-02  Andy Estes  <aestes@apple.com>
29
30         [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
31         https://bugs.webkit.org/show_bug.cgi?id=150819
32
33         Reviewed by Dan Bernstein.
34
35         This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.
36
37         * Configurations/Base.xcconfig:
38
39 2015-11-02  Brent Fulgham  <bfulgham@apple.com>
40
41         [Win] MiniBrowser unable to use WebInspector
42         https://bugs.webkit.org/show_bug.cgi?id=150810
43         <rdar://problem/23358514>
44
45         Reviewed by Timothy Hatcher.
46
47         The CMakeList rule for creating the InjectedScriptSource.min.js was improperly including
48         the quote characters in the text prepended to InjectedScriptSource.min.js. This caused a
49         parsing error in the JS file.
50         
51         The solution was to switch from using "COMMAND echo" to use the more cross-platform
52         compatible command "COMMAND ${CMAKE_COMMAND} -E echo ...", which handles the string
53         escaping properly on all platforms.
54
55         * CMakeLists.txt: Switch the 'echo' command syntax to be more cross-platform.
56
57 2015-11-02  Zalan Bujtas  <zalan@apple.com>
58
59         hasOverflowClip() does not necessarily mean valid layer().
60         https://bugs.webkit.org/show_bug.cgi?id=150814
61
62         Reviewed by Simon Fraser.
63
64         Certain RenderLayerModelObject derived classes simply return false for ::requiresLayer(), which means
65         that we end up not creating a layer for the overflow clipped content.   
66
67         No change in functionality.
68
69         * rendering/RenderBlock.cpp:
70         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
71         (WebCore::RenderBlock::paint):
72         * rendering/RenderBox.cpp:
73         (WebCore::RenderBox::styleDidChange):
74         (WebCore::RenderBox::scrollWidth):
75         (WebCore::RenderBox::scrollHeight):
76         (WebCore::RenderBox::scrollLeft):
77         (WebCore::RenderBox::scrollTop):
78         (WebCore::RenderBox::setScrollLeft):
79         (WebCore::RenderBox::setScrollTop):
80         (WebCore::RenderBox::includeVerticalScrollbarSize):
81         (WebCore::RenderBox::includeHorizontalScrollbarSize):
82         (WebCore::RenderBox::intrinsicScrollbarLogicalWidth):
83         (WebCore::RenderBox::usesCompositedScrolling):
84
85 2015-11-02  Alex Christensen  <achristensen@webkit.org>
86
87         Fix Mac CMake build after r191904.
88
89         * PlatformMac.cmake:
90         Move SettingsMac.mm to SettingsCocoa.mm.
91
92 2015-11-02  Eric Carlson  <eric.carlson@apple.com>
93
94         Add HTMLMediaElement behavior and attribute value restrictions for MediaStream
95         https://bugs.webkit.org/show_bug.cgi?id=146853
96
97         Reviewed by Jer Noble.
98
99         * Modules/mediastream/MediaStream.cpp:
100         (WebCore::MediaStream::scheduleActiveStateChange): Do nothing if the active state hasn't changed.
101         (WebCore::MediaStream::activityEventTimerFired): Remove FIXME.
102
103         * Modules/mediastream/MediaStreamTrack.cpp:
104         (WebCore::MediaStreamTrack::stopProducingData): Add comments. Notify observers that the track ended.
105         (WebCore::MediaStreamTrack::trackEnded): Don't dispatch events after having been stopped.
106         (WebCore::MediaStreamTrack::trackMutedChanged): Ditto.
107
108         * html/HTMLMediaElement.cpp:
109         (WebCore::HTMLMediaElement::defaultPlaybackRate): Always return 1 when using a MediaStream.
110         (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Do nothing when using a MediaStream.
111         (WebCore::HTMLMediaElement::playbackRate): Always return 1 when using a MediaStream.
112         (WebCore::HTMLMediaElement::setPlaybackRate): Do nothing when using a MediaStream.
113         (WebCore::HTMLMediaElement::ended): Ask the media engine when using a MediaStream.
114         (WebCore::HTMLMediaElement::preload): Always return "none" when using a MediaStream.
115         (WebCore::HTMLMediaElement::setPreload): Do nothing when using a MediaStream.
116         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Avoid unnecessary comparisons when the duration
117           is not definite. Send ended event when MediaStream says stream has ended.
118
119         * platform/graphics/MediaPlayer.cpp:
120         (WebCore::MediaPlayer::ended): New, passthrough to engine.
121         * platform/graphics/MediaPlayer.h:
122         * platform/graphics/MediaPlayerPrivate.h:
123
124         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
125         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
126         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Set m_ended from stream.
127         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad): Pause the stream if necessary.
128         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Return early if ended or already playing.
129         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Return early if ended or already paused.
130         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): Cleanup. Try to grab a paused
131           image if the stream isn't active.
132         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateReadyState): New.
133         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Call updateReadyState.
134         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::characteristicsChanged): Ditto.
135
136         * platform/mediastream/MediaStreamPrivate.cpp:
137         (WebCore::MediaStreamPrivate::trackEnabledChanged): Call updateActiveState so the state will
138           be updated if necessary.
139
140         * platform/mediastream/RealtimeMediaSource.cpp:
141         (WebCore::RealtimeMediaSource::stop): Don't call reset, there is no need to tear everything down.
142
143 2015-10-31  Andy Estes  <aestes@apple.com>
144
145         Replace iOS-only WebKitSystemInterface calls with SPI
146         https://bugs.webkit.org/show_bug.cgi?id=150763
147
148         Reviewed by Darin Adler.
149
150         * WebCore.xcodeproj/project.pbxproj:
151         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
152         * css/MediaQueryEvaluator.cpp:
153         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
154         * html/HTMLMediaElement.cpp:
155         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
156         * html/HTMLObjectElement.cpp:
157         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
158         * html/HTMLVideoElement.cpp:
159         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
160         * page/NavigatorBase.cpp:
161         * page/Settings.h:
162         * page/ViewportConfiguration.cpp:
163         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
164         * page/ios/UserAgentIOS.mm:
165         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
166         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
167         (WebCore::deviceName): Ditto for wkGetDeviceName().
168         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
169         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
170         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
171         * platform/PlatformScreen.h:
172         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
173         (WebCore::deviceClass):
174         (WebCore::deviceName):
175         (WebCore::deviceHasIPadCapability):
176         * platform/ios/Device.h:
177         * platform/ios/PlatformScreenIOS.mm:
178         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
179         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
180         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
181         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
182         (WebCore::mobileGestaltFloatValue): Deleted.
183         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
184         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
185         (iosDeviceClass): Deleted.
186         * platform/ios/WebCoreSystemInterfaceIOS.mm:
187         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
188         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
189         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
190         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
191         * platform/ios/wak/WAKWindow.mm:
192         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
193         (-[WAKWindow initWithFrame:]): Ditto.
194         * platform/ios/wak/WKGraphics.mm:
195         (WKGraphicsCreateImageFromBundleWithName): Ditto.
196         (WKDrawPatternBitmap): Ditto.
197         * platform/mac/WebCoreSystemInterface.h:
198         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
199         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
200         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
201         * rendering/RenderThemeIOS.mm: Included UIKitSPI.h instead of UIColorSPI.h, and removed unnecessary forward declarations for the iOS public SDK build.
202
203 2015-11-02  Commit Queue  <commit-queue@webkit.org>
204
205         Unreviewed, rolling out r191902.
206         https://bugs.webkit.org/show_bug.cgi?id=150811
207
208         This change broke iOS builders (Requested by ryanhaddad on
209         #webkit).
210
211         Reverted changeset:
212
213         "Replace iOS-only WebKitSystemInterface calls with SPI"
214         https://bugs.webkit.org/show_bug.cgi?id=150763
215         http://trac.webkit.org/changeset/191902
216
217 2015-10-31  Andy Estes  <aestes@apple.com>
218
219         Replace iOS-only WebKitSystemInterface calls with SPI
220         https://bugs.webkit.org/show_bug.cgi?id=150763
221
222         Reviewed by Darin Adler.
223
224         * WebCore.xcodeproj/project.pbxproj:
225         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
226         * css/MediaQueryEvaluator.cpp:
227         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
228         * html/HTMLMediaElement.cpp:
229         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
230         * html/HTMLObjectElement.cpp:
231         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
232         * html/HTMLVideoElement.cpp:
233         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
234         * page/NavigatorBase.cpp:
235         * page/Settings.h:
236         * page/ViewportConfiguration.cpp:
237         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
238         * page/ios/UserAgentIOS.mm:
239         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
240         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
241         (WebCore::deviceName): Ditto for wkGetDeviceName().
242         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
243         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
244         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
245         * platform/PlatformScreen.h:
246         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
247         (WebCore::deviceClass):
248         (WebCore::deviceName):
249         (WebCore::deviceHasIPadCapability):
250         * platform/ios/Device.h:
251         * platform/ios/PlatformScreenIOS.mm:
252         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
253         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
254         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
255         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
256         (WebCore::mobileGestaltFloatValue): Deleted.
257         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
258         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
259         (iosDeviceClass): Deleted.
260         * platform/ios/WebCoreSystemInterfaceIOS.mm:
261         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
262         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
263         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
264         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
265         * platform/ios/wak/WAKWindow.mm:
266         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
267         (-[WAKWindow initWithFrame:]): Ditto.
268         * platform/ios/wak/WKGraphics.mm:
269         (WKGraphicsCreateImageFromBundleWithName): Ditto.
270         (WKDrawPatternBitmap): Ditto.
271         * platform/mac/WebCoreSystemInterface.h:
272         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
273         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
274         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
275         * rendering/RenderThemeIOS.mm:
276
277 2015-11-02  Frederic Wang  <fred.wang@free.fr>
278
279         [Win] Add support for the USE_TYPO_METRICS flag
280         https://bugs.webkit.org/show_bug.cgi?id=150451
281
282         Reviewed by Darin Adler.
283
284         Make the Windows backend use the typo metrics when the OS/2 USE_TYPO_METRICS flag is set.
285
286         No new tests because this is already tested by fonts/use-typo-metrics-1.html
287
288         * platform/graphics/win/SimpleFontDataCGWin.cpp:
289         (WebCore::Font::platformInit):
290         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
291         (WebCore::Font::platformInit):
292         * platform/graphics/win/SimpleFontDataWin.cpp:
293         (WebCore::Font::initGDIFont):
294
295 2015-11-02  Hyunduk Kim  <hyunduk.kim@samsung.com>
296
297         Enable MediaSource::isTypeSupported() to handle the upper-cased MIME type & Codec
298         https://bugs.webkit.org/show_bug.cgi?id=150436
299
300         Reviewed by Darin Adler.
301
302         Got the new test case from
303         https://github.com/w3c/web-platform-tests/blob/master/media-source/mediasource-is-type-supported.html 
304         Tests: http\tests\media\media-source\mediasource-is-type-supported.html
305
306         * Modules/mediasource/MediaSource.cpp:
307         (WebCore::MediaSource::isTypeSupported):
308
309 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
310
311         Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped
312         https://bugs.webkit.org/show_bug.cgi?id=150613
313
314         Reviewed by Darin Adler.
315
316         Renaming impl to wrapped in classes and binding generated classes.
317         No change in behavior.
318
319         * Modules/plugins/QuickTimePluginReplacement.mm:
320         (WebCore::JSQuickTimePluginReplacement::timedMetaData):
321         (WebCore::JSQuickTimePluginReplacement::accessLog):
322         (WebCore::JSQuickTimePluginReplacement::errorLog):
323         * bindings/js/JSAttrCustom.cpp:
324         (WebCore::JSAttr::visitAdditionalChildren):
325         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
326         (WebCore::JSAudioBufferSourceNode::setBuffer):
327         * bindings/js/JSAudioTrackCustom.cpp:
328         (WebCore::JSAudioTrack::visitAdditionalChildren):
329         (WebCore::JSAudioTrack::setKind):
330         (WebCore::JSAudioTrack::setLanguage):
331         * bindings/js/JSAudioTrackListCustom.cpp:
332         (WebCore::JSAudioTrackList::visitAdditionalChildren):
333         * bindings/js/JSBiquadFilterNodeCustom.cpp:
334         (WebCore::JSBiquadFilterNode::setType):
335         * bindings/js/JSCSSRuleCustom.cpp:
336         (WebCore::JSCSSRule::visitAdditionalChildren):
337         * bindings/js/JSCSSRuleListCustom.cpp:
338         (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
339         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
340         (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren):
341         (WebCore::getPropertyValueFallback):
342         (WebCore::cssPropertyGetterPixelOrPosPrefix):
343         (WebCore::cssPropertyGetter):
344         (WebCore::JSCSSStyleDeclaration::putDelegate):
345         (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
346         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
347         * bindings/js/JSCSSValueCustom.cpp:
348         (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
349         (WebCore::JSCSSValueOwner::finalize):
350         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
351         (WebCore::toHTMLCanvasStyle):
352         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
353         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
354         (WebCore::JSCanvasRenderingContext2D::fillStyle):
355         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
356         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
357         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
358         * bindings/js/JSCanvasRenderingContextCustom.cpp:
359         (WebCore::JSCanvasRenderingContext::visitAdditionalChildren):
360         * bindings/js/JSCharacterDataCustom.cpp:
361         (WebCore::JSCharacterData::before):
362         (WebCore::JSCharacterData::after):
363         (WebCore::JSCharacterData::replaceWith):
364         * bindings/js/JSCommandLineAPIHostCustom.cpp:
365         (WebCore::JSCommandLineAPIHost::inspectedObject):
366         (WebCore::JSCommandLineAPIHost::getEventListeners):
367         (WebCore::JSCommandLineAPIHost::inspect):
368         (WebCore::JSCommandLineAPIHost::databaseId):
369         (WebCore::JSCommandLineAPIHost::storageId):
370         * bindings/js/JSCryptoCustom.cpp:
371         (WebCore::JSCrypto::getRandomValues):
372         * bindings/js/JSCryptoKeyCustom.cpp:
373         (WebCore::JSCryptoKey::algorithm):
374         * bindings/js/JSCryptoKeyPairCustom.cpp:
375         (WebCore::JSCryptoKeyPair::visitAdditionalChildren):
376         * bindings/js/JSCustomEventCustom.cpp:
377         (WebCore::JSCustomEvent::detail):
378         * bindings/js/JSCustomXPathNSResolver.cpp:
379         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
380         * bindings/js/JSDOMBinding.cpp:
381         (WebCore::reportException):
382         (WebCore::activeDOMWindow):
383         (WebCore::firstDOMWindow):
384         * bindings/js/JSDOMFormDataCustom.cpp:
385         (WebCore::toHTMLFormElementOrNull):
386         (WebCore::JSDOMFormData::append):
387         * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
388         (WebCore::JSDOMMimeTypeArray::nameGetter):
389         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
390         (WebCore::JSDOMNamedFlowCollection::nameGetter):
391         * bindings/js/JSDOMPluginArrayCustom.cpp:
392         (WebCore::JSDOMPluginArray::nameGetter):
393         * bindings/js/JSDOMPluginCustom.cpp:
394         (WebCore::JSDOMPlugin::nameGetter):
395         * bindings/js/JSDOMStringListCustom.cpp:
396         (WebCore::JSDOMStringList::toWrapped):
397         * bindings/js/JSDOMStringMapCustom.cpp:
398         (WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
399         (WebCore::JSDOMStringMap::getOwnPropertyNames):
400         (WebCore::JSDOMStringMap::deleteProperty):
401         (WebCore::JSDOMStringMap::putDelegate):
402         * bindings/js/JSDOMTokenListCustom.cpp:
403         (WebCore::JSDOMTokenList::toggle):
404         * bindings/js/JSDOMWindowBase.cpp:
405         (WebCore::shouldAllowAccessFrom):
406         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
407         (WebCore::JSDOMWindowBase::updateDocument):
408         (WebCore::JSDOMWindowBase::scriptExecutionContext):
409         (WebCore::JSDOMWindowBase::printErrorMessage):
410         (WebCore::JSDOMWindowBase::supportsProfiling):
411         (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
412         (WebCore::JSDOMWindowBase::shouldInterruptScript):
413         (WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
414         (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
415         (WebCore::JSDOMWindowBase::moduleLoaderResolve):
416         (WebCore::JSDOMWindowBase::moduleLoaderFetch):
417         (WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
418         * bindings/js/JSDOMWindowBase.h:
419         * bindings/js/JSDOMWindowCustom.cpp:
420         (WebCore::JSDOMWindow::visitAdditionalChildren):
421         (WebCore::childFrameGetter):
422         (WebCore::namedItemGetter):
423         (WebCore::jsDOMWindowWebKit):
424         (WebCore::jsDOMWindowIndexedDB):
425         (WebCore::JSDOMWindow::getOwnPropertySlot):
426         (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
427         (WebCore::JSDOMWindow::put):
428         (WebCore::JSDOMWindow::putByIndex):
429         (WebCore::JSDOMWindow::deleteProperty):
430         (WebCore::JSDOMWindow::deletePropertyByIndex):
431         (WebCore::JSDOMWindow::getEnumerableLength):
432         (WebCore::JSDOMWindow::getStructurePropertyNames):
433         (WebCore::JSDOMWindow::getGenericPropertyNames):
434         (WebCore::JSDOMWindow::getPropertyNames):
435         (WebCore::JSDOMWindow::getOwnPropertyNames):
436         (WebCore::JSDOMWindow::defineOwnProperty):
437         (WebCore::JSDOMWindow::setLocation):
438         (WebCore::JSDOMWindow::open):
439         (WebCore::JSDOMWindow::showModalDialog):
440         (WebCore::JSDOMWindow::postMessage):
441         (WebCore::JSDOMWindow::setTimeout):
442         (WebCore::JSDOMWindow::setInterval):
443         (WebCore::JSDOMWindow::addEventListener):
444         (WebCore::JSDOMWindow::removeEventListener):
445         (WebCore::JSDOMWindow::toWrapped):
446         * bindings/js/JSDOMWindowShell.cpp:
447         (WebCore::JSDOMWindowShell::setWindow):
448         (WebCore::JSDOMWindowShell::wrapped):
449         * bindings/js/JSDOMWindowShell.h:
450         * bindings/js/JSDOMWrapper.h:
451         (WebCore::JSDOMWrapper::wrapped):
452         (WebCore::JSDOMWrapper::JSDOMWrapper):
453         * bindings/js/JSDataCueCustom.cpp:
454         (WebCore::JSDataCue::value):
455         (WebCore::JSDataCue::setValue):
456         * bindings/js/JSDataTransferCustom.cpp:
457         (WebCore::JSDataTransfer::types):
458         * bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp:
459         (WebCore::JSDedicatedWorkerGlobalScope::postMessage):
460         * bindings/js/JSDeviceMotionEventCustom.cpp:
461         (WebCore::JSDeviceMotionEvent::acceleration):
462         (WebCore::JSDeviceMotionEvent::accelerationIncludingGravity):
463         (WebCore::JSDeviceMotionEvent::rotationRate):
464         (WebCore::JSDeviceMotionEvent::interval):
465         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
466         * bindings/js/JSDeviceOrientationEventCustom.cpp:
467         (WebCore::JSDeviceOrientationEvent::alpha):
468         (WebCore::JSDeviceOrientationEvent::beta):
469         (WebCore::JSDeviceOrientationEvent::gamma):
470         (WebCore::JSDeviceOrientationEvent::webkitCompassHeading):
471         (WebCore::JSDeviceOrientationEvent::webkitCompassAccuracy):
472         (WebCore::JSDeviceOrientationEvent::absolute):
473         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
474         * bindings/js/JSDocumentCustom.cpp:
475         (WebCore::JSDocument::prepend):
476         (WebCore::JSDocument::append):
477         * bindings/js/JSDocumentFragmentCustom.cpp:
478         (WebCore::JSDocumentFragment::prepend):
479         (WebCore::JSDocumentFragment::append):
480         * bindings/js/JSDocumentTypeCustom.cpp:
481         (WebCore::JSDocumentType::before):
482         (WebCore::JSDocumentType::after):
483         (WebCore::JSDocumentType::replaceWith):
484         * bindings/js/JSElementCustom.cpp:
485         (WebCore::JSElement::before):
486         (WebCore::JSElement::after):
487         (WebCore::JSElement::replaceWith):
488         (WebCore::JSElement::prepend):
489         (WebCore::JSElement::append):
490         * bindings/js/JSEventCustom.cpp:
491         (WebCore::JSEvent::clipboardData):
492         * bindings/js/JSEventListener.cpp:
493         (WebCore::JSEventListener::handleEvent):
494         * bindings/js/JSEventTargetCustom.cpp:
495         * bindings/js/JSFileReaderCustom.cpp:
496         (WebCore::JSFileReader::result):
497         * bindings/js/JSGeolocationCustom.cpp:
498         (WebCore::JSGeolocation::getCurrentPosition):
499         (WebCore::JSGeolocation::watchPosition):
500         * bindings/js/JSHTMLAllCollectionCustom.cpp:
501         (WebCore::namedItems):
502         (WebCore::callHTMLAllCollection):
503         (WebCore::JSHTMLAllCollection::item):
504         * bindings/js/JSHTMLCanvasElementCustom.cpp:
505         (WebCore::JSHTMLCanvasElement::getContext):
506         (WebCore::JSHTMLCanvasElement::probablySupportsContext):
507         (WebCore::JSHTMLCanvasElement::toDataURL):
508         * bindings/js/JSHTMLCollectionCustom.cpp:
509         (WebCore::JSHTMLCollection::nameGetter):
510         * bindings/js/JSHTMLDocumentCustom.cpp:
511         (WebCore::JSHTMLDocument::nameGetter):
512         (WebCore::JSHTMLDocument::all):
513         (WebCore::findCallingDocument):
514         (WebCore::JSHTMLDocument::open):
515         (WebCore::documentWrite):
516         * bindings/js/JSHTMLElementCustom.cpp:
517         (WebCore::JSHTMLElement::pushEventHandlerScope):
518         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
519         (WebCore::namedItems):
520         * bindings/js/JSHTMLFormElementCustom.cpp:
521         (WebCore::JSHTMLFormElement::nameGetter):
522         * bindings/js/JSHTMLFrameElementCustom.cpp:
523         (WebCore::JSHTMLFrameElement::setLocation):
524         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
525         (WebCore::JSHTMLFrameSetElement::nameGetter):
526         * bindings/js/JSHTMLInputElementCustom.cpp:
527         (WebCore::JSHTMLInputElement::selectionStart):
528         (WebCore::JSHTMLInputElement::setSelectionStart):
529         (WebCore::JSHTMLInputElement::selectionEnd):
530         (WebCore::JSHTMLInputElement::setSelectionEnd):
531         (WebCore::JSHTMLInputElement::selectionDirection):
532         (WebCore::JSHTMLInputElement::setSelectionDirection):
533         (WebCore::JSHTMLInputElement::setSelectionRange):
534         * bindings/js/JSHTMLMediaElementCustom.cpp:
535         (WebCore::JSHTMLMediaElement::setController):
536         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
537         (WebCore::JSHTMLOptionsCollection::nameGetter):
538         (WebCore::JSHTMLOptionsCollection::setLength):
539         (WebCore::JSHTMLOptionsCollection::indexSetter):
540         (WebCore::JSHTMLOptionsCollection::remove):
541         * bindings/js/JSHTMLSelectElementCustom.cpp:
542         (WebCore::JSHTMLSelectElement::remove):
543         (WebCore::JSHTMLSelectElement::indexSetter):
544         * bindings/js/JSHTMLTemplateElementCustom.cpp:
545         (WebCore::JSHTMLTemplateElement::content):
546         * bindings/js/JSHistoryCustom.cpp:
547         (WebCore::JSHistory::getOwnPropertySlotDelegate):
548         (WebCore::JSHistory::putDelegate):
549         (WebCore::JSHistory::deleteProperty):
550         (WebCore::JSHistory::deletePropertyByIndex):
551         (WebCore::JSHistory::getOwnPropertyNames):
552         (WebCore::JSHistory::state):
553         (WebCore::JSHistory::pushState):
554         (WebCore::JSHistory::replaceState):
555         * bindings/js/JSIDBDatabaseCustom.cpp:
556         (WebCore::JSIDBDatabase::createObjectStore):
557         * bindings/js/JSIDBObjectStoreCustom.cpp:
558         (WebCore::JSIDBObjectStore::createIndex):
559         * bindings/js/JSInspectorFrontendHostCustom.cpp:
560         (WebCore::JSInspectorFrontendHost::showContextMenu):
561         * bindings/js/JSLocationCustom.cpp:
562         (WebCore::JSLocation::getOwnPropertySlotDelegate):
563         (WebCore::JSLocation::putDelegate):
564         (WebCore::JSLocation::deleteProperty):
565         (WebCore::JSLocation::deletePropertyByIndex):
566         (WebCore::JSLocation::getOwnPropertyNames):
567         (WebCore::JSLocation::toStringFunction):
568         * bindings/js/JSMediaSourceStatesCustom.cpp:
569         (WebCore::JSMediaSourceStates::width):
570         (WebCore::JSMediaSourceStates::height):
571         (WebCore::JSMediaSourceStates::frameRate):
572         (WebCore::JSMediaSourceStates::aspectRatio):
573         (WebCore::JSMediaSourceStates::facingMode):
574         (WebCore::JSMediaSourceStates::volume):
575         * bindings/js/JSMessageChannelCustom.cpp:
576         (WebCore::JSMessageChannel::visitAdditionalChildren):
577         * bindings/js/JSMessageEventCustom.cpp:
578         (WebCore::JSMessageEvent::data):
579         (WebCore::handleInitMessageEvent):
580         * bindings/js/JSMessagePortCustom.cpp:
581         (WebCore::JSMessagePort::visitAdditionalChildren):
582         (WebCore::JSMessagePort::postMessage):
583         * bindings/js/JSMockContentFilterSettingsCustom.cpp:
584         (WebCore::JSMockContentFilterSettings::decisionPoint):
585         (WebCore::JSMockContentFilterSettings::setDecisionPoint):
586         (WebCore::JSMockContentFilterSettings::decision):
587         (WebCore::JSMockContentFilterSettings::setDecision):
588         (WebCore::JSMockContentFilterSettings::unblockRequestDecision):
589         (WebCore::JSMockContentFilterSettings::setUnblockRequestDecision):
590         * bindings/js/JSMutationObserverCustom.cpp:
591         (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
592         * bindings/js/JSNamedNodeMapCustom.cpp:
593         (WebCore::JSNamedNodeMap::nameGetter):
594         * bindings/js/JSNavigatorCustom.cpp:
595         (WebCore::JSNavigator::webkitGetUserMedia):
596         * bindings/js/JSNodeCustom.cpp:
597         (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
598         (WebCore::JSNode::insertBefore):
599         (WebCore::JSNode::replaceChild):
600         (WebCore::JSNode::removeChild):
601         (WebCore::JSNode::appendChild):
602         (WebCore::JSNode::visitAdditionalChildren):
603         * bindings/js/JSNodeIteratorCustom.cpp:
604         (WebCore::JSNodeIterator::visitAdditionalChildren):
605         * bindings/js/JSNodeListCustom.cpp:
606         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
607         * bindings/js/JSNodeOrString.cpp:
608         (WebCore::toNodeOrStringVector):
609         * bindings/js/JSOscillatorNodeCustom.cpp:
610         (WebCore::JSOscillatorNode::setType):
611         * bindings/js/JSPannerNodeCustom.cpp:
612         (WebCore::JSPannerNode::setPanningModel):
613         (WebCore::JSPannerNode::setDistanceModel):
614         * bindings/js/JSPluginElementFunctions.cpp:
615         (WebCore::pluginScriptObjectFromPluginViewBase):
616         (WebCore::pluginScriptObject):
617         (WebCore::pluginElementGetCallData):
618         * bindings/js/JSPopStateEventCustom.cpp:
619         (WebCore::JSPopStateEvent::state):
620         * bindings/js/JSRTCStatsResponseCustom.cpp:
621         (WebCore::JSRTCStatsResponse::nameGetter):
622         * bindings/js/JSSQLResultSetRowListCustom.cpp:
623         (WebCore::JSSQLResultSetRowList::item):
624         * bindings/js/JSSQLTransactionCustom.cpp:
625         (WebCore::JSSQLTransaction::executeSql):
626         * bindings/js/JSSVGLengthCustom.cpp:
627         (WebCore::JSSVGLength::value):
628         (WebCore::JSSVGLength::setValue):
629         (WebCore::JSSVGLength::convertToSpecifiedUnits):
630         * bindings/js/JSStorageCustom.cpp:
631         (WebCore::JSStorage::nameGetter):
632         (WebCore::JSStorage::deleteProperty):
633         (WebCore::JSStorage::getOwnPropertyNames):
634         (WebCore::JSStorage::putDelegate):
635         * bindings/js/JSStyleSheetCustom.cpp:
636         (WebCore::JSStyleSheet::visitAdditionalChildren):
637         * bindings/js/JSStyleSheetListCustom.cpp:
638         (WebCore::JSStyleSheetList::nameGetter):
639         * bindings/js/JSSubtleCryptoCustom.cpp:
640         (WebCore::JSSubtleCrypto::encrypt):
641         (WebCore::JSSubtleCrypto::decrypt):
642         (WebCore::JSSubtleCrypto::sign):
643         (WebCore::JSSubtleCrypto::verify):
644         (WebCore::JSSubtleCrypto::wrapKey):
645         (WebCore::JSSubtleCrypto::unwrapKey):
646         * bindings/js/JSTextTrackCueCustom.cpp:
647         (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
648         (WebCore::JSTextTrackCue::visitAdditionalChildren):
649         * bindings/js/JSTextTrackCustom.cpp:
650         (WebCore::JSTextTrack::visitAdditionalChildren):
651         (WebCore::JSTextTrack::setKind):
652         (WebCore::JSTextTrack::setLanguage):
653         * bindings/js/JSTextTrackListCustom.cpp:
654         (WebCore::JSTextTrackList::visitAdditionalChildren):
655         * bindings/js/JSTrackCustom.cpp:
656         (WebCore::toTrack):
657         * bindings/js/JSTrackEventCustom.cpp:
658         (WebCore::JSTrackEvent::track):
659         * bindings/js/JSTreeWalkerCustom.cpp:
660         (WebCore::JSTreeWalker::visitAdditionalChildren):
661         * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
662         (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
663         * bindings/js/JSVideoTrackCustom.cpp:
664         (WebCore::JSVideoTrack::visitAdditionalChildren):
665         (WebCore::JSVideoTrack::setKind):
666         (WebCore::JSVideoTrack::setLanguage):
667         * bindings/js/JSVideoTrackListCustom.cpp:
668         (WebCore::JSVideoTrackList::visitAdditionalChildren):
669         * bindings/js/JSWebGL2RenderingContextCustom.cpp:
670         (WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):
671         (WebCore::JSWebGL2RenderingContext::getIndexedParameter):
672         * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
673         (WebCore::getObjectParameter):
674         (WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
675         (WebCore::JSWebGLRenderingContextBase::getAttachedShaders):
676         (WebCore::JSWebGLRenderingContextBase::getExtension):
677         (WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter):
678         (WebCore::JSWebGLRenderingContextBase::getParameter):
679         (WebCore::JSWebGLRenderingContextBase::getProgramParameter):
680         (WebCore::JSWebGLRenderingContextBase::getShaderParameter):
681         (WebCore::JSWebGLRenderingContextBase::getSupportedExtensions):
682         (WebCore::JSWebGLRenderingContextBase::getUniform):
683         (WebCore::JSWebGLRenderingContextBase::uniform1fv):
684         (WebCore::JSWebGLRenderingContextBase::uniform1iv):
685         (WebCore::JSWebGLRenderingContextBase::uniform2fv):
686         (WebCore::JSWebGLRenderingContextBase::uniform2iv):
687         (WebCore::JSWebGLRenderingContextBase::uniform3fv):
688         (WebCore::JSWebGLRenderingContextBase::uniform3iv):
689         (WebCore::JSWebGLRenderingContextBase::uniform4fv):
690         (WebCore::JSWebGLRenderingContextBase::uniform4iv):
691         (WebCore::JSWebGLRenderingContextBase::uniformMatrix2fv):
692         (WebCore::JSWebGLRenderingContextBase::uniformMatrix3fv):
693         (WebCore::JSWebGLRenderingContextBase::uniformMatrix4fv):
694         (WebCore::JSWebGLRenderingContextBase::vertexAttrib1fv):
695         (WebCore::JSWebGLRenderingContextBase::vertexAttrib2fv):
696         (WebCore::JSWebGLRenderingContextBase::vertexAttrib3fv):
697         (WebCore::JSWebGLRenderingContextBase::vertexAttrib4fv):
698         * bindings/js/JSWebGLRenderingContextCustom.cpp:
699         (WebCore::JSWebGLRenderingContext::visitAdditionalChildren):
700         * bindings/js/JSWorkerCustom.cpp:
701         (WebCore::JSWorker::postMessage):
702         (WebCore::constructJSWorker):
703         * bindings/js/JSWorkerGlobalScopeBase.cpp:
704         (WebCore::JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase):
705         (WebCore::JSWorkerGlobalScopeBase::scriptExecutionContext):
706         * bindings/js/JSWorkerGlobalScopeBase.h:
707         (WebCore::JSWorkerGlobalScopeBase::wrapped):
708         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
709         (WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
710         (WebCore::JSWorkerGlobalScope::importScripts):
711         (WebCore::JSWorkerGlobalScope::setTimeout):
712         (WebCore::JSWorkerGlobalScope::setInterval):
713         * bindings/js/JSXMLHttpRequestCustom.cpp:
714         (WebCore::JSXMLHttpRequest::visitAdditionalChildren):
715         (WebCore::JSXMLHttpRequest::open):
716         (WebCore::JSXMLHttpRequest::send):
717         (WebCore::JSXMLHttpRequest::responseText):
718         (WebCore::JSXMLHttpRequest::response):
719         * bindings/js/JSXPathResultCustom.cpp:
720         (WebCore::JSXPathResult::visitAdditionalChildren):
721         * bindings/js/JSXSLTProcessorCustom.cpp:
722         (WebCore::JSXSLTProcessor::setParameter):
723         (WebCore::JSXSLTProcessor::getParameter):
724         (WebCore::JSXSLTProcessor::removeParameter):
725         * bindings/js/ScheduledAction.cpp:
726         (WebCore::ScheduledAction::execute):
727         * bindings/js/ScriptCachedFrameData.cpp:
728         (WebCore::ScriptCachedFrameData::restore):
729         * bindings/js/ScriptController.cpp:
730         (WebCore::ScriptController::clearWindowShell):
731         (WebCore::ScriptController::collectIsolatedContexts):
732         * bindings/js/ScriptState.cpp:
733         (WebCore::domWindowFromExecState):
734         * bindings/objc/DOM.mm:
735         (+[DOMNode _nodeFromJSWrapper:]):
736         * bindings/objc/DOMUtility.mm:
737         (JSC::createDOMWrapper):
738         * bindings/objc/WebScriptObject.mm:
739         (-[WebScriptObject _isSafeScript]):
740         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
741         * bindings/scripts/CodeGeneratorJS.pm:
742         (GenerateGetOwnPropertySlotBody):
743         (GenerateHeader):
744         (GetIndexedGetterExpression):
745         (GenerateImplementation):
746         (NativeToJSValue):
747         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
748         (WebCore::jsTestActiveDOMObjectExcitingAttr):
749         (WebCore::jsTestActiveDOMObjectConstructor):
750         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
751         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
752         (WebCore::JSTestActiveDOMObjectOwner::finalize):
753         (WebCore::JSTestActiveDOMObject::toWrapped):
754         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
755         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
756         (WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
757         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
758         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
759         (WebCore::JSTestCustomNamedGetterOwner::finalize):
760         (WebCore::JSTestCustomNamedGetter::toWrapped):
761         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
762         (WebCore::jsTestEventConstructorAttr1):
763         (WebCore::jsTestEventConstructorAttr2):
764         (WebCore::JSTestEventConstructorOwner::finalize):
765         (WebCore::JSTestEventConstructor::toWrapped):
766         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
767         (WebCore::JSTestEventTarget::getOwnPropertySlot):
768         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
769         (WebCore::JSTestEventTarget::getOwnPropertyNames):
770         (WebCore::jsTestEventTargetPrototypeFunctionItem):
771         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
772         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
773         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
774         (WebCore::JSTestEventTarget::visitChildren):
775         (WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
776         (WebCore::JSTestEventTargetOwner::finalize):
777         (WebCore::JSTestEventTarget::toWrapped):
778         * bindings/scripts/test/JS/JSTestException.cpp:
779         (WebCore::jsTestExceptionName):
780         (WebCore::JSTestExceptionOwner::finalize):
781         (WebCore::JSTestException::toWrapped):
782         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
783         (WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
784         (WebCore::JSTestGenerateIsReachableOwner::finalize):
785         (WebCore::JSTestGenerateIsReachable::toWrapped):
786         * bindings/scripts/test/JS/JSTestInterface.cpp:
787         (WebCore::jsTestInterfaceImplementsStr1):
788         (WebCore::jsTestInterfaceImplementsStr2):
789         (WebCore::jsTestInterfaceImplementsNode):
790         (WebCore::jsTestInterfaceSupplementalStr1):
791         (WebCore::jsTestInterfaceSupplementalStr2):
792         (WebCore::jsTestInterfaceSupplementalNode):
793         (WebCore::setJSTestInterfaceImplementsStr2):
794         (WebCore::setJSTestInterfaceImplementsNode):
795         (WebCore::setJSTestInterfaceSupplementalStr2):
796         (WebCore::setJSTestInterfaceSupplementalNode):
797         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
798         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
799         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
800         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
801         (WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
802         (WebCore::JSTestInterfaceOwner::finalize):
803         (WebCore::JSTestInterface::toWrapped):
804         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
805         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
806         (WebCore::JSTestMediaQueryListListenerOwner::finalize):
807         (WebCore::JSTestMediaQueryListListener::toWrapped):
808         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
809         (WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
810         (WebCore::JSTestNamedConstructorOwner::finalize):
811         (WebCore::JSTestNamedConstructor::toWrapped):
812         * bindings/scripts/test/JS/JSTestNode.cpp:
813         (WebCore::jsTestNodeName):
814         (WebCore::setJSTestNodeName):
815         (WebCore::JSTestNode::visitChildren):
816         * bindings/scripts/test/JS/JSTestNode.h:
817         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
818         (WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
819         (WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
820         (WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
821         (WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
822         (WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
823         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
824         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
825         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
826         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
827         (WebCore::jsTestNondeterministicPrototypeFunctionNondeterministicZeroArgFunction):
828         (WebCore::JSTestNondeterministicOwner::finalize):
829         (WebCore::JSTestNondeterministic::toWrapped):
830         * bindings/scripts/test/JS/JSTestObj.cpp:
831         (WebCore::jsTestObjReadOnlyLongAttr):
832         (WebCore::jsTestObjReadOnlyStringAttr):
833         (WebCore::jsTestObjReadOnlyTestObjAttr):
834         (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
835         (WebCore::jsTestObjEnumAttr):
836         (WebCore::jsTestObjByteAttr):
837         (WebCore::jsTestObjOctetAttr):
838         (WebCore::jsTestObjShortAttr):
839         (WebCore::jsTestObjUnsignedShortAttr):
840         (WebCore::jsTestObjLongAttr):
841         (WebCore::jsTestObjLongLongAttr):
842         (WebCore::jsTestObjUnsignedLongLongAttr):
843         (WebCore::jsTestObjStringAttr):
844         (WebCore::jsTestObjTestObjAttr):
845         (WebCore::jsTestObjXMLObjAttr):
846         (WebCore::jsTestObjCreate):
847         (WebCore::jsTestObjReflectedStringAttr):
848         (WebCore::jsTestObjReflectedIntegralAttr):
849         (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
850         (WebCore::jsTestObjReflectedBooleanAttr):
851         (WebCore::jsTestObjReflectedURLAttr):
852         (WebCore::jsTestObjReflectedCustomIntegralAttr):
853         (WebCore::jsTestObjReflectedCustomBooleanAttr):
854         (WebCore::jsTestObjReflectedCustomURLAttr):
855         (WebCore::jsTestObjTypedArrayAttr):
856         (WebCore::jsTestObjAttrWithGetterException):
857         (WebCore::jsTestObjAttrWithSetterException):
858         (WebCore::jsTestObjStringAttrWithGetterException):
859         (WebCore::jsTestObjStringAttrWithSetterException):
860         (WebCore::jsTestObjStrictTypeCheckingAttribute):
861         (WebCore::jsTestObjOnfoo):
862         (WebCore::jsTestObjWithScriptStateAttribute):
863         (WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
864         (WebCore::jsTestObjWithScriptExecutionContextAttribute):
865         (WebCore::jsTestObjWithScriptStateAttributeRaises):
866         (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
867         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
868         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
869         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
870         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
871         (WebCore::jsTestObjConditionalAttr1):
872         (WebCore::jsTestObjConditionalAttr2):
873         (WebCore::jsTestObjConditionalAttr3):
874         (WebCore::jsTestObjCachedAttribute1):
875         (WebCore::jsTestObjCachedAttribute2):
876         (WebCore::jsTestObjAnyAttribute):
877         (WebCore::jsTestObjContentDocument):
878         (WebCore::jsTestObjMutablePoint):
879         (WebCore::jsTestObjImmutablePoint):
880         (WebCore::jsTestObjStrawberry):
881         (WebCore::jsTestObjStrictFloat):
882         (WebCore::jsTestObjDescription):
883         (WebCore::jsTestObjId):
884         (WebCore::jsTestObjHash):
885         (WebCore::jsTestObjReplaceableAttribute):
886         (WebCore::jsTestObjNullableDoubleAttribute):
887         (WebCore::jsTestObjNullableLongAttribute):
888         (WebCore::jsTestObjNullableBooleanAttribute):
889         (WebCore::jsTestObjNullableStringAttribute):
890         (WebCore::jsTestObjNullableLongSettableAttribute):
891         (WebCore::jsTestObjNullableStringValue):
892         (WebCore::jsTestObjAttribute):
893         (WebCore::jsTestObjAttributeWithReservedEnumType):
894         (WebCore::jsTestObjPutForwardsAttribute):
895         (WebCore::jsTestObjPutForwardsNullableAttribute):
896         (WebCore::setJSTestObjEnumAttr):
897         (WebCore::setJSTestObjByteAttr):
898         (WebCore::setJSTestObjOctetAttr):
899         (WebCore::setJSTestObjShortAttr):
900         (WebCore::setJSTestObjUnsignedShortAttr):
901         (WebCore::setJSTestObjLongAttr):
902         (WebCore::setJSTestObjLongLongAttr):
903         (WebCore::setJSTestObjUnsignedLongLongAttr):
904         (WebCore::setJSTestObjStringAttr):
905         (WebCore::setJSTestObjTestObjAttr):
906         (WebCore::setJSTestObjXMLObjAttr):
907         (WebCore::setJSTestObjCreate):
908         (WebCore::setJSTestObjReflectedStringAttr):
909         (WebCore::setJSTestObjReflectedIntegralAttr):
910         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
911         (WebCore::setJSTestObjReflectedBooleanAttr):
912         (WebCore::setJSTestObjReflectedURLAttr):
913         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
914         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
915         (WebCore::setJSTestObjReflectedCustomURLAttr):
916         (WebCore::setJSTestObjTypedArrayAttr):
917         (WebCore::setJSTestObjAttrWithGetterException):
918         (WebCore::setJSTestObjAttrWithSetterException):
919         (WebCore::setJSTestObjStringAttrWithGetterException):
920         (WebCore::setJSTestObjStringAttrWithSetterException):
921         (WebCore::setJSTestObjStrictTypeCheckingAttribute):
922         (WebCore::setJSTestObjOnfoo):
923         (WebCore::setJSTestObjWithScriptStateAttribute):
924         (WebCore::setJSTestObjWithCallWithAndSetterCallWithAttribute):
925         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
926         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
927         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
928         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
929         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
930         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
931         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
932         (WebCore::setJSTestObjConditionalAttr1):
933         (WebCore::setJSTestObjConditionalAttr2):
934         (WebCore::setJSTestObjConditionalAttr3):
935         (WebCore::setJSTestObjAnyAttribute):
936         (WebCore::setJSTestObjMutablePoint):
937         (WebCore::setJSTestObjImmutablePoint):
938         (WebCore::setJSTestObjStrawberry):
939         (WebCore::setJSTestObjStrictFloat):
940         (WebCore::setJSTestObjId):
941         (WebCore::setJSTestObjNullableLongSettableAttribute):
942         (WebCore::setJSTestObjNullableStringValue):
943         (WebCore::setJSTestObjAttributeWithReservedEnumType):
944         (WebCore::setJSTestObjPutForwardsAttribute):
945         (WebCore::setJSTestObjPutForwardsNullableAttribute):
946         (WebCore::jsTestObjPrototypeFunctionVoidMethod):
947         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
948         (WebCore::jsTestObjPrototypeFunctionByteMethod):
949         (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
950         (WebCore::jsTestObjPrototypeFunctionOctetMethod):
951         (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
952         (WebCore::jsTestObjPrototypeFunctionLongMethod):
953         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
954         (WebCore::jsTestObjPrototypeFunctionObjMethod):
955         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
956         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
957         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
958         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
959         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
960         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
961         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
962         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
963         (WebCore::jsTestObjPrototypeFunctionMethodWithException):
964         (WebCore::jsTestObjPrototypeFunctionPrivateMethod):
965         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
966         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
967         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
968         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
969         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
970         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
971         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
972         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
973         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
974         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
975         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
976         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
977         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue):
978         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
979         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
980         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
981         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue):
982         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
983         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
984         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
985         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
986         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
987         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
988         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
989         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
990         (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
991         (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
992         (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
993         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
994         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
995         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
996         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
997         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
998         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
999         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
1000         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
1001         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
1002         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
1003         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
1004         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
1005         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
1006         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
1007         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
1008         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
1009         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
1010         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
1011         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
1012         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
1013         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
1014         (WebCore::jsTestObjPrototypeFunctionConvert1):
1015         (WebCore::jsTestObjPrototypeFunctionConvert2):
1016         (WebCore::jsTestObjPrototypeFunctionConvert4):
1017         (WebCore::jsTestObjPrototypeFunctionConvert5):
1018         (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
1019         (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
1020         (WebCore::jsTestObjPrototypeFunctionOrange):
1021         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
1022         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
1023         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
1024         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
1025         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
1026         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
1027         (WebCore::jsTestObjPrototypeFunctionAny):
1028         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
1029         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
1030         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
1031         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
1032         (WebCore::JSTestObjOwner::finalize):
1033         (WebCore::JSTestObj::toWrapped):
1034         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1035         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
1036         (WebCore::JSTestOverloadedConstructors::toWrapped):
1037         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
1038         (WebCore::JSTestOverrideBuiltins::getOwnPropertyNames):
1039         (WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
1040         (WebCore::JSTestOverrideBuiltinsOwner::finalize):
1041         (WebCore::JSTestOverrideBuiltins::toWrapped):
1042         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1043         (WebCore::jsTestSerializedScriptValueInterfaceValue):
1044         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
1045         (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
1046         (WebCore::jsTestSerializedScriptValueInterfacePorts):
1047         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
1048         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
1049         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
1050         (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
1051         (WebCore::JSTestSerializedScriptValueInterface::toWrapped):
1052         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1053         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
1054         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
1055         (WebCore::jsTestTypedefsAttrWithGetterException):
1056         (WebCore::jsTestTypedefsAttrWithSetterException):
1057         (WebCore::jsTestTypedefsStringAttrWithGetterException):
1058         (WebCore::jsTestTypedefsStringAttrWithSetterException):
1059         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
1060         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
1061         (WebCore::setJSTestTypedefsAttrWithGetterException):
1062         (WebCore::setJSTestTypedefsAttrWithSetterException):
1063         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
1064         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
1065         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
1066         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
1067         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
1068         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
1069         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
1070         (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
1071         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
1072         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
1073         (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
1074         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
1075         (WebCore::JSTestTypedefsOwner::finalize):
1076         (WebCore::JSTestTypedefs::toWrapped):
1077         * bindings/scripts/test/JS/JSattribute.cpp:
1078         (WebCore::jsattributeReadonly):
1079         (WebCore::JSattributeOwner::finalize):
1080         (WebCore::JSattribute::toWrapped):
1081         * bindings/scripts/test/JS/JSreadonly.cpp:
1082         (WebCore::JSreadonlyOwner::finalize):
1083         (WebCore::JSreadonly::toWrapped):
1084         * bridge/runtime_method.cpp:
1085         (JSC::callRuntimeMethod):
1086         * inspector/InspectorController.cpp:
1087         (WebCore::InspectorController::canAccessInspectedScriptState):
1088
1089 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1090
1091         IDL functions and attributes should be JSBuiltin by default if interface is marked as JSBuiltinConstructor
1092         https://bugs.webkit.org/show_bug.cgi?id=150438
1093
1094         Reviewed by Darin Adler.
1095
1096         Binding generator is now deducing that function/attribute is JSBuiltin if the interface is marked as JSBuiltin.
1097         One exception is custom setters, getters or functions which remain C++ handled.
1098         Updated streams API IDLs accordingly.
1099
1100         Binding generator knows whether class needs a DOM class by checking whether the interface is marked as JSBuiltin.
1101         Binding generator knows that class uses a JS built-in constructor if marked as JSBuiltin+Constructor.
1102         In particular, JSBuiltIn+CustomConstructor means that a DOM class is not needed and constructor is not JS built-in.
1103
1104         Applied JSBuiltin+CustomConstructor to ReadableStreamReader and ReadableStreamController.
1105         Removing ReadableStreamReader and ReadableStreamController classes.
1106
1107         Removed unneeded "Default" keyword for cancel function in WebIDL.
1108
1109         Added a binding test case.
1110         No change in behavior.
1111
1112         * Modules/streams/ByteLengthQueuingStrategy.idl: Marking interface as JSBuiltin and Constructable.
1113         * Modules/streams/CountQueuingStrategy.idl: Ditto.
1114         * Modules/streams/ReadableStream.idl: Ditto.
1115         * Modules/streams/ReadableStreamController.h: Removed.
1116         * Modules/streams/ReadableStreamController.idl: Marking interface as JSBuiltin and Constructable.
1117         * Modules/streams/ReadableStreamReader.h: Removed.
1118         * Modules/streams/ReadableStreamReader.idl: Marking interface as JSBuiltin and Constructable.
1119         * Modules/streams/WritableStream.idl: Ditto.
1120         * bindings/js/JSReadableStreamPrivateConstructors.cpp:
1121         (WebCore::JSBuiltinReadableStreamReaderPrivateConstructor::createJSObject): Updated according new constructor.
1122         (WebCore::JSBuiltinReadableStreamControllerPrivateConstructor::createJSObject): Ditto.
1123         * bindings/scripts/CodeGeneratorJS.pm:
1124         (NeedsImplementationClass):
1125         (GetAttributeGetterName):
1126         (GetAttributeSetterName):
1127         (GetFunctionName):
1128         (InstanceNeedsVisitChildren):
1129         (GenerateHeader):
1130         (GenerateAttributesHashTable):
1131         (GenerateImplementation):
1132         (GetConstructorTemplateClassName):
1133         (GenerateConstructorDefinition):
1134         (GenerateConstructorHelperMethods):
1135         (IsConstructable):
1136         (ComputeFunctionSpecial):
1137         (IsJSBuiltin):
1138         (IsJSBuiltinConstructor):
1139         (AddJSBuiltinIncludesIfNeeded):
1140         (GetJSBuiltinFunctionName): Deleted.
1141         (GetJSBuiltinFunctionNameFromString): Deleted.
1142         (GetJSBuiltinScopeName): Deleted.
1143         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp:
1144         (webkit_dom_test_js_builtin_constructor_set_property):
1145         (webkit_dom_test_js_builtin_constructor_get_property):
1146         (webkit_dom_test_js_builtin_constructor_class_init):
1147         (webkit_dom_test_js_builtin_constructor_test_function):
1148         (webkit_dom_test_js_builtin_constructor_get_test_attribute):
1149         (webkit_dom_test_js_builtin_constructor_set_test_attribute):
1150         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h:
1151         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
1152         (WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
1153         (WebCore::JSTestJSBuiltinConstructor::getOwnPropertySlot):
1154         (WebCore::jsTestJSBuiltinConstructorTestAttribute):
1155         (WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
1156         (WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
1157         (WebCore::setJSTestJSBuiltinConstructorTestAttribute):
1158         (WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustom):
1159         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestFunction):
1160         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction):
1161         (WebCore::JSTestJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
1162         (WebCore::JSTestJSBuiltinConstructorOwner::finalize):
1163         (WebCore::toJSNewlyCreated):
1164         (WebCore::toJS):
1165         (WebCore::JSTestJSBuiltinConstructor::toWrapped):
1166         (WebCore::JSTestJSBuiltinConstructorPrototype::createStructure): Deleted.
1167         (WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties): Deleted.
1168         (WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
1169         (WebCore::JSTestJSBuiltinConstructor::getPrototype): Deleted.
1170         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
1171         (WebCore::JSTestJSBuiltinConstructor::create):
1172         (WebCore::JSTestJSBuiltinConstructor::finishCreation):
1173         (WebCore::wrapperOwner):
1174         (WebCore::toJS):
1175         (WebCore::JSTestJSBuiltinConstructor::createStructure): Deleted.
1176         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h:
1177         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:
1178         (-[DOMTestJSBuiltinConstructor testAttribute]):
1179         (-[DOMTestJSBuiltinConstructor setTestAttribute:]):
1180         (-[DOMTestJSBuiltinConstructor testAttributeCustom]):
1181         (-[DOMTestJSBuiltinConstructor testAttributeRWCustom]):
1182         (-[DOMTestJSBuiltinConstructor setTestAttributeRWCustom:]):
1183         (-[DOMTestJSBuiltinConstructor testFunction]):
1184         (-[DOMTestJSBuiltinConstructor testCustomFunction]):
1185         * bindings/scripts/test/TestJSBuiltinConstructor.idl:
1186
1187 2015-10-29  Sergio Villar Senin  <svillar@igalia.com>
1188
1189         [CSS Grid Layout] min-content row does not always shrink
1190         https://bugs.webkit.org/show_bug.cgi?id=144581
1191
1192         Reviewed by Zalan Bujtas.
1193
1194         Grid items height must be recomputed whenever the grid tracks
1195         change if the items had been previously stretched. In those
1196         cases we have to clear the override height and layout the item
1197         with the new row size.
1198
1199         Tests: fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html
1200                fast/css-grid-layout/relayout-indefinite-heights.html
1201
1202         * rendering/RenderGrid.cpp:
1203         (WebCore::RenderGrid::logicalContentHeightForChild):
1204
1205 2015-11-01  Brady Eidson  <beidson@apple.com>
1206
1207         Modern IDB: IBDObjectStore.count() support.
1208         https://bugs.webkit.org/show_bug.cgi?id=150785
1209
1210         Reviewed by Darin Adler.
1211
1212         Tests: storage/indexeddb/modern/idbobjectstore-count-1.html
1213                storage/indexeddb/modern/idbobjectstore-count-failures.html
1214
1215         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1216         (WebCore::IDBClient::IDBConnectionToServer::getCount):
1217         (WebCore::IDBClient::IDBConnectionToServer::didGetCount):
1218         * Modules/indexeddb/client/IDBConnectionToServer.h:
1219         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
1220         
1221         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1222         (WebCore::IDBClient::IDBObjectStore::count):
1223         (WebCore::IDBClient::IDBObjectStore::doCount):
1224         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
1225         
1226         * Modules/indexeddb/client/IDBRequestImpl.cpp:
1227         (WebCore::IDBClient::IDBRequest::setResult):
1228         * Modules/indexeddb/client/IDBRequestImpl.h:
1229         
1230         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1231         (WebCore::IDBClient::IDBTransaction::requestCount):
1232         (WebCore::IDBClient::IDBTransaction::getCountOnServer):
1233         (WebCore::IDBClient::IDBTransaction::didGetCountOnServer):
1234         * Modules/indexeddb/client/IDBTransactionImpl.h:
1235         
1236         * Modules/indexeddb/server/IDBBackingStore.h:
1237         
1238         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
1239         (WebCore::IDBServer::IDBConnectionToClient::didGetCount):
1240         * Modules/indexeddb/server/IDBConnectionToClient.h:
1241         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
1242         
1243         * Modules/indexeddb/server/IDBServer.cpp:
1244         (WebCore::IDBServer::IDBServer::getCount):
1245         * Modules/indexeddb/server/IDBServer.h:
1246         
1247         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1248         (WebCore::IDBServer::MemoryIDBBackingStore::getCount):
1249         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
1250         
1251         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1252         (WebCore::IDBServer::MemoryObjectStore::countForKeyRange):
1253         (WebCore::IDBServer::MemoryObjectStore::valueForKeyRange):
1254         (WebCore::IDBServer::MemoryObjectStore::lowestKeyWithRecordInRange):
1255         * Modules/indexeddb/server/MemoryObjectStore.h:
1256         
1257         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1258         (WebCore::IDBServer::UniqueIDBDatabase::storeCallback):
1259         (WebCore::IDBServer::UniqueIDBDatabase::getCount):
1260         (WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
1261         (WebCore::IDBServer::UniqueIDBDatabase::didPerformGetCount):
1262         (WebCore::IDBServer::UniqueIDBDatabase::performCountCallback):
1263         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1264         
1265         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
1266         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
1267         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
1268         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
1269         
1270         * Modules/indexeddb/shared/IDBResultData.cpp:
1271         (WebCore::IDBResultData::IDBResultData):
1272         (WebCore::IDBResultData::getCountSuccess):
1273         * Modules/indexeddb/shared/IDBResultData.h:
1274         (WebCore::IDBResultData::resultInteger):
1275         
1276         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1277         (WebCore::InProcessIDBServer::didGetCount):
1278         (WebCore::InProcessIDBServer::getCount):
1279         * Modules/indexeddb/shared/InProcessIDBServer.h:
1280
1281 2015-11-01  Darin Adler  <darin@apple.com>
1282
1283         Tidy handling of type=color in HTMLInputElement a bit
1284         https://bugs.webkit.org/show_bug.cgi?id=150786
1285
1286         Reviewed by Andreas Kling.
1287
1288         * html/ColorInputType.cpp: Fix formatting.
1289         (WebCore::ColorInputType::fallbackValue): Use ASCIILiteral for slightly
1290         better performance.
1291         (WebCore::ColorInputType::sanitizeValue): Use convertToASCIILowercase,
1292         since there is no need for the general purpose Unicode lowercasing here;
1293         those non-ASCII characters aren't allowed by isValidColorString.
1294         (WebCore::ColorInputType::suggestions): Rewrote data list code to remove
1295         peculiarities such as using a null check to terminate the loop instead of
1296         the collection length, calling back to HTMLInputElement just to get the
1297         isValidColorString function called. Also used reserveInitialCapacity and
1298         uncheckedAppend for better memory use in the result vector.
1299         (WebCore::ColorInputType::selectColor): Added.
1300
1301         * html/ColorInputType.h: Made derivation from ColorChooserClient private.
1302         Made most functions private. Added overrides for valueAsColor and selectColor,
1303         now both virtual functions in InputType.
1304
1305         * html/HTMLInputElement.cpp: Removed now-unneeded include of ColorInputType.h.
1306         (WebCore::HTMLInputElement::valueAsColor): Added. Calls through to the InputType.
1307         In a later patch, will be used by accessibility code to get the color so it
1308         does not have to replicate the color parsing logic from this element.
1309         (WebCore::HTMLInputElement::selectColor): Renamed from selectColorInColorChooser,
1310         because the longer name is not clearer. Also made this non-conditional.
1311
1312         * html/HTMLInputElement.h: Added valueAsColor, renamed selectColorInColorChooser
1313         to selectColor and made it available unconditionally.
1314
1315         * html/InputType.cpp:
1316         (WebCore::InputType::valueAsColor): Added. Returns transparent color.
1317         (WebCore::InputType::selectColor): Added. Does nothing by default.
1318
1319         * html/InputType.h: Added virtual valueAsColor and selectColor. Also tidied
1320         up the header a bit and removed unneeded Noncopyable (since this class has
1321         a reference for one of the data members and so is intrinsically not copyable).
1322         Made isColorControl available unconditionally.
1323
1324         * testing/Internals.cpp:
1325         (WebCore::Internals::selectColorInColorChooser): Removed conditionals and
1326         made this call selectColor rather than selectColorInColorChooser.
1327
1328         * testing/Internals.h: Made selectColorInColorChooser unconditional.
1329
1330         * testing/Internals.idl: Made selectColorInColorChooser unconditionally
1331         present. Not important to optimize the test internals class by leaving it
1332         out when INPUT_TYPE_COLOR is not enabled.
1333
1334 2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>
1335
1336         [ES6] Support Generator Syntax
1337         https://bugs.webkit.org/show_bug.cgi?id=150769
1338
1339         Reviewed by Geoffrey Garen.
1340
1341         Added ENABLE_ES6_GENERATORS flag.
1342
1343         * Configurations/FeatureDefines.xcconfig:
1344
1345 2015-11-01  Myles C. Maxfield  <mmaxfield@apple.com>
1346
1347         Clean up some CSS & Font code
1348         https://bugs.webkit.org/show_bug.cgi?id=150767
1349
1350         Reviewed by Darin Adler.
1351
1352         This patch migrates some CSS code to use references instead of pointers.
1353         It also migrates some Font code to use RefPtr instead of PassRefPtr.
1354
1355         No new tests because there is no behavior change.
1356
1357         * css/CSSDefaultStyleSheets.cpp:
1358         (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
1359         (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
1360         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
1361         * css/CSSFontSelector.cpp:
1362         (WebCore::createFontFace):
1363         (WebCore::CSSFontSelector::addFontFaceRule):
1364         * css/CSSFontSelector.h:
1365         * css/DocumentRuleSets.cpp:
1366         (WebCore::DocumentRuleSets::initUserStyle):
1367         (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
1368         (WebCore::DocumentRuleSets::appendAuthorStyleSheets):
1369         * css/RuleSet.cpp:
1370         (WebCore::RuleSet::addChildRules):
1371         (WebCore::RuleSet::addRulesFromSheet):
1372         * css/RuleSet.h:
1373         * css/StyleInvalidationAnalysis.cpp:
1374         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
1375         * platform/graphics/Font.cpp:
1376         (WebCore::Font::verticalRightOrientationFont):
1377         (WebCore::Font::uprightOrientationFont):
1378         (WebCore::Font::smallCapsFont):
1379         (WebCore::Font::emphasisMarkFont):
1380         (WebCore::Font::brokenIdeographFont):
1381         (WebCore::Font::nonSyntheticItalicFont):
1382         (WebCore::Font::createScaledFont):
1383         * platform/graphics/Font.h:
1384         (WebCore::Font::variantFont):
1385         * platform/graphics/cocoa/FontCocoa.mm:
1386         (WebCore::Font::platformCreateScaledFont):
1387         * svg/SVGFontFaceElement.h:
1388
1389 2015-11-01  Darin Adler  <darin@apple.com>
1390
1391         Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic)
1392         https://bugs.webkit.org/show_bug.cgi?id=150783
1393
1394         Reviewed by Tim Horton.
1395
1396         * PlatformWinCairo.cmake: Removed ScrollbarThemeSafari.cpp, no reason to compile it.
1397
1398         * platform/graphics/ca/GraphicsLayerCA.cpp:
1399         (WebCore::GraphicsLayerCA::setContentsToImage): Removed the code that set a color space
1400         on an image if it's set to device color space. This has been dead code for many releases
1401         of OS X and iOS at this point.
1402
1403         * platform/graphics/filters/FEColorMatrix.h: Removed some ENABLE(OPENCL)-only code.
1404         * platform/graphics/filters/FEFlood.h: Ditto.
1405         * platform/graphics/filters/FEMerge.h: Ditto.
1406         * platform/graphics/filters/FETurbulence.h: Ditto.
1407         * platform/graphics/filters/FilterEffect.cpp:
1408         (WebCore::FilterEffect::applyAll): Removed.
1409         (WebCore::FilterEffect::apply): Removed ENABLE(OPENCL)-only code.
1410         (WebCore::FilterEffect::platformApplyOpenCL): Removed.
1411         (WebCore::FilterEffect::clearResult): Removed ENABLE(OPENCL)-only code.
1412         (WebCore::FilterEffect::asImageBuffer): Ditto.
1413         (WebCore::FilterEffect::openCLImageToImageBuffer): Removed.
1414         (WebCore::FilterEffect::createOpenCLImageResult): Removed.
1415         (WebCore::FilterEffect::transformResultColorSpace): Removed ENABLE(OPENCL)-only code.
1416
1417         * platform/graphics/filters/FilterEffect.h: Removed ENABLE(OPENCL)-only code.
1418         * platform/graphics/filters/SourceAlpha.h: Ditto.
1419         * platform/graphics/filters/SourceGraphic.h: Ditto.
1420
1421         * platform/win/ScrollbarThemeSafari.cpp: Removed.
1422         * platform/win/ScrollbarThemeSafari.h: Removed.
1423
1424         * rendering/RenderThemeMac.mm: Removed an obsolete comment.
1425
1426         * rendering/RenderThemeSafari.cpp: Removed.
1427         * rendering/RenderThemeSafari.h: Removed.
1428
1429         * svg/graphics/filters/SVGFEImage.h: Removed ENABLE(OPENCL)-only code.
1430
1431 2015-11-01  Andreas Kling  <akling@apple.com>
1432
1433         Move the ResourceUsageOverlay out of the way by default.
1434         <https://webkit.org/b/150776>
1435
1436         Reviewed by Darin Adler.
1437
1438         Have the ResourceUsageOverlay show up in the bottom center of the viewport
1439         by default, instead of the top left. This way, you won't have to drag it
1440         out of the way all the time.
1441
1442         * page/ResourceUsageOverlay.cpp:
1443         (WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
1444         (WebCore::ResourceUsageOverlay::initialize):
1445         * page/ResourceUsageOverlay.h:
1446         * page/cocoa/ResourceUsageOverlayCocoa.mm:
1447         (WebCore::ResourceUsageOverlay::platformInitialize):
1448
1449 2015-11-01  Philip Chimento  <philip.chimento@gmail.com>
1450
1451         [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
1452         https://bugs.webkit.org/show_bug.cgi?id=144560
1453
1454         Reviewed by Darin Adler.
1455
1456         * platform/graphics/PlatformDisplay.cpp: Only include the
1457         X11-specific GDK header on PLATFORM(X11). In other cases the
1458         normal gdk.h header is needed, which would otherwise be pulled in
1459         by gdkx.h.
1460         * platform/graphics/opentype/OpenTypeMathData.cpp: Change check
1461         for FourCharCode type from OS(DARWIN) to PLATFORM(COCOA). We
1462         can't remove it altogether because OT_MAKE_TAG doesn't work for
1463         all platforms.
1464
1465 2015-11-01  Carlos Garcia Campos  <cgarcia@igalia.com>
1466
1467         [GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation
1468         https://bugs.webkit.org/show_bug.cgi?id=150754
1469
1470         Reviewed by Darin Adler.
1471
1472         It's more efficient because it uses a persistent source and it
1473         simplifies the code even more.
1474
1475         * platform/MainThreadSharedTimer.cpp:
1476         (WebCore::MainThreadSharedTimer::fired): Make it non-const to be
1477         able to use it as function callback of a RunLoop::Timer.
1478         * platform/MainThreadSharedTimer.h:
1479         * platform/gtk/MainThreadSharedTimerGtk.cpp:
1480         (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
1481         Initialize the RunLoop::Timer and set the prioriry.
1482         (WebCore::MainThreadSharedTimer::setFireInterval):
1483         (WebCore::MainThreadSharedTimer::stop):
1484
1485 2015-10-31  Andreas Kling  <akling@apple.com>
1486
1487         Add a debug overlay with information about web process resource usage.
1488         <https://webkit.org/b/150599>
1489
1490         Unreviewed follow-up to r191849.
1491
1492         Add missing call to uninstall the PageOverlay if the ResourceUsageOverlay is being
1493         disabled through the setting. This way you don't end up with an unremovable overlay
1494         in the MiniBrowser.
1495
1496         * page/ResourceUsageOverlay.cpp:
1497         (WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
1498
1499 2015-10-31  Brady Eidson  <beidson@apple.com>
1500
1501         IDB: Date objects don't work as keys or values.
1502         https://bugs.webkit.org/show_bug.cgi?id=150743
1503
1504         Reviewed by Darin Adler.
1505
1506         Test: storage/indexeddb/modern/date-basic.html
1507
1508         The combination of the autogenerated bindings with Deprecated::ScriptValue was
1509         losing the fidelity of "Date" objects being Dates, and not just normal Objects.
1510         
1511         This was breaking their usage as IDBKeys.
1512         
1513         Custom binding + reworking the IDBObjectStore IDLs to use JSValue instead of ScriptValue
1514         fixes this handily.
1515         
1516         * Modules/indexeddb/IDBObjectStore.h:
1517         * Modules/indexeddb/IDBObjectStore.idl:
1518         
1519         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1520         (WebCore::IDBClient::IDBObjectStore::add):
1521         (WebCore::IDBClient::IDBObjectStore::put):
1522         (WebCore::IDBClient::IDBObjectStore::putOrAdd):
1523         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
1524         
1525         * Modules/indexeddb/legacy/LegacyObjectStore.cpp:
1526         (WebCore::LegacyObjectStore::add):
1527         (WebCore::LegacyObjectStore::put):
1528         * Modules/indexeddb/legacy/LegacyObjectStore.h:
1529         
1530         * bindings/js/IDBBindingUtilities.cpp:
1531         (WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
1532         (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
1533         (WebCore::canInjectIDBKeyIntoScriptValue):
1534         (WebCore::scriptValueToIDBKey):
1535         * bindings/js/IDBBindingUtilities.h:
1536
1537         * bindings/js/JSIDBObjectStoreCustom.cpp:
1538         (WebCore::putOrAdd):
1539         (WebCore::JSIDBObjectStore::putRecord):
1540         (WebCore::JSIDBObjectStore::add):
1541
1542 2015-10-31  Andreas Kling  <akling@apple.com>
1543
1544         Add a debug overlay with information about web process resource usage.
1545         <https://webkit.org/b/150599>
1546
1547         Reviewed by Darin Adler.
1548
1549         A new kind of PageOverlay is added behind the ENABLE(RESOURCE_USAGE_OVERLAY) flag.
1550         It's owned by Page, but not instantiated unless the Settings::resourceUsageOverlayVisible flag is set.
1551
1552         All ResourceUsageOverlay objects share a single sampler thread. The thread currently runs every 500ms
1553         and samples CPU usage, dirty memory regions, and GC heap size/capacity.
1554
1555         Most things in here are currently quite Mac-specific, but I will be iterating on this towards a more
1556         cross-platform friendly solution.
1557
1558         There are two small changes to PageOverlay in order to support dragging the resource usage overlay:
1559
1560             - A "should ignore mouse events outside bounds" state flag. This is on by default
1561               but turned off during a drag.
1562             - PageOverlay::bounds() will now return the override frame verbatim if one is set,
1563               instead of returning it relocated to 0,0.
1564
1565         Note that this is intended as a tool for WebKit engine developers to better understand memory usage.
1566         It's not a goal to expose this information to end users.
1567
1568         * WebCore.xcodeproj/project.pbxproj:
1569         * page/Page.cpp:
1570         (WebCore::Page::setResourceUsageOverlayVisible):
1571         * page/Page.h:
1572         * page/PageOverlay.cpp:
1573         (WebCore::PageOverlay::bounds):
1574         (WebCore::PageOverlay::mouseEvent):
1575         * page/PageOverlay.h:
1576         * page/ResourceUsageOverlay.cpp: Added.
1577         (WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
1578         (WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
1579         (WebCore::ResourceUsageOverlay::mouseEvent):
1580         * page/ResourceUsageOverlay.h: Added.
1581         * page/Settings.cpp:
1582         (WebCore::Settings::setResourceUsageOverlayVisible):
1583         * page/Settings.h:
1584         (WebCore::Settings::resourceUsageOverlayVisible):
1585         * page/cocoa/ResourceUsageOverlayCocoa.mm: Added.
1586         (-[WebOverlayLayer initWithResourceUsageOverlay:]):
1587         (-[WebOverlayLayer drawInContext:]):
1588         (WebCore::RingBuffer::RingBuffer):
1589         (WebCore::RingBuffer::append):
1590         (WebCore::RingBuffer::last):
1591         (WebCore::RingBuffer::forEach):
1592         (WebCore::RingBuffer::incrementIndex):
1593         (WebCore::RingBuffer::decrementIndex):
1594         (WebCore::sharedData):
1595         (WebCore::ResourceUsageOverlay::platformInitialize):
1596         (WebCore::ResourceUsageOverlay::platformDestroy):
1597         (WebCore::drawCpuHistory):
1598         (WebCore::drawGCHistory):
1599         (WebCore::drawSlice):
1600         (WebCore::drawPlate):
1601         (WebCore::drawMemoryPie):
1602         (WebCore::formatByteNumber):
1603         (WebCore::showText):
1604         (WebCore::ResourceUsageOverlay::draw):
1605         (WebCore::dirtyPagesPerVMTag):
1606         (WebCore::cpuUsage):
1607         (WebCore::runSamplerThread):
1608         * platform/spi/cocoa/MachVMSPI.h:
1609
1610 2015-10-31  Brady Eidson  <beidson@apple.com>
1611
1612         storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html is flaky.
1613         https://bugs.webkit.org/show_bug.cgi?id=150735
1614
1615         Reviewed by Darin Adler.
1616
1617         No new tests (Covered by existing tests).
1618
1619         Transactions were liable to commit too early because IDBRequests could be waiting
1620         to dispatch their error/success events but their operations would no longer be
1621         registered with the transaction.
1622         
1623         Having outstanding requests should also keep a transaction from committing, just
1624         like having outstanding operations should.
1625         
1626         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
1627         (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):
1628         
1629         * Modules/indexeddb/client/IDBRequestImpl.cpp:
1630         (WebCore::IDBClient::IDBRequest::dispatchEvent):
1631         
1632         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1633         (WebCore::IDBClient::IDBTransaction::addRequest):
1634         (WebCore::IDBClient::IDBTransaction::removeRequest):
1635         (WebCore::IDBClient::IDBTransaction::operationTimerFired):
1636         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
1637         (WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
1638         (WebCore::IDBClient::IDBTransaction::requestPutOrAdd):
1639         (WebCore::IDBClient::IDBTransaction::operationDidComplete):
1640         * Modules/indexeddb/client/IDBTransactionImpl.h:
1641         
1642         * Modules/indexeddb/client/TransactionOperation.h:
1643         (WebCore::IDBClient::TransactionOperation::completed):
1644
1645 2015-10-31  Philippe Normand  <pnormand@igalia.com>
1646
1647         [GStreamer][Mac] Fix WebAudio build
1648         https://bugs.webkit.org/show_bug.cgi?id=150030
1649
1650         Reviewed by Darin Adler.
1651
1652         Wrap Accelerate.framework API calls around USE(ACCELERATE) ifdefs.
1653
1654         * platform/audio/Biquad.cpp:
1655         (WebCore::Biquad::Biquad):
1656         (WebCore::Biquad::process):
1657         (WebCore::Biquad::reset):
1658         * platform/audio/Biquad.h:
1659         * platform/audio/DirectConvolver.cpp:
1660         (WebCore::DirectConvolver::process):
1661         * platform/audio/FFTFrame.h:
1662         * platform/audio/VectorMath.cpp:
1663
1664 2015-10-31  Brian Burg  <bburg@apple.com>
1665
1666         Builtins generator should put WebCore-only wrappers in the per-builtin header
1667         https://bugs.webkit.org/show_bug.cgi?id=150539
1668
1669         Reviewed by Youenn Fablet.
1670
1671         Fix includes of removed XXXWrapper.h headers.
1672
1673         * CMakeLists.txt:
1674         * DerivedSources.make:
1675         * WebCore.xcodeproj/project.pbxproj:
1676         * bindings/js/WebCoreJSBuiltinInternals.h:
1677         * bindings/js/WebCoreJSBuiltins.h:
1678
1679 2015-10-31  Yusuke Suzuki  <utatane.tea@gmail.com>
1680
1681         Add the support for Symbol attributes on IDL
1682         https://bugs.webkit.org/show_bug.cgi?id=150586
1683
1684         Reviewed by Ryosuke Niwa.
1685
1686         This patch addes readonly attribute support for Symbols.
1687         It involves the IDL generator functionality converting Native type (PrivateName) to Symbol.
1688
1689         * bindings/scripts/CodeGeneratorGObject.pm:
1690         (SkipAttribute):
1691         (SkipFunction):
1692         * bindings/scripts/CodeGeneratorJS.pm:
1693         (NativeToJSValue):
1694         * bindings/scripts/CodeGeneratorObjC.pm:
1695         (SkipFunction):
1696         (SkipAttribute):
1697         * bindings/scripts/test/JS/JSTestObj.cpp:
1698         (WebCore::jsTestObjReadOnlySymbolAttr):
1699         (WebCore::jsTestObjConstructorStaticReadOnlySymbolAttr):
1700         * bindings/scripts/test/TestObj.idl:
1701
1702 2015-10-30  Brady Eidson  <beidson@apple.com>
1703
1704         Modern IDB: Support IDBObjectStore.get() for IDBKeyRanges.
1705         https://bugs.webkit.org/show_bug.cgi?id=150718
1706
1707         Reviewed by Alex Christensen.
1708
1709         Test: storage/indexeddb/modern/get-keyrange.html
1710
1711         * Modules/indexeddb/IDBKeyRangeData.cpp:
1712         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
1713         * Modules/indexeddb/IDBKeyRangeData.h:
1714         
1715         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1716         (WebCore::IDBClient::IDBConnectionToServer::getRecord):
1717         * Modules/indexeddb/client/IDBConnectionToServer.h:
1718         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
1719         
1720         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1721         (WebCore::IDBClient::IDBObjectStore::get):
1722         
1723         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1724         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
1725         (WebCore::IDBClient::IDBTransaction::getRecordOnServer):
1726         * Modules/indexeddb/client/IDBTransactionImpl.h:
1727         
1728         * Modules/indexeddb/server/IDBBackingStore.h:
1729         
1730         * Modules/indexeddb/server/IDBServer.cpp:
1731         (WebCore::IDBServer::IDBServer::getRecord):
1732         * Modules/indexeddb/server/IDBServer.h:
1733         
1734         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
1735         (WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
1736         
1737         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1738         (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
1739         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
1740         
1741         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1742         (WebCore::IDBServer::MemoryObjectStore::deleteRecord):
1743         (WebCore::IDBServer::MemoryObjectStore::setKeyValue):
1744         (WebCore::IDBServer::MemoryObjectStore::valueForKeyRange): Using a std::set, find the appropriate
1745           key in the range, and return the value if one exists.
1746         (WebCore::IDBServer::MemoryObjectStore::valueForKey): Deleted.
1747         * Modules/indexeddb/server/MemoryObjectStore.h:
1748         
1749         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1750         (WebCore::IDBServer::UniqueIDBDatabase::getRecord):
1751         (WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
1752         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1753         
1754         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
1755         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
1756         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
1757         
1758         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1759         (WebCore::InProcessIDBServer::getRecord):
1760         * Modules/indexeddb/shared/InProcessIDBServer.h:
1761
1762 2015-10-30  Brady Eidson  <beidson@apple.com>
1763
1764         Modern IDB: IDBObjectStore.clear() support.
1765         https://bugs.webkit.org/show_bug.cgi?id=150733
1766
1767         Reviewed by Alex Christensen.
1768
1769         Tests: storage/indexeddb/modern/idbobjectstore-clear-1.html
1770                storage/indexeddb/modern/idbobjectstore-clear-2.html
1771
1772         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1773         (WebCore::IDBClient::IDBConnectionToServer::clearObjectStore):
1774         (WebCore::IDBClient::IDBConnectionToServer::didClearObjectStore):
1775         * Modules/indexeddb/client/IDBConnectionToServer.h:
1776         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
1777         
1778         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1779         (WebCore::IDBClient::IDBObjectStore::clear):
1780         
1781         * Modules/indexeddb/client/IDBRequestImpl.cpp:
1782         (WebCore::IDBClient::IDBRequest::setResultToUndefined):
1783         * Modules/indexeddb/client/IDBRequestImpl.h:
1784         
1785         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1786         (WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
1787         (WebCore::IDBClient::IDBTransaction::clearObjectStoreOnServer):
1788         (WebCore::IDBClient::IDBTransaction::didClearObjectStoreOnServer):
1789         * Modules/indexeddb/client/IDBTransactionImpl.h:
1790
1791         * Modules/indexeddb/server/IDBBackingStore.h:
1792
1793         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
1794         (WebCore::IDBServer::IDBConnectionToClient::didClearObjectStore):
1795         * Modules/indexeddb/server/IDBConnectionToClient.h:
1796         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
1797
1798         * Modules/indexeddb/server/IDBServer.cpp:
1799         (WebCore::IDBServer::IDBServer::clearObjectStore):
1800         * Modules/indexeddb/server/IDBServer.h:
1801
1802         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
1803         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):
1804         (WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
1805         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
1806         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
1807         (WebCore::IDBServer::MemoryBackingStoreTransaction::isAborting):
1808
1809         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1810         (WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
1811         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
1812
1813         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1814         (WebCore::IDBServer::MemoryObjectStore::clear):
1815         (WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore):
1816         * Modules/indexeddb/server/MemoryObjectStore.h:
1817
1818         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1819         (WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
1820         (WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
1821         (WebCore::IDBServer::UniqueIDBDatabase::didPerformClearObjectStore):
1822         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1823
1824         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
1825         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didClearObjectStore):
1826         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
1827
1828         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
1829         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
1830         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
1831
1832         * Modules/indexeddb/shared/IDBResultData.cpp:
1833         (WebCore::IDBResultData::clearObjectStoreSuccess):
1834         * Modules/indexeddb/shared/IDBResultData.h:
1835
1836         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1837         (WebCore::InProcessIDBServer::didClearObjectStore):
1838         (WebCore::InProcessIDBServer::clearObjectStore):
1839         * Modules/indexeddb/shared/InProcessIDBServer.h:
1840
1841 2015-10-30  Joseph Pecoraro  <pecoraro@apple.com>
1842
1843         CSSParserVariable leaks seen on leaks bots
1844         https://bugs.webkit.org/show_bug.cgi?id=150724
1845
1846         Reviewed by Darin Adler.
1847
1848         * css/CSSParserValues.cpp:
1849         (WebCore::destroy):
1850         Cleanup variable CSSParserValues.
1851
1852 2015-10-30  Alex Christensen  <achristensen@webkit.org>
1853
1854         Fix Windows build.
1855
1856         * PlatformWin.cmake:
1857         Add missing files.
1858
1859 2015-10-30  Beth Dakin  <bdakin@apple.com>
1860
1861         Tapping and holding a link should have a share option
1862         https://bugs.webkit.org/show_bug.cgi?id=150693
1863         -and corresponding-
1864         rdar://problem/21319702
1865
1866         Reviewed by Tim Horton.
1867
1868         * English.lproj/Localizable.strings:
1869
1870 2015-10-30  Joseph Pecoraro  <pecoraro@apple.com>
1871
1872         Minor CGColor leaks seen on bots allocated in WebSystemBackdropLayer.mm
1873         https://bugs.webkit.org/show_bug.cgi?id=150722
1874
1875         Reviewed by Andreas Kling.
1876
1877         * platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:
1878         (-[WebLightSystemBackdropLayer init]):
1879         (-[WebDarkSystemBackdropLayer init]):
1880
1881 2015-10-30  Csaba Osztrogonác  <ossy@webkit.org>
1882
1883         [EFL] Fix the debug build after r191758
1884         https://bugs.webkit.org/show_bug.cgi?id=150719
1885
1886         Reviewed by Alex Christensen.
1887
1888         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1889         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
1890
1891 2015-10-30  Dan Bernstein  <mitz@apple.com>
1892
1893         Fixed the build.
1894
1895         * platform/graphics/Image.cpp:
1896         (WebCore::Image::draw): Deleted an infinitely-recursive implementation that caused the
1897           compiler to emit an error.
1898         * platform/graphics/Image.h:
1899         (WebCore::Image::draw): Made this pure virtual.
1900
1901 2015-10-30  Brady Eidson  <beidson@apple.com>
1902
1903         Modern IDB: IDBObjectStore.add() support.
1904         https://bugs.webkit.org/show_bug.cgi?id=150711
1905
1906         Reviewed by Alex Christensen.
1907
1908         Test: storage/indexeddb/modern/basic-add.html
1909
1910         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1911         (WebCore::IDBClient::IDBObjectStore::add):
1912
1913         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1914         (WebCore::IDBClient::IDBTransaction::requestGetRecord):
1915
1916 2015-10-30  Hunseop Jeong  <hs85.jeong@samsung.com>
1917
1918         Use modern for-loops in WebCore/dom.
1919         https://bugs.webkit.org/show_bug.cgi?id=150664
1920
1921         Reviewed by Darin Adler.
1922
1923         No new tests because there is no behavior change.
1924
1925         * dom/AuthorStyleSheets.cpp:
1926         (WebCore::AuthorStyleSheets::analyzeStyleSheetChange):
1927         (WebCore::filterEnabledNonemptyCSSStyleSheets):
1928         (WebCore::AuthorStyleSheets::activeStyleSheetsContains):
1929         * dom/CheckedRadioButtons.cpp:
1930         (WebCore::RadioButtonGroup::updateValidityForAllButtons):
1931         * dom/ClientRectList.cpp:
1932         (WebCore::ClientRectList::ClientRectList):
1933         (WebCore::ClientRectList::~ClientRectList):
1934         * dom/ContainerNode.cpp:
1935         (WebCore::ContainerNode::insertBefore):
1936         * dom/DOMNamedFlowCollection.cpp:
1937         (WebCore::DOMNamedFlowCollection::DOMNamedFlowCollection):
1938         (WebCore::DOMNamedFlowCollection::length):
1939         (WebCore::DOMNamedFlowCollection::item):
1940         (WebCore::DOMNamedFlowCollection::namedItem):
1941         * dom/DOMStringList.cpp:
1942         (WebCore::DOMStringList::contains):
1943         * dom/Document.cpp:
1944         (WebCore::Document::Document):
1945         (WebCore::Document::~Document):
1946         (WebCore::Document::removedLastRef):
1947         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
1948         (WebCore::Document::updateHoverActiveState):
1949         * dom/DocumentMarkerController.cpp:
1950         (WebCore::DocumentMarkerController::copyMarkers):
1951         (WebCore::DocumentMarkerController::removeMarkers):
1952         (WebCore::DocumentMarkerController::repaintMarkers):
1953         (DocumentMarkerController::showMarkers):
1954         * dom/ElementData.cpp:
1955         (WebCore::UniqueElementData::findAttributeByName):
1956         * dom/EventDispatcher.cpp:
1957         (WebCore::EventPath::updateTouchLists):
1958         (WebCore::EventPath::hasEventListeners):
1959         * dom/EventListenerMap.cpp:
1960         (WebCore::EventListenerMap::contains):
1961         (WebCore::EventListenerMap::containsCapturing):
1962         (WebCore::EventListenerMap::eventTypes):
1963         (WebCore::EventListenerMap::add):
1964         (WebCore::EventListenerMap::find):
1965         (WebCore::copyListenersNotCreatedFromMarkupToTarget):
1966         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
1967         (WebCore::EventListenerIterator::EventListenerIterator):
1968         * dom/EventTarget.cpp:
1969         (WebCore::EventTarget::removeEventListener):
1970         (WebCore::EventTarget::getAttributeEventListener):
1971         (WebCore::EventTarget::removeAllEventListeners):
1972         * dom/IdTargetObserverRegistry.cpp:
1973         (WebCore::IdTargetObserverRegistry::notifyObserversInternal):
1974         * dom/MessagePort.cpp:
1975         (WebCore::MessagePort::postMessage):
1976         (WebCore::MessagePort::disentanglePorts):
1977         * dom/MutationObserver.cpp:
1978         (WebCore::MutationObserver::observe):
1979         (WebCore::MutationObserver::deliver):
1980         (WebCore::MutationObserver::deliverAllMutations):
1981         * dom/NamedFlowCollection.cpp:
1982         (WebCore::NamedFlowCollection::namedFlows):
1983         (WebCore::NamedFlowCollection::createCSSOMSnapshot):
1984         * dom/Node.cpp:
1985         (WebCore::Node::notifyMutationObserversNodeWillDetach):
1986         * dom/Range.cpp:
1987         (WebCore::Range::processNodes):
1988         (WebCore::Range::processAncestorsAndTheirSiblings):
1989         (WebCore::Range::absoluteBoundingBox):
1990         (WebCore::Range::collectSelectionRects):
1991         * dom/ScriptRunner.cpp:
1992         (WebCore::ScriptRunner::timerFired):
1993         * dom/ScriptedAnimationController.cpp:
1994         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
1995         * dom/SelectorQuery.cpp:
1996         (WebCore::SelectorDataList::matches):
1997         (WebCore::SelectorDataList::executeFastPathForIdSelector):
1998         (WebCore::SelectorDataList::executeSingleMultiSelectorData):
1999         (WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData):
2000         (WebCore::SelectorDataList::execute):
2001         * dom/TreeScopeAdopter.cpp:
2002         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
2003
2004 2015-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2005
2006         Make every port implement MainThreadSharedTimer instead of using global functions
2007         https://bugs.webkit.org/show_bug.cgi?id=150498
2008
2009         Reviewed by Darin Adler.
2010
2011         Move MainThreadSharedTimer to its own files and add the common
2012         implementation there.
2013
2014         * CMakeLists.txt: Add MainThreadSharedTimer.cpp.
2015         * PlatformEfl.cmake: Update filenames.
2016         * PlatformGTK.cmake: Ditto.
2017         * PlatformMac.cmake: Ditto.
2018         * PlatformWin.cmake: Ditto.
2019         * platform/MainThreadSharedTimer.cpp: Copied from Source/WebCore/platform/efl/SharedTimerEfl.cpp.
2020         (WebCore::MainThreadSharedTimer::singleton):
2021         (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
2022         (WebCore::MainThreadSharedTimer::setFiredFunction):
2023         (WebCore::MainThreadSharedTimer::fired):
2024         * platform/MainThreadSharedTimer.h: Copied from Source/WebCore/platform/gtk/SharedTimerGtk.cpp.
2025         * platform/SharedTimer.h: Remove MainThreadSharedTimer
2026         implementation and reindent the code.
2027         (WebCore::SharedTimer::SharedTimer):
2028         (WebCore::SharedTimer::~SharedTimer):
2029         (WebCore::SharedTimer::invalidate):
2030         * platform/ThreadTimers.cpp:
2031         (WebCore::ThreadTimers::ThreadTimers): Use MainThreadSharedTimer::singleton().
2032         (WebCore::ThreadTimers::setSharedTimer): Use a lambda function
2033         instead of a pointer to a static method.
2034         (WebCore::ThreadTimers::sharedTimerFired): Deleted.
2035         * platform/ThreadTimers.h: Removed unsused static method sharedTimerFired.
2036         * platform/cf/MainThreadSharedTimerCF.cpp: Renamed from Source/WebCore/platform/cf/SharedTimerCF.cpp.
2037         (WebCore::applicationDidBecomeActive):
2038         (WebCore::setupPowerObserver):
2039         (WebCore::timerFired):
2040         (WebCore::restartSharedTimer):
2041         (WebCore::MainThreadSharedTimer::invalidate):
2042         (WebCore::MainThreadSharedTimer::setFireInterval):
2043         (WebCore::MainThreadSharedTimer::stop):
2044         * platform/efl/MainThreadSharedTimerEfl.cpp: Renamed from Source/WebCore/platform/efl/SharedTimerEfl.cpp.
2045         (WebCore::timerEvent):
2046         (WebCore::MainThreadSharedTimer::stop):
2047         (WebCore::MainThreadSharedTimer::setFireInterval):
2048         (WebCore::MainThreadSharedTimer::invalidate):
2049         * platform/gtk/MainThreadSharedTimerGtk.cpp: Renamed from Source/WebCore/platform/gtk/SharedTimerGtk.cpp.
2050         (WebCore::MainThreadSharedTimer::setFireInterval):
2051         (WebCore::MainThreadSharedTimer::stop):
2052         (WebCore::MainThreadSharedTimer::invalidate):
2053         * platform/win/MainThreadSharedTimerWin.cpp: Renamed from Source/WebCore/platform/win/SharedTimerWin.cpp.
2054         (WebCore::TimerWindowWndProc):
2055         (WebCore::initializeOffScreenTimerWindow):
2056         (WebCore::queueTimerProc):
2057         (WebCore::MainThreadSharedTimer::setFireInterval):
2058         (WebCore::MainThreadSharedTimer::stop):
2059         (WebCore::MainThreadSharedTimer::invalidate):
2060         * workers/WorkerRunLoop.cpp: Update WorkerSharedTimer
2061         implementation to use std::function instead of a pointer. Also
2062         mark the class as final and the virtual implementations as override.
2063
2064 2015-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2065
2066         [GTK] Use RunLoop::Timer instead of GMainLoopSource
2067         https://bugs.webkit.org/show_bug.cgi?id=150592
2068
2069         Reviewed by Žan Doberšek.
2070
2071         * platform/network/ResourceHandle.h:
2072         * platform/network/ResourceHandleInternal.h:
2073         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2074         * platform/network/soup/ResourceHandleSoup.cpp:
2075         (WebCore::cleanupSoupRequestOperation):
2076         (WebCore::ResourceHandle::timeoutFired):
2077         (WebCore::ResourceHandle::sendPendingRequest):
2078         (WebCore::ResourceHandle::platformSetDefersLoading):
2079
2080 2015-10-30  Hunseop Jeong  <hs85.jeong@samsung.com>
2081
2082         REGRESSION(r191776): EFL build broken.
2083         https://bugs.webkit.org/show_bug.cgi?id=150713
2084
2085         Reviewed by Csaba Osztrogonác.
2086
2087         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2088         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
2089
2090 2015-10-29  Brady Eidson  <beidson@apple.com>
2091
2092         Modern IDB: autoIncrement support.
2093         https://bugs.webkit.org/show_bug.cgi?id=150695
2094
2095         Reviewed by Alex Christensen.
2096
2097         Test: storage/indexeddb/modern/autoincrement-abort.html
2098
2099         * Modules/indexeddb/server/IDBBackingStore.h:
2100         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
2101         (WebCore::IDBServer::MemoryBackingStoreTransaction::addNewObjectStore):
2102         (WebCore::IDBServer::MemoryBackingStoreTransaction::addExistingObjectStore):
2103         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
2104         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
2105         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
2106         (WebCore::IDBServer::MemoryIDBBackingStore::putRecord):
2107         (WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber):
2108         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
2109         * Modules/indexeddb/server/MemoryObjectStore.h:
2110         (WebCore::IDBServer::MemoryObjectStore::currentKeyGeneratorValue):
2111         (WebCore::IDBServer::MemoryObjectStore::setKeyGeneratorValue):
2112         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2113         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
2114
2115 2015-10-29  Alex Christensen  <achristensen@webkit.org>
2116
2117         Make WebCore a framework in Mac CMake build
2118         https://bugs.webkit.org/show_bug.cgi?id=150702
2119
2120         Reviewed by Geoffrey Garen.
2121
2122         * CMakeLists.txt:
2123         * PlatformEfl.cmake:
2124         * PlatformGTK.cmake:
2125         * PlatformMac.cmake:
2126
2127 2015-10-29  Alex Christensen  <achristensen@webkit.org>
2128
2129         CMake build fix.
2130
2131         * editing/mac/EditorMac.mm:
2132         (WebCore::Editor::WebContentReader::readFilenames):
2133         Before r191553, text was a local variable and could be changed.
2134         This restores the same behavior and compiles correctly when ATTACHMENT_ELEMENT is disabled.
2135         * platform/mac/CursorMac.mm:
2136         (WebCore::Cursor::Cursor):
2137         (WebCore::Cursor::operator=):
2138         Added preprocessor macros.
2139
2140 2015-10-29  Brady Eidson  <beidson@apple.com>
2141
2142         Modern IDB: deleteObjectStore support.
2143         https://bugs.webkit.org/show_bug.cgi?id=150673
2144
2145         Reviewed by Alex Christensen.
2146
2147         Tests: storage/indexeddb/modern/deleteobjectstore-1.html
2148                storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html
2149                storage/indexeddb/modern/idbobjectstore-get-failures.html
2150
2151         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
2152         (WebCore::IDBClient::IDBConnectionToServer::deleteObjectStore):
2153         (WebCore::IDBClient::IDBConnectionToServer::didDeleteObjectStore):
2154         * Modules/indexeddb/client/IDBConnectionToServer.h:
2155         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
2156
2157         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2158         (WebCore::IDBClient::IDBDatabase::deleteObjectStore):
2159         (WebCore::IDBClient::IDBDatabase::willCommitTransaction):
2160         (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
2161         (WebCore::IDBClient::IDBDatabase::commitTransaction): Deleted.
2162         (WebCore::IDBClient::IDBDatabase::abortTransaction): Deleted.
2163         * Modules/indexeddb/client/IDBDatabaseImpl.h:
2164
2165         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2166         (WebCore::IDBClient::IDBObjectStore::markAsDeleted):
2167         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
2168
2169         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2170         (WebCore::IDBClient::IDBTransaction::IDBTransaction):
2171         (WebCore::IDBClient::IDBTransaction::abort):
2172         (WebCore::IDBClient::IDBTransaction::abortOnServer):
2173         (WebCore::IDBClient::IDBTransaction::commit):
2174         (WebCore::IDBClient::IDBTransaction::commitOnServer):
2175         (WebCore::IDBClient::IDBTransaction::deleteObjectStore):
2176         (WebCore::IDBClient::IDBTransaction::deleteObjectStoreOnServer):
2177         (WebCore::IDBClient::IDBTransaction::didDeleteObjectStoreOnServer):
2178         (WebCore::IDBClient::IDBTransaction::activate):
2179         (WebCore::IDBClient::IDBTransaction::activationTimerFired): Deleted.
2180         (WebCore::IDBClient::IDBTransaction::createObjectStoreOnServer): Deleted.
2181         (WebCore::IDBClient::IDBTransaction::didCreateObjectStoreOnServer): Deleted.
2182         (WebCore::IDBClient::IDBTransaction::getRecordOnServer): Deleted.
2183         (WebCore::IDBClient::IDBTransaction::putOrAddOnServer): Deleted.
2184         * Modules/indexeddb/client/IDBTransactionImpl.h:
2185         
2186         * Modules/indexeddb/client/TransactionOperation.h:
2187         (WebCore::IDBClient::TransactionOperation::completed):
2188         (WebCore::IDBClient::createTransactionOperation):
2189         
2190         * Modules/indexeddb/server/IDBBackingStore.h:
2191         
2192         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
2193         (WebCore::IDBServer::IDBConnectionToClient::didDeleteObjectStore):
2194         * Modules/indexeddb/server/IDBConnectionToClient.h:
2195         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
2196         
2197         * Modules/indexeddb/server/IDBServer.cpp:
2198         (WebCore::IDBServer::IDBServer::deleteObjectStore):
2199         * Modules/indexeddb/server/IDBServer.h:
2200         
2201         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
2202         (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):
2203         (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
2204         (WebCore::IDBServer::MemoryBackingStoreTransaction::finish):
2205         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
2206         
2207         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
2208         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
2209         (WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
2210         (WebCore::IDBServer::MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort):
2211         (WebCore::IDBServer::MemoryIDBBackingStore::takeObjectStoreByName):
2212         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
2213         
2214         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2215         (WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
2216         (WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
2217         (WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
2218         (WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteObjectStore):
2219         (WebCore::IDBServer::UniqueIDBDatabase::createObjectStore): Deleted.
2220         * Modules/indexeddb/server/UniqueIDBDatabase.h:
2221         
2222         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
2223         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didDeleteObjectStore):
2224         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
2225         
2226         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
2227         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
2228         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
2229         
2230         * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
2231         (WebCore::IDBDatabaseInfo::deleteObjectStore):
2232         * Modules/indexeddb/shared/IDBDatabaseInfo.h:
2233         
2234         * Modules/indexeddb/shared/IDBResultData.cpp:
2235         (WebCore::IDBResultData::deleteObjectStoreSuccess):
2236         * Modules/indexeddb/shared/IDBResultData.h:
2237         
2238         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
2239         (WebCore::InProcessIDBServer::didDeleteObjectStore):
2240         (WebCore::InProcessIDBServer::deleteObjectStore):
2241         * Modules/indexeddb/shared/InProcessIDBServer.h:
2242
2243 2015-10-29  Simon Fraser  <simon.fraser@apple.com>
2244
2245         Very slow typing on pages with wheel event handlers on the body, and deep content
2246         https://bugs.webkit.org/show_bug.cgi?id=150692
2247         rdar://problem/23242631
2248
2249         Reviewed by Zalan Bujtas.
2250         
2251         On a large page with a wheel event handler on the body, we would call
2252         Element::absoluteEventHandlerBounds() for every element under the body,
2253         and compute an absolute bounds for each one. This is very slow.
2254         
2255         For now, optimize computing a region for the <body> by just using the document
2256         bounds, which will always be as big or larger. It's OK for this region to
2257         be an overestimate.
2258
2259         * dom/Document.cpp:
2260         (WebCore::Document::absoluteRegionForEventTargets):
2261
2262 2015-10-29  Wenson Hsieh  <wenson_hsieh@apple.com>
2263
2264         Date input values should not overlap with menu list dropdown button on iOS
2265         https://bugs.webkit.org/show_bug.cgi?id=150681
2266         <rdar://problem/19965078>
2267
2268         Reviewed by Zalan Bujtas.
2269
2270         Adds a right margin on iOS date and time inputs so that the inner div does
2271         not render the value of the date on top of the dropdown button on the right
2272         of the menu list.
2273
2274         Tests: fast/forms/date/date-input-rendering-basic.html
2275                fast/forms/time/time-input-rendering-basic.html
2276
2277         * css/html.css:
2278         (input::-webkit-date-and-time-value):
2279
2280 2015-10-29  Alex Christensen  <achristensen@webkit.org>
2281
2282         Fix Mac CMake build
2283         https://bugs.webkit.org/show_bug.cgi?id=150686
2284
2285         Reviewed by Filip Pizlo.
2286
2287         * PlatformMac.cmake:
2288
2289 2015-10-29  Csaba Osztrogonác  <ossy@webkit.org>
2290
2291         One more URTBF after r191731.
2292
2293         * rendering/svg/RenderSVGResourcePattern.cpp:
2294
2295 2015-10-29  Csaba Osztrogonác  <ossy@webkit.org>
2296
2297         URTBF after r191731.
2298
2299         * rendering/svg/RenderSVGResourcePattern.cpp:
2300
2301 2015-10-29  Zalan Bujtas  <zalan@apple.com>
2302
2303         Fix ENABLE(TREE_DEBUGGING) release build.
2304
2305         Unreviewed build fix.
2306
2307         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2308         * dom/Position.cpp:
2309
2310 2015-10-29  Beth Dakin  <bdakin@apple.com>
2311
2312         Overlay scrollbars disappear during manual drag-scroll
2313         https://bugs.webkit.org/show_bug.cgi?id=150646
2314         -and corresponding-
2315         rdar://problem/23145734
2316
2317         Reviewed by Tim Horton.
2318
2319         New ScrollAnimator function so that we can tell the ScrollbarPainter whether 
2320         or not the mouse is tracking the scrollbar.
2321         * platform/ScrollAnimator.h:
2322         (WebCore::ScrollAnimator::ScrollAnimator::mouseIsDownInScrollbar):
2323         * platform/ScrollableArea.cpp:
2324         (WebCore::ScrollableArea::mouseIsDownInScrollbar):
2325         * platform/ScrollableArea.h:
2326
2327         Call into the new ScrollAnimator function of mouseDown and mouseUp.
2328         * platform/Scrollbar.cpp:
2329         (WebCore::Scrollbar::mouseUp):
2330         (WebCore::Scrollbar::mouseDown):
2331
2332         Add setTracking to the ScrollbarPainter.
2333         * platform/mac/NSScrollerImpDetails.h:
2334
2335         Implement mouseIsDownInScrollbar to call setTracking appropriately and to set 
2336         begin/endScrollGesture since drag scrolling does not normally trigger that 
2337         state change.
2338         * platform/mac/ScrollAnimatorMac.h:
2339         * platform/mac/ScrollAnimatorMac.mm:
2340         (WebCore::ScrollAnimatorMac::mouseIsDownInScrollbar):
2341
2342 2015-10-29  Eric Carlson  <eric.carlson@apple.com>
2343
2344         MediaPlayer::getSupportedTypes only returns types from the last engine registered
2345         https://bugs.webkit.org/show_bug.cgi?id=150669
2346
2347         Reviewed by Jer Noble.
2348
2349         No new tests, fixes existing tests.
2350
2351         * platform/graphics/MediaPlayer.cpp:
2352         (WebCore::MediaPlayer::getSupportedTypes):
2353         (WebCore::MediaPlayer::isAvailable):
2354
2355 2015-10-29  Joseph Pecoraro  <pecoraro@apple.com>
2356
2357         Web Inspector: Clean up and audit TimelineRecordFactory records
2358         https://bugs.webkit.org/show_bug.cgi?id=150660
2359
2360         Reviewed by Brian Burg.
2361
2362         Cleanup included removing unused methods and payload data that the
2363         frontend wasn't likely to use. Also added ASCIILiteral and removed
2364         unnecessary includes.
2365
2366         * inspector/InspectorNetworkAgent.cpp:
2367         * inspector/InspectorPageAgent.cpp:
2368         * inspector/InspectorTimelineAgent.cpp:
2369         (WebCore::InspectorTimelineAgent::willLayout):
2370         * inspector/InspectorTimelineAgent.h:
2371         * inspector/TimelineRecordFactory.cpp:
2372         (WebCore::TimelineRecordFactory::createGenericRecord):
2373         (WebCore::TimelineRecordFactory::createFunctionCallData):
2374         (WebCore::TimelineRecordFactory::createConsoleProfileData):
2375         (WebCore::TimelineRecordFactory::createEventDispatchData):
2376         (WebCore::TimelineRecordFactory::createGenericTimerData):
2377         (WebCore::TimelineRecordFactory::createTimerInstallData):
2378         (WebCore::TimelineRecordFactory::createEvaluateScriptData):
2379         (WebCore::TimelineRecordFactory::createTimeStampData):
2380         (WebCore::TimelineRecordFactory::createParseHTMLData):
2381         (WebCore::TimelineRecordFactory::createAnimationFrameData):
2382         (WebCore::TimelineRecordFactory::createPaintData):
2383         (WebCore::TimelineRecordFactory::appendLayoutRoot):
2384         (WebCore::TimelineRecordFactory::createBackgroundRecord): Deleted.
2385         (WebCore::TimelineRecordFactory::createLayoutData): Deleted.
2386         * inspector/TimelineRecordFactory.h:
2387         (WebCore::TimelineRecordFactory::TimelineRecordFactory):
2388
2389 2015-10-29  Said Abou-Hallawa  <sabouhallawa@apple.com>
2390
2391         Exploitable crash happens when an SVG contains an indirect resource inheritance cycle
2392         https://bugs.webkit.org/show_bug.cgi?id=150203
2393
2394         Reviewed by Brent Fulgham.
2395
2396         Detecting cycles in SVG resource references happens in two places.
2397         1. In SVGResourcesCycleSolver::resolveCycles() which it is called from 
2398            SVGResourcesCache::addResourcesFromRenderer(). When a cycle is deleted,
2399            SVGResourcesCycleSolver::breakCycle() is called to break the link. In
2400            the case of a cyclic resource inheritance, SVGResources::resetLinkedResource()
2401            is called to break this cycle.
2402         2. SVGPatternElement::collectPatternAttributes() which is called from
2403            RenderSVGResourcePattern::buildPattern(). The purpose is to resolve
2404            the pattern attributes and to build a tile image which can be used to
2405            fill the SVG element renderer. Detecting the cyclic resource reference
2406            in this function is not sufficient and can detect simple cycles like
2407             <pattern id="a" xlink:href="#b"/>
2408             <pattern id="b" xlink:href="#a"/>.
2409            But it does not detect cycles like:
2410             <pattern id="a">
2411                 <rect fill="url(#b)"/>
2412             </pattern>
2413             <pattern id="b" xlink:href="#a"/>.
2414    
2415         The fix is to get rid of SVGPatternElement::collectPatternAttributes() which
2416         uses SVGURIReference::targetElementFromIRIString() to navigates through the
2417         referenced resource elements and tries to detect cycles. Instead we can
2418         implement RenderSVGResourcePattern::collectPatternAttributes() which calls
2419         SVGResourcesCache::cachedResourcesForRenderer() to get the SVGResources
2420         of the pattern. Then we use SVGResources::linkedResource() to navigate the
2421         resource inheritance tree. The cached SVGResources is guaranteed to be free
2422         of cycles.
2423
2424         Tests: svg/custom/pattern-content-inheritance-cycle.svg
2425
2426         * rendering/svg/RenderSVGResourcePattern.cpp:
2427         (WebCore::RenderSVGResourcePattern::collectPatternAttributes):
2428         Collect the pattern attributes through the cachedResourcesForRenderer().
2429         
2430         (WebCore::RenderSVGResourcePattern::buildPattern):
2431         Direct the call to the renderer function.
2432         
2433         * rendering/svg/RenderSVGResourcePattern.h:
2434         
2435         * rendering/svg/RenderSVGRoot.cpp:
2436         (WebCore::RenderSVGRoot::layout):
2437         RenderSVGRoot needs to call SVGResourcesCache::clientStyleChanged() for all
2438         the invalidated resources. If an attribute of an SVG resource was updated
2439         dynamically, the cached SVGResources associated with the renderer of this
2440         resource was stale.
2441         
2442         * rendering/svg/SVGRenderTreeAsText.cpp:
2443         (WebCore::writeSVGResourceContainer):
2444         Direct the call to the renderer function.        
2445         
2446         * svg/SVGPatternElement.cpp:
2447         (WebCore::SVGPatternElement::collectPatternAttributes):
2448         (WebCore::setPatternAttributes): Deleted.
2449         collectPatternAttributes() is a replacement of setPatternAttributes().
2450         
2451 2015-10-29  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2452
2453         [Streams API] Turn WS states into integers and fix state initialization
2454         https://bugs.webkit.org/show_bug.cgi?id=150667
2455
2456         Reviewed by Youenn Fablet.
2457
2458         The goal of this patch is turning the writable stream states into integers instead of strings.
2459
2460         First readable stream states were reworked to be shared with writable stream too, they are now just @stream*.
2461
2462         Next step was having writable stream using integers instead of strings and translating those integers back to
2463         strings to be able to return them correctly with the writable stream state attribute.
2464
2465         The state initialization was fixed and now it is not needed to check for the state to be undefined.
2466
2467         Rework, no new tests needed.
2468
2469         * Modules/streams/ReadableStream.js:
2470         (initializeReadableStream):
2471         * Modules/streams/ReadableStreamController.js:
2472         (enqueue):
2473         (error):
2474         (close):
2475         * Modules/streams/ReadableStreamInternals.js:
2476         (privateInitializeReadableStreamReader):
2477         (errorReadableStream):
2478         (cancelReadableStream):
2479         (finishClosingReadableStream):
2480         (closeReadableStream):
2481         (closeReadableStreamReader):
2482         (enqueueInReadableStream):
2483         (readFromReadableStreamReader):
2484         * Modules/streams/ReadableStreamReader.js:
2485         (cancel):
2486         * Modules/streams/WritableStream.js:
2487         (initializeWritableStream):
2488         (abort):
2489         (close):
2490         (write):
2491         (state):
2492         * Modules/streams/WritableStreamInternals.js:
2493         (syncWritableStreamStateWithQueue):
2494         (errorWritableStream):
2495         * bindings/js/JSDOMWindowBase.cpp:
2496         (WebCore::JSDOMWindowBase::finishCreation):
2497         * bindings/js/WebCoreBuiltinNames.h:
2498
2499 2015-10-28  Brady Eidson  <beidson@apple.com>
2500
2501         Modern IDB: Support IDBDatabase.transaction() (and transaction scheduling in general).
2502         https://bugs.webkit.org/show_bug.cgi?id=150614
2503
2504         Reviewed by Alex Christensen.
2505
2506         Tests: storage/indexeddb/modern/idbdatabase-transaction-failures.html
2507                storage/indexeddb/modern/transaction-scheduler-1.html
2508                storage/indexeddb/modern/transaction-scheduler-2.html
2509                storage/indexeddb/modern/transaction-scheduler-3.html
2510                storage/indexeddb/modern/transaction-scheduler-4.html
2511                storage/indexeddb/modern/transaction-scheduler-5.html
2512                storage/indexeddb/modern/transaction-scheduler-6.html
2513
2514         * Modules/indexeddb/IDBDatabase.idl:
2515
2516         * Modules/indexeddb/IndexedDB.h:
2517
2518         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
2519         (WebCore::IDBClient::IDBConnectionToServer::establishTransaction):
2520         (WebCore::IDBClient::IDBConnectionToServer::didStartTransaction):
2521         (WebCore::IDBClient::IDBConnectionToServer::hasRecordOfTransaction):
2522         * Modules/indexeddb/client/IDBConnectionToServer.h:
2523         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
2524
2525         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2526         (WebCore::IDBClient::IDBDatabase::transaction):
2527         (WebCore::IDBClient::IDBDatabase::didStartTransaction):
2528         * Modules/indexeddb/client/IDBDatabaseImpl.h:
2529
2530         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2531         (WebCore::IDBClient::IDBTransaction::IDBTransaction):
2532         (WebCore::IDBClient::IDBTransaction::operationTimerFired):
2533         (WebCore::IDBClient::IDBTransaction::didStart):
2534         (WebCore::IDBClient::IDBTransaction::establishOnServer):
2535         (WebCore::IDBClient::IDBTransaction::activate):
2536         (WebCore::IDBClient::IDBTransaction::deactivate):
2537         * Modules/indexeddb/client/IDBTransactionImpl.h:
2538
2539         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
2540         (WebCore::IDBServer::IDBConnectionToClient::didStartTransaction):
2541         * Modules/indexeddb/server/IDBConnectionToClient.h:
2542         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
2543
2544         * Modules/indexeddb/server/IDBServer.cpp:
2545         (WebCore::IDBServer::IDBServer::establishTransaction):
2546         * Modules/indexeddb/server/IDBServer.h:
2547
2548         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
2549         (WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
2550         (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
2551         (WebCore::IDBServer::MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort):
2552         (WebCore::IDBServer::MemoryIDBBackingStore::keyExistsInObjectStore):
2553         (WebCore::IDBServer::MemoryIDBBackingStore::deleteRecord):
2554         (WebCore::IDBServer::MemoryIDBBackingStore::putRecord):
2555         (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
2556         (WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore):
2557         (WebCore::IDBServer::MemoryIDBBackingStore::unregisterObjectStore):
2558         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
2559
2560         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2561         (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
2562         (WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
2563         (WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
2564         (WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
2565         (WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
2566         (WebCore::IDBServer::UniqueIDBDatabase::transactionSchedulingTimerFired):
2567         (WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
2568         (WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore):
2569         (WebCore::IDBServer::UniqueIDBDatabase::didPerformActivateTransactionInBackingStore):
2570         (WebCore::IDBServer::scopesOverlap):
2571         (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
2572         (WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted):
2573         * Modules/indexeddb/server/UniqueIDBDatabase.h:
2574
2575         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
2576         (WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
2577         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
2578
2579         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
2580         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::create):
2581         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
2582         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
2583         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::didActivateInBackingStore):
2584         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
2585         
2586         * Modules/indexeddb/shared/IDBTransactionInfo.cpp:
2587         (WebCore::IDBTransactionInfo::clientTransaction):
2588         (WebCore::IDBTransactionInfo::isolatedCopy):
2589         * Modules/indexeddb/shared/IDBTransactionInfo.h:
2590         
2591         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
2592         (WebCore::InProcessIDBServer::establishTransaction):
2593         (WebCore::InProcessIDBServer::didStartTransaction):
2594         * Modules/indexeddb/shared/InProcessIDBServer.h:
2595         
2596         * bindings/js/IDBBindingUtilities.cpp:
2597         (WebCore::deserializeIDBValueData):
2598         
2599         * bindings/js/JSIDBDatabaseCustom.cpp:
2600         (WebCore::JSIDBDatabase::transaction):
2601         
2602         * bindings/js/ScriptState.cpp:
2603         (WebCore::execStateFromPage):
2604
2605 2015-10-28  Eric Carlson  <eric.carlson@apple.com>
2606
2607         [MediaStream] Play MediaStream through media element and rendered to canvas
2608         https://bugs.webkit.org/show_bug.cgi?id=150449
2609
2610         Reviewed by Jer Noble.
2611
2612         * Modules/mediastream/MediaStream.cpp:
2613         (WebCore::MediaStream::create): Don't die a recursive death.
2614         (WebCore::MediaStream::MediaStream): setClient -> addObserver. Set private stream's public stream pointer.
2615         (WebCore::MediaStream::~MediaStream): setClient -> addObserver. Clear private stream's public stream pointer.
2616         (WebCore::MediaStream::didAddTrack): Short circuit calling internalAddTrack when the track is unknown.
2617         (WebCore::MediaStream::didRemoveTrack): ASSERT that the track is known.
2618         * Modules/mediastream/MediaStream.h:
2619
2620         * Modules/mediastream/MediaStreamTrack.cpp:
2621         (WebCore::MediaStreamTrack::trackProducingDataChanged): New.
2622         (WebCore::MediaStreamTrack::trackEnabledChanged): New.
2623         * Modules/mediastream/MediaStreamTrack.h:
2624
2625         * Modules/mediastream/RTCPeerConnection.cpp:
2626         (WebCore::RTCPeerConnection::didRemoveRemoteStream): Use the new MediaStreamPrivate::publicStream() method.
2627
2628         * Modules/webaudio/MediaStreamAudioSource.cpp:
2629 ]        (WebCore::MediaStreamAudioSource::capabilities): capabilities isn't const.
2630         * Modules/webaudio/MediaStreamAudioSource.h:
2631
2632         * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
2633         (WebCore::MediaStreamAudioSourceNode::setFormat): Reformat to make it use early return.
2634
2635         * WebCore.xcodeproj/project.pbxproj: Remove MediaStreamPrivateAVFObjC.mm/h, they are no longer necessary.
2636
2637         * platform/graphics/MediaPlayer.cpp:
2638         (WebCore::buildMediaEnginesVector): Register MediaPlayerPrivateMediaStreamAVFObjC engine.
2639
2640         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
2641         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
2642         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Cleanup, add logging.
2643         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Add
2644           logging, remove private stream observer.
2645         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine): Cleanup.
2646         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ditto.
2647         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::getSupportedTypes): Return an empty vector.
2648         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Use the MediaStreamPrivate passed instead
2649           of creating a new private stream. 
2650         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad): Pause output.
2651         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareToPlay): Add logging.
2652         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): m_previewLayer -> m_videoBackgroundLayer.
2653         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPausedImageVisible): New, show/hide the preview layer and configure
2654           the background layer so we show a still image even though the capture device continues to run. Start/stop clock.
2655         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Don't need to start the source, that happens in in load. Just
2656           set flags and hide the paused image.
2657         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Don't stop the source, it may be shared by more than one 
2658           stream/track. Just set the playing flag and show the paused image.
2659         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paused): Fix.
2660         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::internalSetVolume): New, called by setMuted and setVolume.
2661         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVolume): New.
2662         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setMuted): Don't mute the source, it doesn't do what you think.
2663         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo): Pass-through to stream.
2664         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio): Ditto.
2665         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentMediaTime): Return clock time.
2666         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): New.
2667         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Update readyState.
2668         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Update intrinsic size, create layers if necessary.
2669         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Create preview layers.
2670         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::characteristicsChanged): Update for changed characteristics.
2671         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::seekable): 'seekable' must return an empty TimeRanges object.
2672         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): New.
2673         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
2674         (WebCore::mimeTypeCache): Deleted.
2675         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformMedia): Deleted.
2676         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::playInternal): Deleted.
2677         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pauseInternal): Deleted.
2678         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sizeChanged): Deleted.
2679         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::maxMediaTimeSeekable): Deleted.
2680         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::minMediaTimeSeekable): Deleted.
2681         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createImageFromSampleBuffer): Deleted.
2682         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsAcceleratedRendering): Deleted.
2683         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::movieLoadType): Deleted.
2684         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::extraMemoryCost): Deleted.
2685
2686         Delete MediaStreamPrivateAVFObjC.mm/.h as they aren't necessary. 
2687         * platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.h: Removed.
2688         * platform/graphics/avfoundation/objc/MediaStreamPrivateAVFObjC.mm: Removed.
2689
2690         * platform/mediastream/MediaStreamPrivate.cpp:
2691         (WebCore::MediaStreamPrivate::MediaStreamPrivate): Add track observer!
2692         (WebCore::MediaStreamPrivate::addObserver): New.
2693         (WebCore::MediaStreamPrivate::removeObserver): New.
2694         (WebCore::MediaStreamPrivate::updateActiveState): Remember the first active video track.
2695         (WebCore::MediaStreamPrivate::addTrack): Notify observers.
2696         (WebCore::MediaStreamPrivate::removeTrack): Ditto.
2697         (WebCore::MediaStreamPrivate::startProducingData): Pass-through to tracks.
2698         (WebCore::MediaStreamPrivate::stopProducingData): Ditto.
2699         (WebCore::MediaStreamPrivate::isProducingData): Ditto.
2700         (WebCore::MediaStreamPrivate::hasVideo): Ditto.
2701         (WebCore::MediaStreamPrivate::hasAudio): Ditto.
2702         (WebCore::MediaStreamPrivate::platformLayer): Ditto.
2703         (WebCore::MediaStreamPrivate::paintCurrentFrameInContext): Either pass-through to first active video
2704           track, or paint the context black.
2705         (WebCore::MediaStreamPrivate::currentFrameImage): Pass-through to first active video track.
2706         (WebCore::MediaStreamPrivate::characteristicsChanged): Inform observers.
2707         (WebCore::MediaStreamPrivate::trackMutedChanged):
2708         (WebCore::MediaStreamPrivate::trackStatesChanged):
2709         (WebCore::MediaStreamPrivate::trackEnabledChanged):
2710         (WebCore::MediaStreamPrivate::trackProducingDataChanged):
2711         (WebCore::MediaStreamPrivate::scheduleDeferredTask): New, call a function asynchronously on
2712           the main thread.
2713         * platform/mediastream/MediaStreamPrivate.h:
2714
2715         * platform/mediastream/MediaStreamTrackPrivate.cpp:
2716         (WebCore::MediaStreamTrackPrivate::endTrack):
2717         (WebCore::MediaStreamTrackPrivate::sourceProducingDataChanged): New, inform observers.
2718         (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Ditto.
2719         * platform/mediastream/MediaStreamTrackPrivate.h:
2720
2721         * platform/mediastream/RealtimeMediaSource.cpp:
2722         (WebCore::RealtimeMediaSource::isProducingDataDidChange): New, inform observers.
2723         (WebCore::RealtimeMediaSource::setEnabled): Ditto.
2724         (WebCore::RealtimeMediaSource::stop): Call reset();
2725         * platform/mediastream/RealtimeMediaSource.h: Don't declare "capabilities" as const so 
2726           capabilities can be created and initialized lazily.
2727
2728         * platform/mediastream/mac/AVAudioCaptureSource.h:
2729         * platform/mediastream/mac/AVAudioCaptureSource.mm:
2730         (WebCore::AVAudioCaptureSource::initializeCapabilities): New.
2731         (WebCore::AVAudioCaptureSource::addObserver): Hold the lock while calling observers so the list
2732           can't be mutated.
2733         (WebCore::AVAudioCaptureSource::setupCaptureSession): Log and fail if the session won't add the
2734           input or output.
2735         (WebCore::AVAudioCaptureSource::shutdownCaptureSession): Cleanup.
2736         (WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection): Don't block
2737           if it isn't possible to acquire the lock. Hold the lock while calling observers.
2738         (WebCore::AVAudioCaptureSource::capabilities): Deleted.
2739
2740         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
2741         (WebCore::refreshCaptureDeviceList): Don't include devices that can't be used.
2742         (WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):  Use AVCaptureDeviceManager::sourceWithUID
2743           so constraints are considered.
2744         (WebCore::AVCaptureDeviceManager::sourceWithUID): Don't consider disabled devices. Always
2745           create a new capture device so each track starts out with a unique source.
2746         * platform/mediastream/mac/AVMediaCaptureSource.h:
2747
2748         * platform/mediastream/mac/AVMediaCaptureSource.mm:
2749         (WebCore::globaAudioCaptureSerialQueue):
2750         (WebCore::AVMediaCaptureSource::AVMediaCaptureSource):
2751         (WebCore::AVMediaCaptureSource::~AVMediaCaptureSource): Remove KVO observers.
2752         (WebCore::AVMediaCaptureSource::startProducingData): m_isRunning is changed in captureSessionIsRunningDidChange.
2753         (WebCore::AVMediaCaptureSource::stopProducingData): Ditto.
2754         (WebCore::AVMediaCaptureSource::capabilities): New.
2755         (WebCore::AVMediaCaptureSource::setupSession): Add KVObservers for the properties we care about.
2756         (WebCore::AVMediaCaptureSource::reset): New, cleanup.
2757         (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): Dispatch to the main thread 
2758           to set m_isRunning, call isProducingDataDidChange so observers can find out.
2759         (WebCore::sessionKVOProperties):
2760         (-[WebCoreAVMediaCaptureSourceObserver disconnect]):
2761         (-[WebCoreAVMediaCaptureSourceObserver captureOutput:didOutputSampleBuffer:fromConnection:]):
2762         (-[WebCoreAVMediaCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]): Respond
2763           to running changes.
2764         (WebCore::AVMediaCaptureSource::captureSessionStoppedRunning): Deleted.
2765         (-[WebCoreAVMediaCaptureSourceObserver captureSessionStoppedRunning:]): Deleted.
2766
2767         * platform/mediastream/mac/AVVideoCaptureSource.h:
2768         * platform/mediastream/mac/AVVideoCaptureSource.mm:
2769         (WebCore::AVVideoCaptureSource::initializeCapabilities): Partial implementation.
2770         (WebCore::AVVideoCaptureSource::setupCaptureSession):  Log and fail if the session won't add the
2771           input or output.
2772         (WebCore::AVVideoCaptureSource::shutdownCaptureSession): Cleanup.
2773         (WebCore::AVVideoCaptureSource::updateFramerate): Renamed from calculateFramerate.
2774         (WebCore::AVVideoCaptureSource::currentFrameImage): Return an Image.
2775         (WebCore::AVVideoCaptureSource::platformLayer): New.
2776         (WebCore::AVVideoCaptureSource::capabilities): Deleted.
2777         (WebCore::AVVideoCaptureSource::calculateFramerate): Deleted.
2778
2779         * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
2780         * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
2781         (WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC): AudioConverterRef is
2782           not a CF/ObjC object so we can't use a RetainPtr<> for it.
2783         (WebCore::WebAudioSourceProviderAVFObjC::provideInput): Ditto.
2784         (WebCore::WebAudioSourceProviderAVFObjC::prepare): Ditto.
2785         (WebCore::WebAudioSourceProviderAVFObjC::unprepare): Ditto.
2786         (WebCore::WebAudioSourceProviderAVFObjC::process): Fix typo in logging.
2787
2788         * platform/mock/MockRealtimeMediaSourceCenter.cpp:
2789         (WebCore::MockSource::capabilities): Update for capabilities change.
2790
2791         * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h: Update for capabilities change.
2792
2793 2015-10-28  Chris Dumez  <cdumez@apple.com>
2794
2795         Regression(r191673): [WIN][EFL][GTK] layout tests using data URLs time out
2796         https://bugs.webkit.org/show_bug.cgi?id=150661
2797
2798         Reviewed by Gyuyoung Kim.
2799
2800         Do a partial revert of r191673. For some reason, using a Timer in
2801         DataURLDecoder does not work (it does not fire). Since non COCOA ports
2802         don't support RunLoopTimer, this patch reintroduces the use of
2803         callOnMainThread() on non-COCOA ports.
2804
2805         * platform/network/DataURLDecoder.cpp:
2806         (WebCore::DataURLDecoder::decode):
2807         (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer): Deleted.
2808
2809 2015-10-28  Joseph Pecoraro  <pecoraro@apple.com>
2810
2811         Web Inspector: Rename InspectorResourceAgent to InspectorNetworkAgent
2812         https://bugs.webkit.org/show_bug.cgi?id=150654
2813
2814         Reviewed by Geoffrey Garen.
2815
2816         * CMakeLists.txt:
2817         * WebCore.vcxproj/WebCore.vcxproj:
2818         * WebCore.vcxproj/WebCore.vcxproj.filters:
2819         * WebCore.xcodeproj/project.pbxproj:
2820         * inspector/InspectorAllInOne.cpp:
2821         * inspector/InspectorController.cpp:
2822         (WebCore::InspectorController::InspectorController):
2823         * inspector/InspectorController.h:
2824         * inspector/InspectorDOMDebuggerAgent.h:
2825         * inspector/InspectorFrontendClient.h:
2826         * inspector/InspectorInstrumentation.cpp:
2827         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
2828         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
2829         (WebCore::InspectorInstrumentation::didScheduleStyleRecalculationImpl):
2830         (WebCore::InspectorInstrumentation::willSendRequestImpl):
2831         (WebCore::InspectorInstrumentation::markResourceAsCachedImpl):
2832         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2833         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
2834         (WebCore::InspectorInstrumentation::didReceiveDataImpl):
2835         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
2836         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
2837         (WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
2838         (WebCore::InspectorInstrumentation::didReceiveXHRResponseImpl):
2839         (WebCore::InspectorInstrumentation::willLoadXHRSynchronouslyImpl):
2840         (WebCore::InspectorInstrumentation::didLoadXHRSynchronouslyImpl):
2841         (WebCore::InspectorInstrumentation::scriptImportedImpl):
2842         (WebCore::InspectorInstrumentation::didReceiveScriptResponseImpl):
2843         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
2844         (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
2845         (WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
2846         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl):
2847         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl):
2848         (WebCore::InspectorInstrumentation::didCloseWebSocketImpl):
2849         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameImpl):
2850         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl):
2851         (WebCore::InspectorInstrumentation::didSendWebSocketFrameImpl):
2852         * inspector/InspectorLayerTreeAgent.h:
2853         * inspector/InspectorNetworkAgent.cpp: Renamed from Source/WebCore/inspector/InspectorResourceAgent.cpp.
2854         (WebCore::InspectorNetworkAgent::InspectorNetworkAgent):
2855         (WebCore::InspectorNetworkAgent::didCreateFrontendAndBackend):
2856         (WebCore::InspectorNetworkAgent::willDestroyFrontendAndBackend):
2857         (WebCore::buildObjectForHeaders):
2858         (WebCore::buildObjectForTiming):
2859         (WebCore::buildObjectForResourceRequest):
2860         (WebCore::buildObjectForResourceResponse):
2861         (WebCore::buildObjectForCachedResource):
2862         (WebCore::InspectorNetworkAgent::~InspectorNetworkAgent):
2863         (WebCore::InspectorNetworkAgent::timestamp):
2864         (WebCore::InspectorNetworkAgent::willSendRequest):
2865         (WebCore::InspectorNetworkAgent::markResourceAsCached):
2866         (WebCore::InspectorNetworkAgent::didReceiveResponse):
2867         (WebCore::isErrorStatusCode):
2868         (WebCore::InspectorNetworkAgent::didReceiveData):
2869         (WebCore::InspectorNetworkAgent::didFinishLoading):
2870         (WebCore::InspectorNetworkAgent::didFailLoading):
2871         (WebCore::InspectorNetworkAgent::didLoadResourceFromMemoryCache):
2872         (WebCore::InspectorNetworkAgent::setInitialScriptContent):
2873         (WebCore::InspectorNetworkAgent::didReceiveScriptResponse):
2874         (WebCore::InspectorNetworkAgent::didFinishXHRLoading):
2875         (WebCore::InspectorNetworkAgent::didReceiveXHRResponse):
2876         (WebCore::InspectorNetworkAgent::willLoadXHRSynchronously):
2877         (WebCore::InspectorNetworkAgent::didLoadXHRSynchronously):
2878         (WebCore::InspectorNetworkAgent::willDestroyCachedResource):
2879         (WebCore::InspectorNetworkAgent::willRecalculateStyle):
2880         (WebCore::InspectorNetworkAgent::didRecalculateStyle):
2881         (WebCore::InspectorNetworkAgent::didScheduleStyleRecalculation):
2882         (WebCore::InspectorNetworkAgent::buildInitiatorObject):
2883         (WebCore::InspectorNetworkAgent::didCreateWebSocket):
2884         (WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest):
2885         (WebCore::InspectorNetworkAgent::didReceiveWebSocketHandshakeResponse):
2886         (WebCore::InspectorNetworkAgent::didCloseWebSocket):
2887         (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame):
2888         (WebCore::InspectorNetworkAgent::didSendWebSocketFrame):
2889         (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrameError):
2890         (WebCore::InspectorNetworkAgent::enable):
2891         (WebCore::InspectorNetworkAgent::disable):
2892         (WebCore::InspectorNetworkAgent::setExtraHTTPHeaders):
2893         (WebCore::InspectorNetworkAgent::getResponseBody):
2894         (WebCore::InspectorNetworkAgent::setCacheDisabled):
2895         (WebCore::InspectorNetworkAgent::loadResource):
2896         (WebCore::InspectorNetworkAgent::mainFrameNavigated):
2897         * inspector/InspectorNetworkAgent.h: Renamed from Source/WebCore/inspector/InspectorResourceAgent.h.
2898         * inspector/InspectorPageAgent.h:
2899         * inspector/InstrumentingAgents.cpp:
2900         (WebCore::InstrumentingAgents::reset):
2901         * inspector/InstrumentingAgents.h:
2902         (WebCore::InstrumentingAgents::inspectorNetworkAgent):
2903         (WebCore::InstrumentingAgents::setInspectorNetworkAgent):
2904         (WebCore::InstrumentingAgents::inspectorResourceAgent): Deleted.
2905         (WebCore::InstrumentingAgents::setInspectorResourceAgent): Deleted.
2906         * inspector/NetworkResourcesData.h:
2907
2908 2015-10-28  Joseph Pecoraro  <pecoraro@apple.com>
2909
2910         Web Inspector: Remove unused / duplicate WebSocket timeline records
2911         https://bugs.webkit.org/show_bug.cgi?id=150647
2912
2913         Reviewed by Timothy Hatcher.
2914
2915         * Modules/websockets/WebSocketChannel.cpp:
2916         (WebCore::WebSocketChannel::connect):
2917         Only send what is needed by inspector now.
2918
2919         * inspector/InspectorInstrumentation.h:
2920         (WebCore::InspectorInstrumentation::didCreateWebSocket):
2921         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
2922         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
2923         (WebCore::InspectorInstrumentation::didCloseWebSocket):
2924         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
2925         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
2926         (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
2927         These can all fast return if there is no frontend because the inspector
2928         doesn't record any information about web sockets until a frontend is connected.
2929         The inspector in this case just sends events to the frontend when things happen.
2930
2931         * inspector/InspectorInstrumentation.cpp:
2932         (WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
2933         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl):
2934         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl):
2935         (WebCore::InspectorInstrumentation::didCloseWebSocketImpl):
2936         Stop messaging the Timeline agent, we already message the Resource agent.
2937
2938         * inspector/InspectorTimelineAgent.cpp:
2939         (WebCore::InspectorTimelineAgent::didCreateWebSocket): Deleted.
2940         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Deleted.
2941         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Deleted.
2942         (WebCore::InspectorTimelineAgent::didDestroyWebSocket): Deleted.
2943         * inspector/InspectorTimelineAgent.h:
2944         * inspector/TimelineRecordFactory.h:
2945         (WebCore::TimelineRecordFactory::createWebSocketCreateData): Deleted.
2946         (WebCore::TimelineRecordFactory::createGenericWebSocketData): Deleted.
2947         This is all duplicate information from the network domain.
2948
2949 2015-10-28  Andy Estes  <aestes@apple.com>
2950
2951         [Content Filtering] Crash when allowing a 0-byte resource to load
2952         https://bugs.webkit.org/show_bug.cgi?id=150644
2953         <rdar://problem/23288538>
2954
2955         Reviewed by Darin Adler.
2956
2957         Test: contentfiltering/allow-empty-document.html
2958
2959         * loader/ContentFilter.cpp:
2960         (WebCore::ContentFilter::deliverResourceData): resourceBuffer will be null if the resource contained no data.
2961
2962 2015-10-28  Chris Dumez  <cdumez@apple.com>
2963
2964         Assertion failure in WebCore::FrameLoader::stopLoading() running fast/events tests
2965         https://bugs.webkit.org/show_bug.cgi?id=150624
2966
2967         Reviewed by Darin Adler.
2968
2969         After r191652, a form's target attribute can no longer refer to a frame's id,
2970         only its name. This is because the frame's id no longer sets the Window name
2971         when the frame's name attribute is missing. This caused a change in behavior
2972         for the fast/events/form-iframe-target-before-load-crash*.html tests, which
2973         exposed a pre-existing bug.
2974
2975         This patch updates the fast/events/form-iframe-target-before-load-crash*.html
2976         tests so they keep testing the same thing as before r191652. It also adds a
2977         variant to keep covering the newly exposed bug.
2978
2979         The issue was that the frame was no longer navigated when submitting the form
2980         (due to the form's target not matching the frame name). Therefore, when
2981         removing the iframe from the document, its navigation has not started yet and
2982         DocumentLoadTiming::navigationStart() is not initialized yet when
2983         FrameLoader::stopLoading() is called and we hit an assertion. This patch
2984         replaces the assertion with an if check as we now know it can happen and we
2985         have test coverage for it.
2986
2987         Test: fast/events/form-iframe-target-before-load-crash.html
2988
2989         * loader/FrameLoader.cpp:
2990         (WebCore::FrameLoader::stopLoading):
2991
2992 2015-10-28  Brian Burg  <bburg@apple.com>
2993
2994         Builtins generator should emit ENABLE(FEATURE) guards based on @conditional annotation
2995         https://bugs.webkit.org/show_bug.cgi?id=150536
2996
2997         Reviewed by Yusuke Suzuki.
2998
2999         Replace @optional=FEATURE with @conditional=ENABLE(FEATURE) in builtins files.
3000
3001         * Modules/streams/ByteLengthQueuingStrategy.js:
3002         * Modules/streams/CountQueuingStrategy.js:
3003         * Modules/streams/ReadableStream.js:
3004         * Modules/streams/ReadableStreamController.js:
3005         * Modules/streams/ReadableStreamInternals.js:
3006         * Modules/streams/ReadableStreamReader.js:
3007         * Modules/streams/StreamInternals.js:
3008         * Modules/streams/WritableStream.js:
3009         * Modules/streams/WritableStreamInternals.js:
3010
3011 2015-10-28  Zalan Bujtas  <zalan@apple.com>
3012
3013         Should never be reached failure in WebCore::backgroundRectForBox
3014         https://bugs.webkit.org/show_bug.cgi?id=150232
3015
3016         Reviewed by Simon Fraser.
3017
3018         We should never end up with simple container for composited layer when background-clip: text is present.
3019         (not even when the box has no decoration to paint)
3020
3021         Test: fast/backgrounds/background-clip-text-with-simple-container.html
3022
3023         * rendering/RenderLayerBacking.cpp:
3024         (WebCore::RenderLayerBacking::paintsBoxDecorations):
3025         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
3026         (WebCore::backgroundRectForBox):
3027
3028 2015-10-28  Chris Dumez  <cdumez@apple.com>
3029
3030         Use RunLoopTimer in DataURLDecoder to avoid issues related to runloops
3031         https://bugs.webkit.org/show_bug.cgi?id=150609
3032         <rdar://problem/22702894>
3033
3034         Reviewed by Antti Koivisto.
3035
3036         Use RunLoopTimer in DataURLDecoder to avoid issues related to RunLoops.
3037         In particular, the callOnMainThread() call could fail to dispatch the
3038         decoding result to the main thread if the client-side would spin its own
3039         RunLoop.
3040
3041         This is similar to the approach used in DocumentLoader for
3042         DocumentLoaderTimer.
3043
3044         No new tests, verified through manual testing.
3045
3046         * WebCore.xcodeproj/project.pbxproj:
3047         * loader/ResourceLoader.cpp:
3048         (WebCore::ResourceLoader::loadDataURL):
3049         * page/Page.cpp:
3050         (WebCore::Page::Page):
3051         * page/Page.h:
3052         * page/mac/PageMac.mm: Renamed from Source/WebCore/page/mac/PageMac.cpp.
3053         (WebCore::Page::platformInitialize):
3054         (WebCore::Page::addSchedulePair):
3055         (WebCore::Page::removeSchedulePair):
3056         * platform/network/DataURLDecoder.cpp:
3057         (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch):
3058         (WebCore::DataURLDecoder::DecodingResultDispatcher::DecodingResultDispatcher):
3059         (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer):
3060         (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired):
3061         (WebCore::DataURLDecoder::createDecodeTask):
3062         (WebCore::DataURLDecoder::decode):
3063         * platform/network/DataURLDecoder.h:
3064
3065 2015-10-28  Brady Eidson  <beidson@apple.com>
3066
3067         Modern IDB: Implement most readonly attributes of IDBObjectStore.
3068         https://bugs.webkit.org/show_bug.cgi?id=150617
3069
3070         Reviewed by Alex Christensen.
3071
3072         Test: storage/indexeddb/modern/objectstore-attributes.html
3073
3074         * Modules/indexeddb/IDBObjectStore.h:
3075
3076         * Modules/indexeddb/client/IDBAnyImpl.cpp:
3077         (WebCore::IDBClient::IDBAny::IDBAny):
3078         * Modules/indexeddb/client/IDBAnyImpl.h:
3079         (WebCore::IDBClient::IDBAny::create):
3080
3081         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3082         (WebCore::IDBClient::IDBObjectStore::name):
3083         (WebCore::IDBClient::IDBObjectStore::keyPathAny):
3084         (WebCore::IDBClient::IDBObjectStore::keyPath):
3085         (WebCore::IDBClient::IDBObjectStore::transaction):
3086         (WebCore::IDBClient::IDBObjectStore::id): Deleted.
3087         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
3088
3089         * Modules/indexeddb/legacy/LegacyObjectStore.h:
3090         (WebCore::LegacyObjectStore::transaction):
3091
3092 2015-10-28  Hunseop Jeong  <hs85.jeong@samsung.com>
3093
3094         Replace 0 and NULL with nullptr in WebCore/editing.
3095         https://bugs.webkit.org/show_bug.cgi?id=150555
3096
3097         Reviewed by Darin Adler.
3098
3099         No new tests because there is no behavior change.
3100
3101         * editing/ApplyStyleCommand.cpp:
3102         (WebCore::ApplyStyleCommand::ApplyStyleCommand):
3103         (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
3104         (WebCore::ApplyStyleCommand::applyInlineStyle):
3105         * editing/ApplyStyleCommand.h:
3106         (WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement):
3107         * editing/CompositeEditCommand.cpp:
3108         (WebCore::CompositeEditCommand::applyCommandToComposite):
3109         (WebCore::CompositeEditCommand::deleteInsignificantText):
3110         * editing/DeleteSelectionCommand.cpp:
3111         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand):
3112         (WebCore::DeleteSelectionCommand::initializeStartEnd):
3113         * editing/EditCommand.cpp:
3114         (WebCore::EditCommand::EditCommand):
3115         * editing/EditCommand.h:
3116         * editing/EditingStyle.cpp:
3117         (WebCore::HTMLElementEquivalent::HTMLElementEquivalent):
3118         * editing/EditingStyle.h:
3119         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
3120         * editing/Editor.h:
3121         * editing/EditorCommand.cpp:
3122         (WebCore::Editor::commandIsSupportedFromMenuOrKeyBinding):
3123         (WebCore::Editor::Command::Command):
3124         * editing/FrameSelection.cpp:
3125         (WebCore::DragCaretController::setCaretPosition):
3126         (WebCore::FrameSelection::directionOfSelection):
3127         * editing/MarkupAccumulator.cpp:
3128         (WebCore::MarkupAccumulator::entityMaskForText):
3129         * editing/MarkupAccumulator.h:
3130         * editing/RenderedPosition.cpp:
3131         (WebCore::rendererFromPosition):
3132         (WebCore::RenderedPosition::RenderedPosition):
3133         * editing/RenderedPosition.h:
3134         (WebCore::RenderedPosition::operator==):
3135         (WebCore::RenderedPosition::uncachedInlineBox):
3136         (WebCore::RenderedPosition::RenderedPosition):
3137         * editing/ReplaceSelectionCommand.cpp:
3138         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
3139         * editing/SetNodeAttributeCommand.cpp:
3140         (WebCore::SetNodeAttributeCommand::doUnapply):
3141         * editing/SmartReplaceCF.cpp:
3142         (WebCore::getSmartSet):
3143         * editing/SpellChecker.cpp:
3144         (WebCore::SpellCheckRequest::SpellCheckRequest):
3145         (WebCore::SpellCheckRequest::didSucceed):
3146         (WebCore::SpellCheckRequest::didCancel):
3147         (WebCore::SpellCheckRequest::setCheckerAndSequence):
3148         (WebCore::SpellCheckRequest::requesterDestroyed):
3149         (WebCore::SpellChecker::SpellChecker):
3150         * editing/SpellChecker.h:
3151         * editing/VisiblePosition.cpp:
3152         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
3153         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
3154         (WebCore::VisiblePosition::localCaretRect):
3155         (WebCore::enclosingBlockFlowElement):
3156         * editing/VisibleUnits.cpp:
3157         (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
3158         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextOrLineBreakBox):
3159         (WebCore::visualWordPosition):
3160         (WebCore::previousLinePosition):
3161         (WebCore::nextLinePosition):
3162         * editing/htmlediting.cpp:
3163         (WebCore::highestEnclosingNodeOfType):
3164         (WebCore::highestNodeToRemoveInPruning):
3165         * editing/htmlediting.h:
3166         (WebCore::firstPositionInOrBeforeNode):
3167         * editing/ios/EditorIOS.mm:
3168         (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
3169         (WebCore::Editor::fontForSelection):
3170         * editing/mac/AlternativeTextUIController.mm:
3171         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
3172         * editing/mac/EditorMac.mm:
3173         (WebCore::Editor::fontForSelection):
3174         * editing/markup.cpp:
3175         * editing/markup.h:
3176
3177 2015-10-28  Xabier Rodriguez Calvar  <calvaris@igalia.com>
3178
3179         [Streams API] Add write method to writable stream
3180         https://bugs.webkit.org/show_bug.cgi?id=150589
3181
3182         Reviewed by Darin Adler.
3183
3184         Write method implemented on writable streams according to the spec.
3185
3186         Current test set suffices. Expectations are updated accordingly.
3187
3188         * Modules/streams/WritableStream.js:
3189         (write):
3190
3191 2015-10-27  Hunseop Jeong  <hs85.jeong@samsung.com>
3192
3193         [Cairo] Incorrect dashed and dotted border painting after r177686.
3194         https://bugs.webkit.org/show_bug.cgi?id=141967
3195
3196         Reviewed by Gyuyoung Kim.
3197
3198         Fix the incorrect dashed/dotted border painting in cairo.
3199
3200         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3201         (WebCore::GraphicsContext::drawLine):
3202         (WebCore::calculateStrokePatternOffset): Deleted.
3203         (WebCore::drawLineOnCairoContext): Deleted.
3204
3205 2015-10-27  Chris Dumez  <cdumez@apple.com>
3206
3207         id of iframe incorrectly sets window name
3208         https://bugs.webkit.org/show_bug.cgi?id=150565
3209
3210         Reviewed by Darin Adler.
3211
3212         As per the specification, the iframe's contentWindow name should be an
3213         empty string if the frame's name attribute is unset:
3214         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-name
3215
3216         Instead, WebKit was using the iframe's id as window name if the name
3217         was unset.
3218
3219         Firefox, IE and Chrome behave according to the specification.
3220
3221         This is a merge of the following Blink commit:
3222         https://src.chromium.org/viewvc/blink?revision=169803&view=revision
3223
3224         Test: fast/frames/iframe-no-name.html
3225
3226         * html/HTMLFrameElementBase.cpp:
3227         (WebCore::HTMLFrameElementBase::parseAttribute):
3228         (WebCore::HTMLFrameElementBase::insertedInto): Deleted.
3229
3230 2015-10-27  Joseph Pecoraro  <pecoraro@apple.com>
3231
3232         Web Inspector: Remove Timeline MarkDOMContent and MarkLoad, data is already available
3233         https://bugs.webkit.org/show_bug.cgi?id=150615
3234
3235         Reviewed by Timothy Hatcher.
3236
3237         The timestamp only event data is already available from `Page.domContentEventFired`
3238         and `Page.loadEventFired` events. We can drop the Timeline specific events in
3239         favor of these which have existed for a very long time (before iOS 7).
3240
3241         * inspector/InspectorInstrumentation.cpp:
3242         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
3243         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl): Deleted.
3244         * inspector/InspectorTimelineAgent.cpp:
3245         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent): Deleted.
3246         (WebCore::InspectorTimelineAgent::didMarkLoadEvent): Deleted.
3247         (WebCore::toProtocol): Deleted.
3248         * inspector/InspectorTimelineAgent.h:
3249         * inspector/TimelineRecordFactory.cpp:
3250         (WebCore::TimelineRecordFactory::createMarkData): Deleted.
3251         * inspector/TimelineRecordFactory.h:
3252
3253 2015-10-27  Jiewen Tan  <jiewen_tan@apple.com>
3254
3255         Null dereference loading Blink layout test editing/execCommand/format-block-uneditable-crash.html
3256         https://bugs.webkit.org/show_bug.cgi?id=150207
3257         <rdar://problem/23137066>
3258
3259         Reviewed by Enrica Casucci.
3260
3261         This is a merge of Blink r200238:
3262         https://codereview.chromium.org/1280263002
3263
3264         Test: editing/execCommand/format-block-uneditable-crash.html
3265
3266         * editing/ApplyBlockElementCommand.cpp:
3267         (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
3268         splitTextNode() will return early if the given text node is not editable. Hence, check
3269         its editablity before calling the method.
3270
3271 2015-10-27  Brady Eidson  <beidson@apple.com>
3272
3273         Modern IDB: IDBTransaction.objectStore() support.
3274         https://bugs.webkit.org/show_bug.cgi?id=150607
3275
3276         Reviewed by Alex Christensen.
3277
3278         Tests: storage/indexeddb/modern/aborted-put.html
3279                storage/indexeddb/modern/idbtransaction-objectstore-failures.html
3280
3281         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3282         (WebCore::IDBClient::IDBObjectStore::put):
3283         
3284         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3285         (WebCore::IDBClient::IDBTransaction::objectStore):
3286         (WebCore::IDBClient::IDBTransaction::createObjectStoreOnServer):
3287         * Modules/indexeddb/client/IDBTransactionImpl.h:
3288         
3289         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
3290         (WebCore::IDBServer::MemoryBackingStoreTransaction::addExistingObjectStore):
3291         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
3292         
3293         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3294         (WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
3295         
3296         * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
3297         (WebCore::IDBDatabaseInfo::infoForExistingObjectStore):
3298         * Modules/indexeddb/shared/IDBDatabaseInfo.h:
3299         
3300         * Modules/indexeddb/shared/IDBTransactionInfo.h:
3301         (WebCore::IDBTransactionInfo::objectStores):
3302
3303 2015-10-27  Joseph Pecoraro  <pecoraro@apple.com>
3304
3305         Web Inspector: Remove unused / duplicated XHR timeline instrumentation
3306         https://bugs.webkit.org/show_bug.cgi?id=150605
3307
3308         Reviewed by Timothy Hatcher.
3309
3310         These records are just duplicates of "EventDispatch" records for XHR
3311         load and readystatechange events. Due to the nesting, the XHR records
3312         were themselves never getting looked at, and their data (URL / readyState)
3313         not shown in the frontend.
3314
3315         * inspector/InspectorInstrumentation.cpp:
3316         (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEventImpl): Deleted.
3317         (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEventImpl): Deleted.
3318         (WebCore::InspectorInstrumentation::willDispatchXHRLoadEventImpl): Deleted.
3319         (WebCore::InspectorInstrumentation::didDispatchXHRLoadEventImpl): Deleted.
3320         * inspector/InspectorInstrumentation.h:
3321         (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent): Deleted.
3322         (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent): Deleted.
3323         (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent): Deleted.
3324         (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent): Deleted.
3325         * inspector/InspectorTimelineAgent.cpp:
3326         (WebCore::InspectorTimelineAgent::willDispatchXHRReadyStateChangeEvent): Deleted.
3327         (WebCore::InspectorTimelineAgent::didDispatchXHRReadyStateChangeEvent): Deleted.
3328         (WebCore::InspectorTimelineAgent::willDispatchXHRLoadEvent): Deleted.
3329         (WebCore::InspectorTimelineAgent::didDispatchXHRLoadEvent): Deleted.
3330         (WebCore::toProtocol): Deleted.
3331         * inspector/InspectorTimelineAgent.h:
3332         * inspector/TimelineRecordFactory.cpp:
3333         (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData): Deleted.
3334         (WebCore::TimelineRecordFactory::createXHRLoadData): Deleted.
3335         * inspector/TimelineRecordFactory.h:
3336         * xml/XMLHttpRequest.cpp:
3337         (WebCore::XMLHttpRequest::callReadyStateChangeListener): Deleted.
3338
3339 2015-10-27  Joseph Pecoraro  <pecoraro@apple.com>
3340
3341         Web Inspector: Do not send RenderingFrame TimelineRecords that have no children
3342         https://bugs.webkit.org/show_bug.cgi?id=150600
3343
3344         Reviewed by Timothy Hatcher.
3345
3346         * inspector/InspectorTimelineAgent.cpp:
3347         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
3348         The frontend already filters out empty RenderingFrame records
3349         (in TimelineManager.prototype._processRecord). Filter them out
3350         on the backend to reduce protocol traffic / noise.
3351
3352 2015-10-27  Alex Christensen  <achristensen@webkit.org>
3353
3354         Cancel navigation policy checks like we do content policy checks.
3355         https://bugs.webkit.org/show_bug.cgi?id=150582
3356         rdar://problem/22077579
3357
3358         Reviewed by Brent Fulgham.
3359
3360         This was verified manually and I'll write a layout test for it soon.
3361
3362         * loader/DocumentLoader.cpp:
3363         (WebCore::DocumentLoader::DocumentLoader):
3364         (WebCore::DocumentLoader::~DocumentLoader):
3365         (WebCore::DocumentLoader::willSendRequest):
3366         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
3367         (WebCore::DocumentLoader::cancelPolicyCheckIfNeeded):
3368         * loader/DocumentLoader.h:
3369         Add a bool to keep track of whether we are waiting for navigation policy checks, like we do with content policy checks.
3370         Without this check, sometimes callbacks are made to DocumentLoaders that do not exist any more because they do not get
3371         cancelled by cancelPolicyCheckIfNeeded when detaching from the frame.
3372
3373 2015-10-27  Brady Eidson  <beidson@apple.com>
3374
3375         Modern IDB: Support IDBObjectStore.put/get support.
3376         https://bugs.webkit.org/show_bug.cgi?id=150468
3377
3378         Reviewed by Alex Christensen.
3379
3380         Tests: storage/indexeddb/modern/basic-put.html
3381                storage/indexeddb/modern/keypath-basic.html
3382
3383         * CMakeLists.txt:
3384         * WebCore.xcodeproj/project.pbxproj:
3385
3386         * Modules/indexeddb/IDBKeyData.cpp:
3387         (WebCore::IDBKeyData::deletedValue):
3388         (WebCore::IDBKeyData::operator<):
3389         (WebCore::IDBKeyData::operator==):
3390         * Modules/indexeddb/IDBKeyData.h:
3391         (WebCore::IDBKeyData::isValid):
3392         (WebCore::IDBKeyData::operator!=):
3393         (WebCore::IDBKeyData::hash):
3394         (WebCore::IDBKeyData::isDeletedValue):
3395         (WebCore::IDBKeyDataHash::hash):
3396         (WebCore::IDBKeyDataHash::equal):
3397         (WebCore::IDBKeyDataHashTraits::constructDeletedValue):
3398         (WebCore::IDBKeyDataHashTraits::isDeletedValue):
3399         (WebCore::IDBKeyDataHashTraits::emptyValue):