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