Remove DataCue "text" attribute
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-12-11  Brendan Long  <b.long@cablelabs.com>
2
3         Remove DataCue "text" attribute
4         https://bugs.webkit.org/show_bug.cgi?id=139461
5
6         Reviewed by Eric Carlson.
7
8         * html/track/DataCue.cpp:
9         * html/track/DataCue.h:
10         * html/track/DataCue.idl:
11
12 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
13
14         Initialize m_ownsGeneratedFile when decoding a FormDataElement
15         https://bugs.webkit.org/show_bug.cgi?id=139566
16
17         Reviewed by Tim Horton.
18
19         No tests, because it's random, and I couldn't reproduce an assertion failure in
20         controlled circumstances.
21
22         * platform/network/FormData.h: (WebCore::FormDataElement::decode): A newly created
23         FormDataElement by definition doesn't own the file.
24
25 2014-12-11  Anders Carlsson  <andersca@apple.com>
26
27         Fix Windows build.
28
29         * WebCore.vcxproj/WebCore.vcxproj:
30         * WebCore.vcxproj/WebCore.vcxproj.filters:
31
32 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
33
34         Fix the build.
35
36         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
37
38 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
39
40         Fix the build.
41
42         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
43
44 2014-12-11  Timothy Horton  <timothy_horton@apple.com>
45
46         Move the preview popover to WKImmediateActionController
47         https://bugs.webkit.org/show_bug.cgi?id=139560
48         <rdar://problem/19208291>
49
50         Reviewed by Beth Dakin.
51
52         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
53         Add some requisite SPI.
54
55 2014-12-11  Jer Noble  <jer.noble@apple.com>
56
57         [Mac] Crash in -[WebVideoFullscreenHUDWindowController playing] in WK1 clients without FULLSCREEN_API enabled.
58         https://bugs.webkit.org/show_bug.cgi?id=139546
59
60         Reviewed by Eric Carlson.
61
62         Finish the work started by r173230 and rename mediaElement -> videoElement in WebVideoFullscreenHUDWindowController.
63
64         * platform/mac/WebVideoFullscreenHUDWindowController.h:
65         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
66         (-[WebVideoFullscreenHUDWindowController endScrubbing]):
67         (-[WebVideoFullscreenHUDWindowController timelinePositionChanged:]):
68         (-[WebVideoFullscreenHUDWindowController currentTime]):
69         (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
70         (-[WebVideoFullscreenHUDWindowController duration]):
71         (-[WebVideoFullscreenHUDWindowController decrementVolume]):
72         (-[WebVideoFullscreenHUDWindowController incrementVolume]):
73         (-[WebVideoFullscreenHUDWindowController volume]):
74         (-[WebVideoFullscreenHUDWindowController setVolume:]):
75         (-[WebVideoFullscreenHUDWindowController playing]):
76         (-[WebVideoFullscreenHUDWindowController setPlaying:]):
77         (-[WebVideoFullscreenHUDWindowController remainingTimeText]):
78         (-[WebVideoFullscreenHUDWindowController elapsedTimeText]):
79         (-[WebVideoFullscreenHUDWindowController rewind:]):
80         (-[WebVideoFullscreenHUDWindowController fastForward:]):
81
82 2014-12-11  Anders Carlsson  <andersca@apple.com>
83
84         Fix iOS build.
85
86         * storage/StorageTracker.cpp:
87         (WebCore::StorageTracker::syncDeleteAllOrigins):
88
89 2014-12-11  Anders Carlsson  <andersca@apple.com>
90
91         Stop using SQLiteFileSystem in the storage code
92         https://bugs.webkit.org/show_bug.cgi?id=139549
93
94         Reviewed by Sam Weinig.
95
96         Just inline the SQLiteFileSystem calls into their respective call sites.
97         This is more preparation for moving the old storage code into WebKit proper.
98
99         * storage/StorageAreaSync.cpp:
100         (WebCore::StorageAreaSync::deleteEmptyDatabase):
101         * storage/StorageTracker.cpp:
102         (WebCore::StorageTracker::trackerDatabasePath):
103         (WebCore::ensureDatabaseFileExists):
104         (WebCore::StorageTracker::openTrackerDatabase):
105         (WebCore::truncateDatabaseFile):
106         (WebCore::StorageTracker::syncDeleteAllOrigins):
107         (WebCore::StorageTracker::syncDeleteOrigin):
108         (WebCore::StorageTracker::diskUsageForOrigin):
109
110 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
111
112         Unreviewed, rolling out r177155.
113
114         Caused crashes on webarchive tests.
115
116         Reverted changeset:
117
118         "[SVG Masking] Enable the use of <mask> elements for -webkit-
119         mask-image"
120         https://bugs.webkit.org/show_bug.cgi?id=139294
121         http://trac.webkit.org/changeset/177155
122
123 2014-12-11  Anders Carlsson  <andersca@apple.com>
124
125         Call StorageThread::releaseFastMallocFreeMemoryInAllThreads from WebKit
126         https://bugs.webkit.org/show_bug.cgi?id=139547
127
128         Reviewed by Sam Weinig.
129
130         This is another step towards moving StorageThread (and friends) to WebKit.
131
132         * WebCore.exp.in:
133         * WebCore.xcodeproj/project.pbxproj:
134         * platform/MemoryPressureHandler.cpp:
135         (WebCore::MemoryPressureHandler::releaseMemory):
136
137 2014-12-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
138
139         ASSERTION FAILED: animatedTypes[0].properties.size() == 1 in WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue.
140         https://bugs.webkit.org/show_bug.cgi?id=139046.
141
142         Reviewed by Dirk Schulze.
143
144         Test: svg/animations/unsupported-animate-element-attributes.svg.
145         
146         The SVG base animator element should not animate an attribute if it is not
147         supported by the target SVG element. Besides the CSS presentation attributes, 
148         every SVG element defines which attributes can be animated by including them
149         between BEGIN_DECLARE_ANIMATED_PROPERTIES and END_DECLARE_ANIMATED_PROPERTIES
150         in the definition of the class. This definition builds attribute-properties map.
151         When restarting the animation, the animator looks for all the attributes that
152         match the animated attribute name. If the supported attribute-properties map
153         does not include the animated attribute name, an empty element-properties list
154         should be returned. When getting an empty element-properties list, the animator
155         should not start any animation for the unsupported attribute.
156
157         Do not start the animation if the animated attribute is not supported by 
158         the target SVG element.
159         * svg/SVGAnimateElementBase.cpp:
160         (WebCore::SVGAnimateElementBase::resetAnimatedType):
161         
162         Return an empty element-properties list if the animated attribute is not
163         supported by the target SVG element.
164         * svg/SVGAnimatedTypeAnimator.cpp:
165         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
166
167 2014-12-10  Dean Jackson  <dino@apple.com>
168
169         InstancedArray crashes attempting to draw out of bounds
170         https://bugs.webkit.org/show_bug.cgi?id=139521
171
172         Reviewed by Simon Fraser.
173
174         We were not doing index validation correctly for instancing.
175
176         Test: fast/canvas/webgl/angle-instanced-arrays-out-of-bounds.html
177
178         * html/canvas/WebGLRenderingContext.cpp:
179         (WebCore::WebGLRenderingContext::validateVertexAttributes): We need to check
180         the number of instances drawn against the amount of instance data that has
181         been provided, taking into account the number of repeats (the divisor).
182         (WebCore::WebGLRenderingContext::drawArrays): Added some whitespace to make it more clear.
183         (WebCore::WebGLRenderingContext::validateDrawElements): This needs to take a primcount
184         parameter so that it can correctly validate the call (when used from drawElementsInstanced).
185         (WebCore::WebGLRenderingContext::drawElements): New signature to validate.
186         (WebCore::WebGLRenderingContext::drawArraysInstanced): Rearrange this a bit. The
187         primcount validation is already being done by the validateDrawArrays call. Also, there
188         was a bogus UNUSED_PARAM hanging around.
189         (WebCore::WebGLRenderingContext::drawElementsInstanced): Similar rearrangement. Use
190         the primcount parameter.
191         * html/canvas/WebGLRenderingContext.h:
192
193 2014-12-11  Radu Stavila  <stavila@adobe.com>
194
195         [SVG Masking] Enable the use of <mask> elements for -webkit-mask-image
196         https://bugs.webkit.org/show_bug.cgi?id=139294
197
198         Reviewed by Simon Fraser.
199
200         This patch links together all parts required for the functionality which improves 
201         the -webkit-mask-image property by allowing it to reference a <mask> element defined 
202         in an inline or external SVG document.
203         Support for this new functionality has been added in a previous patch, under issue
204         https://bugs.webkit.org/show_bug.cgi?id=139092. A more detailed description of how
205         the new functionality works can be found in the ChangeLog for that commit.
206         The containsSVGDocument in ScrollView has been removed because it was added in the
207         previous patch but is no longer required.
208
209         Tests: css3/masking/mask-base64.html
210                css3/masking/mask-multiple-values.html
211                css3/masking/mask-svg-clipped-fragmentId.html
212                css3/masking/mask-svg-fragmentId.html
213                css3/masking/mask-svg-inline-fragmentId.html
214                css3/masking/mask-svg-inline-invalid-fragmentId.html
215                css3/masking/mask-svg-invalid-fragmentId.html
216                css3/masking/mask-svg-no-fragmentId-tiled.html
217                css3/masking/mask-svg-no-fragmentId.html
218                css3/masking/mask-svg-script-entire-svg-to-mask.html
219                css3/masking/mask-svg-script-mask-to-entire-svg.html
220                css3/masking/mask-svg-script-mask-to-none.html
221                css3/masking/mask-svg-script-mask-to-png.html
222                css3/masking/mask-svg-script-none-to-mask.html
223                css3/masking/mask-svg-script-none-to-png.html
224                css3/masking/mask-svg-script-png-to-mask.html
225                css3/masking/mask-svg-script-png-to-none.html
226
227         * css/CSSComputedStyleDeclaration.cpp:
228         (WebCore::ComputedStyleExtractor::propertyValue):
229         * css/CSSParser.cpp:
230         (WebCore::CSSParser::parseFillShorthand):
231         (WebCore::CSSParser::parseFillProperty):
232         (WebCore::CSSParser::parseMaskImage):
233         * css/CSSParser.h:
234         * css/DeprecatedStyleBuilder.cpp:
235         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
236         * css/StyleResolver.cpp:
237         (WebCore::StyleResolver::adjustStyleForMaskImages):
238         (WebCore::StyleResolver::applyProperty):
239         (WebCore::StyleResolver::loadPendingSVGDocuments):
240         (WebCore::StyleResolver::createMaskImageOperations):
241         (WebCore::StyleResolver::loadPendingImages):
242         * page/animation/CSSPropertyAnimation.cpp:
243         (WebCore::blendFunc):
244         (WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper):
245         (WebCore::MaskImagePropertyWrapper::equals):
246         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
247         * platform/graphics/MaskImageOperation.cpp:
248         (WebCore::MaskImageOperation::~MaskImageOperation):
249         * rendering/RenderBox.cpp:
250         (WebCore::RenderBox::maskClipRect):
251         * rendering/RenderBox.h:
252         * rendering/RenderBoxModelObject.cpp:
253         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
254         (WebCore::RenderBoxModelObject::calculateFillTileSize):
255         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
256         * rendering/RenderElement.cpp:
257         (WebCore::RenderElement::~RenderElement):
258         (WebCore::RenderElement::updateFillImages):
259         * rendering/RenderLayer.cpp:
260         (WebCore::RenderLayer::calculateClipRects):
261         * rendering/RenderLayer.h:
262         * rendering/style/FillLayer.h:
263         * rendering/style/RenderStyle.cpp:
264         (WebCore::RenderStyle::setMaskImage):
265         * rendering/style/RenderStyle.h:
266
267 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
268
269         Restore interface state when stopping optimized fullscreen.
270         https://bugs.webkit.org/show_bug.cgi?id=139465
271
272         Reviewed by Simon Fraser.
273
274         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
275         (-[WebVideoFullscreenController fullscreenMayReturnToInline:]): add empty implementation.
276         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: add declaration
277         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
278         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): restore interface context when optimized mode ends.
279         (WebVideoFullscreenInterfaceAVKit::setIsOptimized): restore interface context when optimized mode ends.
280
281 2014-12-11  Anders Carlsson  <andersca@apple.com>
282
283         Remove unused storage header includes
284         https://bugs.webkit.org/show_bug.cgi?id=139540
285
286         Reviewed by Antti Koivisto.
287
288         * storage/StorageAreaImpl.cpp:
289         * storage/StorageAreaSync.cpp:
290         * storage/StorageNamespaceImpl.cpp:
291         (WebCore::StorageNamespaceImpl::localStorageNamespace): Deleted.
292         (WebCore::StorageNamespaceImpl::sessionStorageNamespace): Deleted.
293         (WebCore::StorageNamespaceImpl::transientLocalStorageNamespace): Deleted.
294         * storage/StorageNamespaceImpl.h:
295         * storage/StorageSyncManager.cpp:
296         * storage/StorageThread.cpp:
297         * storage/StorageTracker.cpp:
298
299 2014-12-11  Alexey Proskuryakov  <ap@apple.com>
300
301         REGRESSION (Async Text Input): Text input method state is not reset when reloading a page
302         https://bugs.webkit.org/show_bug.cgi?id=139504
303         rdar://problem/19034674
304
305         Reviewed by Enrica Casucci.
306
307         Explicitly notify EditorClient when a composition is voluntarily canceled by WebCore.
308         These are almost certainly not all the places where this happens, but this fixes the bug,
309         and lays the groundwork for using this new client call instead of didChangeSelection
310         hacks.
311
312         * editing/Editor.cpp:
313         (WebCore::Editor::clear):
314         (WebCore::Editor::cancelComposition):
315         * loader/EmptyClients.h:
316         * loader/FrameLoader.cpp:
317         (WebCore::FrameLoader::willTransitionToCommitted):
318         * page/EditorClient.h:
319
320 2014-12-10  Anders Carlsson  <andersca@apple.com>
321
322         Get rid of the storage strategy
323         https://bugs.webkit.org/show_bug.cgi?id=139519
324
325         Reviewed by Antti Koivisto.
326
327         * CMakeLists.txt:
328         * WebCore.exp.in:
329         * WebCore.vcxproj/WebCore.vcxproj:
330         * WebCore.vcxproj/WebCore.vcxproj.filters:
331         * WebCore.xcodeproj/project.pbxproj:
332         * page/DOMWindow.cpp:
333         (WebCore::DOMWindow::localStorage):
334         * page/Page.cpp:
335         (WebCore::Page::Page):
336         (WebCore::Page::~Page):
337         (WebCore::Page::sessionStorage):
338         (WebCore::Page::setStorageNamespaceProvider):
339         * page/Page.h:
340         (WebCore::Page::storageNamespaceProvider):
341         * page/PageGroup.cpp:
342         (WebCore::PageGroup::localStorage):
343         (WebCore::PageGroup::transientLocalStorage):
344         * platform/PlatformStrategies.h:
345         (WebCore::PlatformStrategies::PlatformStrategies):
346         (WebCore::PlatformStrategies::storageStrategy): Deleted.
347         * storage/StorageNamespace.cpp: Removed.
348         * storage/StorageNamespace.h:
349         * storage/StorageStrategy.cpp: Removed.
350         * storage/StorageStrategy.h: Removed.
351
352 2014-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
353
354         [GTK] Move click counter logic back to WebKitWebViewBase
355         https://bugs.webkit.org/show_bug.cgi?id=137685
356
357         Reviewed by Martin Robinson.
358
359         Remove GtkClickCounter.
360
361         * PlatformGTK.cmake:
362         * platform/gtk/GtkClickCounter.cpp: Removed.
363         * platform/gtk/GtkClickCounter.h: Removed.
364
365 2014-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
366
367         [GTK] Implement sizes attribute for link tag
368         https://bugs.webkit.org/show_bug.cgi?id=125775
369
370         Reviewed by Martin Robinson.
371
372         * bindings/gobject/WebKitDOMCustom.cpp:
373         (webkit_dom_html_link_element_set_sizes): Add custom setter implementation.
374         * bindings/gobject/WebKitDOMCustomUnstable.h:
375         * bindings/js/JSHTMLLinkElementCustom.cpp:
376         (WebCore::JSHTMLLinkElement::sizes): Remove custom getter implementation.
377         * bindings/scripts/CodeGeneratorGObject.pm:
378         (HasUnstableCustomAPI): Mark WebKitDOMHTMLLinkElement as having custom unstable API.
379         * html/HTMLLinkElement.idl: Mark sizes attribute as CustomSetter
380         instead of Custom, since the getter can be autogenerated, and make
381         it available to the GObject DOM bindings too.
382
383 2014-12-10  Chris Dumez  <cdumez@apple.com>
384
385         http://omfgdogs.info/ only animates when you resize the window
386         https://bugs.webkit.org/show_bug.cgi?id=139435
387         <rdar://problem/19190493>
388
389         Reviewed by Simon Fraser.
390
391         After r163928, we would fail to animate a gif if:
392         - it is used as a background image of a 0-height html element
393         - it is used as a background image of a 0-height body element whose
394           background is delegated to the root (because the root has no
395           background).
396
397         This is because in such cases, shouldRepaintForImageAnimation()
398         should use the background rect instead of the renderer's overflow
399         rect to determine if the image is inside the viewport. Both cases
400         are addressed in this patch.
401
402         Tests: fast/images/animated-gif-body-delegated-background-image.html
403                fast/images/animated-gif-body-outside-viewport.html
404                fast/images/animated-gif-html-background-image.html
405
406         * rendering/RenderElement.cpp:
407         (WebCore::shouldRepaintForImageAnimation):
408         * testing/Internals.cpp:
409         (WebCore::Internals::hasPausedImageAnimations):
410         * testing/Internals.h:
411         * testing/Internals.idl:
412
413 2014-12-10  Timothy Horton  <timothy_horton@apple.com>
414
415         Fix the build.
416
417         * html/canvas/WebGLDrawBuffers.cpp:
418         Yosemite is 101000, not 10100.
419         Also, __MAC_OS_X_VERSION_MIN_REQUIRED is only defined for PLATFORM(MAC).
420
421 2014-12-10  Zalan Bujtas  <zalan@apple.com>
422
423         Continuously repainting large parts of Huffington Post.
424         https://bugs.webkit.org/show_bug.cgi?id=139468
425
426         Reviewed by Antti Koivisto.
427
428         This patch eliminates redundant repaint requests for inlines when neither the parent
429         block flow nor any of the inline children are dirty.
430         Previously,
431         1. simple line layout always recalculated inline content positions regardless of whether
432         the content needed relayout at all; as a result, it always triggered full repaint.
433         2. inline tree layout ignored the needslayout flag on the last line and treated it dirty
434         (unless it broke cleanly (<div>foo<br></div>)).
435         This was an ancient workaround for an editing/insert use case, but it seems not to be the case anymore.
436
437         Tests: fast/repaint/implicitly-positioned-block-repaint-complex-line-layout.html
438                fast/repaint/implicitly-positioned-block-repaint-simple-line-layout.html
439
440         * rendering/RenderBlockFlow.cpp:
441         (WebCore::RenderBlockFlow::layoutInlineChildren):
442         (WebCore::RenderBlockFlow::layoutSimpleLines): Check if we need to trigger layout at all.
443         * rendering/RenderBlockFlow.h:
444         * rendering/RenderBlockLineLayout.cpp:
445         (WebCore::RenderBlockFlow::determineStartPosition): Remove the last line dirty hack. If it
446         happens to introduce regression, we should fix it at the caller site to make the line dirty.
447
448 2014-12-10  Anders Carlsson  <andersca@apple.com>
449
450         Add an empty storage namespace provider
451         https://bugs.webkit.org/show_bug.cgi?id=139520
452
453         Reviewed by Tim Horton.
454
455         * loader/EmptyClients.cpp:
456         (WebCore::fillWithEmptyClients):
457
458 2014-12-10  Beth Dakin  <bdakin@apple.com>
459
460         Speculative build fix.
461
462         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
463
464 2014-12-10  Beth Dakin  <bdakin@apple.com>
465
466         WK2: Add initial support for immediate actions
467         https://bugs.webkit.org/show_bug.cgi?id=139511
468
469         Reviewed by Tim Horton.
470
471         SPI needed for immediate actions.
472         * WebCore.xcodeproj/project.pbxproj:
473         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h: Added.
474
475 2014-12-10  Martin Hock  <mhock@apple.com>
476
477         [iOS] Add setting to ignore viewport scaling constraints
478         https://bugs.webkit.org/show_bug.cgi?id=139466
479         <rdar://problem/19200328>
480
481         Reviewed by Benjamin Poulain.
482
483         * WebCore.exp.in:
484         * page/Settings.in: Add setting to ignore viewport scaling constraints.
485         * page/ViewportConfiguration.cpp: Ignore viewport scaling constraints based on preference.
486         (WebCore::ViewportConfiguration::initialScale):
487         (WebCore::ViewportConfiguration::minimumScale):
488         (WebCore::ViewportConfiguration::allowsUserScaling):
489         * page/ViewportConfiguration.h:
490         (WebCore::ViewportConfiguration::setIgnoreScalingConstraints):
491         (WebCore::ViewportConfiguration::allowsUserScaling): Moved to cpp.
492
493 2014-12-10  Andreas Kling  <akling@apple.com>
494
495         Speculative fix for assertion "frame().view() == this"
496         <rdar://problem/18419449>
497
498         Rubber-stamped by Anders Carlsson.
499
500         I have not reproduced this issue, but we can safely ignore animation
501         notifications for cached pages.
502
503         * rendering/RenderElement.cpp:
504         (WebCore::RenderElement::newImageAnimationFrameAvailable):
505
506 2014-12-10  Anders Carlsson  <andersca@apple.com>
507
508         Add session storage handling to StorageNamespaceProvider
509         https://bugs.webkit.org/show_bug.cgi?id=139507
510
511         Reviewed by Tim Horton.
512
513         * page/Page.cpp:
514         (WebCore::Page::sessionStorage):
515         * storage/StorageNamespaceProvider.h:
516
517 2014-12-10  Roger Fong  <roger_fong@apple.com>
518
519         Unreviewed. Follow-up patch to r177099.
520         https://bugs.webkit.org/show_bug.cgi?id=133634
521         <rdar://problem/15949588>
522
523         Enable GL_EXT_draw_buffers on iOS as well.
524         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
525         (WebCore::Extensions3DOpenGL::supportsExtension):
526
527 2014-12-10  Roger Fong  <roger_fong@apple.com>
528
529         Implement Multiple Render Targets as WebGL 1 extension.
530         https://bugs.webkit.org/show_bug.cgi?id=133634.
531         <rdar://problem/15949588>
532
533         Reviewed by Brent Fulgham.
534
535         Tested by:
536         webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html
537
538         Enable the implementation now that an underlying driver bug has been resolved.
539         Do not enable for desktop platforms older that OS X 10.10.
540         * html/canvas/WebGLDrawBuffers.cpp:
541         (WebCore::WebGLDrawBuffers::supported):
542
543 2014-12-10  Ryosuke Niwa  <rniwa@webkit.org>
544
545         REGRESSION(r164329): Input fields are not honoring the maxlength attribute
546         https://bugs.webkit.org/show_bug.cgi?id=139447
547
548         Reviewed by Benjamin Poulain.
549
550         The bug was caused by String::substring being called with the selection's end offset
551         in the second argument instead of the selection's length in handleBeforeTextInsertedEvent.
552
553         Fixed the bug by passing the right second argument to String::substring.
554
555         Test: fast/forms/input-maxlength-inserting-in-middle.html
556
557         * html/TextFieldInputType.cpp:
558         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
559
560 2014-12-10  Anders Carlsson  <andersca@apple.com>
561
562         Add a missing null check.
563
564         * page/Page.cpp:
565         (WebCore::Page::~Page):
566
567 2014-12-10  Antti Koivisto  <antti@apple.com>
568
569         Crash when creating CSSCalcBinaryOperation
570         https://bugs.webkit.org/show_bug.cgi?id=134886
571         rdar://problem/17663561
572
573         Reviewed by Chris Dumez.
574
575         Test: fast/css/calc-binary-operation-crash.html
576
577         * css/CSSCalculationValue.cpp:
578         (WebCore::determineCategory):
579
580         Ensure that both axis are within the addSubtractResult table.
581         Remove unneeded CalcOther test. The call site guarantees it doesn't happen and the normal cases would handle it anyway.
582         Also strengthen some asserts.
583
584 2014-12-10  Anders Carlsson  <andersca@apple.com>
585
586         Add WebStorageNamespaceProvider::closeLocalStorage
587         https://bugs.webkit.org/show_bug.cgi?id=139502
588
589         Reviewed by Tim Horton.
590
591         * page/Page.cpp:
592         (WebCore::Page::~Page):
593         Call StorageNamespaceProvider::removePage.
594
595         * storage/StorageNamespaceProvider.h:
596         (WebCore::StorageNamespaceProvider::optionalLocalStorageNamespace):
597         Helper function that returns the local storage namespace if one exists.
598
599 2014-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
600
601         AX: [ATK] MathML tokens with text fail to expose their text content via AtkText
602         https://bugs.webkit.org/show_bug.cgi?id=139454
603
604         Reviewed by Chris Fleizach.
605
606         Expose the text content of the element for non-anonymous RenderMathMLOperators.
607         This is needed because for ATK we expose the rendered element itself; not the
608         descendant text renderers. Also include MathML tokens as objects which should
609         implement AtkText.
610
611         Test: accessibility/math-text.html
612
613         * accessibility/AccessibilityRenderObject.cpp:
614         (WebCore::AccessibilityRenderObject::textUnderElement):
615         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
616         (getInterfaceMaskFromObject):
617
618 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
619
620         [GStreamer] Use appsrcs instead of unconnected queues
621         https://bugs.webkit.org/show_bug.cgi?id=139490
622
623         Reviewed by Philippe Normand.
624
625         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
626         (webkit_web_audio_src_init):
627         (webKitWebAudioSrcConstructed):
628         (webKitWebAudioSrcFinalize):
629         (webKitWebAudioSrcSetProperty):
630         (webKitWebAudioSrcLoop):
631         (webKitWebAudioSrcChangeState):
632         Previously we directly chained buffers into unconnected queues,
633         which confused some code inside GStreamer and caused some harmless
634         warnings. Now we use appsrcs instead, which also allows us to remove
635         quite some code.
636
637 2014-12-10  Enrica Casucci  <enrica@apple.com>
638
639         Fix iOS builders for 8.0
640         https://bugs.webkit.org/show_bug.cgi?id=139495
641
642         Reviewed by Eric Carlson.
643
644         * WebCore.exp.in:
645         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
646         (-[WebVideoFullscreenController enterFullscreen:mode:]):
647         (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
648         (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
649         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
650
651
652 2014-12-10  peavo@outlook.com  <peavo@outlook.com>
653
654         [Curl] Cache entry is sometimes deleted when request receives a not modified response.
655         https://bugs.webkit.org/show_bug.cgi?id=139339
656
657         Reviewed by Alex Christensen.
658
659         Sometimes it happens that a request receives a not modified response,
660         but the cache entry has already been deleted by another request.
661         This can be avoided by locking a cache entry while there are pending
662         requests for the cache entry's url.
663
664         * platform/network/curl/CurlCacheEntry.h:
665         (WebCore::CurlCacheEntry::addClient):
666         (WebCore::CurlCacheEntry::removeClient):
667         (WebCore::CurlCacheEntry::hasClients):
668         * platform/network/curl/CurlCacheManager.cpp:
669         (WebCore::CurlCacheManager::didReceiveResponse):
670         (WebCore::CurlCacheManager::didFail):
671         (WebCore::CurlCacheManager::addCacheEntryClient):
672         (WebCore::CurlCacheManager::removeCacheEntryClient):
673         * platform/network/curl/CurlCacheManager.h:
674         * platform/network/curl/ResourceHandleManager.cpp:
675         (WebCore::isHttpNotModified):
676         (WebCore::headerCallback):
677         (WebCore::ResourceHandleManager::initializeHandle):
678
679 2014-12-10  Sebastian Dröge  <sebastian@centricular.com>
680
681         [GStreamer] Use a buffer pool for allocations in the AudioDestination
682         https://bugs.webkit.org/show_bug.cgi?id=139487
683
684         Reviewed by Philippe Normand.
685
686         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
687         (webKitWebAudioSrcLoop):
688         (webKitWebAudioSrcChangeState):
689         Use a buffer pool for the allocations instead of allocating a
690         new small buffer for every 128 samples we produce.
691
692 2014-12-10  Martin Robinson  <mrobinson@igalia.com>
693
694         [GTK] Add support for text-decoration-skip
695         https://bugs.webkit.org/show_bug.cgi?id=131540
696
697         Reviewed by Gustavo Noronha Silva.
698
699         No new tests. This is covered by existing layout tests.
700
701         * platform/graphics/cairo/FontCairo.cpp:
702         (WebCore::GlyphIterationState): Added this class, a modified version of the Mac
703         port's implementation.
704         (WebCore::Font::dashesForIntersectionsWithRect): Ditto.
705         * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
706         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Added an implementation for
707         HarfBuzz that just fills out the GlyphBuffer, but does not render it.
708         (WebCore::Font::drawComplexText): Use the new getGlyphsAndAdvancesForComplexText
709         in a similar way to the Mac port.
710         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
711         (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): We need to pass the current
712         character index to GlyphBuffer:add since it's used by dashesForIntersectionsWithRect
713         and otherwise it will be uninitialized when we try to access it.
714
715 2014-12-10  Andreas Kling  <akling@apple.com>
716
717         REGRESSION(r177048) 11 failures on layout tests fast/selectors.
718         <https://webkit.org/b/139483>
719
720         Unreviewed fix for bots.
721
722         When rolling out the broken change, I accidentally also rolled out
723         a bug fix that Benjamin had made to sibling invalidation.
724         Restore his implementation of nodeOrItsAncestorNeedsStyleRecalc().
725
726         * css/CSSComputedStyleDeclaration.cpp:
727         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
728         (WebCore::updateStyleIfNeededForNode):
729         (WebCore::ComputedStyleExtractor::propertyValue):
730
731 2014-12-08  Philippe Normand  <pnormand@igalia.com>
732
733         [GStreamer] AudioSourceProvider support in the MediaPlayer
734         https://bugs.webkit.org/show_bug.cgi?id=78883
735
736         Reviewed by Gustavo Noronha Silva.
737
738         GStreamer-based audio source provider for the GTK and EFL
739         ports. This new component gathers decoded raw audio data from the
740         MediaPlayer and pipes it to an AudioBus when required by the
741         User Agent.
742
743         * PlatformEfl.cmake: New files in the build.
744         * PlatformGTK.cmake: Ditto.
745         * platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: Added.
746         (WebCore::onAppsinkNewBufferCallback): Function called when a new
747         buffer can be pulled from appsink.
748         (WebCore::onGStreamerDeinterleavePadAddedCallback): Function
749         called when a new source pad has been added to deinterleave.
750         (WebCore::onGStreamerDeinterleaveReadyCallback): Function called
751         when the deinterleave element completed the configuration of all
752         its source pads.
753         (WebCore::copyGstreamerBuffersToAudioChannel): Called for each
754         channel of the AudioBus that needs data as input.
755         (WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
756         Create an audio bin that by default routes buffers only to
757         autoaudiosink. A new route is added if the provider has a client.
758         (WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
759         Clean buffer adapters and audio bin.
760         (WebCore::AudioSourceProviderGStreamer::configureAudioBin):
761         (WebCore::AudioSourceProviderGStreamer::provideInput): Transfer
762         data from the buffer adapters to the bus channels.
763         (WebCore::AudioSourceProviderGStreamer::handleAudioBuffer): Pull a
764         buffer from appsink and queue it to the buffer adapter.
765         (WebCore::AudioSourceProviderGStreamer::setClient): Complete the
766         construction of the audio bin by adding a new chain to the tee
767         element. This new chain will deinterleave the buffer stream to
768         planar audio channels and route them to an appsink per channel for
769         data extraction.
770         (WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
771         A new appsink after a new source pad has been added to deinterleave.
772         (WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured):
773         Configure the client Node format (number of channels and sample
774         rate) once the provider knows how many audio channels are managed
775         by the pipeline.
776         (WebCore::cleanUpElementsAfterDeinterleaveSourcePadCallback):
777         (WebCore::AudioSourceProviderGStreamer::cleanUpElementsAfterDeinterleaveSourcePad):
778         Remove the elements after the given deinterleave source pad.
779         (WebCore::AudioSourceProviderGStreamer::reset): Cleanup the
780         deinterleave source pads. This is especially needed before the
781         whole pipeline goes to NULL and later on prerolls again.
782         * platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Added.
783         (WebCore::AudioSourceProviderGStreamer::create): Use this to
784         create the provider and get an OwnPtr of it.
785         (WebCore::AudioSourceProviderGStreamer::client): Provider client getter.
786         (WebCore::AudioSourceProviderGStreamer::getAudioBin): Audio bin
787         getter, used by the media player to configure its
788         playbin::audio-sink property.
789         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
790         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
791         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
792         Provider life cycle management and reset the audio provider before
793         going to NULL.
794         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Ditto.
795         (WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult): Ditto.
796         (WebCore::MediaPlayerPrivateGStreamer::cancelLoad): Ditto.
797         (WebCore::MediaPlayerPrivateGStreamer::didEnd): Ditto.
798         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Configure
799         the audio source provider if needed.
800         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
801         (WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider):
802         Provider getter, used by MediaPlayer and MediaElement.
803
804 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
805
806         Scrolling to anchor tags does nothing in vertical-rl writing mode
807         https://bugs.webkit.org/show_bug.cgi?id=137838
808
809         Reviewed by David Hyatt.
810
811         Scroll to a particular tag, and make sure the viewport is rendered as expected.
812
813         Tests: fast/events/scroll-to-anchor-vertical-lr-writing-mode.html
814                fast/events/scroll-to-anchor-vertical-writing-mode-contained-2.html
815                fast/events/scroll-to-anchor-vertical-writing-mode-contained.html
816                fast/events/scroll-to-anchor-vertical-writing-mode.html
817
818         * page/FrameView.cpp:
819         (WebCore::FrameView::scrollToAnchor):
820         * rendering/ScrollBehavior.cpp:
821         * rendering/ScrollBehavior.h:
822
823 2014-12-09  Bem Jones-Bey  <bjonesbe@adobe.com>
824
825         REGRESSION(r155906): Page content disappears on Tuaw article after loading
826         https://bugs.webkit.org/show_bug.cgi?id=138100
827
828         Reviewed by Simon Fraser.
829
830         Test: ManualTests/float-layer-not-painting.html
831
832         * rendering/RenderBlockFlow.cpp:
833         (WebCore::RenderBlockFlow::insertFloatingObject): If a layout happens,
834         it can change whether the float's renderer has a self painting layer.
835         So in that case, we need to update the flag on the FloatingObject
836         instance for that float.
837
838 2014-12-09  Andreas Kling  <akling@apple.com>
839
840         Roll out r165076.
841         <rdar://problem/18490587>
842
843         This change broke selection when editing Confluence wiki pages.
844
845         * css/CSSComputedStyleDeclaration.cpp:
846         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
847         (WebCore::ComputedStyleExtractor::propertyValue):
848         * dom/Document.cpp:
849         (WebCore::nodeOrItsAncestorNeedsStyleRecalc): Deleted.
850         (WebCore::Document::updateStyleIfNeededForNode): Deleted.
851         * dom/Document.h:
852         * editing/htmlediting.cpp:
853         (WebCore::isEditablePosition):
854         * html/TextFieldInputType.cpp:
855         (WebCore::TextFieldInputType::forwardEvent):
856
857 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
858
859         Fix iOS build after r177035.
860
861         Unreviewed.
862
863         I accidentally added my line to WebCore.exp.in inside an
864         #IF PLATFORM(MAC) block.
865
866         * WebCore.exp.in:
867
868 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
869
870         Enable automatic optimized fullscreen mode.
871         https://bugs.webkit.org/show_bug.cgi?id=139437
872
873         Reviewed by Eric Carlson.
874
875         Anticipate transition to optimized video fullscreen mode when entering background.
876
877         * WebCore.exp.in:
878         * html/HTMLMediaElement.cpp:
879         (WebCore::HTMLMediaElement::overrideBackgroundPlaybackRestriction): Add logic for automatic transition detection.
880         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
881         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
882         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized): Add logic for automatic transition detection.
883
884 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
885
886         Delete Node::boundingBox()
887         https://bugs.webkit.org/show_bug.cgi?id=139333
888
889         Conceptually, boundingBox() should be on RenderInline. In addition,
890         Node::boundingBox() is completely broken for inline elements: it
891         makes a rect from the top left of the first inline child to the
892         bottom right of the last inline child, disregarding the intermediate
893         inline children. This breaks with vertical text and with line
894         breaks.
895
896         What makes this problem worse is that some functions actually rely
897         on this bad behavior. These functions are functions that use the
898         Node's so-called "bounding box" to scroll to an anchor tag.
899
900         This patch goes through all the call sites of Node::boundingBox(),
901         and segregates them into calls that expect the true bounding box
902         and calls that need this false bounding box. This patch then moves
903         this false bounding box into RenderElement, using the name
904         anchorRect(). Callers what want the correct bounding box have been
905         updated to use RenderElement::absoluteBoundingBoxRect().
906
907         Reviewed by Zalan Bujtas.
908
909         No new tests because there should be no behavior change.
910
911         * accessibility/AccessibilitySlider.cpp:
912         (WebCore::AccessibilitySliderThumb::elementRect): Use
913         RenderObject::absoluteBoundingBoxRect()
914         * dom/ContainerNode.cpp:
915         (WebCore::ContainerNode::getUpperLeftCorner): Deleted.
916         (WebCore::ContainerNode::getLowerRightCorner): Deleted.
917         (WebCore::ContainerNode::boundingBox): Deleted.
918         * dom/ContainerNode.h:
919         * dom/Element.cpp:
920         (WebCore::Element::scrollIntoView): Use RenderElement::anchorRect().
921         (WebCore::Element::scrollIntoViewIfNeeded): Ditto.
922         (WebCore::Element::updateFocusAppearance): Ditto.
923         * dom/Node.cpp:
924         (WebCore::Node::boundingBox): Deleted.
925         * dom/Node.h:
926         (WebCore::Node::pixelSnappedBoundingBox): Deleted.
927         * html/ColorInputType.cpp:
928         (WebCore::ColorInputType::elementRectRelativeToRootView): Use
929         RenderObject::absoluteBoundingBoxRect()
930         * html/HTMLInputElement.cpp:
931         (WebCore::HTMLInputElement::setupDateTimeChooserParameters): Ditto.
932         * html/ValidationMessage.cpp:
933         (WebCore::ValidationMessage::buildBubbleTree): Ditto.
934         * page/FrameView.cpp:
935         (WebCore::FrameView::scrollElementToRect): Use
936         RenderElement::anchorRect().
937         (WebCore::FrameView::scrollToAnchor): Ditto.
938         * page/SpatialNavigation.cpp:
939         (WebCore::nodeRectInAbsoluteCoordinates): Use
940         RenderObject::absoluteBoundingBoxRect()
941         * rendering/RenderElement.cpp:
942         (WebCore::RenderElement::getUpperLeftCorner): Moved from ContainerNode.
943         (WebCore::RenderElement::getLowerRightCorner): Moved from
944         ContainerNode.
945         (WebCore::RenderElement::anchorRect): Moved from ContainerNode.
946         * rendering/RenderObject.h:
947         * rendering/RenderText.cpp:
948         (WebCore::RenderText::topOfFirstText): Helper for
949         RenderElement::anchorRect()
950         * rendering/RenderText.h:
951
952 2014-12-09  Antti Koivisto  <antti@apple.com>
953
954         REGRESSION (r173272): When open PDF from Safari in iBooks, title is replaced to “QuickLookPDF-s72DbgAU-1”
955         https://bugs.webkit.org/show_bug.cgi?id=139453
956         rdar://problem/19052192
957
958         Reviewed by Pratik Solanki.
959
960         Pulling the suggested filename from the platform response returned null string on USE(CFNETWORK) code path
961         if it was the first thing needed from it.
962
963         * platform/network/cf/ResourceResponseCFNet.cpp:
964         (WebCore::ResourceResponse::platformSuggestedFilename): Use the lazy accessor.
965
966 2014-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
967
968         AX: [ATK] MathML tokens, tables, and row-like elements are exposed with ATK_ROLE_UNKNOWN
969         https://bugs.webkit.org/show_bug.cgi?id=139402
970
971         Reviewed by Chris Fleizach.
972
973         Expose tables and their children using existing table AtkRole types,
974         token elements using the new ATK_ROLE_STATIC, and row-like elements
975         using ATK_ROLE_PANEL. Also expose <mlabeledtr> as a math table row
976         and <ms> as math text.
977
978         No new tests; instead, added MathML elements to roles-exposed.html.
979
980         * accessibility/AccessibilityObject.h:
981         (WebCore::AccessibilityObject::isMathToken):
982         * accessibility/AccessibilityRenderObject.cpp:
983         (WebCore::AccessibilityRenderObject::isMathToken):
984         (WebCore::AccessibilityRenderObject::isMathText):
985         (WebCore::AccessibilityRenderObject::isMathTableRow):
986         * accessibility/AccessibilityRenderObject.h:
987         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
988         (atkRole):
989         * css/mathml.css:
990         (ms, mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
991         (mi, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
992         * mathml/mathtags.in:
993
994 2014-12-09  Dean Jackson  <dino@apple.com>
995
996         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
997         https://bugs.webkit.org/show_bug.cgi?id=139310
998
999         Unreviewed followup, after comments by Andreas Kling.
1000
1001         It was pointed out that we already have a USE(ACCELERATE), so
1002         we don't need a HAVE(ACCELERATE) :)
1003
1004         * platform/graphics/filters/FEGaussianBlur.cpp:
1005         (WebCore::FEGaussianBlur::platformApplyGeneric):
1006         (WebCore::FEGaussianBlur::platformApply):
1007
1008 2014-12-09  Alberto Garcia  <berto@igalia.com>
1009
1010         Unreviewed. Style fix following r177019.
1011
1012         Use nullptr instead of 0.
1013
1014         * bindings/gobject/ConvertToUTF8String.cpp:
1015         (convertToUTF8String):
1016
1017 2014-12-09  Javier Fernandez  <jfernandez@igalia.com>
1018
1019         Refactor of rebuildFloatingObjectSetFromIntrudingFloats function after r176957.
1020         https://bugs.webkit.org/show_bug.cgi?id=139445
1021
1022         Reviewed by Darin Adler.
1023
1024         The function rebuildFloatingObjectSetFromIntrudingFloats would be clearer if
1025         we use a helper function to locate the previous sibling with overhanging floats.
1026
1027         These changes has been suggested as part of the patch review for bug #139150, which
1028         landed in r176957.
1029
1030         No new tests, no behavior change.
1031
1032         * rendering/RenderBlock.cpp:
1033         (WebCore::RenderBlock::avoidsFloats):
1034         * rendering/RenderBlockFlow.cpp:
1035         (WebCore::RenderBlockFlow::previousSiblingWithOverhangingFloats):
1036         (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
1037         * rendering/RenderBlockFlow.h:
1038         * rendering/RenderBox.h:
1039         (WebCore::RenderBox::isGridItem):
1040
1041 2014-12-09  Alberto Garcia  <berto@igalia.com>
1042
1043         convertToUTF8String converts null string to empty string
1044         https://bugs.webkit.org/show_bug.cgi?id=133904
1045
1046         Reviewed by Carlos Garcia Campos.
1047
1048         Test added to Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
1049
1050         Return 0 if the string is null.
1051
1052         * bindings/gobject/ConvertToUTF8String.cpp:
1053         (convertToUTF8String):
1054
1055 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
1056
1057         When invalidating fullscreen, cancel instead of stop optimizedFullscfreen.
1058         https://bugs.webkit.org/show_bug.cgi?id=139145
1059
1060         Reviewed by Eric Carlson.
1061
1062         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1063         (WebVideoFullscreenInterfaceAVKit::invalidate): call cancel instead of stop
1064         * platform/spi/ios/AVKitSPI.h: add -cancelOptimizedFullscreen.
1065
1066 2014-12-09  Alberto Garcia  <berto@igalia.com>
1067
1068         [Media][GTK][EFL] Reduce style updates (painting) in controls
1069         https://bugs.webkit.org/show_bug.cgi?id=137773
1070
1071         Reviewed by Carlos Garcia Campos.
1072
1073         Don't update media controls if they are not visible, and
1074         initialize slider to a zero value.
1075
1076         * Modules/mediacontrols/mediaControlsBase.js:
1077         (Controller.prototype.createControls):
1078         (Controller.prototype.handleDurationChange):
1079         (Controller.prototype.updateProgress):
1080         (Controller.prototype.updateTime):
1081         * Modules/mediacontrols/mediaControlsGtk.js:
1082         (ControllerGtk.prototype.updateTime):
1083
1084 2014-12-09  Sebastian Dröge  <sebastian@centricular.com>
1085
1086         [GStreamer] Add video/mp2t as alternative mimetype for MPEG TS
1087         https://bugs.webkit.org/show_bug.cgi?id=139433
1088
1089         Reviewed by Philippe Normand.
1090
1091         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1092         (WebCore::mimeTypeCache):
1093         It's used e.g. on http://www.jwplayer.com/html5/mediasource/ .
1094
1095 2014-12-09  Jeremy Jones  <jeremyj@apple.com>
1096
1097         Enable activating optimized fullscreen mode from standard fulscreen mode.
1098         https://bugs.webkit.org/show_bug.cgi?id=139137
1099
1100         Reviewed by Jer Noble.
1101
1102         Going from standard fullscreen mode to optimized fullscreen mode requires the ability to
1103         update the fullscreen mode in HTMLMediaElement and a new standard-and-optimized-fullscreen mode.
1104
1105         This change KVO observes AVKit's optimizedFullscreenActive and forwards the change down to HTMLMediaElement so it can adjust behavior appropriately.
1106         It also hides the standard fullscreen window when going into this mode.
1107         When exiting fullscreen from standard-and-optimized, first exit fullscreen immediately, then stopOptimizedFullscreen, and notify of completion when
1108         optimizedFullscreen goes inactive.
1109
1110         * Modules/mediacontrols/MediaControlsHost.cpp:
1111         (WebCore::MediaControlsHost::fullscreenMode):
1112             Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
1113         * WebCore.exp.in: New export for WebVideoFullscreenModelVideoElement::fullscreenModeChanged
1114         * html/HTMLMediaElement.cpp:
1115         (WebCore::HTMLMediaElement::displayType):
1116             Treat VideoFullscreenModeStandardAndOptimized as a kind of optimized mode.
1117         * html/HTMLMediaElement.h: Add new fullscreen mode.
1118         (WebCore::HTMLMediaElement::fullscreenModeChanged): Update fullscreen mode so it does optimized fullscreen mode behaviors when applicable.
1119         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Declare setOptimizedActive
1120         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1121         (-[WebAVVideoLayer setPlayerViewController:]): observe optimizedFullscreenActive
1122         (-[WebAVVideoLayer observeValueForKeyPath:ofObject:change:context:]): respond to changes to optimizedFullscreenActive
1123         (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): Init members.
1124         (WebVideoFullscreenInterfaceAVKit::playerController): 
1125             Give player controller a reference to the WebVideoFullscreenInterface so it can pass along mode change state.
1126         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Handle new fullscreen modes.
1127         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): ditto
1128         (WebVideoFullscreenInterfaceAVKit::invalidate): ditto
1129         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
1130         (WebVideoFullscreenInterfaceAVKit::setOptimizedActive): Handle changes to fullscreen mode.
1131             Also handle the case that exiting fullscreen happend when optimized mode ends.
1132         * platform/ios/WebVideoFullscreenModel.h: declare fullscreenModeChanged()
1133         * platform/ios/WebVideoFullscreenModelVideoElement.h: declare fullscreenModeChanged()
1134         * platform/ios/WebVideoFullscreenModelVideoElement.mm: add fullscreenModeChanged()
1135         (WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement): Init members.
1136         (WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Added. Update video element fullscreen mode.
1137
1138 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
1139
1140         Fix the iOS build after r177002
1141
1142         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1143         (WebCore::Extensions3DOpenGL::supportsExtension):
1144
1145 2014-12-07  Roger Fong  <roger_fong@apple.com>
1146
1147         Implementation EXT_sRGB as a WebGL1 extension.
1148         https://bugs.webkit.org/show_bug.cgi?id=109332.
1149         <rdar://problem/17363470>
1150
1151         Reviewed by Dean Jackson.
1152
1153         Tested by:
1154         webgl/1.0.3/conformance/webgl/ext-sRGB.html
1155         fast/canvas/webgl/constants.html
1156
1157         This patch implements the SRGB extension for WebGL1.
1158         Details of the extension specification are outlined here: 
1159         https://www.khronos.org/registry/webgl/extensions/EXT_sRGB/
1160
1161         * CMakeLists.txt:
1162         * DerivedSources.cpp:
1163         * DerivedSources.make:
1164         * WebCore.vcxproj/WebCore.vcxproj:
1165         * WebCore.vcxproj/WebCore.vcxproj.filters:
1166         * WebCore.xcodeproj/project.pbxproj:
1167         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1168         (WebCore::toJS):
1169         * html/canvas/EXTsRGB.cpp: Added.
1170         (WebCore::EXTsRGB::EXTsRGB):
1171         (WebCore::EXTsRGB::~EXTsRGB):
1172         (WebCore::EXTsRGB::getName):
1173         * html/canvas/EXTsRGB.h: Added.
1174         * html/canvas/EXTsRGB.idl: Added.
1175         * html/canvas/WebGLExtension.h:
1176         * html/canvas/WebGLFramebuffer.cpp:
1177         (WebCore::WebGLFramebuffer::checkStatus):
1178         * html/canvas/WebGLRenderingContext.cpp:
1179         (WebCore::WebGLRenderingContext::getExtension):
1180         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
1181         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1182         (WebCore::WebGLRenderingContext::renderbufferStorage):
1183         (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
1184         * html/canvas/WebGLRenderingContext.h:
1185         * html/canvas/WebGLRenderingContext.idl:
1186         * platform/graphics/Extensions3D.h:
1187         * platform/graphics/GraphicsContext3D.cpp:
1188         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
1189         (WebCore::GraphicsContext3D::getClearBitsByFormat):
1190         (WebCore::GraphicsContext3D::getChannelBitsByFormat):
1191         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1192         (WebCore::Extensions3DOpenGL::supportsExtension):
1193         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1194         (WebCore::GraphicsContext3D::texImage2D):
1195
1196 2014-12-08  Dean Jackson  <dino@apple.com>
1197
1198         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1199         https://bugs.webkit.org/show_bug.cgi?id=139310
1200         <rdar://problem/18434594>
1201
1202         Reviewed by Simon Fraser.
1203
1204         Using Apple's Accelerate framework provides faster blurs
1205         than the parallel jobs approach, especially since r168577
1206         which started performing retina-accurate filters.
1207
1208         Using Accelerate.framework to replace the existing box blur (what
1209         we use to approximate Gaussian blurs) gets about a 20% speedup on
1210         desktop class machines, but between a 2x-6x speedup on iOS hardware.
1211         Obviously this depends on the size of the content being blurred,
1212         but it is still good.
1213
1214         The change is to intercept the platformApply function on
1215         FEGaussianBlur and send it off to Accelerate.
1216
1217         There is an interactive performance test: PerformanceTests/Interactive/blur-filter-timing.html
1218
1219         * platform/graphics/filters/FEGaussianBlur.cpp:
1220         (WebCore::kernelPosition): Move this to a file static function from the .h.
1221         (WebCore::accelerateBoxBlur): The Accelerate implementation.
1222         (WebCore::standardBoxBlur): The default generic/standard implementation.
1223         (WebCore::FEGaussianBlur::platformApplyGeneric): Use accelerate or the default form.
1224         (WebCore::FEGaussianBlur::platformApply): Don't try the parallelJobs approach if Accelerate is available.
1225         * platform/graphics/filters/FEGaussianBlur.h:
1226         (WebCore::FEGaussianBlur::kernelPosition): Deleted. Move into the .cpp.
1227
1228 2014-12-08  Beth Dakin  <bdakin@apple.com>
1229
1230         Copy and Lookup menu items should be disabled when something is not copyable
1231         https://bugs.webkit.org/show_bug.cgi?id=139423
1232
1233         Reviewed by Tim Horton.
1234
1235         New function allowCopy() indicates whether the HitTestResult would allow itself to 
1236         be copied onto the pasteboard.
1237         * WebCore.exp.in:
1238         * rendering/HitTestResult.cpp:
1239         (WebCore::HitTestResult::allowsCopy):
1240         * rendering/HitTestResult.h:
1241
1242 2014-12-08  Chris Dumez  <cdumez@apple.com>
1243
1244         Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to changeAffectsVisualOverflow()
1245         https://bugs.webkit.org/show_bug.cgi?id=139420
1246
1247         Reviewed by Simon Fraser.
1248
1249         Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to
1250         changeAffectsVisualOverflow(). This has no behavior change as
1251         changeRequiresLayout() calls changeAffectsVisualOverflow(). However,
1252         this is clearer as text-shadow affects the visual overflow (similarly
1253         to box-shadow).
1254
1255         No new tests, no behavior change.
1256
1257         * rendering/style/RenderStyle.cpp:
1258         (WebCore::RenderStyle::changeAffectsVisualOverflow):
1259         (WebCore::RenderStyle::changeRequiresLayout):
1260
1261 2014-12-08  Anders Carlsson  <andersca@apple.com>
1262
1263         Fix typo.
1264
1265         * storage/StorageNamespaceImpl.cpp:
1266         (WebCore::localStorageNamespaceMap):
1267
1268 2014-12-08  Anders Carlsson  <andersca@apple.com>
1269
1270         WebStorageNamespaceProvider should create StorageNamespaceImpls
1271         https://bugs.webkit.org/show_bug.cgi?id=139419
1272
1273         Reviewed by Andreas Kling.
1274
1275         * WebCore.exp.in:
1276         Export new symbols.
1277
1278         * WebCore.xcodeproj/project.pbxproj:
1279         Make StorageNamespaceImpl.h a private header.
1280
1281         * storage/StorageNamespaceImpl.cpp:
1282         (WebCore::localStorageNamespaceMap):
1283         Use NeverDestroyed.
1284
1285         (WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
1286         (WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
1287         Add new functions for creating namespaces.
1288
1289         (WebCore::StorageNamespaceImpl::localStorageNamespace):
1290         (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
1291         Call the new functions.
1292
1293         * storage/StorageNamespaceImpl.h:
1294         Add new members, make sure to deprecate the ones we don't want anyone calling.
1295
1296         * storage/StorageNamespaceProvider.cpp:
1297         (WebCore::StorageNamespaceProvider::localStorageNamespace):
1298         (WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):
1299         * storage/StorageNamespaceProvider.h:
1300         Pass the quota when creating storage namespaces.
1301
1302 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
1303
1304         Move the new :nth-child() and :nth-last-child() out of experimental
1305         https://bugs.webkit.org/show_bug.cgi?id=139329
1306
1307         Reviewed by Andreas Kling.
1308
1309         The code is stable.
1310         Feedback has only been positive.
1311         All the known issues have been reported to the CSS WG.
1312
1313         The #ifdef don't really work anymore anyway for :nth-child() and :nth-last-child().
1314
1315         * css/CSSSelector.cpp:
1316         (WebCore::CSSSelector::selectorText):
1317         * css/SelectorChecker.cpp:
1318         (WebCore::SelectorChecker::checkOne):
1319
1320 2014-12-08  Benjamin Poulain  <bpoulain@apple.com>
1321
1322         A selector should not match anything if there is a subselector after a non-scrollbar pseudo element
1323         https://bugs.webkit.org/show_bug.cgi?id=139336
1324         rdar://problem/19051623
1325
1326         Reviewed by Andreas Kling.
1327
1328         Tests: fast/css/duplicated-after-pseudo-element.html
1329                fast/css/duplicated-before-pseudo-element.html
1330                fast/css/simple-selector-after-pseudo-element.html
1331
1332         * cssjit/SelectorCompiler.cpp:
1333         (WebCore::SelectorCompiler::constructFragments):
1334         The code filtering out simple selectors was only considering
1335         the relation CSSSelector::SubSelector. That comes from SelectorChecker where
1336         the relation considered is the one from the previous selector.
1337
1338         In this case, the relation is the extracted from the current simple selector,
1339         which is the relation with the following selector.
1340
1341         When a single simple selector was following a pseudo element, the relation evaluated
1342         to descendant/adjacent/direct-adjacent and we were skipping the early return.
1343         That simple selector was evaluated as a regular filter on the element.
1344
1345         In the CSS JIT, we can just remove that test altogether. Fragments are built one after
1346         the other. By definition, the evaluated simple selector belong to the current fragment.
1347
1348 2014-12-08  Benjamin Poulain  <benjamin@webkit.org>
1349
1350         Fix the parsing of advanced :lang() after r176902
1351         https://bugs.webkit.org/show_bug.cgi?id=139379
1352
1353         Reviewed by Andreas Kling.
1354
1355         There were two mistakes that were only caught in debug:
1356
1357         The lexer was not calling isIdentifierStart() before parseIdentifier().
1358         Some identifier we were parsing should have been invalid.
1359         This was caught with an assertion in parseIdentifier().
1360
1361         The other issue is that we were accumulating pointer to freed memory.
1362         The tokenizer for LANGRANGE was creating a new string with a StringBuilder.
1363         The problem is that CSSParserString does not keep the source string alive.
1364         Consequently, the list of language range was accumulating pointers to dead
1365         StringImpls.
1366
1367         The fix there is to simply extend the token to take the original asterisk character
1368         from the input. That is not elegant but that's efficient and we know
1369         the buffer lifetime.
1370
1371         * css/CSSParser.cpp:
1372         (WebCore::CSSParser::realLex):
1373         * css/CSSGrammar.y.in: Fix the indentation of a language range rule.
1374
1375 2014-12-08  Anders Carlsson  <andersca@apple.com>
1376
1377         Try to fix the 32-bit build.
1378
1379         * WebCore.exp.in:
1380
1381 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
1382
1383         Inline elements whose parents have small line-height are laid out too low
1384         https://bugs.webkit.org/show_bug.cgi?id=139375
1385
1386         Reviewed by Dave Hyatt.
1387
1388         This is a port of the Blink patch at
1389         https://src.chromium.org/viewvc/blink?revision=155253&view=revision.
1390
1391         When laying out inline elements, we try to align leaf children's parents'
1392         baselines across the entire line. However, if you set line-height: 0px on a
1393         span, the entire InlineBox which represents that span will have a height of
1394         0, and therefore be laid out entirely on the baseline. In addition, we will
1395         try to vertically center the leaf text in the span's InlineBox, which means
1396         the leaf text will be vertically centered on the baseline. All the other
1397         major browsers do not have this behavior; instead, they line up the boxes
1398         as you would expect.
1399
1400         This bug led to a rendering problem on the front page of the New York Times.
1401
1402         Here is the ChangeLog from the Blink patch:
1403
1404         Fix baseline position when it is outside the element's box
1405
1406         Specifically, we shouldn't force the baseline to be inside the element. IE
1407         and FF don't do this, and it's incompatible with the CSS spec:
1408         
1409         "The baseline of an 'inline-block' is the baseline of its last line box in
1410         the normal flow, unless it has either no in-flow line boxes or if its
1411         'overflow' property has a computed value other than 'visible', in which case
1412         the baseline is the bottom margin edge."
1413         -- http://www.w3.org/TR/CSS21/visudet.html#leading
1414         
1415         It doesn't have a special case for "baseline is outside of the element's
1416         margin box".
1417         
1418         Test: fast/text/small-line-height.html
1419
1420         * rendering/RenderBlock.cpp:
1421         (WebCore::RenderBlock::baselinePosition):
1422
1423 2014-12-08  Eric Carlson  <eric.carlson@apple.com>
1424
1425         [iOS] YouTube plug-in replacement should support partial urls
1426         https://bugs.webkit.org/show_bug.cgi?id=139400
1427
1428         Reviewed by Alexey Proskuryakov.
1429
1430         * Modules/plugins/YouTubePluginReplacement.cpp:
1431         (WebCore::YouTubePluginReplacement::youTubeURL): Call Document::completeURL.
1432
1433 2014-12-08  Anders Carlsson  <andersca@apple.com>
1434
1435         Build fix.
1436
1437         * platform/network/soup/CookieJarSoup.cpp:
1438         (WebCore::deleteAllCookiesModifiedSince):
1439
1440 2014-12-08  Andreas Kling  <akling@apple.com>
1441
1442         Roll out r175352.
1443         <https://webkit.org/b/139146>
1444
1445         This change caused some unexpected assertions in line box teardown.
1446
1447         * rendering/RenderBlock.cpp:
1448         (WebCore::RenderBlock::willBeDestroyed):
1449         * rendering/RenderBlock.h:
1450         * rendering/RenderBlockFlow.cpp:
1451         (WebCore::RenderBlockFlow::willBeDestroyed):
1452         * rendering/RenderElement.cpp:
1453         (WebCore::RenderElement::willBeRemovedFromTree):
1454         * rendering/RenderInline.cpp:
1455         (WebCore::RenderInline::willBeDestroyed):
1456         * rendering/RenderReplaced.cpp:
1457         (WebCore::RenderReplaced::willBeDestroyed):
1458         * rendering/RenderReplaced.h:
1459
1460 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
1461
1462         [iOS] Narrow non-breaking space does not fall back to a correct font
1463         https://bugs.webkit.org/show_bug.cgi?id=139335
1464
1465         Reviewed by Enrica Casucci.
1466
1467         Test: fast/text/narrow-non-breaking-space.html
1468
1469         * platform/graphics/ios/FontCacheIOS.mm:
1470         (WebCore::requiresCustomFallbackFont):
1471         (WebCore::FontCache::getCustomFallbackFont):
1472
1473 2014-12-08  Daniel Bates  <dabates@apple.com>
1474
1475         [iOS] Fix the WebKit build with the public SDK
1476
1477         Include header UIKit.h.
1478
1479         * platform/spi/ios/MediaPlayerSPI.h:
1480
1481 2014-12-08  Chris Dumez  <cdumez@apple.com>
1482
1483         Revert r176293 & r176275
1484
1485         Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
1486         instead of size_t. There is some disagreement regarding the long-term direction
1487         of the API and we shouldn’t leave the API partly transitioned to unsigned type
1488         while making a decision.
1489
1490         * WebCore.exp.in:
1491         * bindings/js/JSDOMBinding.h:
1492         (WebCore::jsArray):
1493         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1494         * cssjit/SelectorCompiler.cpp:
1495         * editing/TextIterator.cpp:
1496         (WebCore::SearchBuffer::append):
1497         (WebCore::SearchBuffer::prependContext):
1498         (WebCore::SearchBuffer::search):
1499         (WebCore::SearchBuffer::length):
1500         * html/HTMLFormElement.cpp:
1501         (WebCore::removeFromVector):
1502         * html/parser/HTMLParserIdioms.h:
1503         * html/parser/XSSAuditor.cpp:
1504         * platform/SharedBuffer.cpp:
1505         (WebCore::SharedBuffer::duplicateDataBufferIfNecessary):
1506
1507 2014-12-08  Anders Carlsson  <andersca@apple.com>
1508
1509         Make deleting all cookies after a given date a little more sane
1510         https://bugs.webkit.org/show_bug.cgi?id=139409
1511
1512         Reviewed by Antti Koivisto.
1513
1514         * WebCore.exp.in:
1515         Update exports.
1516
1517         * platform/network/PlatformCookieJar.h:
1518         * platform/network/cf/CookieJarCFNet.cpp:
1519         * platform/network/curl/CookieJarCurl.cpp:
1520         * platform/network/soup/CookieJarSoup.cpp:
1521         Rename deleteAllCookiesModifiedAfterDate to deleteAllCookiesModifiedSince and change it
1522         to take an std::chrono::system_clock::time_point instead.
1523
1524         * platform/network/mac/CookieJarMac.mm:
1525         (WebCore::cookieStorage):
1526         Helper function that returns an NSHTTPCookieStorage given a network session.
1527
1528         (WebCore::deleteAllCookiesModifiedSince):
1529         Get the cookie storage from the network storage instead of just getting the global one.
1530
1531 2014-12-08  Csaba Osztrogonác  <ossy@webkit.org>
1532
1533         URTBF after r176953, add an unreachable return to make GCC happy.
1534
1535         * loader/FrameLoader.cpp:
1536         (WebCore::FrameLoader::subresourceCachePolicy):
1537
1538 2014-12-08  Javier Fernandez  <jfernandez@igalia.com>
1539
1540         [CSS Grid Layout] Grid items must set a new formatting context.
1541         https://bugs.webkit.org/show_bug.cgi?id=139150
1542
1543         Reviewed by David Hyatt.
1544
1545         Grid item's margins must not collapse even when they may be adjoining to
1546         its content's margins. Also, setting a new formatting context prevents any
1547         'float' protruding content on the adjoining grid items.
1548
1549         This patch also renames the expandsToEncloseOverhangingFloats to be more generic now,
1550         determining whether a new formatting context is set or not. This affects not only to
1551         how floats behave, but whether margins should collapse or not.
1552
1553         Tests: fast/css-grid-layout/float-not-protruding-into-next-grid-item.html
1554                fast/css-grid-layout/grid-item-margins-not-collapse.html
1555
1556         * rendering/RenderBlock.cpp:
1557         (WebCore::RenderBlock::avoidsFloats): Using the new createsNewFormattingContext function.
1558         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): Deleted.
1559         * rendering/RenderBlock.h:
1560         * rendering/RenderBlockFlow.cpp:
1561         (WebCore::RenderBlockFlow::MarginInfo::MarginInfo): Using the new createsNewFormattingContext function.
1562         (WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats): Using the new createsNewFormattingContext function.
1563         (WebCore::RenderBlockFlow::layoutBlock): Using the new createsNewFormattingContext function.
1564         (WebCore::RenderBlockFlow::computeOverflow): Using the new createsNewFormattingContext function.
1565         (WebCore::RenderBlockFlow::addOverhangingFloats): Using the new createsNewFormattingContext function.
1566         (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): Using the new createsNewFormattingContext function.
1567         * rendering/RenderBox.cpp:
1568         (WebCore::RenderBox::createsNewFormattingContext): Added.
1569         (WebCore::RenderBox::avoidsFloats): Removed checks already defined in the new createsNewFormattingContext function.
1570         * rendering/RenderBox.h:
1571         (WebCore::RenderBox::isGridItem): Added.
1572
1573 2014-12-08  Daniel Bates  <dabates@apple.com>
1574
1575         [iOS] Attempt to fix the public SDK build after <https://trac.webkit.org/r176841>
1576         (https://bugs.webkit.org/show_bug.cgi?id=139227)
1577
1578         * platform/spi/ios/AVKitSPI.h:
1579
1580 2014-12-08  Chris Dumez  <cdumez@apple.com>
1581
1582         Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
1583         https://bugs.webkit.org/show_bug.cgi?id=139350
1584
1585         Reviewed by Antti Koivisto.
1586
1587         Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
1588         and use m_loadType instead. ResourceRequest::cachePolicy() is meant to be passed
1589         to the network stack, and isn't supposed to be used as input inside WebCore.
1590
1591         No new tests, no behavior change.
1592
1593         * loader/FrameLoader.cpp:
1594         (WebCore::FrameLoader::subresourceCachePolicy):
1595
1596 2014-12-08  Philippe Normand  <pnormand@igalia.com>
1597
1598         [GTK] UserMedia Permission Request API
1599         https://bugs.webkit.org/show_bug.cgi?id=136449
1600
1601         Reviewed by Carlos Garcia Campos.
1602
1603         Very basic constraints validation support in the GStreamer
1604         MediaStreamCenter. This is needed so the GTK C API tests using the
1605         getUserMedia() API would not time out.
1606
1607         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
1608         (WebCore::MediaStreamCenterGStreamer::~MediaStreamCenterGStreamer):
1609         (WebCore::MediaStreamCenterGStreamer::validateRequestConstraints):
1610         (WebCore::MediaStreamCenterGStreamer::createMediaStream):
1611
1612 2014-12-08  Anders Carlsson  <andersca@apple.com>
1613
1614         Remove ResourceHandle::loadsBlocked()
1615         https://bugs.webkit.org/show_bug.cgi?id=139401
1616
1617         Reviewed by Daniel Bates.
1618
1619         This hasn't returned true since Leopard, so get rid of it.
1620
1621         * page/Chrome.cpp:
1622         (WebCore::Chrome::canRunModalNow):
1623         * platform/network/ResourceHandle.h:
1624         * platform/network/cf/ResourceHandleCFNet.cpp:
1625         (WebCore::ResourceHandle::loadsBlocked): Deleted.
1626         * platform/network/curl/ResourceHandleCurl.cpp:
1627         (WebCore::ResourceHandle::loadsBlocked): Deleted.
1628         * platform/network/mac/ResourceHandleMac.mm:
1629         (WebCore::ResourceHandle::loadsBlocked): Deleted.
1630         * platform/network/soup/ResourceHandleSoup.cpp:
1631         (WebCore::ResourceHandle::loadsBlocked): Deleted.
1632
1633 2014-12-08  Chris Fleizach  <cfleizach@apple.com>
1634
1635         AX: iOS: VoiceOver gets hung on some websites consistently.
1636         https://bugs.webkit.org/show_bug.cgi?id=139331
1637
1638         Reviewed by Mario Sanchez Prada.
1639
1640         iFrames are attachments on iOS, but they do not have attachment views. As a result, 
1641         WebCore would return incorrect information for the element count and index of children elements.
1642
1643         No tests. Bug only manifests itself when iOS accessibility frameworks call into WebCore.
1644
1645         * accessibility/AccessibilityMockObject.h:
1646         (WebCore::AccessibilityMockObject::isDetachedFromParent):
1647         * accessibility/AccessibilityObject.h:
1648         (WebCore::AccessibilityObject::isDetachedFromParent):
1649         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1650         (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
1651         (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
1652         (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
1653         (-[WebAccessibilityObjectWrapper accessibilityContainer]):
1654
1655 2014-12-08  Doron Wloschowsky  <doron_wloschowsky@scee.net>
1656
1657         Webkit using Harfbuzz does not display Arabic script correctly
1658         https://bugs.webkit.org/show_bug.cgi?id=136337
1659
1660         Reviewed by Carlos Garcia Campos.
1661
1662         Using reinterpret_cast to convert hb_codepoint_t* into UChar*
1663         doesn't work on big endian systems.
1664
1665         * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
1666         (WebCore::harfBuzzGetGlyph):
1667
1668 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1669
1670         [GStreamer] Major cleanup of AudioDestination implementation
1671         https://bugs.webkit.org/show_bug.cgi?id=139370
1672
1673         Reviewed by Philippe Normand.
1674
1675         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
1676         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1677         Add an audioresample element before the audio sink. The audio sink
1678         might not be able to handle our sampling rate.
1679
1680         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1681         (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
1682         (WebCore::AudioDestinationGStreamer::stop):
1683         (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady): Deleted.
1684         Don't use a wavparse element but directly link the raw audio from
1685         the source to the audio sink.
1686
1687         (WebCore::AudioDestinationGStreamer::start):
1688         Catch errors when going to PLAYING early, we might not get an error
1689         message.
1690
1691         * platform/audio/gstreamer/AudioDestinationGStreamer.h:
1692         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1693         (getGStreamerMonoAudioCaps):
1694         (webKitWebAudioSrcConstructed):
1695         (webKitWebAudioSrcChangeState):
1696         Don't use a WAV encoder but directly output raw audio. Also don't
1697         include a unneeded audioconvert element before the interleave.
1698
1699         (webKitWebAudioSrcLoop):
1700         Add timestamps and durations to the output buffers, map them in
1701         READWRITE mode and actually keep them mapped until we're sure
1702         nothing is actually writing into them.
1703
1704         (webKitWebAudioSrcLoop):
1705         Pause the task on errors instead of continuously calling it again
1706         immediately.
1707
1708 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1709
1710         [GStreamer] Use gst_message_parse_buffering()
1711         https://bugs.webkit.org/show_bug.cgi?id=139365
1712
1713         Reviewed by Philippe Normand.
1714
1715         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1716         (WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
1717         Use gst_message_parse_buffering() instead of manually getting
1718         the percentage from the message's structure. While the latter
1719         is supposed to work and part of the ABI stability guarantee,
1720         it's just not nice and overly complicated.
1721
1722 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1723
1724         [GStreamer] Minor cleanup of the AudioFileReader implementation
1725         https://bugs.webkit.org/show_bug.cgi?id=139367
1726
1727         Reviewed by Philippe Normand.
1728
1729         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1730         (WebCore::AudioFileReader::~AudioFileReader):
1731         Don't call gst_bus_remove_signal_watch(), the source was already
1732         destroyed together with the main context and doing it again here
1733         will give a g_critical().
1734
1735         (WebCore::AudioFileReader::handleSample):
1736         Calculate the number of samples from the actual buffer size
1737         and the bytes-per-frame instead of the buffer duration. Using
1738         the buffer duration can lead to rounding errors and might cause
1739         too few samples to be copied over later.
1740
1741         (WebCore::AudioFileReader::handleMessage):
1742         Set the pipeline to GST_STATE_NULL immediately when receiving
1743         errors to prevent other follow-up error messages from propagating
1744         through the bus and spamming the user's terminal with g_warnings().
1745
1746         (WebCore::AudioFileReader::handleNewDeinterleavePad):
1747         Sync the state of the queue and sink after deinterleave with
1748         the parent state instead of just setting them to READY. That
1749         way we potentially go to PAUSED state a bit earlier already
1750         and prevent a potential race condition that could cause buffers
1751         to arrive in the new elements in READY state already (which would
1752         fail).
1753
1754         (WebCore::AudioFileReader::plugDeinterleave):
1755         Handle multiple decodebin source pads by ignoring all following
1756         ones just in case there are multiple for whatever reason.
1757
1758         (WebCore::AudioFileReader::decodeAudioForBusCreation):
1759         Catch errors from going to PAUSED state early. We might not
1760         get a error message at all if we're unlucky.
1761
1762         (WebCore::AudioFileReader::plugDeinterleave):
1763         (WebCore::AudioFileReader::createBus):
1764         (WebCore::AudioFileReader::handleSample):
1765         Downmix to mono if required instead of just using the front
1766         left channel and claiming it is mono. Downmixing from stereo
1767         to mono will mix both channels instead of just taking the left.
1768
1769 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1770
1771         [GStreamer] Handle CLOCK_LOST and LATENCY messages
1772         https://bugs.webkit.org/show_bug.cgi?id=139341
1773
1774         Reviewed by Philippe Normand.
1775
1776         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1777         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1778         Handle CLOCK_LOST message by shortly going back to PAUSED state
1779         and then to PLAYING again to let the pipeline select a new clock
1780         for us.
1781         This can happen if the stream that ends in a sink that provides
1782         the current clock disappears, for example if the audio sink
1783         provides the clock and the audio stream is disabled. It also
1784         happens relatively often with HTTP adaptive streams when switching
1785         between different variants of a stream.
1786
1787         Also handle the LATENCY message by triggering the default GStreamer
1788         mechanism to update the latency. This can happen if the latency of
1789         live elements changes, or for one reason or another a new live element
1790         is added or removed from the pipeline.
1791
1792 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1793
1794         [GStreamer] Use audio-filter property on GStreamer >= 1.4.2
1795         https://bugs.webkit.org/show_bug.cgi?id=139360
1796
1797         Reviewed by Philippe Normand.
1798
1799         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1800         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
1801         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
1802         Since 1.4.0 there is an audio-filter property we can use to place
1803         the pitch-preserving filter at a more canonical position inside
1804         the pipeline. Since 1.4.2 this property also handles all necessary
1805         conversions for us.
1806         This simplifies our sink code a bit because we don't have to create
1807         a custom sink bin anymore.
1808
1809 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1810
1811         [GStreamer] Add video/flv to the list of supported mimetypes
1812         https://bugs.webkit.org/show_bug.cgi?id=139344
1813
1814         Reviewed by Gustavo Noronha Silva.
1815
1816         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1817         (WebCore::mimeTypeCache):
1818         Add video/flv additional to video/x-flv to the list of supported
1819         mimetypes. It's used on some websites, e.g.
1820         http://www.jwplayer.com/html5/formats/
1821
1822 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1823
1824         [GStreamer] Remove GStreamer 0.10 #ifdefs.
1825         https://bugs.webkit.org/show_bug.cgi?id=138921
1826
1827         Reviewed by Philippe Normand.
1828
1829         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1830         (WebCore::initializeGStreamer):
1831         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1832         (WebCore::MediaPlayerPrivateGStreamer::buffered):
1833         Remove GStreamer 0.10 #ifdefs, we depend on >= 1.0.3 at least.
1834
1835 2014-12-08  Sebastian Dröge  <sebastian@centricular.com>
1836
1837         [GStreamer] Add application/x-mpegurl to the list of supported mimetypes.
1838         https://bugs.webkit.org/show_bug.cgi?id=139343
1839
1840         Reviewed by Gustavo Noronha Silva.
1841
1842         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1843         (WebCore::mimeTypeCache):
1844         It's an alternative mimetype for the already supported
1845         application/vnd.apple.mpegurl (aka HLS) and adding it
1846         allows all streams on http://www.jwplayer.com/html5/hls/
1847         to be played.
1848
1849 2014-12-07  Gwang Yoon Hwang  <yoon@igalia.com>
1850
1851         [TextureMapper] Normalize pattern transform for pattern compositing
1852         https://bugs.webkit.org/show_bug.cgi?id=139374
1853
1854         Reviewed by Martin Robinson.
1855
1856         In CoordGfx/TexMapGL, pattern compositing (for background image) uses
1857         the patternTransform shader uniform. However, current implementation
1858         miscalculates its transform matrix. It uses simple rectToRect
1859         transformationMatrix which produces unnormalized garbage term.
1860         This causes unexpected behavior at the fragmentation stage in some
1861         mobile GPUs.
1862
1863         It should calculate its scale based on tileSize and contentSize,
1864         and its position based on tilePhase and contentSize.
1865
1866         No new tests because the bug only occurs on some mobile GPUs.
1867
1868         * platform/graphics/texmap/TextureMapperLayer.cpp:
1869         (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
1870
1871 2014-12-07  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1872
1873         [Soup][Curl] HTTP header values should be treated as latin1, not UTF-8
1874         https://bugs.webkit.org/show_bug.cgi?id=128739
1875
1876         Reviewed by Martin Robinson.
1877
1878         Removed UTF-8 conversion of HTTP header values (SOUP and CURL).
1879         Removed unnecessary UTF-8 conversion of HTTP header names (SOUP).
1880         Changed conversion of HTTP method from UTF-8 to ASCII (SOUP and CURL).
1881         Added explicit UTF-8 conversion of Content-Disposition header to compute download suggested filename. 
1882
1883         Test: http/tests/xmlhttprequest/response-special-characters.html
1884
1885         * platform/network/curl/CurlDownload.cpp:
1886         (WebCore::CurlDownload::headerCallback): Removed header conversion.
1887         * platform/network/curl/ResourceHandleManager.cpp:
1888         (WebCore::headerCallback): Ditto.
1889         (WebCore::ResourceHandleManager::initializeHandle): Changed HTTP method conversion to ASCI.
1890         * platform/network/soup/ResourceRequestSoup.cpp:
1891         (WebCore::ResourceRequest::updateFromSoupMessageHeaders): Removed header conversion.
1892         (WebCore::ResourceRequest::updateSoupMessage): Changed HTTP method conversion to ASCII.
1893         (WebCore::ResourceRequest::toSoupMessage): Ditto.
1894         (WebCore::ResourceRequest::updateFromSoupMessage):
1895         * platform/network/soup/ResourceResponseSoup.cpp:
1896         (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Rmoved header conversion.
1897         (WebCore::ResourceResponse::platformSuggestedFilename): Added explicit conversion of contentDisposition to UTF-8.
1898
1899 2014-12-07  Dan Bernstein  <mitz@apple.com>
1900
1901         Introduce and deploy a function that allocates and returns an instance of a soft-linked class
1902         https://bugs.webkit.org/show_bug.cgi?id=139348
1903
1904         Reviewed by Anders Carlsson.
1905
1906         In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
1907         picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
1908         to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
1909         doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
1910         avoiding the ambiguity.
1911
1912         * editing/mac/DataDetection.mm:
1913         (WebCore::DataDetection::detectItemAroundHitTestResult):
1914         * platform/audio/ios/MediaSessionManagerIOS.mm:
1915         (-[WebMediaSessionHelper allocateVolumeView]):
1916         (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
1917         * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
1918         (WebCore::AudioSourceProviderAVFObjC::createMix):
1919         * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
1920         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
1921         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1922         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
1923         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
1924         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
1925         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
1926         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
1927         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1928         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
1929         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
1930         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
1931         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1932         (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
1933         (WebCore::SourceBufferPrivateAVFObjC::abort):
1934         (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
1935
1936         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1937         (PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
1938         expected class.
1939
1940         * platform/graphics/mac/FontMac.mm:
1941         (WebCore::showLetterpressedGlyphsWithAdvances):
1942         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1943         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
1944         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
1945         * platform/graphics/mac/PDFDocumentImageMac.mm:
1946         (WebCore::PDFDocumentImage::createPDFDocument):
1947         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
1948         (SOFT_LINK_CONSTANT):
1949         (-[WebSpeechSynthesisWrapper speakUtterance:]):
1950         * platform/ios/WebCoreMotionManager.mm:
1951         (-[WebCoreMotionManager initializeOnMainThread]):
1952         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1953         (-[WebAVPlayerController init]):
1954         (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
1955         * platform/mac/ContentFilterMac.mm:
1956         (WebCore::ContentFilter::ContentFilter):
1957
1958         * platform/mac/SoftLinking.h: Added alloc##className##instance().
1959
1960         * platform/mac/WebVideoFullscreenController.mm:
1961         (-[WebVideoFullscreenController setVideoElement:]):
1962         * platform/mediastream/mac/AVAudioCaptureSource.mm:
1963         (WebCore::AVAudioCaptureSource::setupCaptureSession):
1964         * platform/mediastream/mac/AVCaptureDeviceManager.mm:
1965         (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
1966         * platform/mediastream/mac/AVMediaCaptureSource.mm:
1967         (WebCore::AVMediaCaptureSource::setupSession):
1968         * platform/mediastream/mac/AVVideoCaptureSource.mm:
1969         (WebCore::AVVideoCaptureSource::setupCaptureSession):
1970         * platform/network/ios/QuickLook.mm:
1971         (WebCore::registerQLPreviewConverterIfNeeded):
1972         (WebCore::QuickLookHandle::QuickLookHandle):
1973
1974 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1975
1976         [GTK] Add Since tags to GObject DOM bindings documentation
1977         https://bugs.webkit.org/show_bug.cgi?id=139356
1978
1979         Reviewed by Gustavo Noronha Silva.
1980
1981         Now that we have a small stable API, and new symbols are added
1982         manually, we can also add the version to the symbols file, that
1983         the code generator can ue to add Since tags to the gtk-doc.
1984
1985         * bindings/gobject/webkitdom.symbols: Add @2.8 to the new symbols
1986         added for 2.8.
1987         * bindings/scripts/CodeGeneratorGObject.pm:
1988         (GenerateConstants): Add Since tag to gtk-doc if there's a version
1989         number for the symbol in the .symbols file.
1990         (GenerateFunction): Ditto.
1991         (ReadStableSymbols):
1992
1993 2014-12-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1994
1995         [GTK] Missing API detected in GObject DOM bindings after r176630
1996         https://bugs.webkit.org/show_bug.cgi?id=139201
1997
1998         Reviewed by Gustavo Noronha Silva.
1999
2000         Bring back WebKitDOMDeprecated and add custom versions of the
2001         removed symbols as deprecated in favor of the new ones. Also add
2002         the new ones as stable API.
2003
2004         * CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
2005         * PlatformGTK.cmake: Ditto.
2006         * PlatformMac.cmake: Ditto.
2007         * bindings/gobject/WebKitDOMDeprecated.cpp: Added.
2008         (webkit_dom_html_element_get_inner_html):
2009         (webkit_dom_html_element_set_inner_html):
2010         (webkit_dom_html_element_get_outer_html):
2011         (webkit_dom_html_element_set_outer_html):
2012         * bindings/gobject/WebKitDOMDeprecated.h: Added.
2013         * bindings/gobject/WebKitDOMDeprecated.symbols: Added.
2014         * bindings/gobject/webkitdom.symbols:
2015
2016 2014-12-06  Csaba Osztrogonác  <ossy@webkit.org>
2017
2018         URTBF after r176915.
2019
2020         DisplayRefreshMonitorClient is the parent class of GraphicsLayerUpdater
2021         only if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is true, so override
2022         is incorrect if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is false.
2023
2024         That's why r176915 broke the build on non PLATFORM(COCOA) platforms,
2025         such as GTK, EFL, Apple Windows.
2026
2027         Additionally displayRefreshFired is only used inside USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
2028         guard, so there is no reason to define it for non COCOA platforms.
2029
2030         * platform/graphics/GraphicsLayerUpdater.cpp:
2031         * platform/graphics/GraphicsLayerUpdater.h:
2032
2033 2014-12-06  Anders Carlsson  <andersca@apple.com>
2034
2035         Fix build with newer versions of clang.
2036         rdar://problem/18978733
2037
2038         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
2039
2040         * page/scrolling/AsyncScrollingCoordinator.h:
2041         * page/scrolling/ScrollingStateFixedNode.h:
2042         * page/scrolling/ScrollingStateFrameScrollingNode.h:
2043         * page/scrolling/ScrollingStateOverflowScrollingNode.h:
2044         * page/scrolling/ScrollingStateStickyNode.h:
2045         * page/scrolling/ScrollingTreeFrameScrollingNode.h:
2046         (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll): Deleted.
2047         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
2048         * platform/graphics/GraphicsLayerUpdater.h:
2049         * platform/mac/ScrollbarThemeMac.h:
2050         (WebCore::ScrollbarThemeMac::supportsControlTints): Deleted.
2051         (WebCore::ScrollbarThemeMac::maxOverlapBetweenPages): Deleted.
2052         * rendering/RenderLayerCompositor.h:
2053         * rendering/RenderSnapshottedPlugIn.h:
2054
2055 2014-12-06  Anders Carlsson  <andersca@apple.com>
2056
2057         Fix build with newer versions of clang.
2058         rdar://problem/18978687
2059
2060         Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.
2061
2062         * html/HTMLElement.h:
2063         * html/HTMLMediaElement.h:
2064         * html/track/VTTCue.h:
2065         * loader/FrameNetworkingContext.h:
2066         (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect): Deleted.
2067         * loader/cache/CachedImage.h:
2068         * page/SuspendableTimer.h:
2069         * platform/Scrollbar.h:
2070         * platform/graphics/InbandTextTrackPrivate.h:
2071         * rendering/RenderBlockFlow.h:
2072
2073 2014-12-06  Anders Carlsson  <andersca@apple.com>
2074
2075         Follow-up build fix.
2076
2077         * Configurations/Base.xcconfig:
2078
2079 2014-12-06  Anders Carlsson  <andersca@apple.com>
2080
2081         Fix build with newer versions of clang.
2082         rdar://problem/18978689
2083
2084         Disable the "inconsistent missing override" warning due to our use of macros in SVG where it's hard to
2085         know whether we can add an override or not.
2086
2087         Also, cast return values of +alloc to the right type, and add some casts for vector iterator arithmetic.
2088
2089         * Configurations/Base.xcconfig:
2090         * Modules/webdatabase/DatabaseBackendBase.cpp:
2091         (WebCore::guidForOriginAndName):
2092         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2093         (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
2094         * editing/cocoa/HTMLConverter.mm:
2095         (_shadowForShadowStyle):
2096         (HTMLConverter::_addTableForElement):
2097         * platform/graphics/SVGGlyph.cpp:
2098         (WebCore::isCompatibleArabicForm):
2099         * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
2100         (WebCore::AudioSourceProviderAVFObjC::createMix):
2101         * platform/graphics/mac/FontMac.mm:
2102         (WebCore::showLetterpressedGlyphsWithAdvances):
2103         * platform/ios/PlatformSpeechSynthesizerIOS.mm:
2104         (-[WebSpeechSynthesisWrapper speakUtterance:]):
2105         * platform/ios/WebCoreMotionManager.mm:
2106         (-[WebCoreMotionManager initializeOnMainThread]):
2107         * rendering/RenderTableSection.cpp:
2108         (WebCore::RenderTableSection::spannedRows):
2109         (WebCore::RenderTableSection::spannedColumns):
2110
2111 2014-12-06  peavo@outlook.com  <peavo@outlook.com>
2112
2113         [WinCairo] Compile error, missing guard.
2114         https://bugs.webkit.org/show_bug.cgi?id=139338
2115
2116         Reviewed by Alex Christensen.
2117
2118         There is missing a ENABLE(CSS_SELECTORS_LEVEL4) guard in CSSParser.cpp.
2119
2120         * css/CSSParser.cpp:
2121         (WebCore::CSSParser::realLex):
2122
2123 2014-12-05  Chris Fleizach  <cfleizach@apple.com>
2124
2125         AX: I cannot activate links on the mobile version of news.google.com
2126         https://bugs.webkit.org/show_bug.cgi?id=139330
2127
2128         Reviewed by Simon Fraser.
2129
2130         This website only listens for touch events. VoiceOver normally dispatches click and mouse events,
2131         so on iOS this falls and VoiceOver is not able to activate anything.
2132
2133         The solution here is to dispatch simulated touch down/up events.
2134
2135         Test: platform/ios-simulator/ios-accessibility/press-fires-touch-events.html
2136
2137         * accessibility/AccessibilityObject.cpp:
2138         (WebCore::AccessibilityObject::press):
2139         (WebCore::AccessibilityObject::dispatchTouchEvent):
2140         * accessibility/AccessibilityObject.h:
2141         (WebCore::AccessibilityObject::isDetachedFromParent):
2142         * page/EventHandler.h:
2143         * page/ios/EventHandlerIOS.mm:
2144         (WebCore::EventHandler::dispatchSimulatedTouchEvent):
2145         * platform/ios/PlatformEventFactoryIOS.h:
2146         * platform/ios/PlatformEventFactoryIOS.mm:
2147         (WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
2148         (WebCore::PlatformEventFactory::createPlatformSimulatedTouchEvent):
2149
2150 2014-12-05  Myles C. Maxfield  <mmaxfield@apple.com>
2151
2152         Directional single quotation marks are not rotated in vertical text
2153         https://bugs.webkit.org/show_bug.cgi?id=138526
2154
2155         Reviewed by Darin Adler.
2156
2157         In vertical text, directional single quotation marks are not rotated along with
2158         the rest of the letters.
2159
2160         Test: fast/text/vertical-quotation-marks.html
2161
2162         * platform/graphics/FontGlyphs.cpp:
2163         (WebCore::shouldIgnoreRotation):
2164
2165 2014-12-05  Dhi Aurrahman  <diorahman@rockybars.com>
2166
2167         Implement parser for :lang pseudo class selector arguments that contain wildcard '*' subtags
2168         https://bugs.webkit.org/show_bug.cgi?id=139014
2169
2170         Reviewed by Benjamin Poulain.
2171
2172         Consider each language range in :lang() that consists of an asterisk 
2173         immediately followed by an identifier beginning with an ASCII hyphen 
2174         as a valid input for the selector as specified in [1].
2175
2176         [1] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo 
2177
2178         Test: fast/css/parsing-css-lang.html
2179
2180         * css/CSSGrammar.y.in:
2181         * css/CSSParser.cpp:
2182         (WebCore::CSSParser::realLex):
2183
2184 2014-12-05  Simon Fraser  <simon.fraser@apple.com>
2185
2186         Programmatic scrolling and content changes are not always synchronized
2187         https://bugs.webkit.org/show_bug.cgi?id=139245
2188         rdar://problem/18833612
2189
2190         Reviewed by Anders Carlsson.
2191         
2192         For programmatic scrolls, AsyncScrollingCoordinator::requestScrollPositionUpdate()
2193         calls updateScrollPositionAfterAsyncScroll(), then dispatches the requested
2194         scroll position to the scrolling thread.
2195         
2196         Once the scrolling thread commits, it calls back to the main thread via
2197         scheduleUpdateScrollPositionAfterAsyncScroll(), which schedules a second
2198         call to updateScrollPositionAfterAsyncScroll() on a timer. That's a problem,
2199         because some other scroll may have happened in the meantime; when the timer
2200         fires, it can sometimes restore a stale scroll position.
2201         
2202         Fix by bailing early from scheduleUpdateScrollPositionAfterAsyncScroll()
2203         for programmatic scrolls, since we know that requestScrollPositionUpdate()
2204         already did the updateScrollPositionAfterAsyncScroll().
2205
2206         Test:
2207             ManualTests/programmatic-scroll-flicker.html
2208
2209         * page/FrameView.cpp:
2210         (WebCore::FrameView::reset): nullptr.
2211         (WebCore::FrameView::setScrollPosition): Ditto.
2212         (WebCore::FrameView::setWasScrolledByUser): Ditto.
2213         * page/scrolling/AsyncScrollingCoordinator.cpp:
2214         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate): Use a local variable for
2215         isProgrammaticScroll just to make sure we use the same value for the duration of this function.
2216         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): Do nothing
2217         if this is a programmatic scroll.
2218
2219 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
2220
2221         Build fix.
2222
2223         * platform/spi/mac/TUCallSPI.h:
2224
2225 2014-12-05  Roger Fong  <roger_fong@apple.com>
2226
2227         [Win] proj files copying over too many resources..
2228         https://bugs.webkit.org/show_bug.cgi?id=139315.
2229         <rdar://problem/19148278>
2230
2231         Reviewed by Brent Fulgham.
2232
2233         * WebCore.vcxproj/WebCore.proj: Don't copy over bin32 build output.
2234
2235 2014-12-05  Timothy Horton  <timothy_horton@apple.com>
2236
2237         Use the system string for telephone number menu
2238         https://bugs.webkit.org/show_bug.cgi?id=139324
2239         <rdar://problem/18726471>
2240
2241         * platform/spi/mac/TUCallSPI.h: Added.
2242         Actually add the SPI header from the last commit.
2243
2244 2014-12-05  Tim Horton  <timothy_horton@apple.com>
2245
2246         Use the system string for telephone number menu
2247         https://bugs.webkit.org/show_bug.cgi?id=139324
2248         <rdar://problem/18726471>
2249
2250         Reviewed by Anders Carlsson.
2251
2252         * WebCore.xcodeproj/project.pbxproj:
2253         * platform/spi/mac/TUCallSPI.h: Added.
2254         Add an SPI header.
2255
2256 2014-12-05  Jer Noble  <jer.noble@apple.com>
2257
2258         [MSE][Mac] Return absolute value of error code from CDMSessionMediaSourceAVFObjC::update().
2259         https://bugs.webkit.org/show_bug.cgi?id=139316
2260
2261         Reviewed by Eric Carlson.
2262
2263         Similarly to our asynchronous error reporting, return the absolute value of the error code.
2264
2265         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
2266         (WebCore::systemCodeForError):
2267         (WebCore::CDMSessionMediaSourceAVFObjC::update):
2268
2269 2014-12-05  Anders Carlsson  <andersca@apple.com>
2270
2271         Fix build on Windows.
2272
2273         * page/SessionIDHash.h:
2274
2275 2014-12-05  Zalan Bujtas  <zalan@apple.com>
2276
2277         Issue repaint at setUnavailablePluginIndicatorIsHidden() only when embedded object's indicator status changes.
2278         https://bugs.webkit.org/show_bug.cgi?id=139311
2279
2280         Reviewed by Tim Horton.
2281
2282         Not testable.
2283
2284         * rendering/RenderEmbeddedObject.cpp:
2285         (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
2286
2287 2014-12-05  Andreas Kling  <akling@apple.com>
2288
2289         PassRef should deref on destruction if pointee was not moved.
2290         <https://webkit.org/b/139309>
2291
2292         Reviewed by Antti Koivisto.
2293
2294         Remove calls to PassRef::dropRef() since it's no longer necessary to manually
2295         notify PassRef that you didn't move the pointee.
2296
2297         * rendering/RenderElement.cpp:
2298         (WebCore::RenderElement::createFor):
2299         (WebCore::RenderElement::setStyle):
2300         * style/StyleResolveTree.cpp:
2301         (WebCore::Style::resolveTree):
2302
2303 2014-12-05  Benjamin Poulain  <bpoulain@apple.com>
2304
2305         Fix style sharing with the "type" and "readonly" attributes
2306         https://bugs.webkit.org/show_bug.cgi?id=139283
2307
2308         Reviewed by Antti Koivisto.
2309
2310         There are two bugs adressed with this patch:
2311         1) The attributes "type" and "readonly" where only handled correctly
2312            for input elements. For everything else, they could incorrectly
2313            be ignored for style sharing.
2314         2) The handling of attributes was incorrect for selector lists, leading
2315            to various bugs (incorrect style sharing in some cases, disabling
2316            style sharing on valid cases).
2317
2318         For [1], the problem was that attribute checking had been limited to
2319         StyleResolver::canShareStyleWithControl(). That function is for handling
2320         the special states of input element. For any other element, the attributes
2321         were simply ignored.
2322
2323         For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
2324         was not recursive, which caused it to ignored any nested selector list. This used to be
2325         correct but since we have advanced selectors we can no longer assumed selectors are not nested.
2326
2327         A second issue was that any attribute in a selector list was causing us to fall back
2328         to the slow case. Now that we have the fast :matches(), we really don't want that.
2329
2330         The function containsUncommonAttributeSelector() was transformed into a recursive function
2331         tracking where we are in the selector.
2332
2333         At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
2334         updated on the stack of each recursive call.
2335
2336         For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
2337         into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
2338         is set to false to evaluate any following selectors.
2339         After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
2340         is back to true and we can continue evaluating with the curren top level state.
2341
2342         From some logging, I discovered that the attribute handling is way too aggressive.
2343         This is not a regression and I cannot fix that easily so I left a fixme.
2344
2345         Tests: fast/css/data-attribute-style-sharing-1.html
2346                fast/css/data-attribute-style-sharing-2.html
2347                fast/css/data-attribute-style-sharing-3.html
2348                fast/css/data-attribute-style-sharing-4.html
2349                fast/css/data-attribute-style-sharing-5.html
2350                fast/css/data-attribute-style-sharing-6.html
2351                fast/css/data-attribute-style-sharing-7.html
2352                fast/css/readonly-attribute-style-sharing-1.html
2353                fast/css/readonly-attribute-style-sharing-2.html
2354                fast/css/readonly-attribute-style-sharing-3.html
2355                fast/css/readonly-attribute-style-sharing-4.html
2356                fast/css/readonly-attribute-style-sharing-5.html
2357                fast/css/readonly-attribute-style-sharing-6.html
2358                fast/css/readonly-attribute-style-sharing-7.html
2359                fast/css/type-attribute-style-sharing-1.html
2360                fast/css/type-attribute-style-sharing-2.html
2361                fast/css/type-attribute-style-sharing-3.html
2362                fast/css/type-attribute-style-sharing-4.html
2363                fast/css/type-attribute-style-sharing-5.html
2364                fast/css/type-attribute-style-sharing-6.html
2365                fast/css/type-attribute-style-sharing-7.html
2366
2367         * css/RuleSet.cpp:
2368         (WebCore::containsUncommonAttributeSelector):
2369         (WebCore::RuleData::RuleData):
2370         (WebCore::selectorListContainsAttributeSelector): Deleted.
2371         * css/StyleResolver.cpp:
2372         (WebCore::StyleResolver::canShareStyleWithControl):
2373         (WebCore::StyleResolver::canShareStyleWithElement):
2374
2375 2014-12-05  Jer Noble  <jer.noble@apple.com>
2376
2377         [WTF] MediaTime should support round-tripping from and to doubles.
2378         https://bugs.webkit.org/show_bug.cgi?id=139248
2379
2380         Reviewed by Eric Carlson.
2381
2382         Check whether the MediaTime's underlying data is floating point before converting
2383         to a CMTime or QTTime.
2384
2385         * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
2386         (WebCore::toCMTime):
2387         * platform/graphics/mac/MediaTimeQTKit.mm:
2388         (WebCore::toQTTime):
2389
2390 2014-12-05  Anders Carlsson  <andersca@apple.com>
2391
2392         Add a private browsing mode to MiniBrowser
2393         https://bugs.webkit.org/show_bug.cgi?id=139308
2394
2395         Reviewed by Sam Weinig.
2396
2397         Use -1 instead of -2 for the deleted value.
2398
2399         * page/SessionIDHash.h:
2400
2401 2014-12-05  Chris Dumez  <cdumez@apple.com>
2402
2403         Move 'text-emphasis-style' CSS property to the new StyleBuilder
2404         https://bugs.webkit.org/show_bug.cgi?id=139285
2405
2406         Reviewed by Sam Weinig.
2407
2408         Move 'text-emphasis-style' CSS property to the new StyleBuilder by
2409         using custom code.
2410
2411         No new tests, no behavior change.
2412
2413         * css/CSSPropertyNames.in:
2414         * css/DeprecatedStyleBuilder.cpp:
2415         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2416         (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): Deleted.
2417         (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): Deleted.
2418         (WebCore::ApplyPropertyTextEmphasisStyle::applyValue): Deleted.
2419         (WebCore::ApplyPropertyTextEmphasisStyle::createHandler): Deleted.
2420         * css/StyleBuilderCustom.h:
2421         (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle):
2422         (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle):
2423         (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):
2424
2425 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
2426
2427         [iOS] remove "enter optimized fullscreen" gesture
2428         https://bugs.webkit.org/show_bug.cgi?id=139301
2429
2430         Reviewed by Jer Noble.
2431
2432         * Modules/mediacontrols/mediaControlsiOS.js:
2433         (ControllerIOS.prototype.handleWrapperTouchStart): Remove gesture recognizer.
2434
2435 2014-12-05  Beth Dakin  <bdakin@apple.com>
2436
2437         rdar://problem/19156353 Additional build-fixes needed.
2438
2439         Rubber-stamped by Tim Horton.
2440
2441         This is a bit unfortunate, but we need to always forward-declare this for now.
2442         * platform/spi/mac/QuickLookMacSPI.h:
2443
2444 2014-12-05  David Kilzer  <ddkilzer@apple.com>
2445
2446         FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
2447         <http://webkit.org/b/139286>
2448
2449         Reviewed by Daniel Bates.
2450
2451         * Configurations/FeatureDefines.xcconfig: Switch back to using
2452         PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.
2453
2454 2014-12-05  Eric Carlson  <eric.carlson@apple.com>
2455
2456         [iOS] allow host application to opt-out of alternate fullscreen pt. 2
2457         https://bugs.webkit.org/show_bug.cgi?id=139227
2458
2459         Reviewed by Jer Noble and Anders Carlsson
2460
2461         * WebCore.exp.in: Export HTMLMediaSession::allowsAlternateFullscreen, change the signature of 
2462             WebVideoFullscreenInterfaceAVKit::setupFullscreen.
2463
2464         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
2465         (-[WebVideoFullscreenController enterFullscreen:mode:]): Update for
2466             WebVideoFullscreenInterfaceAVKit::setupFullscreen change.
2467
2468         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add argument to setupFullscreen.
2469         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2470         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
2471
2472 2014-12-05  Shivakumar JM  <shiva.jm@samsung.com>
2473
2474         Fix build warning in WebCore/platform/graphics module
2475         https://bugs.webkit.org/show_bug.cgi?id=139290
2476
2477         Reviewed by Carlos Garcia Campos.
2478
2479         Fix a build warning by removing parameter name from function.
2480
2481         No new tests, no behavior change.
2482
2483         * platform/graphics/freetype/FontCacheFreeType.cpp:
2484         (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
2485
2486 2014-12-05  sungmin cho  <sungmin17.cho@lge.com>
2487
2488         GraphicsLayerTextureMapper: Rename parameter to be more clear
2489         https://bugs.webkit.org/show_bug.cgi?id=139288
2490
2491         Reviewed by Martin Robinson.
2492
2493         Rename 'media' to 'platformLayer'.
2494
2495         No new tests, no change in functionality.
2496
2497         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2498         (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
2499
2500 2014-12-04  Mark Rowe  <mrowe@apple.com>
2501
2502         Fix pre-Yosemite builds.
2503
2504         The #ifs in two SPI wrapper headers were incorrect, resulting in code being included
2505         prior to Yosemite that required Yosemite to compile.
2506
2507         * platform/spi/mac/NSSharingServicePickerSPI.h:
2508         * platform/spi/mac/NSSharingServiceSPI.h:
2509
2510 2014-12-02  Brian J. Burg  <burg@cs.washington.edu>
2511
2512         Web Inspector: timeline probe records have inaccurate per-probe hit counts
2513         https://bugs.webkit.org/show_bug.cgi?id=138976
2514
2515         Reviewed by Joseph Pecoraro.
2516
2517         Update the signature for breakpointActionProbe to take batchId and sampleId.
2518         Covered by existing test inspector-protocol/debugger/didSampleProbe-multiple-probes.html.
2519
2520         * inspector/InspectorTimelineAgent.cpp:
2521         (WebCore::InspectorTimelineAgent::breakpointActionProbe):
2522         * inspector/InspectorTimelineAgent.h:
2523         * inspector/TimelineRecordFactory.cpp:
2524         (WebCore::TimelineRecordFactory::createProbeSampleData):
2525         * inspector/TimelineRecordFactory.h:
2526
2527 2014-12-04  Adenilson Cavalcanti  <cavalcantii@gmail.com>
2528
2529         Groove/inset/outset borders show solid if the color is black
2530         https://bugs.webkit.org/show_bug.cgi?id=58608
2531
2532         Reviewed by Simon Fraser.
2533
2534         Test: fast/borders/mixed-border-style2.html
2535
2536         This patch will lighten/darken the border side colors, handling
2537         border decoration in a similar way as Firefox does.
2538
2539         * rendering/RenderObject.cpp:
2540         (WebCore::RenderObject::drawLineForBoxSide):
2541         (WebCore::RenderObject::calculateBorderStyleColor):
2542         * rendering/RenderObject.h:
2543
2544 2014-12-04  Chris Dumez  <cdumez@apple.com>
2545
2546         Move 'webkit-aspect-ratio' CSS property to the new StyleBuilder
2547         https://bugs.webkit.org/show_bug.cgi?id=139250
2548
2549         Reviewed by Sam Weinig.
2550
2551         Move 'aspect-ratio' CSS property to the new StyleBuilder by
2552         using custom code.
2553
2554         No new tests, no behavior change.
2555
2556         * css/CSSPropertyNames.in:
2557         * css/DeprecatedStyleBuilder.cpp:
2558         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2559         (WebCore::ApplyPropertyAspectRatio::applyInheritValue): Deleted.
2560         (WebCore::ApplyPropertyAspectRatio::applyInitialValue): Deleted.
2561         (WebCore::ApplyPropertyAspectRatio::applyValue): Deleted.
2562         (WebCore::ApplyPropertyAspectRatio::createHandler): Deleted.
2563         * css/StyleBuilderCustom.h:
2564         (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio):
2565         (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio):
2566         (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio):
2567
2568 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
2569
2570         Further fix the 32-bit build.
2571
2572         * page/mac/TextIndicatorWindow.mm:
2573         (WebCore::TextIndicatorWindow::setTextIndicator):
2574
2575 2014-12-04  Timothy Horton  <timothy_horton@apple.com>
2576
2577         Fix the 32-bit build.
2578
2579         * page/mac/TextIndicatorWindow.h:
2580         * page/mac/TextIndicatorWindow.mm:
2581         (WebCore::TextIndicatorWindow::setTextIndicator):
2582
2583 2014-12-04  Tim Horton  <timothy_horton@apple.com>
2584
2585         TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
2586         https://bugs.webkit.org/show_bug.cgi?id=139252
2587         <rdar://problem/19140827>
2588
2589         Reviewed by Anders Carlsson.
2590
2591         * WebCore.exp.in:
2592         * page/TextIndicator.cpp:
2593         (WebCore::TextIndicator::createWithSelectionInFrame):
2594         (WebCore::TextIndicator::TextIndicator):
2595         * page/TextIndicator.h:
2596         (WebCore::TextIndicator::selectionRectInWindowCoordinates):
2597         (WebCore::TextIndicator::textBoundingRectInWindowCoordinates):
2598         (WebCore::TextIndicator::selectionRectInScreenCoordinates): Deleted.
2599         (WebCore::TextIndicator::textBoundingRectInScreenCoordinates): Deleted.
2600         Go back to keeping the rects in "window" coordinates.
2601
2602         * page/mac/TextIndicatorWindow.h:
2603         * page/mac/TextIndicatorWindow.mm:
2604         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
2605         (WebCore::TextIndicatorWindow::setTextIndicator):
2606         Let callers pass in the contentRect instead of trying to share the code
2607         to compute it, since it needs to be different for legacy and modern WebKit.
2608
2609 2014-12-04  Oliver Hunt  <oliver@apple.com>
2610
2611         Serialization of MapData object provides unsafe access to internal types
2612         https://bugs.webkit.org/show_bug.cgi?id=138653
2613
2614         Reviewed by Geoffrey Garen.
2615
2616         We now keep the value portion of the key/value pair in MapData as a
2617         separate stack. This allows us to maintain the spec semantic of
2618         "atomic" serialisation of the key/value pair without retaining the
2619         use of a potentially invalid iterator.
2620
2621         * bindings/js/SerializedScriptValue.cpp:
2622         (WebCore::CloneSerializer::serialize):
2623
2624 2014-12-04  Radu Stavila  <stavila@adobe.com>
2625
2626         [SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
2627         https://bugs.webkit.org/show_bug.cgi?id=139092
2628
2629         Reviewed by Simon Fraser.
2630
2631         This patch improves the -webkit-mask-image property by allowing it to reference
2632         a <mask> element defined in an inline or external SVG document.
2633         Up until now, each image to be used as a mask consisted of a FillLayer object 
2634         whose m_image member represented the mask. Now, in order to accomodate
2635         <mask> elements referenced by a fragment identifier (e.g. file.svg#mask1)
2636         a new class was created (MaskImageOperation) and added as a member of the 
2637         FillLayer. As such, from now on, all FillLayer objects used for masking will
2638         store the masking information in this new member.
2639         When parsing the -webkit-mask-image property (or the -webkit-mask shorthand)
2640         a new MaskImageOperation object is created for each image. If the value represents
2641         an external URL, a pending SVG document will be created which will be loaded 
2642         during the phase that loads the pending resources. When the download is complete,
2643         the MaskImageOperation is notified by the CachedSVGDocument class and checks if
2644         the received download is a valid SVG and the requested fragment identifier
2645         actually exists and identifies a <mask> element. If it does, that element's
2646         renderer (of type RenderSVGResourceMasker) will be used when painting the mask layers.
2647         Otherwise, the MaskImageOperation class will use the already downloaded data 
2648         buffer to create a CachedImage from it and use that instead, basically emulating
2649         the previous behavior, when only images were accepted. This ensures that all existing
2650         behavior, like painting entire SVGs, painting normal images (e.g. PNG/JPG), painting
2651         generated images (e.g. linear-gradient) works as it did before.
2652
2653         No new tests required, this patch doesn't change any current functionality. 
2654         It only adds support for referencing <mask> elements for the -webkit-mask-image 
2655         property. This is sub-part 1 of the bigger patch https://bugs.webkit.org/show_bug.cgi?id=129682.
2656
2657         * CMakeLists.txt:
2658         * WebCore.vcxproj/WebCore.vcxproj:
2659         * WebCore.vcxproj/WebCore.vcxproj.filters:
2660         * WebCore.xcodeproj/project.pbxproj:
2661         * css/CSSValue.cpp:
2662         (WebCore::CSSValue::cssText):
2663         (WebCore::CSSValue::destroy):
2664         * css/CSSValue.h:
2665         (WebCore::CSSValue::isWebKitCSSResourceValue):
2666         * css/StyleResolver.cpp:
2667         (WebCore::StyleResolver::State::clear):
2668         (WebCore::StyleResolver::createMaskImageOperations):
2669         * css/StyleResolver.h:
2670         (WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments):
2671         * css/WebKitCSSResourceValue.cpp: Added.
2672         (WebCore::WebKitCSSResourceValue::WebKitCSSResourceValue):
2673         (WebCore::WebKitCSSResourceValue::customCSSText):
2674         (WebCore::WebKitCSSResourceValue::isCSSValueNone):
2675         * css/WebKitCSSResourceValue.h: Added.
2676         (WebCore::WebKitCSSResourceValue::create):
2677         (WebCore::WebKitCSSResourceValue::innerValue):
2678         * loader/cache/CachedResourceLoader.cpp:
2679         (WebCore::CachedResourceLoader::addCachedResource):
2680         * loader/cache/CachedResourceLoader.h:
2681         * loader/cache/CachedSVGDocument.cpp:
2682         (WebCore::CachedSVGDocument::CachedSVGDocument):
2683         (WebCore::CachedSVGDocument::finishLoading):
2684         * loader/cache/CachedSVGDocument.h:
2685         * loader/cache/CachedSVGDocumentReference.cpp:
2686         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
2687         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
2688         (WebCore::CachedSVGDocumentReference::load):
2689         * loader/cache/CachedSVGDocumentReference.h:
2690         * page/FrameView.cpp:
2691         (WebCore::FrameView::isSVGDocument):
2692         * page/FrameView.h:
2693         * page/Page.cpp:
2694         (WebCore::Page::createPageFromBuffer):
2695         * page/Page.h:
2696         * platform/ScrollView.h:
2697         (WebCore::ScrollView::isSVGDocument):
2698         * platform/graphics/MaskImageOperation.cpp: Added.
2699         (WebCore::MaskImageOperation::create):
2700         (WebCore::MaskImageOperation::MaskImageOperation):
2701         (WebCore::MaskImageOperation::~MaskImageOperation):
2702         (WebCore::MaskImageOperation::isCSSValueNone):
2703         (WebCore::MaskImageOperation::cssValue):
2704         (WebCore::MaskImageOperation::isMaskLoaded):
2705         (WebCore::MaskImageOperation::setRenderLayerImageClient):
2706         (WebCore::MaskImageOperation::addRendererImageClient):
2707         (WebCore::MaskImageOperation::removeRendererImageClient):
2708         (WebCore::MaskImageOperation::getOrCreateCachedSVGDocumentReference):
2709         (WebCore::MaskImageOperation::notifyFinished): This is the method that gets called when the document has finished 
2710         downloading and checks if it can find a valid <mask> element.
2711         (WebCore::MaskImageOperation::drawMask):
2712         (WebCore::MaskImageOperation::getSVGMasker):
2713         * platform/graphics/MaskImageOperation.h: Added.
2714         * rendering/RenderBoxModelObject.cpp: The BackgroundImageGeometry class was moved out of RenderBoxModelObject in 
2715         order to be used as a parameter for other methods. This was necessary to avoid having methods with very many parameters.
2716         (WebCore::BackgroundImageGeometry::setNoRepeatX):
2717         (WebCore::BackgroundImageGeometry::setNoRepeatY):
2718         (WebCore::BackgroundImageGeometry::useFixedAttachment):
2719         (WebCore::BackgroundImageGeometry::clip):
2720         (WebCore::BackgroundImageGeometry::relativePhase):
2721         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX): Deleted.
2722         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY): Deleted.
2723         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment): Deleted.
2724         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip): Deleted.
2725         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase): Deleted.
2726         * rendering/RenderBoxModelObject.h:
2727         (WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
2728         (WebCore::BackgroundImageGeometry::destOrigin):
2729         (WebCore::BackgroundImageGeometry::setDestOrigin):
2730         (WebCore::BackgroundImageGeometry::destRect):
2731         (WebCore::BackgroundImageGeometry::setDestRect):
2732         (WebCore::BackgroundImageGeometry::phase):
2733         (WebCore::BackgroundImageGeometry::setPhase):
2734         (WebCore::BackgroundImageGeometry::tileSize):
2735         (WebCore::BackgroundImageGeometry::setTileSize):
2736         (WebCore::BackgroundImageGeometry::spaceSize):
2737         (WebCore::BackgroundImageGeometry::setSpaceSize):
2738         (WebCore::BackgroundImageGeometry::setPhaseX):
2739         (WebCore::BackgroundImageGeometry::setPhaseY):
2740         (WebCore::BackgroundImageGeometry::setHasNonLocalGeometry):
2741         (WebCore::BackgroundImageGeometry::hasNonLocalGeometry):
2742         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
2743         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin): Deleted.
2744         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin): Deleted.
2745         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect): Deleted.
2746         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect): Deleted.
2747         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase): Deleted.
2748         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase): Deleted.
2749         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize): Deleted.
2750         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize): Deleted.
2751         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize): Deleted.
2752         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize): Deleted.
2753         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX): Deleted.
2754         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY): Deleted.
2755         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.
2756         (WebCore::RenderBoxModelObject::BackgroundImageGeometry::hasNonLocalGeometry): Deleted.
2757         * rendering/RenderLayer.cpp:
2758         (WebCore::RenderLayer::RenderLayer):
2759         (WebCore::RenderLayer::~RenderLayer):
2760         * rendering/RenderLayer.h:
2761         * rendering/RenderLayerMaskImageInfo.cpp: Added.
2762         (WebCore::RenderLayer::MaskImageInfo::layerToMaskMap): Returns a static map that links MaskImageInfo objects to RenderLayers.
2763         (WebCore::RenderLayer::MaskImageInfo::getIfExists): Returns the MaskImageInfo associated with a specific RenderLayer.
2764         (WebCore::RenderLayer::MaskImageInfo::get): Returns the MaskImageInfo associated with a specific RenderLayer (creates it if necessary).
2765         (WebCore::RenderLayer::MaskImageInfo::remove): Removes the MaskImageInfo associated with a specific RenderLayer.
2766         (WebCore::RenderLayer::MaskImageInfo::MaskImageInfo):
2767         (WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
2768         (WebCore::RenderLayer::MaskImageInfo::notifyFinished): Gets called when the SVG document finished loading, triggers repaint.
2769         (WebCore::RenderLayer::MaskImageInfo::imageChanged): Gets called when the image object changed, triggers repaint.
2770         (WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Goes through all mask layers and sets image/SVG clients. 
2771         Updates list of internal and external SVG references.
2772         (WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Removes all image/SVG clients and clears lists of internal and external SVG references.
2773         * rendering/RenderLayerMaskImageInfo.h: Added.
2774         * rendering/RenderObject.h:
2775         (WebCore::RenderObject::isRenderSVGResourceMasker):
2776         * rendering/style/FillLayer.cpp:
2777         (WebCore::FillLayer::FillLayer):
2778         (WebCore::FillLayer::operator=):
2779         (WebCore::FillLayer::operator==):
2780         (WebCore::FillLayer::cullEmptyLayers):
2781         (WebCore::FillLayer::hasNonEmptyMaskImage):
2782         (WebCore::FillLayer::imagesAreLoaded):
2783         * rendering/style/FillLayer.h:
2784         (WebCore::FillLayer::maskImage):
2785         (WebCore::FillLayer::imageOrMaskImage):
2786         (WebCore::FillLayer::setMaskImage):
2787         (WebCore::FillLayer::clearMaskImage):
2788         (WebCore::FillLayer::hasMaskImage):
2789         * rendering/svg/RenderSVGResourceMasker.cpp:
2790         (WebCore::RenderSVGResourceMasker::applySVGMask):
2791         (WebCore::RenderSVGResourceMasker::applyResource):
2792         (WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
2793         * rendering/svg/RenderSVGResourceMasker.h:
2794         * svg/SVGMaskElement.cpp:
2795         (WebCore::SVGMaskElement::createElementRenderer):
2796         (WebCore::SVGMaskElement::addClientRenderLayer):
2797         (WebCore::SVGMaskElement::removeClientRenderLayer):
2798         * svg/SVGMaskElement.h:
2799         * svg/SVGUseElement.cpp:
2800         (WebCore::SVGUseElement::setCachedDocument):
2801         * svg/graphics/SVGImage.cpp:
2802         (WebCore::SVGImage::dataChanged):
2803
2804 2014-12-04  Commit Queue  <commit-queue@webkit.org>
2805
2806         Unreviewed, rolling out r176789.
2807         https://bugs.webkit.org/show_bug.cgi?id=139255
2808
2809         Broke the non Mac-WK2 builds (Requested by stavila on
2810         #webkit).
2811
2812         Reverted changeset:
2813
2814         "Remove isSpecifiedFont boolean from FontDescription"
2815         https://bugs.webkit.org/show_bug.cgi?id=139233
2816         http://trac.webkit.org/changeset/176789
2817
2818 2014-12-03  Antti Koivisto  <antti@apple.com>
2819
2820         Remove isSpecifiedFont boolean from FontDescription
2821         https://bugs.webkit.org/show_bug.cgi?id=139233
2822
2823         Reviewed by Andreas Kling.
2824
2825         It is barely used.
2826
2827         * css/StyleBuilderCustom.h:
2828         (WebCore::StyleBuilderCustom::applyInheritFontFamily):
2829         (WebCore::StyleBuilderCustom::applyValueFontFamily):
2830         * platform/graphics/FontDescription.cpp:
2831         (WebCore::genericFamiliesSet):
2832         (WebCore::FontDescription::hasGenericFirstFamily):
2833
2834             Add a function to test for generic families.
2835
2836         * platform/graphics/FontDescription.h:
2837         (WebCore::FontDescription::FontDescription):
2838         (WebCore::FontDescription::setTextRenderingMode):
2839         (WebCore::FontDescription::operator==):
2840         (WebCore::FontDescription::isSpecifiedFont): Deleted.
2841         (WebCore::FontDescription::setIsSpecifiedFont): Deleted.
2842         * rendering/RenderText.cpp:
2843         (WebCore::RenderText::computeUseBackslashAsYenSymbol):
2844
2845             This is the only client.
2846             Figure out the equivalent information dynamically if needed.
2847
2848 2014-12-03  Joonghun Park  <jh718.park@samsung.com>
2849
2850         Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard
2851         https://bugs.webkit.org/show_bug.cgi?id=139019
2852
2853         Reviewed by Darin Adler.
2854
2855         No new tests, no behavior changes.
2856
2857         * dom/DataTransfer.cpp:
2858         (WebCore::DataTransfer::DataTransfer):
2859         * dom/DataTransfer.h:
2860         * editing/Editor.cpp:
2861         (WebCore::Editor::dispatchCPPEvent):
2862         * page/mac/EventHandlerMac.mm:
2863         (WebCore::EventHandler::createDraggingDataTransfer):
2864         * platform/Pasteboard.h:
2865         * platform/efl/PasteboardEfl.cpp:
2866         (WebCore::Pasteboard::createForCopyAndPaste):
2867         (WebCore::Pasteboard::createPrivate):
2868         (WebCore::Pasteboard::createForDragAndDrop):
2869         * platform/gtk/PasteboardGtk.cpp:
2870         (WebCore::Pasteboard::createForCopyAndPaste):
2871         (WebCore::Pasteboard::createForGlobalSelection):
2872         (WebCore::Pasteboard::createPrivate):
2873         (WebCore::Pasteboard::createForDragAndDrop):
2874         (WebCore::Pasteboard::create): Deleted.
2875         * platform/ios/PasteboardIOS.mm:
2876         (WebCore::Pasteboard::createForCopyAndPaste):
2877         (WebCore::Pasteboard::createPrivate):
2878         * platform/mac/PasteboardMac.mm:
2879         (WebCore::Pasteboard::createForCopyAndPaste):
2880         (WebCore::Pasteboard::createPrivate):
2881         (WebCore::Pasteboard::createForDragAndDrop):
2882         (WebCore::Pasteboard::create): Deleted.
2883         * platform/win/PasteboardWin.cpp:
2884         (WebCore::Pasteboard::createForCopyAndPaste):
2885         (WebCore::Pasteboard::createPrivate):
2886         (WebCore::Pasteboard::createForDragAndDrop):
2887
2888 2014-12-03  Benjamin Poulain  <bpoulain@apple.com>
2889
2890         Get rid of FrameLoaderClient::dispatchWillRequestResource
2891         https://bugs.webkit.org/show_bug.cgi?id=139235
2892
2893         Reviewed by Alexey Proskuryakov.
2894
2895         It is useless.
2896
2897         * loader/FrameLoaderClient.h:
2898         (WebCore::FrameLoaderClient::dispatchWillRequestResource): Deleted.
2899         * loader/cache/CachedResourceLoader.cpp:
2900         (WebCore::CachedResourceLoader::requestResource):
2901
2902 2014-12-03  Myles C. Maxfield  <mmaxfield@apple.com>
2903
2904         List markers in RTL languages do not draw the first character.
2905         https://bugs.webkit.org/show_bug.cgi?id=139244
2906
2907         Reviewed by Simon Fraser.
2908
2909         Off-by-one error when reversing the string (from LTR to RTL)
2910
2911         Test: fast/lists/rtl-marker.html
2912
2913         * rendering/RenderListMarker.cpp:
2914         (WebCore::RenderListMarker::paint):
2915
2916 2014-12-03  Beth Dakin  <bdakin@apple.com>
2917
2918         <input> elements get whitespace action menu instead of editable text menu
2919         https://bugs.webkit.org/show_bug.cgi?id=139241
2920         -and corresponding-
2921         rdar://problem/19072083
2922
2923         Reviewed by Sam Weinig.
2924
2925         Since we will hit test form controls as form controls, we need a new function to 
2926         determine if the hit point is over text inside that form control or not.
2927         * WebCore.exp.in:
2928         * rendering/HitTestResult.cpp:
2929         (WebCore::HitTestResult::isOverTextInsideFormControlElement):
2930         * rendering/HitTestResult.h:
2931
2932 2014-12-03  Tim Horton  <timothy_horton@apple.com>
2933
2934         Keyboard input should be disabled in the preview popover
2935         https://bugs.webkit.org/show_bug.cgi?id=139219
2936         <rdar://problem/19052381>
2937
2938         Reviewed by Anders Carlsson.
2939
2940         * page/ChromeClient.h:
2941         (WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
2942         * page/EventHandler.cpp:
2943         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
2944         Allow ChromeClient to disable the dispatch of "fake" mouseMove events
2945         that happens during scrolling.
2946
2947 2014-12-03  Antti Koivisto  <antti@apple.com>
2948
2949         Remove genericFamily enum from FontDescription
2950         https://bugs.webkit.org/show_bug.cgi?id=139207
2951
2952         Reviewed by Andreas Kling.
2953
2954         We use predefined AtomicStrings for generic families. The side enum adds no information.
2955
2956         * css/CSSFontSelector.cpp:
2957         (WebCore::resolveGenericFamily):
2958         (WebCore::CSSFontSelector::getFontData):
2959
2960             Match the existing quirk where the default font can be replaced by @font-face rule but user generic families can't.
2961
2962         (WebCore::CSSFontSelector::resolvesFamilyFor):
2963         (WebCore::fontDataForGenericFamily): Deleted.
2964         * css/DeprecatedStyleBuilder.cpp:
2965         (WebCore::ApplyPropertyFontFamily::applyInheritValue):
2966         (WebCore::ApplyPropertyFontFamily::applyInitialValue):
2967         (WebCore::ApplyPropertyFontFamily::applyValue):
2968         * css/StyleResolver.cpp:
2969         (WebCore::StyleResolver::checkForGenericFamilyChange):
2970
2971             Remove the explicit monospace check, earlier useFixedDefaultSize check is equivalent.
2972
2973         (WebCore::StyleResolver::initializeFontStyle):
2974         * platform/graphics/FontDescription.h:
2975         (WebCore::FontDescription::FontDescription):
2976         (WebCore::FontDescription::useFixedDefaultSize):
2977         (WebCore::FontDescription::setWeight):
2978         (WebCore::FontDescription::equalForTextAutoSizing):
2979         (WebCore::FontDescription::operator==):
2980         (WebCore::FontDescription::genericFamily): Deleted.
2981         (WebCore::FontDescription::setGenericFamily): Deleted.
2982         * platform/mac/ThemeMac.mm:
2983         (WebCore::ThemeMac::controlFont):
2984         * rendering/RenderTheme.cpp:
2985         (WebCore::RenderTheme::adjustStyle):
2986
2987             Reset the lineheight unconditionally for buttons.
2988             This always happened before because the explicitly set generic family made the font compare false.
2989
2990         * rendering/RenderThemeIOS.mm:
2991         (WebCore::RenderThemeIOS::systemFont):
2992         * rendering/RenderThemeMac.mm:
2993         (WebCore::RenderThemeMac::systemFont):
2994         (WebCore::RenderThemeMac::setFontFromControlSize):
2995         * style/StyleResolveForDocument.cpp:
2996         (WebCore::Style::resolveForDocument):
2997
2998             Resolve document style for final value immediately as it can't be affected by @font-face rules.
2999
3000 2014-12-03  Zalan Bujtas  <zalan@apple.com>
3001
3002         ASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when column spanner's parent is not a RenderBlockFlow.
3003         https://bugs.webkit.org/show_bug.cgi?id=139188
3004         rdar://problem/18502182
3005
3006         Reviewed by David Hyatt.
3007
3008         This patch ensures that the validation check for spanner in isValidColumnSpanner() is in synch
3009         with the expectation in RenderMultiColumnFlowThread::processPossibleSpannerDescendant().
3010         (descendant's parent is expected to be a RenderBlockFlow)
3011
3012         Test: fast/multicol/svg-content-as-column-spanner-crash.html
3013
3014         * rendering/RenderMultiColumnFlowThread.cpp:
3015         (WebCore::isValidColumnSpanner):
3016
3017 2014-12-03  peavo@outlook.com  <peavo@outlook.com>
3018
3019         [TexMap] Redundant method in GraphicsLayerTextureMapper.
3020         https://bugs.webkit.org/show_bug.cgi?id=138005
3021
3022         Reviewed by Alex Christensen.
3023
3024         The TextureMapperLayer method descendantsOrSelfHaveRunningAnimations() can be used
3025         instead of the GraphicsLayerTextureMapper method startedAnimation().
3026
3027         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3028         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
3029         (WebCore::GraphicsLayerTextureMapper::addAnimation):
3030         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3031
3032 2014-12-03  Jeremy Jones  <jeremyj@apple.com>
3033
3034         Subtitle menu should only appear when useful.
3035         https://bugs.webkit.org/show_bug.cgi?id=139133
3036
3037         Reviewed by Eric Carlson.
3038
3039         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3040         (-[WebAVPlayerController hasLegibleMediaSelectionOptions]): only enable when there are non default options.
3041         (-[WebAVPlayerController hasAudioMediaSelectionOptions]): only enable when there is more than one option.
3042
3043 2014-12-03  Joanmarie Diggs  <jdiggs@igalia.com>
3044
3045         AX: [ATK] Inline text elements with accessible object attributes and/or event handlers are not exposed
3046         https://bugs.webkit.org/show_bug.cgi?id=139071
3047
3048         Reviewed by Chris Fleizach.
3049
3050         Adds a new InlineRole accessibility role type for non-focusable inline
3051         elements which have an event handler or attribute suggesting possible
3052         inclusion by the platform. This is mapped to ATK_ROLE_STATIC for GTK and
3053         EFL. On the Mac, it is currently ignored to preserve existing behavior.
3054
3055         Added new test cases to the existing roles-exposed.html test.
3056
3057         * accessibility/AccessibilityObject.cpp:
3058         (WebCore::AccessibilityObject::supportsDatetimeAttribute): Added.
3059         * accessibility/AccessibilityObject.h: Added InlineRole.
3060         * accessibility/AccessibilityRenderObject.cpp:
3061         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Handle InlineRole.
3062         * accessibility/atk/AccessibilityObjectAtk.cpp:
3063         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Include InlineRole objects.
3064         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3065         (atkRole):
3066         * accessibility/mac/AccessibilityObjectMac.mm:
3067         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore InlineRole objects.
3068         * html/HTMLTagNames.in: Added 'time'.
3069
3070 2014-12-03  Jer Noble  <jer.noble@apple.com>
3071
3072         [Mac] Hang when calling -[AVAsset resolvedURL].
3073         https://bugs.webkit.org/show_bug.cgi?id=139223
3074
3075         Reviewed by Eric Carlson.
3076
3077         On a particularly slow-loading site, a call to -[AVAsset resolvedURL] can take an arbitrarily long
3078         time. Treat this AVAsset property similar to other "metadata" properties, and check the load status
3079         of the property before requesting it.
3080
3081         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3082         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check the load state of -resolvedURL.
3083         (WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL): Ditto.
3084         (WebCore::assetMetadataKeyNames): Add @"resolvedURL".
3085
3086 2014-12-03  Csaba Osztrogonác  <ossy@webkit.org>
3087
3088         URTBF after r176721 to fix ENABLE(CSS_DEVICE_ADAPTATION) build.
3089
3090         * css/CSSParser.cpp:
3091         (WebCore::CSSParser::parseViewportProperty):
3092
3093 2014-12-03  Chris Dumez  <cdumez@apple.com>
3094
3095         Move 'display' CSS property to the new StyleBuilder
3096         https://bugs.webkit.org/show_bug.cgi?id=139218
3097
3098         Reviewed by Antti Koivisto.
3099
3100         Move 'display' CSS property to the new StyleBuilder.
3101
3102         No new tests, no behavior change.
3103
3104         * css/CSSPropertyNames.in:
3105         * css/DeprecatedStyleBuilder.cpp:
3106         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3107         (WebCore::ApplyPropertyDisplay::isValidDisplayValue): Deleted.
3108         (WebCore::ApplyPropertyDisplay::applyInheritValue): Deleted.
3109         (WebCore::ApplyPropertyDisplay::applyInitialValue): Deleted.
3110         (WebCore::ApplyPropertyDisplay::applyValue): Deleted.
3111         (WebCore::ApplyPropertyDisplay::createHandler): Deleted.
3112         * css/StyleBuilderCustom.h:
3113         (WebCore::StyleBuilderCustom::isValidDisplayValue):
3114         (WebCore::StyleBuilderCustom::applyInheritDisplay):
3115         (WebCore::StyleBuilderCustom::applyValueDisplay):
3116         * css/makeprop.pl:
3117         Add support for passing multiple values for Custom option, e.g.:
3118         'Custom=Inherit|Value'. This was useful as we did not need custom
3119         code for display's initial value.
3120
3121 2014-12-03  Chris Dumez  <cdumez@apple.com>
3122
3123         Modernize the CSSParser code
3124         https://bugs.webkit.org/show_bug.cgi?id=139209
3125
3126         Reviewed by Antti Koivisto.
3127
3128         Modernize the CSSParser code by:
3129         - Using more references instead of pointers
3130         - Using nullptr instead of 0
3131
3132         No new tests, no behavior change.
3133
3134 2014-12-03  David Kilzer  <ddkilzer@apple.com>
3135
3136         [iOS] REGRESSION (r176622): WebCore fails to link
3137
3138         Speculative fix for the following build failure:
3139
3140             Ld WebCore
3141             Undefined symbols for architecture armv7s:
3142               "__ZN3JSC10IdentifierC1EPNS_9ExecStateERKN3WTF12AtomicStringE", referenced from:
3143                   __ZN7WebCoreL24createAccelerationObjectEPKNS_16DeviceMotionData12AccelerationEPN3JSC9ExecStateE in JSDeviceMotionEventCustom.o
3144
3145         * bindings/js/JSDeviceMotionEventCustom.cpp: Include
3146         <runtime/IdentifierInlines.h> to define missing symbol.
3147
3148 2014-12-02  Dean Jackson  <dino@apple.com>
3149
3150         [Media] Audio content shouldn't have fullscreen buttons, even if in a video element
3151         https://bugs.webkit.org/show_bug.cgi?id=139200
3152         <rdar://problem/18914506>
3153
3154         Reviewed by Eric Carlson.
3155
3156         An audio-only resource, even if loaded into a <video> element, should not
3157         present the fullscreen or optimised fullscreen controls. This includes a
3158         MediaDocument, which is always a <video> element. We can detect this by
3159         examining the length of the videoTracks property as our content loads.
3160
3161         Test: media/audio-as-video-fullscreen.html
3162
3163         * Modules/mediacontrols/mediaControlsApple.js:
3164         (Controller): Initialize a hasVisualMedia to false.
3165         (Controller.prototype.handleReadyStateChange): If we see a videoTrack, hasVisualMedia is now true.
3166         (Controller.prototype.updateFullscreenButtons): Merge the updateFullscreenButton and
3167         updateOptimizedFullscreenButton methods into this single spot, and check for
3168         hasVisualMedia.
3169         (Controller.prototype.updateFullscreenButton): Deleted.
3170         (Controller.prototype.updateOptimizedFullscreenButton): Deleted.
3171
3172         * Modules/mediacontrols/mediaControlsBase.js: Do the same for the other ports.
3173
3174 2014-12-02  Dean Jackson  <dino@apple.com>
3175
3176         Missing support for innerHTML on SVGElement
3177         https://bugs.webkit.org/show_bug.cgi?id=136903
3178
3179         Unreviewed followup from r176630. Minor style nits that I missed in my review.
3180
3181         * dom/Element.h: Remove unnecessary parameter name.
3182         * html/parser/HTMLTreeBuilder.cpp: Whitespace cleanup.
3183         (WebCore::HTMLTreeBuilder::adjustedCurrentStackItem):
3184
3185 2014-12-03  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3186
3187         [EFL] Add subtle crypto to the build system
3188         https://bugs.webkit.org/show_bug.cgi?id=138612
3189
3190         Reviewed by Csaba Osztrogonác.
3191
3192         It is obvious to make Efl use GnuTLS as well,
3193         and since there seems no reason why to separate
3194         Efl and Gtk implementations from each other, I
3195         also propose renaming the gtk directory and file
3196         suffixes to gnutls.
3197
3198         No new tests needed.
3199
3200         * PlatformEfl.cmake:
3201         * PlatformGTK.cmake:
3202         * crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp.
3203         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
3204         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
3205         * crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp.
3206         (WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
3207         (WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
3208         * crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmHMACGtk.cpp.
3209         (WebCore::getGnutlsDigestAlgorithm):
3210         (WebCore::calculateSignature):
3211         (WebCore::CryptoAlgorithmHMAC::platformSign):
3212         (WebCore::CryptoAlgorithmHMAC::platformVerify):
3213         * crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp.
3214         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
3215         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
3216         * crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp.
3217         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
3218         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
3219         * crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp.
3220         (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
3221         (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
3222         * crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoAlgorithmRegistryGtk.cpp.
3223         (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
3224         * crypto/gnutls/CryptoDigestGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoDigestGtk.cpp.
3225         (WebCore::CryptoDigest::CryptoDigest):
3226         (WebCore::CryptoDigest::~CryptoDigest):
3227         (WebCore::CryptoDigest::create):
3228         (WebCore::CryptoDigest::addBytes):
3229         (WebCore::CryptoDigest::computeHash):
3230         * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/CryptoKeyRSAGtk.cpp.
3231         (WebCore::CryptoKeyRSA::CryptoKeyRSA):
3232         (WebCore::CryptoKeyRSA::create):
3233         (WebCore::CryptoKeyRSA::~CryptoKeyRSA):
3234         (WebCore::CryptoKeyRSA::restrictToHash):
3235         (WebCore::CryptoKeyRSA::isRestrictedToHash):
3236         (WebCore::CryptoKeyRSA::keySizeInBits):
3237         (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
3238         (WebCore::CryptoKeyRSA::exportData):
3239         (WebCore::CryptoKeyRSA::generatePair):
3240         * crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp: Renamed from Source/WebCore/crypto/gtk/SerializedCryptoKeyWrapGtk.cpp.
3241         (WebCore::getDefaultWebCryptoMasterKey):
3242         (WebCore::wrapSerializedCryptoKey):
3243         (WebCore::unwrapSerializedCryptoKey):
3244         * crypto/keys/CryptoKeyRSA.h:
3245
3246 2014-12-02  Benjamin Poulain  <benjamin@webkit.org>
3247
3248         Little cleanup of the default stylesheet
3249         https://bugs.webkit.org/show_bug.cgi?id=139168
3250
3251         Reviewed by Antti Koivisto.
3252
3253         The default stylesheet has a lot of historical junk that need cleaning. This patch addresses
3254         only the bits that do not change behaviors and have positive perf and readability impact.
3255
3256         I have limited :matches() to attributes for now. The idea is to only target
3257         simple selectors that are not used for filtering by the collectors.
3258         We should eventually clean up more cases, one thing at a time.
3259
3260         Tests: fast/css/map-tag-default-display.html
3261                fast/selectors/map-tag-default-display.html
3262
3263         * css/html.css:
3264         (map): Deleted.
3265         map was explicitely setting its display to inline. Remove that since it is the default.
3266
3267         (head): Deleted.
3268         (meta): Deleted.
3269         (title): Deleted.
3270         (link): Deleted.
3271         (style): Deleted.
3272         (script): Deleted.
3273         (div): Deleted.
3274         (layer): Deleted.
3275         (article, aside, footer, header, hgroup, main, nav, section): Deleted.
3276         (address): Deleted.
3277         (head, link, meta, script, style, title):
3278         (address, article, aside, div, footer, header, hgroup, layer, main, nav, section):
3279         Group the standard blocks in a single rule.
3280
3281         (input:matches([type="hidden"], [type="image"], [type="file"])):
3282         (input:matches([type="radio"], [type="checkbox"])):
3283         (input:matches([type="button"], [type="submit"], [type="reset"])):
3284         (input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button):
3285         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active):
3286         (input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active):
3287         (input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled):
3288         (input:matches([type="checkbox"], [type="radio"]):checked):
3289         (input:matches([type="checkbox"], [type="radio"]):checked:disabled):
3290         (select:matches([size], [multiple], [size][multiple])):
3291         (select:matches([size="0"], [size="1"])):
3292         (input[type="hidden"], input[type="image"], input[type="file"]): Deleted.
3293         (input[type="radio"], input[type="checkbox"]): Deleted.
3294         (input[type="button"], input[type="submit"], input[type="reset"]): Deleted.
3295         (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button): Deleted.
3296         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): Deleted.
3297         (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active): Deleted.
3298         (input[type="button"]:active:disabled, input[type="submit"]:active:disabled, input[type="reset"]:active:disabled, input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled): Deleted.
3299         (input[type="checkbox"]:checked, input[type="radio"]:checked): Deleted.
3300         (input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled): Deleted.
3301         (select[size][multiple]): Deleted.
3302         (select[size="1"]): Deleted.
3303         Group every selector lists that only differentiates complex selectors through attributes
3304         into a simple complex selector with :matches().
3305
3306 2014-12-02  Mark Lam  <mark.lam@apple.com>
3307
3308         Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
3309         https://bugs.webkit.org/show_bug.cgi?id=138821
3310
3311         Not reviewed.
3312
3313         * bindings/js/SerializedScriptValue.cpp:
3314         (WebCore::CloneDeserializer::deserializeString):
3315         * editing/TextIterator.cpp:
3316         (WebCore::SearchBuffer::isBadMatch):
3317         * page/mac/ServicesOverlayController.mm:
3318         (WebCore::ServicesOverlayController::buildSelectionHighlight):
3319         * platform/graphics/SegmentedFontData.cpp:
3320         (WebCore::SegmentedFontData::fontDataForCharacter):
3321         (WebCore::SegmentedFontData::containsCharacter):
3322         (WebCore::SegmentedFontData::isLoading):
3323         * platform/graphics/WOFFFileFormat.cpp:
3324         (WebCore::convertWOFFToSfnt):
3325         * platform/graphics/cairo/GradientCairo.cpp:
3326         (WebCore::Gradient::platformGradient):
3327         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3328         (WebCore::GIFImageDecoder::clearFrameBufferCache):
3329         * rendering/RenderBox.cpp:
3330         (WebCore::RenderBox::paintFillLayers):
3331         * rendering/style/GridResolvedPosition.cpp:
3332         (WebCore::firstNamedGridLineBeforePosition):
3333         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
3334         * svg/SVGFontElement.cpp:
3335         (WebCore::kerningForPairOfStringsAndGlyphs):
3336         * svg/SVGPathByteStream.h:
3337         (WebCore::SVGPathByteStream::append):
3338         * xml/XPathNodeSet.h:
3339         (WebCore::XPath::NodeSet::begin):
3340         (WebCore::XPath::NodeSet::end):
3341
3342 2014-12-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3343
3344         Fix build break EFL port since r176696
3345         https://bugs.webkit.org/show_bug.cgi?id=139215
3346
3347         Unreviewed, build fix for EFL port.
3348
3349         * storage/StorageNamespaceProvider.h: Include SecurityOriginHash.h from WebCore/page directory.
3350
3351 2014-12-02  Joanmarie Diggs  <jdiggs@igalia.com>
3352
3353         AX: [ATK] Table captions and table rows are missing from the accessible hierarchy
3354         https://bugs.webkit.org/show_bug.cgi?id=139005
3355
3356         Reviewed by Chris Fleizach.
3357
3358         Expose table captions and rows via ATK. Accomplishing the former is done
3359         by role mapping and inclusion of the object as a child of the table for
3360         ATK. Accomplishing the latter was mostly a matter of deleting all the ATK
3361         platform code that had been forcing rows to be ignored. Because captions
3362         are not being exposed on the Mac, they are now explicitly being ignored
3363         for that platform.
3364
3365         Tests: accessibility/aria-table-hierarchy.html
3366                accessibility/table-hierarchy.html
3367
3368         * accessibility/AccessibilityObject.h:
3369         * accessibility/AccessibilityRenderObject.cpp:
3370         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Added CaptionRole.
3371         * accessibility/AccessibilityTable.cpp:
3372         (WebCore::AccessibilityTable::addChildren): Include non-ignored captions as table children.
3373         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3374         (webkitAccessibleGetNChildren): Removed special handling for tables.
3375         (webkitAccessibleRefChild): Removed special handling for tables.
3376         (webkitAccessibleGetIndexInParent): Removed special handling for table cells.
3377         (atkRole): Corrected broken mapping for RowRole.
3378         (getNChildrenForTable): Deleted.
3379         (getChildForTable): Deleted.
3380         (getIndexInParentForCellInRow): Deleted.
3381         * accessibility/mac/AccessibilityObjectMac.mm:
3382         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore captions as table children.
3383
3384 2014-12-02  Alexey Proskuryakov  <ap@apple.com>
3385
3386         http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
3387         https://bugs.webkit.org/show_bug.cgi?id=139149
3388
3389         Reviewed by Anders Carlsson.
3390
3391         * WebCore.exp.in: Added ApplicationCache::deleteAllCaches.
3392
3393         * loader/appcache/ApplicationCache.h:
3394         * loader/appcache/ApplicationCache.cpp:
3395         (WebCore::ApplicationCache::deleteAllCaches): Added.
3396
3397         * loader/appcache/ApplicationCacheStorage.cpp:
3398         (WebCore::ApplicationCacheStorage::getManifestURLs): Removed logging. It is OK to
3399         have this function called when there is no database file.
3400
3401         * loader/appcache/ApplicationCacheStorage.h: Renamed manifestURLs to getManifestURLs,
3402         because WebKit style.
3403
3404 2014-12-02  Tim Horton  <timothy_horton@apple.com>
3405
3406         Remove a SnowLeopard-era quirk for QuickLook
3407         https://bugs.webkit.org/show_bug.cgi?id=139208
3408         <rdar://problem/19121822>
3409
3410         Reviewed by Alexey Proskuryakov.
3411
3412         * WebCore.exp.in:
3413         * WebCore.xcodeproj/project.pbxproj:
3414         * loader/EmptyClients.h:
3415         * loader/FrameLoader.cpp:
3416         (WebCore::FrameLoader::subresourceCachePolicy):
3417         * loader/FrameLoaderClient.h:
3418         * platform/mac/QuickLookMac.h: Removed.
3419         * platform/mac/QuickLookMac.mm: Removed.
3420
3421 2014-12-02  Anders Carlsson  <andersca@apple.com>
3422
3423         Begin stubbing out a StorageNamespaceProvider class
3424         https://bugs.webkit.org/show_bug.cgi?id=139203
3425
3426         Reviewed by Tim Horton.
3427
3428         * CMakeLists.txt:
3429         * WebCore.vcxproj/WebCore.vcxproj:
3430         * WebCore.vcxproj/WebCore.vcxproj.filters:
3431         * WebCore.xcodeproj/project.pbxproj:
3432         Add new files.
3433
3434         * page/DOMWindow.cpp:
3435         (WebCore::DOMWindow::localStorage):
3436         If the page has a storage namespace provider, get the local storage from it.
3437
3438         * page/Page.cpp:
3439         (WebCore::Page::Page):
3440         Move the storage namespace provider from the configuration.
3441
3442         (WebCore::Page::setStorageNamespaceProvider):
3443         Add a setter. This will be used by setGroupName.
3444
3445         * page/Page.h:
3446         (WebCore::Page::storageNamespaceProvider):
3447         Add a getter.
3448
3449         * page/PageConfiguration.cpp:
3450         * page/PageConfiguration.h:
3451         Add a storage namespace provider member.
3452
3453         * storage/StorageNamespaceProvider.cpp:
3454         (WebCore::StorageNamespaceProvider::StorageNamespaceProvider):
3455         (WebCore::StorageNamespaceProvide