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