665bbbcc9f722e1f9621e7cf12b054caf22ecdea
[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:
3396         * inspector/WorkerRuntimeAgent.cpp:
3397         (WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
3398         * inspector/WorkerRuntimeAgent.h:
3399         * page/Console.cpp:
3400         * page/ContentSecurityPolicy.cpp:
3401         * page/Frame.cpp:
3402         * page/PageConsole.cpp:
3403         * plugins/PluginView.cpp:
3404         (WebCore::PluginView::performRequest):
3405         * testing/Internals.cpp:
3406         (WebCore::Internals::parserMetaData):
3407         * testing/Internals.h:
3408         * workers/SharedWorkerGlobalScope.cpp:
3409         (WebCore::createConnectEvent):
3410         * workers/WorkerGlobalScope.cpp:
3411         (WebCore::WorkerGlobalScope::importScripts):
3412         * workers/WorkerThread.cpp:
3413         * xml/XMLTreeViewer.cpp:
3414         * xml/parser/XMLDocumentParser.cpp:
3415         * xml/parser/XMLDocumentParserLibxml2.cpp:
3416
3417 2013-12-11  Laszlo Vidacs  <lac@inf.u-szeged.hu>
3418
3419         Store SHA1 hash in std::array
3420         https://bugs.webkit.org/show_bug.cgi?id=125446
3421
3422         Reviewed by Darin Adler.
3423
3424         Change Vector to std::array and use typedef.
3425
3426         * Modules/websockets/WebSocketHandshake.cpp:
3427         (WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
3428         * inspector/DOMPatchSupport.cpp:
3429         (WebCore::DOMPatchSupport::createDigest):
3430         * platform/network/soup/ResourceHandleSoup.cpp:
3431         (WebCore::HostTLSCertificateSet::computeCertificateHash):
3432
3433 2013-12-11  Alexey Proskuryakov  <ap@apple.com>
3434
3435         WebCrypto keys should support structured clone
3436         https://bugs.webkit.org/show_bug.cgi?id=125590
3437
3438         Reviewed by Oliver Hunt.
3439
3440         Tests: crypto/subtle/aes-postMessage.html
3441                crypto/subtle/hmac-postMessage.html
3442                crypto/subtle/postMessage-worker.html
3443                crypto/subtle/rsa-postMessage.html
3444
3445         * crypto/CryptoAlgorithmIdentifier.h:
3446         (WebCore::CryptoAlgorithmIdentifier):
3447         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
3448         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
3449         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
3450         (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
3451         (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
3452         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
3453         (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
3454         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
3455         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
3456         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
3457         (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
3458         AES_KW was added to WebCrypto spec editor's draft yesterday night. Now that we're
3459         adding a matching enum for structired clone serialization, it's as good a time as
3460         any to update the order of values to match.
3461
3462         * bindings/js/SerializedScriptValue.cpp:
3463         (WebCore::countUsages):
3464         (WebCore::CloneSerializer::dumpIfTerminal):
3465         (WebCore::CloneSerializer::write):
3466         (WebCore::CloneDeserializer::read):
3467         (WebCore::CloneDeserializer::readHMACKey):
3468         (WebCore::CloneDeserializer::readAESKey):
3469         (WebCore::CloneDeserializer::readRSAKey):
3470         (WebCore::CloneDeserializer::readCryptoKey):
3471         (WebCore::CloneDeserializer::readTerminal):
3472         Added serialization/deserialization for CryptoKey. This doesn't update version
3473         number, because we don't currently store structured clones in persistent storage -
3474         and even if we did, we wouldn't want to invalidate everything users already stored.
3475
3476         * crypto/CryptoAlgorithmRegistry.cpp:
3477         (WebCore::CryptoAlgorithmRegistry::shared):
3478         (WebCore::registryMutex):
3479         (WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
3480         (WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
3481         (WebCore::CryptoAlgorithmRegistry::create):
3482         (WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
3483         * crypto/CryptoKey.idl:
3484         With structured clone, it is now possible to send a Key to a web worker. That's
3485         of no practical use because the crypto API is not exposed in workers, but we
3486         shouldn't crash anyway.
3487
3488         * crypto/keys/CryptoKeyAES.cpp:
3489         (WebCore::CryptoKeyAES::CryptoKeyAES):
3490         (WebCore::CryptoKeyAES::isValidAESAlgorithm):
3491         * crypto/keys/CryptoKeyAES.h:
3492         Exposed isValidAESAlgorithm, so that a caller could know whether the constructor
3493         will assert.
3494
3495         * CMakeLists.txt:
3496         * GNUmakefile.am:
3497         * WebCore.vcxproj/WebCore.vcxproj.filters:
3498         * WebCore.vcxproj/WebCoreCommon.props:
3499         Added crypto/keys to search paths to avoid build breakage.
3500
3501 2013-12-11  Bear Travis  <betravis@adobe.com>
3502
3503         Web Inspector: [CSS Shapes] Highlight margin-shape for shape-outside
3504         https://bugs.webkit.org/show_bug.cgi?id=125175
3505
3506         Reviewed by Darin Adler.
3507
3508         In addition to highlighting the shape, also highlight the shape created
3509         by shape-margin with a slightly more transparent color. This patch modifies
3510         the shape info passed to the Inspector Overlay to include a path for both
3511         the raw shape and the shape with margin.
3512
3513         Test: inspector-protocol/model/highlight-shape-outside-margin.html
3514
3515         * inspector/InspectorOverlay.cpp:
3516         (WebCore::buildObjectForShapeOutside): Call Shape::buildDisplayPaths rather than
3517         Shape::buildPath, and pass along any relevant paths to the Inspector overlay.
3518         * inspector/InspectorOverlayPage.js:
3519         (_drawShapeHighlight): Draw the margin shape in addition to the raw shape.
3520         * rendering/shapes/BoxShape.cpp:
3521         (WebCore::addRoundedRect): Add a rounded rect to the path.
3522         (WebCore::BoxShape::buildDisplayPaths): Create the applicable [margin/padding/raw] shapes.
3523         * rendering/shapes/BoxShape.h:
3524         * rendering/shapes/PolygonShape.cpp:
3525         (WebCore::addPolygon): Add a set of vertices as a polygon to the path.
3526         (WebCore::PolygonShape::buildDisplayPaths): Create the applicable [margin/padding/raw] shapes.
3527         * rendering/shapes/PolygonShape.h:
3528         * rendering/shapes/RasterShape.h:
3529         (WebCore::RasterShape::buildDisplayPaths): Ditto.
3530         * rendering/shapes/RectangleShape.cpp:
3531         (WebCore::RectangleShape::buildDisplayPaths): Ditto.
3532         * rendering/shapes/RectangleShape.h:
3533         * rendering/shapes/Shape.h:
3534
3535 2013-12-11  Mario Sanchez Prada  <mario.prada@samsung.com>
3536
3537         [ATK] Expose accessibility objects WAI-ARIA landmark roles
3538         https://bugs.webkit.org/show_bug.cgi?id=125584
3539
3540         Reviewed by Chris Fleizach.
3541
3542         Exposed accessibility objects with landmark roles with the proper
3543         AtkRole, to be provided by the next stable release of ATK.
3544
3545         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3546         (webkitAccessibleGetAttributes):
3547         (atkRole):
3548
3549 2013-12-11  José Dapena Paz  <jdapena@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>
3550
3551         [GTK] Add a UPower-based BatteryProvider
3552         https://bugs.webkit.org/show_bug.cgi?id=115719
3553
3554         Reviewed by Martin Robinson.
3555
3556         Introduce the BatteryProviderUPower, a provider of the system's battery status that produces the information
3557         using the upower-glib library.
3558
3559         The BatteryProviderUPower creates a new UPower client when the provider should start emitting updates and hooks
3560         up to device alteration signals. These only fire recalculation of the battery status when a battery device is altered.
3561
3562         When recalculating, every battery device is taken into account, accumulating the energy capacities when both empty
3563         and full, the current rate of energy charging/discharging, and the battery status (whether the device is charging or
3564         discharging). This gives a set of data that covers the overall battery status of the system.
3565
3566         This data is then used to calculate the battery status as perceived by the WebCore implementation. Charging is determined
3567         by examining the integral sign of the current combined energy rate. Charging and discharging times are calculated, when
3568         appropriate, by dividing the chargable/dischargable capacity with the current combined energy rate. The battery level is
3569         calculated by dividing the current energy capacity with the full energy capacity (i.e. the combined capacity of all
3570         the batteries that the system possesses). The status is (indirectly) passed onto BatteryManager by invoking the
3571         updateBatteryStatus method on the client, with the first parameter representing the battery charging/discharging state,
3572         the second parameter representing the time left until the battery is fully charged (when charging) or fully
3573         depleted (when discharging), and the third parameter representing the current battery level.
3574
3575         Whenever the implementation cannot provide any information about the battery status of the system, the client's
3576         updateBatteryStatus method is invoked with the first parameter reporting the unavailability of any information
3577         about the battery status. The other two parameters can be omitted as they default to 0 when not given and are neither
3578         available nor useful in such circumstances. The client should handle such an update by reporting the 'default' battery
3579         status - charging, the battery level being at 1.0 and both the charging and discharging time having the value of
3580         the positive infinity (as per the Battery Status API specification).
3581
3582         The implementation is heavily inspired by a similar approach to calculating battery status in GNOME Settings Daemon.
3583
3584         No new tests - no new functionality. The feature is not yet enabled. When enabled, the relevant tests pass.
3585
3586         * GNUmakefile.list.am: Add the BatteryProviderUPower(Client) build targets.
3587         * platform/glib/BatteryProviderUPower.cpp: Added.
3588         (powerDeviceAlterationCallback):
3589         (BatteryProviderUPower::BatteryProviderUPower):
3590         (BatteryProviderUPower::startUpdating):
3591         (BatteryProviderUPower::stopUpdating):
3592         (BatteryProviderUPower::updateBatteryStatus):
3593         * platform/glib/BatteryProviderUPower.h: Added.
3594         (WebCore):
3595         (BatteryProviderUPower):
3596         * platform/glib/BatteryProviderUPowerClient.h: Added.
3597         (WebCore):
3598         (BatteryProviderUPowerClient):
3599
3600 2013-12-11  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3601
3602         Improving createOffer and createAnswer LayoutTests
3603         https://bugs.webkit.org/show_bug.cgi?id=125568
3604
3605         Reviewed by Philippe Normand.
3606
3607         The constraints parameter should be optional in both. Also adding tests to check if we already have a local SDP
3608         when creating an answer.
3609
3610         Existing tests were updated.
3611
3612         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
3613         (WebCore::RTCPeerConnectionHandlerMock::createOffer):
3614
3615 2013-12-11  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
3616
3617         [EFL] Fix build with CONTEXT_MENUS flag set OFF
3618         https://bugs.webkit.org/show_bug.cgi?id=125572
3619
3620         Reviewed by Gyuyoung Kim.
3621
3622         dispatchEventAsContextMenuEvent is called regardless of CONTEXT_MENUS flag setting,
3623         thus its definition in InspectorFrontendHost should not be guarded by this flag.
3624
3625         No new tests, no behaviour change.
3626
3627         * inspector/InspectorFrontendHost.cpp:
3628         (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
3629
3630 2013-12-11  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3631
3632         [CURL] Build fails after r160386.
3633         https://bugs.webkit.org/show_bug.cgi?id=125571
3634
3635         Reviewed by Zoltan Herczeg.
3636
3637         Need no new tests.
3638
3639         Fix a typo in commit r160386 that prevents building with curl.
3640
3641         * platform/network/curl/CurlCacheEntry.cpp:
3642         (WebCore::CurlCacheEntry::generateBaseFilename):
3643
3644 2013-12-11  Rob Buis  <rob.buis@samsung.com>
3645
3646         [CSS Shapes] Take into account fill-rule for polygon interpolation
3647         https://bugs.webkit.org/show_bug.cgi?id=125508
3648
3649         Reviewed by Dirk Schulze.
3650
3651         Implement the polygon fill-rule part of http://dev.w3.org/csswg/css-shapes/#basic-shape-interpolation.
3652
3653         Adapt fast/shapes/shape-outside-floats/shape-outside-animation.html.
3654
3655         * rendering/style/BasicShapes.cpp:
3656         (WebCore::BasicShape::canBlend):
3657
3658 2013-12-11  Mario Sanchez Prada  <mario.prada@samsung.com>
3659
3660         Programmatically-inserted children lack accessibility events
3661         https://bugs.webkit.org/show_bug.cgi?id=100275
3662
3663         Reviewed by Chris Fleizach.
3664
3665         Test: accessibility/children-changed-sends-notification.html
3666
3667         Emit children-changed::add and children-changed::remove whenever
3668         an object has been added/removed to the accessibility hierarchy,
3669         that is, when a new AtkObject is being attached/detached.
3670
3671         * accessibility/AXObjectCache.h: Added new enumeration to know
3672         when we are detaching a wrapper because of the cache or the
3673         element is being destroyed, so we can use that information.
3674         (WebCore::AXObjectCache::detachWrapper): Added a new parameter and
3675         updated all the prototypes in different ports.
3676         * accessibility/AXObjectCache.cpp:
3677         (WebCore::AXObjectCache::~AXObjectCache): Call detachWrapper()
3678         specifying that we do it because the cache is being destroyed.
3679         (WebCore::AXObjectCache::remove): Call detachWrapper() specifying
3680         that we do it because an accessible element is being destroyed.
3681
3682         * accessibility/atk/AXObjectCacheAtk.cpp:
3683         (WebCore::AXObjectCache::detachWrapper): Emit the children-changed
3684         signal when needed. We rely on the cached reference to the parent
3685         AtkObject (using the implementation of atk_object_get_parent from
3686         the AtkObject class) to find the right object to emit the signal
3687         from here, since the accessibility hierarchy from WebCore will no
3688         longer be accessible at this point.
3689         (WebCore::AXObjectCache::attachWrapper): Emit the children-change
3690         signal from here unless we are in the middle of a layout update,
3691         trying to provide as much information (e.g. the offset) as possible.
3692         (WebCore::AXObjectCache::postPlatformNotification): Make sure we
3693         update (touch) the subtree under an accessibility object whenever
3694         we receive AXChildrenChanded from WebCore, to ensure that those
3695         objects will also be visible rightaway to ATs, and that those get
3696         properly notified of the event at that very same moment.
3697
3698         * accessibility/ios/AXObjectCacheIOS.mm:
3699         (WebCore::AXObjectCache::detachWrapper): Updated function signature.
3700         * accessibility/mac/AXObjectCacheMac.mm:
3701         (WebCore::AXObjectCache::detachWrapper): Ditto.
3702         * accessibility/win/AXObjectCacheWin.cpp:
3703         (WebCore::AXObjectCache::detachWrapper): Ditto.
3704
3705 2013-12-11  Andreas Kling  <akling@apple.com>
3706
3707         REGRESSION(r160389): SVG test assertion extravaganza.
3708
3709         Unreviewed. Use getAttribute() instead of fastGetAttribute() for
3710         the "type" attribute since it's animatable on SVG elements.
3711
3712 2013-12-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3713
3714         Set m_nextBreakablePosition as private in InlineIterator, and use it.
3715         https://bugs.webkit.org/show_bug.cgi?id=125482
3716
3717         Reviewed by Andreas Kling.
3718
3719         InlineIterator has been exported m_nextBreakablePosition as public though it is member variable.
3720         This patch set it as private, and add getter/setter functions for it.
3721
3722         No new tests, no behavior changes.
3723
3724         * rendering/InlineIterator.h:
3725         (WebCore::InlineIterator::InlineIterator):
3726         (WebCore::InlineIterator::nextBreakablePosition):
3727         (WebCore::InlineIterator::setNextBreakablePosition):
3728         * rendering/line/BreakingContextInlineHeaders.h:
3729         (WebCore::BreakingContext::handleText):
3730
3731 2013-12-10  Gurpreet Kaur  <k.gurpreet@samsung.com>
3732
3733         top and bottom black background line not getting displayed
3734         https://bugs.webkit.org/show_bug.cgi?id=21664
3735
3736         Reviewed by Simon Fraser.
3737
3738         The table cell's background was not being displayed. Since the table
3739         cell had no child correct offsetWidth was not being set even if table
3740         width is being defined.
3741
3742         Test: fast/dom/HTMLTableElement/empy-table-cell-with-background-color.html
3743
3744         * rendering/AutoTableLayout.cpp:
3745         (WebCore::AutoTableLayout::recalcColumn):
3746         cellHasContent should also be set to true incase background color is
3747         present.
3748
3749 2013-12-10  Beth Dakin  <bdakin@apple.com>
3750
3751         Horizontal rubber-banding without a horizontal scrollbar is distracting
3752         https://bugs.webkit.org/show_bug.cgi?id=125550
3753
3754         Reviewed by Simon Fraser.
3755
3756         Setting the ScrollElasticity to ScrollElasticityAutomatic will make sure we only 
3757         rubber-band horizontally when there is a horizontal scrollbar.
3758
3759         * page/FrameView.cpp:
3760         (WebCore::FrameView::FrameView):
3761
3762 2013-12-10  Martin Robinson  <mrobinson@igalia.com>
3763
3764         Correct a preprocessor guard from a mis-merged patch
3765
3766         In r160367, I mismerged a patch from Gustavo Noronha. This commit
3767         fixes the merge and thus fixes the CMake build.
3768
3769         * html/HTMLMediaElement.idl: Move the preprocessor guard to the correct property.
3770
3771 2013-12-10  Rob Buis  <rob.buis@samsung.com>
3772
3773         Clean up SVGScriptElement
3774         https://bugs.webkit.org/show_bug.cgi?id=125527
3775
3776         Reviewed by Sam Weinig.
3777
3778         Rewrite to not store type in m_type and also remove type getter/setter.
3779
3780         * svg/SVGScriptElement.cpp:
3781         (WebCore::SVGScriptElement::parseAttribute):
3782         (WebCore::SVGScriptElement::typeAttributeValue):
3783         * svg/SVGScriptElement.h:
3784         * svg/SVGScriptElement.idl:
3785
3786 2013-12-10  Laszlo Vidacs  <lac@inf.u-szeged.hu>
3787
3788         Use std::array when computing MD5 checksum
3789         https://bugs.webkit.org/show_bug.cgi?id=125509
3790
3791         Reviewed by Anders Carlsson.
3792
3793         Use MD5::Digest type and MD5::hashSize when computing MD5 checksum.
3794
3795         * platform/network/curl/CurlCacheEntry.cpp:
3796         (WebCore::CurlCacheEntry::generateBaseFilename):
3797
3798 2013-12-10  Mario Sanchez Prada  <mario.prada@samsung.com>
3799
3800         [ATK] Expose splitter elements with ATK_ROLE_SEPARATOR
3801         https://bugs.webkit.org/show_bug.cgi?id=125522
3802
3803         Reviewed by Chris Fleizach.
3804
3805         Expose objects with SplitterRole role as ATK_ROLE_SEPARATOR.
3806
3807         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3808         (atkRole):
3809
3810 2013-12-10  Mario Sanchez Prada  <mario.prada@samsung.com>
3811
3812         [ATK] Elements with role 'alertdialog' should be ATK_ROLE_ALERT
3813         https://bugs.webkit.org/show_bug.cgi?id=125521
3814
3815         Reviewed by Chris Fleizach.
3816
3817         Stop exposing alert dialogs as ATK_ROLE_DIALOG and do it as
3818         ATK_ROLE_ALERT instead.
3819
3820         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3821         (atkRole):
3822
3823 2013-12-10  Brendan Long  <b.long@cablelabs.com>
3824
3825         [GTK][GStreamer] media/video-preload.html is flakily crashing on WK2
3826         https://bugs.webkit.org/show_bug.cgi?id=125411
3827
3828         Reviewed by Philippe Normand.
3829
3830         No new tests because this fixes flakeyness in existing tests (media/video-preload.html, and various tests in media/track/{audio,in-band,video}).
3831
3832         * platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
3833         (webkitTextCombinerPadGetProperty): Copy tag list to prevent concurrent modification problems.
3834         (webkitTextCombinerPadEvent): Add locking.
3835         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
3836         (WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer): Call tagsChanged() because we need it to setup m_tags.
3837         (WebCore::TrackPrivateBaseGStreamer::disconnect): Clear m_tags.
3838         (WebCore::TrackPrivateBaseGStreamer::tagsChanged): Lookup the tags while we're in this callback, because it's the only time we can guarantee that the input-selector won't unref them.
3839         (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Use m_tags.
3840         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Add m_tags and a mutex.
3841
3842 2013-12-10  László Langó  <lango@inf.u-szeged.hu>
3843
3844         PageConsole::addMessage should automatically determine column number alongside line number
3845         https://bugs.webkit.org/show_bug.cgi?id=114319
3846
3847         Reviewed by Joseph Pecoraro.
3848
3849         * dom/InlineStyleSheetOwner.cpp:
3850         (WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
3851         * dom/ScriptElement.cpp:
3852         (WebCore::ScriptElement::ScriptElement):
3853         * dom/ScriptableDocumentParser.h:
3854         * dom/StyledElement.cpp:
3855         (WebCore::StyledElement::styleAttributeChanged):
3856         * html/parser/HTMLDocumentParser.cpp:
3857         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
3858         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
3859         * html/parser/HTMLDocumentParser.h:
3860         * inspector/InspectorResourceAgent.cpp:
3861         (WebCore::InspectorResourceAgent::buildInitiatorObject):
3862         * page/Console.cpp:
3863         (WebCore::internalAddMessage):
3864         * page/PageConsole.cpp:
3865         (WebCore::PageConsole::printSourceURLAndPosition):
3866         (WebCore::PageConsole::addMessage):
3867         * page/PageConsole.h:
3868         * xml/parser/XMLDocumentParser.h:
3869         * xml/parser/XMLDocumentParserLibxml2.cpp:
3870         (WebCore::XMLDocumentParser::error):
3871
3872 2013-12-10  Andreas Kling  <akling@apple.com>
3873
3874         Jettison all StyleResolver data on memory pressure.
3875         <https://webkit.org/b/125498>
3876
3877         The StyleResolver can be rebuilt relatively quickly; we already
3878         have an optimization that discards it some time after last use.
3879
3880         If we find ourseles under serious memory pressure, don't wait for
3881         the timer to kick in, throw everything overboard right away.
3882
3883         ~5MB progression post-pressure on Membuster3.
3884
3885         Reviewed by Anders Carlsson.
3886
3887 2013-12-10  Martin Robinson  <mrobinson@igalia.com>
3888
3889         [GTK] [CMake] Add support for building the DOM bindings
3890         https://bugs.webkit.org/show_bug.cgi?id=116375
3891
3892         Reviewed by Gustavo Noronha Silva.
3893
3894         The CMake build is more complete than the autotools counterpart, so autotools doesn't consider
3895         some supplemental IDL attributes when building the DOM bindings. To prevent API breaks we should
3896         protect these attributes from DOM binding generation.
3897
3898         * Modules/battery/BatteryManager.idl: Protect non-GObject DOM bound methods by C preprocessor checks.
3899         * Modules/battery/NavigatorBattery.idl: Ditto.
3900         * Modules/mediastream/HTMLMediaElementMediaStream.idl: Ditto.
3901         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Ditto.
3902         * Modules/networkinfo/NetworkInfoConnection.idl: Ditto.
3903         * PlatformGTK.cmake: Add build steps for building the bindings.
3904         * dom/Document.idl: Protect non-GObject DOM bound methods by C preprocessor checks.
3905         * html/HTMLMediaElement.idl: Ditto.
3906
3907 2013-12-10  Martin Robinson  <mrobinson@igalia.com>
3908
3909         Various fixes for the CMake GTK+ build
3910
3911         Reviewed by Gustavo Noronha.
3912
3913         * PlatformGTK.cmake: Update source list.
3914
3915 2013-12-10  Robert Sipka  <sipka@inf.u-szeged.hu>
3916
3917         [nix][curl] Buildfix after r160310
3918         https://bugs.webkit.org/show_bug.cgi?id=125489
3919
3920         Reviewed by Gustavo Noronha Silva.
3921
3922         Curl doesn't include soup files.
3923
3924         * PlatformNix.cmake:
3925
3926 2013-12-10  Gustavo Noronha Silva  <gns@gnome.org>
3927
3928         [GTK] REGRESSION: www.yahoo.com redirects to the mobile version after UA change
3929         https://bugs.webkit.org/show_bug.cgi?id=125444
3930
3931         Reviewed by Martin Robinson.
3932
3933         * platform/gtk/UserAgentGtk.cpp:
3934         (WebCore::platformVersionForUAString): more correctly pretend we're Mac OS X.
3935         (WebCore::standardUserAgent): ditto.
3936
3937 2013-12-09  Gustavo Noronha Silva  <gns@gnome.org>
3938
3939         [Soup] Send original encoded data size to didReceiveBuffer
3940         https://bugs.webkit.org/show_bug.cgi?id=125410
3941
3942         Reviewed by Martin Robinson.
3943
3944         No tests, the only way to test this seems to be through the inspector UI.
3945
3946         * platform/network/ResourceHandle.h:
3947         * platform/network/ResourceHandleInternal.h:
3948         (WebCore::ResourceHandleInternal::ResourceHandleInternal): data member to track stream
3949         position.
3950         * platform/network/soup/ResourceHandleSoup.cpp:
3951         (WebCore::ResourceHandle::currentStreamPosition): obtains the current stream position by querying
3952         the first seekable input stream we find.
3953         (WebCore::nextMultipartResponsePartCallback): store the position before we start reading a new part.
3954         (WebCore::sendRequestCallback): store the position before we start reading the response body.
3955         (WebCore::readCallback): pass the position delta to didReceiveData.
3956
3957 2013-12-09  Andreas Kling  <akling@apple.com>
3958
3959         Clear out font width measurement caches on memory pressure.
3960         <https://webkit.org/b/125481>
3961
3962         The data kept in WidthCaches can be regenerated on demand. Throwing
3963         it away when we're under memory pressure buys us ~4MB on Membuster3.
3964
3965         Reviewed by Antti Koivisto.
3966
3967 2013-12-09  Seokju Kwon  <seokju@webkit.org>
3968
3969         Web Inspector: Remove enabled() in InspectorRuntimeAgent.
3970         https://bugs.webkit.org/show_bug.cgi?id=125476
3971
3972         Reviewed by Joseph Pecoraro.
3973
3974         Dead code. It's never called anywhere.
3975
3976