Eliminate ResourceBuffer and use SharedBuffer directly instead
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-10-30  Darin Adler  <darin@apple.com>
2
3         Eliminate ResourceBuffer and use SharedBuffer directly instead
4         https://bugs.webkit.org/show_bug.cgi?id=138174
5
6         Reviewed by Antti Koivisto.
7
8         Refactoring, with test coverage across many existing tests.
9
10         * CMakeLists.txt: Deleted ResourceBuffer.cpp.
11
12         * WebCore.exp.in: Removed ResourceBuffer-related symbols, and updated symbol
13         for one function that used to take a PassRefPtr but now takes a reference instead.
14
15         * WebCore.vcxproj/WebCore.vcxproj: Deleted ResourceBuffer.cpp/.h.
16         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
17         * WebCore.xcodeproj/project.pbxproj: Deleted ResourceBuffer.mm/.cpp/.h.
18
19         * bindings/objc/DOMUIKitExtensions.mm:
20         (-[DOMHTMLImageElement dataRepresentation:]): Use SharedBuffer directly.
21         * editing/ios/EditorIOS.mm:
22         (WebCore::Editor::writeImageToPasteboard): Ditto.
23         * editing/mac/EditorMac.mm:
24         (WebCore::Editor::writeImageToPasteboard): Ditto.
25
26         * html/ImageDocument.cpp:
27         (WebCore::ImageDocument::updateDuringParsing): Use SharedBuffer directly, and
28         also pass a reference only if non-null rather than passing a pointer.
29         (WebCore::ImageDocument::finishedParsing): Ditto. Added a missing null check.
30
31         * inspector/InspectorPageAgent.cpp:
32         (WebCore::InspectorPageAgent::cachedResourceContent): Use SharedBuffer directly.
33         (WebCore::InspectorPageAgent::mainResourceContent): Ditto.
34         * inspector/InspectorResourceAgent.cpp:
35         (WebCore::InspectorResourceAgent::didFinishLoading): Ditto.
36         (WebCore::InspectorResourceAgent::didFailLoading): Ditto.
37
38         * loader/DocumentLoader.cpp:
39         (WebCore::DocumentLoader::mainResourceData): Use SharedBuffer directly,
40         and use the copy function rather than a hand-written alternative.
41         (WebCore::DocumentLoader::maybeCreateArchive): Ditto.
42         (WebCore::DocumentLoader::mainResource): Ditto.
43         (WebCore::DocumentLoader::subresource): Ditto.
44         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Ditto.
45
46         * loader/DocumentLoader.h: Changed mainResourceData to return a
47         PassRefPtr<SharedBuffer>. Would be better if it returned a SharedBuffer&,
48         but it currently returns a newly created buffer when there is substitute
49         data and can also return null, even though many callers assume it will not!
50
51         * loader/MediaResourceLoader.cpp:
52         (WebCore::MediaResourceLoader::dataReceived): Removed call to unused client
53         function bufferReceived.
54         (WebCore::MediaResourceLoader::notifyFinished): Removed unused buffer
55         argument to client function loadFinished.
56
57         * loader/ResourceBuffer.cpp: Removed.
58         * loader/ResourceBuffer.h: Removed.
59
60         * loader/ResourceLoader.cpp:
61         (WebCore::ResourceLoader::addDataOrBuffer): Use SharedBuffer directly.
62
63         * loader/ResourceLoader.h:
64         (WebCore::ResourceLoader::resourceData): Use SharedBuffer.
65
66         * loader/SubresourceLoader.cpp:
67         (WebCore::SubresourceLoader::didReceiveResponse): Use SharedBuffer.
68         (WebCore::SubresourceLoader::didReceiveDataOrBuffer): Ditto.
69
70         * loader/TextTrackLoader.cpp:
71         (WebCore::TextTrackLoader::processNewCueData): Use SharedBuffer.
72         * loader/appcache/ApplicationCacheGroup.cpp:
73         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): Ditto.
74         * loader/archive/cf/LegacyWebArchive.cpp:
75         (WebCore::LegacyWebArchive::create): Ditto.
76
77         * loader/cache/CachedCSSStyleSheet.cpp:
78         (WebCore::CachedCSSStyleSheet::finishLoading): Use SharedBuffer.
79         * loader/cache/CachedCSSStyleSheet.h: Ditto.
80         * loader/cache/CachedFont.cpp:
81         (WebCore::CachedFont::finishLoading): Ditto.
82         (WebCore::CachedFont::ensureCustomFontData): Ditto.
83         * loader/cache/CachedFont.h: Ditto.
84
85         * loader/cache/CachedImage.cpp:
86         (WebCore::CachedImage::didAddClient): Use SharedBuffer.
87         (WebCore::CachedImage::didRemoveClient): Ditto.
88         (WebCore::CachedImage::addIncrementalDataBuffer): Ditto. Changed to take
89         a reference rather than a pointer.
90         (WebCore::CachedImage::addDataBuffer): Ditto. Also added call through
91         to base class and changed to take a reference rather than a pointer.
92         (WebCore::CachedImage::addData): Ditto. Also added call through to base class.
93         (WebCore::CachedImage::finishLoading): Ditto.
94         * loader/cache/CachedImage.h: Ditto. Also changed the type of some bit fields
95         to be unsigned instead of unsigend char.
96
97         * loader/cache/CachedRawResource.cpp:
98         (WebCore::CachedRawResource::calculateIncrementalDataChunk): Use SharedBuffer.
99         (WebCore::CachedRawResource::addDataBuffer): Ditto. Changed to take
100         a reference rather than a pointer.
101         (WebCore::CachedRawResource::addData): Ditto.
102         (WebCore::CachedRawResource::finishLoading): Ditto.
103         (WebCore::CachedRawResource::canReuse): Ditto.
104         * loader/cache/CachedRawResource.h: Ditto.
105
106         * loader/cache/CachedResource.cpp:
107         (WebCore::CachedResource::CachedResource): Reordered data members due to change
108         in header.
109         (WebCore::CachedResource::addDataBuffer): Changed argument type.
110         (WebCore::CachedResource::finishLoading): Ditto.
111         (WebCore::CachedResource::didAddClient): Refactored to eliminate one extra hash
112         table lookup by using the return value from the remove function.
113         (WebCore::CachedResource::addClientToSet): Use std::make_unique directly instead
114         of using a function named "schedule" to allocate the callback object.
115         (WebCore::CachedResource::Callback::Callback): Changed function and data member
116         name.
117         (WebCore::CachedResource::Callback::cancel): Ditto.
118         (WebCore::CachedResource::Callback::timerFired): Ditto.
119         (WebCore::CachedResource::tryReplaceEncodedData): Changed to take a SharedBuffer&.
120
121         * loader/cache/CachedResource.h: Changed types to use SharedBuffer. Also made most
122         data members and one function member private instead of protected. Also renamed the
123         CachedResource::CachedResourceCallback function CachedResource::Callback and moved
124         its definition out of the CachedResource class definition.
125
126         * loader/cache/CachedResourceClient.h: Removed unneeded include.
127
128         * loader/cache/CachedSVGDocument.cpp:
129         (WebCore::CachedSVGDocument::finishLoading): Use SharedBuffer.
130
131         * loader/cache/CachedSVGDocument.h: Ditto. Made data members private.
132
133         * loader/cache/CachedScript.cpp:
134         (WebCore::CachedScript::finishLoading): Use SharedBuffer.
135         * loader/cache/CachedScript.h: Ditto. Also fixed indenting and removed unneeded
136         forward declaration.
137
138         * loader/cache/CachedTextTrack.cpp:
139         (WebCore::CachedTextTrack::updateData): Added, so that finishLoading does not
140         call addDataBuffer.
141         (WebCore::CachedTextTrack::addDataBuffer): Take SharedBuffer, call updateData.
142         (WebCore::CachedTextTrack::finishLoading): Ditto.
143         * loader/cache/CachedTextTrack.h: Take out unneeded explicit override of the
144         destructor. Updated for above changes.
145
146         * loader/cache/CachedXSLStyleSheet.cpp:
147         (WebCore::CachedXSLStyleSheet::finishLoading): Updated to use SharedBuffer.
148         * loader/cache/CachedXSLStyleSheet.h: Took out unneeded includes, made everything
149         private rather than protected. Added an explicit virtual constructor so we can
150         compile without knowing how to ref/deref TextResourceDecoder.
151
152         * loader/cf/SubresourceLoaderCF.cpp:
153         (WebCore::SubresourceLoader::didReceiveDataArray): Updated to use SharedBuffer
154         and to call addDataBuffer only if there is a new data buffer.
155
156         * loader/cocoa/DiskCacheMonitorCocoa.h: Use SharedBuffer& instead of PassRefPtr.
157         * loader/cocoa/DiskCacheMonitorCocoa.mm:
158         (WebCore::DiskCacheMonitor::DiskCacheMonitor): Ditto.
159         (WebCore::DiskCacheMonitor::resourceBecameFileBacked): Ditto.
160
161         * loader/icon/IconLoader.cpp:
162         (WebCore::IconLoader::notifyFinished): Use SharedBuffer* instead of
163         RefPtr<ResourceBuffer>.
164
165         * loader/mac/ResourceBuffer.mm: Removed.
166
167         * loader/mac/ResourceLoaderMac.mm:
168         (WebCore::ResourceLoader::didReceiveDataArray): Use SharedBuffer.
169
170         * platform/SharedBuffer.cpp:
171         (WebCore::SharedBuffer::clear): Use a modern for loop.
172         (WebCore::SharedBuffer::copy): Return a PassRef instead of a PassRefPtr, since
173         this never returns null. Use modern for loops.
174         (WebCore::SharedBuffer::copyBufferAndClear): Use a modern for loop.
175
176         * platform/SharedBuffer.h: Changed copy to return PassRef instead of PassRefPtr.
177         Changed tryReplaceContentsWithPlatformBuffer to take a reference rather than
178         a pointer.
179
180         * platform/cf/SharedBufferCF.cpp:
181         (WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Take a reference
182         instead of a pointer.
183
184         * platform/graphics/PlatformMediaResourceLoader.h: Removed unused function
185         bufferReceived and unneeded buffer argument from loadFinished. Also marked the
186         constructor explicit.
187
188         * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
189         Removed include of ResourceBuffer.h.
190         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
191         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Use
192         SharedBuffer directly.
193
194         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
195         (CachedResourceStreamingClient::loadFinished): Updated for change to
196         PlatformMediaResourceLoaderClient.
197
198         * platform/mac/PasteboardMac.mm: Removed include of ResourceBuffer.h.
199
200         * platform/soup/SharedBufferSoup.cpp: Removed unused, unneeded
201         tryReplaceContentsWithPlatformBuffer function.
202
203 2014-10-30  Chris Dumez  <cdumez@apple.com>
204
205         Move border-image-source / -webkit-mask-box-image-source to the new StyleBuilder
206         https://bugs.webkit.org/show_bug.cgi?id=138209
207
208         Reviewed by Andreas Kling.
209
210         Move border-image-source / -webkit-mask-box-image-source CSS properties
211         from DeprecatedStyleBuilder to the new StyleBuilder so that they are
212         now generated from CSSPropertyNames.in.
213
214         No new tests, no behavior change.
215
216         * css/CSSPropertyNames.in:
217         * css/DeprecatedStyleBuilder.cpp:
218         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
219         (WebCore::ApplyPropertyBorderImageSource::applyValue): Deleted.
220         (WebCore::ApplyPropertyBorderImageSource::createHandler): Deleted.
221         * css/StyleBuilderConverter.h:
222         (WebCore::StyleBuilderConverter::convertBorderImageSource):
223
224 2014-10-30  Jer Noble  <jer.noble@apple.com>
225
226         [EME] Add Setting for accessing storage location for MediaKeys data
227         https://bugs.webkit.org/show_bug.cgi?id=138147
228
229         Reviewed by Brady Eidson.
230
231         Allow MediaPlayerPrivateAVFoundationObjC to query for the MediaKeys storage directory
232         by piping that request down from WebKit and WebKit2 into Settings.
233
234         * html/HTMLMediaElement.cpp:
235         (WebCore::HTMLMediaElement::mediaKeysStorageDirectory): Get the location from Settings and
236             append the current origin.
237         * html/HTMLMediaElement.h:
238         * page/Settings.h:
239         (WebCore::Settings::setMediaKeysStorageDirectory): Simple setter.
240         (WebCore::Settings::mediaKeysStorageDirectory): Simple accessor.
241         * platform/graphics/MediaPlayer.cpp:
242         (WebCore::MediaPlayer::mediaKeysStorageDirectory): Pass through to m_client.
243         * platform/graphics/MediaPlayer.h:
244         (WebCore::MediaPlayerClient::mediaPlayerMediaKeysStorageDirectory): Default implementation.
245         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
246         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession): Fetch the location from MediaPlayer.
247         (WebCore::sessionStorageDirectory): Deleted.
248
249 2014-10-30  Dana Burkart  <dburkart@apple.com>
250
251         <rdar://problem/18821260> Prepare for the mysterious future
252
253         Reviewed by Lucas Forschler.
254
255         * Configurations/Base.xcconfig:
256         * Configurations/DebugRelease.xcconfig:
257         * Configurations/FeatureDefines.xcconfig:
258         * Configurations/Version.xcconfig:
259
260 2014-10-30  Simon Fraser  <simon.fraser@apple.com>
261
262         Short-circuit repaints with empty rects
263         https://bugs.webkit.org/show_bug.cgi?id=138234
264
265         Reviewed by Zalan Bujtas.
266         
267         Repaints with an empty rectangle are common enough that it's worth
268         short-circuiting them.
269
270         * rendering/RenderObject.cpp:
271         (WebCore::RenderObject::repaintUsingContainer):
272
273 2014-10-30  Chris Dumez  <cdumez@apple.com>
274
275         Clean up virtual functions in css/
276         https://bugs.webkit.org/show_bug.cgi?id=138230
277
278         Reviewed by Benjamin Poulain.
279
280         Clean up virtual functions in css/ by:
281         - Making virtual functions final when possible
282         - Making classes final when possible
283         - Using 'override' when appropriate
284         - Explicitly marking functions / destructors as virtual when they are
285           inherently virtual
286         - Making isXXX() virtual functions private on XXX classes to avoid
287           unnecessary type checks
288
289         No new tests, no behavior change.
290
291         * WebCore.exp.in:
292         * css/CSSBasicShapes.h:
293         * css/CSSCharsetRule.h:
294         * css/CSSComputedStyleDeclaration.h:
295         * css/CSSCrossfadeValue.h:
296         * css/CSSFilterImageValue.h:
297         * css/CSSFontFaceLoadEvent.h:
298         * css/CSSFontFaceRule.h:
299         * css/CSSFontFaceSource.h:
300         * css/CSSImportRule.h:
301         * css/CSSMediaRule.h:
302         * css/CSSPageRule.h:
303         * css/CSSRuleList.h:
304         (WebCore::StaticCSSRuleList::ref): Deleted.
305         (WebCore::StaticCSSRuleList::styleSheet): Deleted.
306         (WebCore::StaticCSSRuleList::length): Deleted.
307         (WebCore::StaticCSSRuleList::item): Deleted.
308         (WebCore::LiveCSSRuleList::ref): Deleted.
309         (WebCore::LiveCSSRuleList::deref): Deleted.
310         (WebCore::LiveCSSRuleList::length): Deleted.
311         (WebCore::LiveCSSRuleList::item): Deleted.
312         (WebCore::LiveCSSRuleList::styleSheet): Deleted.
313         * css/CSSStyleRule.h:
314         * css/CSSSupportsRule.h:
315         * css/CSSUnknownRule.h:
316         * css/FontLoader.h:
317         * css/PropertySetCSSStyleDeclaration.h:
318         (WebCore::PropertySetCSSStyleDeclaration::parentElement):
319         * css/WebKitCSSKeyframeRule.h:
320         * css/WebKitCSSViewportRule.h:
321
322 2014-10-30  Tim Horton  <timothy_horton@apple.com>
323
324         Long spins under rangeExpandedAroundPosition on Yahoo Mail
325         https://bugs.webkit.org/show_bug.cgi?id=138223
326         <rdar://problem/18819547>
327
328         Reviewed by Enrica Casucci.
329
330         * WebCore.exp.in:
331         Export some things.
332
333 2014-10-30  Ada Chan  <adachan@apple.com>
334
335         The Page's muted setting should not affect the HTMLMediaElement's 'muted' IDL attribute.
336         https://bugs.webkit.org/show_bug.cgi?id=138215
337
338         Reviewed by Eric Carlson.
339
340         Add m_muted in Page to keep track of the Page's muted state. Change AudioProducer::setMuted()
341         to pageMutedStateDidChange(). When that method is called, the AudioProducer is supposed to
342         update its muted state again taking the Page's muted state into account.
343
344         Add HTMLMediaElement::effectiveMuted(), which returns the effective muted state of the
345         HTMLMediaElement, taking the Page's muted state into account.
346
347         Test: media/video-muted-after-setting-page-muted-state.html
348
349         * dom/Document.cpp:
350         (WebCore::Document::pageMutedStateDidChange):
351         (WebCore::Document::setMuted): Deleted.
352         * dom/Document.h:
353         * html/HTMLMediaElement.cpp:
354         (WebCore::HTMLMediaElement::setMuted):
355         Set the MediaPlayer's muted state to the result of effectiveMuted() rather than m_muted.
356         (WebCore::HTMLMediaElement::updateVolume):
357         Ditto, and also make sure the MediaController's muted state does not override the Page's
358         muted state.
359         (WebCore::HTMLMediaElement::updatePlayState):
360         Set the MediaPlayer's muted state to the result of effectiveMuted() rather than muted().
361         (WebCore::HTMLMediaElement::pageMutedStateDidChange):
362         Call updateVolume(), which will update the MediaPlayer's muted state.
363         (WebCore::HTMLMediaElement::effectiveMuted):
364         Figure out the muted value taking Page's muted state into account.
365         * html/HTMLMediaElement.h:
366         * page/AudioProducer.h:
367         * page/Page.cpp:
368         (WebCore::Page::Page):
369         (WebCore::Page::setMuted):
370         Update m_muted, and only iterate through the frames' documents to call pageMutedStateDidChange()
371         if m_muted changes.
372         * page/Page.h:
373         (WebCore::Page::isMuted):
374         * testing/Internals.cpp:
375         (WebCore::Internals::setPageMuted):
376         Expose a way to set the Page's muted state in Internals for testing.
377         * testing/Internals.h:
378         * testing/Internals.idl:
379
380 2014-10-30  Myles C. Maxfield  <mmaxfield@apple.com>
381
382         Use references in calculateMinimumPageHeight() for non-optional arguments
383         https://bugs.webkit.org/show_bug.cgi?id=138231
384
385         Reviewed by Dean Jackson.
386
387         No new tests because there is no behavior change.
388
389         * rendering/RenderBlockFlow.cpp:
390         (WebCore::calculateMinimumPageHeight):
391         (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
392
393 2014-10-30  Chris Dumez  <cdumez@apple.com>
394
395         Move -webkit-border-image / -webkit-mask-box-image to the new StyleBuilder
396         https://bugs.webkit.org/show_bug.cgi?id=138207
397
398         Reviewed by Andreas Kling.
399
400         Move -webkit-border-image / -webkit-mask-box-image CSS properties to
401         the new StyleBuilder so that they are now generated from
402         CSSPropertyNames.in.
403
404         No new tests, no behavior change.
405
406         * css/CSSPropertyNames.in:
407         * css/DeprecatedStyleBuilder.cpp:
408         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
409         (WebCore::ApplyPropertyBorderImage::applyValue): Deleted.
410         (WebCore::ApplyPropertyBorderImage::createHandler): Deleted.
411         * css/StyleBuilderConverter.h:
412         (WebCore::StyleBuilderConverter::convertBorderImage):
413         (WebCore::StyleBuilderConverter::convertBorderMask):
414
415 2014-10-30  Chris Dumez  <cdumez@apple.com>
416
417         Optimize HTMLVideoElement / HTMLAudioElement type checks a bit
418         https://bugs.webkit.org/show_bug.cgi?id=138202
419
420         Reviewed by Benjamin Poulain.
421
422         Optimize HTMLVideoElement / HTMLAudioElement type checks a bit by:
423         1. Using is<HTMLMediaElement>() instead of
424            (is<HTMLVideoElement>() || is<HTMLAudioElement>()) if the caller is
425            interested in both video and audio elements. This is faster because
426            it ends up doing:
427                - virtual call to Element::isMediaElement()
428            instead of
429                - Node::isHTMLElement() +
430                  virtual call to HTMLElement::isHTMLUnknownElement() +
431                  2 * HTMLElement::hasTagName()
432         2. Updating HTMLVideoElement / HTMLAudioElement type traits
433            specializations to:
434            - Avoid doing any virtual function call if the input type is an
435              HTMLMediaElement (which is common in the code base).
436            - Speed up check if the input is an Element by doing:
437                - virtual call to Element::isMediaElement() +
438                  HTMLElement::hasTagName()
439              instead of
440                - Node::isHTMLElement() +
441                  virtual call to !HTMLElement::isHTMLUnknownElement() +
442                  HTMLElement::hasTagName()
443              The speed stays the same if the input is a Node or an HTMLElement.
444
445         No new tests, no behavior change.
446
447         * css/CSSDefaultStyleSheets.cpp:
448         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
449         * dom/make_names.pl:
450         (defaultTagPropertyHash):
451         (printTypeHelpers):
452         * html/HTMLAudioElement.h:
453         (isType):
454         * html/HTMLImageLoader.cpp:
455         * html/HTMLTagNames.in:
456         * html/HTMLVideoElement.h:
457         (isType):
458         * page/ChromeClient.h:
459
460 2014-10-30  Myles C. Maxfield  <mmaxfield@apple.com>
461
462         Migrate ComplexTextControllerCoreText to use SPI instead of WKSI
463         https://bugs.webkit.org/show_bug.cgi?id=138228
464
465         Reviewed by Simon Fraser.
466
467         No new tests because there is no behavior change.
468
469         * WebCore.xcodeproj/project.pbxproj:
470         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
471         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
472         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
473         * platform/spi/cocoa/CoreTextSPI.h: Added.
474
475 2014-10-30  Eric Carlson  <eric.carlson@apple.com>
476
477         Add diagnostic logging to track page loads.
478         https://bugs.webkit.org/show_bug.cgi?id=138205
479         <rdar://problem/18173017>
480
481         Reviewed by Jer Noble.
482
483         * loader/FrameLoader.cpp:
484         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Log page load success or failure.
485
486         * page/DiagnosticLoggingKeys.cpp:
487         (WebCore::DiagnosticLoggingKeys::pageLoadedKey): New.
488         * page/DiagnosticLoggingKeys.h:
489
490 2014-10-24  Philippe Normand  <pnormand@igalia.com>
491
492         [GStreamer] Video resolution changes trigger a crash in the TextureMapper
493         https://bugs.webkit.org/show_bug.cgi?id=137065
494
495         Reviewed by Gustavo Noronha Silva.
496
497         Switch to GstSample for buffer+caps communication between the
498         video sink and the player. Using a single object type for this
499         avoid issues where the caps might not correctly describe the
500         buffer contents anymore, for example when the video resolution is
501         changed.
502
503         * platform/graphics/gstreamer/ImageGStreamer.h: Use GstSample
504         instead of GstBuffer+GstCaps.
505         (WebCore::ImageGStreamer::createImage):
506         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Ditto.
507         (ImageGStreamer::ImageGStreamer):
508         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
509         (WebCore::mediaPlayerPrivateRepaintCallback): The repaint signal
510         now uses a GstSample instead of a GstBuffer.
511         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
512         Store the current sample instead of a buffer. Also renamed the
513         mutex protecting access to the sample.
514         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): Ditto.
515         (WebCore::MediaPlayerPrivateGStreamerBase::naturalSize): Return
516         early if no sample is available. The caps used to get the video
517         size are store in the sample.
518         (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Use
519         GstSample instead of GstBuffer.
520         (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): Ditto.
521         (WebCore::MediaPlayerPrivateGStreamerBase::paint): Ditto.
522         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
523         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Now store a
524         GstSample internally. Also removed the now useless current-caps property.
525         (_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate): Renamed the
526         mutex protecting access to the sample.
527         (_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Ditto.
528         (webkit_video_sink_init): Disable last-sample in basesink since we
529         already store one in our sink anyway.
530         (webkitVideoSinkTimeoutCallback): Switch to GstSample.
531         (webkitVideoSinkRender): Ditto.
532         (unlockSampleMutex): Ditto.
533         (webkitVideoSinkUnlock): Ditto.
534         (webkitVideoSinkUnlockStop): Ditto.
535         (webkitVideoSinkStop): Ditto!
536         (webkitVideoSinkStart): Ditto.
537         (webkit_video_sink_class_init): Drop current-caps property.
538         (webkitVideoSinkGetProperty): Deleted.
539         (unlockBufferMutex): Deleted.
540
541 2014-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
542
543         FormDataBuilder should not use Document
544         https://bugs.webkit.org/show_bug.cgi?id=138172
545
546         Reviewed by Alexey Proskuryakov.
547
548         It's only used by encodingFromAcceptCharset() to fallback to
549         document input encoding. That method is only used by
550         FormSubmission::create(), so it could be moved as a static
551         function to FormSubmission.cpp.
552
553         * loader/FormSubmission.cpp:
554         (WebCore::encodingFromAcceptCharset):
555         (WebCore::FormSubmission::create):
556         * platform/network/FormDataBuilder.cpp:
557         (WebCore::FormDataBuilder::encodingFromAcceptCharset): Deleted.
558         * platform/network/FormDataBuilder.h:
559
560 2014-10-29  Said Abou-Hallawa  <sabouhallawa@apple.com>
561
562         ASSERTION NOT REACHED because RenderStyle::setWordSpacing() does not handle a Length value of type 'Calculated'.
563         https://bugs.webkit.org/show_bug.cgi?id=138054.
564
565         Reviewed by Zalan Bujtas.
566
567         A Length of type 'Calculated' can be generated from blending two lengths of
568         different types. Setting the wordSpacing of the render style should be handled
569         correctly when the type of the new value is 'Calculated'.
570
571         Tests: css3/calculated-word-spacing.html.
572
573         Add a case for setting the render style wordSpacing to a <length> of type 'Calculated'.
574         * rendering/style/RenderStyle.cpp:
575         (WebCore::RenderStyle::setWordSpacing):
576
577 2014-10-29  Hunseop Jeong  <hs85.jeong@samsung.com>
578
579         [CoordinatedGraphics] Use modern for-loops
580         https://bugs.webkit.org/show_bug.cgi?id=138168
581
582         Reviewed by Andreas Kling.
583
584         No new tests as there is no change in functionality.
585
586         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Use a modern for loop.
587         (WebCore::CompositingCoordinator::renderNextFrame):
588         (WebCore::CompositingCoordinator::paintToSurface):
589         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Use a modern for loop.
590         (WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
591         (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
592         (WebCore::CoordinatedGraphicsLayer::syncChildren):
593         (WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
594         (WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively):
595         (WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):
596         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Use a modern for loop.
597         (WebCore::CoordinatedImageBacking::updateVisibilityIfNeeded):
598
599 2014-10-29  Chris Dumez  <cdumez@apple.com>
600
601         Final-ize more of TextFieldInputType's virtual functions
602         https://bugs.webkit.org/show_bug.cgi?id=138194
603
604         Reviewed by Andreas Kling.
605
606         Final-ize more of TextFieldInputType's virtual functions for
607         performance.
608
609         No new tests, no behavior change.
610
611         * html/TextFieldInputType.h:
612
613 2014-10-29  Chris Dumez  <cdumez@apple.com>
614
615         Clean up virtual functions in inspector/
616         https://bugs.webkit.org/show_bug.cgi?id=138190
617
618         Reviewed by Andreas Kling.
619
620         Clean up virtual functions in inspector/ by:
621         - Making virtual functions final when possible
622         - Making classes final when possible
623         - Explicitly marking functions / destructors as virtual when they are
624           inherently virtual
625         - Making isXXX() virtual functions private on XXX classes to avoid
626           unnecessary type checks
627
628         No new tests, no behavior change.
629
630         * inspector/InspectorApplicationCacheAgent.h:
631         (WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent): Deleted.
632         * inspector/InspectorCSSAgent.h:
633         * inspector/InspectorDOMAgent.h:
634         * inspector/InspectorDOMDebuggerAgent.h:
635         * inspector/InspectorDOMStorageAgent.h:
636         * inspector/InspectorDatabaseAgent.h:
637         * inspector/InspectorFrontendClientLocal.h:
638         * inspector/InspectorIndexedDBAgent.h:
639         * inspector/InspectorLayerTreeAgent.h:
640         * inspector/InspectorPageAgent.h:
641         * inspector/InspectorReplayAgent.h:
642         * inspector/InspectorResourceAgent.h:
643         * inspector/InspectorStyleSheet.h:
644         * inspector/InspectorTimelineAgent.h:
645         * inspector/InspectorWorkerAgent.h:
646         * inspector/PageConsoleAgent.h:
647         * inspector/WorkerInspectorController.h:
648
649 2014-10-29  Andreas Kling  <akling@apple.com>
650
651         Generalize dirtying of parent's line boxes when taking a renderer out of tree.
652         <https://webkit.org/b/138152>
653
654         Reviewed by Antti Koivisto.
655
656         Instead of calling dirtyLinesFromChangedChild() when certain types of renderers
657         are about to be destroyed, always do this in RenderElement::willBeRemovedFromTree().
658
659         This is part of an effort to make render tree teardown less incomprehensible.
660
661         We still don't bother at all if we're in the process of tearing down the entire
662         render tree, since that would be a waste of time.
663
664         * rendering/RenderBlock.cpp:
665         (WebCore::RenderBlock::willBeDestroyed):
666         * rendering/RenderBlockFlow.cpp:
667         (WebCore::RenderBlockFlow::willBeDestroyed):
668         * rendering/RenderElement.cpp:
669         (WebCore::RenderElement::willBeRemovedFromTree):
670         * rendering/RenderInline.cpp:
671         (WebCore::RenderInline::willBeDestroyed):
672         * rendering/RenderReplaced.cpp:
673         (WebCore::RenderReplaced::willBeDestroyed): Deleted.
674         * rendering/RenderReplaced.h:
675
676 2014-10-28  Ada Chan  <adachan@apple.com>
677
678         Implement WKPageSetMuted(bool).
679         https://bugs.webkit.org/show_bug.cgi?id=138158
680
681         Reviewed by Anders Carlsson.
682
683         * WebCore.exp.in:
684         * page/Page.h:
685
686 2014-10-29  Alexey Proskuryakov  <ap@apple.com>
687
688         Notify Settings object when its Page object goes away.
689         https://bugs.webkit.org/show_bug.cgi?id=138183
690         rdar://problem/18786900
691
692         Reviewed by Andreas Kling.
693
694         I could not make a test for this issue.
695
696         * page/Page.cpp:
697         (WebCore::Page::~Page):
698         * page/Settings.cpp:
699         (WebCore::setImageLoadingSettings):
700         (WebCore::Settings::Settings):
701         (WebCore::Settings::setTextAutosizingEnabled):
702         (WebCore::Settings::setTextAutosizingWindowSizeOverride):
703         (WebCore::Settings::setTextAutosizingFontScaleFactor):
704         (WebCore::Settings::setMediaTypeOverride):
705         (WebCore::Settings::setScriptEnabled):
706         (WebCore::Settings::setUserStyleSheetLocation):
707         (WebCore::Settings::setMinDOMTimerInterval):
708         (WebCore::Settings::minDOMTimerInterval):
709         (WebCore::Settings::domTimerAlignmentInterval):
710         (WebCore::Settings::setUsesPageCache):
711         (WebCore::Settings::setScreenFontSubstitutionEnabled):
712         (WebCore::Settings::setFontRenderingMode):
713         (WebCore::Settings::setDNSPrefetchingEnabled):
714         (WebCore::Settings::setStorageBlockingPolicy):
715         (WebCore::Settings::setBackgroundShouldExtendBeyondPage):
716         (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
717         (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
718         (WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
719         (WebCore::Settings::setFontFallbackPrefersPictographs):
720         * page/Settings.h:
721         (WebCore::Settings::pageDestroyed):
722
723 2014-10-29  Zalan Bujtas  <zalan@apple.com>
724
725         Remove invalid float from RootInlineBox.
726         https://bugs.webkit.org/show_bug.cgi?id=137707
727
728         Reviewed by Antti Koivisto.
729
730         In certain cases, floating boxes get attached to the last (root) inline box.
731         When this particular floating box gets destroyed, it also needs to be detached
732         from the last inline box.
733         1. Introduce RootInlineBox::removeFloat() (vs. RootInlineBox::appendFloat())
734         2. Ensure that it is called when the floating box is being destroyed.
735
736         Test: fast/inline/crash-when-inline-box-has-invalid-float.html
737
738         * rendering/RenderBlockFlow.cpp:
739         (WebCore::RenderBlockFlow::removeFloatingObject):
740         (WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout): During style recalc, while
741         tearing down the render tree, we can get to a state where a block element has both inline and block children.
742         It happens when the style change on an element makes sibling anonymous block wrappers detached.
743         In that case the markAllDescendantsWithFloatsForLayout() call does not get propagated down on the
744         block child elements as we return early at the childrenInline() check.
745         * rendering/RootInlineBox.h:
746         (WebCore::RootInlineBox::removeFloat):
747
748 2014-10-29  Antti Koivisto  <antti@apple.com>
749
750         Factor cache validity computation functions out of CachedResource
751         https://bugs.webkit.org/show_bug.cgi?id=138156
752
753         Reviewed by Andreas Kling.
754
755         These can be used to implement cache logic on WebKit level.
756
757         * CMakeLists.txt:
758         * WebCore.exp.in:
759         * WebCore.vcxproj/WebCore.vcxproj:
760         * WebCore.xcodeproj/project.pbxproj:
761         * loader/CacheValidation.cpp: Added.
762         (WebCore::computeCurrentAge):
763         (WebCore::computeFreshnessLifetimeForHTTPFamily):
764         (WebCore::updateRedirectChainStatus):
765         (WebCore::redirectChainAllowsReuse):
766         * loader/CacheValidation.h: Added.
767         (WebCore::RedirectChainCacheStatus::RedirectChainCacheStatus):
768         * loader/cache/CachedResource.cpp:
769         (WebCore::updateResponseHeadersAfterRevalidation):
770         (WebCore::CachedResource::CachedResource):
771         (WebCore::CachedResource::isExpired):
772         (WebCore::CachedResource::freshnessLifetime):
773         (WebCore::CachedResource::willSendRequest):
774         (WebCore::CachedResource::updateResponseAfterRevalidation):
775         (WebCore::CachedResource::redirectChainAllowsReuse):
776         (WebCore::currentAge): Deleted.
777         * loader/cache/CachedResource.h:
778
779 2014-10-29  Antti Koivisto  <antti@apple.com>
780
781         Unreviewed, rolling out r175342.
782
783         a file ended up in a wrong directory
784
785         Reverted changeset:
786
787         "Factor cache validity computation functions out of
788         CachedResource"
789         https://bugs.webkit.org/show_bug.cgi?id=138156
790         http://trac.webkit.org/changeset/175342
791
792 2014-10-29  Antti Koivisto  <antti@apple.com>
793
794         Factor cache validity computation functions out of CachedResource
795         https://bugs.webkit.org/show_bug.cgi?id=138156
796
797         Reviewed by Andreas Kling.
798
799         These can be used to implement cache logic on WebKit level.
800
801         * CMakeLists.txt:
802         * WebCore.exp.in:
803         * WebCore.vcxproj/WebCore.vcxproj:
804         * WebCore.xcodeproj/project.pbxproj:
805         * loader/CacheValidation.cpp: Added.
806         (WebCore::computeCurrentAge):
807         (WebCore::computeFreshnessLifetimeForHTTPFamily):
808         (WebCore::updateRedirectChainStatus):
809         (WebCore::redirectChainAllowsReuse):
810         * loader/CacheValidation.h: Added.
811         (WebCore::RedirectChainCacheStatus::RedirectChainCacheStatus):
812         * loader/cache/CachedResource.cpp:
813         (WebCore::updateResponseHeadersAfterRevalidation):
814         (WebCore::CachedResource::CachedResource):
815         (WebCore::CachedResource::isExpired):
816         (WebCore::CachedResource::freshnessLifetime):
817         (WebCore::CachedResource::willSendRequest):
818         (WebCore::CachedResource::updateResponseAfterRevalidation):
819         (WebCore::CachedResource::redirectChainAllowsReuse):
820         (WebCore::currentAge): Deleted.
821         * loader/cache/CachedResource.h:
822
823 2014-10-28  Ada Chan  <adachan@apple.com>
824
825         Add API to mute/unmute a page.
826         https://bugs.webkit.org/show_bug.cgi?id=138150
827
828         Reviewed by Eric Carlson.
829
830         No new tests, since it's difficult to test whether the Page has indeed been muted.
831
832         * dom/Document.cpp:
833         (WebCore::Document::setMuted):
834         Go through each AudioProducer and call setMuted() on it.
835         * dom/Document.h:
836         * page/AudioProducer.h:
837         Add setMuted(bool). HTMLMediaElement, the only derived class of AudioProducer so far,
838         has already implemented setMuted().
839         * page/Page.cpp:
840         (WebCore::Page::setMuted):
841         Go through all its frames and call setMuted() on each frame's Document.
842         * page/Page.h:
843
844 2014-10-29  Tim Horton  <timothy_horton@apple.com>
845
846         Implement action menus for data detected items
847         https://bugs.webkit.org/show_bug.cgi?id=138178
848         <rdar://problem/18709436>
849
850         Reviewed by Anders Carlsson.
851
852         * WebCore.exp.in:
853         Export a symbol from Position that we need.
854
855         * WebCore.xcodeproj/project.pbxproj:
856         * platform/spi/mac/DataDetectorsSPI.h:
857         Add a combined SPI header for all of the random bits of DataDetectors that we use.
858
859 2014-10-29  Jer Noble  <jer.noble@apple.com>
860
861         [EME] NULL-dereference crash in MediaKeys::setMediaElement().
862         https://bugs.webkit.org/show_bug.cgi?id=138177
863
864         Reviewed by Eric Carlson.
865
866         NULL-check m_mediaElement->player() before using. It may have been cleared if the HTMLMediaElement
867         has previously had stop() called.
868
869         * Modules/encryptedmedia/MediaKeys.cpp:
870         (WebCore::MediaKeys::setMediaElement):
871
872 2014-10-29  Jer Noble  <jer.noble@apple.com>
873
874         [EME] MediaKeySession resources persist across page reloads
875         https://bugs.webkit.org/show_bug.cgi?id=138176
876
877         Reviewed by Eric Carlson.
878
879         MediaKeySession is an ActiveDOMObject, so when told to stop() by our execution context,
880         close() the session, releasing all our resources.
881
882         * Modules/encryptedmedia/MediaKeySession.h:
883
884 2014-10-29  Jer Noble  <jer.noble@apple.com>
885
886         [EME][Mac] MediaKeySession type "keyrelease" is ignored.
887         https://bugs.webkit.org/show_bug.cgi?id=138175
888
889         Reviewed by Eric Carlson.
890
891         To indicate that they would like to recevie expired session confirmation messages, clients
892         will create a MediaKeySession with a type parameter of "keyrelease". The code which validates
893         this type needs to be updated to recognize "keyrelease" as a valid type.
894
895         Also, the code which validates update() requests needs to allow updates containing the string
896         "acknowledged", so that clients can request the confirmation messages be discarded.
897
898         * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
899         (WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType):
900         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
901         (WebCore::CDMSessionMediaSourceAVFObjC::update):
902
903 2014-10-28  Ada Chan  <adachan@apple.com>
904
905         Remove MediaSessionClient::hasMediaCharacteristics() and MediaSessionClient::mediaStateDidChange().
906         https://bugs.webkit.org/show_bug.cgi?id=138153
907
908         Reviewed by Jer Noble.
909
910         After http://trac.webkit.org/changeset/175273, Document no longer keeps a set of MediaSessions
911         and it doesn't need to query each MediaSession for its characteristics and play state.
912         MediaSessionClient::hasMediaCharacteristics() is no longer needed and MediaSessionClient::mediaStateDidChange()
913         can be removed if HTMLMediaElement calls Document::updateIsPlayingAudio() after m_playing has changed.
914
915         No new tests, no behavior change.
916
917         * html/HTMLMediaElement.cpp:
918         (WebCore::HTMLMediaElement::updatePlayState):
919         Call setPlaying() rather than setting m_playing directly.
920         (WebCore::HTMLMediaElement::setPlaying):
921         Update m_playing. If it has changed, call Document::updateIsPlayingAudio().
922         (WebCore::HTMLMediaElement::setPausedInternal):
923         Call setPlaying() rather than setting m_playing directly.
924         (WebCore::HTMLMediaElement::isPlayingAudio):
925         Call isPlaying() directly rather than checking the MediaSession's state.
926         * html/HTMLMediaElement.h:
927         * platform/audio/MediaSession.cpp:
928         (WebCore::MediaSession::setState):
929         MediaSessionClient::mediaStateDidChange() has been removed.
930         (WebCore::MediaSession::hasMediaCharacteristics): Deleted.
931         * platform/audio/MediaSession.h:
932         (WebCore::MediaSessionClient::mediaStateDidChange): Deleted.
933         * platform/audio/ios/AudioDestinationIOS.h:
934         * platform/audio/mac/AudioDestinationMac.h:
935
936 2014-10-29  Chris Dumez  <cdumez@apple.com>
937
938         Clean up virtual functions in html/
939         https://bugs.webkit.org/show_bug.cgi?id=138166
940
941         Reviewed by Andreas Kling.
942
943         Clean up virtual functions in html/ by:
944         - Making virtual functions final when possible
945         - Making classes final when possible
946         - Using 'override' when appropriate
947         - Explicitly marking functions / destructors as virtual when they are
948           inherently virtual
949         - Dropping virtual destructors when the class does not have subclasses
950           and mark the class as final, to get rid of unnecessary vtables
951         - Making isXXX() virtual functions private on XXX classes to avoid
952           unnecessary type checks
953         - De-virtualizing some functions that do not need to be virtual
954         - Dropping final for virtual functions in classes already marked as
955           final
956
957         No new tests, no behavior change.
958
959         * html/ButtonInputType.h:
960         * html/CheckboxInputType.h:
961         * html/ColorInputType.h:
962         * html/DOMSettableTokenList.h:
963         * html/DateInputType.h:
964         * html/DateTimeInputType.h:
965         * html/DateTimeLocalInputType.h:
966         * html/EmailInputType.h:
967         * html/FTPDirectoryDocument.h:
968         * html/HTMLAnchorElement.h:
969         * html/HTMLDetailsElement.cpp:
970         * html/HTMLFormControlElement.h:
971         * html/HTMLFormControlsCollection.h:
972         * html/HTMLFrameElement.h:
973         * html/HTMLFrameElementBase.h:
974         * html/HTMLFrameOwnerElement.h:
975         * html/HTMLInputElement.h:
976         * html/HTMLMarqueeElement.h:
977         * html/HTMLMediaElement.h:
978         * html/HTMLMediaSession.h:
979         (WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring): Deleted.
980         * html/HTMLMeterElement.h:
981         * html/HTMLNameCollection.h:
982         * html/HTMLObjectElement.h:
983         * html/HTMLOptGroupElement.h:
984         * html/HTMLOptionElement.h:
985         * html/HTMLSpanElement.h:
986         * html/HTMLStyleElement.h:
987         * html/HTMLSummaryElement.cpp:
988         * html/HTMLSummaryElement.h:
989         * html/HTMLUnknownElement.h:
990         * html/HTMLVideoElement.h:
991         * html/HiddenInputType.h:
992         * html/ImageInputType.h:
993         * html/MediaKeyEvent.h:
994         * html/MonthInputType.h:
995         * html/NumberInputType.h:
996         * html/PasswordInputType.h:
997         * html/PublicURLManager.h:
998         * html/RadioInputType.h:
999         * html/ResetInputType.h:
1000         * html/SubmitInputType.h:
1001         * html/TelephoneInputType.h:
1002         * html/TextInputType.h:
1003         * html/TimeInputType.h:
1004         * html/URLInputType.h:
1005         * html/WeekInputType.h:
1006         * html/canvas/ANGLEInstancedArrays.h:
1007         * html/canvas/CanvasRenderingContext2D.h:
1008         * html/canvas/DOMPath.h:
1009         * html/canvas/EXTShaderTextureLOD.h:
1010         * html/canvas/EXTTextureFilterAnisotropic.h:
1011         * html/canvas/OESElementIndexUint.h:
1012         * html/canvas/OESStandardDerivatives.h:
1013         * html/canvas/OESTextureFloat.h:
1014         * html/canvas/OESTextureFloatLinear.h:
1015         * html/canvas/OESTextureHalfFloat.h:
1016         * html/canvas/OESTextureHalfFloatLinear.h:
1017         * html/canvas/OESVertexArrayObject.h:
1018         * html/canvas/WebGLBuffer.h:
1019         * html/canvas/WebGLCompressedTextureATC.h:
1020         * html/canvas/WebGLCompressedTexturePVRTC.h:
1021         * html/canvas/WebGLCompressedTextureS3TC.h:
1022         * html/canvas/WebGLContextAttributes.h:
1023         * html/canvas/WebGLContextEvent.h:
1024         * html/canvas/WebGLDebugRendererInfo.h:
1025         * html/canvas/WebGLDebugShaders.h:
1026         * html/canvas/WebGLDepthTexture.h:
1027         * html/canvas/WebGLDrawBuffers.h:
1028         * html/canvas/WebGLFramebuffer.h:
1029         (WebCore::WebGLFramebuffer::isFramebuffer): Deleted.
1030         * html/canvas/WebGLLoseContext.h:
1031         * html/canvas/WebGLProgram.h:
1032         * html/canvas/WebGLRenderbuffer.h:
1033         * html/canvas/WebGLRenderingContext.h:
1034         * html/canvas/WebGLShader.h:
1035         * html/canvas/WebGLSharedObject.h:
1036         (WebCore::WebGLSharedObject::isFramebuffer): Deleted.
1037         * html/canvas/WebGLTexture.h:
1038         * html/canvas/WebGLVertexArrayObjectOES.h:
1039         (WebCore::WebGLVertexArrayObjectOES::isVertexArray): Deleted.
1040         * html/shadow/ImageControlsRootElement.h:
1041         * html/shadow/InsertionPoint.h:
1042         * html/shadow/MediaControlElementTypes.h:
1043         * html/shadow/MediaControlElements.h:
1044         * html/shadow/MediaControls.h:
1045         * html/shadow/MediaControlsApple.h:
1046         * html/shadow/SpinButtonElement.h:
1047         * html/track/AudioTrack.h:
1048         * html/track/AudioTrackList.h:
1049         * html/track/DataCue.h:
1050         (WebCore::DataCue::cueType): Deleted.
1051         * html/track/InbandDataTextTrack.h:
1052         * html/track/InbandGenericTextTrack.h:
1053         * html/track/InbandTextTrack.h:
1054         * html/track/InbandWebVTTTextTrack.h:
1055         * html/track/LoadableTextTrack.h:
1056         * html/track/TextTrackList.h:
1057         * html/track/TrackEvent.h:
1058         * html/track/VTTCue.h:
1059         (WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
1060         * html/track/VTTRegion.h:
1061         * html/track/VideoTrack.h:
1062         * html/track/VideoTrackList.h:
1063         * html/track/WebVTTParser.h:
1064         (WebCore::WebVTTCueData::~WebVTTCueData): Deleted.
1065
1066 2014-10-17  Sergio Villar Senin  <svillar@igalia.com>
1067
1068         ASSERTION FAILED: growthShare > 0 in WebCore::RenderGrid::distributeSpaceToTracks
1069         https://bugs.webkit.org/show_bug.cgi?id=137772
1070
1071         Reviewed by Andreas Kling.
1072
1073         We're hitting the ASSERTION because if the number of tracks an
1074         item spans does greatly exceed the available logical space, then
1075         the result of the division availableLogicalSpace/numberOfTracks is
1076         truncated to 0. So the ASSERTION was theoretically right because
1077         the result has to be always >0 (as the dividend > 0) but the fact
1078         that the result is a LayoutUnit forces us to accept 0 as a valid
1079         outcome of the operation.
1080
1081         Test: fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash.html
1082
1083         * rendering/RenderGrid.cpp:
1084         (WebCore::RenderGrid::distributeSpaceToTracks):
1085
1086 2014-10-29  Chris Dumez  <cdumez@apple.com>
1087
1088         Crash in CachedRawResource::canReuse() when reloading http://dnd.wizards.com/dungeons-and-dragons/story
1089         https://bugs.webkit.org/show_bug.cgi?id=138164
1090
1091         Reviewed by Andreas Kling.
1092
1093         This patch fixes a crash when reloading the following URL:
1094         http://dnd.wizards.com/dungeons-and-dragons/story
1095
1096         We were crashing in CachedRawResource::canReuse() because header.key
1097         would sometimes be a null String and we would call
1098         HashMap::get(nullString).
1099
1100         The real issue was that header.key was null in the first place, which
1101         means that even though the HTTPHeaderMap iterator is valid, it->key
1102         is a null String, which should never happen. There was a bug in the
1103         HTTPHeaderMapConstIterator() constructor that would cause the
1104         iterator key/value pair to not get initialized if the HTTPHeaderMap
1105         contained *only* uncommon HTTP headers. This patch updates the
1106         constructor so that we fall back to updating the key/value from the
1107         uncommon header map, if we failed to initialized from the common
1108         header map (because it was empty).
1109
1110         Test: http/tests/cache/xhr-uncommon-header.html
1111
1112         * platform/network/HTTPHeaderMap.h:
1113         (WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::HTTPHeaderMapConstIterator):
1114
1115 2014-10-28  Benjamin Poulain  <benjamin@webkit.org>
1116
1117         CSS4 Selectors: Add the pseudo class :any-link
1118         https://bugs.webkit.org/show_bug.cgi?id=138128
1119
1120         Reviewed by Andreas Kling.
1121
1122         Defined here: http://dev.w3.org/csswg/selectors4/#the-any-link-pseudo
1123
1124         After :link and :-webkit-any-link were fixed, :any-link behaves
1125         exactly like :-webkit-any-link. All I had left to do here was
1126         make them synonyms when evaluating selectors.
1127
1128         Defined here: http://dev.w3.org/csswg/selectors4/#the-any-link-pseudo
1129
1130         After :link and :-webkit-any-link were fixed, :any-link behaves
1131         exactly like :-webkit-any-link. All I had left to do here was
1132         make them synonyms when evaluating selectors.
1133
1134         Tests: fast/selectors/any-link-basics-2.html
1135                fast/selectors/any-link-basics.html
1136                fast/selectors/any-link-styling.html
1137
1138         * css/CSSSelector.cpp:
1139         (WebCore::CSSSelector::selectorText):
1140         * css/CSSSelector.h:
1141         * css/RuleSet.cpp:
1142         (WebCore::RuleSet::addRule):
1143         * css/SelectorChecker.cpp:
1144         (WebCore::SelectorChecker::checkOne):
1145         * css/SelectorChecker.h:
1146         (WebCore::SelectorChecker::isCommonPseudoClassSelector):
1147         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
1148         * cssjit/SelectorCompiler.cpp:
1149         (WebCore::SelectorCompiler::addPseudoClassType):
1150         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):
1151
1152 2014-10-28  Jer Noble  <jer.noble@apple.com>
1153
1154         [EME][Mac] Adopt new AVStreamSession API: pass storageDirectoryAtURL at creation-time
1155         https://bugs.webkit.org/show_bug.cgi?id=138149
1156
1157         Reviewed by Brent Fulgham.
1158
1159         AVStreamSession now requires its storage location at creation-time, rather than post-creation. This requires
1160         us to move storage location code from CDMSessionMediaSourceAVFObjC to MediaPlayerPrivateMediaSourceAVFObjC.
1161
1162         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
1163         (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): Renamed.
1164         (WebCore::CDMSessionMediaSourceAVFObjC::update):
1165         (WebCore::sessionStorageDirectory): Deleted.
1166         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1167         (WebCore::sessionStorageDirectory):
1168         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
1169
1170 2014-10-28  Geoffrey Garen  <ggaren@apple.com>
1171
1172         All networking crashes on Mac 32bit
1173         https://bugs.webkit.org/show_bug.cgi?id=138157
1174
1175         Reviewed by Andy Estes.
1176
1177         NEFilterSource content filtering is not available on 32bit, so
1178         soft-linking fails at runtime. The simplest solution is just to disable
1179         it at compile time.
1180
1181         * platform/ContentFilter.h:
1182
1183 2014-10-28  Jeremy Jones  <jeremyj@apple.com>
1184
1185         Add optimized fullscreen mode.
1186         https://bugs.webkit.org/show_bug.cgi?id=138044
1187
1188         Reviewed by Jer Noble.
1189
1190         Enable different types of fullscreen video behavior.
1191         Add an enum parameter to enterVideoFullscreenForVideoElement for alternate types of fullscreen.
1192         Add gesture for alternate fullscreen.
1193
1194         * Modules/mediacontrols/MediaControlsHost.cpp:
1195         (WebCore::MediaControlsHost::enterFullscreenOptimized): added
1196         * Modules/mediacontrols/MediaControlsHost.h: added enterFullscreenOptimized
1197         * Modules/mediacontrols/MediaControlsHost.idl: added enterFullscreenOptimized
1198         * Modules/mediacontrols/mediaControlsiOS.js:
1199         (ControllerIOS.prototype.handleBaseGestureChange): recognize alternate gesture
1200         * WebCore.exp.in: added parameter to setupFullscreen
1201         * html/HTMLMediaElement.cpp:
1202         (WebCore::HTMLMediaElement::removedFrom) : replace m_isInVideoFullscreen with m_videoFullscreenType
1203         (WebCore::HTMLMediaElement::stop) : ditto
1204         (WebCore::HTMLMediaElement::isFullscreen) : ditto
1205         (WebCore::HTMLMediaElement::enterFullscreen): add parameter to enterVideoFullscreenForVideoElement
1206         (WebCore::HTMLMediaElement::exitFullscreen): replace m_isInVideoFullscreen with m_videoFullscreenType
1207         (WebCore::HTMLMediaElement::enterFullscreenOptimized): added
1208         * html/HTMLMediaElement.h: added enterFullscreenOptimized
1209         * page/ChromeClient.h:
1210         (WebCore::ChromeClient::enterVideoFullscreenForVideoElement): added parameter
1211         * platform/ios/WebVideoFullscreenControllerAVKit.h: add parameter
1212         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1213         (-[WebVideoFullscreenController enterFullscreen:type:]): add parameter
1214         (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
1215         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: reorder protected to after public
1216         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1217         (-[WebAVPlayerController player]): this stub is now required
1218         (-[WebAVPlayerController layoutSublayersOfLayer:]): this is a better way to update video frames
1219         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): implement optimized fullscreen interface 
1220         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): ditto
1221         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): ditto
1222         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
1223
1224 2014-10-28  Chris Dumez  <cdumez@apple.com>
1225
1226         Clean up virtual functions in accessibility/
1227         https://bugs.webkit.org/show_bug.cgi?id=138148
1228
1229         Reviewed by Chris Fleizach.
1230
1231         Clean up virtual functions in accessibility/ by:
1232         - Marking classes as final when suitable
1233         - Marking virtual functions as final when suitable
1234         - Dropping final on virtual functions in classes that are already final
1235         - Make isXXX() virtual type checking functions in XXX classes to avoid
1236           useless type checks
1237
1238         No new tests, no behavior change.
1239
1240         * accessibility/AccessibilityARIAGrid.h:
1241         * accessibility/AccessibilityARIAGridCell.h:
1242         * accessibility/AccessibilityARIAGridRow.h:
1243         * accessibility/AccessibilityImageMapLink.h:
1244         * accessibility/AccessibilityList.h:
1245         * accessibility/AccessibilityListBox.h:
1246         * accessibility/AccessibilityListBoxOption.h:
1247         * accessibility/AccessibilityMediaControls.h:
1248         * accessibility/AccessibilityMenuList.h:
1249         * accessibility/AccessibilityMenuListOption.h:
1250         * accessibility/AccessibilityMenuListPopup.h:
1251         * accessibility/AccessibilityMockObject.h:
1252         (WebCore::AccessibilityMockObject::setParent):
1253         * accessibility/AccessibilityNodeObject.h:
1254         * accessibility/AccessibilityProgressIndicator.h:
1255         * accessibility/AccessibilityRenderObject.h:
1256         * accessibility/AccessibilitySVGRoot.h:
1257         * accessibility/AccessibilityScrollView.h:
1258         * accessibility/AccessibilityScrollbar.h:
1259         * accessibility/AccessibilitySearchFieldButtons.h:
1260         * accessibility/AccessibilitySlider.h:
1261         * accessibility/AccessibilitySpinButton.h:
1262         * accessibility/AccessibilityTable.h:
1263         * accessibility/AccessibilityTableCell.h:
1264         * accessibility/AccessibilityTableColumn.h:
1265         * accessibility/AccessibilityTableHeaderContainer.h:
1266         * accessibility/AccessibilityTableRow.h:
1267
1268 2014-10-24  Jeffrey Pfau  <jpfau@apple.com>
1269
1270         FrameProgressTracker expects Page to not have detached
1271         https://bugs.webkit.org/show_bug.cgi?id=138061
1272
1273         Reviewed by Alexey Proskuryakov.
1274
1275         In some cases, a Page may be detached from a Frame before its
1276         FrameLoader is torn down, causing FrameProgressTracker's destructor
1277         to hit a null pointer.
1278
1279         No new tests; it is impossible to reliably simulate the null pointer
1280         case without intrusive code changes.
1281
1282         * loader/FrameLoader.cpp:
1283         (WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
1284
1285 2014-10-27  Ada Chan  <adachan@apple.com>
1286
1287         Introduce a new abstract class called AudioProducer and keep a set of AudioProducers
1288         rather than the active MediaSessions in Document
1289         https://bugs.webkit.org/show_bug.cgi?id=138107
1290
1291         Reviewed by Eric Carlson.
1292
1293         No new tests, no behavior change.
1294
1295         * WebCore.xcodeproj/project.pbxproj:
1296         Add AudioProducer.h to the project.
1297         * dom/Document.cpp:
1298         (WebCore::Document::addAudioProducer):
1299         (WebCore::Document::removeAudioProducer):
1300         (WebCore::Document::updateIsPlayingAudio):
1301         Go through the set of AudioProducers and see if any is playing audio.
1302         Now that this method no longer refers to MediaSessions directly, this code
1303         does not need to be guarded by #if ENABLE(VIDEO).
1304         (WebCore::Document::registerMediaSession): Deleted.
1305         (WebCore::Document::unregisterMediaSession): Deleted.
1306         * dom/Document.h:
1307         * html/HTMLMediaElement.cpp:
1308         (WebCore::HTMLMediaElement::registerWithDocument):
1309         (WebCore::HTMLMediaElement::unregisterWithDocument):
1310         (WebCore::HTMLMediaElement::isPlayingAudio):
1311         Return whether this element is playing audio.
1312         * html/HTMLMediaElement.h:
1313         * page/AudioProducer.h: Added.
1314         (WebCore::AudioProducer::~AudioProducer):
1315         * page/Page.cpp:
1316         (WebCore::Page::updateIsPlayingAudio):
1317         This is no longer guarded with #if ENABLE(VIDEO) since the Document methods it calls
1318         are no longer guarded.
1319         * page/Page.h:
1320
1321 2014-10-28  Chris Dumez  <cdumez@apple.com>
1322
1323         Unreviewed comment fix from r175267.
1324
1325         Fix namespace name in comment.
1326
1327         * css/StyleBuilderCustom.h:
1328
1329 2014-10-28  Jer Noble  <jer.noble@apple.com>
1330
1331         REGRESSION(r171593) [Mac] Media controls create a large (and unnecessary) backing store
1332         https://bugs.webkit.org/show_bug.cgi?id=137757
1333
1334         Reviewed by Eric Carlson.
1335
1336         In r171593, a <div> was added to the media controls which is only ever used on iOS. Instead
1337         of creating and adding this <div> in mediaControlsApple.js (which is used on OS X), this 
1338         <div> should be created and added in mediaControlsiOS.js, which requires overloading
1339         Controller.addControls.
1340
1341         * Modules/mediacontrols/mediaControlsApple.css:
1342         (audio::-webkit-media-controls-panel.hidden): Drive-by fix: allow the panel itself to be hidden.
1343         (video::-webkit-media-controls-panel-composited-parent): Deleted.
1344         * Modules/mediacontrols/mediaControlsApple.js:
1345         (Controller.prototype.createControls): Remove the composited parent.
1346         (Controller.prototype.addControls): Ditto.
1347         * Modules/mediacontrols/mediaControlsiOS.js:
1348         (ControllerIOS.prototype.createControls): Create the composited parent.
1349         (ControllerIOS.prototype.addControls): Copied from (previous) apple.js.
1350
1351 2014-10-28  Chris Dumez  <cdumez@apple.com>
1352
1353         Move "Number" CSS properties to the new StyleBuilder
1354         https://bugs.webkit.org/show_bug.cgi?id=138125
1355
1356         Reviewed by Antti Koivisto.
1357
1358         Move "Number" CSS properties from DeprecatedStyleBuilder to the new
1359         StyleBuilder:
1360         -webkit-hyphenate-limit-after
1361         -webkit-hyphenate-limit-before
1362         -webkit-shape-image-threshold
1363         -webkit-hyphenate-limit-lines
1364
1365         They are now generated from CSSPropertyNames.in
1366
1367         For -webkit-hyphenate-limit-lines, I used custom code instead of
1368         the Number converter as it required special handling for the id
1369         value. This patch thus adds support for [Custom=Value] to
1370         CSSPropertyNames.in and the custom code goes into
1371         css/StyleBuilderCustom.h.
1372
1373         No new tests, no behavior change.
1374
1375         * WebCore.xcodeproj/project.pbxproj:
1376         * css/CSSPropertyNames.in:
1377         * css/DeprecatedStyleBuilder.cpp:
1378         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1379         (WebCore::ApplyPropertyNumber::setValue): Deleted.
1380         (WebCore::ApplyPropertyNumber::applyValue): Deleted.
1381         (WebCore::ApplyPropertyNumber::createHandler): Deleted.
1382         * css/StyleBuilderConverter.h:
1383         (WebCore::StyleBuilderConverter::convertNumber):
1384         * css/StyleBuilderCustom.h: Added.
1385         (WebCore::StyleBuilderFunctions::applyValueWebkitHyphenateLimitLines):
1386         * css/makeprop.pl:
1387
1388 2014-10-28  Zan Dobersek  <zdobersek@igalia.com>
1389
1390         [WebCore] Remove uses of WTF::bind() in the Media Stream module
1391         https://bugs.webkit.org/show_bug.cgi?id=138016
1392
1393         Reviewed by Eric Carlson.
1394
1395         Replace uses of WTF::bind() in the Media Stream module with C++11 lambdas.
1396         Internal helper methods are removed in favor of inlining the code directly
1397         into the lambdas. Range-based for-loops are deployed where appropriate.
1398
1399         * Modules/mediastream/MediaStreamTrack.cpp:
1400         (WebCore::MediaStreamTrack::scheduleEventDispatch):
1401         (WebCore::MediaStreamTrack::dispatchQueuedEvents): Deleted.
1402         * Modules/mediastream/MediaStreamTrack.h:
1403         * Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
1404         (WebCore::MediaStreamTrackSourcesRequest::didCompleteRequest):
1405         (WebCore::MediaStreamTrackSourcesRequest::callCompletionHandler): Deleted.
1406         * Modules/mediastream/MediaStreamTrackSourcesRequest.h:
1407         * Modules/mediastream/UserMediaRequest.cpp:
1408         (WebCore::UserMediaRequest::constraintsValidated):
1409         (WebCore::UserMediaRequest::userMediaAccessGranted):
1410         (WebCore::UserMediaRequest::didCreateStream):
1411         (WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
1412         (WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):
1413         (WebCore::UserMediaRequest::requestPermission): Deleted.
1414         (WebCore::UserMediaRequest::createMediaStream): Deleted.
1415         (WebCore::UserMediaRequest::callSuccessHandler): Deleted.
1416         (WebCore::UserMediaRequest::callErrorHandler): Deleted.
1417         * Modules/mediastream/UserMediaRequest.h:
1418
1419 2014-10-28  Pascal Jacquemart  <p.jacquemart@samsung.com>
1420
1421         Abandoned select option is reselected when shift selecting new options
1422         https://bugs.webkit.org/show_bug.cgi?id=137553
1423
1424         Reviewed by Ryosuke Niwa.
1425
1426         Previous active selection is wrongly recorded by HTMLSelectElement after selecting a new item using
1427         typeAhead. Fixed by clearing previously selected options before starting a new active selection.
1428
1429         Test: fast/forms/listbox-selection-after-typeahead.html
1430
1431         * html/HTMLSelectElement.cpp:
1432         (WebCore::HTMLSelectElement::selectOption): Code re-ordering
1433
1434 2014-10-28  Milan Crha  <mcrha@redhat.com>
1435
1436         Use constants from wtf/MathExtras.h
1437         https://bugs.webkit.org/show_bug.cgi?id=137967
1438
1439         Reviewed by Darin Adler.
1440
1441         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
1442         (WebCore::rotateCairoMatrixForVerticalOrientation):
1443         * rendering/mathml/RenderMathMLMenclose.cpp:
1444         (WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
1445         (WebCore::RenderMathMLMenclose::updateLogicalHeight):
1446         * rendering/mathml/RenderMathMLOperator.cpp:
1447         (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator):
1448
1449 2014-10-28  David Hyatt  <hyatt@apple.com>
1450
1451         Selection gap painting is ugly for ruby bases.
1452         https://bugs.webkit.org/show_bug.cgi?id=138136
1453
1454         Reviewed by Dean Jackson.
1455
1456         * rendering/RenderBlock.cpp:
1457         (WebCore::RenderBlock::selectionGaps):
1458         For ruby bases don't fill to the end of the block (in the block direction),
1459         since ideographic baselines push that end below the text baseline.
1460
1461         (WebCore::RenderBlock::blockSelectionGaps):
1462         * rendering/RenderBlockFlow.cpp:
1463         Skip ruby bases for block selection gap filling.
1464
1465 2014-10-28  Zalan Bujtas  <zalan@apple.com>
1466
1467         Speed up line parsing for simple line layout.
1468         https://bugs.webkit.org/show_bug.cgi?id=137275
1469
1470         Reviewed by Antti Koivisto.
1471         
1472         This patch speeds up the line parsing for simple line layout by
1473         reducing the number of text measurement calls.
1474         The parsing logic hasn't changed. We simply walk over
1475         the whitespace/non-whitespace fragments and measure them to
1476         figure out whether they fit.
1477         The performance gain mainly comes from the more efficient line wrapping
1478         so that we don't re-measure the fragment when it is pushed to
1479         the next line.
1480
1481         No change in behaviour. (except the empty line-break run removal.)
1482
1483         * rendering/SimpleLineLayout.cpp:
1484         (WebCore::SimpleLineLayout::skipWhitespace): 
1485         (WebCore::SimpleLineLayout::computeLineLeft):
1486         (WebCore::SimpleLineLayout::TextFragment::TextFragment):
1487         (WebCore::SimpleLineLayout::TextFragment::isEmpty):
1488         (WebCore::SimpleLineLayout::LineState::LineState):
1489         (WebCore::SimpleLineLayout::LineState::commitAndCreateRun): adds uncommitted text to the line and creates a run out of it. 
1490         (WebCore::SimpleLineLayout::LineState::addUncommitted): appends fragment to the uncommitted text. 
1491         (WebCore::SimpleLineLayout::LineState::addUncommittedWhitespace): appends whitespace to the uncommitted text.
1492         (WebCore::SimpleLineLayout::LineState::jumpTo): moves line's current position without committing text. 
1493         (WebCore::SimpleLineLayout::LineState::width): current width of the line including committed and uncommitted text.
1494         (WebCore::SimpleLineLayout::LineState::fits): checks if committed + uncommitted text fits the line. 
1495         (WebCore::SimpleLineLayout::LineState::removeCommittedTrailingWhitespace): 
1496         (WebCore::SimpleLineLayout::removeTrailingWhitespace): post processing the trailing whitespace.
1497         (WebCore::SimpleLineLayout::initializeLine):
1498         (WebCore::SimpleLineLayout::splitFragmentToFitLine): breaks the fragments into 2 so that the first (sub)fragment fits the line.
1499         (WebCore::SimpleLineLayout::nextFragment): returns the next valid fragment of the text.
1500         (WebCore::SimpleLineLayout::createLineRuns): creates runs for the current line and returns when we can't fit more text on the line.
1501         (WebCore::SimpleLineLayout::updateLineConstrains): updates left/right constrains for the current line.
1502         (WebCore::SimpleLineLayout::createTextRuns): creates runs for the whole text.
1503         (WebCore::SimpleLineLayout::isWhitespace): Deleted.
1504         (WebCore::SimpleLineLayout::skipWhitespaces): Deleted.
1505         (WebCore::SimpleLineLayout::measureWord): Deleted.
1506         (WebCore::SimpleLineLayout::adjustRunOffsets): Deleted.
1507         * rendering/SimpleLineLayout.h:
1508         (WebCore::SimpleLineLayout::Run::Run):
1509
1510 2014-10-28  Alexey Proskuryakov  <ap@apple.com>
1511
1512         Windows build fix.
1513
1514         * platform/network/cf/NetworkStorageSessionCFNet.cpp:
1515         (WebCore::NetworkStorageSession::switchToNewTestingSession): Use a WTF function
1516         for getting current process ID instead of getpid().
1517
1518 2014-10-28  Mihnea Ovidenie  <mihnea@adobe.com>
1519
1520         Clean up subtrees selection code
1521         https://bugs.webkit.org/show_bug.cgi?id=137740
1522
1523         Reviewed by David Hyatt.
1524
1525         Clean up subtrees selection code. Add a new class SelectionSubtreeData
1526         that keeps only the selection data. Have SelectionSubtreeRoot class embed
1527         a SelectionSubtreeData member and keep the business logic methods.
1528         No functionality changed therefore no new layout tests.
1529
1530         * rendering/RenderObject.cpp:
1531         (WebCore::RenderObject::selectionStartEnd):
1532         * rendering/RenderView.cpp:
1533         (WebCore::RenderView::subtreeSelectionBounds):
1534         (WebCore::RenderView::repaintSubtreeSelection):
1535         (WebCore::RenderView::setSelection):
1536         (WebCore::RenderView::splitSelectionBetweenSubtrees):
1537         (WebCore::RenderView::updateSelectionForSubtrees):
1538         (WebCore::RenderView::clearSubtreeSelection):
1539         (WebCore::RenderView::applySubtreeSelection):
1540         * rendering/RenderView.h:
1541         * rendering/SelectionSubtreeRoot.cpp:
1542         (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
1543         (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
1544         * rendering/SelectionSubtreeRoot.h:
1545         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::SelectionSubtreeData):
1546         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStart):
1547         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStartPos):
1548         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionEnd):
1549         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionEndPos):
1550         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionClear):
1551         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStartEndPositions):
1552         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionStart):
1553         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionStartPos):
1554         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionEnd):
1555         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionEndPos):
1556         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::clearSelection):
1557         (WebCore::SelectionSubtreeRoot::selectionData):
1558         (WebCore::SelectionSubtreeRoot::setSelectionData):
1559         (WebCore::SelectionSubtreeRoot::selectionStart): Deleted.
1560         (WebCore::SelectionSubtreeRoot::selectionStartPos): Deleted.
1561         (WebCore::SelectionSubtreeRoot::selectionEnd): Deleted.
1562         (WebCore::SelectionSubtreeRoot::selectionEndPos): Deleted.
1563         (WebCore::SelectionSubtreeRoot::selectionStartEndPositions): Deleted.
1564         (WebCore::SelectionSubtreeRoot::selectionClear): Deleted.
1565         (WebCore::SelectionSubtreeRoot::setSelectionStart): Deleted.
1566         (WebCore::SelectionSubtreeRoot::setSelectionStartPos): Deleted.
1567         (WebCore::SelectionSubtreeRoot::setSelectionEnd): Deleted.
1568         (WebCore::SelectionSubtreeRoot::setSelectionEndPos): Deleted.
1569
1570 2014-10-28  Jer Noble  <jer.noble@apple.com>
1571
1572         [Mac] The first software paint of a <video> element takes up to 2.5s.
1573         https://bugs.webkit.org/show_bug.cgi?id=137754
1574
1575         Reviewed by Brent Fulgham.
1576
1577         It turns out that, if you pass nil to -[AVPlayerItemVideoOutput initWithPixelBufferAttributes:]
1578         the video output will not attempt to conform the resulting pixel buffers into a particular format.
1579         This means that adding such a video output to a AVPlayerItem should have almost no performance
1580         penalty, since the video output does not even copy the resulting buffers, but rather just retains
1581         and returns the ones from the AVPlayerLayer.
1582
1583         Create and attach an AVPlayerItemVideoOutput after creating the AVPlayerItem, but before attaching
1584         the player item to the AVPlayer. This eliminates the reconfigure step which occurs after attaching
1585         a video output to an already attached AVPlayerItem.
1586
1587         When creating the AVPlayerItemVideoOutput, pass in `nil` for the pixelBufferAttributes parameter.
1588
1589         Instead of blocking waiting for output from the AVPlayerItemVideoOutput during creating, block and
1590         whait when asked to paint with the video output.
1591
1592         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1593         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
1594         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
1595         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
1596
1597 2014-10-28  Chris Dumez  <cdumez@apple.com>
1598
1599         Move text decoration CSS properties to the new StyleBuilder
1600         https://bugs.webkit.org/show_bug.cgi?id=138121
1601
1602         Reviewed by Antti Koivisto.
1603
1604         Move text decoration CSS properties from DeprecatedStyleBuilder to the
1605         new StyleBuilder so that they are generated from CSSPropertyNames.in.
1606
1607         No new tests, no behavior change.
1608
1609         * css/CSSPropertyNames.in:
1610         * css/DeprecatedStyleBuilder.cpp:
1611         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1612         (WebCore::ApplyPropertyTextDecoration::applyValue): Deleted.
1613         (WebCore::ApplyPropertyTextDecoration::createHandler): Deleted.
1614         * css/StyleBuilderConverter.h:
1615         (WebCore::StyleBuilderConverter::convertTextDecoration):
1616
1617 2014-10-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1618
1619         [GTK] Remove GDK dependency from SharedTimerGtk
1620         https://bugs.webkit.org/show_bug.cgi?id=138092
1621
1622         Reviewed by Martin Robinson.
1623
1624         It depends on GDK just to use GDK_PRIORITY_REDRAW constant, we can
1625         use its value directly instead.
1626
1627         * PlatformGTK.cmake:
1628         * platform/gtk/SharedTimerGtk.cpp:
1629         (WebCore::setSharedTimerFireInterval):
1630
1631 2014-10-27  Andreas Kling  <akling@apple.com>
1632
1633         Move RenderBlock::beingDestroyed() to RenderObject.
1634         <https://webkit.org/b/138116>
1635
1636         Reviewed by Antti Koivisto.
1637
1638         Make "is being destroyed" a RenderObject concept instead of restricting
1639         it to RenderBlocks. I'm guessing that this was specific to blocks due to
1640         lack of bitfield space in RenderObject, and that's no longer an issue.
1641
1642         * rendering/RenderBlock.cpp:
1643         (WebCore::RenderBlock::RenderBlock):
1644         (WebCore::RenderBlock::willBeDestroyed):
1645         * rendering/RenderBlock.h:
1646         (WebCore::RenderBlock::beingDestroyed): Deleted.
1647         * rendering/RenderBlockFlow.cpp:
1648         (WebCore::RenderBlockFlow::willBeDestroyed):
1649         * rendering/RenderObject.cpp:
1650         (WebCore::RenderObject::destroy):
1651         * rendering/RenderObject.h:
1652         (WebCore::RenderObject::beingDestroyed):
1653         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1654
1655 2014-10-27  Chris Fleizach  <cfleizach@apple.com>
1656
1657         AX: input type=hidden is being exposed when aria-hidden=false
1658         https://bugs.webkit.org/show_bug.cgi?id=138106
1659
1660         Reviewed by Benjamin Poulain.
1661
1662         If an input type=hidden was inside an aria-hidden=false, it would appear because
1663         the lack of a RenderObject behind that object was not blocking its adoption into the AX tree.
1664         We should explicity check for whether the type is hidden and then return an appropriate role. 
1665
1666         Test: accessibility/input-type-hidden-in-aria-hidden-false.html
1667
1668         * accessibility/AccessibilityNodeObject.cpp:
1669         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
1670         (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
1671
1672 2014-10-27  Alexey Proskuryakov  <ap@apple.com>
1673
1674         https://trac.webkit.org/changeset/175233 broke many tests, fixing an incorrect '!'.
1675
1676         * accessibility/AccessibilityRenderObject.cpp:
1677         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
1678
1679 2014-10-24  David Hyatt  <hyatt@apple.com>
1680
1681         text-combine needs to center text within the vertical space using glyph bounds
1682         https://bugs.webkit.org/show_bug.cgi?id=138056
1683         <rdar://problem/15403667>
1684
1685         Reviewed by Dean Jackson.
1686
1687         Added fast/text/tatechuyoko.html
1688
1689         * rendering/RenderCombineText.cpp:
1690         (WebCore::RenderCombineText::RenderCombineText):
1691         (WebCore::RenderCombineText::adjustTextOrigin):
1692         (WebCore::RenderCombineText::combineText):
1693         * rendering/RenderCombineText.h:
1694
1695 2014-10-27  Benjamin Poulain  <benjamin@webkit.org>
1696
1697         Cleanup after r175213: fastGetAttribute().isNull() should be fastHasAttribute()
1698
1699         * accessibility/AccessibilityRenderObject.cpp:
1700         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
1701         Darin spotted this mistake.
1702
1703 2014-10-27  Alexey Proskuryakov  <ap@apple.com>
1704
1705         http/tests/cookies/third-party-cookie-relaxing.html is flaky on bots
1706         https://bugs.webkit.org/show_bug.cgi?id=138098
1707
1708         Reviewed by Anders Carlsson.
1709
1710         * platform/network/cf/NetworkStorageSessionCFNet.cpp:
1711         (WebCore::NetworkStorageSession::switchToNewTestingSession):
1712         Create a separate session for each WKTR/DRT process when testing.
1713
1714 2014-10-27  Chris Dumez  <cdumez@apple.com>
1715
1716         Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
1717         https://bugs.webkit.org/show_bug.cgi?id=138079
1718
1719         Reviewed by Anders Carlsson.
1720
1721         Use separate HashMaps for common and uncommon headers in HTTPHeaderMap:
1722         - a (faster) HashMap<HTTPHeaderMap, String> for common HTTP headers
1723         - a HashMap<String, String, CaseFoldingHash> for uncommon ones
1724
1725         This avoids having to construct Strings from HTTPHeaderMap values for
1726         storing. This also means we have less isolated String copies to do when
1727         creating cross-thread data. The common headers HashMap should also be
1728         a bit more efficient due to faster hashing and faster key comparison in
1729         case of collision.
1730
1731         Some calls sites can also benefit from having direct access to common
1732         headers of the request in HTTPHeaderName type.
1733
1734         This patch adds a new HTTPHeaderMapConstIterator iterator type for
1735         HTTPHeaderMap so that call sites that do not need / want to distinguish
1736         common / uncommon headers still do not need to. They can keep using
1737         modern C++ loops over HTTPHeaderMap objects and get <String, String>
1738         key/value pairs.
1739
1740         No new tests, no behavior change.
1741
1742         * loader/CrossOriginAccessControl.cpp:
1743         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
1744         Have isOnAccessControlSimpleRequestHeaderWhitelist() take a
1745         HTTPHeaderName in argument instead of a String as only common headers
1746         are in the whitelist.
1747
1748         (WebCore::isSimpleCrossOriginAccessRequest):
1749         Call isOnAccessControlSimpleRequestHeaderWhitelist() only for common
1750         HTTP headers.
1751
1752         * loader/CrossOriginAccessControl.h:
1753         Have isOnAccessControlSimpleRequestHeaderWhitelist() take a
1754         HTTPHeaderName in argument instead of a String as only common headers
1755         are in the whitelist.
1756
1757         * loader/CrossOriginPreflightResultCache.cpp:
1758         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
1759         Call isOnAccessControlSimpleRequestHeaderWhitelist() only for common
1760         HTTP headers.
1761
1762         * loader/DocumentLoader.cpp:
1763         (WebCore::DocumentLoader::responseReceived):
1764         Call httpHeaderFields().commonHeaders().find() instead of
1765         httpHeaderFields().find() as we are looking for a common header.
1766         HTTPHeaderMap::find(HTTPHeaderName) was removed now that we have a
1767         HashMap dedicated to common headers.
1768
1769         * loader/cache/CachedRawResource.cpp:
1770         (WebCore::shouldIgnoreHeaderForCacheReuse):
1771         Update argument type to be a HTTPHeaderName instead of a String as
1772         only common HTTP headers can be ignored for cache reuse. The
1773         implementation already dealt with HTTPHeaderName type and had to
1774         call findHTTPHeaderName(). This is no longer needed now that the
1775         call site now has direct access to common headers in HTTPHeaderName
1776         type.
1777
1778         (WebCore::CachedRawResource::canReuse):
1779         - Only call shouldIgnoreHeaderForCacheReuse() for common HTTP headers.
1780         - Slightly optimize the second loop (the one over oldHeaderMap) to only
1781           check that the key is present in newHeaderMap, without actually
1782           comparing the String values. If the String values were different, the
1783           first loop would have seen it already and we would have returned
1784           early.
1785
1786 2014-10-27  Andreas Kling  <akling@apple.com>
1787
1788         Devirtualize RenderDeprecatedFlexibleBox::isStretchingChildren().
1789         <https://webkit.org/b/138096>
1790
1791         Reviewed by Chris Dumez.
1792
1793         This function is only ever called on a renderer after we've checked
1794         that it's a RenderDeprecatedFlexibleBox, so make it non-virtual.
1795
1796         * rendering/RenderBox.cpp:
1797         (WebCore::RenderBox::computeLogicalHeight):
1798         * rendering/RenderDeprecatedFlexibleBox.h:
1799         * rendering/RenderObject.h:
1800
1801 2014-10-27  Chris Dumez  <cdumez@apple.com>
1802
1803         Reintroduce null check removed in r175222
1804         https://bugs.webkit.org/show_bug.cgi?id=138087
1805
1806         Reviewed by Andreas Kling.
1807
1808         Reintroduce null check removed in r175222 as several layout tests are
1809         crashing on the bots without them. At least the Pair pointer can be
1810         null according to the assertion hits on the bots.
1811
1812         * css/StyleBuilderConverter.h:
1813         (WebCore::StyleBuilderConverter::convertRadius):
1814
1815 2014-10-27  Chris Dumez  <cdumez@apple.com>
1816
1817         Move radius CSS properties to the new StyleBuilder
1818         https://bugs.webkit.org/show_bug.cgi?id=138087
1819
1820         Reviewed by Andreas Kling.
1821
1822         Move radius CSS properties from DeprecatedStyleBuilder to the new
1823         StyleBuilder so that they are now generated from CSSPropertyNames.in.
1824
1825         No new tests, no behavior change.
1826
1827         * css/CSSPropertyNames.in:
1828         * css/DeprecatedStyleBuilder.cpp:
1829         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1830         (WebCore::ApplyPropertyBorderRadius::setValue): Deleted.
1831         (WebCore::ApplyPropertyBorderRadius::applyValue): Deleted.
1832         (WebCore::ApplyPropertyBorderRadius::createHandler): Deleted.
1833         * css/StyleBuilderConverter.h:
1834         (WebCore::StyleBuilderConverter::convertRadius):
1835
1836 2014-10-27  Zan Dobersek  <zdobersek@igalia.com>
1837
1838         Shrink MathMLOperatorDictionary::dictionary table
1839         https://bugs.webkit.org/show_bug.cgi?id=137914
1840
1841         Reviewed by Darin Adler.
1842
1843         Improve packing of the Entry structure that's used for elements
1844         of the MathMLOperatorDictionary::dictionary table. This drops the
1845         size of the struct from 16 bytes to just 4 bytes, and shrinks the
1846         size of the dictionary table from rougly 16 kB down to 4 kB.
1847
1848         * rendering/mathml/RenderMathMLOperator.cpp:
1849         (WebCore::MathMLOperatorDictionary::ExtractKey):
1850         (WebCore::RenderMathMLOperator::setOperatorProperties):
1851         * rendering/mathml/RenderMathMLOperator.h:
1852
1853 2014-10-27  Andreas Kling  <akling@apple.com>
1854
1855         Move canContainFixedPositionObjects() to RenderElement.
1856         <https://webkit.org/b/138088>
1857
1858         Reviewed by Mihnea Ovidenie.
1859
1860         Only RenderElement can contain other renderers, so it's not really
1861         natural to answer this question on RenderObject anyway.
1862
1863         Moving it to RenderElement lets it access more efficient getters
1864         that don't have to handle the RenderText case.
1865
1866         * rendering/RenderElement.h:
1867         (WebCore::RenderElement::canContainFixedPositionObjects):
1868         * rendering/RenderObject.h:
1869         (WebCore::RenderObject::canContainFixedPositionObjects): Deleted.
1870
1871 2014-10-26  Benjamin Poulain  <benjamin@webkit.org>
1872
1873         Images with usemap should not have a link state
1874         https://bugs.webkit.org/show_bug.cgi?id=138071
1875
1876         Reviewed by Andreas Kling.
1877
1878         Image tags were incorrectly getting a link state if a usemap is defined.
1879         The <area> of the usemap is supposed to get the link state, but never the image.
1880
1881         Unfortunately, the Accessibility code was relying on the wrong behavior
1882         to set the ImageMapRole, most of the patch is updating that code to get
1883         the correct role without the link state.
1884
1885         Test: fast/selectors/images-with-usemap-should-not-match-link.html
1886
1887         The accessibility code is covered by a few tests in accessibility/.
1888         The test accessibility/aria-used-on-image-maps.html ensure the <area>
1889         elements also get the correct role.
1890
1891         * dom/Node.h:
1892         (WebCore::Node::setIsLink):
1893         (WebCore::Node::clearIsLink): Deleted.
1894         Unused code.
1895
1896         (WebCore::Node::isLink):
1897         Move with its setter for clarity.
1898
1899         * html/HTMLImageElement.cpp:
1900         (WebCore::HTMLImageElement::parseAttribute):
1901         This is the bug.
1902
1903         * accessibility/AccessibilityRenderObject.cpp:
1904         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
1905         Here the branches for the role ImageMap where behind isLink() which would
1906         never be valid after the fix.
1907
1908         My fix here was to use the same definition previously set by HTMLImageElement::parseAttribute(),
1909         any usemap attribute qualifies the node for ImageMapRole.
1910
1911         (WebCore::AccessibilityRenderObject::anchorElement):
1912         (WebCore::AccessibilityRenderObject::linkedUIElements):
1913         (WebCore::AccessibilityRenderObject::url):
1914
1915         * accessibility/AccessibilityObject.h:
1916         (WebCore::AccessibilityObject::isAnchor): Deleted.
1917         Something funny I discovered is the Accessibility code worked around the bug
1918         by defining isAnchor() that exclude images from isLink().
1919
1920         Since isLink() will no longer be true for images, the hack can be removed.
1921
1922         * accessibility/AccessibilityNodeObject.cpp:
1923         (WebCore::AccessibilityNodeObject::anchorElement):
1924         (WebCore::AccessibilityNodeObject::isAnchor): Deleted.
1925         * accessibility/AccessibilityNodeObject.h:
1926         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1927         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
1928
1929 2014-10-26  Benjamin Poulain  <benjamin@webkit.org>
1930
1931         Replace Element::didAffectSelector() by setNeedsStyleRecalc()
1932         https://bugs.webkit.org/show_bug.cgi?id=138080
1933
1934         Reviewed by Andreas Kling.
1935
1936         Element::didAffectSelector() was probably an optimization at some point,
1937         with the current code is does nothing more than setNeedsStyleRecalc().
1938
1939         * dom/Document.cpp:
1940         (WebCore::Document::setCSSTarget):
1941         * dom/Element.cpp:
1942         (WebCore::Element::didAffectSelector): Deleted.
1943         * dom/Element.h:
1944         * html/HTMLAnchorElement.cpp:
1945         (WebCore::HTMLAnchorElement::parseAttribute):
1946         * html/HTMLFormControlElement.cpp:
1947         (WebCore::HTMLFormControlElement::disabledStateChanged):
1948         * html/HTMLInputElement.cpp:
1949         (WebCore::HTMLInputElement::setChecked):
1950         (WebCore::HTMLInputElement::setIndeterminate):
1951         * html/HTMLLinkElement.cpp:
1952         (WebCore::HTMLLinkElement::parseAttribute):
1953         * html/HTMLOptGroupElement.cpp:
1954         (WebCore::HTMLOptGroupElement::parseAttribute):
1955         * html/HTMLOptionElement.cpp:
1956         (WebCore::HTMLOptionElement::parseAttribute):
1957         (WebCore::HTMLOptionElement::setSelectedState):
1958         * html/HTMLProgressElement.cpp:
1959         (WebCore::HTMLProgressElement::didElementStateChange):
1960
1961 2014-10-26  Andreas Kling  <akling@apple.com>
1962
1963         Move some RenderObject member functions to RenderElement.
1964         <https://webkit.org/b/138085>
1965
1966         Reviewed by Chris Dumez.
1967
1968         Move these two functions to RenderElement:
1969
1970             - handleDynamicFloatPositionChange()
1971             - removeAnonymousWrappersForInlinesIfNecessary()
1972
1973         Also make childBecameNonInline() take a RenderElement& since
1974         that's all we ever pass to it.
1975
1976         * rendering/RenderBlock.cpp:
1977         (WebCore::RenderBlock::childBecameNonInline):
1978         * rendering/RenderBlock.h:
1979         * rendering/RenderBoxModelObject.h:
1980         (WebCore::RenderBoxModelObject::childBecameNonInline):
1981         * rendering/RenderElement.cpp:
1982         (WebCore::RenderElement::handleDynamicFloatPositionChange):
1983         (WebCore::RenderElement::removeAnonymousWrappersForInlinesIfNecessary):
1984         * rendering/RenderElement.h:
1985         * rendering/RenderInline.cpp:
1986         (WebCore::RenderInline::childBecameNonInline):
1987         * rendering/RenderInline.h:
1988         * rendering/RenderObject.cpp:
1989         (WebCore::RenderObject::handleDynamicFloatPositionChange): Deleted.
1990         (WebCore::RenderObject::removeAnonymousWrappersForInlinesIfNecessary): Deleted.
1991         * rendering/RenderObject.h:
1992
1993 2014-10-26  Andreas Kling  <akling@apple.com>
1994
1995         Move continuation teardown from subclasses to RenderBoxModelObject.
1996         <https://webkit.org/b/138081>
1997
1998         Reviewed by Antti Koivisto.
1999
2000         Let RenderBoxModelObject::willBeDestroyed() tear down any continuation
2001         instead of having every subclass do this themselves.
2002
2003         Also added a RenderElement bit tracking whether the renderer has a
2004         continuation. This avoids a hash lookup every time we destroy a
2005         RenderBoxModelObject that didn't have a continuation.
2006
2007         * rendering/RenderBlock.cpp:
2008         (WebCore::RenderBlock::willBeDestroyed):
2009         * rendering/RenderBlockFlow.cpp:
2010         (WebCore::RenderBlockFlow::willBeDestroyed):
2011         * rendering/RenderBoxModelObject.cpp:
2012         (WebCore::continuationMap):
2013         (WebCore::RenderBoxModelObject::willBeDestroyed):
2014         (WebCore::RenderBoxModelObject::continuation):
2015         (WebCore::RenderBoxModelObject::setContinuation):
2016         * rendering/RenderElement.cpp:
2017         (WebCore::RenderElement::RenderElement):
2018         * rendering/RenderElement.h:
2019         (WebCore::RenderElement::setHasContinuation):
2020         (WebCore::RenderElement::hasContinuation):
2021         * rendering/RenderInline.cpp:
2022         (WebCore::RenderInline::willBeDestroyed):
2023
2024 2014-10-25  Benjamin Poulain  <benjamin@webkit.org>
2025
2026         Remove a useless variable from SelectorCodeGenerator::generateElementMatchesSelectorList()
2027         https://bugs.webkit.org/show_bug.cgi?id=138076
2028
2029         Reviewed by Alexey Proskuryakov.
2030
2031         * cssjit/SelectorCompiler.cpp:
2032         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesSelectorList):
2033         The variable elementAddressRegisterIndex was just needed for debugging, it is useless now.
2034
2035 2014-10-18  Brian J. Burg  <burg@cs.washington.edu>
2036
2037         Web Inspector: timelines should not count time elapsed while paused in the debugger
2038         https://bugs.webkit.org/show_bug.cgi?id=136351
2039
2040         Reviewed by Timothy Hatcher.
2041
2042         To avoid counting time elapsed while the debugger is paused, timeline records should
2043         keep track of time elapsed since the start of timeline capturing, rather than wall clock
2044         timestamps. We can easily compute elapsed time by sharing a Stopwatch instance through the
2045         inspector environment. The stopwatch runs with timelines and is paused with the debugger,
2046         so subsequent time measurements will not include time elapsed while the debugger is paused.
2047
2048         This refactoring is safe because start and end times are only used to graph records; the
2049         timestamp's actual value is irrelevant and is not displayed in the user interface. Date
2050         timestamps are still included with network-related records as part of their header data.
2051
2052         No new tests, because we cannot reliably test timing changes induced by debugger pauses.
2053         It is possible for records to accrue time before the debugger pauses or after it resumes.
2054
2055         * inspector/InspectorCSSAgent.cpp: Remove unnecessary include.
2056         * inspector/InspectorController.cpp:
2057         (WebCore::InspectorController::InspectorController):
2058         (WebCore::InspectorController::executionStopwatch): Add a shared stopwatch.
2059         * inspector/InspectorController.h:
2060         * inspector/InspectorPageAgent.cpp:
2061         (WebCore::InspectorPageAgent::timestamp): Redirect to the shared stopwatch.
2062         (WebCore::InspectorPageAgent::domContentEventFired):
2063         (WebCore::InspectorPageAgent::loadEventFired):
2064         * inspector/InspectorPageAgent.h:
2065         * inspector/InspectorResourceAgent.cpp:
2066         (WebCore::InspectorResourceAgent::timestamp): Redirect to the shared stopwatch.
2067         (WebCore::InspectorResourceAgent::willSendRequest):
2068         (WebCore::InspectorResourceAgent::didReceiveResponse):
2069         (WebCore::InspectorResourceAgent::didReceiveData):
2070         (WebCore::InspectorResourceAgent::didFinishLoading):
2071         (WebCore::InspectorResourceAgent::didFailLoading):
2072         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2073         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
2074         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
2075         (WebCore::InspectorResourceAgent::didCloseWebSocket):
2076         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
2077         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
2078         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
2079         * inspector/InspectorResourceAgent.h:
2080         * inspector/InspectorTimelineAgent.cpp:
2081         (WebCore::InspectorTimelineAgent::internalStart): Start and stop the stopwatch with timelines.
2082         (WebCore::InspectorTimelineAgent::internalStop):
2083         (WebCore::InspectorTimelineAgent::timestamp): Redirect to the shared stopwatch.
2084         (WebCore::startProfiling):
2085         (WebCore::InspectorTimelineAgent::startFromConsole):
2086         (WebCore::InspectorTimelineAgent::willCallFunction):
2087         (WebCore::InspectorTimelineAgent::willEvaluateScript):
2088         (WebCore::TimelineTimeConverter::reset): Deleted.
2089         * inspector/InspectorTimelineAgent.h:
2090         (WebCore::TimelineTimeConverter::TimelineTimeConverter): Deleted.
2091         (WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime): Deleted.
2092         (WebCore::InspectorTimelineAgent::timeConverter): Deleted.
2093         * inspector/TimelineRecordFactory.cpp:
2094         * inspector/WorkerInspectorController.cpp:
2095         (WebCore::WorkerInspectorController::WorkerInspectorController):
2096         (WebCore::WorkerInspectorController::executionStopwatch): Add a shared stopwatch.
2097         * inspector/WorkerInspectorController.h:
2098
2099 2014-10-25  Dan Bernstein  <mitz@apple.com>
2100
2101         Fix builds using the public SDK.
2102
2103         * platform/spi/cocoa/NSExtensionSPI.h:
2104
2105 2014-10-24  Said Abou-Hallawa  <sabouhallawa@apple.com>
2106
2107         Clamp wordSpacing percentage value.
2108         https://bugs.webkit.org/show_bug.cgi?id=129350.
2109
2110         Reviewed by Zalan Bujtas.
2111
2112         When the CSS wordSpacing property is percentage, its value has to be within the
2113         pre-defined min/max values for the CSS length type. This is done the same way
2114         the wordSpacing of type <length> is handled.
2115
2116         Tests: css3/infinite-word-spacing.html.
2117
2118         Move the definitions of minValueForCssLength and maxValueForCssLength from the
2119         .cpp file to the .h file.
2120         * css/CSSPrimitiveValue.cpp:
2121         * css/CSSPrimitiveValue.h:
2122
2123         Clamp the wordSpacing value to minValueForCssLength and maxValueForCssLength when
2124         its type is percentage.
2125         * css/DeprecatedStyleBuilder.cpp:
2126         (WebCore::ApplyPropertyWordSpacing::applyValue):
2127
2128 2014-10-24  Chris Dumez  <cdumez@apple.com>
2129
2130         [Mac] Use modern loops in ResourceRequestCocoa.mm
2131         https://bugs.webkit.org/show_bug.cgi?id=138052
2132
2133         Reviewed by Darin Adler.
2134
2135         Use modern loops in ResourceRequestCocoa.mm and leverage Objective-C's
2136         fast enumeration.
2137
2138         No new tests, no behavior change.
2139
2140         * platform/network/cocoa/ResourceRequestCocoa.mm:
2141         (WebCore::ResourceRequest::doUpdateResourceRequest):
2142         - Use NSDictionary's block-based enumeration as we enumerate both keys
2143           and values and this is faster than using fast enumeration of the keys
2144           then calling [NSDictionary objectForKey:]
2145         - Use Objective C's fast enumeration for
2146           contentDispositionEncodingFallbackArray as this is faster and shorter
2147           than index based access. Also use reserveCapacity() /
2148           uncheckedAppend() for m_responseContentDispositionEncodingFallbackArray
2149           as we know how many elements were are going to append in the common
2150           case.
2151
2152         (WebCore::ResourceRequest::doUpdatePlatformRequest):
2153         - Use fast enumeration for [nsRequest allHTTPHeaderFields] dictionary
2154           keys instead of calling [NSDictionary allKeys] and then doing
2155           index-based iteration, to avoid copying the keys to a new array.
2156           Also do a forward enumeration instead of a reverse one. I don't see
2157           why a backward enumeration would be necessary here. We are not
2158           modifying the NSDictionary we are iterating over as
2159           [nsRequest allHTTPHeaderFields] makes a copy.
2160         - Use a modern C++ loop for
2161           m_responseContentDispositionEncodingFallbackArray.
2162
2163 2014-10-24  Zalan Bujtas  <zalan@apple.com>
2164
2165         Replace INT_MIN/MAX / kFixedPointDenominator with intMin/MaxForLayoutUnit.
2166         https://bugs.webkit.org/show_bug.cgi?id=138047
2167
2168         Reviewed by Andreas Kling.
2169
2170         No change in functionality.
2171
2172         * css/CSSPrimitiveValue.cpp:
2173
2174 2014-10-24  Alexey Proskuryakov  <ap@apple.com>
2175
2176         REGRESSION(r174877): WebProcess sends an empty Cookies HTTP header
2177         https://bugs.webkit.org/show_bug.cgi?id=138053
2178
2179         Reviewed by Chris Dumez.
2180
2181         Fixes existing tests.
2182
2183         * platform/network/mac/CookieJarMac.mm: (WebCore::cookiesForSession): Restore the 
2184         behavior of returning a null string when there are no cookies.
2185
2186 2014-10-24  Chris Dumez  <cdumez@apple.com>
2187
2188         [Mac] Use NSString API in QuickLookMac::computeNeedsQuickLookResourceCachingQuirks()
2189         https://bugs.webkit.org/show_bug.cgi?id=138039
2190
2191         Reviewed by Darin Adler.
2192
2193         Use NSString API in QuickLookMac::computeNeedsQuickLookResourceCachingQuirks()
2194         for case-insensitive string comparison instead of converting to UTF-8 and then
2195         using strcasecmp().
2196
2197         No new tests, no behavior change.
2198
2199         * platform/mac/QuickLookMac.mm:
2200         (WebCore::QuickLookMac::computeNeedsQuickLookResourceCachingQuirks):
2201
2202 2014-10-24  Chris Dumez  <cdumez@apple.com>
2203
2204         Avoid unnecessary NSURLRequest copies in ResourceRequest::doUpdatePlatformRequest() / doUpdatePlatformHTTPBody()
2205         https://bugs.webkit.org/show_bug.cgi?id=138049
2206
2207         Reviewed by Alexey Proskuryakov.
2208
2209         Avoid unnecessary NSURLRequest copies in ResourceRequest::doUpdatePlatformRequest()
2210         / doUpdatePlatformHTTPBody(). It turns out that about half the time, the
2211         m_nsRequest member is already mutable so it is unnecessary to call
2212         [NSURLRequest mutableCopy], we can just cast it to an NSMutableURLRequest* and
2213         avoid copying.
2214
2215         This patch also moves the code to a new ensureMutableNSURLRequest() method to
2216         avoid duplicating the logic.
2217
2218         I see that we spend ~21% less time in these 2 functions when loading
2219         http://flickr.com/explore/ (39.6ms -> 31.2ms).
2220
2221         No new tests, no behavior change.
2222
2223         * platform/network/cf/ResourceRequest.h:
2224         * platform/network/cocoa/ResourceRequestCocoa.mm:
2225         (WebCore::ResourceRequest::ensureMutableNSURLRequest):
2226         (WebCore::ResourceRequest::doUpdatePlatformRequest):
2227         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
2228
2229 2014-10-24  Chris Dumez  <cdumez@apple.com>
2230
2231         Move ComputeLength CSS properties to the new StyleBuilder
2232         https://bugs.webkit.org/show_bug.cgi?id=138036
2233
2234         Reviewed by Andreas Kling.
2235
2236         Move ComputeLength CSS properties from DeprecatedStyleBuilder to the
2237         new StyleBuilder so that they are now generated. 3 Converters are
2238         provided for these properties: ComputedLength / LineWidth / Spacing.
2239
2240         This is inspired by the following Blink revision by
2241         <timloh@chromium.org>:
2242         https://src.chromium.org/viewvc/blink?view=rev&revision=154012
2243
2244         No new tests, no behavior change.
2245
2246         * css/CSSPropertyNames.in:
2247         * css/DeprecatedStyleBuilder.cpp:
2248         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2249         (WebCore::ApplyPropertyComputeLength::setValue): Deleted.
2250         (WebCore::ApplyPropertyComputeLength::applyValue): Deleted.
2251         (WebCore::ApplyPropertyComputeLength::createHandler): Deleted.
2252         * css/StyleBuilderConverter.h:
2253         (WebCore::StyleBuilderConverter::convertComputedLength):
2254         (WebCore::StyleBuilderConverter::convertLineWidth):
2255         (WebCore::StyleBuilderConverter::convertSpacing):
2256
2257 2014-10-24  Chris Dumez  <cdumez@apple.com>
2258
2259         Make ScriptWrappable's destructor protected instead of public
2260         https://bugs.webkit.org/show_bug.cgi?id=138037
2261
2262         Reviewed by Andreas Kling.
2263
2264         Make ScriptWrappable's destructor protected instead of public as it is
2265         not virtual and this class is subclassed a lot.
2266
2267         No new tests, no behavior change.
2268
2269         * bindings/js/ScriptWrappable.h:
2270         (WebCore::ScriptWrappable::~ScriptWrappable):
2271
2272 2014-10-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2273
2274         [GTK][Cairo] Remove GTK dependency of WidgetBackingStoreGtkX11
2275         https://bugs.webkit.org/show_bug.cgi?id=138004
2276
2277         Reviewed by Gustavo Noronha Silva.
2278
2279         Rename all WidgetBackingStore* classes as
2280         BackingStoreBackendCairo* since all of them are actually
2281         BackingStore backends based on cairo, and move them from
2282         platform/cairo and platform/gtk to platform/graphics/cairo.
2283         BackingStoreBackendCairo is the base class that contains common
2284         members like the surface and size. BackingStoreBackendCairoImpl is
2285         the implementation using only cairo, and BackingStoreBackendCairoX11
2286         using xlib. BackingStoreBackendCairoX11 receives all the X11
2287         information it needs as constructor parameters, instead of using a
2288         GtkWidget and GTK+ X11 API. BackingStoreBackendCairoImpl receives
2289         the surface already created as constructor parameter, so that it
2290         doesn't have any platform specific code now.
2291
2292         * PlatformEfl.cmake: Update compilation files.
2293         * PlatformGTK.cmake: Ditto.
2294         * platform/cairo/WidgetBackingStoreCairo.cpp: Removed.
2295         * platform/graphics/cairo/BackingStoreBackendCairo.h: Renamed from Source/WebCore/platform/cairo/WidgetBackingStore.h.
2296         (WebCore::BackingStoreBackendCairo::~BackingStoreBackendCairo):
2297         (WebCore::BackingStoreBackendCairo::surface):
2298         (WebCore::BackingStoreBackendCairo::size):
2299         (WebCore::BackingStoreBackendCairo::BackingStoreBackendCairo):
2300         * platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp: Added.
2301         (WebCore::BackingStoreBackendCairoImpl::BackingStoreBackendCairoImpl):
2302         (WebCore::BackingStoreBackendCairoImpl::~BackingStoreBackendCairoImpl):
2303         (WebCore::BackingStoreBackendCairoImpl::scroll):
2304         * platform/graphics/cairo/BackingStoreBackendCairoImpl.h: Renamed from Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h.
2305         * platform/graphics/cairo/BackingStoreBackendCairoX11.cpp: Renamed from Source/WebCore/platform/gtk/WidgetBackingStoreGtkX11.cpp.
2306         (WebCore::BackingStoreBackendCairoX11::BackingStoreBackendCairoX11):
2307         (WebCore::BackingStoreBackendCairoX11::~BackingStoreBackendCairoX11):
2308         (WebCore::BackingStoreBackendCairoX11::scroll):
2309         * platform/graphics/cairo/BackingStoreBackendCairoX11.h: Renamed from Source/WebCore/platform/gtk/WidgetBackingStoreGtkX11.h.
2310         * platform/graphics/cairo/CairoUtilities.cpp:
2311         (WebCore::cairoSurfaceGetDeviceScale):
2312         * platform/graphics/cairo/CairoUtilities.h:
2313
2314 2014-10-23  Zalan Bujtas  <zalan@apple.com>
2315
2316         WebContent crash at WebCore::RenderTextControl::textFormControlElement const.
2317         https://bugs.webkit.org/show_bug.cgi?id=138035
2318
2319         Reviewed by Antti Koivisto.
2320
2321         NULL-check element().renderer() before using it.
2322
2323         * html/SearchInputType.cpp:
2324         (WebCore::SearchInputType::didSetValueByUserEdit):
2325
2326 2014-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2327
2328         Remove HarfBuzzRun::create() factory function
2329         https://bugs.webkit.org/show_bug.cgi?id=137945
2330
2331         Reviewed by Ryosuke Niwa.
2332
2333         As a step to use std::unique_ptr<>, this patch applies std::unique_ptr<> and std::make_unique<>.
2334         Thus HarfBuzzRun::create() is needed no longer.
2335
2336         No new tests, no behavior changes.
2337
2338         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
2339         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
2340         * platform/graphics/harfbuzz/HarfBuzzShaper.h:
2341         (WebCore::HarfBuzzShaper::HarfBuzzRun::create): Deleted.
2342
2343 2014-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
2344
2345         Unreviewed iOS build fix
2346
2347         * editing/FrameSelection.cpp:
2348
2349 2014-10-23  Chris Dumez  <cdumez@apple.com>
2350
2351         [Mac] Optimize URL::createCFURL() for the common case
2352         https://bugs.webkit.org/show_bug.cgi?id=138030
2353
2354         Reviewed by Alexey Proskuryakov.
2355
2356         Optimize URL::createCFURL() for the common case by adding a fast path
2357         for when the URL String is already 8-bit (common case).
2358         When the string is 8-bit, we don't need to copy the bytes into a
2359         temporary buffer and we can construct the CFURLRef directly from it.
2360
2361         This makes URL::createCFURL() ~34% faster on my machine.
2362
2363         No new tests, no behavior change.
2364
2365         * platform/mac/URLMac.mm:
2366         (WebCore::URL::createCFURL):
2367
2368 2014-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
2369
2370         Carets in GMail and iCloud compositions are the foreground text color
2371         https://bugs.webkit.org/show_bug.cgi?id=138029
2372
2373         Reviewed by Simon Fraser.
2374
2375         Previously, we were only checking whether the background colors of the foreground and background
2376         elements were the same, rather than taking validity and opacity into consideration.
2377
2378         Test: editing/caret/color-span-inside-editable-background.html
2379
2380         * editing/FrameSelection.cpp:
2381         (WebCore::disappearsIntoBackground):
2382         (WebCore::CaretBase::paintCaret):
2383
2384 2014-10-23  Joseph Pecoraro  <pecoraro@apple.com>
2385
2386         Web Inspector: Provide a way to have alternate inspector agents
2387         https://bugs.webkit.org/show_bug.cgi?id=137901
2388
2389         Reviewed by Brian Burg.
2390
2391         * Configurations/FeatureDefines.xcconfig:
2392
2393 2014-10-23  Simon Fraser  <simon.fraser@apple.com>
2394
2395         Don't assume that style.overflowX() == style.overflowY()
2396         https://bugs.webkit.org/show_bug.cgi?id=138028
2397
2398         Reviewed by Zalan Bujtas.
2399
2400         WebKit doesn't support independent overflow scroll/hidden on different axes,
2401         but the RenderStyle does report the correct values. So check both overflowX()
2402         and overflowY() in a couple of places where we need to.
2403
2404         * rendering/RenderLayerCompositor.cpp:
2405         (WebCore::styleHasTouchScrolling):
2406         (WebCore::styleChangeRequiresLayerRebuild):
2407
2408 2014-10-23  Chris Dumez  <cdumez@apple.com>
2409
2410         Get rid of unnecessary vtables in WebKit
2411         https://bugs.webkit.org/show_bug.cgi?id=138024
2412
2413         Reviewed by Benjamin Poulain.
2414
2415         Get rid of unnecessary vtables in WebKit by de-virtualizing destructors
2416         when possible and marking the class as final to make sure people don't
2417         subclass it.
2418
2419         No new tests, no behavior change.
2420
2421         * WebCore.exp.in:
2422         * css/WebKitCSSMatrix.h:
2423         * css/WebKitCSSMatrix.idl:
2424         * html/canvas/WebGLContextGroup.h:
2425         * html/canvas/WebGLGetInfo.h:
2426         * html/canvas/WebGLUniformLocation.h:
2427         (WebCore::WebGLUniformLocation::~WebGLUniformLocation): Deleted.
2428         * html/canvas/WebGLUniformLocation.idl:
2429         * inspector/DOMPatchSupport.h:
2430         * inspector/InspectorHistory.h:
2431         * inspector/InspectorStyleSheet.h:
2432         * page/WheelEventDeltaTracker.h:
2433         * page/scrolling/ScrollLatchingState.h:
2434         * platform/audio/Biquad.h:
2435         * platform/graphics/Pattern.h:
2436
2437 2014-10-23  Chris Dumez  <cdumez@apple.com>
2438
2439         Clean up virtual functions in dom/
2440         https://bugs.webkit.org/show_bug.cgi?id=138019
2441
2442         Reviewed by Benjamin Poulain.
2443
2444         Clean up virtual functions in dom/ by:
2445         - Making virtual functions final when possible
2446         - Making classes final when possible
2447         - Using 'override' when appropriate
2448         - Explicitly marking functions / destructors as virtual when they are
2449           inherently virtual
2450         - Making isXXX() virtual functions private on XXX classes to avoid
2451           unnecessary type checks
2452         - Dropping final for virtual functions in classes already marked as
2453           final
2454
2455         No new tests, no behavior change.
2456
2457         * WebCore.exp.in:
2458         * dom/AutocompleteErrorEvent.h:
2459         * dom/BeforeLoadEvent.h:
2460         (WebCore::BeforeLoadEventInit::BeforeLoadEventInit):
2461         * dom/BeforeTextInsertedEvent.h:
2462         * dom/ClipboardEvent.h:
2463         * dom/CompositionEvent.h:
2464         * dom/CustomEvent.h:
2465         * dom/DeviceMotionController.h:
2466         (WebCore::DeviceMotionController::~DeviceMotionController): Deleted.
2467         * dom/DeviceMotionEvent.h:
2468         * dom/DeviceOrientationController.h:
2469         (WebCore::DeviceOrientationController::~DeviceOrientationController): Deleted.
2470         * dom/DeviceOrientationEvent.h:
2471         * dom/Document.h:
2472         * dom/DocumentFragment.h:
2473         * dom/ErrorEvent.h:
2474         * dom/FocusEvent.h:
2475         * dom/HashChangeEvent.h:
2476         * dom/KeyboardEvent.h:
2477         * dom/LiveNodeList.h:
2478         * dom/MessageEvent.h:
2479         * dom/MessagePort.h:
2480         * dom/MouseEvent.h:
2481         * dom/MouseRelatedEvent.h:
2482         * dom/MutationEvent.h:
2483         * dom/NamedFlowCollection.h:
2484         * dom/OverflowEvent.h:
2485         * dom/PageTransitionEvent.h:
2486         * dom/PendingScript.h:
2487         * dom/PopStateEvent.h:
2488         * dom/RawDataDocumentParser.h:
2489         (WebCore::RawDataDocumentParser::finish): Deleted.
2490         (WebCore::RawDataDocumentParser::flush): Deleted.
2491         (WebCore::RawDataDocumentParser::insert): Deleted.
2492         (WebCore::RawDataDocumentParser::append): Deleted.
2493         * dom/ScriptableDocumentParser.h:
2494         * dom/SecurityPolicyViolationEvent.h:
2495         * dom/TextEvent.h:
2496         * dom/TouchEvent.h:
2497         * dom/TransitionEvent.h:
2498         * dom/UIEvent.h:
2499         * dom/WebKitAnimationEvent.h:
2500         * dom/WebKitTransitionEvent.h:
2501         * dom/WheelEvent.h:
2502         * page/DeviceController.h:
2503         (WebCore::DeviceController::~DeviceController):
2504
2505 2014-10-23  Tim Horton  <timothy_horton@apple.com>
2506
2507         Add some SPI headers for NSExtension and NSSharingService{Picker}
2508         https://bugs.webkit.org/show_bug.cgi?id=138027
2509
2510         Reviewed by Anders Carlsson.
2511
2512         * WebCore.xcodeproj/project.pbxproj:
2513         * platform/spi/cocoa/NSExtensionSPI.h: Added.
2514         * platform/spi/mac/NSSharingServicePickerSPI.h: Added.
2515         * platform/spi/mac/NSSharingServiceSPI.h: Added.
2516         Add modern SPI headers for NSExtension, and NSSharingService{Picker}.
2517
2518         * rendering/RenderThemeMac.mm:
2519         Replace redefinitions with an SPI header #import.
2520
2521 2014-10-23  Eric Carlson  <eric.carlson@apple.com>
2522
2523         [Mac] don't update caption user style sheet during parsing
2524         https://bugs.webkit.org/show_bug.cgi?id=137983
2525         rdar://problem/18735366
2526
2527         Reviewed by Jer Noble.
2528
2529         No new tests, existing tests cover the changes.
2530
2531         * page/CaptionUserPreferencesMediaAF.cpp:
2532         (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF): Initialize m_updateStyleSheetTimer.
2533         (WebCore::CaptionUserPreferencesMediaAF::updateTimerFired): Call updateCaptionStyleSheetOveride.
2534         (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Prime a timer to update 
2535             the captions style sheet after a slight delay.
2536
2537 2014-10-23  Chris Dumez  <cdumez@apple.com>
2538
2539         Move remaining Length-type properties to the new StyleBuilder
2540         https://bugs.webkit.org/show_bug.cgi?id=138012
2541
2542         Reviewed by Antti Koivisto.
2543
2544         Move remaining Length-type properties from DeprecatedStyleBuilder to
2545         the new StyleBuilder so that they are now generated from
2546         CSSPropertyNames.in as well. The patch introduces a couple of type
2547         converters for those: "LengthSizing / LengthMaxSizing".
2548
2549         No new tests, no behavior change.
2550
2551         * css/CSSPropertyNames.in:
2552         * css/DeprecatedStyleBuilder.cpp:
2553         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2554         * css/StyleBuilderConverter.h:
2555         (WebCore::StyleBuilderConverter::convertLengthSizing):
2556         (WebCore::StyleBuilderConverter::convertLengthMaxSizing):
2557
2558 2014-10-23  Jer Noble  <jer.noble@apple.com>
2559
2560         [Mac] Safari cannot play 'audio/amr' content.
2561         https://bugs.webkit.org/show_bug.cgi?id=137894
2562
2563         Reviewed by Eric Carlson.
2564
2565         Test: media/media-can-play-case-insensitive.html
2566
2567         Sites are returning 'video/amr' for AMR audio content, but the IANA spec says 'audio/AMR', which is also what
2568         AVFoundation claims to support.  However, MIME types are supposed to be case-insensitive. When creating our
2569         mime type cache, case-fold to lower all MIME types given to us by our media frameworks.
2570
2571         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2572         (WebCore::mimeTypeCache):
2573         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2574         (WebCore::addFileTypesToCache):
2575
2576 2014-10-23  Chris Dumez  <cdumez@apple.com>
2577
2578         Move Length-type CSS properties from DeprecatedStyleBuilder to the new Style Builder
2579         https://bugs.webkit.org/show_bug.cgi?id=138000
2580
2581         Reviewed by Andreas Kling.
2582
2583         Move most Length-type CSS properties from DeprecatedStyleBuilder to the
2584         new Style Builder so that they are now generated. This patch adds
2585         support for a "Converter" option in CSSPropertyNames.in that can be
2586         used to specify a type converter function in
2587         css/StyleBuilderConverter.h. This patch adds support for Length and
2588         LengthOrAuto converters so that most Length-type properties can now be
2589         generated.
2590
2591         Another converter (likely called "LengthSizing") will be needed to
2592         generate the remaining Length-type properties. This will be taken care
2593         of in a follow-up patch.
2594
2595         This patch is inspired by the following Blink revision by
2596         <timloh@chromium.org>:
2597         https://src.chromium.org/viewvc/blink?view=rev&revision=150500
2598
2599         No new tests, no behavior change.
2600
2601         * WebCore.xcodeproj/project.pbxproj:
2602         * css/CSSPropertyNames.in:
2603         * css/DeprecatedStyleBuilder.cpp:
2604         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2605         * css/SVGCSSPropertyNames.in:
2606         * css/StyleBuilder.h:
2607         * css/StyleBuilderConverter.h: Added.
2608         (WebCore::StyleBuilderConverter::convertLength):
2609         (WebCore::StyleBuilderConverter::convertLengthOrAuto):
2610         * css/StyleResolver.cpp:
2611         (WebCore::StyleResolver::applyProperty):
2612         * css/makeprop.pl:
2613
2614 2014-10-23  Zan Dobersek  <zdobersek@igalia.com>
2615
2616         Const-ify static s_resourceType members in RenderSVGResource* classes
2617         https://bugs.webkit.org/show_bug.cgi?id=137911
2618
2619         Reviewed by Andreas Kling.
2620
2621         Make s_resourceType static members in RenderSVGResource* classes const.
2622         Also update the resourceType() methods, where necessary, so that they
2623         return the s_resourceType constant.
2624
2625         * rendering/svg/RenderSVGResourceClipper.cpp:
2626         * rendering/svg/RenderSVGResourceClipper.h:
2627         * rendering/svg/RenderSVGResourceFilter.cpp:
2628         * rendering/svg/RenderSVGResourceFilter.h:
2629         * rendering/svg/RenderSVGResourceLinearGradient.cpp:
2630         * rendering/svg/RenderSVGResourceLinearGradient.h:
2631         * rendering/svg/RenderSVGResourceMarker.cpp:
2632         * rendering/svg/RenderSVGResourceMarker.h:
2633         * rendering/svg/RenderSVGResourceMasker.cpp:
2634         * rendering/svg/RenderSVGResourceMasker.h:
2635         * rendering/svg/RenderSVGResourcePattern.cpp:
2636         * rendering/svg/RenderSVGResourcePattern.h:
2637         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
2638         * rendering/svg/RenderSVGResourceRadialGradient.h:
2639         * rendering/svg/RenderSVGResourceSolidColor.cpp:
2640         * rendering/svg/RenderSVGResourceSolidColor.h:
2641
2642 2014-10-23  Zan Dobersek  <zdobersek@igalia.com>
2643
2644         [TexMap] Clean up virtual method declarations in GraphicsLayerTextureMapper
2645         https://bugs.webkit.org/show_bug.cgi?id=137957
2646
2647         Reviewed by Martin Robinson.
2648
2649         Added override notation to the GraphicsLayerTextureMapper methods that are
2650         overriding the base methods from the GraphicsLayer class and don't have it yet.
2651         Also reordered these methods to follow the order of declaration in the
2652         GraphicsLayer class.
2653
2654         Removed ::setName() and ::willBeDestroyed() methods since they just called
2655         the base class' methods.
2656
2657         Also removed the ::solidColor() and ::changeMask() methods. The first one was
2658         only called in one place which can reference the m_solidColor member directly,
2659         and the second one wasn't used at all.
2660
2661         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2662         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
2663         (WebCore::GraphicsLayerTextureMapper::setName): Deleted.
2664         (WebCore::GraphicsLayerTextureMapper::willBeDestroyed): Deleted.
2665         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2666         (WebCore::GraphicsLayerTextureMapper::solidColor): Deleted.
2667         (WebCore::GraphicsLayerTextureMapper::usesContentsLayer): Deleted.
2668         (WebCore::GraphicsLayerTextureMapper::platformLayer): Deleted.
2669         (WebCore::GraphicsLayerTextureMapper::changeMask): Deleted.
2670
2671 2014-10-23  Krzysztof Czech  <k.czech@samsung.com>
2672
2673         AX: Do the early return when role is different than UnknownRole
2674         https://bugs.webkit.org/show_bug.cgi?id=137880
2675
2676         Reviewed by Chris Fleizach.
2677
2678         We do not need to call ariaRoleAttribute() to check whether m_ariaRole is different than UnknownRole.
2679         Just check m_ariaRole instead.
2680
2681         No new tests, no behavior change, just some cleanup
2682
2683         * accessibility/AccessibilityNodeObject.cpp:
2684         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
2685         * accessibility/AccessibilityRenderObject.cpp:
2686         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2687         * accessibility/AccessibilityTableRow.cpp:
2688         (WebCore::AccessibilityTableRow::determineAccessibilityRole):
2689
2690 2014-10-23  Yusuke Suzuki  <utatane.tea@gmail.com>
2691
2692         CSS JIT: Implement :matches
2693         https://bugs.webkit.org/show_bug.cgi?id=137947
2694
2695         Reviewed by Benjamin Poulain.
2696
2697         Initial patch for supporting :matches in CSS JIT.
2698         In this patch, we implement :matches
2699         by leveraging the generalized nested backtracking implementation.
2700
2701         Tests: fast/selectors/matches-backtracking.html
2702                fast/selectors/matches-complex.html
2703
2704         * cssjit/SelectorCompiler.cpp:
2705         (WebCore::SelectorCompiler::addPseudoClassType):
2706         (WebCore::SelectorCompiler::hasAnyCombinators):
2707         (WebCore::SelectorCompiler::computeBacktrackingMemoryRequirements):
2708         (WebCore::SelectorCompiler::computeBacktrackingInformation):
2709         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2710         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesMatchesPseudoClass):
2711
2712 2014-10-23  Milan Crha  <mcrha@redhat.com>
2713
2714         RenderThemeGtk::mediaControlsScript() is not defined when VIDEO is disabled.
2715         <https://webkit.org/b/137970>.
2716
2717         Reviewed by Carlos Garcia Campos.
2718
2719         * rendering/RenderThemeGtk.cpp:
2720
2721 2014-10-22  Milan Crha  <mcrha@redhat.com>
2722
2723         Do not include GraphicsContext3D.h when 3D_GRAPHICS is not used.
2724         <https://webkit.org/b/137969>.
2725
2726         Reviewed by Carlos Garcia Campos.
2727
2728         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2729
2730 2014-10-22  Milan Crha  <mcrha@redhat.com>
2731
2732         Do not build WidgetBackingStoreGtkX11 when not used.
2733         <https://webkit.org/b/137972>.
2734
2735         Reviewed by Carlos Garcia Campos.
2736
2737         * platform/gtk/WidgetBackingStoreGtkX11.cpp:
2738         * platform/gtk/WidgetBackingStoreGtkX11.h:
2739
2740 2014-10-22  Simon Fraser  <simon.fraser@apple.com>
2741
2742         [iOS] Toggling overflow:scroll to hidden on element with -webkit-overflow-scrolling:touch can cause children to disappear
2743         https://bugs.webkit.org/show_bug.cgi?id=137999
2744         rdar://problem/18425550
2745
2746         Reviewed by Zalan Bujtas.
2747         
2748         When toggling overflow from scroll to hidden on an element with -webkit-overflow-scrolling:touch,
2749         we'd fail to do a compositing layer rebuild, which caused various issues like unparented
2750         descendants, and misplaced and unrepainted content.
2751         
2752         This happened because we'd get to RenderLayerBacking::updateConfiguration() via styleChanged
2753         with the view needing layout, so never hit the updateScrollingLayers() code, and the subsequent
2754         updateCompositingLayers() would be a no-op.
2755         
2756         Fix by explicitly triggering a layer rebuild when style changes such that the touch-scrollability
2757         of an element changes, as we do for changes in clip.
2758
2759         Test: compositing/scrolling/touch-scroll-to-clip.html
2760
2761         * rendering/RenderLayerCompositor.cpp:
2762         (WebCore::isScrollableOverflow):
2763         (WebCore::styleHasTouchScrolling):
2764         (WebCore::styleChangeRequiresLayerRebuild):
2765
2766 2014-10-22  Chris Dumez  <cdumez@apple.com>
2767
2768         Clean up virtual functions in rendering/
2769         https://bugs.webkit.org/show_bug.cgi?id=137984
2770
2771         Reviewed by Darin Adler.
2772
2773         Clean up virtual functions in rendering/ by:
2774         - Making virtual functions final when possible
2775         - Making classes final when possible
2776         - Using 'override' when appropriate
2777         - Explicitly marking functions / destructors as virtual when they are
2778           inherently virtual
2779         - Dropping virtual destructors when the class does not have subclasses
2780           and mark the class as final, to get rid of unnecessary vtables
2781         - Making isXXX() virtual functions private on XXX classes to avoid
2782           unnecessary type checks
2783         - De-virtualizing some functions that do not need to be virtual
2784         - Dropping final for virtual functions in classes already marked as
2785           final
2786
2787         No new tests, no behavior change.
2788
2789         * html/shadow/SliderThumbElement.cpp:
2790         * rendering/AutoTableLayout.h:
2791         * rendering/ClipPathOperation.h:
2792         (WebCore::ClipPathOperation::type):
2793         (WebCore::ClipPathOperation::isSameType):
2794         * rendering/EllipsisBox.h:
2795         * rendering/FixedTableLayout.h:
2796         * rendering/InlineElementBox.h:
2797         * rendering/RenderBlockFlow.h:
2798         * rendering/RenderCombineText.h:
2799         * rendering/RenderCounter.h:
2800         * rendering/RenderDeprecatedFlexibleBox.h:
2801         * rendering/RenderFlexibleBox.h:
2802         * rendering/RenderFullScreen.h:
2803         * rendering/RenderGrid.h:
2804         * rendering/RenderLayer.h:
2805         * rendering/RenderLayerBacking.h:
2806         * rendering/RenderLayerCompositor.h:
2807         * rendering/RenderLayerFilterInfo.h:
2808         * rendering/RenderLineBreak.h:
2809         * rendering/RenderMarquee.h:
2810         * rendering/RenderMediaControlElements.h:
2811         * rendering/RenderMultiColumnFlowThread.h:
2812         * rendering/RenderMultiColumnSet.h:
2813         * rendering/RenderMultiColumnSpannerPlaceholder.h:
2814         * rendering/RenderNamedFlowFragment.h:
2815         * rendering/RenderNamedFlowThread.h:
2816         * rendering/RenderQuote.h:
2817         * rendering/RenderRegion.h:
2818         (WebCore::RenderRegion::renderName): Deleted.
2819         * rendering/RenderReplica.h:
2820         * rendering/RenderRubyBase.h:
2821         * rendering/RenderRubyRun.h:
2822         * rendering/RenderScrollbar.h:
2823         * rendering/RenderScrollbarPart.h:
2824         * rendering/RenderScrollbarTheme.h:
2825         (WebCore::RenderScrollbarTheme::~RenderScrollbarTheme): Deleted.
2826         (WebCore::RenderScrollbarTheme::scrollbarThickness): Deleted.
2827         (WebCore::RenderScrollbarTheme::buttonsPlacement): Deleted.
2828         (WebCore::RenderScrollbarTheme::supportsControlTints): Deleted.
2829         (WebCore::RenderScrollbarTheme::shouldCenterOnThumb): Deleted.
2830         (WebCore::RenderScrollbarTheme::initialAutoscrollTimerDelay): Deleted.
2831         (WebCore::RenderScrollbarTheme::autoscrollTimerDelay): Deleted.
2832         (WebCore::RenderScrollbarTheme::registerScrollbar): Deleted.
2833         (WebCore::RenderScrollbarTheme::unregisterScrollbar): Deleted.
2834         * rendering/RenderSnapshottedPlugIn.h:
2835         * rendering/RenderTextControlMultiLine.h:
2836         * rendering/RenderTextFragment.h:
2837         * rendering/RenderThemeGtk.h:
2838         * rendering/RenderThemeIOS.h:
2839         * rendering/RenderThemeWin.h:
2840         * rendering/RenderVideo.h:
2841         * rendering/TextAutosizer.h:
2842         * rendering/TrailingFloatsRootInlineBox.h:
2843         * rendering/mathml/RenderMathMLBlock.h:
2844         * rendering/mathml/RenderMathMLMenclose.h:
2845         * rendering/mathml/RenderMathMLOperator.h:
2846         * rendering/mathml/RenderMathMLRadicalOperator.h:
2847         * rendering/mathml/RenderMathMLRoot.h:
2848         * rendering/mathml/RenderMathMLRow.h:
2849         * rendering/mathml/RenderMathMLScripts.h:
2850         * rendering/mathml/RenderMathMLToken.h:
2851         * rendering/mathml/RenderMathMLUnderOver.h:
2852         * rendering/shapes/BoxShape.h:
2853         * rendering/shapes/PolygonShape.h:
2854         * rendering/shapes/RasterShape.h:
2855         * rendering/shapes/RectangleShape.h:
2856         * rendering/style/BasicShapes.h:
2857         * rendering/style/StylePendingImage.h:
2858         (WebCore::StylePendingImage::computeIntrinsicDimensions): Deleted.
2859         * rendering/svg/RenderSVGBlock.h:
2860         * rendering/svg/RenderSVGContainer.h:
2861         * rendering/svg/RenderSVGEllipse.h:
2862         * rendering/svg/RenderSVGForeignObject.h:
2863         * rendering/svg/RenderSVGImage.h:
2864         * rendering/svg/RenderSVGPath.h:
2865         * rendering/svg/RenderSVGRect.h:
2866         * rendering/svg/RenderSVGResourceClipper.h:
2867         * rendering/svg/RenderSVGResourceFilter.h:
2868         * rendering/svg/RenderSVGResourceFilterPrimitive.h:
2869         * rendering/svg/RenderSVGResourceLinearGradient.h:
2870         * rendering/svg/RenderSVGResourceMarker.h:
2871         * rendering/svg/RenderSVGResourceMasker.h:
2872         * rendering/svg/RenderSVGResourcePattern.h:
2873         * rendering/svg/RenderSVGResourceRadialGradient.h:
2874         * rendering/svg/RenderSVGRoot.h:
2875         * rendering/svg/RenderSVGTSpan.h:
2876         * rendering/svg/RenderSVGText.h:
2877         * rendering/svg/RenderSVGTransformableContainer.h:
2878         * rendering/svg/RenderSVGViewportContainer.h:
2879         * rendering/svg/SVGInlineTextBox.h:
2880         * rendering/svg/SVGRootInlineBox.h:
2881
2882 2014-10-22  Jer Noble  <jer.noble@apple.com>
2883
2884         REGRESSION(r175000): Crash in SourceBufferPrivateAVFObjC::destroyParser()
2885         https://bugs.webkit.org/show_bug.cgi?id=137990
2886
2887         Reviewed by Alexey Proskuryakov.
2888
2889         NULL-check m_mediaSource before using.
2890
2891         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2892         (WebCore::SourceBufferPrivateAVFObjC::destroyParser):
2893
2894 2014-10-22  Said Abou-Hallawa  <sabouhallawa@apple.com>
2895
2896         SVG loaded through html <img> can't request to load any external resources.
2897         https://bugs.webkit.org/show_bug.cgi?id=137762.
2898
2899         Reviewed by Daniel Bates.
2900
2901         SVG images have unique security rules that prevent them from loading any external
2902         resources. This patch enforces these rules in CachedResourceLoader::canRequest for
2903         all non-data-uri resources.
2904
2905         The fix and the tests are ported but modified a little from the chromium fix:
2906         http://src.chromium.org/viewvc/blink?view=rev&rev=176084
2907
2908         Test: http/tests/security/svg-image-with-cached-remote-image.html
2909               http/tests/security/svg-image-with-css-cross-domain.html
2910
2911         For the SVG image, prevent loading any external sub-resource except for data urls.
2912         * loader/cache/CachedResourceLoader.cpp:
2913         (WebCore::CachedResourceLoader::canRequest):
2914
2915 2014-10-21  Ada Chan  <adachan@apple.com>
2916
2917         MediaPlayerPrivateAVFoundation::hasAudio() returns false even when there is an audible AVMediaSelectionOption selected
2918         https://bugs.webkit.org/show_bug.cgi?id=137935
2919
2920         Reviewed by Eric Carlson.
2921
2922         Set hasAudio to true if there's a selected audible AVMediaSelectionOption
2923         after the call to updateAudioTracks(). Ditto for video.
2924
2925         Test: http/tests/media/hls/hls-audio-tracks-has-audio.html
2926
2927         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2928         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
2929
2930         * testing/Internals.cpp:
2931         (WebCore::Internals::mediaElementHasCharacteristic):
2932         * testing/Internals.h:
2933         * testing/Internals.idl:
2934         Add internals.mediaElementHasCharacteristic for the new test.
2935
2936 2014-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2937
2938         Remove WidgetBackingStoreCairo::create() factory function
2939         https://bugs.webkit.org/show_bug.cgi?id=137943
2940
2941         Reviewed by Darin Adler.
2942
2943         WidgetBackingStoreCairo::create() can be replaced by std::make_unique<>.
2944         Thus this patch removes it, then use std::make_unique<>|std::unique_ptr<>.
2945
2946         No new tests, no behavior changes.
2947
2948         * platform/cairo/WidgetBackingStoreCairo.cpp:
2949         (WebCore::WidgetBackingStoreCairo::create): Deleted.
2950         * platform/cairo/WidgetBackingStoreCairo.h:
2951         * platform/gtk/WidgetBackingStoreGtkX11.cpp:
2952         (WebCore::WidgetBackingStoreGtkX11::create): Deleted.
2953         * platform/gtk/WidgetBackingStoreGtkX11.h:
2954
2955 2014-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2956
2957         Remove TextCheckerEnchant::create() factory function
2958         https://bugs.webkit.org/show_bug.cgi?id=137944
2959
2960         Reviewed by Darin Adler.
2961
2962         TextCheckerEnchant::create() can be replaced by std::make_unique<> and std::unique_ptr<>.
2963
2964         No new tests, no behavior change.
2965
2966         * platform/text/enchant/TextCheckerEnchant.h:
2967         (WebCore::TextCheckerEnchant::create): Deleted.
2968
2969 2014-10-22  Chris Dumez  <cdumez@apple.com>
2970
2971         Avoid confusion between AccessibilityObject::isTable() / isAccessibilityTable()
2972         https://bugs.webkit.org/show_bug.cgi?id=137899
2973
2974         Reviewed by Darin Adler.
2975
2976         Avoid confusion between AccessibilityObject::isTable() and
2977         isAccessibilityTable(). isTable() is equivalent to
2978         is<AccessibilityTable>(), while isAccessibilityTable() is an
2979         AccessibilityTable that is exposed as an AccessibilityTable to the
2980         platform.
2981
2982         This patch is renaming isAccessibilityTable() to
2983         isExposableThroughAccessibility(), makes it non-virtual and defines it
2984         on AccessibilityTable only, for clarity.
2985
2986         This patch also renames isTableExposableThroughAccessibility() to
2987         computeIisTableExposableThroughAccessibility() as it is called only
2988         once to initialize the m_isExposableThroughAccessibility data member.
2989
2990         No new tests, no behavior change.
2991
2992         * accessibility/AccessibilityARIAGrid.cpp:
2993         (WebCore::AccessibilityARIAGrid::addChildren):
2994         * accessibility/AccessibilityARIAGrid.h:
2995         * accessibility/AccessibilityARIAGridCell.cpp:
2996         (WebCore::AccessibilityARIAGridCell::parentTable):
2997         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
2998         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
2999         * accessibility/AccessibilityARIAGridRow.cpp:
3000         (WebCore::AccessibilityARIAGridRow::disclosedRows):
3001         (WebCore::AccessibilityARIAGridRow::disclosedByRow):
3002         (WebCore::AccessibilityARIAGridRow::parentTable):
3003         * accessibility/AccessibilityNodeObject.cpp:
3004         (WebCore::shouldUseAccessiblityObjectInnerText):
3005         * accessibility/AccessibilityObject.cpp:
3006         (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
3007         (WebCore::appendChildrenToArray):
3008         * accessibility/AccessibilityObject.h:
3009         (WebCore::AccessibilityObject::isAccessibilityTable): Deleted.
3010         * accessibility/AccessibilityRenderObject.cpp:
3011         (WebCore::AccessibilityRenderObject::ariaSelectedRows):
3012         * accessibility/AccessibilityTable.cpp:
3013         (WebCore::AccessibilityTable::AccessibilityTable):
3014         (WebCore::AccessibilityTable::init):
3015         (WebCore::AccessibilityTable::isExposableThroughAccessibility):
3016         (WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):
3017         (WebCore::AccessibilityTable::addChildren):
3018         (WebCore::AccessibilityTable::tableLevel):
3019         (WebCore::AccessibilityTable::roleValue):
3020         (WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
3021         (WebCore::AccessibilityTable::title):
3022         (WebCore::AccessibilityTable::isAccessibilityTable): Deleted.
3023         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility): Deleted.
3024         * accessibility/AccessibilityTable.h:
3025         * accessibility/AccessibilityTableCell.cpp:
3026         (WebCore::AccessibilityTableCell::isTableCell):
3027         * accessibility/AccessibilityTableColumn.cpp:
3028         (WebCore::AccessibilityTableColumn::headerObject):
3029         (WebCore::AccessibilityTableColumn::addChildren):
3030         * accessibility/AccessibilityTableHeaderContainer.cpp:
3031         (WebCore::AccessibilityTableHeaderContainer::addChildren):
3032         * accessibility/AccessibilityTableRow.cpp:
3033         (WebCore::AccessibilityTableRow::isTableRow):
3034         (WebCore::AccessibilityTableRow::parentTable):
3035         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3036         (webkitAccessibleGetNChildren):
3037         (webkitAccessibleRefChild):
3038         (webkitAccessibleGetAttributes):
3039         * accessibility/mac/AXObjectCacheMac.mm:
3040         (WebCore::AXObjectCache::postPlatformNotification):
3041         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3042         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
3043         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
3044         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
3045         (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
3046         (-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
3047         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
3048
3049 2014-10-22  Chris Dumez  <cdumez@apple.com>
3050
3051         Avoid repeated is<MutableStyleProperties>() checks in StyleProperties
3052         https://bugs.webkit.org/show_bug.cgi?id=137978
3053
3054         Reviewed by Andreas Kling.
3055
3056         Reduce the amount of is<MutableStyleProperties>() checks in
3057         StyleProperties by:
3058         - Removing the checks in each method of StyleProperties::PropertyReference,
3059           and replace them by a single check in StyleProperties::propertyAt().
3060         - Providing faster propertyCount() / propertyAt() / isEmpty() methods on
3061           MutableStyleProperties / ImmutableStyleProperties as a lot of callers use
3062           tight typing.
3063         - Using tighter typing at call sites whenever possible.
3064
3065         Ideally, we could be able to use iterators instead of propertyCount() /
3066         propertyAt() but this is not trivial to do efficiently as the
3067         representation in memory is fundamentally different for MutableStyleProperties
3068         / ImmutableStyleProperties. We may be able to do better longer term, but
3069         this is already more efficient short term at least.
3070
3071         No new tests, no behavior change.
3072
3073         * css/StyleProperties.cpp:
3074         (WebCore::MutableStyleProperties::MutableStyleProperties):
3075         (WebCore::StyleProperties::PropertyReference::cssText):
3076         * css/StyleProperties.h:
3077         (WebCore::StyleProperties::PropertyReference::PropertyReference):
3078         (WebCore::StyleProperties::PropertyReference::id):
3079         (WebCore::StyleProperties::PropertyReference::shorthandID):
3080         (WebCore::StyleProperties::PropertyReference::isImportant):
3081         (WebCore::StyleProperties::PropertyReference::isInherited):
3082         (WebCore::StyleProperties::PropertyReference::isImplicit):
3083         (WebCore::StyleProperties::PropertyReference::value):
3084         (WebCore::StyleProperties::PropertyReference::toCSSProperty):
3085         (WebCore::StyleProperties::isEmpty):
3086         (WebCore::ImmutableStyleProperties::isEmpty):
3087         (WebCore::MutableStyleProperties::isEmpty):
3088         (WebCore::ImmutableStyleProperties::propertyAt):
3089         (WebCore::MutableStyleProperties::propertyAt):
3090         (WebCore::StyleProperties::propertyAt):
3091         (WebCore::StyleProperties::propertyCount):
3092         (WebCore::StyleProperties::PropertyReference::propertyMetadata): Deleted.
3093         (WebCore::StyleProperties::PropertyReference::propertyValue): Deleted.
3094         * editing/EditingStyle.cpp:
3095         (WebCore::removePropertiesInStyle):
3096         (WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
3097
3098 2014-10-22  Eric Carlson  <eric.carlson@apple.com>
3099
3100         [Mac][MediaStream] clean up bit rot
3101         https://bugs.webkit.org/show_bug.cgi?id=137976
3102
3103         Reviewed by Jer Noble.
3104
3105         No new tests, this just gets the Mac port compiling again.
3106
3107         * Modules/mediastream/MediaStream.h: Add a virtual destructor to Observer since it has 
3108             a virtual method.
3109
3110         * WebCore.exp.in: Export RTCPeerConnectionHandler::create and RTCPeerConnectionHandlerMock::create(WebCore::RTCPeerConnectionHandlerClient*),
3111             they are both use by Internals for testing.
3112
3113         * WebCore.xcodeproj/project.pbxproj: Add RTC and MediaStream files.
3114
3115         * html/HTMLMediaElement.h: Forward declare MediaStream instead of including MediaStream.h.
3116
3117         * platform/mediastream/RTCPeerConnectionHandler.h: EXPORT the create method.
3118
3119         * platform/mock/MediaConstraintsMock.cpp:
3120         (WebCore::isSupported): Make static.
3121         (WebCore::isValid): Ditto.
3122
3123         * platform/mock/RTCPeerConnectionHandlerMock.h: EXPORT the create method.
3124
3125 2014-10-22  Chris Dumez  <cdumez@apple.com>
3126
3127         [Mac][WK2] Fix applicationIsSafari() detection
3128         https://bugs.webkit.org/show_bug.cgi?id=137893
3129
3130         Reviewed by Alexey Proskuryakov.
3131
3132         I noticed when profiling Safari on Mac that we were exercising a code
3133         path we shouldn't because it is meant for other applications that
3134         Safari.
3135
3136         The detection relies on the applicationIsSafari() function in
3137         RuntimeApplicationChecks.cpp. This was in some cases returning false on
3138         my machine even though I was running Safari so I investigated a bit and
3139         noticed that the check relies on the main bundle identifier string and
3140         is doing:
3141         isSafari = mainBundleIsEqualTo("com.apple.Safari")
3142             || mainBundleIsEqualTo("com.apple.WebProcess");
3143
3144         This WebProcess detection is very unreliable because:
3145         - It matches other apps than Safari's WebProcesses
3146         - The bundle name for the WebProcess is sometimes
3147         "com.apple.WebKit.WebContent" or
3148         "com.apple.WebKit.WebContent.Development".
3149
3150         The solution used in this patch is to move the applicationIsSafari()
3151         check to the UIProcess so that the check actually succeeds reliably.
3152         The call site for applicationIsSafari() was in
3153         ResourceRequest::useQuickLookResourceCachingQuirks(). This match
3154         removes that logic from ResourceRequest and move it to
3155         FrameLoaderClient as only the FrameLoader is interested in this
3156         information. The logic to determine if we should use QuickLook
3157         resource caching quirks is moved to a new QuickLook class under
3158         platform/ as the code needs to be shared between WebKit and WebKit2.
3159         On WebKit2, we make use that code on the UIProcess side and pass
3160         the flag as a parameter when constructing the WebProcess. The flag
3161         is then stored on the WebProcess and queried by WebFrameLoaderClient.
3162
3163         Previously, we would spend ~1% of the WebProcess cpu time (when loading
3164         apple.com) trying to detect if we should use QuickLook resource caching
3165         quirks even though that check was supposed to be disabled and return
3166         early when running Safari.
3167
3168         No new tests, not easily testable.
3169
3170         * WebCore.exp.in:
3171         * WebCore.xcodeproj/project.pbxproj:
3172         * loader/EmptyClients.h:
3173         * loader/FrameLoader.cpp:
3174         (WebCore::FrameLoader::subresourceCachePolicy):
3175         * loader/FrameLoaderClient.h:
3176         * platform/RuntimeApplicationChecks.cpp:
3177         (WebCore::applicationIsSafari):
3178         Remove "com.apple.WebProcess" bundle name matching as this causes false
3179         positives (matches other applications than Safari's WebProcesses) and
3180         it is no longer needed now that applicationIsSafari() is always called
3181         from the UIProcess.
3182
3183         * platform/mac/QuickLookMac.h: Added.
3184         * platform/mac/QuickLookMac.mm: Copied from Source/WebCore/platform/network/mac/ResourceRequestMac.mm.
3185         (WebCore::QuickLookMac::computeNeedsQuickLookResourceCachingQuirks):
3186         * platform/network/cf/ResourceRequest.h:
3187         * platform/network/ios/ResourceRequestIOS.mm:
3188         (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks): Deleted.
3189         * platform/network/mac/ResourceRequestMac.mm:
3190         (WebCore::initQuickLookResourceCachingQuirks): Deleted.
3191         (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks): Deleted.
3192
3193 2014-10-22  Shivakumar JM  <shiva.jm@samsung.com>
3194
3195         XMLHttpRequest should support attribute responseURL as per latest XHR spec.
3196         https://bugs.webkit.org/show_bug.cgi?id=136938
3197
3198         Reviewed by Alexey Proskuryakov.
3199
3200         Tests: http/tests/xmlhttprequest/basic-auth-responseURL.html
3201                http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html
3202                http/tests/xmlhttprequest/redirect-credentials-responseURL.html
3203                http/tests/xmlhttprequest/xmlhttprequest-responseURL.html
3204
3205         XMLHttpRequest should support attribute responseURL
3206
3207         * xml/XMLHttpRequest.cpp:
3208         (WebCore::XMLHttpRequest::responseURL):
3209         * xml/XMLHttpRequest.h:
3210         * xml/XMLHttpRequest.idl:
3211
3212 2014-10-22  Chris Dumez  <cdumez@apple.com>
3213
3214         Add initial support for generating the StyleBuilder from CSSPropertyNames.in
3215         https://bugs.webkit.org/show_bug.cgi?id=137910
3216
3217         Reviewed by Andreas Kling.
3218
3219         Add initial support for generating the StyleBuilder from
3220         CSSPropertyNames.in. This is a first step towards getting rid of the
3221         legacy DeprecatedStyleBuilder class and having everything defined in one
3222         place (CSSPropertyNames.in).
3223
3224         This patch updates makeprop.pl script to generate a StyleBuilder.cpp
3225         file that generate a the StyleBuilder::applyProperty() method
3226         implementation using a huge switch statement for all the CSS
3227         properties. With this patch, we are now generating the new StyleBuilder
3228         code for all the "simple" CSS properties (i.e. those that were using
3229         ApplyPropertyDefault<> in DeprecatedStyleBuilder.cpp). I am using a
3230         "NewStyleBuilder" option in CSSPropertyNames.in for properties that
3231         we generate to help with improving incrementally the generator. Once
3232         we are able to generate all properties, this transition option will
3233         do away and become the default.
3234
3235         By default, the generator will make an educated guess for the type
3236         name, the getter, the setter and the initial function of each property.
3237         For example, for the border-collapse property, it will use:
3238         - TypeName: EBorderCollapse (i.e. 'E' + PropertyId)
3239         - Getter: borderCollapse() (i.e. PropertyId with first letter lowercased)
3240         - Setter: setBorderCollapse() (i.e. 'set' + PropertyId)
3241         - Initial: initialBorderCollapse() (i.e. 'initial' + PropertyId)
3242
3243         This works for most properties. For properties that need
3244         special-casing, developers can use the following options in
3245         CSSPropertyNames.in:
3246         - TypeName: Overrides the type name
3247         - Getter: Overrides the getter name
3248         - Setter: Overrides the setter name
3249         - Initial: Overrides the initial function name
3250         - NameForMethods: Overrides the Getter / Setter / Initial function
3251           names. For e.g. "NameForMethods=OverflowWrap" will use
3252           "overflowWrap() / setOverflowWrap() / initialOverflowWrap()".
3253
3254         The patch is inspired by the following Blink revision by
3255         <timloh@chromium.org>:
3256         https://src.chromium.org/viewvc/blink?view=rev&revision=150424
3257
3258         No new tests, no behavior change.
3259
3260         * CMakeLists.txt:
3261         * DerivedSources.make:
3262         * WebCore.vcxproj/WebCore.vcxproj:
3263         * WebCore.vcxproj/WebCore.vcxproj.filters:
3264         * WebCore.xcodeproj/project.pbxproj:
3265         * css/CSSPropertyNames.in:
3266         * css/DeprecatedStyleBuilder.cpp:
3267         (WebCore::ApplyPropertyVerticalAlign::createHandler):
3268         (WebCore::ApplyPropertyDisplay::applyInitialValue):
3269         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3270         * css/StyleBuilder.h: Added.
3271         * css/StyleResolver.cpp:
3272         (WebCore::StyleResolver::adjustRenderStyle):
3273         (WebCore::StyleResolver::applyProperty):
3274         * css/makeprop.pl:
3275         * rendering/style/RenderStyle.h:
3276         Move the initialXXX() methods that were in NonInheritedFlags to
3277         RenderStyle class, with the other initialXXX() methods to facilitate
3278         code generation.
3279
3280         * rendering/style/StyleMultiColData.cpp:
3281         (WebCore::StyleMultiColData::StyleMultiColData):
3282         * rendering/style/StyleRareNonInheritedData.cpp:
3283         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3284
3285 2014-10-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3286
3287         Unreviewed. Fix GStreamer debug build after r175050.
3288
3289         Explicitly include wtf/MainThread.h.
3290
3291         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
3292
3293 2014-10-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3294
3295         [GStreamer] Do not use CachedResourceLoader, SecurityOrigin, ResourceBuffer and other WebCore types
3296         https://bugs.webkit.org/show_bug.cgi?id=137064
3297
3298         Reviewed by Philippe Normand.
3299
3300         Move the media resource loader to a new class in WebCore/loader
3301         that inherits from a PlatformMediaResourceLoader class defined in
3302         the platform layer. The platform specific behaviour is implemented
3303         using a client also defined in the platform layer, implemented by
3304         every media backend, and used by the WebCore MediaResourceLoader.
3305
3306         * CMakeLists.txt: Add new files to compilation.
3307         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
3308         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
3309         * WebCore.xcodeproj/project.pbxproj: Ditto.
3310         * html/HTMLMediaElement.cpp:
3311         (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
3312         Create a MediaResourceLoader.
3313         (WebCore::HTMLMediaElement::mediaPlayerCORSMode): Deleted. This is
3314         no longer used.
3315         * html/HTMLMediaElement.h:
3316         * loader/MediaResourceLoader.cpp: Added.
3317         (WebCore::MediaResourceLoader::MediaResourceLoader):
3318         (WebCore::MediaResourceLoader::~MediaResourceLoader):
3319         (WebCore::MediaResourceLoader::start): Start a new load for the
3320         given request and load options.
3321         (WebCore::MediaResourceLoader::stop): Stop the load if needed.
3322         (WebCore::MediaResourceLoader::setDefersLoading):
3323         (WebCore::MediaResourceLoader::responseReceived): Handle CORS
3324         access check and notify the client about the response.
3325         (WebCore::MediaResourceLoader::dataReceived): Notify the client.
3326         (WebCore::MediaResourceLoader::notifyFinished): Ditto.
3327         (WebCore::MediaResourceLoader::getOrCreateReadBuffer): Ask the
3328         client to create the read buffer.
3329         * loader/MediaResourceLoader.h: Added.
3330         * platform/graphics/MediaPlayer.cpp:
3331         (WebCore::MediaPlayer::createResourceLoader): Call
3332         mediaPlayerCreateResourceLoader() if there's a client.
3333         * platform/graphics/MediaPlayer.h:
3334         (WebCore::MediaPlayerClient::mediaPlayerCreateResourceLoader):
3335         (WebCore::MediaPlayerClient::mediaPlayerCORSMode): Deleted.
3336         * platform/graphics/PlatformMediaResourceLoader.h: Added.
3337         (WebCore::PlatformMediaResourceLoaderClient::responseReceived):
3338         (WebCore::PlatformMediaResourceLoaderClient::dataReceived):
3339         (WebCore::PlatformMediaResourceLoaderClient::bufferReceived):
3340         (WebCore::PlatformMediaResourceLoaderClient::accessControlCheckFailed):
3341         (WebCore::PlatformMediaResourceLoaderClient::loadFailed):
3342         (WebCore::PlatformMediaResourceLoaderClient::loadFinished):
3343         (WebCore::PlatformMediaResourceLoaderClient::getOrCreateReadBuffer):
3344         (WebCore::PlatformMediaResourceLoader::~PlatformMediaResourceLoader):
3345         (WebCore::PlatformMediaResourceLoader::stop):
3346         (WebCore::PlatformMediaResourceLoader::setDefersLoading):
3347         (WebCore::PlatformMediaResourceLoader::didPassAccessControlCheck):
3348         (WebCore::PlatformMediaResourceLoader::PlatformMediaResourceLoader):
3349         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
3350         (webKitWebSrcStop): Also delete the PlatformMediaResourceLoader.
3351         (webKitWebSrcStart): Create a new resource loader using
3352         MediaPlayer::createResourceLoader() with a new
3353         CachedResourceStreamingClient as client.
3354         (webKitWebSrcNeedDataMainCb): Call setDefersLoading() for the
3355         resource loader if there's one.
3356         (webKitWebSrcEnoughDataMainCb): Ditto.
3357         (webKitSrcPassedCORSAccessCheck): Return didPassAccessControlCheck.
3358         (StreamingClient::handleResponseReceived): Remove the CORS check
3359         result parameter since that's now handled by MediaResourceLoader.
3360         (CachedResourceStreamingClient::CachedResourceStreamingClient):
3361         (CachedResourceStreamingClient::~CachedResourceStreamingClient):
3362         (CachedResourceStreamingClient::getOrCreateReadBuffer):
3363         (CachedResourceStreamingClient::responseReceived): Update didPassAccessControlCheck.
3364         (CachedResourceStreamingClient::dataReceived):
3365         (CachedResourceStreamingClient::accessControlCheckFailed): Log the
3366         error and stop the load.
3367         (CachedResourceStreamingClient::loadFailed): Log the error if it
3368         was not a cancellation.
3369         (CachedResourceStreamingClient::loadFinished):
3370         (ResourceHandleStreamingClient::didReceiveResponse):
3371         (CachedResourceStreamingClient::setDefersLoading): Deleted.
3372         (CachedResourceStreamingClient::notifyFinished): Deleted.
3373
3374 2014-10-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3375
3376         [GTK] Move GtkInputMethodFilter from Platform to WebKit2
3377         https://bugs.webkit.org/show_bug.cgi?id=137884
3378
3379         Reviewed by Gustavo Noronha Silva.
3380
3381         Remove GtkInputMethodFilter.
3382
3383         * PlatformGTK.cmake:
3384         * platform/gtk/GtkInputMethodFilter.cpp: Removed.
3385         * platform/gtk/GtkInputMethodFilter.h: Removed.
3386
3387 2014-10-22  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
3388
3389         Match spec for font-weight: bolder|lighter
3390         https://bugs.webkit.org/show_bug.cgi?id=137919
3391
3392         Reviewed by Andreas Kling.
3393
3394         This patch is a merge of Blink's
3395         https://chromiumcodereview.appspot.com/15994009
3396         
3397         Currently, bolder and lighter change font-weight in a non-compliant way.
3398         The spec (http://www.w3.org/TR/css3-fonts/#bolderlighter) defines
3399         exactly what the computed values should be given the inherited weight values,
3400         so we should match those.
3401         
3402         The removed FIXME's for selecting the next lightest/heaviest weight from
3403         the used font family seems to refer to behaviour from
3404         CSS1 (http://www.w3.org/TR/CSS1/#font-weight), while this is replaced
3405         with a simpler procedure for resolving bolder and lighter in font weights
3406         in CSS2 (http://www.w3.org/TR/CSS2/fonts.html#propdef-font-weight) and CSS3 (link above).
3407         
3408         and https://codereview.chromium.org/137813004
3409         
3410         According to http://dev.w3.org/csswg/css-fonts/#font-weight-prop, the computed
3411         weight of 'lighter' and 'bolder' are based on the inherited 'font-weight', so set
3412         that inherited weight before calculating 'lighter' and 'bolder'.
3413
3414         Tests: css3/font-weight-multiple-selectors.html
3415                css3/font-weight.html
3416
3417         * css/DeprecatedStyleBuilder.cpp:
3418         (WebCore::ApplyPropertyFontWeight::applyValue):
3419         * platform/graphics/FontDescription.cpp:
3420         (WebCore::FontDescription::lighterWeight):
3421         (WebCore::FontDescription::bolderWeight):
3422
3423 2014-10-22  Rohit Kumar  <kumar.rohit@samsung.com>
3424
3425         [GTK]: Fix unused parameter build warnings in WebCore/platform module
3426         https://bugs.webkit.org/show_bug.cgi?id=137921
3427
3428         Reviewed by Carlos Garcia Campos.
3429
3430         * platform/ScrollAnimatorNone.cpp:
3431         (WebCore::ScrollAnimatorNone::PerAxisData::PerAxisData):
3432         (WebCore::ScrollAnimatorNone::animationTimerFired):
3433
3434 2014-10-22  Dhi Aurrahman  <diorahman@rockybars.com>
3435
3436         Add relList to the anchor, area and link elements
3437         https://bugs.webkit.org/show_bug.cgi?id=137860
3438
3439         Reviewed by Darin Adler and Chris Dumez.
3440
3441         Add relList to reflect the rel content attribute for anchor[1],