Use range for syntax in Frame and FrameView.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-12-18  Andreas Kling  <akling@apple.com>
2
3         Use range for syntax in Frame and FrameView.
4         <https://webkit.org/b/125922>
5
6         Convert code in Frame and FrameView to use C++11's range for syntax.
7
8         Reviewed by Antti Koivisto.
9
10 2013-12-18  Andreas Kling  <akling@apple.com>
11
12         RenderElement-ize adjustForAbsoluteZoom() and friends.
13         <https://webkit.org/b/125921>
14
15         Make adjustForAbsoluteZoom() take a const RenderElement& instead
16         of a RenderObject* so we can avoid the extra branch in style().
17         All call sites already had RenderElements.
18
19         Reviewed by Antti Koivisto.
20
21 2013-12-18  Chris Fleizach  <cfleizach@apple.com>
22
23         AX: HTML spec change indicates @aria-required should trump @required on any element
24         https://bugs.webkit.org/show_bug.cgi?id=122145
25
26         Reviewed by Mario Sanchez Prada.
27
28         aria-required should win over the native "required" attribute.
29
30         Updated tests: accessibility/aria-required.html
31
32         * accessibility/AccessibilityNodeObject.cpp:
33         (WebCore::AccessibilityNodeObject::isRequired):
34
35 2013-12-18  Carlos Garcia Campos  <cgarcia@igalia.com>
36
37         Unreviewed. Fix make distcheck.
38
39         * GNUmakefile.am:
40         * GNUmakefile.list.am:
41
42 2013-12-18  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
43
44         [soup] Fix unused parameter warnings in ResourceHandleSoup.
45         https://bugs.webkit.org/show_bug.cgi?id=125918
46
47         Reviewed by Martin Robinson.
48
49         Comment out the method parameters to avoid the warnings.
50
51         No tests required.
52
53         * platform/network/soup/ResourceHandleSoup.cpp:
54         (WebCore::WebCoreSynchronousLoader::didReceiveData):
55
56 2013-12-17  Jer Noble  <jer.noble@apple.com>
57
58         [MSE] Periodically monitor source buffers.
59         https://bugs.webkit.org/show_bug.cgi?id=125898
60
61         Reviewed by Eric Carlson.
62
63         Test: media/media-source/media-source-monitor-source-buffers.html
64
65         The MSE spec requires that the SourceBuffer Monitoring step is run
66         periodically during playback. No specific update interval is specified
67         so we will re-use the existing HTMLMediaElement playback progress
68         timer to signal the media source monitoring.
69
70         * html/HTMLMediaElement.cpp:
71         (HTMLMediaElement::playbackProgressTimerFired):
72
73 2013-12-17  Jer Noble  <jer.noble@apple.com>
74
75         [MSE] Add per-track signalling between SourceBuffer and SourceBufferPrivate.
76         https://bugs.webkit.org/show_bug.cgi?id=125899
77
78         Reviewed by Eric Carlson.
79
80         To accommodate the future addition of audio support to MSE in the Mac
81         port, add the concept of trackIDs to the communication between
82         SourceBuffer and SourceBufferPrivate.
83
84         The following virtual methods  now take a trackID parameter:
85         * platform/graphics/SourceBufferPrivate.h:
86         (WebCore::SourceBufferPrivate::isReadyForMoreSamples):
87         (WebCore::SourceBufferPrivate::stopAskingForMoreSamples):
88         (WebCore::SourceBufferPrivate::notifyClientWhenReadyForMoreSamples):
89         * platform/graphics/SourceBufferPrivateClient.h:
90         (WebCore::SourceBufferPrivateClient::sourceBufferPrivateDidBecomeReadyForMoreSamples):
91
92         Update overridden methods in subclasses:
93         * Modules/mediasource/SourceBuffer.cpp:
94         (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
95         * Modules/mediasource/SourceBuffer.h:
96         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
97         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
98         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
99         (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
100         * platform/mock/mediasource/MockSourceBufferPrivate.h:
101
102         Change the logic in provideMediaData to update a single TrackBuffer
103         rather than iterating over all of them:
104         * Modules/mediasource/SourceBuffer.cpp:
105         (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
106         (WebCore::SourceBuffer::appendBufferTimerFired):
107         (WebCore::SourceBuffer::provideMediaData):
108
109 2013-12-17  Joseph Pecoraro  <pecoraro@apple.com>
110
111         Web Inspector: Remove InspectorAgent::hasFrontend
112         https://bugs.webkit.org/show_bug.cgi?id=125907
113
114         Reviewed by Timothy Hatcher.
115
116         Remove InspectorAgent::hasFrontend only used by
117         InspectorInstrumentation::collectingHTMLParseErrors. However,
118         following the single callers of that, the result is unused
119         in the HTMLDocumentParser and HTMLTreeBuilder. So remove
120         more stale / unused code.
121
122         * html/FTPDirectoryDocument.cpp:
123         (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
124         * html/HTMLDocument.cpp:
125         (WebCore::HTMLDocument::createParser):
126         * html/parser/HTMLDocumentParser.cpp:
127         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
128         * html/parser/HTMLDocumentParser.h:
129         (WebCore::HTMLDocumentParser::create):
130         * html/parser/HTMLTreeBuilder.cpp:
131         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
132         * html/parser/HTMLTreeBuilder.h:
133         (WebCore::HTMLTreeBuilder::create):
134         * html/parser/TextDocumentParser.cpp:
135         (WebCore::TextDocumentParser::TextDocumentParser):
136         * inspector/DOMPatchSupport.cpp:
137         (WebCore::DOMPatchSupport::patchDocument):
138         * inspector/InspectorAgent.h:
139         * inspector/InspectorInstrumentation.cpp:
140         * inspector/InspectorInstrumentation.h:
141
142 2013-12-17  Joseph Pecoraro  <pecoraro@apple.com>
143
144         Web Inspector: Some basic InjectedScriptHost cleanup
145         https://bugs.webkit.org/show_bug.cgi?id=125902
146
147         Reviewed by Timothy Hatcher.
148
149         Remove InjectedScriptHost::scriptDebugServer. Nobody accesses
150         the ScriptDebugServer through the injected script host. This
151         also lets us remove the reference to the DebuggerAgent.
152
153         * inspector/InjectedScriptHost.cpp:
154         * inspector/InjectedScriptHost.h:
155         (WebCore::InjectedScriptHost::init):
156         * inspector/InspectorController.cpp:
157         (WebCore::InspectorController::InspectorController):
158         * inspector/WorkerInspectorController.cpp:
159         (WebCore::WorkerInspectorController::WorkerInspectorController):
160
161 2013-12-17  Joseph Pecoraro  <pecoraro@apple.com>
162
163         Web Inspector: Remove InspectorFrontendHost.setInjectedScriptForOrigin
164         https://bugs.webkit.org/show_bug.cgi?id=125906
165
166         Reviewed by Timothy Hatcher.
167
168         Remove stale code related to a since removed feature,
169         Inspector extensions. This allows us to remove a number
170         of entry points into InspectorAgent.
171
172         * inspector/InspectorAgent.cpp:
173         (WebCore::InspectorAgent::InspectorAgent):
174         (WebCore::InspectorAgent::willDestroyFrontendAndBackend):
175         * inspector/InspectorAgent.h:
176         (WebCore::InspectorAgent::create):
177         Remove setInjectedScriptForOrigin and InjectedScript management.
178
179         * inspector/InspectorController.cpp:
180         (WebCore::InspectorController::InspectorController):
181         * inspector/InspectorController.h:
182         * inspector/InspectorFrontendHost.cpp:
183         * inspector/InspectorFrontendHost.h:
184         * inspector/InspectorFrontendHost.idl:
185         Remove the API and calling through InspectorController.
186
187         * inspector/InspectorInstrumentation.cpp:
188         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
189         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
190         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
191         Remove now unnecessary calls into InspectorAgent.
192
193 2013-12-17  Jer Noble  <jer.noble@apple.com>
194
195         Fix TimeRanges::intersectWith
196         https://bugs.webkit.org/show_bug.cgi?id=118802
197
198         Test: TestWebKitAPI/Tests/WebCore/TimeRanges.cpp.
199
200         Reviewed by Eric Carlson.
201
202         * WebCore.exp.in:
203         * WebCore.xcodeproj/project.pbxproj:
204         * html/TimeRanges.cpp:
205         (TimeRanges::invert):
206         (TimeRanges::intersectWith):
207
208         Merge
209         https://chromium.googlesource.com/chromium/blink/+/f557582b6c6283a8b165514f52d01cfd98130e85        
210
211 2013-12-17  Eric Carlson  <eric.carlson@apple.com>
212
213         ASSERT setting pseudoID with registered DOMSubtreeModified listener
214         https://bugs.webkit.org/show_bug.cgi?id=125900
215
216         Reviewed by Ryosuke Niwa.
217
218         Test: fast/dom/attribute-set-before-element-in-tree.html
219
220         * dom/Node.cpp:
221         (WebCore::Node::dispatchSubtreeModifiedEvent): Return early if the node does not have a
222             parent and does not have a DOMSubtreeModified listener.
223
224 2013-12-17  Ryosuke Niwa  <rniwa@webkit.org>
225
226         Remove dead code for reflected attributes from audio, video, and track elements
227         https://bugs.webkit.org/show_bug.cgi?id=125838
228
229         Reviewed by Eric Carlson.
230
231         Merge https://chromium.googlesource.com/chromium/blink/+/310514e2f0fd934975b841d463bad0cd62e6fd64
232
233         Where [Reflect] is used in the IDL, the getters and setters in C++ are
234         only for internal convenience, and these were unused.
235
236         * html/HTMLMediaElement.cpp:
237         * html/HTMLMediaElement.h:
238         * html/HTMLTrackElement.cpp:
239         * html/HTMLTrackElement.h:
240         * html/HTMLVideoElement.cpp:
241         * html/HTMLVideoElement.h:
242
243 2013-12-17  Simon Fraser  <simon.fraser@apple.com>
244
245         Rename "canRubberBands" to "canRubberBand"
246         https://bugs.webkit.org/show_bug.cgi?id=125897
247
248         Reviewed by Anders Carlsson.
249
250         Rename "canRubberBands" to "canRubberBand" in various places.
251
252         * page/scrolling/ScrollingTree.cpp:
253         (WebCore::ScrollingTree::setCanRubberBandState):
254         * page/scrolling/ScrollingTree.h:
255
256 2013-12-17  Jer Noble  <jer.noble@apple.com>
257
258         [MSE] Update duration after appending samples, per spec.
259         https://bugs.webkit.org/show_bug.cgi?id=125703
260
261         Reviewed by Eric Carlson.
262
263         Test: media/media-source/media-source-duration-after-append.html
264
265         After appending a sample, update the MediaSource duration if the sample's
266         presentation end time is greater than the existing duration.
267
268         * Modules/mediasource/SourceBuffer.cpp:
269         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
270         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
271         * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
272         (WebCore::MediaSourcePrivateAVFObjC::setDuration): Notify the MediaPlayer.
273
274 2013-12-17  Jer Noble  <jer.noble@apple.com>
275
276         [MSE][Mac] Null-deref in CMSampleBufferIsRandomAccess().
277         https://bugs.webkit.org/show_bug.cgi?id=125698
278
279         Reviewed by Sam Weinig.
280
281         If a given CMSampleBufferRef does not have a sample attachments array (which is unlikely, but
282         possible), CMSampleBufferGetAttachmentsArray() will return a null value.
283
284         Additionally, the CMSampleBuffer documentation states that "samples are assumed to be sync
285         samples by default", so the absence of an attachment array (or the absense of a
286         kCMSampleAttachmentKey_NotSync entry in any of the attachment dictionaries) indicates the
287         sample is sync.
288
289         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
290         (WebCore::CMSampleBufferIsRandomAccess):
291
292 2013-12-17  Ryosuke Niwa  <rniwa@webkit.org>
293
294         Video element's width and height content attributes should not influence intrinsic width and height
295         https://bugs.webkit.org/show_bug.cgi?id=125822
296
297         Reviewed by Darin Adler.
298
299         Merge https://chromium.googlesource.com/chromium/blink/+/022ce34efb5b70cb964c3ca29f23c8980ffaef05
300
301         The width/height content attributes already influence specified style via
302         HTMLVideoElement::collectStyleForPresentationAttribute, to also influence the intrinsic size has never
303         been part of the spec: http://www.w3.org/TR/2013/WD-html51-20130528/embedded-content-0.html#dom-dim-width
304
305         The test case passes in Firefox Nightly and IE11 Release Preview, but fails in Opera Presto, which has
306         no default intrinsic size.
307
308         Test: media/video-intrinsic-width-height.html
309
310         * rendering/RenderVideo.cpp:
311         (WebCore::RenderVideo::calculateIntrinsicSize):
312
313 2013-12-16  Daniel Bates  <dabates@apple.com>
314
315         [iOS] Upstream WebCore/html changes
316         https://bugs.webkit.org/show_bug.cgi?id=125765
317
318         Reviewed by Darin Adler.
319
320         * WebCore.xcodeproj/project.pbxproj:
321         * html/Autocapitalize.cpp: Added.
322         * html/Autocapitalize.h: Added. Also, added FIXME comment to forward declare AtomicString once we upstream
323         more of the iOS port.
324         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
325         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent): Opt out of code when building for iOS.
326         * html/BaseDateAndTimeInputType.cpp:
327         (WebCore::BaseDateAndTimeInputType::isKeyboardFocusable): Added; iOS-specific.
328         * html/BaseDateAndTimeInputType.h:
329         * html/FileInputType.cpp:
330         (WebCore::FileInputType::FileInputType): Added iOS-specific code.
331         (WebCore::FileInputType::~FileInputType): Opt out of code when building for iOS. Also, added FIXME comment.
332         (WebCore::FileInputType::requestIcon): Ditto.
333         (WebCore::FileInputType::filesChosen): Added; iOS-specific.
334         (WebCore::FileInputType::displayString): Added; iOS-specific.
335         (WebCore::FileInputType::receiveDroppedFiles): Guarded code with ENABLE(DRAG_SUPPORT).
336         * html/FileInputType.h:
337         * html/FormController.cpp:
338         (WebCore::FormController::formElementsCharacterCount): Added.
339         * html/FormController.h:
340         * html/HTMLAppletElement.cpp:
341         (WebCore::HTMLAppletElement::updateWidget): Opt out of code when building for iOS.
342         * html/HTMLAreaElement.cpp:
343         (WebCore::HTMLAreaElement::computePath): Changed argument datatype from RenderElement* to RenderObject*.
344         Also, added FIXME comment to fix this up once we upstream iOS's DOMUIKitExtensions.{h, mm}.
345         (WebCore::HTMLAreaElement::computeRect): Ditto.
346         * html/HTMLAreaElement.h:
347         * html/HTMLAttributeNames.in: Added attributes ongesture{start, change, end}, autocorrect, autocapitalize,
348         data-youtube-id, onwebkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}, webkit-playsinline,
349         x-webkit-airplay, and x-webkit-wirelessvideoplaybackdisabled.
350         * html/HTMLBodyElement.cpp:
351         (WebCore::HTMLBodyElement::scrollLeft): Added iOS-specific code.
352         (WebCore::HTMLBodyElement::scrollTop): Ditto.
353         * html/HTMLCanvasElement.cpp:
354         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Added iOS-specific code and FIXME comment.
355         (WebCore::HTMLCanvasElement::createImageBuffer): Added iOS-specific code.
356         * html/HTMLCanvasElement.h: Added iOS-specific code and FIXME comment.
357         * html/HTMLDocument.cpp:
358         (WebCore::HTMLDocument::HTMLDocument): Added argument isSynthesized (default to false), which is
359         passed through to Document::Document(), to create a synthesized document.
360         * html/HTMLDocument.h:
361         (WebCore::HTMLDocument::createSynthesizedDocument): Added.
362         * html/HTMLElement.cpp:
363         (WebCore::HTMLElement::collectStyleForPresentationAttribute): Added iOS-specific code.
364         (WebCore::populateEventNameForAttributeLocalNameMap): Ditto.
365         (WebCore::HTMLElement::willRespondToMouseMoveEvents): Added; iOS-specific.
366         (WebCore::HTMLElement::willRespondToMouseWheelEvents): Added; iOS-specific.
367         (WebCore::HTMLElement::willRespondToMouseClickEvents): Added; iOS-specific.
368         * html/HTMLElement.h:
369         * html/HTMLFormControlElement.cpp: Added FIXME comment to share more code with class HTMLFormElement.
370         (WebCore::HTMLFormControlElement::autocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
371         (WebCore::HTMLFormControlElement::setAutocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
372         (WebCore::HTMLFormControlElement::autocapitalizeType): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
373         (WebCore::HTMLFormControlElement::autocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
374         (WebCore::HTMLFormControlElement::setAutocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
375         * html/HTMLFormControlElement.h:
376         * html/HTMLFormElement.cpp: Added FIXME comment to share more code with class HTMLFormControlElement.
377         (WebCore::HTMLFormElement::submitImplicitly): Modified to code to allow implicit submission of multi-input
378         forms only if Settings::allowMultiElementImplicitSubmission() returns true. Such behavior is expected by older
379         iOS apps. Also, changed datatype of variable submissionTriggerCount from int to unsigned because it represents
380         a non-negative value.
381         (WebCore::HTMLFormElement::autocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
382         (WebCore::HTMLFormElement::setAutocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
383         (WebCore::HTMLFormElement::autocapitalizeType): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
384         (WebCore::HTMLFormElement::autocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
385         (WebCore::HTMLFormElement::setAutocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
386         * html/HTMLFormElement.h:
387         * html/HTMLFormElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
388         * html/HTMLIFrameElement.h:
389         * html/HTMLInputElement.cpp:
390         (WebCore::HTMLInputElement::displayString): Added; guarded by PLATFORM(IOS).
391         (WebCore::HTMLInputElement::dateType): Added; guarded by PLATFORM(IOS).
392         * html/HTMLInputElement.h:
393         * html/HTMLInputElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
394         * html/HTMLLabelElement.cpp:
395         (WebCore::HTMLLabelElement::willRespondToMouseClickEvents): Added iOS-specific code.
396         * html/HTMLMediaElement.cpp:
397         (WebCore::HTMLMediaElement::HTMLMediaElement): Added iOS-specific code and FIXME comment.
398         (WebCore::HTMLMediaElement::~HTMLMediaElement): Added iOS-specific code.
399         (WebCore::HTMLMediaElement::parseMediaPlayerAttribute): Added; iOS-specific.
400         (WebCore::HTMLMediaElement::parseAttribute): Added iOS-specific code.
401         (WebCore::HTMLMediaElement::insertedInto): Ditto.
402         (WebCore::HTMLMediaElement::load): Ditto.
403         (WebCore::HTMLMediaElement::prepareForLoad): Ditto.
404         (WebCore::HTMLMediaElement::autoplay): Ditto.
405         (WebCore::HTMLMediaElement::play): Ditto.
406         (WebCore::HTMLMediaElement::playInternal): Ditto.
407         (WebCore::HTMLMediaElement::pauseInternal): Ditto.
408         (WebCore::HTMLMediaElement::setVolumne): Opt out of code when building for iOS.
409         (WebCore::HTMLMediaElement::setMuted): Ditto.
410         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Added iOS-specific code.
411         (WebCore::HTMLMediaElement::updateVolume): Ditto.
412         (WebCore::HTMLMediaElement::updatePlayState): Ditto.
413         (WebCore::HTMLMediaElement::userCancelledLoad): Added iOS-specific code and FIXME comment.
414         (WebCore::HTMLMediaElement::resume): Added iOS-specific comment. See <rdar://problem/9751303>.
415         (WebCore::HTMLMediaElement::deliverNotification): Added iOS-specific code.
416         (WebCore::HTMLMediaElement::getPluginProxyParams): Added iOS-specific code. Also, changed src() to getNonEmptyURLAttribute()
417         in the non-iOS code as their doesn't exist a method called src in this class or its superclasses.
418         (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Added; guarded by ENABLE(IOS_AIRPLAY).
419         (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Added; guarded by ENABLE(IOS_AIRPLAY).
420         (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Added; guarded by ENABLE(IOS_AIRPLAY).
421         (WebCore::HTMLMediaElement::mediaPlayerPlaybackTargetAvailabilityChanged): Added; guarded by ENABLE(IOS_AIRPLAY).
422         (WebCore::HTMLMediaElement::addEventListener): Added; guarded by ENABLE(IOS_AIRPLAY).
423         (WebCore::HTMLMediaElement::removeEventListener): Added; guarded by ENABLE(IOS_AIRPLAY).
424         (WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Added; guarded by ENABLE(IOS_AIRPLAY).
425         (WebCore::HTMLMediaElement::enterFullscreen): Added iOS-specific code.
426         (WebCore::HTMLMediaElement::exitFullscreen): Ditto.
427         (WebCore::HTMLMediaElement::createMediaPlayer): Added ENABLE(IOS_AIRPLAY)-guarded code.
428         (WebCore::HTMLMediaElement::userRequestsMediaLoading): Added; guarded by PLATFORM(IOS).
429         (WebCore::HTMLMediaElement::shouldUseVideoPluginProxy): Use dot operator instead of dereference operator (->)
430         when accessing Document::settings().
431         (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Added ENABLE(PLUGIN_PROXY_FOR_VIDEO)-guarded code.
432         * html/HTMLMediaElement.h:
433         (WebCore::HTMLMediaElement::userGestureRequiredToShowPlaybackTargetPicker): Added; guarded by ENABLE(IOS_AIRPLAY).
434         * html/HTMLMediaElement.idl: Added ENABLE_IOS_AIRPLAY-guarded attributes and functions:webkitCurrentPlaybackTargetIsWireless,
435         onwebkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}, and webkitShowPlaybackTargetPicker().
436         * html/HTMLMetaElement.cpp:
437         (WebCore::HTMLMetaElement::process): Added iOS-specific code.
438         * html/HTMLObjectElement.cpp:
439         (WebCore::shouldNotPerformURLAdjustment): Added; iOS-specific.
440         (WebCore::HTMLObjectElement::parametersForPlugin): Modified to call shouldNotPerformURLAdjustment() when
441         building for iOS.
442         * html/HTMLPlugInElement.h:
443         * html/HTMLPlugInImageElement.cpp:
444         (WebCore::HTMLPlugInImageElement::createRenderer): Added iOS-specific code.
445         (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Added; iOS-specific.
446         * html/HTMLPlugInImageElement.h:
447         * html/HTMLSelectElement.cpp:
448         (WebCore::HTMLSelectElement::usesMenuList): Added iOS-specific code.
449         (WebCore::HTMLSelectElement::createRenderer): Ditto.
450         (WebCore::HTMLSelectElement::childShouldCreateRenderer): Ditto.
451         (WebCore::HTMLSelectElement::willRespondToMouseClickEvents): Added; iOS-specific.
452         (WebCore::HTMLSelectElement::updateListBoxSelection): Added iOS-specific code.
453         (WebCore::HTMLSelectElement::scrollToSelection): Ditto.
454         (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer): Ditto.
455         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Opt out of code when building for iOS.
456         (WebCore::HTMLSelectElement::defaultEventHandler): Added iOS-specific code.
457         * html/HTMLSelectElement.h:
458         * html/HTMLTextAreaElement.cpp:
459         (WebCore::HTMLTextAreaElement::willRespondToMouseClickEvents): Added; iOS-specific.
460         * html/HTMLTextAreaElement.h:
461         * html/HTMLTextAreaElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
462         * html/HTMLTextFormControlElement.cpp:
463         (WebCore::HTMLTextFormControlElement::select): Added iOS-specific code and FIXME comment.
464         (WebCore::HTMLTextFormControlElement::setSelectionRange): Opt out of code when building for iOS.
465         (WebCore::HTMLTextFormControlElement::hidePlaceholder): Added; guarded by PLATFORM(IOS).
466         (WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary): Added; guarded by PLATFORM(IOS).
467         * html/HTMLTextFormControlElement.h:
468         * html/HTMLVideoElement.cpp:
469         (WebCore::HTMLVideoElement::createRenderer): Fix up call to HTMLMediaElement::createRenderer().
470         (WebCore::HTMLVideoElement::parseAttribute): Added iOS-specific code.
471         (WebCore::HTMLVideoElement::supportsFullscreen): Ditto.
472         (WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Added; guarded by ENABLE(IOS_AIRPLAY).
473         (WebCore::HTMLVideoElement::setWebkitWirelessVideoPlaybackDisabled): Added; guarded by ENABLE(IOS_AIRPLAY).
474         * html/HTMLVideoElement.h:
475         * html/HTMLVideoElement.idl: Added ENABLE_IOS_AIRPLAY-guarded attribute: webkitWirelessVideoPlaybackDisabled.
476         * html/ImageDocument.cpp:
477         (WebCore::ImageDocument::createDocumentStructure): Added iOS-specific code.
478         (WebCore::ImageDocument::scale): Ditto.
479         (WebCore::ImageDocument::resizeImageToFit): Ditto.
480         (WebCore::ImageDocument::imageClicked): Ditto.
481         (WebCore::ImageDocument::imageFitsInWindow): Ditto.
482         (WebCore::ImageDocument::windowSizeChanged): Ditto.
483         * html/InputType.cpp:
484         (WebCore::InputType::dateType): Added; guarded by PLATFORM(IOS).
485         (WebCore::InputType::isKeyboardFocusable): Added iOS-specific code.
486         (WebCore::InputType::displayString): Added; guarded by PLATFORM(IOS).
487         * html/InputType.h:
488         * html/PluginDocument.cpp:
489         (WebCore::PluginDocumentParser::createDocumentStructure): Added iOS-specific code.
490         * html/RangeInputType.cpp:
491         (WebCore::RangeInputType::handleTouchEvent): Ditto.
492         (WebCore::RangeInputType::disabledAttributeChanged): Added; iOS-specific.
493         * html/RangeInputType.h:
494         * html/SearchInputType.cpp:
495         (WebCore::SearchInputType::addSearchResult): Opt out of code when building for iOS.
496         * html/TextFieldInputType.cpp:
497         (WebCore::TextFieldInputType::isKeyboardFocusable): Added iOS-specific code.
498         * html/TextFieldInputType.h:
499         * html/WebAutocapitalize.h: Added.
500         * html/canvas/CanvasRenderingContext2D.cpp:
501         (WebCore::CanvasRenderingContext2D::createImageData): Added iOS-specific code.
502         (WebCore::CanvasRenderingContext2D::getImageData): Ditto.
503         * html/parser/HTMLConstructionSite.h:
504         (WebCore::HTMLConstructionSite::isTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
505         * html/parser/HTMLParserScheduler.h:
506         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken): Added iOS-specific code.
507         * html/parser/HTMLTreeBuilder.cpp:
508         (WebCore::HTMLTreeBuilder::insertPhoneNumberLink): Added; guarded by PLATFORM(IOS).
509         (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers): Added; guarded by PLATFORM(IOS).
510         (WebCore::disallowTelephoneNumberParsing): Added; guarded by PLATFORM(IOS).
511         (WebCore::shouldParseTelephoneNumbersInNode): Added; guarded by PLATFORM(IOS).
512         (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): Added iOS-specific code.
513         * html/parser/HTMLTreeBuilder.h:
514         * html/shadow/MediaControlElements.cpp:
515         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Guarded member initialization of m_controls with ENABLE(VIDEO_TRACK). Also added UNUSED_PARAM(event) when building with
516         VIDEO_TRACK disabled.
517         (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Added UNUSED_PARAM(event) when
518         building with VIDEO_TRACK disabled.
519         * html/shadow/MediaControls.h:
520         * html/shadow/SliderThumbElement.cpp:
521         (WebCore::SliderThumbElement::SliderThumbElement): Added iOS-specific code.
522         (WebCore::SliderThumbElement::dragFrom): Opt out of code when building for iOS.
523         (WebCore::SliderThumbElement::willDetachRenderers):  Added iOS-specific code.
524         (WebCore::SliderThumbElement::exclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
525         (WebCore::SliderThumbElement::setExclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
526         (WebCore::SliderThumbElement::clearExclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
527         (WebCore::findTouchWithIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
528         (WebCore::SliderThumbElement::handleTouchStart): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
529         (WebCore::SliderThumbElement::handleTouchMove): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
530         (WebCore::SliderThumbElement::handleTouchEndAndCancel): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
531         (WebCore::SliderThumbElement::didAttachRenderers): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
532         (WebCore::SliderThumbElement::handleTouchEvent): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
533         (WebCore::SliderThumbElement::shouldAcceptTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
534         (WebCore::SliderThumbElement::registerForTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
535         (WebCore::SliderThumbElement::unregisterForTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
536         (WebCore::SliderThumbElement::disabledAttributeChanged): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
537         * html/shadow/SliderThumbElement.h:
538         * html/shadow/TextControlInnerElements.cpp:
539         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Opt out of code when building for iOS.
540         * html/shadow/TextControlInnerElements.h:
541         * page/Settings.in: Added setting allowMultiElementImplicitSubmission to enable/disable multi-input implicit form
542         submission (disabled by default). Also added FIXME comment to rename this setting to allowMultiElementImplicitFormSubmission
543         once we upstream the iOS changes to WebView.mm.
544
545 2013-12-17  Brady Eidson  <beidson@apple.com>
546
547         DatabaseProcess: Pipe through object store IDs and transaction mode for "openTransaction"
548         https://bugs.webkit.org/show_bug.cgi?id=125872
549
550         Reviewed by Alexey Proskuryakov.
551
552         Make these enums into enum classes.
553         Add const maximums for each enum class that might be serialized to allow for conversion later:
554         * Modules/indexeddb/IndexedDB.h:
555
556         Add cross-thread copying for these new enum classes.
557         * platform/CrossThreadCopier.cpp:
558         (WebCore::::copy):
559         * platform/CrossThreadCopier.h:
560
561         Adopt the new enum classes throughout the rest of WebCore:
562         * Modules/indexeddb/IDBCursor.cpp:
563         (WebCore::IDBCursor::continueFunction):
564         (WebCore::IDBCursor::stringToDirection):
565         (WebCore::IDBCursor::directionToString):
566         * Modules/indexeddb/IDBCursor.h:
567         * Modules/indexeddb/IDBCursorBackend.cpp:
568         (WebCore::IDBCursorBackend::deleteFunction):
569         * Modules/indexeddb/IDBCursorBackend.h:
570         (WebCore::IDBCursorBackend::value):
571         * Modules/indexeddb/IDBDatabaseBackend.cpp:
572         (WebCore::IDBDatabaseBackend::createObjectStore):
573         (WebCore::IDBDatabaseBackend::deleteObjectStore):
574         (WebCore::IDBDatabaseBackend::createIndex):
575         (WebCore::IDBDatabaseBackend::deleteIndex):
576         (WebCore::IDBDatabaseBackend::get):
577         (WebCore::IDBDatabaseBackend::put):
578         (WebCore::IDBDatabaseBackend::setIndexKeys):
579         (WebCore::IDBDatabaseBackend::openCursor):
580         (WebCore::IDBDatabaseBackend::deleteRange):
581         (WebCore::IDBDatabaseBackend::clearObjectStore):
582         (WebCore::IDBDatabaseBackend::transactionStarted):
583         (WebCore::IDBDatabaseBackend::transactionFinished):
584         (WebCore::IDBDatabaseBackend::transactionFinishedAndAbortFired):
585         (WebCore::IDBDatabaseBackend::transactionFinishedAndCompleteFired):
586         (WebCore::IDBDatabaseBackend::createTransaction):
587         (WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
588         (WebCore::IDBDatabaseBackend::deleteDatabase):
589         * Modules/indexeddb/IDBDatabaseBackend.h:
590         * Modules/indexeddb/IDBFactory.cpp:
591         (WebCore::IDBFactory::open):
592         (WebCore::IDBFactory::openInternal):
593         (WebCore::IDBFactory::deleteDatabase):
594         * Modules/indexeddb/IDBIndex.cpp:
595         (WebCore::IDBIndex::openCursor):
596         (WebCore::IDBIndex::openKeyCursor):
597         * Modules/indexeddb/IDBObjectStore.cpp:
598         (WebCore::IDBObjectStore::openCursor):
599         * Modules/indexeddb/IDBOpenDBRequest.cpp:
600         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
601         * Modules/indexeddb/IDBRequest.cpp:
602         (WebCore::IDBRequest::IDBRequest):
603         (WebCore::IDBRequest::setResultCursor):
604         (WebCore::IDBRequest::onSuccess):
605         * Modules/indexeddb/IDBTransaction.cpp:
606         (WebCore::IDBTransaction::create):
607         (WebCore::IDBTransaction::IDBTransaction):
608         (WebCore::IDBTransaction::stringToMode):
609         (WebCore::IDBTransaction::modeToString):
610         * Modules/indexeddb/IDBTransaction.h:
611         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
612         (WebCore::PutOperation::perform):
613         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
614         (WebCore::IDBTransactionCoordinator::processStartedTransactions):
615         (WebCore::IDBTransactionCoordinator::canRunTransaction):
616         * Modules/indexeddb/IDBVersionChangeEvent.h:
617         (WebCore::IDBVersionChangeEvent::create):
618         (WebCore::IDBVersionChangeEvent::newVersion):
619         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
620         (WebCore::objectStoreCursorOptions):
621         (WebCore::indexCursorOptions):
622         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
623         (WebCore::IDBServerConnectionLevelDB::get):
624         (WebCore::IDBServerConnectionLevelDB::openCursor):
625         (WebCore::IDBServerConnectionLevelDB::count):
626         (WebCore::IDBServerConnectionLevelDB::deleteRange):
627         (WebCore::IDBServerConnectionLevelDB::cursorPrefetchIteration):
628
629         * WebCore.exp.in:
630
631 2013-12-17  Gavin Barraclough  <barraclough@apple.com>
632
633         Remove PageVisibilityStateUnloaded
634         https://bugs.webkit.org/show_bug.cgi?id=125869
635
636         Reviewed by Anders Carlsson.
637
638         This is not currently supported by WebKit, remove this enum value.
639         We can always add this back later if/when we add support for this state.
640
641         * page/PageVisibilityState.cpp:
642         (WebCore::pageVisibilityStateString):
643         * page/PageVisibilityState.h:
644             - removed PageVisibilityStateUnloaded
645
646 2013-12-12  Martin Robinson  <mrobinson@igalia.com>
647
648         [GTK] [CMake] Build the plugin process against GTK+ 2
649         https://bugs.webkit.org/show_bug.cgi?id=116374
650
651         Reviewed by Gustavo Noronha Silva.
652
653         * PlatformGTK.cmake: Split off the GTK+-dependent sources into
654         libWebCorePlatformGTK and compile libWebCorePlatformGTK2 when
655         WebKit2 is enabled.
656
657 2013-12-17  Alex Christensen  <achristensen@webkit.org>
658
659         Compile fix for WebGL on Windows without GRAPHICS_SURFACE.
660         https://bugs.webkit.org/show_bug.cgi?id=125867
661
662         Reviewed by Martin Robinson.
663
664         * platform/graphics/opengl/GLPlatformSurface.cpp:
665         (WebCore::GLPlatformSurface::createOffScreenSurface):
666         Protect reference to EGLOffScreenSurface with USE(GRAPHICS_SURFACE).
667
668 2013-12-17  Radu Stavila  <stavila@adobe.com>
669
670         [CSS Regions] Positioned elements in regions get clipped if they fall outside the region
671         https://bugs.webkit.org/show_bug.cgi?id=117120
672
673         Reviewed by Mihnea Ovidenie.
674
675         Fixed the computing of the box decorations clip rect when having statically positioned
676         elements inside positioned elements. The existing algorithm computed the rect in a loop
677         running up the containing block chain and only checked for positioned elements before 
678         starting the loop. If a positioned elements was found in the middle of a loop (as would
679         be the case with a positioned element parenting a non-positioned element), it was not 
680         correctly handled.
681         Also changed it so the clip is only performed in the fragmentation direction as that was 
682         the original purpose of this method.
683
684         Tests: fast/regions/absolute-in-relative-overflow.html
685                fast/regions/static-in-relative-overflow.html
686                fast/regions/sticky-border-overflow.html
687
688         * rendering/RenderFlowThread.cpp:
689         (WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
690
691 2013-12-17  Commit Queue  <commit-queue@webkit.org>
692
693         Unreviewed, rolling out r160717.
694         http://trac.webkit.org/changeset/160717
695         https://bugs.webkit.org/show_bug.cgi?id=125863
696
697         New tests are failing, and possibly broke an existing test
698         (Requested by ap on #webkit).
699
700         * rendering/FlowThreadController.cpp:
701         (WebCore::FlowThreadController::collectFixedPositionedLayers):
702         * rendering/RenderLayer.cpp:
703         (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
704         (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
705
706 2013-12-17  Ryosuke Niwa  <rniwa@webkit.org>
707
708         Invalid dir attributes should resolve to ltr
709         https://bugs.webkit.org/show_bug.cgi?id=125830
710
711         Reviewed by Darin Adler.
712         
713         Merge https://chromium.googlesource.com/chromium/blink/+/2d592d1c998bec9438e421e1ce1ee6caba05a884
714
715         The dir attribute should resolve to direction: ltr by default when the attribute value is
716         "not in a defined state": http://www.w3.org/TR/2013/WD-html51-20130528/dom.html#the-directionality
717
718         Test: fast/dom/HTMLElement/set-and-clear-dir-attribute.html
719
720         * html/HTMLElement.cpp:
721         (WebCore::isLTROrRTLIgnoringCase): Extracted from HTMLElement::directionality.
722         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
723         (WebCore::HTMLElement::directionality):
724
725 2013-12-17  Mihnea Ovidenie  <mihnea@adobe.com>
726
727         [CSSRegions] Incorrect repaint of fixed element with transformed parent
728         https://bugs.webkit.org/show_bug.cgi?id=125756
729
730         Reviewed by Darin Adler.
731
732         When collecting the layers for fixed positioned elements with named flow
733         as a containing block, use layers collection at named flow layer level
734         instead of relying on the positioned elements collection.
735
736         Modified also FlowThreadController::collectFixedPositionedLayers function
737         to always return the layers sorted by z-index, as this operation was always
738         done at the call sites.
739
740         Tests: fast/regions/repaint/fixed-in-named-flow-cb-changed.html
741                fast/regions/repaint/fixed-in-named-flow-cb-changed2.html
742
743         * rendering/FlowThreadController.cpp:
744         (WebCore::compareZIndex):
745         (WebCore::FlowThreadController::collectFixedPositionedLayers):
746         * rendering/RenderLayer.cpp:
747         (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
748         (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
749
750 2013-12-17  Bem Jones-Bey  <bjonesbe@adobe.com>
751
752         REGRESSION(r159166?): fast/block/float/float-with-fractional-height-vertical-lr.html, fast/block/float/float-with-fractional-height.html are failing
753         https://bugs.webkit.org/show_bug.cgi?id=124506
754
755         Reviewed by Dirk Schulze.
756
757         Floor the endpoints of the floating object interval to keep the old
758         behavior until a better fix can be created.
759
760         No new tests, fixes regression in existing tests.
761
762         * rendering/FloatingObjects.cpp:
763         (WebCore::FloatingObjects::intervalForFloatingObject):
764
765 2013-12-17  Alex Christensen  <achristensen@webkit.org>
766
767         [Win] Visual Studio workaround for compiling WebGL.
768         https://bugs.webkit.org/show_bug.cgi?id=125808
769
770         Reviewed by Darin Adler.
771
772         * platform/graphics/GraphicsContext3D.cpp:
773         Don't inline outermost function to prevent Visual Studio crash.
774
775 2013-12-17  Mario Sanchez Prada  <mario.prada@samsung.com>
776
777         [ATK] Expose accessibility objects for <dl>, <dt> and <dd>
778         https://bugs.webkit.org/show_bug.cgi?id=125857
779
780         Reviewed by Chris Fleizach.
781
782         Map description lists to the newly introduced ATK roles
783         ATK_ROLE_DESCRIPTION_LIST, ATK_ROLE_DESCRIPTION_TERM and
784         ATK_ROLE_DESCRIPTION_VALUE, introduced in ATK 2.11.4.
785
786         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
787         (atkRole): Do the right mapping.
788         (webkitAccessibleGetRole): Update call to atkRole, now that it
789         receives an AccessibilityObject* as parameter.
790
791 2013-12-17  Frédéric Wang  <fred.wang@free.fr>
792
793         Ensure inferred mrows for msqrt, mstyle, merror, mphantom and math.
794         https://bugs.webkit.org/show_bug.cgi?id=124841
795
796         Reviewed by Darin Adler.
797
798         Tests: mathml/presentation/inferred-mrow-baseline.html
799                mathml/presentation/inferred-mrow-stretchy.html
800
801         * css/mathml.css: make merror, mphantom and mstyle behave like an mrow.
802         (mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle):
803         (math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle):
804         * mathml/MathMLInlineContainerElement.cpp: ditto
805         (WebCore::MathMLInlineContainerElement::createRenderer):
806         * mathml/mathtags.in: ditto
807         * rendering/mathml/RenderMathMLOperator.cpp:
808         (WebCore::RenderMathMLOperator::paint): fix failure in mathml/presentation/phantom.html now that phantom can stretch operators.
809
810 2013-12-17  Simon Pena  <simon.pena@samsung.com>
811
812         [NIX] Enable full debug builds by having ar creating thin archives
813         https://bugs.webkit.org/show_bug.cgi?id=125850
814
815         Reviewed by Csaba Osztrogonác.
816
817         By default, CMake uses ar to generate libWebCore.a with cr parameters
818         (do not warn if the library has to be created, and replace existing
819         files in the archive). That results in a very large file, and ar fails
820         with sizes over 4GB.
821
822         By using thin archives (the T option of ar), the generated
823         libWebCore.a is much smaller, and can be successfully archived. As a
824         result, we can generate a full debug build. This patch is based on Xan
825         López's webkit.org/b/110580.
826
827         * PlatformNix.cmake: Instruct cmake to invoke ar with T option.
828
829 2013-12-17  Carlos Garcia Campos  <cgarcia@igalia.com>
830
831         Unreviewed. Update GObject DOM symbols file after r160336.
832
833         * bindings/gobject/webkitdom.symbols: Add new methods exposed for
834         VideoPlaybackQuality.
835
836 2013-12-17  Mihai Maerean  <mmaerean@adobe.com>
837
838         Fix hit testing for divs with a hierarchy of css transformed and non-transformed elements
839         https://bugs.webkit.org/show_bug.cgi?id=124777
840
841         Reviewed by Darin Adler.
842
843         After bug #124647, the hit test will still behave incorrectly for transformed divs with non
844         transformed siblings that are all inside a transformed element (tested by the
845         hover-rotated-with-children-negative-z.html layout test).
846
847         The fix is to not take zOffset into account during hit-testing when child layers are in the
848         same 3D rendering context. Only when preserve3d is true, should hit-testing compute the
849         zOffset of the layers with transformations and, when two layers overlap, to return the layer
850         with the highest zOffset.
851
852         The patch includes the work of a.renevier from https://codereview.chromium.org/79943002/
853
854         Tests: transforms/3d/hit-testing/hover-rotated-with-children-negative-z.html
855                transforms/3d/hit-testing/negative-zoffset-hit-test.html
856                transforms/3d/hit-testing/overlapping-layers-hit-test.html
857
858         * rendering/RenderLayer.cpp:
859         (WebCore::computeZOffset):
860         (WebCore::RenderLayer::hitTestLayer):
861
862 2013-12-17  Carlos Garcia Campos  <cgarcia@igalia.com>
863
864         Remove a few more guards mistakenly added in r160367
865
866         Reviewed by Martin Robinson.
867
868         r160367 was too liberal in hiding APIs from the GObject DOM bindings.
869
870         * Modules/battery/NavigatorBattery.idl: Expose NavigatorBattery.
871
872 2013-12-17  Benjamin Poulain  <benjamin@webkit.org>
873
874         Add a simple register allocator to WebCore for x86_64
875         https://bugs.webkit.org/show_bug.cgi?id=125771
876
877         Reviewed by Geoffrey Garen.
878
879         Add a brain dead register allocator to simplify the use of registers
880         when writting code generators.
881
882         RegisterAllocator has two purposes:
883         -make it easy to name registers properly.
884         -make it hard to reuse a register accidentally.
885
886         A helper class LocalRegister is also defined to provide an easy
887         way to work with registers within a C++ scope. For example:
888             LocalRegister elementPointer(allocator);
889             assembler.load(address, elementPointer);
890
891         RegisterAllocator makes no attempt at optimizing register allocations, but it reduces
892         implicit dependencies by returning used register at the end of the queue, making it less
893         likely they will be reused before their last instruction is executed.
894
895         The current implementation only support unix x86_64, it only uses caller saved registers.
896
897         * WebCore.xcodeproj/project.pbxproj:
898         * cssjit/RegisterAllocator.h: Added.
899         (WebCore::RegisterAllocator::allocateRegister): Provides any available register.
900         To restrict runtime exploitation of compiler bugs, the method crashes in release
901         if the register pool is empty.
902
903         (WebCore::RegisterAllocator::reserveRegister): Reserve a particular register.
904         (WebCore::RegisterAllocator::returnRegister): Return a previously allocated or reserved register.
905
906         (WebCore::RegisterAllocator::allocatedRegisters):
907         (WebCore::LocalRegister::LocalRegister):
908         (WebCore::LocalRegister::~LocalRegister):
909         (WebCore::LocalRegister::operator JSC::MacroAssembler::RegisterID):
910         (WebCore::RegisterAllocator::RegisterAllocator):
911
912 2013-12-16  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
913
914         Checking RTCPeerConnection signalingState before setting local/remoteDescription
915         https://bugs.webkit.org/show_bug.cgi?id=125655
916
917         Reviewed by Eric Carlson.
918
919         Before setting a session description RTCPeerConnection must check if it is in valid state for that SDP type.
920
921         New tests: fast/mediastream/RTCPeerConnection-have-local-answer.html
922                fast/mediastream/RTCPeerConnection-have-local-offer.html
923                fast/mediastream/RTCPeerConnection-have-local-pranswer.html
924                fast/mediastream/RTCPeerConnection-have-remote-offer.html
925                fast/mediastream/RTCPeerConnection-have-remote-pranswer.html
926                fast/mediastream/RTCPeerConnection-stable.html
927
928         Modified: fast/mediastream/RTCPeerConnection-remoteDescription.html
929
930         * Modules/mediastream/RTCPeerConnection.cpp:
931         (WebCore::RTCPeerConnection::checkStateForLocalDescription): Checks if the current state of RTCPeerConnection is
932         valid for the local SDP that is being set.
933         (WebCore::RTCPeerConnection::checkStateForRemoteDescription): Checks if the current state of RTCPeerConnection
934         is valid for the remote SDP that is being set.
935         (WebCore::RTCPeerConnection::setLocalDescription): Now calls checkStateForLocalDescription prior to set the
936         local SDP.
937         (WebCore::RTCPeerConnection::setRemoteDescription): Now Calls checkStateForRemoteDescription prior to set the
938         remote SDP.
939         * Modules/mediastream/RTCPeerConnection.h:
940         * platform/mock/RTCNotifiersMock.cpp: Adding new class to notify RTCPeerConnection about a signaling state
941         change: SignalingStateNotifier.
942         (WebCore::SignalingStateNotifier::SignalingStateNotifier):
943         (WebCore::SignalingStateNotifier::fire):
944         * platform/mock/RTCNotifiersMock.h:
945         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
946         (WebCore::RTCPeerConnectionHandlerMock::signalingStateFromSDP): Defines the new state that RTCPeerConnection
947         should be, according the SDP that is being set.
948         (WebCore::RTCPeerConnectionHandlerMock::setLocalDescription): Calls signalingStateFromSDP, in order to get the
949         new signaling state and notify RTCPeerConnection object.
950         (WebCore::RTCPeerConnectionHandlerMock::setRemoteDescription): Ditto.
951         * platform/mock/RTCPeerConnectionHandlerMock.h:
952
953 2013-12-16  Tim Horton  <timothy_horton@apple.com>
954
955         Revert a mysterious and inexplicable part of http://trac.webkit.org/changeset/160685
956
957         * platform/KeyedCoding.h:
958         (WebCore::KeyedEncoder::encodeEnum):
959         (WebCore::KeyedEncoder::encodeObject):
960         (WebCore::KeyedEncoder::encodeConditionalObject):
961         (WebCore::KeyedEncoder::encodeObjects):
962
963 2013-12-16  Anders Carlsson  <andersca@apple.com>
964
965         Remove EnumClass.h from WTF
966         https://bugs.webkit.org/show_bug.cgi?id=125820
967
968         Reviewed by Darin Adler.
969
970         Replace uses of ENUM_CLASS with real enum class declarations.
971
972         * Modules/webdatabase/DatabaseBasicTypes.h:
973         * Modules/webdatabase/DatabaseError.h:
974         * Modules/webdatabase/SQLTransactionState.h:
975         * bindings/js/JSSubtleCryptoCustom.cpp:
976         * bindings/js/SerializedScriptValue.cpp:
977         * crypto/CryptoAlgorithmIdentifier.h:
978         * crypto/CryptoAlgorithmParameters.h:
979         * crypto/CryptoKey.h:
980         * crypto/CryptoKeyData.h:
981         * crypto/CryptoKeyType.h:
982         * crypto/keys/CryptoKeyDataRSAComponents.h:
983         * inspector/InspectorTimelineAgent.h:
984
985 2013-12-16  Tim Horton  <timothy_horton@apple.com>
986
987         WebKit2 View Gestures: Pinching beyond the extremes doesn't animate back to the min/max
988         https://bugs.webkit.org/show_bug.cgi?id=125750
989
990         Reviewed by Simon Fraser.
991
992         * WebCore.exp.in:
993         Export a few things so WebKit2 can use them.
994
995 2013-12-16  Joseph Pecoraro  <pecoraro@apple.com>
996
997         Fix some whitespace issues in inspector code
998         https://bugs.webkit.org/show_bug.cgi?id=125814
999
1000         Reviewed by Darin Adler.
1001
1002         * inspector/protocol/DOM.json:
1003         * inspector/protocol/DOMStorage.json:
1004         * inspector/protocol/Timeline.json:
1005
1006 2013-12-16  Joseph Pecoraro  <pecoraro@apple.com>
1007
1008         Web Inspector: Use JSC::SourceID and JSC::BreakpointID instead of WebCore dups
1009         https://bugs.webkit.org/show_bug.cgi?id=125818
1010
1011         Reviewed by Mark Lam.
1012
1013         Remove the WebCore typedefs of JSC types. Prefer JSC namespace
1014         prefixed types throughout WebCore's Inspector code.
1015
1016         * GNUmakefile.list.am:
1017         * WebCore.vcxproj/WebCore.vcxproj:
1018         * WebCore.vcxproj/WebCore.vcxproj.filters:
1019         * WebCore.xcodeproj/project.pbxproj:
1020         * bindings/js/BreakpointID.h: Removed.
1021         * bindings/js/ScriptDebugServer.cpp:
1022         (WebCore::ScriptDebugServer::setBreakpoint):
1023         (WebCore::ScriptDebugServer::removeBreakpoint):
1024         (WebCore::ScriptDebugServer::dispatchDidParseSource):
1025         * bindings/js/ScriptDebugServer.h:
1026         * bindings/js/SourceID.h: Removed.
1027         * inspector/InspectorDebuggerAgent.cpp:
1028         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
1029         (WebCore::parseLocation):
1030         (WebCore::InspectorDebuggerAgent::setBreakpoint):
1031         (WebCore::InspectorDebuggerAgent::continueToLocation):
1032         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
1033         (WebCore::InspectorDebuggerAgent::searchInContent):
1034         (WebCore::InspectorDebuggerAgent::getScriptSource):
1035         (WebCore::InspectorDebuggerAgent::didParseSource):
1036         (WebCore::InspectorDebuggerAgent::didPause):
1037         (WebCore::InspectorDebuggerAgent::clear):
1038         * inspector/InspectorDebuggerAgent.h:
1039         * inspector/ScriptDebugListener.h:
1040
1041 2013-12-16  Daniel Bates  <dabates@apple.com>
1042
1043         [iOS] Upstream WebCore/dom changes
1044         https://bugs.webkit.org/show_bug.cgi?id=125646
1045
1046         Reviewed by David Kilzer.
1047
1048         * WebCore.exp.in: Added symbol __ZN7WebCore8Settings17setLayoutIntervalEi and removed symbol
1049         __ZN7WebCore24cLayoutScheduleThresholdE.
1050         * dom/ActiveDOMObject.h: Add suspension reason DocumentWillBePaused.
1051         * dom/DOMImplementation.cpp:
1052         (WebCore::DOMImplementation::createDocument): Opt-out of ENABLE(VIDEO) logic when
1053         building for iOS.
1054         * dom/DeviceMotionClient.h: Made class non-copyable.
1055         (WebCore::DeviceMotionClient::DeviceMotionClient): Added;
1056         * dom/DeviceMotionController.cpp: Added FIXME comment to reconcile iOS and OpenSource differences.
1057         (WebCore::DeviceMotionController::suspendUpdates): Added; guarded by PLATFORM(IOS).
1058         (WebCore::DeviceMotionController::resumeUpdates): Added; guarded by PLATFORM(IOS).
1059         * dom/DeviceMotionController.h: Added FIXME comment to reconcile iOS and OpenSource differences.
1060         * dom/DeviceOrientationClient.h: Made class non-copyable.
1061         (WebCore::DeviceOrientationClient::DeviceOrientationClient): Added.
1062         * dom/DeviceOrientationController.cpp: Added FIXME comment to reconcile iOS and OpenSource differences.
1063         (WebCore::DeviceOrientationController::DeviceOrientationController):
1064         (WebCore::DeviceOrientationController::suspendUpdates): Added; guarded by PLATFORM(IOS).
1065         (WebCore::DeviceOrientationController::resumeUpdates): Added; guarded by PLATFORM(IOS).
1066         * dom/DeviceOrientationController.h: Added FIXME comment to reconcile iOS and OpenSource differences.
1067         * dom/DeviceOrientationData.cpp:
1068         (WebCore::DeviceOrientationData::create): Added; iOS-specific. Added FIXME comment.
1069         (WebCore::DeviceOrientationData::DeviceOrientationData): Added iOS-specific code.
1070         (WebCore::DeviceOrientationData::compassHeading): Added; guarded by PLATFORM(IOS).
1071         (WebCore::DeviceOrientationData::compassAccuracy): Added; guarded by PLATFORM(IOS).
1072         (WebCore::DeviceOrientationData::canProvideCompassHeading): Added; guarded by PLATFORM(IOS).
1073         (WebCore::DeviceOrientationData::canProvideCompassAccuracy): Added; guarded by PLATFORM(IOS).
1074         * dom/DeviceOrientationData.h:
1075         * dom/DeviceOrientationEvent.idl: Added iOS-specific code.
1076         * dom/Document.cpp: Moved constant cLayoutScheduleThreshold to Settings.cpp and renamed it
1077         layoutScheduleThreshold towards allowing a port to configure the layout interval.
1078         (WebCore::Document::Document): Added optional argument isSynthesized, defaults false.
1079         (WebCore::Document::~Document): Added iOS-specific code to destroy the device motion
1080         and device orientation controllers.
1081         (WebCore::Document::didBecomeCurrentDocumentInFrame): Added iOS-specific code with FIXME comment.
1082         (WebCore::Document::prepareForDestruction): Added iOS-specific touch event code.
1083         (WebCore::Document::removeAllEventListeners): Ditto.
1084         (WebCore::Document::platformSuspendOrStopActiveDOMObjects): Added; compiles to an empty function on
1085         non-iOS port.
1086         (WebCore::Document::suspendActiveDOMObjects): Modified to call platformSuspendOrStopActiveDOMObjects().
1087         (WebCore::Document::resumeActiveDOMObjects): Ditto.
1088         (WebCore::Document::stopActiveDOMObjects): Added.
1089         (WebCore::Document::implicitClose): Modified to query Settings::layoutInterval().
1090         (WebCore::Document::minimumLayoutDelay): Ditto.
1091         (WebCore::Document::processViewport): Added iOS-specific code.
1092         (WebCore::Document::updateViewportArguments): Ditto.
1093         (WebCore::setParserFeature): Added; guarded by PLATFORM(IOS).
1094         (WebCore::Document::processFormatDetection): Added; guarded by PLATFORM(IOS).
1095         (WebCore::Document::processWebAppOrientations): Added; guarded by PLATFORM(IOS).
1096         (WebCore::Document::isTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
1097         (WebCore::Document::setIsTelephoneNumberParsingAllowed): Added; guarded by PLATFORM(IOS).
1098         (WebCore::Document::isTelephoneNumberParsingAllowed): Added; guarded by PLATFORM(IOS).
1099         (WebCore::Document::initSecurityContext): Added iOS-specific code.
1100         (WebCore::Document::suspendScheduledTasks): Added; guarded by PLATFORM(IOS).
1101         (WebCore::Document::deviceMotionController): Added; iOS-specific.
1102         (WebCore::Document::deviceOrientationController): Added; iOS-specific.
1103         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): Added iOS-specific code.
1104         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Added iOS-specific code.
1105         * dom/Document.h: Register gesture events gesture{change, end, start}; guarded by ENABLE(IOS_GESTURE_EVENTS).
1106         (WebCore::Document::isSynthesized): Added.
1107         (WebCore::Document::platformSuspendOrStopActiveDOMObjects): Added.
1108         * dom/Document.idl:
1109         * dom/DocumentMarker.h: Added iOS-specific changes. We should look to reconcile the differences between
1110         iOS and OpenSource. See <rdar://problem/11306422>.
1111         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
1112         (WebCore::DocumentMarker::DocumentMarker): Added; iOS-specific.
1113         (WebCore::DocumentMarker::alternatives): Added; iOS-specific.
1114         (WebCore::DocumentMarker::setAlternative): Added; iOS-specific.
1115         (WebCore::DocumentMarker::metadata): Added; iOS-specific.
1116         (WebCore::DocumentMarker::setMetadata): Added; iOS-specific.
1117         * dom/DocumentMarkerController.cpp:
1118         (WebCore::DocumentMarkerController::addMarker):
1119         (WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):
1120         (WebCore::DocumentMarkerController::addDictationResultMarker):
1121         (WebCore::DocumentMarkerController::shiftMarkers):
1122         * dom/DocumentMarkerController.h:
1123         * dom/Element.cpp:
1124         (WebCore::Element::focus): Add iOS-specific workaround for <rdar://problem/6699741>.
1125         * dom/Element.h: Register gesture events gesture{change, end, start}; guarded by ENABLE(IOS_GESTURE_EVENTS).
1126         * dom/EventContext.cpp: Opt-out of ENABLE(TOUCH_EVENTS)-guarded code when building the iOS port.
1127         * dom/EventContext.h: Ditto.
1128         * dom/EventDispatcher.cpp:
1129         (WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Ditto.
1130         (WebCore::EventDispatcher::dispatchEvent): Ditto.
1131         (WebCore::EventPath::EventPath): Ditto.
1132         * dom/EventNames.h: Added events webkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}
1133         and gesture{change, end, start}.
1134         * dom/EventNames.in: Added event names GestureEvent and WebKitPlaybackTargetAvailabilityEvent conditioned on
1135         the macro defines ENABLE_IOS_GESTURE_EVENTS and ENABLE_IOS_AIRPLAY.
1136         * dom/MouseRelatedEvent.cpp:
1137         (WebCore::contentsScrollOffset): Added iOS-specific code.
1138         (WebCore::MouseRelatedEvent::MouseRelatedEvent): Ditto.
1139         * dom/Node.cpp:
1140         (WebCore::Node::willBeDeletedFrom): Ditto.
1141         (WebCore::Node::isDescendantOf): Fixed style issue in function prototype; moved '*' to the left side.
1142         (WebCore::Node::isDescendantOrShadowDescendantOf): Added.
1143         (WebCore::tryAddEventListener): Added iOS-specific code; also added FIXME comment.
1144         (WebCore::tryRemoveEventListener): Ditto.
1145         (WebCore::Node::dispatchEvent): Opt-out of ENABLE(TOUCH_EVENTS)-guarded code when building the iOS port.
1146         (WebCore::Node::defaultEventHandler): Added iOS-specific code.
1147         (WebCore::Node::willRespondToMouseMoveEvents): Added iOS-specific code; also added FIXME comment.
1148         (WebCore::Node::willRespondToMouseClickEvents): Added iOS-specific code; also added FIXME comment.
1149         (WebCore::Node::willRespondToMouseWheelEvents): Added.
1150         * dom/Node.h:
1151         * dom/Position.h:
1152         (WebCore::operator<): Added.
1153         (WebCore::operator>): Added.
1154         (WebCore::operator>=): Added.
1155         (WebCore::operator<=): Added.
1156         * dom/Range.cpp:
1157         (WebCore::Range::create): Added iOS-specific code; also added FIXME comment.
1158         (WebCore::intervalsSufficientlyOverlap): Added; guarded by PLATFORM(IOS).
1159         (WebCore::printRects): Added; guarded by PLATFORM(IOS).
1160         (WebCore::adjustLineHeightOfSelectionRects): Added; guarded by PLATFORM(IOS).
1161         (WebCore::coalesceSelectionRects): Added; guarded by PLATFORM(IOS).
1162         (WebCore::Range::collectSelectionRects): Added; guarded by PLATFORM(IOS).
1163         * dom/Range.h:
1164         * dom/ScriptExecutionContext.cpp:
1165         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Added iOS-specific code.
1166         (WebCore::ScriptExecutionContext::dispatchErrorEvent): Ditto.
1167         * dom/TreeScope.cpp:
1168         (WebCore::nodeFromPoint): Ditto.
1169         * dom/ViewportArguments.cpp:
1170         (WebCore::computeViewportAttributes): Ditto.
1171         (WebCore::setViewportFeature): Added iOS-specific code.
1172         (WebCore::finalizeViewportArguments): Added; iOS-specific.
1173         * dom/ViewportArguments.h:
1174         * dom/make_names.pl: Added support to find the path to gcc with respect to the environment
1175         variable SDKROOT.
1176         * html/HTMLMediaElement.cpp:
1177         (HTMLMediaElement::suspend):
1178         * page/Settings.cpp:
1179         (WebCore::Settings::Settings): Initialize setting m_layoutInterval to layoutScheduleThreshold.
1180         (WebCore::Settings::setLayoutInterval): Added.
1181         * page/Settings.h:
1182         (WebCore::Settings::layoutInterval): Added.
1183
1184 2013-12-16  Simon Fraser  <simon.fraser@apple.com>
1185
1186         Attempt to fix the Windows build after r160672.
1187         
1188         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1189         (PlatformCALayerWin::PlatformCALayerWin):
1190         * platform/graphics/ca/win/PlatformCALayerWin.h:
1191
1192 2013-12-16  Simon Fraser  <simon.fraser@apple.com>
1193
1194         Apply overhang shadow and linen to UI-side layers
1195         https://bugs.webkit.org/show_bug.cgi?id=125807
1196
1197         Reviewed by Tim Horton.
1198         
1199         With UI-side compositing, we need to apply the overhang shadow and linen
1200         background to layers in the UI process. Achieve this by setting a "custom
1201         appearance" flag on layers that need a shadow or linen background, and
1202         migrating this flag to the UI process. Static functions on ScrollbarThemeMac
1203         are exposed to do the actual setting.
1204
1205         * WebCore.exp.in: Export ScrollbarThemeMac and GraphicsLayerCA functions.
1206         * WebCore.xcodeproj/project.pbxproj: ScrollbarThemeMac.h and ScrollbarThemeComposite.h
1207         need to be Private.
1208         * platform/graphics/GraphicsLayer.cpp: Initialize m_customAppearance.
1209         (WebCore::GraphicsLayer::GraphicsLayer):
1210         * platform/graphics/GraphicsLayer.h: Getter/setter for CustomAppearance.
1211         (WebCore::GraphicsLayer::setCustomAppearance):
1212         (WebCore::GraphicsLayer::customAppearance):
1213         * platform/graphics/ca/GraphicsLayerCA.cpp: Update CustomAppearanceChanged as
1214         we do other properties.
1215         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
1216         (WebCore::GraphicsLayerCA::updateCustomAppearance):
1217         (WebCore::GraphicsLayerCA::setCustomAppearance):
1218         * platform/graphics/ca/GraphicsLayerCA.h:
1219         * platform/graphics/ca/PlatformCALayer.h:
1220         * platform/graphics/ca/mac/PlatformCALayerMac.h:
1221         * platform/graphics/ca/mac/PlatformCALayerMac.mm: When we have a custom
1222         appearance, use ScrollbarThemeMac functions to update the layer. Ensure
1223         that if the bounds change, we update the shadow (whose path depends on the bounds).
1224         (PlatformCALayerMac::PlatformCALayerMac):
1225         (PlatformCALayerMac::clone):
1226         (PlatformCALayerMac::setBounds):
1227         (PlatformCALayerMac::requiresCustomAppearanceUpdateOnBoundsChange):
1228         (PlatformCALayerMac::updateCustomAppearance):
1229         * platform/mac/ScrollbarThemeMac.h: Export some static functions.
1230         * platform/mac/ScrollbarThemeMac.mm: Change code to use static functions.
1231         (WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):
1232         (WebCore::ScrollbarThemeMac::removeOverhangAreaBackground):
1233         (WebCore::ScrollbarThemeMac::setUpOverhangAreaShadow):
1234         (WebCore::ScrollbarThemeMac::removeOverhangAreaShadow):
1235         (WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
1236         (WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
1237         * rendering/RenderLayerCompositor.cpp:
1238         (WebCore::RenderLayerCompositor::updateRootLayerPosition): No need to call
1239         setUpContentShadowLayer() now when size changes; PlatformCALayer takes
1240         care of that.
1241         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): Now set
1242         custom appearance via GraphicsLayer.
1243
1244 2013-12-16  Brent Fulgham  <bfulgham@apple.com>
1245
1246         [Win] Remove dead code after converstion to VS2013
1247         https://bugs.webkit.org/show_bug.cgi?id=125795
1248
1249         Reviewed by Darin Adler.
1250
1251         * WebCorePrefix.h: Remove VS2012 include kludge.
1252         * loader/FTPDirectoryParser.cpp: Remove gmtime workaround code.
1253         * page/DOMWindow.cpp: Remove older pointer-based open implementation.
1254         * page/DOMWindow.h: Ditto
1255         * platform/text/TextEncodingRegistry.cpp:
1256         (WebCore::TextEncodingNameHash::equal): Remove optimization bug workaround
1257         * testing/Internals.cpp:
1258         (WebCore::Internals::openDummyInspectorFrontend): Remove compiler workaround
1259
1260 2013-12-16  Daniel Bates  <dabates@apple.com>
1261
1262         [iOS] Upstream WebCore/history changes
1263         https://bugs.webkit.org/show_bug.cgi?id=125769
1264
1265         Reviewed by Darin Adler.
1266
1267         * history/BackForwardClient.h:
1268         * history/BackForwardList.cpp:
1269         (WebCore::BackForwardList::current): Added; guard by PLATFORM(IOS). Also added FIXME comment.
1270         (WebCore::BackForwardList::setCurrent): Added; guard by PLATFORM(IOS). Also added FIXME comment.
1271         (WebCore::BackForwardList::clearAllPageCaches): Added; guarded by PLATFORM(IOS).
1272         * history/BackForwardList.h:
1273         * history/CachedFrame.cpp:
1274         (WebCore::CachedFrameBase::restore): Added iOS-specific code.
1275         (WebCore::CachedFrame::CachedFrame): Ditto.
1276         * history/CachedPage.cpp:
1277         (WebCore::CachedPage::restore): Ditto.
1278         * history/HistoryItem.cpp:
1279         (WebCore::HistoryItem::HistoryItem): Ditto.
1280         * history/HistoryItem.h:
1281         (WebCore::HistoryItem::scale): Added; guarded by PLATFORM(IOS).
1282         (WebCore::HistoryItem::scaleIsInitial): Added; guarded by PLATFORM(IOS).
1283         (WebCore::HistoryItem::setScale): Added; guarded by PLATFORM(IOS).
1284         (WebCore::HistoryItem::viewportArguments): Added; guarded by PLATFORM(IOS).
1285         (WebCore::HistoryItem::setViewportArguments): Added; guarded by PLATFORM(IOS).
1286         (WebCore::HistoryItem::bookmarkID): Added; guarded by PLATFORM(IOS).
1287         (WebCore::HistoryItem::setBookmarkID): Added; guarded by PLATFORM(IOS).
1288         (WebCore::HistoryItem::sharedLinkUniqueIdentifier): Added; guarded by PLATFORM(IOS).
1289         (WebCore::HistoryItem::setSharedLinkUniqueIdentifier): Added; guarded by PLATFORM(IOS).
1290         * history/PageCache.cpp:
1291         (WebCore::logCanCacheFrameDecision): Added iOS-specific code.
1292         (WebCore::logCanCachePageDecision): Ditto.
1293         (WebCore::PageCache::canCachePageContainingThisFrame): Ditto.
1294         (WebCore::PageCache::canCache): Ditto.
1295         (WebCore::PageCache::pruneToCapacityNow): Added.
1296         * history/PageCache.h:
1297
1298 2013-12-16  Daniel Bates  <dabates@apple.com>
1299
1300         [iOS] Upstream WebCore/svg changes
1301         https://bugs.webkit.org/show_bug.cgi?id=125784
1302
1303         Reviewed by Darin Adler.
1304
1305         * svg/SVGAElement.cpp:
1306         (WebCore::SVGAElement::willRespondToMouseClickEvents): Added.
1307         * svg/SVGAElement.h:
1308         * svg/SVGElement.cpp:
1309         (WebCore::SVGElement::parseAttribute): Added attribute listeners for touch{cancel, end, move, start},
1310         and gesture{change, end, start}.
1311
1312 2013-12-13  Jeffrey Pfau  <jpfau@apple.com>
1313
1314         [Mac] Cache partitioning asserts when associated NSURLRequest is nil
1315         https://bugs.webkit.org/show_bug.cgi?id=125716
1316
1317         Reviewed by Darin Adler.
1318
1319         * platform/network/mac/ResourceRequestMac.mm:
1320         (WebCore::ResourceRequest::doUpdateResourceRequest):
1321
1322 2013-12-16  Brady Eidson  <beidson@apple.com>
1323
1324         DatabaseProcess: Fix a few bugs with opening an IDB connection
1325         https://bugs.webkit.org/show_bug.cgi?id=125798
1326
1327         Reviewed by Alexey Proskuryakov.
1328
1329         * Modules/indexeddb/IDBDatabaseBackend.cpp:
1330         (WebCore::IDBDatabaseBackend::processPendingCalls): As the comment says, we should only
1331           early return when there *are* pending delete calls. The logic here was backwards,
1332           preventing the backend from ever getting to processPendingOpenCalls().
1333
1334 2013-12-16  Alex Christensen  <achristensen@webkit.org>
1335
1336         Fixed Win64 build on VS2013.
1337         https://bugs.webkit.org/show_bug.cgi?id=125753
1338
1339         Reviewed by Brent Fulgham.
1340
1341         * WebCore.vcxproj/WebCore.vcxproj:
1342         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
1343         Added correct PlatformToolset for 64-bit builds.
1344
1345 2013-12-16  Simon Fraser  <simon.fraser@apple.com>
1346
1347         Package up some data about scrollability into a struct for use in the scrolling tree
1348         https://bugs.webkit.org/show_bug.cgi?id=125792
1349
1350         Reviewed by Beth Dakin.
1351
1352         Both scrolling state nodes and scrolling nodes share a set of parameters
1353         relating to scrollability and rubberbanding, so package them into a struct
1354         for re-use. Send the struct wholesale to the scrolling thread.
1355
1356         * page/scrolling/ScrollingCoordinator.h:
1357         (WebCore::ScrollableAreaParameters::ScrollableAreaParameters): New struct.
1358         (WebCore::ScrollableAreaParameters::operator==):
1359         * page/scrolling/ScrollingStateScrollingNode.cpp:
1360         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): Reordering.
1361         (WebCore::ScrollingStateScrollingNode::setScrollOrigin): Moved.
1362         (WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters): Set the parameters all at once.
1363         (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
1364         * page/scrolling/ScrollingStateScrollingNode.h: Getters access the struct. Reorder member variables.
1365         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1366         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
1367         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
1368         * page/scrolling/ScrollingTreeScrollingNode.h:
1369         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
1370         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
1371         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
1372         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
1373         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
1374         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
1375         * page/scrolling/mac/ScrollingCoordinatorMac.h:
1376         * page/scrolling/mac/ScrollingCoordinatorMac.mm: Removed setScrollParametersForNode().
1377         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated): Set the params in this
1378         function. Reordering.
1379
1380 2013-12-16  Sam Weinig  <sam@webkit.org>
1381
1382         CTTE: Convert more of SVG to use references
1383         https://bugs.webkit.org/show_bug.cgi?id=125762
1384
1385         Reviewed by Darin Adler.
1386
1387         * rendering/svg/RenderSVGImage.cpp:
1388         (WebCore::RenderSVGImage::imageChanged):
1389         * rendering/svg/RenderSVGResource.cpp:
1390         (WebCore::removeFromCacheAndInvalidateDependencies):
1391         (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
1392         * rendering/svg/RenderSVGResource.h:
1393         * rendering/svg/RenderSVGResourceClipper.cpp:
1394         (WebCore::RenderSVGResourceClipper::removeClientFromCache):
1395         * rendering/svg/RenderSVGResourceClipper.h:
1396         * rendering/svg/RenderSVGResourceContainer.cpp:
1397         (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
1398         (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
1399         (WebCore::RenderSVGResourceContainer::markClientForInvalidation):
1400         (WebCore::RenderSVGResourceContainer::removeClient):
1401         * rendering/svg/RenderSVGResourceContainer.h:
1402         * rendering/svg/RenderSVGResourceFilter.cpp:
1403         (WebCore::RenderSVGResourceFilter::removeClientFromCache):
1404         (WebCore::RenderSVGResourceFilter::postApplyResource):
1405         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
1406         * rendering/svg/RenderSVGResourceFilter.h:
1407         * rendering/svg/RenderSVGResourceGradient.cpp:
1408         (WebCore::RenderSVGResourceGradient::removeClientFromCache):
1409         * rendering/svg/RenderSVGResourceGradient.h:
1410         * rendering/svg/RenderSVGResourceMarker.cpp:
1411         (WebCore::RenderSVGResourceMarker::removeClientFromCache):
1412         * rendering/svg/RenderSVGResourceMarker.h:
1413         * rendering/svg/RenderSVGResourceMasker.cpp:
1414         (WebCore::RenderSVGResourceMasker::removeClientFromCache):
1415         * rendering/svg/RenderSVGResourceMasker.h:
1416         * rendering/svg/RenderSVGResourcePattern.cpp:
1417         (WebCore::RenderSVGResourcePattern::removeClientFromCache):
1418         * rendering/svg/RenderSVGResourcePattern.h:
1419         * rendering/svg/RenderSVGResourceSolidColor.h:
1420         (WebCore::RenderSVGResourceSolidColor::removeClientFromCache):
1421         * rendering/svg/SVGRenderSupport.cpp:
1422         (WebCore::invalidateResourcesOfChildren):
1423         * rendering/svg/SVGResources.cpp:
1424         (WebCore::SVGResources::removeClientFromCache):
1425         * rendering/svg/SVGResources.h:
1426         * rendering/svg/SVGResourcesCache.cpp:
1427         (WebCore::SVGResourcesCache::clientLayoutChanged):
1428         (WebCore::SVGResourcesCache::clientStyleChanged):
1429         (WebCore::SVGResourcesCache::clientWasAddedToTree):
1430         (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
1431         (WebCore::SVGResourcesCache::clientDestroyed):
1432         * svg/SVGAnimateMotionElement.cpp:
1433         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
1434         * svg/SVGCircleElement.cpp:
1435         (WebCore::SVGCircleElement::svgAttributeChanged):
1436         * svg/SVGEllipseElement.cpp:
1437         (WebCore::SVGEllipseElement::svgAttributeChanged):
1438         * svg/SVGFEImageElement.cpp:
1439         (WebCore::SVGFEImageElement::notifyFinished):
1440         * svg/SVGFELightElement.cpp:
1441         (WebCore::SVGFELightElement::childrenChanged):
1442         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1443         (WebCore::invalidateFilterPrimitiveParent):
1444         * svg/SVGFilterPrimitiveStandardAttributes.h:
1445         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
1446         (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged):
1447         * svg/SVGForeignObjectElement.cpp:
1448         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
1449         * svg/SVGGElement.cpp:
1450         (WebCore::SVGGElement::svgAttributeChanged):
1451         * svg/SVGGraphicsElement.cpp:
1452         (WebCore::SVGGraphicsElement::svgAttributeChanged):
1453         * svg/SVGImageElement.cpp:
1454         (WebCore::SVGImageElement::svgAttributeChanged):
1455         * svg/SVGLineElement.cpp:
1456         (WebCore::SVGLineElement::svgAttributeChanged):
1457         * svg/SVGPathElement.cpp:
1458         (WebCore::SVGPathElement::svgAttributeChanged):
1459         (WebCore::SVGPathElement::invalidateMPathDependencies):
1460         (WebCore::SVGPathElement::pathSegListChanged):
1461         * svg/SVGPolyElement.cpp:
1462         (WebCore::SVGPolyElement::svgAttributeChanged):
1463         * svg/SVGRectElement.cpp:
1464         (WebCore::SVGRectElement::svgAttributeChanged):
1465         * svg/SVGSVGElement.cpp:
1466         (WebCore::SVGSVGElement::svgAttributeChanged):
1467         (WebCore::SVGSVGElement::setupInitialView):
1468         * svg/SVGStopElement.cpp:
1469         (WebCore::SVGStopElement::svgAttributeChanged):
1470         * svg/SVGTRefElement.cpp:
1471         (WebCore::SVGTRefElement::svgAttributeChanged):
1472         * svg/SVGTextContentElement.cpp:
1473         (WebCore::SVGTextContentElement::svgAttributeChanged):
1474         * svg/SVGTextPathElement.cpp:
1475         (WebCore::SVGTextPathElement::svgAttributeChanged):
1476         * svg/SVGTextPositioningElement.cpp:
1477         (WebCore::SVGTextPositioningElement::svgAttributeChanged):
1478         * svg/SVGUseElement.cpp:
1479         (WebCore::SVGUseElement::svgAttributeChanged):
1480
1481 2013-12-16  Hans Muller  <hmuller@adobe.com>
1482
1483         [CSS Shapes] Add support for the computing the included intervals for a BoxShape
1484         https://bugs.webkit.org/show_bug.cgi?id=124605
1485
1486         Reviewed by Andreas Kling.
1487
1488         Setting shape-inside to content-box now works.
1489
1490         Changed FloatRoundedRect::xInterceptsAtY() to include the bottom edge of
1491         the rectangle and to check for the special cases where any or all of the
1492         corner radii are empty.
1493
1494         Test: fast/shapes/shape-inside/shape-inside-content-box.html
1495
1496         * platform/graphics/FloatRoundedRect.cpp:
1497         (WebCore::FloatRoundedRect::xInterceptsAtY):
1498         * rendering/shapes/BoxShape.cpp:
1499         (WebCore::BoxShape::getIncludedIntervals): Replaced the stub implementation with logic that's similar to getExcludedIntervals().
1500         * rendering/shapes/ShapeInfo.cpp:
1501         (WebCore::::computedShape): Removed a meaningless assert.
1502         * rendering/shapes/ShapeInsideInfo.cpp:
1503         (WebCore::ShapeInsideInfo::isEnabledFor):
1504
1505 2013-12-16  Mario Sanchez Prada  <mario.prada@samsung.com>
1506
1507         [ATK] Expose accessibility objects for more WAI-ARIA roles
1508         https://bugs.webkit.org/show_bug.cgi?id=125596
1509
1510         Reviewed by Chris Fleizach.
1511
1512         Exposed accessibility objects with the proper AtkRoles, some of
1513         them to be provided by the next stable release of ATK.
1514
1515         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1516         (atkRole):
1517
1518 2013-12-16  Eric Carlson  <eric.carlson@apple.com>
1519
1520         Fix QuickTime plug-in replacement scripting bugs
1521         https://bugs.webkit.org/show_bug.cgi?id=125717
1522
1523         Reviewed by Sam Weinig.
1524
1525         No new tests, existing test updated.
1526
1527         * Modules/plugins/QuickTimePluginReplacement.js:
1528         (Replacement): Change '' to "" to avoid "Empty character constant" warning when creating
1529             Derived Sources.
1530         (Replacement.prototype.createVideoElement): Handle qtsrc attribute. Remember base url.
1531         (Replacement.prototype.setURL): Resolve urls relative to base.
1532
1533 2013-12-15  Darin Adler  <darin@apple.com>
1534
1535         Catch callers who forget to use initializeStyle
1536         https://bugs.webkit.org/show_bug.cgi?id=125763
1537
1538         Reviewed by Andreas Kling.
1539
1540         A recent fix was because a caller used setStyle first rather than using
1541         initializeStyle. This patch adds an assertion to catch cases where we do
1542         that so we see the mistake right away instead of indirectly later.
1543
1544         * rendering/RenderElement.cpp:
1545         (WebCore::RenderElement::initializeStyle): Simplified an assertion.
1546         (WebCore::RenderElement::setStyle): Added an assertion that m_hasInitializedStyle
1547         is true, with an exception for RenderView, which needs to be created before we
1548         have the correct style computed for it (at least for now). Also broke out an
1549         assertion that was using &&, since we would prefer to know which clause failed,
1550         making separate assertions more useful than a combined assertion.
1551
1552 2013-12-16  Mario Sanchez Prada  <mario.prada@samsung.com>
1553
1554         [ATK] Expose accessibility objects with ATK_ROLE_CHECK_MENU_ITEM
1555         https://bugs.webkit.org/show_bug.cgi?id=125594
1556
1557         Reviewed by Chris Fleizach.
1558
1559         Exposed accessibility objects with checkmenuitem role with the
1560         proper AtkRole, to be provided by the next stable release of ATK.
1561
1562         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1563         (atkRole):
1564
1565 2013-12-16  Mario Sanchez Prada  <mario.prada@samsung.com>
1566
1567         [ATK] Expose accessibility objects with ATK_ROLE_ARTICLE
1568         https://bugs.webkit.org/show_bug.cgi?id=125587
1569
1570         Reviewed by Chris Fleizach.
1571
1572         Exposed accessibility objects with article role with the proper
1573         AtkRole, to be provided by the next stable release of ATK.
1574
1575         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1576         (atkRole):
1577
1578 2013-11-27  Sergio Villar Senin  <svillar@igalia.com>
1579
1580         [CSS Grid Layout] Fix the preferred logical widths code to work with spanning grid items
1581         https://bugs.webkit.org/show_bug.cgi?id=123994
1582
1583         Reviewed by Andreas Kling.
1584
1585         From Blink r159189 by <jchaffraix@chromium.org>
1586
1587         There was no definition in the specs for the intrinsic / preferred
1588         logical widths on the grid element. The following was proposed to
1589         the WG and later accepted:
1590         - The sum of the grid tracks' UsedBreadth is the minimum logical width
1591         - The sum of the grid tracks' MaxBreadth is the maximum logical width
1592
1593         http://lists.w3.org/Archives/Public/www-style/2013Oct/0054.html
1594         for more information.
1595
1596         * rendering/RenderGrid.cpp:
1597         (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
1598         (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
1599         (WebCore::RenderGrid::minContentForChild):
1600         (WebCore::RenderGrid::maxContentForChild):
1601         * rendering/RenderGrid.h:
1602
1603 2013-12-15  Frédéric Wang  <fred.wang@free.fr>
1604
1605         Add support for maction@toggle
1606         https://bugs.webkit.org/show_bug.cgi?id=120059
1607
1608         Reviewed by Chris Fleizach.
1609
1610         Test: mathml/presentation/maction-toggle.html
1611
1612         * mathml/MathMLSelectElement.cpp:
1613         (WebCore::MathMLSelectElement::getSelectedChildAndIndex):
1614         (WebCore::MathMLSelectElement::updateSelectedChild):
1615         (WebCore::MathMLSelectElement::defaultEventHandler):
1616         (WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
1617         (WebCore::MathMLSelectElement::toggle):
1618         * mathml/MathMLSelectElement.h:
1619
1620 2013-12-15  Darin Adler  <darin@apple.com>
1621
1622         More nullptr in RenderElement
1623         https://bugs.webkit.org/show_bug.cgi?id=125764
1624
1625         Reviewed by Andreas Kling.
1626
1627         * rendering/RenderElement.cpp:
1628         (WebCore::RenderElement::uncachedFirstLineStyle):
1629         (WebCore::RenderElement::updateShapeImage):
1630         (WebCore::RenderElement::destroyLeftoverChildren):
1631         (WebCore::RenderElement::findNextLayer):
1632         Use nullptr in a few more places.
1633
1634 2013-12-15  Ryosuke Niwa  <rniwa@webkit.org>
1635
1636         REGRESSION: 2x regression on Dromaeo DOM query tests
1637         https://bugs.webkit.org/show_bug.cgi?id=125377
1638
1639         Reviewed by Filip Pizlo.
1640
1641         The bug was caused by JSC not JIT'ing property accesses on document because of its having
1642         custom named getter (named properties).  This resulted in resolution of methods on document
1643         such as getElementById to happen inside the interpreter.
1644
1645         Fixed the bug by using the new JSC type info flag which tells JSC to JIT property access on
1646         document, and then notifying JSC whenever a new named property appeared on document.
1647
1648         Tests: js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-2.html
1649                js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-3.html
1650                js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-4.html
1651                js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-2.html
1652                js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-3.html
1653                js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-4.html
1654
1655         * bindings/js/JSDOMBinding.cpp:
1656         (WebCore::addImpureProperty): Wraps VM::addImpureProperty.
1657         * bindings/js/JSDOMBinding.h:
1658         * bindings/scripts/CodeGeneratorJS.pm:
1659         (GenerateHeader): Added the support for NewImpurePropertyFiresWatchpoints.
1660         * bindings/scripts/IDLAttributes.txt: Ditto.
1661         * html/HTMLDocument.cpp:
1662         (WebCore::HTMLDocument::addDocumentNamedItem): Calls addImpureProperty.
1663         * html/HTMLDocument.idl: Added NewImpurePropertyFiresWatchpoints.
1664
1665 2013-12-15  Brent Fulgham  <bfulgham@webkit.org>
1666
1667         [WIn] Unreviewed build fix after r160599
1668
1669         * rendering/RenderMediaControls.cpp:
1670         (WebCore::determineState): RenderObject::theme now returns
1671         a reference.
1672
1673 2013-12-15  Brent Fulgham  <bfulgham@webkit.org>
1674
1675         [Win] Unreviewed build fix
1676
1677         The build system continues to attempt to build QTMovieWin, even
1678         though it is excluded from the build solution. I'm actually
1679         removing the project files to prevent this.
1680
1681         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Removed.
1682         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters: Removed.
1683
1684 2013-12-15  Rob Buis  <rob.buis@samsung.com>
1685
1686         [CSS Shapes] shape-outside animation does not handle 'auto' well
1687         https://bugs.webkit.org/show_bug.cgi?id=125700
1688
1689         Reviewed by Dirk Schulze.
1690
1691         Handle the case where we are blending/animating with a null ShapeValue due to 'auto'.
1692
1693         Adapted LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html for testing this.
1694
1695         * page/animation/CSSPropertyAnimation.cpp:
1696         (WebCore::blendFunc):
1697
1698 2013-12-15  Andy Estes  <aestes@apple.com>
1699
1700         [iOS] Upstream changes to FeatureDefines.xcconfig
1701         https://bugs.webkit.org/show_bug.cgi?id=125742
1702
1703         Reviewed by Dan Bernstein.
1704
1705         * Configurations/FeatureDefines.xcconfig:
1706
1707 2013-12-14  Darin Adler  <darin@apple.com>
1708
1709         Crash in CSSImageGeneratorValue and RenderScrollbar
1710         https://bugs.webkit.org/show_bug.cgi?id=125702
1711
1712         Reviewed by Alexey Proskuryakov.
1713
1714         This crash had two causes at two different levels. The crash fixes both.
1715
1716         At the RenderScrollbar level, we were setting up a new renderer, a
1717         RenderScrollbarPart, and never calling initializeStyle. This meant that
1718         we did not do proper style setup, which meant we did not end up calling
1719         CSSImageGeneratorValue::addClient and so had a removeClient that was not
1720         properly balanced by an addClient. This is the primary bug.
1721
1722         At the CSSImageGeneratorValue level, the addClient and removeClient
1723         functions were not properly handling possibly-mismatched calls. It was
1724         easy to fix the functions to work even if the calls are not perfectly
1725         matched up, which makes the consequences of a missed addClient call
1726         much less dire, no longer messing up reference counting. Fixing this
1727         mitigates the risk if we made this same mistake elsewhere, although I
1728         could not find any other places with some quick searches.
1729
1730         Test: fast/css/scrollbar-image-crash.html
1731
1732         * css/CSSImageGeneratorValue.cpp:
1733         (WebCore::CSSImageGeneratorValue::addClient): Only call ref if this will
1734         add the first client.
1735         (WebCore::CSSImageGeneratorValue::removeClient): Only call deref if this
1736         removes the last client. Also added an assertion that can fire if we call
1737         removeClient without first calling addClient, which is illegal. However,
1738         the function handles that case without over-deref'ing itself.
1739
1740         * rendering/RenderScrollbar.cpp:
1741         (WebCore::RenderScrollbar::updateScrollbarPart): Simplify the logic for
1742         needRenderer a bit. Use initializeStyle rather than setStyle when first
1743         creating the RenderScrollbarPart. Also use add and take properly so we
1744         don't do extra hash lookups the old code did with get/set and get/remove.
1745
1746 2013-12-14  Sam Weinig  <sam@webkit.org>
1747
1748         CTTE: SVGResourcesCache::cachedResourcesForRenderObject() should take a reference
1749         https://bugs.webkit.org/show_bug.cgi?id=125743
1750
1751         Reviewed by Dan Bernstein.
1752
1753         * rendering/svg/RenderSVGContainer.cpp:
1754         (WebCore::RenderSVGContainer::selfWillPaint):
1755         * rendering/svg/RenderSVGImage.cpp:
1756         (WebCore::RenderSVGImage::imageChanged):
1757         * rendering/svg/RenderSVGResource.cpp:
1758         (WebCore::requestPaintingResource):
1759         (WebCore::removeFromCacheAndInvalidateDependencies):
1760         (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
1761         * rendering/svg/RenderSVGResourceClipper.cpp:
1762         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1763         * rendering/svg/RenderSVGRoot.cpp:
1764         (WebCore::RenderSVGRoot::paintReplaced):
1765         * rendering/svg/RenderSVGShape.cpp:
1766         (WebCore::RenderSVGShape::shouldGenerateMarkerPositions):
1767         (WebCore::RenderSVGShape::markerRect):
1768         (WebCore::RenderSVGShape::drawMarkers):
1769         * rendering/svg/SVGRenderSupport.cpp:
1770         (WebCore::invalidateResourcesOfChildren):
1771         (WebCore::SVGRenderSupport::layoutChildren):
1772         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources):
1773         (WebCore::SVGRenderSupport::filtersForceContainerLayout):
1774         (WebCore::SVGRenderSupport::pointInClippingArea):
1775         * rendering/svg/SVGRenderingContext.cpp:
1776         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
1777         * rendering/svg/SVGResourcesCache.cpp:
1778         (WebCore::SVGResourcesCache::cachedResourcesForRenderObject):
1779         (WebCore::SVGResourcesCache::clientLayoutChanged):
1780         (WebCore::SVGResourcesCache::clientDestroyed):
1781         * rendering/svg/SVGResourcesCache.h:
1782         * rendering/svg/SVGResourcesCycleSolver.cpp:
1783         (WebCore::SVGResourcesCycleSolver::resourceContainsCycles):
1784
1785 2013-12-14  Dan Bernstein  <mitz@apple.com>
1786
1787         Clean up the project after r160487
1788
1789         * WebCore.xcodeproj/project.pbxproj: Moved reference to Security.framework from the top
1790         level of the project to the Frameworks group, and made it SDK-relative.
1791
1792 2013-12-14  Andreas Kling  <akling@apple.com>
1793
1794         Page::theme() should return a reference.
1795         <https://webkit.org/b/125737>
1796
1797         There's always a RenderTheme, and not a single call site was checking
1798         for null pointers anyway. Updated RenderObject::theme() as well.
1799
1800         Reviewed by Antti Koivisto.
1801
1802 2013-12-13  Sam Weinig  <sam@webkit.org>
1803
1804         CTTE: Convert Element and RenderObject iterator usage to use range-based for loops
1805         https://bugs.webkit.org/show_bug.cgi?id=125731
1806
1807         Reviewed by Andreas Kling.
1808
1809         Perform straight forward conversions. A few stragglers that do odd things remain.
1810
1811 2013-12-14  Joseph Pecoraro  <pecoraro@apple.com>
1812
1813         Small string improvements to JSInjectedScriptHost::type and other bindings
1814         https://bugs.webkit.org/show_bug.cgi?id=125722
1815
1816         Reviewed by Timothy Hatcher.
1817
1818         * bindings/js/JSInjectedScriptHostCustom.cpp:
1819         (WebCore::JSInjectedScriptHost::type):
1820         Use SmallStrings, jsNontrivialString and ASCIILiteral.
1821
1822         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
1823         (WebCore::JSJavaScriptCallFrame::type):
1824         Use jsNontrivialString.
1825
1826         * bridge/c/c_instance.cpp:
1827         (JSC::Bindings::CInstance::stringValue):
1828         Use jsNontrivialString and ASCIILiteral.
1829
1830 2013-12-14  Andreas Kling  <akling@apple.com>
1831
1832         Move a couple of inlines from RenderObject to RenderElement.
1833         <https://webkit.org/b/125734>
1834
1835         Take most of the inline functions on RenderObject that call style()
1836         and move them over to RenderElement where style() is branchless.
1837
1838         Reviewed by Antti Koivisto.
1839
1840 2013-12-14  Andreas Kling  <akling@apple.com>
1841
1842         RenderElement::rendererForRootBackground() should return a reference.
1843         <https://webkit.org/b/125735>
1844
1845         This function always finds a renderer to return.
1846
1847         Reviewed by Antti Koivisto.
1848
1849 2013-12-14  Mark Rowe  <mrowe@apple.com>
1850
1851         Build fix after r160557.
1852
1853         * Configurations/WebCore.xcconfig: Find JavaScriptCore.framework below SDKROOT so that we'll pick
1854         up the built version in production builds rather than the system version.
1855
1856 2013-12-14  Brendan Long  <b.long@cablelabs.com>
1857
1858         [GStreamer] Use GMutexLocker instead of g_mutex_lock
1859         https://bugs.webkit.org/show_bug.cgi?id=125588
1860
1861         Reviewed by Philippe Normand.
1862
1863         No new tests because this is just code simplification.
1864
1865         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1866         (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
1867         (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
1868         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
1869         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
1870         (webkitVideoSinkTimeoutCallback):
1871         (webkitVideoSinkRender):
1872         (unlockBufferMutex):
1873         (webkitVideoSinkUnlockStop):
1874         (webkitVideoSinkStart):
1875
1876 2013-12-13  Andreas Kling  <akling@apple.com>
1877
1878         Move RenderObject::repaintAfterLayoutIfNeeded() to RenderElement.
1879         <https://webkit.org/b/125712>
1880
1881         This function is only ever called on RenderElements, so move it there.
1882         Removes some RenderObject::style() branchiness.
1883
1884         Reviewed by Darin Adler.
1885
1886 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1887
1888         Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
1889         https://bugs.webkit.org/show_bug.cgi?id=125707
1890
1891         Reviewed by Timothy Hatcher.
1892
1893           - Switch TypeBuilder::Page::SearchMatch to TypeBuilder::GenericTypes::SearchMatch
1894             which comes from InspectorJSTypeBuilders.
1895           - Remove domains that moved to JavaScriptCore.
1896
1897         No new tests, this only moves code around. There are no functional changes.
1898
1899         * CMakeLists.txt:
1900         * DerivedSources.make:
1901         * GNUmakefile.am:
1902         Add new files.
1903
1904         * inspector/ContentSearchUtils.cpp:
1905         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1906         (WebCore::ContentSearchUtils::searchInTextByLines):
1907         * inspector/ContentSearchUtils.h:
1908         * inspector/InspectorAgent.cpp:
1909         * inspector/InspectorAgent.h:
1910         * inspector/InspectorDebuggerAgent.h:
1911         * inspector/InspectorPageAgent.cpp:
1912         (WebCore::InspectorPageAgent::searchInResource):
1913         * inspector/InspectorPageAgent.h:
1914         * inspector/protocol/Page.json:
1915         Update includes and type builder type names.
1916
1917         * inspector/InspectorDebuggerAgent.cpp:
1918         (WebCore::breakpointActionTypeForString):
1919         (WebCore::InspectorDebuggerAgent::searchInContent):
1920         * inspector/InspectorTimelineAgent.cpp:
1921         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
1922         Use the new getEnum function names.
1923
1924 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
1925
1926         [Win] Remove pre-VS2013 support code.
1927         https://bugs.webkit.org/show_bug.cgi?id=125693
1928
1929         Reviewed by Darin Adler.
1930
1931         * Modules/webdatabase/DatabaseTracker.cpp:
1932         (WebCore::DatabaseTracker::setQuota): Use C99 format arguments
1933         * loader/FTPDirectoryParser.cpp:
1934         (WebCore::parseOneFTPLine): Ditto
1935         * loader/icon/IconDatabase.cpp:
1936         (WebCore::IconDatabase::pruneUnretainedIcons): Ditto 
1937         * platform/sql/SQLiteDatabase.cpp:
1938         (WebCore::SQLiteDatabase::setMaximumSize): Ditto
1939
1940 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
1941
1942         SVG bindings are improperly being generated with "fastGetAttribute"
1943         https://bugs.webkit.org/show_bug.cgi?id=125670
1944
1945         Reviewed by Darin Adler.
1946
1947         A bug was introduced in r152845 that improperly called the
1948         IsSVGAnimatedType using the $attribute hash, rather than the
1949         expected $attribute->signature->type.
1950
1951         * bindings/scripts/CodeGenerator.pm:
1952         (GetterExpression): Clean up attribute type confusion.
1953
1954 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
1955
1956         [Win] Unreviewed build fix after r160548
1957
1958         * WebCore.vcxproj/WebCore.vcxproj: Exclude MediaPlayerPrivateQuickTimeVisualContext from
1959         Windows build.
1960         * platform/graphics/MediaPlayer.cpp: Don't use QuickTime as the PlatformMediaEngine.
1961
1962 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1963
1964         [GTK] Remove Warnings in building about duplicate INSPECTOR variables
1965         https://bugs.webkit.org/show_bug.cgi?id=125710
1966
1967         Reviewed by Tim Horton.
1968
1969         * GNUmakefile.am:
1970
1971 2013-12-13  Roger Fong  <roger_fong@apple.com>
1972
1973         [WebGL] Check for global variable precision mismatch between vertex and fragment shaders.
1974         https://bugs.webkit.org/show_bug.cgi?id=125546.
1975         <rdar://problem/15203364>
1976
1977         Reviewed by Brent Fulgham.
1978
1979         Covered Khronos conformances tests:
1980         webgl/1.0.2/glsl/misc/shader-with-global-variable-precision-mismatch.html
1981
1982         * html/canvas/WebGLRenderingContext.cpp:
1983         (WebCore::WebGLRenderingContext::linkProgram):
1984         * platform/graphics/GraphicsContext3D.h: Rename areProgramSymbolsValid since it currently only serves one purpose.
1985         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1986         (WebCore::GraphicsContext3D::precisionsMatch):
1987
1988 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
1989
1990         [Win] Unreviewed build fix after r160548
1991
1992         * WebCore.vcxproj/WebCoreGenerated.vcxproj: Specify that we are
1993         using the vs120_xp build target for Makefile-based projects.
1994
1995 2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
1996
1997         Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
1998         https://bugs.webkit.org/show_bug.cgi?id=125595
1999
2000         Reviewed by Timothy Hatcher.
2001
2002           - CodeGeneration changed to output Frontend and Backend dispatchers
2003             in namespace Inspector. So update all the agent's appropriately.
2004           - Update Derived Sources code generation to use the Scripts that had
2005             moved to JavaScriptCore. Some ports just use JSC/inspector/scripts
2006             directly, but others have to use the Scripts exported by JSC
2007             in JavaScriptCore's PrivateHeaders.
2008           - Add ForwardingHeaders for the files generated in JavaScriptCore.
2009           - Update the names of Inspector DerivedSources files, since they
2010             were renamed to InspectorWeb*.
2011
2012         No new tests, this only moves code around. There are no functional changes.
2013
2014         * CMakeLists.txt:
2015         * DerivedSources.make:
2016         * ForwardingHeaders/inspector/InspectorJSBackendDispatchers.h: Added.
2017         * ForwardingHeaders/inspector/InspectorJSFrontendDispatchers.h: Added.
2018         * ForwardingHeaders/inspector/InspectorJSTypeBuilders.h: Added.
2019         * GNUmakefile.am:
2020         * GNUmakefile.list.am:
2021         * WebCore.vcxproj/WebCore.vcxproj:
2022         * WebCore.vcxproj/WebCore.vcxproj.filters:
2023         * WebCore.vcxproj/build-generated-files.sh:
2024         * WebCore.xcodeproj/project.pbxproj:
2025         Remove files, rename files, update code generation.
2026
2027         * make-generated-sources.sh:
2028         Update this standalone developer script to fill in the new InspectorScripts variable.
2029
2030         * inspector/ConsoleMessage.h:
2031         * inspector/InjectedScriptHost.cpp:
2032         * inspector/InspectorAgent.cpp:
2033         * inspector/InspectorAgent.h:
2034         * inspector/InspectorApplicationCacheAgent.cpp:
2035         * inspector/InspectorApplicationCacheAgent.h:
2036         * inspector/InspectorCSSAgent.h:
2037         * inspector/InspectorCanvasAgent.cpp:
2038         * inspector/InspectorCanvasAgent.h:
2039         * inspector/InspectorConsoleAgent.cpp:
2040         * inspector/InspectorConsoleAgent.h:
2041         * inspector/InspectorController.cpp:
2042         * inspector/InspectorDOMAgent.cpp:
2043         * inspector/InspectorDOMAgent.h:
2044         * inspector/InspectorDOMDebuggerAgent.cpp:
2045         * inspector/InspectorDOMDebuggerAgent.h:
2046         * inspector/InspectorDOMStorageAgent.cpp:
2047         * inspector/InspectorDOMStorageAgent.h:
2048         * inspector/InspectorDatabaseAgent.cpp:
2049         * inspector/InspectorDatabaseAgent.h:
2050         * inspector/InspectorDatabaseResource.cpp:
2051         * inspector/InspectorDatabaseResource.h:
2052         * inspector/InspectorDebuggerAgent.cpp:
2053         * inspector/InspectorDebuggerAgent.h:
2054         * inspector/InspectorFrontendClientLocal.cpp:
2055         * inspector/InspectorHeapProfilerAgent.h:
2056         * inspector/InspectorIndexedDBAgent.cpp:
2057         * inspector/InspectorIndexedDBAgent.h:
2058         * inspector/InspectorInputAgent.h:
2059         * inspector/InspectorLayerTreeAgent.cpp:
2060         * inspector/InspectorLayerTreeAgent.h:
2061         * inspector/InspectorMemoryAgent.cpp:
2062         * inspector/InspectorMemoryAgent.h:
2063         * inspector/InspectorPageAgent.cpp:
2064         * inspector/InspectorPageAgent.h:
2065         * inspector/InspectorProfilerAgent.cpp:
2066         * inspector/InspectorProfilerAgent.h:
2067         * inspector/InspectorResourceAgent.cpp:
2068         * inspector/InspectorResourceAgent.h:
2069         * inspector/InspectorRuntimeAgent.h:
2070         * inspector/InspectorTimelineAgent.cpp:
2071         * inspector/InspectorTimelineAgent.h:
2072         * inspector/InspectorWorkerAgent.cpp:
2073         * inspector/InspectorWorkerAgent.h:
2074         * inspector/PageRuntimeAgent.h:
2075         * inspector/ScriptCallFrame.cpp:
2076         * inspector/WorkerInspectorController.cpp:
2077         * inspector/WorkerRuntimeAgent.h:
2078         Updates header names and class namespace changes.
2079
2080 2013-12-13  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2081
2082         Adding RTCPeerConnectionErrorCallback
2083         https://bugs.webkit.org/show_bug.cgi?id=125574
2084
2085         Reviewed by Eric Carlson.
2086
2087         According to the spec there should be a RTCPeerConnectionErrorCallback function type for createOffer/Answer,
2088         setLocal/RemoteDescription and updateIce function calls. This callback must handle a DOMError object.
2089
2090         Existing tests were updated.
2091
2092         * CMakeLists.txt:
2093         * GNUmakefile.list.am:
2094         * Modules/mediastream/RTCPeerConnection.cpp:
2095         (WebCore::RTCPeerConnection::createOffer):
2096         (WebCore::RTCPeerConnection::createAnswer):
2097         (WebCore::RTCPeerConnection::setLocalDescription):
2098         (WebCore::RTCPeerConnection::setRemoteDescription):
2099         (WebCore::RTCPeerConnection::addIceCandidate):
2100         * Modules/mediastream/RTCErrorCallback.h: Removed.
2101         * Modules/mediastream/RTCErrorCallback.idl: Removed.
2102         * Modules/mediastream/RTCPeerConnection.h:
2103         * Modules/mediastream/RTCPeerConnection.idl:
2104         * Modules/mediastream/RTCPeerConnectionErrorCallback.h: Added.
2105         * Modules/mediastream/RTCPeerConnectionErrorCallback.idl: Added.
2106         * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
2107         (WebCore::RTCSessionDescriptionRequestImpl::create):
2108         (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
2109         (WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
2110         * Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
2111         * Modules/mediastream/RTCVoidRequestImpl.cpp:
2112         (WebCore::RTCVoidRequestImpl::create):
2113         (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
2114         (WebCore::RTCVoidRequestImpl::requestFailed):
2115         * Modules/mediastream/RTCVoidRequestImpl.h:
2116         * WebCore.xcodeproj/project.pbxproj:
2117         * platform/mediastream/RTCPeerConnectionHandler.cpp:
2118         (WebCore::RTCPeerConnectionHandler::incompatibleConstraintsErrorName):
2119         (WebCore::RTCPeerConnectionHandler::invalidSessionDescriptionErrorName):
2120         (WebCore::RTCPeerConnectionHandler::incompatibleSessionDescriptionErrorName):
2121         (WebCore::RTCPeerConnectionHandler::internalErrorName):
2122         * platform/mediastream/RTCPeerConnectionHandler.h:
2123         * platform/mock/RTCNotifiersMock.cpp:
2124         (WebCore::SessionRequestNotifier::SessionRequestNotifier):
2125         (WebCore::SessionRequestNotifier::fire):
2126         (WebCore::VoidRequestNotifier::VoidRequestNotifier):
2127         (WebCore::VoidRequestNotifier::fire):
2128         * platform/mock/RTCNotifiersMock.h:
2129         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
2130         (WebCore::RTCPeerConnectionHandlerMock::createOffer):
2131         (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
2132
2133 2013-12-13  Brent Fulgham  <bfulgham@apple.com>
2134
2135         [Win] Switch WebKit solution to Visual Studio 2013
2136         https://bugs.webkit.org/show_bug.cgi?id=125192
2137
2138         Reviewed by Anders Carlsson.
2139
2140         * WebCore.vcxproj/WebCore.vcxproj: Update for VS2013
2141         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
2142         * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Ditto
2143
2144 2013-12-13  Alexey Proskuryakov  <ap@apple.com>
2145
2146         WebCrypto Key.usages should be ordered alphabetically
2147         https://bugs.webkit.org/show_bug.cgi?id=125696
2148
2149         Reviewed by Darin Adler.
2150
2151         * crypto/CryptoKey.cpp: (WebCore::CryptoKey::usages): Do it.
2152
2153 2013-12-13  Darin Adler  <darin@apple.com>
2154
2155         Make some optimizations for DOM bindings involving vectors
2156         https://bugs.webkit.org/show_bug.cgi?id=125680
2157
2158         Reviewed by Andreas Kling.
2159
2160         * bindings/js/JSDOMBinding.h:
2161         (WebCore::toJS): Removed unnecessary copying of vectors when converting them
2162         to JavaScript values.
2163         (WebCore::toRefPtrNativeArray): Use reserveInitialCapacity and uncheckedAppend.
2164         (WebCore::toNativeArray): Ditto.
2165         (WebCore::toNativeArguments): Ditto.
2166
2167 2013-12-13  Carlos Garcia Campos  <cgarcia@igalia.com>
2168
2169         REGRESSION(r155784): [GTK] Some methods incorrectly removed in r155784 and deprecated in r158662
2170         https://bugs.webkit.org/show_bug.cgi?id=125692
2171
2172         Reviewed by Martin Robinson.
2173
2174         In r155784 the build was fixed by skipping Console::profile() and
2175         Console::profileEnd(), but the patch also skipped other methods
2176         containing the profile method name. Those were incorrectly
2177         deprecated in r158662 thinking that the property had been removed
2178         in the idl.
2179
2180         * bindings/gobject/WebKitDOMDeprecated.cpp: Undeprecate
2181         webkit_dom_html_head_element_get_profile and
2182         webkit_dom_html_head_element_set_profile.
2183         * bindings/gobject/WebKitDOMDeprecated.h: Ditto.
2184         * bindings/gobject/WebKitDOMDeprecated.symbols: Ditto.
2185         * bindings/scripts/CodeGeneratorGObject.pm:
2186         (SkipFunction): Skip webkit_dom_console_profile and
2187         webkit_dom_console_profile_end.
2188
2189 2013-12-13  Rob Buis  <rob.buis@samsung.com>
2190
2191         Clean up SVGScriptElement
2192         https://bugs.webkit.org/show_bug.cgi?id=125527
2193
2194         Reviewed by Darin Adler.
2195
2196         From the Blink port of this bug it becomes clear that svg/dom/SVGScriptElement/script-set-href.svg and
2197         svg/dom/svg-element-attribute-js-null.xhtml still hit an assert in Debug because SVGNames::typeAttr can't
2198         be used with fastGetAttribute in all cases, because it can be animatable. However for SVGScriptElement
2199         it is not animatable, so make isAnimatableAttribute virtual (note Debug only method) and allow typeAttr
2200         in the SVGScriptElement case to be useable for fastGetAttribute.
2201
2202         Test: svg/dom/SVGScriptElement/script-type-attribute.svg
2203
2204         * svg/SVGElement.h:
2205         * svg/SVGScriptElement.cpp:
2206         (WebCore::SVGScriptElement::isAnimatableAttribute):
2207         * svg/SVGScriptElement.h:
2208
2209 2013-12-13  Carlos Garcia Campos  <cgarcia@igalia.com>
2210
2211         [GTK] Expose also webkit_dom_document_get_url
2212         https://bugs.webkit.org/show_bug.cgi?id=125691
2213
2214         Reviewed by Martin Robinson.
2215
2216         For some reason we expose the URL property, so it can be accessed
2217         with g_object_get(), but we have a special case to not provide a
2218         public getter.
2219
2220         * bindings/gobject/webkitdom.symbols: Add new symbol.
2221         * bindings/scripts/CodeGeneratorGObject.pm:
2222         (GenerateFunctions): Remove the special case of URL property.
2223
2224 2013-12-13  Andreas Kling  <akling@apple.com>
2225
2226         CSSFilterImageValue constructor should require both image and filter.
2227         <https://webkit.org/b/125056>
2228
2229         Make the CSSFilterImageValue::create() helper take both the image and
2230         filter CSSValues by PassRef since they should never be null.
2231
2232         Tweaked ComputedStyleExtractor::valueForFilter() to return a PassRef
2233         for this to work.
2234
2235         Reviewed by Anders Carlsson.
2236
2237 2013-12-12  Andreas Kling  <akling@apple.com>
2238
2239         StyleResolver::adjustRenderStyle() should take RenderStyle references.
2240         <https://webkit.org/b/125623>
2241
2242         This function doesn't handle null styles being passed, so prevent
2243         it at compile time.
2244
2245         Reviewed by Anders Carlsson.
2246
2247 2013-12-13  Darin Adler  <darin@apple.com>
2248
2249         Eliminate awkward virtualComputedStyle construction
2250         https://bugs.webkit.org/show_bug.cgi?id=125681
2251
2252         Reviewed by Andreas Kling.
2253
2254         * dom/Element.cpp:
2255         (WebCore::Element::computedStyle): Tweak coding style a bit.
2256
2257         * dom/Element.h: Marked computedStyle virtual and got rid of virtualComputedStyle.
2258         This fixes a bug that we would not call SVGElement::computedStyle if we called
2259         it through an Element pointer or reference. Not sure how to get test coverage for this.
2260
2261         * dom/Node.cpp:
2262         (WebCore::Node::computedStyle): Use a loop instead of recursive virtual calls.
2263
2264         * dom/Node.h: Made computedStyle virtual and got rid of virtualComputedStyle.
2265
2266         * svg/SVGElement.cpp:
2267         (WebCore::SVGElement::computedStyle): Tweak coding style a bit.
2268
2269         * svg/SVGElement.h: Made computedStyle virtual (and FINAL) and got rid fo
2270         virtualComputedStyle.
2271
2272 2013-12-13  Darin Adler  <darin@apple.com>
2273
2274         Fix a couple stray uses of RefPtr that should release
2275         https://bugs.webkit.org/show_bug.cgi?id=125679
2276
2277         Reviewed by Andreas Kling.
2278
2279         * css/CSSParser.cpp:
2280         (WebCore::CSSParser::parseFilter): Add calls to release, in
2281         one case rearranging the order of operations slightly so we
2282         don't release the pointer before using it.
2283
2284 2013-12-12  Alexey Proskuryakov  <ap@apple.com>
2285
2286         WebCrypto wrapKey operation doesn't check key usage
2287         https://bugs.webkit.org/show_bug.cgi?id=125675
2288
2289         Reviewed by Darin Adler.
2290
2291         Tests: crypto/subtle/unwrapKey-check-usage.html
2292                crypto/subtle/wrapKey-check-usage.html
2293
2294         * bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::wrapKey):
2295         Added accidentally omitted code. Other operations are fine.
2296
2297 2013-12-12  Darin Adler  <darin@apple.com>
2298
2299         Make some improvements in CSSImageGeneratorValue code
2300         https://bugs.webkit.org/show_bug.cgi?id=125676
2301
2302         Reviewed by Simon Fraser.
2303
2304         * css/CSSCrossfadeValue.cpp:
2305         (WebCore::subimageKnownToBeOpaque): Take a reference to the CSSValue, since
2306         it's known not to be null. Used checked cast.
2307         (WebCore::CSSCrossfadeValue::knownToBeOpaque): Updated to pass a reference.
2308
2309         * css/CSSImageGeneratorValue.cpp:
2310         (WebCore::CSSImageGeneratorValue::saveCachedImageForSize): Use
2311         make_unique instead of adoptPtr.
2312         (WebCore::CSSImageGeneratorValue::subimageIsPending): Use checked cast.
2313         (WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto, also
2314         use nullptr.
2315
2316         * css/CSSImageGeneratorValue.h: Removed unneeded includes, added some forward
2317         declarations, used unique_ptr instead of OwnPtr, and used CSS_VALUE_TYPE_CASTS
2318         macro to create cast functions.
2319
2320         * css/CSSValue.cpp: Removed unneeded include of CSSImageGeneratorValue.h.
2321
2322         * css/StyleResolver.cpp:
2323         (WebCore::StyleResolver::State::clear): Use nullptr instead of 0.
2324         (WebCore::StyleResolver::applyProperty): Use checked cast and pass references
2325         instead of pointers to StyleGeneratedImage::create.
2326         (WebCore::StyleResolver::styleImage): Use checked cast and pass references
2327         instead of pointers to generatedOrPendingFromValue.
2328         (WebCore::StyleResolver::generatedOrPendingFromValue): Take the value as a
2329         reference instead of a pointer.
2330         (WebCore::StyleResolver::loadPendingImage): Pass a refernece instead of a
2331         pointer to StyleGeneratedImage::create.
2332         (WebCore::StyleResolver::loadPendingImages): Use auto for iteration instead of
2333         a lot type name.
2334
2335         * css/StyleResolver.h: Changed generatedOrPendingFromValue to take the value
2336         as a reference instead of a pointer.
2337
2338         * page/animation/CSSPropertyAnimation.cpp:
2339         (WebCore::blendFilter): Pass a reference insted of a pointer to
2340         StyleGeneratedImage::create.
2341         (WebCore::crossfadeBlend): Ditto.
2342         (WebCore::blendFunc): Ditto. Also use references for local variables.
2343
2344         * rendering/style/StyleGeneratedImage.cpp:
2345         (WebCore::StyleGeneratedImage::StyleGeneratedImage): Use PassRef instead of
2346         PassRefPtr for the argument type.
2347         (WebCore::StyleGeneratedImage::cssValue): Updated since m_imageGeneratorValue
2348         is now a Ref instead of a RefPtr. Sadly this requires a const_cast that we can
2349         come back and get rid of later.
2350         (WebCore::StyleGeneratedImage::imageSize): Ditto.
2351         (WebCore::StyleGeneratedImage::image): Ditto.
2352
2353         * rendering/style/StyleGeneratedImage.h: Changed create function and constructor
2354         to take a PassRef. Made imageValue non-const since it returns a non-const value,
2355         to be consistent with "conceptual const". Changed m_imageGeneratorValue to be a
2356         Ref instead of a RefPtr.
2357
2358         * rendering/style/StyleImage.h: Made WrappedImagePtr be const void*, since it's
2359         a pointer used only for equality checks. Not a great idiom, but fine to use a
2360         const pointer instead of non-const, and avoids the const_cast we'd otherwise
2361         need in StyleGeneratedImage::data.
2362
2363 2013-12-12  KyungTae Kim  <ktf.kim@samsung.com>
2364
2365         Improve the find word boundary performance
2366         https://bugs.webkit.org/show_bug.cgi?id=125619
2367
2368         In endWordBoundary case, the textBreakPrevious call in findWordBoundary is unnecessary.
2369         So use separate function for endWordBoundary can improve the performance.
2370
2371         Reviewed by Darin Adler.
2372
2373         No tests because no operation changes.
2374
2375         * editing/VisibleUnits.cpp: Use findEndWordBoundary in endWordBoundary
2376         (WebCore::endWordBoundary):
2377         * platform/text/TextBoundaries.cpp: Add findEndWordBoundary function
2378         (WebCore::findEndWordBoundary):
2379         * platform/text/TextBoundaries.h:
2380         * platform/text/mac/TextBoundaries.mm: Add findEndWordBoundary function
2381         (WebCore::findEndWordBoundary):
2382
2383 2013-12-12  Benjamin Poulain  <bpoulain@apple.com>
2384
2385         Fix a silly mistake of r160467
2386         https://bugs.webkit.org/show_bug.cgi?id=125657
2387
2388         Reviewed by Alexey Proskuryakov.
2389
2390         Fix a typo. The validity check was missing the logical not.
2391
2392         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
2393         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
2394         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
2395         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
2396         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
2397         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
2398         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
2399         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
2400         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
2401         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
2402         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
2403         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
2404
2405 2013-12-12  Tim Horton  <timothy_horton@apple.com>
2406
2407         [wk2] Handle pinch-to-zoom gesture
2408         https://bugs.webkit.org/show_bug.cgi?id=125604
2409
2410         Reviewed by Simon Fraser.
2411
2412         * WebCore.exp.in:
2413         Export some TransformationMatrix functions.
2414
2415         * WebCore.xcodeproj/project.pbxproj:
2416         Make some headers private so that RenderLayerCompositor/Backing can be used from WebKit2.
2417
2418         * rendering/RenderLayerCompositor.h:
2419         (WebCore::RenderLayerCompositor::layerForContentShadow):
2420         Add a getter for the content shadow layer.
2421
2422 2013-12-12  Brady Eidson  <beidson@apple.com>
2423
2424         DatabaseProcess IndexedDB: Establish a metadata backing store on disk
2425         https://bugs.webkit.org/show_bug.cgi?id=125258
2426
2427         Reviewed by Alexey Proskuryakov, Anders Carlsson, and Tim Horton.
2428
2429         Teach CrossThreadCopier how to handle IDBDatabaseMetadata.
2430
2431         * CMakeLists.txt:
2432         * GNUmakefile.list.am:
2433         * WebCore.exp.in:
2434         * WebCore.xcodeproj/project.pbxproj:
2435
2436         * Modules/indexeddb/IDBDatabaseMetadata.cpp: Added.
2437         (WebCore::IDBDatabaseMetadata::isolatedCopy):
2438         (WebCore::IDBObjectStoreMetadata::isolatedCopy):
2439         (WebCore::IDBIndexMetadata::isolatedCopy):
2440         * Modules/indexeddb/IDBDatabaseMetadata.h:
2441
2442         * Modules/indexeddb/IDBKeyPath.cpp:
2443         (WebCore::IDBKeyPath::isolatedCopy):
2444         * Modules/indexeddb/IDBKeyPath.h:
2445
2446         * platform/CrossThreadCopier.cpp:
2447         (WebCore::::copy): Add an IDBDatabaseMetadata specialization.
2448         * platform/CrossThreadCopier.h:
2449
2450 2013-12-12  Alexey Proskuryakov  <ap@apple.com>
2451
2452         Add support for RSAES-PKCS1-v1_5
2453         https://bugs.webkit.org/show_bug.cgi?id=125647
2454
2455         Build fix.
2456
2457         * crypto/CommonCryptoUtilities.h: Declare a newly used private constant.
2458
2459 2013-12-12  Alexey Proskuryakov  <ap@apple.com>
2460
2461         Add support for RSAES-PKCS1-v1_5
2462         https://bugs.webkit.org/show_bug.cgi?id=125647
2463
2464         Reviewed by Anders Carlsson.
2465
2466         Tests: crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html
2467                crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html
2468
2469         * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
2470         * crypto/algorithms/CryptoAlgorithmAES_KW.h:
2471         Removed meaningless parameters arguments from private functions. The base arguments
2472         class is always empty.
2473
2474         * WebCore.xcodeproj/project.pbxproj:
2475         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
2476         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
2477         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
2478         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2479         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
2480         (WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
2481         (WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
2482         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: Added.
2483         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::CryptoAlgorithmRSAES_PKCS1_v1_5):
2484         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::~CryptoAlgorithmRSAES_PKCS1_v1_5):
2485         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::create):
2486         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::identifier):
2487         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::keyAlgorithmMatches):
2488         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
2489         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
2490         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
2491         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
2492         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: Added.
2493         * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp: Added.
2494         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
2495         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
2496         * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
2497         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
2498         Added support for this algorithm.
2499
2500 2013-12-12  Andreas Kling  <akling@apple.com>
2501
2502         [Mac] Stop not caching HTTP resources with "Vary" header in response.
2503         <https://webkit.org/b/125483>
2504         <rdar://problem/11781097>
2505
2506         Remove the workaround preventing resources with the "Vary" header
2507         from going into cache, as the CFNetwork cache has supported this
2508         for quite a while now.
2509
2510         31.5 MB progression on Membuster3, because we can now mmap those
2511         resources from disk once they are in the cache.
2512
2513         We keep the workaround on PLATFORM(WIN) for now.
2514
2515         Reviewed by Antti Koivisto.
2516
2517 2013-12-12  Sam Weinig  <sam@webkit.org>
2518
2519         Replace uses of WTF::BitArray with std::bitset
2520         https://bugs.webkit.org/show_bug.cgi?id=125642
2521
2522         Reviewed by Anders Carlsson.
2523
2524         * css/CSSParser.cpp:
2525         (WebCore::filterProperties):
2526         (WebCore::CSSParser::createStyleProperties):
2527         * css/StyleProperties.cpp:
2528         (WebCore::StyleProperties::asText):
2529
2530 2013-12-12  Alexey Proskuryakov  <ap@apple.com>
2531
2532         Public key in a generated KeyPair should always be extractable
2533         https://bugs.webkit.org/show_bug.cgi?id=125643
2534
2535         Reviewed by Sam Weinig.
2536
2537         The spec doesn't explain how generateKey works with key pairs (there are open bugs
2538         about that). Making public keys non-extractable makes no sense one way or another.
2539
2540         Test: crypto/subtle/rsa-oaep-generate-non-extractable-key.html
2541
2542         * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::generatePair):
2543
2544 2013-12-12  Alexey Proskuryakov  <ap@apple.com>
2545
2546         Make algorithm.name return registered name, not normalized one
2547         https://bugs.webkit.org/show_bug.cgi?id=125641
2548
2549         Reviewed by Anders Carlsson.
2550
2551         Currently, WebCrypto editor's draft stipulates that algorithm name is lowercased
2552         as part of normalization.
2553
2554         But it makes little sense to register algorithms as mixed (mostly upper) case, yet
2555         return the name lowercased. Other implementations don't bother respecting this,
2556         and signs are that the spec will change.
2557
2558         I'd like to match other implementations here, because sticking to the spec only
2559         makes us fail 3rd party test suites for no good reason.
2560
2561         Updated many existing tests.
2562
2563         * crypto/CryptoAlgorithmRegistry.cpp:
2564         (WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
2565         (WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
2566         * crypto/CryptoAlgorithmRegistry.h:
2567         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
2568         * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
2569         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
2570         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
2571         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
2572         * crypto/algorithms/CryptoAlgorithmSHA1.cpp:
2573         * crypto/algorithms/CryptoAlgorithmSHA224.cpp:
2574         * crypto/algorithms/CryptoAlgorithmSHA256.cpp:
2575         * crypto/algorithms/CryptoAlgorithmSHA384.cpp:
2576         * crypto/algorithms/CryptoAlgorithmSHA512.cpp:
2577
2578 2013-12-12  Csaba Osztrogonác  <ossy@webkit.org>
2579
2580         Move CertificateInfo to WebCore
2581         https://bugs.webkit.org/show_bug.cgi?id=124720
2582
2583         Reviewed by Darin Adler.
2584
2585         Based on the patch by Kwang Yul Seo <skyul@company100.net>
2586
2587         * GNUmakefile.list.am:
2588         * PlatformEfl.cmake:
2589         * PlatformGTK.cmake:
2590         * WebCore.exp.in:
2591         * WebCore.xcodeproj/project.pbxproj:
2592         * platform/network/mac/CertificateInfo.h: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.h.
2593         (WebCore::CertificateInfo::setCertificateChain): Added, because WebCoreArgumentCoders needs it.
2594         * platform/network/mac/CertificateInfoMac.mm: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.mm.
2595         (WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersMac.mm.
2596         * platform/network/soup/CertificateInfo.cpp: Copied from Source/WebKit2/Shared/WebCertificateInfo.h.
2597         (WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersSoup.cpp.
2598         * platform/network/soup/CertificateInfo.h: Renamed from Source/WebKit2/Shared/soup/CertificateInfo.h.
2599         (WebCore::CertificateInfo::setCertificate): Added, because WebCoreArgumentCoders needs it.
2600         (WebCore::CertificateInfo::setTLSErrors): Added, because WebCoreArgumentCoders needs it.
2601
2602 2013-12-12  Commit Queue  <commit-queue@webkit.org>
2603
2604         Unreviewed, rolling out r160417.
2605         http://trac.webkit.org/changeset/160417
2606         https://bugs.webkit.org/show_bug.cgi?id=125629
2607
2608         The patch is causing crashes (Requested by zdobersek1 on
2609         #webkit).
2610
2611         * accessibility/AXObjectCache.cpp:
2612         (WebCore::AXObjectCache::~AXObjectCache):
2613         (WebCore::AXObjectCache::remove):
2614         * accessibility/AXObjectCache.h:
2615         (WebCore::AXObjectCache::detachWrapper):
2616         * accessibility/atk/AXObjectCacheAtk.cpp:
2617         (WebCore::AXObjectCache::detachWrapper):
2618         (WebCore::AXObjectCache::attachWrapper):
2619         (WebCore::AXObjectCache::postPlatformNotification):
2620         * accessibility/ios/AXObjectCacheIOS.mm:
2621         (WebCore::AXObjectCache::detachWrapper):
2622         * accessibility/mac/AXObjectCacheMac.mm:
2623         (WebCore::AXObjectCache::detachWrapper):
2624         * accessibility/win/AXObjectCacheWin.cpp:
2625         (WebCore::AXObjectCache::detachWrapper):
2626
2627 2013-12-12  Martin Robinson  <mrobinson@igalia.com>
2628
2629         Remove a few more guards mistakenly added in r160367
2630
2631         Reviewed by Carlos Garcia Campos
2632
2633         r160367 was too liberal in hiding APIs from the GObject DOM bindings.
2634         We should expose the BatteryManager and the text and audio tracks.
2635
2636         * Modules/battery/BatteryManager.idl:
2637         * html/HTMLMediaElement.idl:
2638
2639 2013-12-11  Darin Adler  <darin@apple.com>
2640
2641         StylePendingImage needs to correctly manage the CSSValue pointer lifetime
2642         https://bugs.webkit.org/show_bug.cgi?id=125468
2643
2644         Reviewed by Andreas Kling.
2645
2646         Test: fast/css/pending-image-crash.xhtml
2647
2648         Disconnect the reference counted StylePendingImage from the CSSValue that owns
2649         it when it's not needed any more, otherwise we could end up using a pointer
2650         that might no longer be valid.
2651
2652         * css/CSSCursorImageValue.cpp:
2653         (WebCore::CSSCursorImageValue::detachPendingImage): Added. Calls detachFromCSSValue
2654         on the current image if it is a StylePendingImage.
2655         (WebCore::CSSCursorImageValue::~CSSCursorImageValue): Call detachPendingImage.
2656         (WebCore::CSSCursorImageValue::cachedImage): Call detachPendingImage before changing
2657         m_image to a new value.
2658         (WebCore::CSSCursorImageValue::clearCachedImage): Ditto.
2659         * css/CSSCursorImageValue.h: Added detachPendingImage.
2660
2661         * css/CSSImageSetValue.cpp:
2662         (WebCore::CSSImageSetValue::detachPendingImage): Added. Calls detachFromCSSValue
2663         on the current image set if it is a StylePendingImage.
2664         (WebCore::CSSImageSetValue::~CSSImageSetValue): Call detachPendingImage.
2665         (WebCore::CSSImageSetValue::cachedImageSet): Call detachPendingImage before changing
2666         m_imageSet to a new value.
2667         * css/CSSImageSetValue.h: Added detachPendingImage.
2668
2669         * css/CSSImageValue.cpp:
2670         (WebCore::CSSImageValue::detachPendingImage): Added. Calls detachFromCSSValue on the
2671         current image if it is a StylePendingImage.
2672         (WebCore::CSSImageValue::~CSSImageValue): Call detachPendingImage.
2673         (WebCore::CSSImageValue::cachedImage): Call detachPendingImage before changing m_image
2674         to a new value.
2675         * css/CSSImageValue.h: Added detachPendingImage.
2676
2677         * rendering/style/StylePendingImage.h:
2678         (WebCore::StylePendingImage::cssImageValue): Added a null check.
2679         (WebCore::StylePendingImage::cssImageGeneratorValue): Added a null check.
2680         (WebCore::StylePendingImage::cssCursorImageValue): Added a null check.
2681         (WebCore::StylePendingImage::cssImageSetValue): Added a null check.
2682         (WebCore::StylePendingImage::detachFromCSSValue): Added. Sets m_value to null since
2683         the style is no longer using this StylePendingImage.
2684         (WebCore::StylePendingImage::data): Changed to use the "this" pointer since all we
2685         need is some arbitrary pointer uniquely identifying the image. Before loading the image,
2686         we have no suitable weak identifier, so it suffices to use the unique pointer to each
2687         StylePendingImage object. This function is used only in a limited way; it would be nice
2688         to find a way to make the code less strange long term.
2689
2690 2013-12-11  Darin Adler  <darin@apple.com>
2691
2692         Remove some unneeded code noticed while looking at StylePendingImage
2693         https://bugs.webkit.org/show_bug.cgi?id=125618
2694
2695         Reviewed by Andreas Kling.
2696
2697         * css/StyleResolver.cpp:
2698         (WebCore::StyleResolver::loadPendingImage): Removed redundant function calls.
2699
2700         * rendering/RenderImageResource.cpp: Removed unneeded nullImage and
2701         usesImageContainerSize member functions.
2702         (WebCore::RenderImageResource::image): Use Image::nullImage directly instead of
2703         through RenderImageResourceImage::nullImage.
2704
2705         * rendering/RenderImageResource.h: Removed unneeded usesImageContainerSize
2706         and nullImage functions. Also removed unneeded includes.
2707
2708         * rendering/RenderImageResourceStyleImage.h: Removed unneeded
2709         usesImageContainerSize override. Nobody was calling it.
2710
2711 2013-12-11  Benjamin Poulain  <bpoulain@apple.com>
2712
2713         Add the CFNetwork implementation of the asynchronous ResourceHandle
2714         https://bugs.webkit.org/show_bug.cgi?id=124440
2715
2716         Reviewed by Alexey Proskuryakov.
2717
2718         Add a second subclass of ResourceHandleCFURLConnectionDelegate: ResourceHandleCFURLConnectionDelegateWithOperationQueue.
2719         The difference is those objects handle the network callback on a different queue.
2720
2721         Some common code has been refactored in ResourceHandleCFURLConnectionDelegate to reduce duplicated code.
2722
2723         The initialization of the request and connection is moved to the subclass to clean up initialization.
2724
2725         * WebCore.xcodeproj/project.pbxproj:
2726         * platform/network/ResourceHandle.h:
2727         * platform/network/ResourceHandleClient.cpp:
2728         (WebCore::ResourceHandleClient::willCacheResponseAsync):
2729         * platform/network/ResourceHandleClient.h:
2730         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: Added.
2731         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::ResourceHandleCFURLConnectionDelegateWithOperationQueue):
2732         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::~ResourceHandleCFURLConnectionDelegateWithOperationQueue):
2733         (WebCore::connectionWasCancelled):
2734         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest):
2735         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupConnectionScheduling):
2736         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
2737         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
2738         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
2739         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
2740         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
2741         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
2742         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
2743         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
2744         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
2745         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
2746         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
2747         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillSendRequest):
2748         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueDidReceiveResponse):
2749         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueShouldUseCredentialStorage):
2750         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillCacheResponse):
2751         (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueCanAuthenticateAgainstProtectionSpace):
2752         * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h: Copied from Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h.
2753         * platform/network/cf/ResourceHandleCFNet.cpp:
2754         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
2755         (WebCore::ResourceHandle::createCFURLConnection):
2756         (WebCore::ResourceHandle::start):
2757         (WebCore::ResourceHandle::shouldUseCredentialStorage):
2758         (WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
2759         (WebCore::ResourceHandle::continueWillSendRequest):
2760         (WebCore::ResourceHandle::continueDidReceiveResponse):
2761         (WebCore::ResourceHandle::continueShouldUseCredentialStorage):
2762         (WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
2763         (WebCore::ResourceHandle::continueWillCacheResponse):
2764         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
2765         (WebCore::ResourceHandleCFURLConnectionDelegate::releaseHandle):
2766         (WebCore::ResourceHandleCFURLConnectionDelegate::synthesizeRedirectResponseIfNecessary):
2767         (WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):
2768         * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
2769         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
2770         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupRequest):
2771         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupConnectionScheduling):
2772         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
2773         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillSendRequest):
2774         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueDidReceiveResponse):
2775         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueShouldUseCredentialStorage):
2776         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillCacheResponse):
2777         (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueCanAuthenticateAgainstProtectionSpace):
2778         * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
2779
2780 2013-12-11  David Kilzer  <ddkilzer@apple.com>
2781
2782         Define m_hasBadParent in InlineBox if defined(ADDRESS_SANITIZER)
2783         <http://webkit.org/b/125329>
2784
2785         Reviewed by Darin Adler.
2786
2787         No tests since this is a build fix for:
2788
2789             $ ./Tools/Scripts/build-webkit --release OTHER_CFLAGS="$inherited -DADDRESS_SANITIZER=1"
2790
2791         * rendering/InlineBox.cpp:
2792         * rendering/InlineBox.h:
2793         - Replace ASSERT_DISABLED use with
2794           ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for m_hasBadParent.
2795
2796         * rendering/InlineFlowBox.cpp:
2797         (WebCore::InlineFlowBox::~InlineFlowBox):
2798         - Use !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED instead of
2799           #ifndef NDEBUG since this calls setHasBadParent().
2800         (WebCore::InlineFlowBox::checkConsistency):
2801         - Move ASSERT(!m_hasBadChildList) outside of
2802           #if CHECK_CONSISTENCY and change to
2803           ASSERT_WITH_SECURITY_IMPLICATION(!m_hasBadChildList).
2804
2805         * rendering/InlineFlowBox.h:
2806         (WebCore::InlineFlowBox::InlineFlowBox):
2807         (WebCore::InlineFlowBox::setHasBadChildList):
2808         - Change #ifndef NDEBUG to
2809           #if !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for code using
2810           m_hasBadChildList.
2811
2812 2013-12-11  Ralph Thomas  <ralpht@gmail.com>
2813
2814         [WebGL] Fix build on GL ES 2.0 targets after r160119
2815         https://bugs.webkit.org/show_bug.cgi?id=125541
2816
2817         Reviewed by Brent Fulgham.
2818
2819         GL ES 2.0 doesn't define GL_HALF_FLOAT_ARB, so pass through HALF_FLOAT_OES (which is defined for GL ES 2.0).
2820         This change also reverts r160324 which incorrectly defined GL_HALF_FLOAT_ARB for the Windows ANGLE target.
2821
2822         No new tests, no change in functionality.
2823
2824         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2825         (WebCore::GraphicsContext3D::texSubImage2D):
2826
2827 2013-12-11  Joseph Pecoraro  <pecoraro@apple.com>
2828
2829         Web Inspector: Push More Inspector Required Classes Down into JavaScriptCore
2830         https://bugs.webkit.org/show_bug.cgi?id=125324
2831
2832         Reviewed by Timothy Hatcher.
2833
2834         Part 1: Push down core inspector classes.
2835
2836           - Move InspectAgentBase, InspectorAgentRegistry, InspectorBackendDispatcher, InspectorValues
2837             down to JavaScriptCore and into the Inspector namespace.
2838           - Add forwarding headers for JavaScriptCore/inspector files.
2839           - Use the Inspector namespace where appropriate.
2840           - Rename InspectorBaseAgent to InspectorAgentBase for clarity.
2841
2842         Part 2: Push Script wrapper classes down into JavaScriptCore/bindings.
2843
2844           - Move ScriptObject and ScriptValue into JavaScriptCore but namespace Deprecated
2845           - Add forwarding headers
2846           - Use Deprecated::ScriptObject and Deprecated::ScriptValue everywhere.
2847
2848         Part 3: Push Down ScriptFunctionCall
2849
2850           - Move ScriptFunctionCall to JavaScriptCore/bindings into namespace Deprecated.
2851           - Give constructor a function to all for a different JSC::call, because
2852             WebCore ScriptFunctionCall's use JSMainThreadExecState when isMainThread.
2853           - Prefer Deprecated::ScriptFunctionCall everywhere it is used in WebCore.
2854
2855         Part 4: Extract InspectorTypeBuilder helper functions
2856
2857           - There is a chunk of InspectorTypeBuilder that never changes. Extract it into
2858             its own file, InspectorTypeBuilder.h in JSC/inspector, Inspector namespace.
2859           - This moves TypeBuilder from namespace WebCore to namespace Inspector
2860           - Rename the WebCore generated InspectorTypeBuilder to InspectorWebTypeBuilders,
2861             eventually the CodeGenerator script will do this for more then TypeBuilders
2862             and there will be "JS" TypeBuilders and "Web" TypeBuilders files.
2863
2864         No new tests. No change in functionality, just moving things around.
2865
2866         * CMakeLists.txt:
2867         * ForwardingHeaders/bindings/ScriptFunctionCall.h: Added.
2868         * ForwardingHeaders/bindings/ScriptObject.h: Added.
2869         * ForwardingHeaders/bindings/ScriptValue.h: Added.
2870         * ForwardingHeaders/inspector/InspectorAgentBase.h: Added.
2871         * ForwardingHeaders/inspector/InspectorAgentRegistry.h: Added.
2872         * ForwardingHeaders/inspector/InspectorBackendDispatcher.h: Added.
2873         * ForwardingHeaders/inspector/InspectorTypeBuilder.h: Added.
2874         * ForwardingHeaders/inspector/InspectorValues.h: Added.
2875         * GNUmakefile.am:
2876         * GNUmakefile.list.am:
2877         * Modules/indexeddb/IDBAny.cpp:
2878         (WebCore::IDBAny::scriptValue):
2879         (WebCore::IDBAny::IDBAny):
2880         * Modules/indexeddb/IDBAny.h:
2881         * Modules/indexeddb/IDBCursor.cpp:
2882         (WebCore::IDBCursor::key):
2883         (WebCore::IDBCursor::primaryKey):
2884         (WebCore::IDBCursor::value):
2885         (WebCore::IDBCursor::update):
2886         (WebCore::IDBCursor::continueFunction):
2887         (WebCore::IDBCursor::setValueReady):
2888         * Modules/indexeddb/IDBCursor.h:
2889         * Modules/indexeddb/IDBFactory.cpp:
2890         (WebCore::IDBFactory::cmp):
2891         * Modules/indexeddb/IDBFactory.h:
2892         * Modules/indexeddb/IDBIndex.cpp:
2893         (WebCore::IDBIndex::openCursor):
2894         (WebCore::IDBIndex::count):
2895         (WebCore::IDBIndex::openKeyCursor):
2896         (WebCore::IDBIndex::get):
2897         (WebCore::IDBIndex::getKey):
2898         * Modules/indexeddb/IDBIndex.h:
2899         (WebCore::IDBIndex::openCursor):
2900         (WebCore::IDBIndex::openKeyCursor):
2901         * Modules/indexeddb/IDBKeyRange.cpp:
2902         (WebCore::IDBKeyRange::lowerValue):
2903         (WebCore::IDBKeyRange::upperValue):
2904         (WebCore::IDBKeyRange::only):
2905         (WebCore::IDBKeyRange::lowerBound):
2906         (WebCore::IDBKeyRange::upperBound):
2907         (WebCore::IDBKeyRange::bound):
2908         * Modules/indexeddb/IDBKeyRange.h:
2909         (WebCore::IDBKeyRange::lowerBound):
2910         (WebCore::IDBKeyRange::upperBound):
2911         (WebCore::IDBKeyRange::bound):
2912         * Modules/indexeddb/IDBObjectStore.cpp:
2913         (WebCore::IDBObjectStore::get):
2914         (WebCore::generateIndexKeysForValue):
2915         (WebCore::IDBObjectStore::add):
2916         (WebCore::IDBObjectStore::put):
2917         (WebCore::IDBObjectStore::deleteFunction):
2918         (WebCore::IDBObjectStore::openCursor):
2919         (WebCore::IDBObjectStore::count):
2920         * Modules/indexeddb/IDBObjectStore.h:
2921         * Modules/indexeddb/IDBRequest.cpp:
2922         (WebCore::IDBRequest::setResultCursor):
2923         (WebCore::IDBRequest::onSuccess):
2924         (WebCore::IDBRequest::onSuccessInternal):
2925         * Modules/indexeddb/IDBRequest.h:
2926         * Modules/mediastream/CapabilityRange.cpp:
2927         (WebCore::scriptValue):
2928         (WebCore::CapabilityRange::min):
2929         (WebCore::CapabilityRange::max):
2930         * Modules/mediastream/CapabilityRange.h:
2931         * Modules/mediastream/MediaTrackConstraint.h:
2932         * Modules/mediastream/RTCIceCandidate.cpp:
2933         * Modules/plugins/QuickTimePluginReplacement.cpp:
2934         * Modules/plugins/QuickTimePluginReplacement.h:
2935         * UseJSC.cmake:
2936         * WebCore.exp.in:
2937         * WebCore.vcxproj/WebCore.vcxproj:
2938         * WebCore.vcxproj/WebCore.vcxproj.filters:
2939         * WebCore.xcodeproj/project.pbxproj:
2940         * bindings/js/Dictionary.h:
2941         (WebCore::Dictionary::getEventListener):
2942         * bindings/js/IDBBindingUtilities.cpp:
2943         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
2944         (WebCore::injectIDBKeyIntoScriptValue):
2945         (WebCore::canInjectIDBKeyIntoScriptValue):
2946         (WebCore::deserializeIDBValue):
2947         (WebCore::deserializeIDBValueBuffer):
2948         (WebCore::idbKeyToScriptValue):
2949         (WebCore::scriptValueToIDBKey):
2950         * bindings/js/IDBBindingUtilities.h:
2951         * bindings/js/JSBindingsAllInOne.cpp:
2952         * bindings/js/JSDictionary.cpp:
2953         (WebCore::JSDictionary::convertValue):
2954         * bindings/js/JSDictionary.h:
2955         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2956         (WebCore::JSHTMLCanvasElement::getContext):
2957         * bindings/js/JSInjectedScriptHostCustom.cpp:
2958         (WebCore::InjectedScriptHost::scriptValueAsNode):
2959         (WebCore::InjectedScriptHost::nodeAsScriptValue):
2960         (WebCore::JSInjectedScriptHost::inspectedObject):
2961         (WebCore::JSInjectedScriptHost::inspect):
2962         * bindings/js/JSInjectedScriptManager.cpp:
2963         (WebCore::InjectedScriptManager::createInjectedScript):
2964         * bindings/js/JSMainThreadExecState.cpp:
2965         (WebCore::functionCallHandlerFromAnyThread):
2966         * bindings/js/JSMainThreadExecState.h:
2967         (WebCore::JSMainThreadExecState::currentState):
2968         * bindings/js/JSMessageEventCustom.cpp:
2969         (WebCore::JSMessageEvent::data):
2970         (WebCore::handleInitMessageEvent):
2971         * bindings/js/ScheduledAction.cpp:
2972         * bindings/js/ScriptCallStackFactory.cpp:
2973         (WebCore::createScriptArguments):
2974         * bindings/js/ScriptController.cpp:
2975         (WebCore::ScriptController::evaluateInWorld):
2976         (WebCore::ScriptController::evaluate):
2977         (WebCore::ScriptController::executeScriptInWorld):
2978         (WebCore::ScriptController::executeScript):
2979         (WebCore::ScriptController::executeIfJavaScriptURL):
2980         * bindings/js/ScriptController.h:
2981         * bindings/js/ScriptDebugServer.cpp:
2982         (WebCore::ScriptDebugServer::setScriptSource):
2983         (WebCore::ScriptDebugServer::updateCallStack):
2984         (WebCore::ScriptDebugServer::dispatchDidPause):
2985         (WebCore::ScriptDebugServer::runScript):
2986         * bindings/js/ScriptDebugServer.h:
2987         * bindings/js/ScriptGlobalObject.cpp: Renamed from Source/WebCore/bindings/js/ScriptObject.cpp.
2988         (WebCore::handleException):
2989         (WebCore::ScriptGlobalObject::set):
2990         (WebCore::ScriptGlobalObject::get):
2991         (WebCore::ScriptGlobalObject::remove):
2992         * bindings/js/ScriptGlobalObject.h: Copied from Source/WebCore/inspector/ScriptCallStack.h.
2993         (WebCore::ScriptGlobalObject::ScriptGlobalObject):
2994         * bindings/js/ScriptObject.h: Removed.
2995         * bindings/js/ScriptProfile.cpp:
2996         (WebCore::buildInspectorObjectFor):
2997         (WebCore::ScriptProfile::buildInspectorObjectForHead):
2998         (WebCore::ScriptProfile::buildInspectorObjectForBottomUpHead):
2999         * bindings/js/ScriptProfile.h:
3000         * bindings/js/ScriptProfiler.cpp:
3001         (WebCore::ScriptProfiler::objectByHeapObjectId):
3002         (WebCore::ScriptProfiler::getHeapObjectId):
3003         * bindings/js/ScriptProfiler.h:
3004         * bindings/js/ScriptState.h:
3005         * bindings/js/SerializedScriptValue.cpp:
3006         (WebCore::SerializedScriptValue::deserializeForInspector):
3007         (WebCore::SerializedScriptValue::serialize):
3008         (WebCore::SerializedScriptValue::deserialize):
3009         * bindings/js/SerializedScriptValue.h:
3010         * bindings/js/WorkerScriptController.cpp:
3011         (WebCore::WorkerScriptController::evaluate):
3012         (WebCore::WorkerScriptController::setException):
3013         * bindings/js/WorkerScriptController.h:
3014         * bindings/scripts/CodeGeneratorJS.pm:
3015         * bindings/scripts/test/JS/JSTestObj.cpp:
3016         (WebCore::setJSTestObjAnyAttribute):
3017         * dom/CustomEvent.cpp:
3018         (WebCore::CustomEvent::initCustomEvent):
3019         * dom/CustomEvent.h:
3020         (WebCore::CustomEvent::detail):
3021         * dom/MessageEvent.cpp:
3022         (WebCore::MessageEvent::MessageEvent):
3023         (WebCore::MessageEvent::initMessageEvent):
3024         * dom/MessageEvent.h:
3025         (WebCore::MessageEvent::create):
3026         (WebCore::MessageEvent::dataAsScriptValue):
3027         * dom/PopStateEvent.h:
3028         (WebCore::PopStateEvent::state):
3029         * dom/ScriptElement.cpp:
3030         * html/HTMLMediaElement.cpp:
3031         * html/parser/XSSAuditor.cpp:
3032         * html/parser/XSSAuditorDelegate.cpp:
3033         * inspector/CodeGeneratorInspector.py:
3034         (RawTypes.BaseType.get_raw_validator_call_text):
3035         (RawTypes.Object.get_array_item_raw_c_type_text):
3036         (RawTypes.Any.get_array_item_raw_c_type_text):
3037         (RawTypes.Array.get_array_item_raw_c_type_text):
3038         (CommandReturnPassModel.OptOutput.get_return_var_type):
3039         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
3040         (TypeModel.ExactlyInt.get_input_param_type_text):
3041         (TypeModel.ExactlyInt.get_opt_output_type_):
3042         (TypeModel.init_class):
3043         (TypeBindings.create_named_type_declaration.Helper):
3044         (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
3045         (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
3046         (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator.generate_type_builder):
3047         (Inspector):
3048         (ArrayBinding.get_array_item_c_type_text):
3049         (Generator.go):
3050         (Generator.process_command):
3051         * inspector/CodeGeneratorInspectorStrings.py:
3052         (void):
3053         (InspectorFrontend_h):
3054         (InspectorBackendDispatchers_h):
3055         * inspector/ConsoleMessage.cpp:
3056         (WebCore::messageSourceValue):
3057         (WebCore::messageTypeValue):
3058         (WebCore::messageLevelValue):
3059         (WebCore::ConsoleMessage::addToFrontend):
3060         * inspector/ConsoleMessage.h:
3061         * inspector/ContentSearchUtils.cpp:
3062         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
3063         (WebCore::ContentSearchUtils::searchInTextByLines):
3064         * inspector/ContentSearchUtils.h:
3065         * inspector/InjectedScript.cpp:
3066         (WebCore::InjectedScript::InjectedScript):
3067         (WebCore::InjectedScript::evaluate):
3068         (WebCore::InjectedScript::callFunctionOn):
3069         (WebCore::InjectedScript::evaluateOnCallFrame):
3070         (WebCore::InjectedScript::getFunctionDetails):
3071         (WebCore::InjectedScript::getProperties):
3072         (WebCore::InjectedScript::getInternalProperties):
3073         (WebCore::InjectedScript::nodeForObjectId):
3074         (WebCore::InjectedScript::releaseObject):
3075         (WebCore::InjectedScript::wrapCallFrames):
3076         (WebCore::InjectedScript::wrapObject):
3077         (WebCore::InjectedScript::wrapTable):
3078         (WebCore::InjectedScript::wrapNode):
3079         (WebCore::InjectedScript::findObjectById):
3080         (WebCore::InjectedScript::inspectNode):
3081         (WebCore::InjectedScript::releaseObjectGroup):
3082         (WebCore::InjectedScript::nodeAsScriptValue):
3083         * inspector/InjectedScript.h:
3084         * inspector/InjectedScriptBase.cpp:
3085         (WebCore::InjectedScriptBase::InjectedScriptBase):
3086         (WebCore::InjectedScriptBase::initialize):
3087         (WebCore::InjectedScriptBase::injectedScriptObject):
3088         (WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
3089         (WebCore::InjectedScriptBase::makeCall):
3090         (WebCore::InjectedScriptBase::makeEvalCall):
3091         * inspector/InjectedScriptBase.h:
3092         * inspector/InjectedScriptCanvasModule.cpp:
3093         (WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
3094         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
3095         (WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
3096         (WebCore::InjectedScriptCanvasModule::markFrameEnd):
3097         (WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
3098         (WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
3099         (WebCore::InjectedScriptCanvasModule::traceLog):
3100         (WebCore::InjectedScriptCanvasModule::replayTraceLog):
3101         (WebCore::InjectedScriptCanvasModule::resourceInfo):
3102         (WebCore::InjectedScriptCanvasModule::resourceState):
3103         * inspector/InjectedScriptCanvasModule.h:
3104         * inspector/InjectedScriptHost.cpp:
3105         (WebCore::InjectedScriptHost::inspectImpl):
3106         (WebCore::InjectedScriptHost::InspectableObject::get):
3107         * inspector/InjectedScriptHost.h:
3108         * inspector/InjectedScriptManager.cpp:
3109         (WebCore::InjectedScriptManager::injectedScriptFor):
3110         * inspector/InjectedScriptManager.h:
3111         * inspector/InjectedScriptModule.cpp:
3112         (WebCore::InjectedScriptModule::ensureInjected):
3113         * inspector/InspectorAgent.cpp:
3114         (WebCore::InspectorAgent::InspectorAgent):
3115         (WebCore::InspectorAgent::didCreateFrontendAndBackend):
3116         (WebCore::InspectorAgent::inspect):
3117         * inspector/InspectorAgent.h:
3118         * inspector/InspectorAllInOne.cpp:
3119         * inspector/InspectorApplicationCacheAgent.cpp:
3120         (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
3121         (WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
3122         (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
3123         (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
3124         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
3125         (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
3126         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
3127         * inspector/InspectorApplicationCacheAgent.h:
3128         * inspector/InspectorCSSAgent.cpp:
3129         (WebCore::SelectorProfile::toInspectorObject):
3130         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3131         (WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
3132         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
3133         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
3134         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
3135         (WebCore::InspectorCSSAgent::getAllStyleSheets):
3136         (WebCore::InspectorCSSAgent::getStyleSheet):
3137         (WebCore::InspectorCSSAgent::setStyleText):
3138         (WebCore::InspectorCSSAgent::setPropertyText):
3139         (WebCore::InspectorCSSAgent::toggleProperty):
3140         (WebCore::InspectorCSSAgent::setRuleSelector):
3141         (WebCore::InspectorCSSAgent::addRule):
3142         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
3143         (WebCore::InspectorCSSAgent::getNamedFlowCollection):
3144         (WebCore::InspectorCSSAgent::stopSelectorProfiler):
3145         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
3146         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
3147         (WebCore::InspectorCSSAgent::collectStyleSheets):
3148         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
3149         (WebCore::InspectorCSSAgent::detectOrigin):
3150         (WebCore::InspectorCSSAgent::buildObjectForRule):
3151         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
3152         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
3153         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
3154         (WebCore::InspectorCSSAgent::buildArrayForRegions):
3155         (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
3156         * inspector/InspectorCSSAgent.h:
3157         * inspector/InspectorCanvasAgent.cpp:
3158         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
3159         (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
3160         (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
3161         (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
3162         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
3163         (WebCore::InspectorCanvasAgent::injectedScriptCanvasModule):
3164         * inspector/InspectorCanvasAgent.h:
3165         * inspector/InspectorCanvasInstrumentation.h:
3166         (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
3167         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
3168         * inspector/InspectorClient.cpp:
3169         * inspector/InspectorClient.h:
3170         * inspector/InspectorConsoleAgent.cpp:
3171         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
3172         (WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
3173         (WebCore::InspectableHeapObject::get):
3174         * inspector/InspectorConsoleAgent.h:
3175         * inspector/InspectorController.cpp:
3176         * inspector/InspectorController.h:
3177         * inspector/InspectorDOMAgent.cpp:
3178         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
3179         (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
3180         (WebCore::InspectorDOMAgent::getDocument):
3181         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
3182         (WebCore::InspectorDOMAgent::querySelectorAll):
3183         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
3184         (WebCore::InspectorDOMAgent::getEventListenersForNode):
3185         (WebCore::InspectorDOMAgent::getSearchResults):
3186         (WebCore::InspectorDOMAgent::resolveNode):
3187         (WebCore::InspectorDOMAgent::getAttributes):
3188         (WebCore::InspectorDOMAgent::buildObjectForNode):
3189         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
3190         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
3191         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
3192         (WebCore::InspectorDOMAgent::didCommitLoad):
3193         (WebCore::InspectorDOMAgent::didInsertDOMNode):
3194         (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
3195         * inspector/InspectorDOMAgent.h:
3196         * inspector/InspectorDOMDebuggerAgent.cpp:
3197         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
3198         (WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
3199         (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
3200         * inspector/InspectorDOMDebuggerAgent.h:
3201         * inspector/InspectorDOMStorageAgent.cpp:
3202         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
3203         (WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
3204         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
3205         (WebCore::InspectorDOMStorageAgent::storageId):
3206         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
3207         * inspector/InspectorDOMStorageAgent.h:
3208         * inspector/InspectorDatabaseAgent.cpp:
3209         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
3210         (WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
3211         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
3212         * inspector/InspectorDatabaseAgent.h:
3213         * inspector/InspectorDatabaseResource.cpp:
3214         (WebCore::InspectorDatabaseResource::bind):
3215         * inspector/InspectorDebuggerAgent.cpp:
3216         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
3217         (WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
3218         (WebCore::breakpointActionTypeForString):
3219         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
3220         (WebCore::InspectorDebuggerAgent::setBreakpoint):
3221         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
3222         (WebCore::scriptToInspectorObject):
3223         (WebCore::InspectorDebuggerAgent::searchInContent):
3224         (WebCore::InspectorDebuggerAgent::setScriptSource):
3225         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
3226         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
3227         (WebCore::InspectorDebuggerAgent::compileScript):
3228         (WebCore::InspectorDebuggerAgent::runScript):
3229         (WebCore::InspectorDebuggerAgent::currentCallFrames):
3230         (WebCore::InspectorDebuggerAgent::didParseSource):
3231         (WebCore::InspectorDebuggerAgent::didPause):
3232         (WebCore::InspectorDebuggerAgent::didContinue):
3233         (WebCore::InspectorDebuggerAgent::clear):
3234         * inspector/InspectorDebuggerAgent.h:
3235         * inspector/InspectorForwarding.h:
3236         * inspector/InspectorFrontendClientLocal.cpp:
3237         (WebCore::InspectorFrontendClientLocal::evaluateAsBoolean):
3238         * inspector/InspectorFrontendHost.cpp:
3239         (WebCore::FrontendMenuProvider::create):
3240         (WebCore::FrontendMenuProvider::disconnect):
3241         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
3242         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
3243         (WebCore::FrontendMenuProvider::contextMenuCleared):
3244         (WebCore::InspectorFrontendHost::showContextMenu):
3245         * inspector/InspectorHeapProfilerAgent.cpp:
3246         (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
3247         (WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
3248         (WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
3249         (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
3250         (WebCore::InspectorHeapProfilerAgent::getObjectByHeapObjectId):
3251         (WebCore::InspectorHeapProfilerAgent::getHeapObjectId):
3252         * inspector/InspectorHeapProfilerAgent.h:
3253         * inspector/InspectorIndexedDBAgent.cpp:
3254         (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
3255         (WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
3256         * inspector/InspectorIndexedDBAgent.h:
3257         * inspector/InspectorInputAgent.cpp:
3258         (WebCore::InspectorInputAgent::InspectorInputAgent):
3259         (WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
3260         * inspector/InspectorInputAgent.h:
3261         * inspector/InspectorInstrumentation.cpp:
3262         * inspector/InspectorInstrumentation.h:
3263         * inspector/InspectorLayerTreeAgent.cpp:
3264         (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
3265         (WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
3266         (WebCore::InspectorLayerTreeAgent::layersForNode):
3267         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
3268         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
3269         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
3270         (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
3271         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
3272         * inspector/InspectorLayerTreeAgent.h:
3273         * inspector/InspectorMemoryAgent.cpp:
3274         (WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
3275         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
3276         * inspector/InspectorMemoryAgent.h:
3277         * inspector/InspectorOverlay.cpp:
3278         * inspector/InspectorOverlay.h:
3279         * inspector/InspectorPageAgent.cpp:
3280         (WebCore::InspectorPageAgent::resourceTypeJson):
3281         (WebCore::InspectorPageAgent::cachedResourceTypeJson):
3282         (WebCore::InspectorPageAgent::InspectorPageAgent):
3283         (WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
3284         (WebCore::buildObjectForCookie):
3285         (WebCore::buildArrayForCookies):
3286         (WebCore::InspectorPageAgent::getCookies):
3287         (WebCore::InspectorPageAgent::getResourceTree):
3288         (WebCore::InspectorPageAgent::searchInResource):
3289         (WebCore::buildObjectForSearchResult):
3290         (WebCore::InspectorPageAgent::searchInResources):
3291         (WebCore::InspectorPageAgent::buildObjectForFrame):
3292         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
3293         * inspector/InspectorPageAgent.h:
3294         * inspector/InspectorProfilerAgent.cpp:
3295         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
3296         (WebCore::InspectorProfilerAgent::createProfileHeader):
3297         (WebCore::InspectorProfilerAgent::createSnapshotHeader):
3298         (WebCore::InspectorProfilerAgent::getProfileHeaders):
3299         (WebCore::InspectorProfilerAgent::getCPUProfile):
3300         (WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
3301         (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
3302         (WebCore::InspectorProfilerAgent::getHeapObjectId):
3303         * inspector/InspectorProfilerAgent.h:
3304         * inspector/InspectorResourceAgent.cpp:
3305         (WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
3306         (WebCore::buildObjectForTiming):
3307         (WebCore::buildObjectForResourceRequest):
3308         (WebCore::buildObjectForResourceResponse):
3309         (WebCore::buildObjectForCachedResource):
3310         (WebCore::InspectorResourceAgent::willSendRequest):
3311         (WebCore::InspectorResourceAgent::didReceiveResponse):
3312         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
3313         (WebCore::InspectorResourceAgent::buildInitiatorObject):
3314         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
3315         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
3316         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
3317         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
3318         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
3319         * inspector/InspectorResourceAgent.h:
3320         * inspector/InspectorRuntimeAgent.cpp:
3321         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
3322         (WebCore::buildErrorRangeObject):
3323         (WebCore::InspectorRuntimeAgent::parse):
3324         (WebCore::InspectorRuntimeAgent::evaluate):
3325         (WebCore::InspectorRuntimeAgent::callFunctionOn):
3326         (WebCore::InspectorRuntimeAgent::getProperties):
3327         * inspector/InspectorRuntimeAgent.h:
3328         * inspector/InspectorStyleSheet.cpp:
3329         (WebCore::buildSourceRangeObject):
3330         (WebCore::buildMediaObject):
3331         (WebCore::fillMediaListChain):
3332         (WebCore::InspectorStyle::buildObjectForStyle):
3333         (WebCore::InspectorStyle::buildArrayForComputedStyle):
3334         (WebCore::InspectorStyle::styleWithProperties):
3335         (WebCore::InspectorStyleSheet::create):
3336         (WebCore::InspectorStyleSheet::InspectorStyleSheet):
3337         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
3338         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
3339         (WebCore::selectorsFromSource):
3340         (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
3341         (WebCore::InspectorStyleSheet::buildObjectForRule):
3342         (WebCore::InspectorStyleSheet::buildObjectForStyle):
3343         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
3344         (WebCore::InspectorStyleSheet::buildArrayForRuleList):
3345         (WebCore::InspectorStyleSheetForInlineStyle::create):
3346         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
3347         * inspector/InspectorStyleSheet.h:
3348         (WebCore::InspectorCSSId::InspectorCSSId):
3349         (WebCore::InspectorStyleSheet::canBind):
3350         * inspector/InspectorStyleTextEditor.cpp:
3351         * inspector/InspectorTimelineAgent.cpp:
3352         (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
3353         (WebCore::toProtocol):
3354         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
3355         (WebCore::InspectorTimelineAgent::setDOMCounters):
3356         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3357         (WebCore::InspectorTimelineAgent::sendEvent):
3358         * inspector/InspectorTimelineAgent.h:
3359         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
3360         * inspector/InspectorWebAgentBase.h: Renamed from Source/WebCore/inspector/InspectorAgentRegistry.h.
3361         (WebCore::InspectorAgentBase::InspectorAgentBase):
3362         * inspector/InspectorWorkerAgent.cpp:
3363         (WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
3364         (WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
3365         * inspector/InspectorWorkerAgent.h:
3366         * inspector/InstrumentingAgents.cpp:
3367         * inspector/NetworkResourcesData.cpp:
3368         * inspector/PageConsoleAgent.cpp:
3369         (WebCore::InspectableNode::get):
3370         * inspector/PageDebuggerAgent.cpp:
3371         * inspector/PageDebuggerAgent.h:
3372         * inspector/PageRuntimeAgent.cpp:
3373         (WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
3374         * inspector/PageRuntimeAgent.h:
3375         * inspector/ScriptArguments.cpp:
3376         (WebCore::ScriptArguments::create):
3377         (WebCore::ScriptArguments::ScriptArguments):
3378         (WebCore::ScriptArguments::argumentAt):
3379         (WebCore::ScriptArguments::getFirstArgumentAsString):
3380         * inspector/ScriptArguments.h:
3381         * inspector/ScriptCallFrame.cpp:
3382         (WebCore::ScriptCallFrame::buildInspectorObject):
3383         * inspector/ScriptCallFrame.h:
3384         * inspector/ScriptCallStack.cpp:
3385         (WebCore::ScriptCallStack::buildInspectorArray):
3386         * inspector/ScriptCallStack.h:
3387         * inspector/ScriptDebugListener.h:
3388         * inspector/TimelineRecordFactory.cpp:
3389         * inspector/TimelineRecordFactory.h:
3390         (WebCore::TimelineRecordFactory::createWebSocketCreateData):
3391         (WebCore::TimelineRecordFactory::createGenericWebSocketData):
3392         * inspector/WorkerConsoleAgent.cpp:
3393         * inspector/WorkerDebuggerAgent.cpp:
3394         * inspector/WorkerInspectorController.cpp:
3395         * inspector/WorkerInspectorController.h: