Use an enum for scrollbar style
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-02-24  Simon Fraser  <simon.fraser@apple.com>
2
3         Use an enum for scrollbar style
4         https://bugs.webkit.org/show_bug.cgi?id=141985
5
6         Reviewed by Beth Dakin.
7
8         Switch to an enum class for the scrollbar style (normal or overlay).
9
10         * page/ChromeClient.h:
11         * page/FrameView.cpp:
12         (WebCore::FrameView::scrollbarStyleChanged):
13         * page/FrameView.h:
14         * platform/ScrollTypes.h:
15         * platform/ScrollView.cpp:
16         (WebCore::ScrollView::scrollbarStyleChanged):
17         * platform/ScrollView.h:
18         * platform/ScrollableArea.h:
19         (WebCore::ScrollableArea::scrollbarStyleChanged):
20         * platform/mac/ScrollAnimatorMac.mm:
21         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
22
23 2015-02-24  Commit Queue  <commit-queue@webkit.org>
24
25         Unreviewed, rolling out r180599.
26         https://bugs.webkit.org/show_bug.cgi?id=141998
27
28         Lots of new test failures (Requested by smfr on #webkit).
29
30         Reverted changeset:
31
32         "Parsing support for -webkit-trailing-word"
33         https://bugs.webkit.org/show_bug.cgi?id=141939
34         http://trac.webkit.org/changeset/180599
35
36 2015-02-24  Sam Weinig  <sam@webkit.org>
37
38         [Attachment] Give <attachment> elements an underlying File
39         https://bugs.webkit.org/show_bug.cgi?id=141993
40
41         Reviewed by Tim Horton.
42
43         - Add a JS subclass for attachments so that <attachment>s are
44           instances of HTMLAttachmentElement rather than HTMLElement.
45         - Give HTMLAttachmentElements an underlying File that they
46           are the representation of. Expose it via a new 'file' property.
47         - Expose a new Internals function called window.internals.createFile(url)
48           that allows creating File objects for testing.
49
50         * CMakeLists.txt:
51         * DerivedSources.cpp:
52         * DerivedSources.make:
53         * WebCore.vcxproj/WebCore.vcxproj:
54         * WebCore.vcxproj/WebCore.vcxproj.filters:
55         * WebCore.xcodeproj/project.pbxproj:
56         * fileapi/File.h:
57         * html/HTMLAttachmentElement.cpp:
58         (WebCore::HTMLAttachmentElement::~HTMLAttachmentElement):
59         (WebCore::HTMLAttachmentElement::file):
60         (WebCore::HTMLAttachmentElement::setFile):
61         * html/HTMLAttachmentElement.h:
62         * html/HTMLAttachmentElement.idl: Added.
63         * html/HTMLTagNames.in:
64         * testing/Internals.cpp:
65         (WebCore::Internals::createFile):
66         * testing/Internals.h:
67         * testing/Internals.idl:
68
69 2015-02-24  Joanmarie Diggs  <jdiggs@igalia.com>
70
71         AX: Implement support for ARIA 1.1 'switch' role
72         https://bugs.webkit.org/show_bug.cgi?id=141986
73
74         Reviewed by Chris Fleizach.
75
76         Map the role to ATK_ROLE_TOGGLE_BUTTON for Gtk and Efl; on the Mac, to
77         AXCheckBox with a subrole of AXSwitch. Ensure it looks and acts like a
78         widget to accessibility APIs (supports and emits notifications when
79         toggled, doesn't have children, exposes a name and description when
80         provided).
81
82         Tests: accessibility/aria-switch-checked.html
83                accessibility/aria-switch-sends-notification.html
84                accessibility/aria-switch-text.html
85
86         * accessibility/AccessibilityNodeObject.cpp:
87         (WebCore::AccessibilityNodeObject::canHaveChildren):
88         (WebCore::AccessibilityNodeObject::isChecked):
89         (WebCore::AccessibilityNodeObject::visibleText):
90         (WebCore::AccessibilityNodeObject::title):
91         * accessibility/AccessibilityObject.cpp:
92         (WebCore::AccessibilityObject::isARIAInput):
93         (WebCore::AccessibilityObject::actionVerb):
94         (WebCore::initializeRoleMap):
95         (WebCore::AccessibilityObject::supportsChecked):
96         (WebCore::AccessibilityObject::checkboxOrRadioValue):
97         * accessibility/AccessibilityObject.h:
98         (WebCore::AccessibilityObject::isSwitch):
99         * accessibility/atk/AXObjectCacheAtk.cpp:
100         (WebCore::AXObjectCache::postPlatformNotification):
101         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
102         (atkRole):
103         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
104         (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
105         (-[WebAccessibilityObjectWrapper accessibilityTraits]):
106         (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
107         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
108         (createAccessibilityRoleMap):
109         (-[WebAccessibilityObjectWrapper subrole]):
110         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
111
112 2015-02-24  Myles C. Maxfield  <mmaxfield@apple.com>
113
114         [Mac] [iOS] Parsing support for -apple-trailing-word
115         https://bugs.webkit.org/show_bug.cgi?id=141939
116
117         Reviewed by Andreas Kling.
118
119         This patch implements initial parsing support for the -apple-trailing-word CSS property.
120         This property has two possible (mutually exclusive) values: auto and
121         -apple-partially-balanced. This property is inherited.
122
123         The work for this property is behind the ENABLE(CSS_TRAILING_WORD) preprocessor define.
124
125         This is an internal property that will allow us to control line breaking behavior for
126         short paragraphs.
127
128         Note that, because of the implementation of cssValueKeywordID() in CSSParser.cpp,
129         the new value must be implemented as -webkit-partially-balanced. Using the -apple-
130         prefix will work, but if you getComputedStyle(), it will return the -webkit- prefixed
131         version.
132
133         Test: platform/mac/fast/text/trailing-word-parse.html
134
135         * Configurations/FeatureDefines.xcconfig:
136         * css/CSSComputedStyleDeclaration.cpp:
137         (WebCore::ComputedStyleExtractor::propertyValue): Turn internal representation into a
138         CSS value.
139         * css/CSSParser.cpp:
140         (WebCore::isValidKeywordPropertyAndValue): Updated for new keyword property / value
141         pair.
142         (WebCore::isKeywordPropertyID): New property is a keyword property.
143         (WebCore::CSSParser::parseValue): Use the keyword property codepath.
144         * css/CSSPrimitiveValueMappings.h:
145         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Convert to and from the internal
146         representation and CSS values.
147         (WebCore::CSSPrimitiveValue::operator TrailingWord):
148         * css/CSSPropertyNames.in: New property.
149         * css/CSSValueKeywords.in: New value.
150         * rendering/SimpleLineLayout.cpp:
151         (WebCore::SimpleLineLayout::canUseFor): Can't use SimpleLineLayout for this.
152         * rendering/style/RenderStyle.h: Getter, setter and initial value.
153         * rendering/style/RenderStyleConstants.h: Internal data type.
154         * rendering/style/StyleRareInheritedData.h: One bit to control this style property.
155
156 2015-02-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
157
158         Remove DecodingTask::create and DatabaseOpenTask::create
159         https://bugs.webkit.org/show_bug.cgi?id=141966
160
161         Reviewed by Anders Carlsson.
162
163         These create() factory functions are redundant. We can use std::make_unique<> directly.
164
165         No new tests, no behavior changes.
166
167         * Modules/webaudio/AsyncAudioDecoder.cpp:
168         (WebCore::AsyncAudioDecoder::decodeAsync):
169         (WebCore::AsyncAudioDecoder::DecodingTask::create): Deleted.
170         * Modules/webaudio/AsyncAudioDecoder.h:
171         * Modules/webdatabase/Database.cpp:
172         (WebCore::Database::openAndVerifyVersion):
173         * Modules/webdatabase/DatabaseTask.h:
174         (WebCore::DatabaseBackend::DatabaseOpenTask::create): Deleted.
175
176 2015-02-24  Commit Queue  <commit-queue@webkit.org>
177
178         Unreviewed, rolling out r180578.
179         https://bugs.webkit.org/show_bug.cgi?id=141992
180
181         Broke scrolling in Inspector Console. (Requested by JoePeck on
182         #webkit).
183
184         Reverted changeset:
185
186         "[Mac] WebKit abandons overlay scrollbar CALayers."
187         https://bugs.webkit.org/show_bug.cgi?id=141943
188         http://trac.webkit.org/changeset/180578
189
190 2015-02-24  Dean Jackson  <dino@apple.com>
191
192         [ios Media] the inline controls are visible after pressing Done on iPhone
193         https://bugs.webkit.org/show_bug.cgi?id=141987
194         <rdar://problem/19944110>
195
196         Reviewed by Beth Dakin.
197
198         When exiting out of a playing video, we should show the
199         start playback button if we don't allow inline media
200         (such as on iPhone).
201
202         * Modules/mediacontrols/mediaControlsiOS.js:
203         (ControllerIOS.prototype.shouldHaveStartPlaybackButton): Test for
204         allowsInline as well.
205
206 2015-02-24  Zalan Bujtas  <zalan@apple.com>
207
208         Pass FillLayer reference instead of pointer to RenderBoxModelObject::calculateBackgroundImageGeometry.
209         https://bugs.webkit.org/show_bug.cgi?id=141982
210
211         Reviewed by Simon Fraser.
212
213         There should always be a valid FillLayer.
214
215         No change in functionality.
216
217         * rendering/RenderBox.cpp:
218         (WebCore::RenderBox::getBackgroundPaintedExtent):
219         (WebCore::RenderBox::maskClipRect):
220         (WebCore::RenderBox::repaintLayerRectsForImage):
221         * rendering/RenderBoxModelObject.cpp:
222         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
223         (WebCore::RenderBoxModelObject::calculateFillTileSize):
224         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
225         (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
226         * rendering/RenderBoxModelObject.h:
227
228 2015-02-24  Dean Jackson  <dino@apple.com>
229
230         [iOS Media] Be specific about which document to use for the timeline background canvas
231         https://bugs.webkit.org/show_bug.cgi?id=141981
232
233         Reviewed by Eric Carlson.
234
235         In some cases, especially with nested iframes, the document
236         reference for the shadow DOM might not be the one used
237         to create a -webkit-canvas context for rendering via CSS.
238         Explicitly get the context from the video's owner
239         document.
240
241         There is still a bug here:
242         https://bugs.webkit.org/show_bug.cgi?id=141983
243
244         * Modules/mediacontrols/mediaControlsiOS.js:
245         (ControllerIOS.prototype.drawTimelineBackground):
246
247 2015-02-24  Zalan Bujtas  <zalan@apple.com>
248
249         Remove unused BackgroundImageGeometry::m_destOrigin
250         https://bugs.webkit.org/show_bug.cgi?id=141980
251
252         Reviewed by Simon Fraser.
253
254         Remove BackgroundImageGeometry::m_destOrigin and its dependencies.
255         They are not used at all.
256
257         No change in functionality.
258
259         * rendering/RenderBoxModelObject.cpp:
260         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
261         (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
262         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
263         (WebCore::BackgroundImageGeometry::relativePhase): Deleted.
264         * rendering/RenderBoxModelObject.h:
265         (WebCore::BackgroundImageGeometry::destOrigin): Deleted.
266         (WebCore::BackgroundImageGeometry::setDestOrigin): Deleted.
267         * rendering/svg/RenderSVGResourceMasker.cpp:
268         (WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
269
270 2015-02-24  Zalan Bujtas  <zalan@apple.com>
271
272         RenderBoxModelObject::calculateBackgroundImageGeometry should return BackgroundImageGeometry.
273         https://bugs.webkit.org/show_bug.cgi?id=141979
274
275         Reviewed by Simon Fraser.
276
277         No change in functionality.
278
279         * rendering/RenderBox.cpp:
280         (WebCore::RenderBox::getBackgroundPaintedExtent):
281         (WebCore::RenderBox::maskClipRect):
282         (WebCore::RenderBox::repaintLayerRectsForImage):
283         * rendering/RenderBoxModelObject.cpp:
284         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
285         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
286         (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
287         * rendering/RenderBoxModelObject.h:
288
289 2015-02-24  Zalan Bujtas  <zalan@apple.com>
290
291         Switch BackgroundImageGeometry's m_phase from LayoutPoint to LayoutSize.
292         https://bugs.webkit.org/show_bug.cgi?id=141972
293
294         Reviewed by Simon Fraser.
295
296         Image geometry's phase represents distance.
297
298         No change in functionality.
299
300         * WebCore.order:
301         * platform/graphics/GraphicsLayer.h:
302         (WebCore::GraphicsLayer::setContentsTilePhase):
303         (WebCore::GraphicsLayer::contentsTilePhase):
304         * platform/graphics/texmap/TextureMapperLayer.cpp:
305         (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
306         (WebCore::TextureMapperLayer::setContentsTilePhase):
307         * platform/graphics/texmap/TextureMapperLayer.h:
308         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
309         (WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
310         * rendering/RenderBoxModelObject.cpp:
311         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
312         (WebCore::BackgroundImageGeometry::setNoRepeatX):
313         (WebCore::BackgroundImageGeometry::setNoRepeatY):
314         (WebCore::BackgroundImageGeometry::useFixedAttachment):
315         (WebCore::BackgroundImageGeometry::relativePhase):
316         (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
317         (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
318         * rendering/RenderBoxModelObject.h:
319         (WebCore::BackgroundImageGeometry::phase):
320         (WebCore::BackgroundImageGeometry::setPhase):
321         (WebCore::BackgroundImageGeometry::setPhaseX):
322         (WebCore::BackgroundImageGeometry::setPhaseY):
323         * rendering/RenderLayerBacking.cpp:
324         (WebCore::RenderLayerBacking::resetContentsRect):
325         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
326         * rendering/svg/RenderSVGResourceMasker.cpp:
327         (WebCore::RenderSVGResourceMasker::drawMaskForRenderer):
328
329 2015-02-24  Andreas Kling  <akling@apple.com>
330
331         [Mac] WebKit abandons overlay scrollbar CALayers.
332         <https://webkit.org/b/141943>
333         <rdar://problem/19932199>
334
335         Reviewed by Beth Dakin.
336
337         * platform/mac/ScrollAnimatorMac.mm:
338         (-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
339         Use NSAnimationNonblockingThreaded to ensure that NSAnimations get cleaned up after they finish.
340         The animation was indirectly retaining the overlay scrollbar's CALayer, causing significant
341         amounts of abandoned memory to accumulate over time.
342
343 2015-02-24  Anders Carlsson  <andersca@apple.com>
344
345         Implement more of the data fetching API
346         https://bugs.webkit.org/show_bug.cgi?id=141975
347
348         Reviewed by Andreas Kling.
349
350         Add API for getting origins in a given session that has cached data.
351
352         * loader/cache/MemoryCache.cpp:
353         (WebCore::MemoryCache::originsWithCache):
354
355 2015-02-24  Simon Fraser  <simon.fraser@apple.com>
356
357         Use nullptr in more places in FrameView, RenderView, RenderObject
358         https://bugs.webkit.org/show_bug.cgi?id=141974
359
360         Reviewed by Zalan Bujtas.
361
362         0 -> nullptr in FrameView.h/cpp, RenderView.h/cpp, RenderObject.h/cpp.
363         
364         Rename FrameView::m_deferSetNeedsLayouts to FrameView::m_deferSetNeedsLayoutCount
365         to make it more clear that it's a count.
366
367         * page/FrameView.cpp:
368         (WebCore::FrameView::FrameView):
369         (WebCore::FrameView::reset):
370         (WebCore::FrameView::setContentsSize):
371         (WebCore::FrameView::calculateScrollbarModesForLayout):
372         (WebCore::FrameView::layerForScrolling):
373         (WebCore::FrameView::layerForHorizontalScrollbar):
374         (WebCore::FrameView::layerForVerticalScrollbar):
375         (WebCore::FrameView::layerForScrollCorner):
376         (WebCore::FrameView::tiledBacking):
377         (WebCore::FrameView::scrollLayerID):
378         (WebCore::FrameView::layerForOverhangAreas):
379         (WebCore::FrameView::setWantsLayerForTopOverHangArea):
380         (WebCore::FrameView::setWantsLayerForBottomOverHangArea):
381         (WebCore::FrameView::hasCompositedContentIncludingDescendants):
382         (WebCore::FrameView::layoutRoot):
383         (WebCore::FrameView::forceLayoutParentViewIfNeeded):
384         (WebCore::FrameView::layout):
385         (WebCore::FrameView::hostWindow):
386         (WebCore::FrameView::scheduleRelayout):
387         (WebCore::FrameView::scheduleRelayoutOfSubtree):
388         (WebCore::FrameView::needsLayout):
389         (WebCore::FrameView::setNeedsLayout):
390         (WebCore::FrameView::enclosingScrollableArea):
391         (WebCore::FrameView::parentFrameView):
392         (WebCore::FrameView::paintControlTints):
393         (WebCore::FrameView::adjustPageHeightDeprecated):
394         (WebCore::FrameView::axObjectCache):
395         * page/FrameView.h:
396         * rendering/RenderObject.cpp:
397         (WebCore::RenderObject::RenderObject):
398         (WebCore::RenderObject::nextInPreOrderAfterChildren):
399         (WebCore::RenderObject::previousInPreOrder):
400         (WebCore::RenderObject::firstLeafChild):
401         (WebCore::RenderObject::lastLeafChild):
402         (WebCore::RenderObject::traverseNext):
403         (WebCore::RenderObject::firstLineBlock):
404         (WebCore::RenderObject::containerForRepaint):
405         (WebCore::RenderObject::showRenderSubTreeAndMark):
406         (WebCore::RenderObject::localToAbsolute):
407         (WebCore::RenderObject::container):
408         * rendering/RenderObject.h:
409         (WebCore::RenderObject::virtualContinuation):
410         (WebCore::RenderObject::node):
411         (WebCore::RenderObject::nonPseudoNode):
412         (WebCore::RenderObject::localToAbsoluteQuad):
413         (WebCore::RenderObject::absoluteQuads):
414         (WebCore::RenderObject::absoluteClippedOverflowRect):
415         (WebCore::RenderObject::outlineBoundsForRepaint):
416         (WebCore::RenderObject::computeAbsoluteRepaintRect):
417         (WebCore::RenderObject::selectionRect):
418         (WebCore::RenderObject::imageChanged):
419         (WebCore::RenderObject::addFocusRingRects):
420         (WebCore::RenderObject::absoluteOutlineBounds):
421         * rendering/RenderView.cpp:
422         (WebCore::SelectionIterator::next):
423         (WebCore::RenderView::RenderView):
424         (WebCore::RenderView::mapLocalToContainer):
425         (WebCore::RenderView::pushMappingToContainer):
426         (WebCore::RenderView::computeRectForRepaint):
427         (WebCore::rendererAfterPosition):
428         (WebCore::RenderView::splitSelectionBetweenSubtrees):
429         (WebCore::RenderView::rootBackgroundIsEntirelyFixed):
430         * rendering/RenderView.h:
431
432 2015-02-24  Yusuke Suzuki  <utatane.tea@gmail.com>
433
434         REGRESSION(r179429): Can't type comments in Facebook
435         https://bugs.webkit.org/show_bug.cgi?id=141859
436
437         Reviewed by Brent Fulgham.
438
439         Enable SymbolEnabled runtime flag in inspector context.
440
441         * ForwardingHeaders/runtime/RuntimeFlags.h: Added.
442         * WebCore.order:
443         * WebCore.vcxproj/WebCore.vcxproj:
444         * WebCore.vcxproj/WebCore.vcxproj.filters:
445         * bindings/js/JSDOMWindowBase.cpp:
446         (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
447         (WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted.
448         * bindings/js/JSDOMWindowBase.h:
449         * bindings/js/JSWorkerGlobalScopeBase.cpp:
450         (WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
451         (WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted.
452         * bindings/js/JSWorkerGlobalScopeBase.h:
453         * inspector/InspectorFrontendClientLocal.cpp:
454         (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
455         * page/Settings.h:
456         * page/Settings.in:
457
458 2015-02-24  Manuel Rego Casasnovas  <rego@igalia.com>
459
460         [CSS Grid Layout] Support "sparse" in auto-placed items locked to a row/column
461         https://bugs.webkit.org/show_bug.cgi?id=141748
462
463         Reviewed by Sergio Villar Senin.
464
465         The first step of grid item placement algorithm has been updated in
466         order to support both "sparse" and "dense" modes. Current code is always
467         doing a "dense" packing in this case.
468
469         See: http://dev.w3.org/csswg/css-grid/#auto-placement-algo
470
471         Test: fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html
472
473         * rendering/RenderGrid.cpp:
474         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Add a cursor
475         for each row/column and use it to place items in the right position.
476
477 2015-02-24  Joanmarie Diggs  <jdiggs@igalia.com>
478
479         [GTK] Layout Test accessibility/roles-exposed.html is failing
480         https://bugs.webkit.org/show_bug.cgi?id=141960
481
482         Reviewed by Martin Robinson.
483
484         The test was failing because Gtk now uses GtkColorChooserDialog for the
485         color input, making the input field a button which results in the color
486         chooser dialog appearing. As a side effect of this change, the input now
487         has an accessible role of ColorWell, which is currently mapped to
488         ATK_ROLE_COLOR_CHOOSER (which is by definition the dialog which results
489         upon activating the button input field). Changed the Gtk platform mapping
490         to ATK_ROLE_BUTTON, leaving the Efl mapping as-is.
491
492         No new tests. Instead, updated and unskipped failing test.
493
494         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
495         (atkRole):
496
497 2015-02-24  Michael Catanzaro  <mcatanzaro@igalia.com>
498
499         [GTK] Fonts loaded via @font-face look bad
500         https://bugs.webkit.org/show_bug.cgi?id=140994
501
502         Reviewed by Martin Robinson.
503
504         We've had several complaints that woff fonts look bad on some websites. This seems to be a
505         combination of multiple issues. For one, we don't look at Fontconfig settings at all when
506         creating a web font. This commit changes FontPlatformData::initializeWithFontFace to instead
507         use sane default settings from Fontconfig when loading a web font, rather than accepting the
508         default settings from GTK+, which are normally overridden by Fontconfig when loading system
509         fonts. However, we will hardcode the hinting setting for web fonts to always force use of
510         the light autohinter, so that we do not use a font's native hints. This avoids compatibility
511         issues when fonts with poor native hinting are only tested in browsers that do not use the
512         native hints. It also allows us to sidestep future security vulnerabilities in FreeType's
513         bytecode interpreter.
514
515         The net result of this is that there should be little noticable difference if you have GTK+
516         set to use slight hinting (which forces use of the autohinter) unless you have customized
517         Fontconfig configuration, but a dramatic improvement with particular fonts if you use medium
518         or full hinting. This should reduce complaints about our font rendering on "fancy sites."
519
520         No new tests, since the affected fonts we've found are not freely redistributable.
521
522         * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
523         (WebCore::FontCustomPlatformData::FontCustomPlatformData): Force web fonts to be autohinted.
524         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
525         (WebCore::getDefaultCairoFontOptions): Renamed to disambiguate.
526         (WebCore::getDefaultFontconfigOptions): Added.
527         (WebCore::FontPlatformData::initializeWithFontFace): Always call
528         FontPlatformData::setCairoOptionsFromFontConfigPattern. If the FontPlatformData was not
529         created with an FcPattern (e.g. because this is a web font), call
530         getDefaultFontconfigOptions to get a sane default FcPattern.
531         (WebCore::FontPlatformData::setOrientation): Renamed call to getDefaultCairoFontOptions.
532         (WebCore::getDefaultFontOptions): Deleted.
533
534 2015-02-24  Andreas Kling  <akling@apple.com>
535
536         [Cocoa] Break internal reference cycle in WebCore::Font.
537         <https://webkit.org/b/141941>
538         <rdar://problem/19650570>
539
540         Reviewed by Antti Koivisto.
541
542         The Cocoa implementation of Font::platformCreateScaledFont() tried to be smart and use the FontCache.
543         This didn't work out well when scaling a 0pt Font, since scaling 0pt by any factor will return 0pt.
544
545         We'd have a 0pt font, scale it by 0.7 to get a small-caps variant, and then cache that small-caps
546         variant (really "this") in Font::m_derivedData->smallCaps.
547
548         Fix this by having Cocoa Font scaling do exactly what other platforms do: create a new Font every time.
549         This stops us from accumulating tons of abandoned Font objects over time.
550
551         * platform/graphics/Font.cpp:
552         (WebCore::Font::verticalRightOrientationFont):
553         (WebCore::Font::uprightOrientationFont):
554         (WebCore::Font::smallCapsFont):
555         (WebCore::Font::emphasisMarkFont):
556         (WebCore::Font::brokenIdeographFont):
557         (WebCore::Font::nonSyntheticItalicFont): Add assertions to guard against reference cycles inside a Font.
558
559         * platform/graphics/cocoa/FontCocoa.mm:
560         (WebCore::Font::platformCreateScaledFont): Always create a new Font when scaling an existing Font to a different size.
561
562 2015-02-24  Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet  <youenn.fablet@crf.canon.fr>
563
564         [Streams API] Reading ReadableStream ready and closed attributes should not always create a new promise
565         https://bugs.webkit.org/show_bug.cgi?id=141650
566
567         Reviewed by Benjamin Poulain.
568
569         The JSPromiseDeferred objects returned by JSReadableStream::ready and JSReadableStream::closed should be stored somewhere.
570         This patch stores them as private slots in JSReadableStream.
571         This is close to the description in https://streams.spec.whatwg.org/#rs-internal-slots.
572
573         An alternative would be to have these objects as JSReadableStream class members, thus modifying the binding generator.
574         That may be the cleanest solution, especially if other APIs express the same need.
575         Another alternative is to store DeferredWrapper in ReadableStream objects.
576         But it is currently preferred to keep DeferredWrapper in bindings/js code.
577
578         Added new constructor for DeferredWrapper to use these stored values.
579         Updated ready and closed methods to use that new constructor.
580         Changes are covered by new test in streams/readablestream-constructor.html.
581
582         * bindings/js/JSDOMPromise.cpp:
583         (WebCore::DeferredWrapper::DeferredWrapper):
584         * bindings/js/JSDOMPromise.h:
585         * bindings/js/JSReadableStreamCustom.cpp:
586         (WebCore::closedPromiseSlotName):
587         (WebCore::getOrCreatePromiseDeferredFromObject):
588         (WebCore::readyPromiseSlotName):
589         (WebCore::JSReadableStream::ready):
590         (WebCore::JSReadableStream::closed):
591         * bindings/js/ReadableStreamJSSource.cpp:
592         (WebCore::setInternalSlotToObject):
593         (WebCore::getInternalSlotFromObject):
594         * bindings/js/ReadableStreamJSSource.h:
595
596 2015-02-24  Dhi Aurrahman  <diorahman@rockybars.com>
597
598         Always serialize :lang()'s arguments to strings
599         https://bugs.webkit.org/show_bug.cgi?id=141944
600
601         Reviewed by Benjamin Poulain.
602
603         As specified in [1] :lang()'s arguments are always serialized to strings.
604
605         [1] http://dev.w3.org/csswg/cssom/#serializing-selectors
606
607         Related tests are updated.
608
609         * css/CSSGrammar.y.in:
610         * css/CSSParserValues.cpp:
611         (WebCore::CSSParserSelector::setLangArgumentList):
612         * css/CSSParserValues.h:
613         (WebCore::CSSParserString::init):
614         (WebCore::CSSParserString::clear):
615         (WebCore::CSSParserString::tokenType): Deleted.
616         (WebCore::CSSParserString::setTokenType): Deleted.
617         * css/CSSSelector.cpp:
618         (WebCore::appendLangArgumentList):
619         (WebCore::CSSSelector::setLangArgumentList):
620         * css/CSSSelector.h:
621         (WebCore::CSSSelector::langArgumentList):
622         * css/SelectorCheckerTestFunctions.h:
623         (WebCore::matchesLangPseudoClass):
624         * cssjit/SelectorCompiler.cpp:
625         (WebCore::SelectorCompiler::addPseudoClassType):
626         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsInLanguage):
627
628 2015-02-24  Antti Koivisto  <antti@apple.com>
629
630        Give TemporaryChange for m_inLoadPendingImages assertion a name so it actually does something.
631
632         * css/StyleResolver.cpp:
633         (WebCore::StyleResolver::loadPendingImages):
634
635 2015-02-23  Commit Queue  <commit-queue@webkit.org>
636
637         Unreviewed, rolling out r180547 and r180550.
638         https://bugs.webkit.org/show_bug.cgi?id=141957
639
640         Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).
641
642         Reverted changesets:
643
644         "REGRESSION(r179429): Can't type comments in Facebook"
645         https://bugs.webkit.org/show_bug.cgi?id=141859
646         http://trac.webkit.org/changeset/180547
647
648         "Constructor returning null should construct an object instead
649         of null"
650         https://bugs.webkit.org/show_bug.cgi?id=141640
651         http://trac.webkit.org/changeset/180550
652
653 2015-02-23  Ryosuke Niwa  <rniwa@webkit.org>
654
655         Disable font loading events until our implementation gets updated to match the latest spec
656         https://bugs.webkit.org/show_bug.cgi?id=141938
657
658         Reviewed by Andreas Kling.
659
660         Revert r173531 for now since our implementation is outdated.
661
662         * Configurations/FeatureDefines.xcconfig:
663
664 2015-02-23  Brent Fulgham  <bfulgham@apple.com>
665
666         EventHandler references deleted Scrollbar
667         https://bugs.webkit.org/show_bug.cgi?id=141931
668         <rdar://problem/19915210>
669
670         Reviewed by Tim Horton.
671
672         Tested by scrollbars/overflow-custom-scrollbar-crash.html
673
674         Update the EventHandler class to use a WeakPtr to reference the
675         last used Scrollbar, rather than retaining the Scrollbar and
676         artificially extending its life. This keeps the EventHandler
677         state in proper sync with the state of the render tree, and
678         avoids cases where we have destroyed a ScrollableArea (and
679         Scrollbar) but are still sending messages to a fake zombie
680         version of the element.
681
682         * page/EventHandler.cpp:
683         (WebCore::EventHandler::clear):
684         (WebCore::EventHandler::handleMousePressEvent):
685         (WebCore::EventHandler::updateMouseEventTargetNode):
686         (WebCore::EventHandler::updateLastScrollbarUnderMouse):
687         * page/EventHandler.h:
688         * platform/Scrollbar.cpp:
689         (WebCore::Scrollbar::Scrollbar): Initialize WeakPtrFactory.
690         * platform/Scrollbar.h:
691         (WebCore::Scrollbar::createWeakPtr): Added,
692
693 2015-02-23  Yusuke Suzuki  <utatane.tea@gmail.com>
694
695         REGRESSION(r179429): Can't type comments in Facebook
696         https://bugs.webkit.org/show_bug.cgi?id=141859
697
698         Reviewed by Geoffrey Garen.
699
700         Enable SymbolEnabled runtime flag in inspector context.
701
702         * ForwardingHeaders/runtime/RuntimeFlags.h: Added.
703         * WebCore.order:
704         * WebCore.vcxproj/WebCore.vcxproj:
705         * WebCore.vcxproj/WebCore.vcxproj.filters:
706         * bindings/js/JSDOMWindowBase.cpp:
707         (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
708         (WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted.
709         * bindings/js/JSDOMWindowBase.h:
710         * bindings/js/JSWorkerGlobalScopeBase.cpp:
711         (WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
712         (WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted.
713         * bindings/js/JSWorkerGlobalScopeBase.h:
714         * inspector/InspectorFrontendClientLocal.cpp:
715         (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
716         * page/Settings.h:
717         * page/Settings.in:
718
719 2015-02-23  Benjamin Poulain  <benjamin@webkit.org>
720
721         CSS JIT: add support for case-insensitive attribute matching
722         https://bugs.webkit.org/show_bug.cgi?id=141880
723
724         Reviewed by Andreas Kling.
725
726         The value matching now has 3 cases:
727         1) Case-sensitive.
728         2) Case-insensitive.
729         3) Legacy HTML Case-insensitive.
730
731         The information to determine the case is split over 2 source:
732         -To know if explicit case-insensitive is needed, we need to ask the selector
733          for attributeValueMatchingIsCaseInsensitive().
734         -To know if the legacy HTML behavior is needed, we need to test the attribute
735          name filter with HTMLDocument::isCaseSensitiveAttribute().
736
737         I decided to perform all those checks at the fragment creation step.
738         This makes the register requirements and code generation more explicit.
739
740         From there, everything is easy: switch() on the type of matching needed,
741         and generate the code. The new case-insensitive case is a simplified version
742         of the legacy HTML behavior without runtime check for the element type.
743
744         Tests: fast/css/implicitly-case-insensitive-attribute-with-svg.html
745                fast/selectors/case-insensitive-attribute-register-requirement-1.html
746                fast/selectors/case-insensitive-attribute-register-requirement-2.html
747                fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg.html
748
749         * cssjit/SelectorCompiler.cpp:
750         (WebCore::SelectorCompiler::attributeSelectorCaseSensitivity):
751         (WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
752         (WebCore::SelectorCompiler::AttributeMatchingInfo::attributeCaseSensitivity):
753         (WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch): Deleted.
754         (WebCore::SelectorCompiler::constructFragmentsInternal):
755         Compute the type of value matching and store it on the AttributeMatchingInfo
756         when creating the fragment.
757
758         (WebCore::SelectorCompiler::minimumRegisterRequirements):
759         (WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
760         (WebCore::SelectorCompiler::attributeValueTestingRequiresCaseFoldingRegister): Deleted.
761         In general, AttributeCaseSensitivity::CaseInsensitive does not require an extra
762         register. I have made an exception for generateElementAttributeValueExactMatching()
763         for simplicity. I use that register to load the StringImpl of the attribute
764         being tested, that way I can use WTF::equalIgnoringCaseNonNull() directly.
765
766         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
767         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
768         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
769         Matching itself is just function calls. Unlike AttributeCaseSensitivity::HTMLLegacyCaseInsensitive,
770         the behavior is consistent between XML and HTML.
771
772 2015-02-23  Alex Christensen  <achristensen@webkit.org>
773
774         [WinCairo] Unreviewed build fix after r180532
775
776         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
777         (WebCore::MediaPlayerPrivateMediaFoundation::buffered):
778         Fixed typo.
779
780 2015-02-23  Chris Dumez  <cdumez@apple.com>
781
782         Log using diagnostic logging which ActiveDOMObjects prevent using the PageCache
783         https://bugs.webkit.org/show_bug.cgi?id=141922
784         <rdar://problem/19923085>
785
786         Reviewed by Andreas Kling.
787
788         Log using diagnostic logging which ActiveDOMObjects prevent using the
789         PageCache.
790
791         * history/PageCache.cpp:
792         (WebCore::logCanCacheFrameDecision):
793         * page/DiagnosticLoggingKeys.cpp:
794         (WebCore::DiagnosticLoggingKeys::unsuspendableDOMObjectKey):
795         * page/DiagnosticLoggingKeys.h:
796
797 2015-02-23  Chris Dumez  <cdumez@apple.com>
798
799         Move GeoNotifier class to its own file
800         https://bugs.webkit.org/show_bug.cgi?id=141918
801
802         Reviewed by Andreas Kling.
803
804         Move GeoNotifier class to its own file to make Geolocation class less
805         crowded.
806
807 2015-02-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
808
809         Remove unnecessary PlatformTimeRanges::create()
810         https://bugs.webkit.org/show_bug.cgi?id=141901
811
812         Reviewed by Filip Pizlo.
813
814         PlatformTimeRanges::create() functions have just created an instance of PlatformTimeRanges.
815         This functionality can be replaced with std::make_unique<> use directly.
816
817         No new tests, no behavior changes.
818
819         * Modules/mediasource/MediaSource.cpp:
820         (WebCore::MediaSource::buffered):
821         * Modules/mediasource/SourceBuffer.cpp:
822         (WebCore::SourceBuffer::bufferedAccountingForEndOfStream):
823         * platform/graphics/MediaPlayer.cpp:
824         (WebCore::NullMediaPlayerPrivate::buffered):
825         * platform/graphics/MediaPlayerPrivate.h:
826         (WebCore::MediaPlayerPrivateInterface::seekable):
827         * platform/graphics/PlatformTimeRanges.cpp:
828         (WebCore::PlatformTimeRanges::create): Deleted.
829         * platform/graphics/PlatformTimeRanges.h:
830         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
831         (WebCore::MediaPlayerPrivateAVFoundation::buffered):
832         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
833         (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):
834         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
835         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):
836         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
837         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
838         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):
839         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
840         (WebCore::MediaPlayerPrivateGStreamer::buffered):
841         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
842         (WebCore::MediaPlayerPrivateQTKit::buffered):
843         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
844         (WebCore::MediaPlayerPrivateMediaFoundation::buffered):
845         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
846         (WebCore::MockMediaPlayerMediaSource::buffered):
847
848 2015-02-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
849
850         Partial clean up OwnPtr and PassOwnPtr in WebCore/platform
851         https://bugs.webkit.org/show_bug.cgi?id=141888
852
853         Reviewed by Filip Pizlo.
854
855         Use std::unique_ptr<> and std::make_unique<>. Besides this patch removes
856         unnecessary OwnPtr.h|PasSOwnPtr.h includes.
857
858         No new tests, no behavior changes.
859
860         * platform/SharedBuffer.h:
861         * platform/Supplementable.h:
862         * platform/audio/gstreamer/AudioSourceProviderGStreamer.h:
863         (WebCore::AudioSourceProviderGStreamer::create): Deleted.
864         * platform/graphics/ImageBuffer.h:
865         * platform/graphics/TiledBackingStoreBackend.h:
866         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
867         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
868         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
869         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
870         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
871         * platform/gtk/GamepadsGtk.cpp:
872
873 2015-02-23  Shivakumar JM  <shiva.jm@samsung.com>
874
875         Default value of HTMLSelectElement size IDL attribute should be 0.
876         https://bugs.webkit.org/show_bug.cgi?id=141795
877
878         Reviewed by Andreas Kling.
879
880         Default value of HTMLSelectElement size IDL attribute should be 0. 
881         As in spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#the-select-element, also this matches the behavior of Chrome, IE and
882         Gecko.
883
884         Test: fast/dom/select-size.html
885
886         * html/HTMLSelectElement.cpp:
887         (WebCore::HTMLSelectElement::parseAttribute):
888
889 2015-02-23  Said Abou-Hallawa  <sabouhallawa@apple.com>
890
891         Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
892         https://bugs.webkit.org/show_bug.cgi?id=141729.
893
894         Reviewed by Daniel Bates.
895
896         Fix a build break which is caused by http://trac.webkit.org/changeset/180511/trunk.
897         Two functions of GraphicsContext were made inline but they were kept WEBCORE_EXPORT.
898
899         * platform/graphics/GraphicsContext.h:
900         (WebCore::GraphicsContext::paintingDisabled):
901         (WebCore::GraphicsContext::updatingControlTints):
902
903 2015-02-22  Dean Jackson  <dino@apple.com>
904
905         [iOS] Max canvas size is lower than expected
906         https://bugs.webkit.org/show_bug.cgi?id=141886
907         <rdar://problem/19729246>
908
909         Reviewed by Tim Horton.
910
911         Use the same maximum canvas area for all ports,
912         which bumps the iOS limit up from 4580 * 1145
913         to 16k * 16k.
914
915         * html/HTMLCanvasElement.cpp: Update MaxCanvasArea.
916
917 2015-02-23  Chris Dumez  <cdumez@apple.com>
918
919         Add support for diagnostic logging messages sampling
920         https://bugs.webkit.org/show_bug.cgi?id=141823
921         <rdar://problem/19899030>
922
923         Reviewed by Andreas Kling.
924
925         Add support for diagnostic logging messages sampling to decrease the
926         impact of diagnostic logging on CPU usage, while still getting useful
927         overall results. This patch adds a ShouldSample argument to
928         logDiagnosticMessage*() functions and logs 5% of the messages when
929         sampling. Sampling is turned on for keys that are known to be verbose
930         (e.g. per resource load logging).
931
932         On the page load test I am tracking, CPU usage caused by diagnostic
933         logging went down to 0.3% of UIProcess from 2.8% with this change.
934
935         * history/PageCache.cpp:
936         (WebCore::logPageCacheFailureDiagnosticMessage):
937         (WebCore::logCanCachePageDecision):
938         * html/HTMLMediaElement.cpp:
939         (WebCore::HTMLMediaElement::parseAttribute):
940         * loader/EmptyClients.h:
941         * loader/FrameLoader.cpp:
942         (WebCore::logNavigation):
943         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
944         * loader/ResourceLoader.cpp:
945         (WebCore::logResourceResponseSource):
946         * loader/SubframeLoader.cpp:
947         (WebCore::logPluginRequest):
948         * loader/SubresourceLoader.cpp:
949         (WebCore::SubresourceLoader::willSendRequest):
950         (WebCore::SubresourceLoader::didReceiveResponse):
951         (WebCore::logResourceLoaded):
952         * loader/cache/CachedResource.cpp:
953         (WebCore::logResourceRevalidationReason):
954         * loader/cache/CachedResourceLoader.cpp:
955         (WebCore::logMemoryCacheResourceRequest):
956         * page/DiagnosticLoggingClient.h:
957
958 2015-02-23  Said Abou-Hallawa  <sabouhallawa@apple.com>
959
960         Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
961         https://bugs.webkit.org/show_bug.cgi?id=141729.
962
963         Reviewed by Simon Fraser.
964
965         When drawing an SVG image and the drawing context is set to be transparent,
966         make sure this transparency is applied to the compositing layer.
967
968         Test: svg/canvas/canvas-global-alpha-svg.html
969
970         * platform/graphics/GraphicsContext.cpp:
971         (WebCore::GraphicsContext::setAlpha): Make setAlpha() calls the platform
972         function and sets 'm_state.alpha' to the input value.
973
974         (WebCore::GraphicsContext::alpha): Add a new function 'alpha()' which
975         returns the value of the global alpha.
976         
977         * platform/graphics/GraphicsContext.h:
978         (WebCore::GraphicsContextState::GraphicsContextState): Add a new member
979         'alpha' to the context state since the getter function CGContextGetAlpha
980         is defined only in a private header file. Also move single line functions
981         from the source file to the header file.
982     
983         * platform/graphics/cairo/GraphicsContextCairo.cpp:
984         (WebCore::GraphicsContext::setPlatformAlpha):
985         (WebCore::GraphicsContext::setAlpha): Deleted.
986         * platform/graphics/cg/GraphicsContextCG.cpp:
987         (WebCore::GraphicsContext::setPlatformAlpha):
988         (WebCore::GraphicsContext::setAlpha): Deleted.
989         Rename setAlpha() to setPlatformAlpha() in the platform files. Add setAlpha()
990         to the core file. setAlpha() will set the value of 'm_state.alpha' and call
991         setPlatformAlpha().
992     
993         * svg/graphics/SVGImage.cpp:
994         (WebCore::SVGImage::draw): If the drawing context is transparent, apply its
995         global alpha value to the compositing layer.
996         
997 2015-02-23  Eric Carlson  <eric.carlson@apple.com>
998
999         Occasional crash in MediaPlayer::setPrivateBrowsingMode
1000         https://bugs.webkit.org/show_bug.cgi?id=141910
1001
1002         Reviewed by Jer Noble.
1003
1004         No new tests, I was unable to reproduce the crash.
1005
1006         * html/HTMLMediaElement.cpp:
1007         (WebCore::HTMLMediaElement::stopPeriodicTimers): Use EveryDelayedAction instead of -1.
1008         (WebCore::HTMLMediaElement::stop): Call clearMediaPlayer instead of just setting m_player
1009             to NULL.
1010         * html/HTMLMediaElement.h: Define EveryDelayedAction.
1011
1012 2015-02-23  Philippe Normand  <pnormand@igalia.com>
1013
1014         [GStreamer] Redundant track language notifications
1015         https://bugs.webkit.org/show_bug.cgi?id=141908
1016
1017         Reviewed by Žan Doberšek.
1018
1019         Invoke languageChanged only if the language code actually
1020         changed.
1021
1022         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
1023         (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
1024
1025 2015-02-23  peavo@outlook.com  <peavo@outlook.com>
1026
1027         [WinCairo] Crash when media player is destroyed.
1028         https://bugs.webkit.org/show_bug.cgi?id=141248
1029
1030         Reviewed by Darin Adler.
1031
1032         A COM smart pointer is both released, and set to null.
1033         This means that the COM Release method is called twice, causing a crash.
1034
1035         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
1036         (WebCore::MediaPlayerPrivateMediaFoundation::endSession):
1037
1038 2015-02-23  Manuel Rego Casasnovas  <rego@igalia.com>
1039
1040         [CSS Grid Layout] Remove old FIXME in RenderGrid::placeItemsOnGrid()
1041         https://bugs.webkit.org/show_bug.cgi?id=141899
1042
1043         Reviewed by Sergio Villar Senin.
1044
1045         There was a FIXME about not re-resolving positions if the grid is grown during
1046         auto-placement. But as the spec has changed [1] and you can only refer to the
1047         explicit grid (even if you use for example grid-column: 1 / -1). It seems that
1048         we can get rid of this FIXME as it's not a causing a problem anymore.
1049
1050         [1] http://dev.w3.org/csswg/css-grid/#grid-placement-int
1051
1052         No new tests (no change in behavior).
1053
1054         * rendering/RenderGrid.cpp:
1055         (WebCore::RenderGrid::placeItemsOnGrid): Remove FIXME.
1056
1057 2015-02-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1058
1059         Move std::unique_ptr<>|make_unique<> to WebCore/page/scrolling
1060         https://bugs.webkit.org/show_bug.cgi?id=137877
1061
1062         Reviewed by Sam Weinig.
1063
1064         Clean up unnecessary OwnPtr.h|PassOwnPtr.h includes as well as
1065         change OwnPtr with std::unique_ptr<>|make_unique<>.
1066
1067         No new tests, no behavior changes.
1068
1069         * page/scrolling/AsyncScrollingCoordinator.h:
1070         * page/scrolling/ScrollingStateFixedNode.cpp:
1071         * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
1072         * page/scrolling/ScrollingStateNode.cpp:
1073         (WebCore::ScrollingStateNode::appendChild):
1074         * page/scrolling/ScrollingStateNode.h:
1075         * page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
1076         * page/scrolling/ScrollingStateScrollingNode.cpp:
1077         * page/scrolling/ScrollingStateStickyNode.cpp:
1078         * page/scrolling/ScrollingTree.h:
1079         * page/scrolling/ScrollingTreeNode.cpp:
1080         (WebCore::ScrollingTreeNode::appendChild):
1081         * page/scrolling/ScrollingTreeNode.h:
1082         * page/scrolling/ScrollingTreeScrollingNode.h:
1083
1084 2015-02-22  Dean Jackson  <dino@apple.com>
1085
1086         Print a console warning when HTMLCanvasElement exceeds the maximum size
1087         https://bugs.webkit.org/show_bug.cgi?id=141861
1088         <rdar://problem/19729145>
1089
1090         Reviewed by Simon Fraser.
1091
1092         Add a warning if we ever try to create a canvas that is
1093         too big.
1094
1095         No test because:
1096         1. We can't ref-test against console messages.
1097         2. The output is platform specific.
1098
1099         * html/HTMLCanvasElement.cpp:
1100         (WebCore::HTMLCanvasElement::createImageBuffer):
1101
1102 2015-02-21  Sam Weinig  <sam@webkit.org>
1103
1104         Convert the caps lock indicator to be implemented using the shadow DOM
1105         https://bugs.webkit.org/show_bug.cgi?id=141868
1106
1107         Reviewed by Dan Bernstein.
1108
1109         - Re-adds 'caps-lock-indicator' as a valid -webkit-appearance value. It was removed
1110           in r74099 to work around a site bug, that should not be a problem anymore.
1111         - Converts the caps lock indicator to be implemented as part of the shadow DOM rather
1112           than a paint time effect. This gives the proper overflow behavior (it now clips) and
1113           behaves correctly in RTL.
1114
1115         * css/CSSParser.cpp:
1116         (WebCore::isValidKeywordPropertyAndValue):
1117         Make 'caps-lock-indicator' a valid -webkit-appearance value.
1118
1119         * css/CSSValueKeywords.in:
1120         Remove comment that indicated that caps-lock-indicator was not a valid
1121         -webkit-appearance value.
1122
1123         * css/html.css:
1124         (input::-webkit-caps-lock-indicator):
1125         Add new default style for the new -webkit-caps-lock-indicator pseudo-element. The
1126         trick employed here is to use a content: image to both implement the painting of
1127         the caps lock indicator, and to get the sizing right (shrink-to-fit, height: 100%).
1128
1129         * html/HTMLInputElement.cpp:
1130         (WebCore::HTMLInputElement::capsLockIndicatorElement):
1131         (WebCore::HTMLInputElement::capsLockStateMayHaveChanged):
1132         * html/HTMLInputElement.h:
1133         * html/InputType.cpp:
1134         (WebCore::InputType::capsLockStateMayHaveChanged):
1135         * html/InputType.h:
1136         (WebCore::InputType::capsLockIndicatorElement):
1137         Pipe notification of changes in the caps locks state to the <input> element
1138         rather than the RenderTextControlSingleLine. Also add an accessor for the caps
1139         lock indicator element in the shadow DOM.
1140
1141         * html/TextFieldInputType.cpp:
1142         (WebCore::TextFieldInputType::forwardEvent):
1143         (WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):
1144         (WebCore::TextFieldInputType::createShadowSubtree):
1145         (WebCore::TextFieldInputType::capsLockIndicatorElement):
1146         (WebCore::TextFieldInputType::destroyShadowSubtree):
1147         (WebCore::TextFieldInputType::shouldDrawCapsLockIndicator):
1148         (WebCore::TextFieldInputType::capsLockStateMayHaveChanged):
1149         * html/TextFieldInputType.h:
1150         Add a new element to the text field shadow DOM to act as the caps lock indicator.
1151         Give it a pseudo-element ID of -webkit-caps-lock-indicator so it can be referenced
1152         from CSS. The element is always in the DOM for a password field. It toggles between
1153         display: none and display: block depending on the state of the caps lock key.
1154
1155         * page/EventHandler.cpp:
1156         (WebCore::EventHandler::capsLockStateMayHaveChanged):
1157         Pipe notification of changes in the caps locks state to the <input> element
1158         rather than the RenderTextControlSingleLine.
1159
1160         * rendering/RenderTextControlSingleLine.cpp:
1161         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
1162         (WebCore::RenderTextControlSingleLine::paint): Deleted.
1163         (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged): Deleted.
1164         * rendering/RenderTextControlSingleLine.h:
1165         Remove logic for drawing the caps lock indicator.
1166
1167         * rendering/RenderTheme.cpp:
1168         (WebCore::RenderTheme::adjustStyle):
1169         (WebCore::RenderTheme::paint):
1170         (WebCore::RenderTheme::paintMeter):
1171         (WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
1172         (WebCore::RenderTheme::paintCapsLockIndicator):
1173         (WebCore::RenderTheme::shouldHaveCapsLockIndicator):
1174         * rendering/RenderTheme.h:
1175         (WebCore::RenderTheme::paintCapsLockIndicator): Deleted.
1176         * rendering/RenderThemeIOS.h:
1177         * rendering/RenderThemeIOS.mm:
1178         (WebCore::RenderThemeIOS::shouldHaveCapsLockIndicator):
1179         * rendering/RenderThemeMac.h:
1180         * rendering/RenderThemeMac.mm:
1181         (WebCore::RenderThemeMac::shouldHaveCapsLockIndicator):
1182         (WebCore::RenderThemeMac::paintCapsLockIndicator): Deleted.
1183         Now that the caps lock indicator is implemented like other aspects of form controls,
1184         the theme code can be converted to be similar as well.
1185
1186 2015-02-21  David Kilzer  <ddkilzer@apple.com>
1187
1188         [iOS] Fix build failure after including CoreMediaSoftLink.h in WebVideoFullscreenInterfaceAVKit.mm
1189         <http://webkit.org/b/141816>
1190
1191         Attempt to fix the following build failure:
1192
1193             WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:68:1: error: call to 'CoreMediaLibrary' is ambiguous
1194             SOFT_LINK(CoreMedia, CMTimeRangeContainsTime, Boolean, (CMTimeRange range, CMTime time), (range, time))
1195             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1196             In file included from WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:34:
1197             In file included from WebCore/platform/cf/CoreMediaSoftLink.h:32:
1198             WebCore/platform/mac/SoftLinking.h:107:79: note: expanded from macro 'SOFT_LINK'
1199             <scratch space>:58:1: note: expanded from here
1200             CoreMediaLibrary
1201             ^~~~~~~~~~~~~~~~
1202             In file included from WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:34:
1203             WebCore/platform/cf/CoreMediaSoftLink.h:35:1: note: candidate function
1204             SOFT_LINK_FRAMEWORK_HEADER(WebCore, CoreMedia)
1205             ^
1206             In file included from WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:34:
1207             In file included from WebCore/platform/cf/CoreMediaSoftLink.h:32:
1208             WebCore/platform/mac/SoftLinking.h:298:18: note: expanded from macro 'SOFT_LINK_FRAMEWORK_HEADER'
1209             <scratch space>:42:1: note: expanded from here
1210             CoreMediaLibrary
1211             ^
1212             WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:67:1: note: candidate function
1213             SOFT_LINK_FRAMEWORK(CoreMedia)
1214             ^
1215             In file included from WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:34:
1216             In file included from WebCore/platform/cf/CoreMediaSoftLink.h:32:
1217             WebCore/platform/mac/SoftLinking.h:46:18: note: expanded from macro 'SOFT_LINK_FRAMEWORK'
1218             <scratch space>:51:1: note: expanded from here
1219             CoreMediaLibrary
1220             ^
1221
1222         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Remove the
1223         SOFT_LINK_FRAMEWORK(CoreMedia) macro since the remaining
1224         SOFT_LINK() and SOFT_LINK_CONSTANT() macros can use the
1225         CoreMediaLibrary() method exposed by CoreMediaSoftLink.h.
1226
1227 2015-02-21  David Kilzer  <ddkilzer@apple.com>
1228
1229         Add SOFT_LINK_CONSTANT_SOURCE() cross-platform macro and start using it
1230         <http://webkit.org/b/141816>
1231
1232         Reviewed by Alexey Proskuryakov.
1233
1234         * WebCore.vcxproj/WebCore.vcxproj:
1235         * WebCore.vcxproj/WebCore.vcxproj.filters:
1236         - Remove CoreMediaSoftLinking.h.
1237
1238         * platform/cf/CoreMediaSoftLink.cpp:
1239         - Add kCMTimeZero constant.
1240         * platform/cf/CoreMediaSoftLink.h:
1241         - Add SOFT_LINK_FRAMEWORK_HEADER() macro for CoreMedia.
1242         - Add kCMTimeZero constant.
1243
1244         * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h: Remove.
1245
1246         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1247         - Remove reference to CoreMediaSoftLinking.h and update comment.
1248         (WebCore::MediaPlayerPrivateAVFoundationCF::isAvailable):
1249         - Switch to using new method to check if a framework is
1250           available.
1251
1252         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1253         - Remove all local soft-linking macros for CoreMedia.
1254           CoreMediaSoftLink.h handles everything now.
1255         (WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
1256         - Switch to using new method to check if a framework is
1257           available.
1258
1259         * platform/mac/SoftLinking.h:
1260         (SOFT_LINK_FRAMEWORK_HEADER): Add.  Defines
1261         is_Name_FrameworkAvailable() macro.
1262         (SOFT_LINK_FRAMEWORK_SOURCE): Update to make it work with
1263         optional framework checks without a separate macro.
1264         (SOFT_LINK_CONSTANT_HEADER): Add.
1265         (SOFT_LINK_CONSTANT_SOURCE): Add.
1266         - Support soft-links to constants.
1267
1268         * platform/win/SoftLinking.h:
1269         (SOFT_LINK_FRAMEWORK_HELPER): Add.  Copied from
1270         SOFT_LINK_LIBRARY_HELPER, with addition of namespace and
1271         non-static function.
1272         (SOFT_LINK_FRAMEWORK): Add.  Copied from SOFT_LINK_LIBRARY.
1273         (SOFT_LINK_DEBUG_FRAMEWORK): Add.  Copied from
1274         SOFT_LINK_DEBUG_LIBRARY.
1275         (SOFT_LINK_FRAMEWORK_HEADER): Add.  Defines
1276         is_Name_FrameworkAvailable() macro.
1277         (SOFT_LINK_FRAMEWORK_SOURCE): Redefine in terms of
1278         SOFT_LINK_FRAMEWORK/SOFT_LINK_DEBUG_FRAMEWORK.
1279         (SOFT_LINK_CONSTANT_HEADER): Add.
1280         (SOFT_LINK_CONSTANT_SOURCE): Add.
1281         - Support soft-links to constants.
1282
1283 2015-02-20  David Kilzer  <ddkilzer@apple.com>
1284
1285         Make namespace configurable for SOFT_LINK_*_{HEADER,SOURCE}() macros
1286         <http://webkit.org/b/141849>
1287
1288         Reviewed by Brent Fulgham.
1289
1290         This patch does the following:
1291         - Add namespace argument to the SOFT_LINK_*_{HEADER,SOURCE}()
1292           macros for reuse in other projects.
1293         - Adds SOFT_LINK_FRAMEWORK_SOURCE() macro in preparation for Bug
1294           141816.
1295         - Adds back framework argument to SOFT_LINK_FUNCTION_HEADER()
1296           and includes framework name in generated function names.  This
1297           adds more entropy to the names in case there are two functions
1298           with the same name in different frameworks.
1299
1300         * platform/cf/CoreMediaSoftLink.cpp:
1301         - Add FIXME about USE(COREMEDIA).
1302         - Switch from SOFT_LINK_FRAMEWORK() to
1303           SOFT_LINK_FRAMEWORK_SOURCE().
1304         * platform/cf/CoreMediaSoftLink.h:
1305         - Add FIXME about USE(COREMEDIA).
1306         - Add back framework argument to SOFT_LINK_FUNCTION_HEADER()
1307           macros.
1308
1309         * platform/mac/SoftLinking.h:
1310         - Add missing header guards.
1311         - Add pragmas for different macro groups.
1312         (SOFT_LINK_FRAMEWORK_SOURCE): Add.
1313         (SOFT_LINK_FUNCTION_HEADER): Move. Add back framework argument.
1314         (SOFT_LINK_FUNCTION_SOURCE): Move.
1315         - Add framework name to generated function names.
1316         - Incorporates namespace so that it doesn't have to be listed in
1317           the *SoftLink.{cpp,h} file.
1318
1319         * platform/win/SoftLinking.h:
1320         - Add pragmas for different macro groups.
1321         (SOFT_LINK_FRAMEWORK_SOURCE): Add.
1322         (SOFT_LINK_FUNCTION_HEADER): Move. Add back framework argument.
1323         (SOFT_LINK_FUNCTION_SOURCE): Move.
1324         - Add framework name to generated function names.
1325         - Incorporates namespace so that it doesn't have to be listed in
1326           the *SoftLink.{cpp,h} file.
1327
1328 2015-02-20  Brent Fulgham  <bfulgham@apple.com>
1329
1330         [Gtk] Unreviewed build fix.
1331
1332         * platform/ScrollAnimatorNone.cpp:
1333         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone): Forget to update two
1334         uses of ScrollableArea.
1335
1336 2015-02-20  Brent Fulgham  <bfulgham@apple.com>
1337
1338         Scrollbars and ScrollAnimators must always have a ScrollableArea
1339         https://bugs.webkit.org/show_bug.cgi?id=141855
1340
1341         Reviewed by Simon Fraser.
1342
1343         No change in functionality.
1344         
1345         Change users of the scrollAnimator() method to expect a reference instead of a pointer. Also get rid of
1346         a number of unnecessary nullptr checks.
1347
1348         * accessibility/AccessibilityScrollbar.cpp:
1349         (WebCore::AccessibilityScrollbar::setValue):
1350         * css/SelectorCheckerTestFunctions.h:
1351         (WebCore::scrollbarMatchesCornerPresentPseudoClass):
1352         * page/FrameView.cpp:
1353         (WebCore::FrameView::createScrollbar):
1354         (WebCore::FrameView::setFixedVisibleContentRect):
1355         * page/scrolling/ScrollingCoordinator.cpp:
1356         (WebCore::ScrollingCoordinator::handleWheelEventPhase):
1357         * platform/PopupMenuClient.h:
1358         * platform/ScrollAnimator.cpp:
1359         (WebCore::ScrollAnimator::ScrollAnimator):
1360         (WebCore::ScrollAnimator::scroll):
1361         (WebCore::ScrollAnimator::handleWheelEvent):
1362         (WebCore::ScrollAnimator::notifyPositionChanged):
1363         (WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers):
1364         * platform/ScrollAnimator.h:
1365         (WebCore::ScrollAnimator::ScrollAnimator::scrollableArea):
1366         * platform/ScrollAnimatorNone.cpp:
1367         * platform/ScrollAnimatorNone.h:
1368         * platform/ScrollView.cpp:
1369         (WebCore::ScrollView::createScrollbar):
1370         * platform/ScrollableArea.cpp:
1371         (WebCore::ScrollableArea::scrollAnimator):
1372         (WebCore::ScrollableArea::scroll):
1373         (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
1374         (WebCore::ScrollableArea::notifyScrollPositionChanged):
1375         (WebCore::ScrollableArea::scrollPositionChanged):
1376         (WebCore::ScrollableArea::handleWheelEvent):
1377         (WebCore::ScrollableArea::handleTouchEvent):
1378         (WebCore::ScrollableArea::mouseEnteredScrollbar):
1379         (WebCore::ScrollableArea::mouseExitedScrollbar):
1380         (WebCore::ScrollableArea::didAddScrollbar):
1381         (WebCore::ScrollableArea::willRemoveScrollbar):
1382         (WebCore::ScrollableArea::verticalScrollbarLayerDidChange):
1383         (WebCore::ScrollableArea::horizontalScrollbarLayerDidChange):
1384         * platform/ScrollableArea.h:
1385         * platform/Scrollbar.cpp:
1386         (WebCore::Scrollbar::createNativeScrollbar):
1387         (WebCore::Scrollbar::Scrollbar):
1388         (WebCore::Scrollbar::scrollbarOverlayStyle):
1389         (WebCore::Scrollbar::isScrollableAreaActive):
1390         (WebCore::Scrollbar::offsetDidChange):
1391         (WebCore::Scrollbar::autoscrollPressedPart):
1392         (WebCore::Scrollbar::moveThumb):
1393         (WebCore::Scrollbar::mouseMoved):
1394         (WebCore::Scrollbar::mouseEntered):
1395         (WebCore::Scrollbar::mouseExited):
1396         (WebCore::Scrollbar::mouseUp):
1397         (WebCore::Scrollbar::shouldParticipateInHitTesting):
1398         (WebCore::Scrollbar::isWindowActive):
1399         (WebCore::Scrollbar::invalidateRect):
1400         (WebCore::Scrollbar::convertToContainingView):
1401         (WebCore::Scrollbar::convertFromContainingView):
1402         (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
1403         * platform/Scrollbar.h:
1404         (WebCore::Scrollbar::scrollableArea):
1405         (WebCore::Scrollbar::disconnectFromScrollableArea): Deleted.
1406         * platform/ios/ScrollAnimatorIOS.mm:
1407         (WebCore::ScrollAnimatorIOS::handleTouchEvent):
1408         (WebCore::ScrollAnimatorIOS::determineScrollableAreaForTouchSequence):
1409         * platform/mac/ScrollAnimatorMac.h:
1410         * platform/mac/ScrollAnimatorMac.mm:
1411         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
1412         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
1413         (-[WebScrollbarPainterDelegate scrollAnimator]):
1414         (-[WebScrollbarPainterDelegate layer]):
1415         (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
1416         (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
1417         (WebCore::ScrollAnimator::create):
1418         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1419         (WebCore::ScrollAnimatorMac::scroll):
1420         (WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary):
1421         (WebCore::ScrollAnimatorMac::adjustScrollPositionToBoundsIfNecessary):
1422         (WebCore::ScrollAnimatorMac::immediateScrollTo):
1423         (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
1424         (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
1425         (WebCore::ScrollAnimatorMac::verticalScrollbarLayerDidChange):
1426         (WebCore::ScrollAnimatorMac::horizontalScrollbarLayerDidChange):
1427         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
1428         (WebCore::ScrollAnimatorMac::pinnedInDirection):
1429         (WebCore::ScrollAnimatorMac::isAlreadyPinnedInDirectionOfGesture):
1430         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
1431         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
1432         (WebCore::ScrollAnimatorMac::stretchAmount):
1433         (WebCore::ScrollAnimatorMac::canScrollHorizontally):
1434         (WebCore::ScrollAnimatorMac::canScrollVertically):
1435         (WebCore::ScrollAnimatorMac::absoluteScrollPosition):
1436         (WebCore::ScrollAnimatorMac::immediateScrollByWithoutContentEdgeConstraints):
1437         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
1438         (WebCore::ScrollAnimatorMac::setVisibleScrollerThumbRect):
1439         * rendering/RenderLayer.cpp:
1440         (WebCore::RenderLayer::RenderLayer):
1441         (WebCore::RenderLayer::createScrollbar):
1442         (WebCore::RenderLayer::destroyScrollbar):
1443         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
1444         * rendering/RenderListBox.cpp:
1445         (WebCore::RenderListBox::createScrollbar):
1446         (WebCore::RenderListBox::destroyScrollbar):
1447         * rendering/RenderMenuList.cpp:
1448         (RenderMenuList::createScrollbar):
1449         * rendering/RenderMenuList.h:
1450         * rendering/RenderScrollbar.cpp:
1451         (WebCore::RenderScrollbar::createCustomScrollbar):
1452         (WebCore::RenderScrollbar::RenderScrollbar):
1453         * rendering/RenderScrollbar.h:
1454         * rendering/RenderSearchField.cpp:
1455         (WebCore::RenderSearchField::createScrollbar):
1456         * rendering/RenderSearchField.h:
1457
1458 2015-02-20  Enrica Casucci  <enrica@apple.com>
1459
1460         [WK2] Add support for font panel on OS X.
1461         https://bugs.webkit.org/show_bug.cgi?id=141777
1462
1463         Reviewed by Tim Horton.
1464
1465         This patch adds the necessary hooks to the Editor class to support
1466         the font panel.
1467
1468         * editing/Editor.h:
1469         * editing/mac/EditorMac.mm:
1470         (WebCore::Editor::applyFontStyles):
1471
1472 2015-02-20  Zalan Bujtas  <zalan@apple.com>
1473
1474         Invalid assert in CompositeEditCommand::insertNodeAfter/insertNodeBefore
1475         https://bugs.webkit.org/show_bug.cgi?id=141854
1476
1477         Reviewed by Ryosuke Niwa.
1478
1479         Inserting content before/after the body as the result of editing is a valid operation.
1480         This assert was originally introduced to cover cases where edited content would get moved
1481         out of body. However, asserting such operation properly is not possible atm.
1482
1483         Test: editing/inserting/insert-as-body-sibling.html
1484
1485         * editing/CompositeEditCommand.cpp:
1486         (WebCore::CompositeEditCommand::insertNodeBefore):
1487         (WebCore::CompositeEditCommand::insertNodeAfter):
1488
1489 2015-02-20  Chris Dumez  <cdumez@apple.com>
1490
1491         [WK2] Add more detailed diagnostic logging for measuring network cache efficacy
1492         https://bugs.webkit.org/show_bug.cgi?id=141803
1493         <rdar://problem/19632080>
1494
1495         Reviewed by Antti Koivisto.
1496
1497         Add more diagnostic logging keys for the network cache.
1498
1499         * page/DiagnosticLoggingKeys.cpp:
1500         (WebCore::DiagnosticLoggingKeys::missingValidatorFieldsKey):
1501         (WebCore::DiagnosticLoggingKeys::noLongerInCacheKey):
1502         (WebCore::DiagnosticLoggingKeys::isReloadIgnoringCacheDataKey):
1503         (WebCore::DiagnosticLoggingKeys::isAttachmentKey):
1504         (WebCore::DiagnosticLoggingKeys::isConditionalRequestKey):
1505         (WebCore::DiagnosticLoggingKeys::cacheControlNoStoreKey):
1506         (WebCore::DiagnosticLoggingKeys::uncacheableStatusCodeKey):
1507         (WebCore::DiagnosticLoggingKeys::unsupportedHTTPMethodKey):
1508         (WebCore::DiagnosticLoggingKeys::unusableCachedEntryKey):
1509         (WebCore::DiagnosticLoggingKeys::varyingHeaderMismatchKey):
1510         (WebCore::WebCore::DiagnosticLoggingKeys::notHTTPFamilyKey):
1511         (WebCore::DiagnosticLoggingKeys::notInCacheKey):
1512         (WebCore::DiagnosticLoggingKeys::noLongerInCacheFailureKey): Deleted.
1513         (WebCore::DiagnosticLoggingKeys::unhandledRequestFailureKey): Deleted.
1514         (WebCore::DiagnosticLoggingKeys::unusableCachedEntryFailureKey): Deleted.
1515         * page/DiagnosticLoggingKeys.h:
1516
1517 2015-02-20  Tim Horton  <timothy_horton@apple.com>
1518
1519         <attachment> turns the wrong blue when you highlight it
1520         https://bugs.webkit.org/show_bug.cgi?id=141853
1521
1522         Reviewed by Simon Fraser.
1523
1524         * rendering/RenderAttachment.h:
1525         * rendering/RenderReplaced.cpp:
1526         (WebCore::RenderReplaced::shouldDrawSelectionTint):
1527         (WebCore::RenderReplaced::paint):
1528         * rendering/RenderReplaced.h:
1529         Don't draw the selection tint for RenderAttachment.
1530
1531 2015-02-20  Tim Horton  <timothy_horton@apple.com>
1532
1533         Allow <attachment> elements to be focused
1534         https://bugs.webkit.org/show_bug.cgi?id=141847
1535
1536         Reviewed by Enrica Casucci.
1537
1538         * css/html.css:
1539         (attachment:focus):
1540         Disable focus rings for <attachment>.
1541
1542         * html/HTMLAttachmentElement.cpp:
1543         (WebCore::HTMLAttachmentElement::setFocus):
1544         * html/HTMLAttachmentElement.h:
1545         Allow HTMLAttachmentElement to get editing focus.
1546         Let RenderAttachment know when focus changes.
1547
1548         * rendering/RenderAttachment.cpp:
1549         (WebCore::RenderAttachment::paintReplaced):
1550         Paint the background in cyan when we are inside the selection or have focus.
1551         Otherwise, it will be gray.
1552
1553         (WebCore::RenderAttachment::focusChanged):
1554         When focus changes, repaint.
1555
1556         * rendering/RenderAttachment.h:
1557
1558 2015-02-20  Brent Fulgham  <bfulgham@apple.com>
1559
1560         Rename ScrollElasticityController to ScrollController
1561         https://bugs.webkit.org/show_bug.cgi?id=141842
1562
1563         Reviewed by Simon Fraser.
1564
1565         No change in functionality.
1566
1567         * PlatformMac.cmake:
1568         * WebCore.order:
1569         * WebCore.xcodeproj/project.pbxproj:
1570         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
1571         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
1572         (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
1573         (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
1574         (WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer):
1575         * platform/mac/ScrollAnimatorMac.h:
1576         * platform/mac/ScrollAnimatorMac.mm:
1577         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1578         (WebCore::ScrollAnimatorMac::isRubberBandInProgress):
1579         (WebCore::ScrollAnimatorMac::handleWheelEvent):
1580         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
1581         * platform/mac/ScrollController.h: Copied from WebCore/platform/mac/ScrollElasticityController.h.
1582         (WebCore::ScrollControllerClient::~ScrollControllerClient):
1583         (WebCore::ScrollElasticityControllerClient::~ScrollElasticityControllerClient): Deleted.
1584         * platform/mac/ScrollController.mm: Copied from WebCore/platform/mac/ScrollElasticityController.mm.
1585         (WebCore::ScrollController::ScrollController):
1586         (WebCore::ScrollController::handleWheelEvent):
1587         (WebCore::ScrollController::snapRubberBandTimerFired):
1588         (WebCore::ScrollController::isRubberBandInProgress):
1589         (WebCore::ScrollController::stopSnapRubberbandTimer):
1590         (WebCore::ScrollController::snapRubberBand):
1591         (WebCore::ScrollController::shouldRubberBandInHorizontalDirection):
1592         (WebCore::ScrollElasticityController::ScrollElasticityController): Deleted.
1593         (WebCore::ScrollElasticityController::handleWheelEvent): Deleted.
1594         (WebCore::ScrollElasticityController::snapRubberBandTimerFired): Deleted.
1595         (WebCore::ScrollElasticityController::isRubberBandInProgress): Deleted.
1596         (WebCore::ScrollElasticityController::stopSnapRubberbandTimer): Deleted.
1597         (WebCore::ScrollElasticityController::snapRubberBand): Deleted.
1598         (WebCore::ScrollElasticityController::shouldRubberBandInHorizontalDirection): Deleted.
1599         * platform/mac/ScrollElasticityController.h: Removed.
1600         * platform/mac/ScrollElasticityController.mm: Removed.
1601
1602 2015-02-20  Alexey Proskuryakov  <ap@apple.com>
1603
1604         Remove svn:keywords property.
1605
1606         As far as I can tell, the property had no effect on any of these files, but also,
1607         when it has effect it's likely harmful.
1608
1609         * Modules/mediacontrols/assets-apple-iOS.svg: Removed property svn:keywords.
1610         * Modules/mediacontrols/mediaControlsBase.css: Removed property svn:keywords.
1611         * Modules/mediacontrols/mediaControlsBase.js: Removed property svn:keywords.
1612         * bindings/js/JSDeviceMotionEventCustom.cpp: Removed property svn:keywords.
1613         * css/CSSKeyframeRule.cpp: Removed property svn:keywords.
1614         * css/CSSKeyframeRule.h: Removed property svn:keywords.
1615         * css/CSSKeyframesRule.cpp: Removed property svn:keywords.
1616         * css/CSSKeyframesRule.h: Removed property svn:keywords.
1617         * css/WebKitCSSFilterValue.cpp: Removed property svn:keywords.
1618         * css/WebKitCSSFilterValue.h: Removed property svn:keywords.
1619         * css/plugIns.css: Removed property svn:keywords.
1620         * dom/AnimationEvent.cpp: Removed property svn:keywords.
1621         * dom/AnimationEvent.h: Removed property svn:keywords.
1622         * dom/DeviceMotionClient.h: Removed property svn:keywords.
1623         * dom/DeviceMotionController.cpp: Removed property svn:keywords.
1624         * dom/DeviceMotionController.h: Removed property svn:keywords.
1625         * dom/DeviceMotionData.cpp: Removed property svn:keywords.
1626         * dom/DeviceMotionData.h: Removed property svn:keywords.
1627         * dom/DeviceMotionEvent.cpp: Removed property svn:keywords.
1628         * dom/DeviceMotionEvent.h: Removed property svn:keywords.
1629         * html/canvas/ANGLEInstancedArrays.cpp: Removed property svn:keywords.
1630         * html/canvas/ANGLEInstancedArrays.h: Removed property svn:keywords.
1631         * html/canvas/OESTextureFloatLinear.cpp: Removed property svn:keywords.
1632         * html/canvas/OESTextureFloatLinear.h: Removed property svn:keywords.
1633         * html/canvas/OESTextureHalfFloatLinear.cpp: Removed property svn:keywords.
1634         * html/canvas/OESTextureHalfFloatLinear.h: Removed property svn:keywords.
1635         * html/shadow/MediaControlsApple.cpp: Removed property svn:keywords.
1636         * html/shadow/MediaControlsApple.h: Removed property svn:keywords.
1637         * page/Frame.h: Removed property svn:keywords.
1638         * page/scrolling/ScrollingConstraints.cpp: Removed property svn:keywords.
1639         * page/scrolling/ScrollingConstraints.h: Removed property svn:keywords.
1640         * page/scrolling/ScrollingStateStickyNode.cpp: Removed property svn:keywords.
1641         * page/scrolling/ios/ScrollingTreeIOS.cpp: Removed property svn:keywords.
1642         * page/scrolling/mac/ScrollingTreeStickyNode.h: Removed property svn:keywords.
1643         * platform/ControlStates.h: Removed property svn:keywords.
1644         * platform/ScrollbarTheme.cpp: Removed property svn:keywords.
1645         * platform/graphics/GraphicsLayerUpdater.cpp: Removed property svn:keywords.
1646         * platform/graphics/GraphicsLayerUpdater.h: Removed property svn:keywords.
1647         * platform/graphics/ca/TileController.h: Removed property svn:keywords.
1648         * platform/graphics/ca/mac/WebTiledBackingLayer.h: Removed property svn:keywords.
1649         * platform/graphics/filters/FilterOperation.cpp: Removed property svn:keywords.
1650         * platform/graphics/filters/FilterOperation.h: Removed property svn:keywords.
1651         * platform/graphics/filters/FilterOperations.h: Removed property svn:keywords.
1652         * platform/ios/SystemMemory.h: Removed property svn:keywords.
1653         * platform/mock/ScrollbarThemeMock.cpp: Removed property svn:keywords.
1654         * platform/mock/ScrollbarThemeMock.h: Removed property svn:keywords.
1655         * platform/spi/cocoa/ServersSPI.h: Removed property svn:keywords.
1656         * platform/text/mac/ios-encodings.txt: Removed property svn:keywords.
1657         * rendering/FilterEffectRenderer.cpp: Removed property svn:keywords.
1658         * rendering/FilterEffectRenderer.h: Removed property svn:keywords.
1659         * rendering/RenderGeometryMap.cpp: Removed property svn:keywords.
1660         * rendering/RenderGeometryMap.h: Removed property svn:keywords.
1661         * rendering/RenderMediaControlElements.h: Removed property svn:keywords.
1662         * rendering/TextAutoSizing.cpp: Removed property svn:keywords.
1663         * rendering/TextAutoSizing.h: Removed property svn:keywords.
1664         * rendering/style/StylePendingImage.h: Removed property svn:keywords.
1665
1666 2015-02-20  Brent Fulgham  <bfulgham@apple.com>
1667
1668         [Mac] REGRESSION: Scroll snap points broken after r180018
1669         https://bugs.webkit.org/show_bug.cgi?id=141821
1670         <rdar://problem/19898333>
1671
1672         Reviewed by Simon Fraser.
1673
1674         * page/EventHandler.cpp:
1675         (WebCore::EventHandler::platformNotifySnapIfNecessary): Added stub.
1676         (WebCore::EventHandler::handleWheelEvent): Call new 'platformNotifySnapIfNecessary' method
1677         to catch the 'ended wheel' gesture.
1678         * page/EventHandler.h:
1679         * page/mac/EventHandlerMac.mm:
1680         (WebCore::EventHandler::platformNotifySnapIfNecessary): Added. If the wheel event signifies
1681         the end of a wheel/swipe gesture, let the snap logic decide if it should do anything
1682         (i.e., trigger an animation)
1683         * platform/ScrollAnimator.cpp:
1684         (WebCore::ScrollAnimator::processWheelEventForScrollSnap): Added.
1685         * platform/ScrollAnimator.h:
1686
1687 2015-02-20  Eric Carlson  <eric.carlson@apple.com>
1688
1689         [iOS] cleanup AirPlay code
1690         https://bugs.webkit.org/show_bug.cgi?id=141811
1691
1692         Reviewed by Jer Noble.
1693
1694         * Configurations/FeatureDefines.xcconfig: IOS_AIRPLAY -> WIRELESS_PLAYBACK_TARGET.
1695
1696         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp: Ditto.
1697         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
1698         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
1699
1700         * Modules/mediacontrols/MediaControlsHost.cpp:
1701         (WebCore::MediaControlsHost::externalDeviceDisplayName): Ditto.
1702         (WebCore::MediaControlsHost::externalDeviceType):
1703
1704         * dom/EventNames.h: Ditto.
1705         * dom/EventNames.in:
1706
1707         * html/HTMLMediaElement.cpp:
1708         (WebCore::HTMLMediaElement::HTMLMediaElement): Ditto.
1709         (WebCore::HTMLMediaElement::~HTMLMediaElement): Ditto.
1710         (WebCore::HTMLMediaElement::parseAttribute):
1711         * html/HTMLMediaElement.h:
1712         * html/HTMLMediaElement.idl:
1713
1714         * html/HTMLMediaSession.cpp:
1715         (WebCore::restrictionName): Ditto.
1716         (WebCore::HTMLMediaSession::applyMediaPlayerRestrictions): Ditto.
1717         * html/HTMLMediaSession.h:
1718
1719         * html/HTMLVideoElement.cpp:
1720         (WebCore::HTMLVideoElement::parseAttribute): Ditto.
1721         * html/HTMLVideoElement.h:
1722         * html/HTMLVideoElement.idl:
1723
1724         * page/Settings.in: Ditto.
1725
1726         * platform/audio/MediaSessionManager.h:
1727         * platform/audio/ios/MediaSessionManagerIOS.h:
1728         * platform/audio/ios/MediaSessionManagerIOS.mm: Ditto.
1729
1730         * platform/graphics/MediaPlayer.cpp:
1731         (WebCore::MediaPlayer::showPlaybackTargetPicker): Deleted.
1732         (WebCore::MediaPlayer::hasWirelessPlaybackTargets): Deleted.
1733         * platform/graphics/MediaPlayer.h:
1734         * platform/graphics/MediaPlayerPrivate.h:
1735         (WebCore::MediaPlayerPrivateInterface::showPlaybackTargetPicker): Deleted.
1736         (WebCore::MediaPlayerPrivateInterface::hasWirelessPlaybackTargets): Deleted.
1737         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1738         (WebCore::MediaPlayerPrivateAVFoundation::rateChanged):
1739         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
1740
1741         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1742         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1743         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1744         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): IOS_AIRPLAY -> WIRELESS_PLAYBACK_TARGET.
1745         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Ditto.
1746         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Ditto.
1747         (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Ditto.
1748         (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Ditto.
1749
1750 2015-02-20  Dhi Aurrahman  <diorahman@rockybars.com>
1751
1752         Language ranges containing asterisks must be quoted as strings
1753         https://bugs.webkit.org/show_bug.cgi?id=141659
1754
1755         Reviewed by Benjamin Poulain.
1756
1757         As specified in [1], the language ranges containing asterisks must be quoted as strings.
1758
1759         [1] http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo.
1760
1761         * css/CSSGrammar.y.in:
1762         * css/CSSParser.cpp:
1763         (WebCore::CSSParser::realLex):
1764
1765 2015-02-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1766
1767         Use std::unique_ptr instead of PassOwnPtr|OwnPtr in MediaPlayerFoo classes
1768         https://bugs.webkit.org/show_bug.cgi?id=137765
1769
1770         Reviewed by Ryosuke Niwa.
1771
1772         As a step to use std::unique_ptr|std::make_unique<>, this patch changes use of OwnPtr|PassOwnPtr
1773         with std::unique_ptr<>|std::make_unique<>. To remove all create() factory function, lambdas is
1774         used in registerMediaEngine().
1775
1776         No new tests, no behavior changes.
1777
1778         * WebCore.exp.in:
1779         * html/HTMLMediaElement.cpp:
1780         (WebCore::HTMLMediaElement::parseAttribute):
1781         * html/HTMLMediaElement.h:
1782         * platform/graphics/MediaPlayer.cpp:
1783         (WebCore::NullMediaPlayerPrivate::NullMediaPlayerPrivate):
1784         (WebCore::MediaPlayer::MediaPlayer):
1785         (WebCore::MediaPlayer::loadWithNextMediaEngine):
1786         (WebCore::createNullMediaPlayer): Deleted.
1787         * platform/graphics/MediaPlayer.h:
1788         (WebCore::MediaPlayer::create): Deleted.
1789         * platform/graphics/MediaPlayerPrivate.h:
1790         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1791         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1792         (WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
1793         (WebCore::MediaPlayerPrivateAVFoundationCF::create): Deleted.
1794         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
1795         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1796         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1797         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
1798         (WebCore::MediaPlayerPrivateAVFoundationObjC::create): Deleted.
1799         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
1800         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1801         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
1802         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::create): Deleted.
1803         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1804         (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
1805         (WebCore::MediaPlayerPrivateGStreamer::create): Deleted.
1806         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1807         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1808         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1809         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
1810         (WebCore::MediaPlayerPrivateQTKit::create): Deleted.
1811         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
1812         (WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):
1813         (WebCore::MediaPlayerPrivateMediaFoundation::create): Deleted.
1814         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
1815         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
1816         (WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
1817         (WebCore::MockMediaPlayerMediaSource::create): Deleted.
1818         * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
1819
1820 2015-02-19  David Kilzer  <ddkilzer@apple.com>
1821
1822         Rename SOFT_LINK_FUNCTION_{DECL,IMPL}() to SOFT_LINK_FUNCTION_{HEADER,SOURCE}()
1823
1824         Rubber-stamped by Brent Fulgham.
1825
1826         "HEADER" and "SOURCE" seem clearer than "DECL" and "IMPL", and
1827         Brent agreed when I talked to him in person.
1828
1829         * platform/cf/CoreMediaSoftLink.cpp:
1830         * platform/cf/CoreMediaSoftLink.h:
1831         * platform/mac/SoftLinking.h:
1832         * platform/win/SoftLinking.h:
1833         - Do the rename.
1834
1835 2015-02-19  David Kilzer  <ddkilzer@apple.com>
1836
1837         Move more CoreMedia soft-linked functions to CoreMediaSoftLink.{cpp,h}
1838         <http://webkit.org/b/141791>
1839
1840         Reviewed by Alexey Proskuryakov.
1841
1842         * Configurations/WebCore.unexp:
1843         - Remove five more symbols.
1844
1845         * Modules/plugins/QuickTimePluginReplacement.mm:
1846         - Remove all local soft-links and include CoreMediaSoftLink.h.
1847           Note that SOFT_LINK_FRAMEWORK_OPTIONAL() should not have been
1848           used here since we didn't use the optional function soft-link
1849           method.
1850
1851         * WebCore.vcxproj/WebCore.vcxproj.filters:
1852         * WebCore.vcxproj/WebCoreCFNetwork.props:
1853         * WebCore.xcodeproj/project.pbxproj:
1854         - Add CoreMediaSPI.h to the project.
1855
1856         * platform/cf/CoreMediaSoftLink.cpp:
1857         * platform/cf/CoreMediaSoftLink.h:
1858         - Add three cross-platform symbols, five Cocoa-only symbols, and
1859           two Windows-only symbols (based on current usage, not
1860           availability on each platform).
1861         - Include CoreMediaSPI.h header.
1862         - Include <CoreMedia/CoreMedia.h> instead of just CMTime.h.
1863
1864         * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
1865         - Remove all CoreMedia soft-linked functions.  Constants remain.
1866
1867         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
1868         - Remove one CoreMedia soft-linked method.
1869
1870         * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
1871         - Remove all CoreMedia soft-linked funtions.  With this change,
1872           we are already realizing space savings for duplicate
1873           SOFT_LINK_FRAMEWORK() calls.  (On Windows, there was code
1874           generated for many unused functions included by
1875           CoreMediaSoftLinking.h.)
1876
1877         * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
1878         - Remove all CoreMedia soft-linked funtions.  Constants remain.
1879
1880         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1881         - Remove duplicate header included by CoreMediaSoftLink.h.
1882
1883         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1884         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1885         - Remove all CoreMedia soft-linked funtions.  Constants remain.
1886
1887         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1888         - Remove three CoreMedia soft-linked methods.
1889
1890         * platform/mac/PlatformClockCM.mm:
1891         - Remove two CoreMedia soft-linked methods.
1892
1893         * platform/mac/SerializedPlatformRepresentationMac.mm:
1894         - Remove only CoreMedia soft-linked funtion.  It wasn't even
1895           used.
1896
1897         * platform/mediastream/mac/AVVideoCaptureSource.mm:
1898         - Remove two CoreMedia soft-linked method.
1899
1900         * platform/spi/cf/CoreMediaSPI.h:
1901         - Add for SPI from CMNotificationCenter.h.
1902
1903 2015-02-19  David Hyatt  <hyatt@apple.com>
1904
1905         Columns are splitting unsplittable content.
1906         https://bugs.webkit.org/show_bug.cgi?id=141807
1907         <rdar://problem/18387659>
1908
1909         Reviewed by Dean Jackson.
1910
1911         Added inline-table-dynamic-movement.html
1912
1913         * rendering/RenderBlockFlow.cpp:
1914         (WebCore::RenderBlockFlow::pageLogicalTopForOffset):
1915         (WebCore::RenderBlockFlow::pageLogicalHeightForOffset):
1916         Patch these functions to always check the layout state for a zero
1917         pageLogicalHeight, since that is actually our indicator that we're
1918         doing column balancing and don't have a height set yet.
1919
1920         * rendering/RenderMultiColumnFlowThread.cpp:
1921         (WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
1922         * rendering/RenderMultiColumnSet.cpp:
1923         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
1924         (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
1925         (WebCore::RenderMultiColumnSet::prepareForLayout):
1926         * rendering/RenderMultiColumnSet.h:
1927         The function for deciding whether the logical height of the columns was
1928         known was checking for a zero computedColumnHeight. However, a column set
1929         can legitimately compute a zero column height, and with the fix to examine
1930         the layout state, this bug was exposed.
1931
1932         The fix is to add a new variable that caches whether or not the column height
1933         has been computed, so that even if it computes to zero, we aren't fooled.
1934
1935 2015-02-19  Chris Dumez  <cdumez@apple.com>
1936
1937         [iOS] Fix inefficiencies in ResourceResponse::platformLazyInit()
1938         https://bugs.webkit.org/show_bug.cgi?id=141744
1939
1940         Reviewed by Alexey Proskuryakov.
1941
1942         Fix inefficiencies in iOS's ResourceResponse::platformLazyInit()
1943         implementation, similarly to what was already done for Mac in:
1944         <http://trac.webkit.org/changeset/174717>
1945
1946         The following changes were made:
1947         - Add missing "initLevel == AllFields" check before initializing
1948           uncommon fields. This bug was causing us to initialize uncommon
1949           fields even if called with 'CommonFieldsOnly' initLevel.
1950         - Bypass the first pass populating common HTTP headers in
1951           m_httpHeaderFields if the initLevel is AllFields. If called
1952           with AllFields initLevel, we will end up populating all HTTP
1953           headers later on so this first pass is redundant.
1954         - Use C++11 range loop to iterator over commonHeaderFields array
1955           for readability.
1956         - Use CFDictionaryApplyFunction() to populate m_httpHeaderFields
1957           for the CFDictionaryRef containing the headers instead of creating
1958           copies of keys and values using CFDictionaryGetKeysAndValues() and
1959           then iterating over those. This avoids allocating Vectors for keys /
1960           values and avoids unnecessary copying.
1961
1962
1963 2015-02-18  Dean Jackson  <dino@apple.com>
1964
1965         Sufficiently small media controls should remove toolbar elements
1966         https://bugs.webkit.org/show_bug.cgi?id=141780
1967         <rdar://problem/16548548>
1968         <rdar://problem/17598778>
1969         <rdar://problem/18351963>
1970
1971         Reviewed by Eric Carlson.
1972
1973         Implement some logic where elements on the media controls are
1974         hidden when there isn't enough room. We start by dropping
1975         the scrubber, then the various buttons on the right hand
1976         side.
1977
1978         This solution isn't perfect. If we had perfection, it would
1979         be because we get resize events and respond accordingly. Instead
1980         we check the size when the user has pinch-zoomed, or when
1981         we start/stop playing.
1982
1983         This is going to cause some extra layout, because we need
1984         to know the size of things before we can work out which
1985         bits to hide.
1986
1987         * Modules/mediacontrols/mediaControlsiOS.css:
1988         (::-webkit-media-controls): Remove the minimum width. This can
1989         cause the controls to get clipped.
1990         (audio::-webkit-media-controls-spacer): Add this empty element to
1991         replace the scrubber when it is hidden.
1992         (audio::-webkit-media-controls-timeline-container):
1993         * Modules/mediacontrols/mediaControlsiOS.js:
1994         (ControllerIOS): Remember our size so we don't churn.
1995         (ControllerIOS.prototype.createControls): Create a new spacer element.
1996         (ControllerIOS.prototype.configureInlineControls):
1997         (ControllerIOS.prototype.showControls): Check if we need to hide stuff.
1998         (ControllerIOS.prototype.updateControls):
1999         (ControllerIOS.prototype.setPlaying): Ditto.
2000         (ControllerIOS.prototype.set pageScaleFactor): Ditto.
2001         (ControllerIOS.prototype.scheduleUpdateLayoutForDisplayedWidth): Trigger an update
2002         asap. In this case it's probably ok to be in a bad state for a frame, or
2003         we are inside setup and we know that we'll layout soon.
2004         (ControllerIOS.prototype.updateLayoutForDisplayedWidth): The actual code
2005         that hides elements.
2006
2007 2015-02-19  Tim Horton  <timothy_horton@apple.com>
2008
2009         Move the software-only ImageBuffer::m_context to ImageBufferData
2010         https://bugs.webkit.org/show_bug.cgi?id=141784
2011
2012         Reviewed by Simon Fraser.
2013
2014         * platform/graphics/ImageBuffer.h:
2015         * platform/graphics/cairo/ImageBufferCairo.cpp:
2016         (WebCore::ImageBuffer::ImageBuffer):
2017         (WebCore::ImageBuffer::context):
2018         * platform/graphics/cairo/ImageBufferDataCairo.h:
2019         * platform/graphics/cg/ImageBufferCG.cpp:
2020         (WebCore::ImageBuffer::ImageBuffer):
2021         (WebCore::ImageBuffer::context):
2022         * platform/graphics/cg/ImageBufferDataCG.h:
2023         Move m_context to ImageBufferData in the software-only section;
2024         for accelerated contexts, the GraphicsContext is owned by the IOSurface wrapper.
2025         This will make it harder for ImageBuffer to make the mistake of using
2026         m_context blindly without thinking when it will often be null.
2027
2028 2015-02-18  Andreas Kling  <akling@apple.com>
2029
2030         REGRESSION(r179347): Clearing the PageCache no longer clears the PageCache.
2031         <https://webkit.org/b/141788>
2032
2033         Reviewed by Anders Carlsson.
2034
2035         Once again we've fallen into the TemporaryChange trap:
2036
2037             TemporaryChange<unsigned>(m_member, temporaryValue);
2038
2039         The code above doesn't actually do anything. Since the TemporaryChange local is not named,
2040         it immediately goes out of scope and restores the original value of m_member.
2041
2042         Unless someone knows a C++ trick to prevent these, we'll need to add a style checker pass
2043         to catch bugs like this. Whatever we do will be done separately from this bug.
2044
2045         Test: fast/history/page-cache-clearing.html
2046
2047         * history/PageCache.cpp:
2048         (WebCore::PageCache::pruneToSizeNow): Name the local so it lives longer.
2049
2050         * testing/Internals.cpp:
2051         (WebCore::Internals::clearPageCache):
2052         (WebCore::Internals::pageCacheSize):
2053         * testing/Internals.h:
2054         * testing/Internals.idl: Add a way to clear the page cache and query its size from
2055         window.internals to facilitate writing a simple test for this bug.
2056
2057 2015-02-18  Alexey Proskuryakov  <ap@apple.com>
2058
2059         Roll out r180280.
2060
2061         Crashes under IDBDatabase::closeConnection.
2062         https://bugs.webkit.org/show_bug.cgi?id=141745
2063         rdar://problem/19816412
2064
2065         * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::closeConnection):
2066
2067 2015-02-18  Tim Horton  <timothy_horton@apple.com>
2068
2069         Fix the iOS Simulator build after r180308.
2070
2071         * platform/graphics/cg/ImageBufferDataCG.h:
2072
2073 2015-02-18  Zalan Bujtas  <zalan@apple.com>
2074
2075         REGRESSION(r174761) Dangling spanner pointer in RenderMultiColumnSpannerPlaceholder.
2076         https://bugs.webkit.org/show_bug.cgi?id=138224
2077
2078         Reviewed by Dave Hyatt.
2079
2080         It's wrong to call flowThreadRelativeWillBeRemoved(child).
2081         RenderMultiColumnFlowThread::removeFlowChildInfo() does not mean that the child is actually about to be removed.
2082         Should this introduce any regressions, we need to deal with those separately.
2083
2084         Test: fast/multicol/crash-when-spanner-gets-moved-around.html
2085
2086         * rendering/RenderMultiColumnFlowThread.cpp:
2087         (WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): Deleted.
2088         * rendering/RenderMultiColumnFlowThread.h:
2089
2090 2015-02-18  Brent Fulgham  <bfulgham@apple.com>
2091
2092         [Win] CFData leak in CDMSessionAVFoundationCF
2093         https://bugs.webkit.org/show_bug.cgi?id=141765
2094         <rdar://problem/141765>
2095
2096         Reviewed by Joseph Pecoraro.
2097
2098         * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
2099         (WebCore::CDMSessionAVFoundationCF::generateKeyRequest): use 'adoptCF'
2100         so we don't double-increment the retain count.
2101
2102 2015-02-18  Timothy Horton  <timothy_horton@apple.com>
2103
2104         Adopt WebCore::IOSurface in ImageBuffer
2105         https://bugs.webkit.org/show_bug.cgi?id=141751
2106
2107         Reviewed by Simon Fraser.
2108
2109         * platform/graphics/cg/ImageBufferCG.cpp:
2110         (WebCore::createIOSurface): Deleted.
2111         (WebCore::ImageBuffer::ImageBuffer):
2112         Make use of cachedCGColorSpace.
2113         Make use of WebCore::IOSurface.
2114         Remove the unused size argument from ImageBufferDataCG.
2115         Clear the IOSurface once we've allocated it; WebCore::IOSurface doesn't
2116         do this for us, unlike wkIOSurfaceContextCreate.
2117         Apply the flipping and scale factor to whichever context we made.
2118         We don't need to setIsAcceleratedContext anymore because it's always
2119         false for software contexts, and WebCore::IOSurface will set it for
2120         any accelerated contexts.
2121
2122         (WebCore::ImageBuffer::context):
2123         If we are IOSurface-backed, return WebCore::IOSurface's GraphicsContext.
2124
2125         (WebCore::ImageBuffer::flushContext):
2126         Make use of context(); m_context is now null for accelerated ImageBuffers.
2127
2128         (WebCore::ImageBuffer::copyNativeImage):
2129         Adopt in-line with the Create functions for clarity. Make use of
2130         IOSurface::createImage instead of wkIOSurfaceContextCreateImage.
2131
2132         (WebCore::ImageBuffer::draw):
2133         (WebCore::ImageBuffer::drawPattern):
2134         (WebCore::ImageBuffer::getUnmultipliedImageData):
2135         (WebCore::ImageBuffer::getPremultipliedImageData):
2136         (WebCore::ImageBuffer::putByteArray):
2137         (WebCore::ImageBuffer::toDataURL):
2138         Make use of context(); m_context is now null for accelerated ImageBuffers.
2139
2140         * platform/graphics/cg/ImageBufferDataCG.cpp:
2141         (WebCore::ImageBufferData::ImageBufferData):
2142         Indentation fix, and use nullptr.
2143
2144         (WebCore::convertScanline):
2145         Grammar fix (is -> are).
2146
2147         (WebCore::ImageBufferData::getData):
2148         (WebCore::ImageBufferData::putData):
2149         Grab the IOSurfaceRef from the IOSurface wrapper. Eventually these things
2150         should be made more convenient by the wrapper.
2151
2152         * platform/graphics/cg/ImageBufferDataCG.h:
2153         Drop the unused size argument from the constructor.
2154         Reorganize and label the various members which are only used
2155         for a particular type of ImageBufferDataCG.
2156
2157         * platform/graphics/cocoa/IOSurface.mm:
2158         (IOSurface::ensureGraphicsContext):
2159         IOSurface-backed GraphicsContexts are always considered accelerated.
2160
2161         (IOSurface::create):
2162         (IOSurface::IOSurface):
2163         Add a constructor that take an extra size to use when making the CGContext;
2164         it can only be less than the actual backing IOSurface size.
2165         This is needed for r160121.
2166
2167         * platform/ios/WebCoreSystemInterfaceIOS.mm:
2168         * platform/mac/WebCoreSystemInterface.h:
2169         * platform/mac/WebCoreSystemInterface.mm:
2170         Remove old WKSI IOSurface-related functions.
2171
2172 2015-02-18  Alex Christensen  <achristensen@webkit.org>
2173
2174         Prepare to use WEBCORE_EXPORT on Windows.
2175         https://bugs.webkit.org/show_bug.cgi?id=141735
2176
2177         Reviewed by Brent Fulgham.
2178
2179         * bindings/js/GCController.h:
2180         * bindings/js/JSDOMGlobalObject.h:
2181         * bindings/scripts/CodeGeneratorJS.pm:
2182         (GenerateHeader):
2183         (GenerateImplementation):
2184         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2185         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
2186         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2187         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
2188         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2189         * bindings/scripts/test/JS/JSTestEventConstructor.h:
2190         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2191         * bindings/scripts/test/JS/JSTestEventTarget.h:
2192         * bindings/scripts/test/JS/JSTestException.cpp:
2193         * bindings/scripts/test/JS/JSTestException.h:
2194         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2195         * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
2196         * bindings/scripts/test/JS/JSTestInterface.cpp:
2197         * bindings/scripts/test/JS/JSTestInterface.h:
2198         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2199         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
2200         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2201         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
2202         * bindings/scripts/test/JS/JSTestNode.cpp:
2203         * bindings/scripts/test/JS/JSTestNode.h:
2204         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2205         * bindings/scripts/test/JS/JSTestNondeterministic.h:
2206         * bindings/scripts/test/JS/JSTestObj.cpp:
2207         * bindings/scripts/test/JS/JSTestObj.h:
2208         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2209         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
2210         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2211         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2212         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2213         * bindings/scripts/test/JS/JSTestTypedefs.h:
2214         * bindings/scripts/test/JS/JSattribute.cpp:
2215         * bindings/scripts/test/JS/JSattribute.h:
2216         * bindings/scripts/test/JS/JSreadonly.cpp:
2217         * bindings/scripts/test/JS/JSreadonly.h:
2218         * bridge/runtime_method.h:
2219         * bridge/runtime_object.h:
2220         * dom/make_names.pl:
2221         (printNamesHeaderFile):
2222         * history/HistoryItem.h:
2223         * loader/FrameLoader.h:
2224         * loader/LoaderStrategy.h:
2225         * loader/ResourceLoadScheduler.h:
2226         * loader/icon/IconDatabase.h:
2227         * loader/icon/IconDatabaseBase.h:
2228         * page/DatabaseProvider.h:
2229         * page/Page.h:
2230         * page/PageConsoleClient.h:
2231         * page/PageOverlay.h:
2232         * platform/FileSystem.h:
2233         * platform/MemoryPressureHandler.h:
2234         * platform/ThreadGlobalData.h:
2235         * platform/URL.h:
2236         * platform/graphics/ca/PlatformCALayer.h:
2237         * platform/network/BlobDataFileReference.h:
2238         * platform/network/BlobRegistry.h:
2239         * platform/network/BlobRegistryImpl.h:
2240         * platform/sql/SQLiteDatabase.h:
2241         * rendering/ScrollBehavior.h:
2242         * rendering/break_lines.h:
2243         Add and move some WEBCORE_EXPORT macros.
2244
2245 2015-02-18  Anders Carlsson  <andersca@apple.com>
2246
2247         Rename LocalizedStringsMac.cpp to LocalizedStringsCocoa.mm
2248         https://bugs.webkit.org/show_bug.cgi?id=141767
2249
2250         Reviewed by Tim Horton.
2251
2252         Also, move it to platform/cocoa instead of platform/mac.
2253
2254         * WebCore.xcodeproj/project.pbxproj:
2255         * platform/cocoa/LocalizedStringsCocoa.mm: Renamed from Source/WebCore/platform/mac/LocalizedStringsMac.cpp.
2256
2257 2015-02-18  Antti Koivisto  <antti@apple.com>
2258
2259         Rename FontGlyphs to FontCascadeFonts
2260         https://bugs.webkit.org/show_bug.cgi?id=141754
2261
2262         Reviewed by Andreas Kling.
2263
2264         "It is better than Impl."
2265
2266         The purpose of the class to own to create and own the realized Font instances and the associated caches
2267         for FontCascade instances.
2268
2269 2015-02-18  Commit Queue  <commit-queue@webkit.org>
2270
2271         Unreviewed, rolling out r180286.
2272         https://bugs.webkit.org/show_bug.cgi?id=141766
2273
2274         Caused >50 crashed LayoutTests (Requested by jernoble on
2275         #webkit).
2276
2277         Reverted changeset:
2278
2279         "Page::userContentController() should return a reference, not
2280         a pointer"
2281         https://bugs.webkit.org/show_bug.cgi?id=141764
2282         http://trac.webkit.org/changeset/180286
2283
2284 2015-02-18  David Kilzer  <ddkilzer@apple.com>
2285
2286         Consolidate soft-linked CMTimeMakeWithSeconds() function
2287         <http://webkit.org/b/141655>
2288
2289         Reviewed by Brent Fulgham.
2290
2291         * Configurations/WebCore.unexp: Remove workaround for
2292         CMTimeMakeWithSeconds() weak external.
2293
2294         * WebCore.vcxproj/WebCore.vcxproj:
2295         * WebCore.vcxproj/WebCore.vcxproj.filters:
2296         * WebCore.xcodeproj/project.pbxproj:
2297         - Add CoreMediaSoftLink.{cpp,h} to the project.
2298
2299         * platform/cf/CoreMediaSoftLink.cpp: Add.
2300         * platform/cf/CoreMediaSoftLink.h: Add.
2301         - Implement new strategy where code for soft-linking is only
2302           in one place, and the header can simply be included wherever a
2303           soft-linked method is needed.
2304
2305         * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
2306         * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
2307         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2308         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2309         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2310         * platform/mac/PlatformClockCM.mm:
2311         - Remove old soft-linking strategy and include
2312           CoreMediaSoftLink.h.
2313
2314         * platform/mac/SoftLinking.h:
2315         (SOFT_LINK_FUNCTION_DECL): Add.  New macro function used for
2316         header declaration.  Split out from SOFT_LINK() macro.  Also
2317         stop violating C++ standards by redeclaring an inline function
2318         with the exact same signature as an extern "C" function.  This
2319         now matches what we do on Windows (where Visual C++ already
2320         prevented these shenanigans).
2321         (SOFT_LINK_FUNCTION_IMPL): Add.  New macro function used for
2322         source implementation.  Split out the from SOFT_LINK() macro.
2323
2324         * platform/win/SoftLinking.h:
2325         (SOFT_LINK_FRAMEWORK): Map mac/SoftLinking.h macro name to
2326         Windows macros so we can simplify CoreMediaSoftLink.{cpp,h}.
2327         (SOFT_LINK_FUNCTION_DECL): Add.
2328         (SOFT_LINK_FUNCTION_IMPL): Add.
2329         - New macro functions split out from SOFT_LINK_DLL_IMPORT()
2330           macro for header declaration and source implementation.
2331         - We assume the __cdecl calling convention because that's what
2332           all Apple libraries use, and so we are able to use the exact
2333           same macro function on both Mac and Windows to simplify
2334           CoreMediaSoftLink.{cpp,h}.
2335
2336 2015-02-18  Brady Eidson  <beidson@apple.com>
2337
2338         Page::userContentController() should return a reference, not a pointer
2339         https://bugs.webkit.org/show_bug.cgi?id=141764
2340
2341         Reviewed by Jer Noble.
2342
2343         No new tests (No behavior change)
2344
2345         * dom/DocumentStyleSheetCollection.cpp:
2346         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
2347         * loader/cache/CachedResourceLoader.cpp:
2348         (WebCore::CachedResourceLoader::requestResource):
2349         * page/CaptionUserPreferences.cpp:
2350         (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
2351         * page/DOMWindow.cpp:
2352         (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
2353         * page/Frame.cpp:
2354         (WebCore::Frame::injectUserScripts):
2355         * page/Page.cpp:
2356         (WebCore::Page::Page):
2357         (WebCore::Page::~Page):
2358         (WebCore::Page::setUserContentController):
2359         * page/Page.h:
2360         (WebCore::Page::userContentController):
2361         * page/UserMessageHandlersNamespace.cpp:
2362         (WebCore::UserMessageHandlersNamespace::handler):
2363
2364 2015-02-18  Roger Fong  <roger_fong@apple.com>
2365
2366         WebGL2: Promote various WebGL1 extensions to core for WebGL2.
2367         https://bugs.webkit.org/show_bug.cgi?id=141446
2368         <rdar://problem/19633715>
2369
2370         Reviewed by Brent Fulham.
2371
2372         Tests covered by WebGL2 conformance tests.
2373
2374         This patch promotes the following WebGL1 extensions to core in WebGL2:
2375         OES_element_index_uint 
2376         EXT_sRGB 
2377         EXT_blend_minmax 
2378         EXT_frag_depth 
2379         EXT_shader_texture_lod
2380         OES_standard_derivatives 
2381         
2382         The latter 3 are enabled by default now for GLSL1, though we will get these extensions 
2383         for free when GLSL3 becomes available.
2384
2385         WebGL2 binding code should actually fall back to base implementation for getFramebufferAttachmentParameter.
2386         * bindings/js/JSWebGL2RenderingContextCustom.cpp: 
2387         (WebCore::JSWebGL2RenderingContext::getFramebufferAttachmentParameter): Deleted.
2388         * html/canvas/WebGL2RenderingContext.idl: Ditto.
2389
2390         * html/canvas/WebGL2RenderingContext.cpp:
2391         (WebCore::WebGL2RenderingContext::getExtension): Enable WEBGL_lose_context as an extension again.
2392         It was not promoted to core as I originally thought it had been.
2393         (WebCore::WebGL2RenderingContext::getSupportedExtensions): Ditto.
2394         (WebCore::WebGL2RenderingContext::WebGL2RenderingContext): Promote the 3 shader extensions for GLSL1 to core.
2395         (WebCore::WebGL2RenderingContext::initializeShaderExtensions): Ditto.
2396         (WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): Promote SRGB extension to core.
2397         (WebCore::WebGL2RenderingContext::renderbufferStorage): Ditto.
2398         (WebCore::WebGL2RenderingContext::hint): Ditto.
2399         (WebCore::WebGL2RenderingContext::validateTexFuncFormatAndType): Ditto.
2400         (WebCore::WebGL2RenderingContext::validateIndexArrayConservative): Promote OES_element_index_uint extension to core.
2401         (WebCore::WebGL2RenderingContext::validateDrawElements): Ditto.
2402         (WebCore::WebGL2RenderingContext::validateBlendEquation): Promote EXT_blend_minmax extension to core.
2403         * html/canvas/WebGL2RenderingContext.h:
2404
2405         * html/canvas/WebGLRenderingContext.cpp:
2406         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Copied form WebGLRenderingContextBase.
2407         (WebCore::WebGLRenderingContext::renderbufferStorage): Ditto.
2408         (WebCore::WebGLRenderingContext::hint): Ditto.
2409         (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto.
2410         (WebCore::WebGLRenderingContext::validateDrawElements): Ditto.
2411         (WebCore::WebGLRenderingContext::validateBlendEquation): Ditto.
2412         * html/canvas/WebGLRenderingContext.h:
2413
2414         * html/canvas/WebGLRenderingContextBase.cpp:
2415         (WebCore::WebGLRenderingContextBase::validateIndexArrayConservative): Deleted.
2416         (WebCore::WebGLRenderingContextBase::validateDrawElements): Deleted.
2417         (WebCore::WebGLRenderingContextBase::getExtension): Deleted.
2418         (WebCore::WebGLRenderingContextBase::getFramebufferAttachmentParameter): Deleted.
2419         (WebCore::WebGLRenderingContextBase::hint): Deleted.
2420         (WebCore::WebGLRenderingContextBase::renderbufferStorage): Deleted.
2421         (WebCore::WebGLRenderingContextBase::validateBlendEquation): Deleted.
2422         * html/canvas/WebGLRenderingContextBase.h:
2423
2424 2015-02-18  Alexey Proskuryakov  <ap@apple.com>
2425
2426         Streamline unexported function build fixes
2427         https://bugs.webkit.org/show_bug.cgi?id=141761
2428
2429         Reviewed by Alex Christensen.
2430
2431         * Configurations/WebCore.unexp: Added some functions for symbols only used on newer
2432         OS versions. Removed a special case for NodeList, to handle it uniformly with Node.
2433
2434         * Configurations/WebCore.xcconfig: Made the unexported list unconditional, because
2435         it's not only Xcode 5 that is affected.
2436
2437         * bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader): We already had a hack for
2438         Node, NodeList needs an exactly the same one. Also updated the comments.
2439
2440 2015-02-18  Chris Dumez  <cdumez@apple.com>
2441
2442         Access FontCache global instance via singleton() static member function
2443         https://bugs.webkit.org/show_bug.cgi?id=141726
2444
2445         Reviewed by Daniel Bates.
2446
2447         Access FontCache global instance via singleton() static member function,
2448         as per coding style.
2449
2450 2015-02-18  Alexey Proskuryakov  <ap@apple.com>
2451
2452         Crashes under IDBDatabase::closeConnection.
2453         https://bugs.webkit.org/show_bug.cgi?id=141745
2454         rdar://problem/19816412
2455
2456         Reviewed by David Kilzer.
2457
2458         * Modules/indexeddb/IDBDatabase.cpp: (WebCore::IDBDatabase::closeConnection):
2459         Add a missing protector.
2460
2461 2015-02-18  Myles C. Maxfield  <mmaxfield@apple.com>
2462
2463         Justified ruby can cause lines to grow beyond their container
2464         https://bugs.webkit.org/show_bug.cgi?id=141732
2465
2466         Reviewed by David Hyatt.
2467
2468         After we re-layout RenderRubyRuns, this can change the environment upon which
2469         ruby's overhang calculation is sensitive to. Before this patch, we would recalculate
2470         the overhang after the RenderRubyRun gets relaid out. However, doing such causes the
2471         effective width of the RenderRubyRun to change, which causes out subsequent
2472         justification calculations to be off.
2473
2474         Therefore, we have a cycle; the amount of ruby overhang can change the justification
2475         in a line, and the layout of the line affects the ruby overhang calculation. Instead
2476         of performing a layout in a loop until it converges, this patch simply observes that
2477         having a flush right edge is more valuable than having a perfectly correct overhang.
2478         It therefore simply removes the secondary overhang calculation.
2479
2480         Test: fast/text/ruby-justification-flush.html
2481
2482         * rendering/RenderBlockFlow.h:
2483         * rendering/RenderBlockLineLayout.cpp:
2484         (WebCore::RenderBlockFlow::updateRubyForJustifiedText):
2485         (WebCore::RenderBlockFlow::computeExpansionForJustifiedText):
2486         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
2487
2488 2015-02-18  Chris Dumez  <cdumez@apple.com>
2489
2490         Evict dead resources in MemoryCache in MemoryPressureHandler::releaseNoncriticalMemory()
2491         https://bugs.webkit.org/show_bug.cgi?id=141723
2492
2493         Reviewed by Andreas Kling.
2494
2495         Evict dead resources from the MemoryCache on non-critical memory
2496         pressure. On critical memory pressure, we already evict ALL resources
2497         from the MemoryCache. It is a good idea to start by evicting resources
2498         we care less about on non-critical warning to decrease the chances of
2499         getting a critical warning and thus having to clear the whole
2500         MemoryCache.
2501
2502         * loader/cache/MemoryCache.h:
2503         * platform/MemoryPressureHandler.cpp:
2504         (WebCore::MemoryPressureHandler::releaseNoncriticalMemory):
2505         (WebCore::MemoryPressureHandler::releaseCriticalMemory):
2506         (WebCore::MemoryPressureHandler::releaseMemory):
2507         Call releaseCriticalMemory() before releaseNoncriticalMemory()
2508         as releaseCriticalMemory() is more aggressive. Doing it the
2509         other way around would mean that on critical warning, we would
2510         first evict dead resources, then evict all resources. It is
2511         more efficient to evict all resources first, as it makes the
2512         non-critical operation (evict dead resources) a no-op.
2513
2514 2015-02-18  Eric Carlson  <eric.carlson@apple.com>
2515
2516         [iOS] pause video when a tab moves to the background on some devices
2517         https://bugs.webkit.org/show_bug.cgi?id=141753
2518         <rdar://problem/19814562>
2519
2520         Reviewed by Jer Noble.
2521
2522         Test: media/video-background-tab-playback.html
2523
2524         * platform/audio/MediaSession.cpp:
2525         (WebCore::MediaSession::clientDataBufferingTimerFired): Pause video when the element becomes
2526             hidden if the BackgroundTabPlaybackRestricted is set.
2527
2528         * platform/audio/MediaSessionManager.cpp:
2529         (WebCore::MediaSessionManager::applicationWillEnterBackground): Rename BackgroundPlaybackNotPermitted
2530              to BackgroundProcessPlaybackRestricted.
2531         (WebCore::MediaSessionManager::applicationWillEnterForeground): Ditto.
2532         * platform/audio/MediaSessionManager.h:
2533
2534         * platform/audio/ios/MediaSessionManagerIOS.mm:
2535         (WebCore::MediaSessionManageriOS::resetRestrictions): Set BackgroundTabPlaybackRestricted on
2536             devices with restricted memory. BackgroundPlaybackNotPermitted -> BackgroundProcessPlaybackRestricted.
2537
2538         * testing/Internals.cpp:
2539         (WebCore::Internals::setMediaSessionRestrictions): Add support for BackgroundTabPlaybackRestricted.
2540             BackgroundPlaybackNotPermitted -> BackgroundProcessPlaybackRestricted.
2541
2542 2015-02-16  David Hyatt  <hyatt@apple.com>
2543
2544         Wrong element's style is used for text-decoration-style.
2545         https://bugs.webkit.org/show_bug.cgi?id=141673
2546         <rdar://problem/19876774>
2547
2548         Reviewed by Dean Jackson.
2549
2550         Added fast/text/text-underline-style.html
2551
2552         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2553         (AXAttributeStringSetStyle):
2554         Add arguments for fetching styles.
2555
2556         * rendering/InlineTextBox.cpp:
2557         (WebCore::InlineTextBox::paint):
2558         (WebCore::InlineTextBox::paintDecoration):
2559         * rendering/InlineTextBox.h:
2560         Remove the passed in TextDecorationStyle and instead patch the code to fetch the styles in the same
2561         way it fetches the colors.
2562
2563         * rendering/RenderObject.cpp:
2564         (WebCore::RenderObject::getTextDecorationColorsAndStyles):
2565         (WebCore::RenderObject::getTextDecorationColors): Deleted.
2566         * rendering/RenderObject.h:
2567         Add style fetching to the same function that fetches colors and rename it.
2568
2569 2015-02-18  David Kilzer  <ddkilzer@apple.com>
2570
2571         REGRESSION (r180260): Try to fix incremental builds by changing UserContentController.cpp
2572
2573         Attempt to fix this linker error by making a non-coding change:
2574
2575             Undefined symbols for architecture i386:
2576               "__ZN7WebCore17ContentExtensions24ContentExtensionsBackendC1Ev", referenced from:
2577                   __ZN7WebCore21UserContentController20addUserContentFilterERKN3WTF6StringES4_ in UserContentController.o
2578             ld: symbol(s) not found for architecture i386
2579
2580         This should have been fixed by r180266, but perhaps Xcode didn't
2581         recognize that it needed to rebuild this source file.
2582
2583         * page/UserContentController.cpp: Update copyright.
2584
2585 2015-02-18  Andreas Kling  <akling@apple.com>
2586
2587         Purge PassRefPtr from CanvasRenderingContext2D.
2588         <https://webkit.org/b/141749>
2589
2590         Reviewed by Gyuyoung Kim.
2591
2592         Switch from using PassRefPtr to RefPtr/Ref in CanvasRenderingContext2D.
2593
2594         * html/TextMetrics.h:
2595         (WebCore::TextMetrics::create): Changed create() helper to return Ref.
2596
2597         * html/canvas/CanvasRenderingContext2D.h:
2598         * html/canvas/CanvasRenderingContext2D.cpp:
2599         (WebCore::CanvasRenderingContext2D::prepareGradientForDashboard): Changed to take a reference.
2600
2601         (WebCore::CanvasRenderingContext2D::createLinearGradient):
2602         (WebCore::CanvasRenderingContext2D::createRadialGradient):
2603         (WebCore::CanvasRenderingContext2D::createPattern):
2604         (WebCore::createEmptyImageData):
2605         (WebCore::CanvasRenderingContext2D::createImageData):
2606         (WebCore::CanvasRenderingContext2D::getImageData):
2607         (WebCore::CanvasRenderingContext2D::webkitGetImageDataHD): Made these return RefPtr. Also did
2608         a bunch of 0 -> nullptr conversion, removed a bunch of unnecessary RefPtr::release() calls,
2609         and changed a PassRefPtr argument to RefPtr&&.
2610
2611         (WebCore::CanvasRenderingContext2D::measureText): Made this return Ref.
2612
2613 2015-02-18  Commit Queue  <commit-queue@webkit.org>
2614
2615         Unreviewed, rolling out r180260.
2616         https://bugs.webkit.org/show_bug.cgi?id=141757
2617
2618         Broke the 32-bit builders (Requested by jessieberlin on
2619         #webkit).
2620
2621         Reverted changeset:
2622
2623         "Add a trivial code generator for the DFA"
2624         https://bugs.webkit.org/show_bug.cgi?id=141017
2625         http://trac.webkit.org/changeset/180260
2626
2627 2015-02-17  Anders Carlsson  <andersca@apple.com>
2628
2629         Add API for clearing in-memory caches to WKWebsiteDataStore
2630         https://bugs.webkit.org/show_bug.cgi?id=141724
2631
2632         Reviewed by Tim Horton.
2633
2634         Add a version of evictResources that takes a session id.
2635
2636         * loader/cache/MemoryCache.cpp:
2637         (WebCore::MemoryCache::evictResources):
2638
2639 2015-02-18  Timothy Horton  <timothy_horton@apple.com>
2640
2641         Remove more references to WebCore.exp.in
2642         https://bugs.webkit.org/show_bug.cgi?id=141747
2643
2644         Reviewed by Alexey Proskuryakov.
2645
2646         * WebCore.xcodeproj/project.pbxproj:
2647
2648 2015-02-17  Benjamin Poulain  <benjamin@webkit.org>
2649
2650         Add a trivial code generator for the DFA
2651         https://bugs.webkit.org/show_bug.cgi?id=141017
2652
2653         Reviewed by Andreas Kling.
2654
2655         Nothing fancy yet, this is just doing a literal translation from the DFA
2656         to machine code. It is extremely inefficient at the moment.
2657
2658         * WebCore.xcodeproj/project.pbxproj:
2659         * contentextensions/ContentExtensionsBackend.cpp:
2660         (WebCore::ContentExtensions::ContentExtensionsBackend::ContentExtensionsBackend):
2661         (WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
2662         (WebCore::ContentExtensions::addActionToHashSet):
2663         (WebCore::ContentExtensions::ContentExtensionsBackend::shouldBlockURL):
2664         * contentextensions/ContentExtensionsBackend.h:
2665         * contentextensions/DFA.cpp:
2666         (WebCore::ContentExtensions::DFA::nextState): Deleted.
2667         (WebCore::ContentExtensions::DFA::actions): Deleted.
2668         * contentextensions/DFA.h:
2669         (WebCore::ContentExtensions::DFA::size):
2670         (WebCore::ContentExtensions::DFA::nodeAt):
2671         * contentextensions/DFACompiler.cpp: Added.
2672         (WebCore::ContentExtensions::compileDFA):
2673         (WebCore::ContentExtensions::DFACodeGenerator::DFACodeGenerator):
2674         (WebCore::ContentExtensions::DFACodeGenerator::compile):
2675         (WebCore::ContentExtensions::DFACodeGenerator::lowerStateMachine):
2676         (WebCore::ContentExtensions::DFACodeGenerator::lowerNode):
2677         (WebCore::ContentExtensions::DFACodeGenerator::getNextCharacter):
2678         (WebCore::ContentExtensions::DFACodeGenerator::callAddActionFunction):
2679         * contentextensions/DFACompiler.h: Copied from Source/WebCore/contentextensions/DFA.h.
2680
2681 2015-02-17  Chris Dumez  <cdumez@apple.com>
2682
2683         Rename ScopedEventQueue::instance() to singleton()
2684         https://bugs.webkit.org/show_bug.cgi?id=141738
2685
2686         Reviewed by Daniel Bates.
2687
2688         Rename ScopedEventQueue::instance() to singleton(), as per coding
2689         style. Also modernize the code a little bit.
2690
2691         * dom/EventDispatcher.cpp:
2692         (WebCore::EventDispatcher::dispatchScopedEvent):
2693         * dom/ScopedEventQueue.cpp:
2694         (WebCore::ScopedEventQueue::singleton):
2695         (WebCore::ScopedEventQueue::dispatchAllEvents):
2696         (WebCore::ScopedEventQueue::incrementScopingLevel):
2697         (WebCore::ScopedEventQueue::decrementScopingLevel):
2698         (WebCore::ScopedEventQueue::ScopedEventQueue): Deleted.
2699         (WebCore::ScopedEventQueue::~ScopedEventQueue): Deleted.
2700         (WebCore::ScopedEventQueue::instance): Deleted.
2701         * dom/ScopedEventQueue.h:
2702         (WebCore::EventQueueScope::EventQueueScope):
2703         (WebCore::EventQueueScope::~EventQueueScope):
2704
2705 2015-02-17  Chris Dumez  <cdumez@apple.com>
2706
2707         Remove dead code from FontCache
2708         https://bugs.webkit.org/show_bug.cgi?id=141741
2709
2710         Reviewed by Daniel Bates.
2711
2712         Remove dead code from FontCache:
2713         - getFontFamilyForCharacters() has no implementation.
2714         - SimpleFontFamily is unused.
2715
2716         * platform/graphics/FontCache.h:
2717
2718 2015-02-17  Chris Dumez  <cdumez@apple.com>
2719
2720         Rename CSSPropertyAnimationWrapperMap::instance() to singleton()
2721         https://bugs.webkit.org/show_bug.cgi?id=141739
2722
2723         Reviewed by Simon Fraser.
2724
2725         Rename CSSPropertyAnimationWrapperMap::instance() to singleton(), as
2726         per coding style.
2727
2728         * page/animation/CSSPropertyAnimation.cpp:
2729         (WebCore::CSSPropertyAnimationWrapperMap::singleton):
2730         (WebCore::CSSPropertyAnimation::blendProperties):
2731         (WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
2732         (WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty):
2733         (WebCore::CSSPropertyAnimation::propertiesEqual):
2734         (WebCore::CSSPropertyAnimation::getPropertyAtIndex):
2735         (WebCore::CSSPropertyAnimation::getNumProperties):
2736         (WebCore::CSSPropertyAnimationWrapperMap::instance): Deleted.
2737
2738 2015-02-17  David Kilzer  <ddkilzer@apple.com>
2739
2740         REGRESSION (r180224): Remove unused generate-export-file script
2741         <http://webkit.org/b/141491>
2742
2743         * generate-export-file: Removed.  This was the script used to
2744         create WebCore.exp files for iOS since we couldn't compile a
2745         host-side tool to run like we did on Mac OS X.  Dont't tell
2746         anyone, but this was an epic hack I created while merging open
2747         source changes to the internal iOS WebKit repository around the
2748         time that the WebCore.exp.in file was created.  End of an era.
2749
2750 2015-02-17  David Kilzer  <ddkilzer@apple.com>
2751
2752         SoftLinking.h: Update copyright and license; clean up whitespace
2753
2754         * platform/win/SoftLinking.h:
2755
2756 2015-02-17  Chris Dumez  <cdumez@apple.com>
2757
2758         Slight CachedPage class clean up
2759         https://bugs.webkit.org/show_bug.cgi?id=141693
2760
2761         Reviewed by Andreas Kling.
2762
2763         Slight CachedPage class clean up:
2764         - Drop unnecessary m_timeStamp data member
2765         - Protect m_needsCaptionPreferencesChanged data member with
2766           #if ENABLE(VIDEO_TRACK)
2767         - Merge destroy() method into the destructor as this is the
2768           only caller
2769         - Update clear() to reset 2 data members that were missing
2770
2771 2015-02-17  Anders Carlsson  <andersca@apple.com>
2772
2773         Silence two -Wcast-qual warnings.
2774         rdar://problem/19758266
2775
2776         * platform/ios/wak/WKUtilities.c:
2777         (WKRetain):
2778         (WKRelease):
2779
2780 2015-02-17  Zalan Bujtas  <zalan@apple.com>
2781
2782         Minor RenderTable* class cleanups.
2783         https://bugs.webkit.org/show_bug.cgi?id=141707
2784
2785         Reviewed by Andreas Kling.
2786
2787         Use in-class initializer where possible.
2788         Remove redundant code.
2789         Move multiline implementations out of class declaration.
2790
2791         No change in functionality.
2792
2793         * rendering/RenderTableCaption.cpp:
2794         (WebCore::RenderTableCaption::insertedIntoTree):
2795         (WebCore::RenderTableCaption::willBeRemovedFromTree):
2796         (WebCore::RenderTableCaption::containingBlockLogicalWidthForContent): Deleted.
2797         * rendering/RenderTableCaption.h:
2798         * rendering/RenderTableCell.cpp:
2799         (WebCore::RenderTableCell::RenderTableCell):
2800         * rendering/RenderTableCell.h:
2801         (WebCore::RenderTableCell::colSpan):
2802         (WebCore::RenderTableCell::rowSpan):
2803         (WebCore::RenderTableCell::setCol):
2804         (WebCore::RenderTableCell::col):
2805         (WebCore::RenderTableCell::section):
2806         (WebCore::RenderTableCell::table):
2807         (WebCore::RenderTableCell::rowIndex):
2808         (WebCore::RenderTableCell::styleOrColLogicalWidth):
2809         (WebCore::RenderTableCell::logicalHeightForRowSizing):
2810         (WebCore::RenderTableCell::isBaselineAligned):
2811         (WebCore::RenderTableCell::borderAdjoiningTableStart):
2812         (WebCore::RenderTableCell::borderAdjoiningTableEnd):
2813         (WebCore::RenderTableCell::borderAdjoiningCellBefore):
2814         (WebCore::RenderTableCell::borderAdjoiningCellAfter):
2815         * rendering/RenderTableCol.cpp:
2816         (WebCore::RenderTableCol::RenderTableCol):
2817         * rendering/RenderTableCol.h:
2818         (WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentBefore):
2819         (WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentAfter):
2820         * rendering/RenderTableRow.h:
2821         (WebCore::RenderTableRow::setRowIndex):
2822         (WebCore::RenderTableRow::rowIndex):
2823         (WebCore::RenderTableRow::borderAdjoiningTableStart):
2824         (WebCore::RenderTableRow::borderAdjoiningTableEnd):
2825         (WebCore::RenderTableRow::table):
2826         (WebCore::RenderTableSection::firstRow):
2827         (WebCore::RenderTableSection::lastRow):
2828         * rendering/RenderTableSection.cpp:
2829         (WebCore::RenderTableSection::RenderTableSection):
2830         (WebCore::RenderTableSection::dirtiedRows):
2831         (WebCore::RenderTableSection::dirtiedColumns):
2832         (WebCore::RenderTableSection::paintObject):
2833         (WebCore::RenderTableSection::nodeAtPoint):
2834         * rendering/RenderTableSection.h:
2835         (WebCore::CellSpan::CellSpan):
2836         (WebCore::RenderTableSection::borderAdjoiningTableStart):
2837         (WebCore::RenderTableSection::borderAdjoiningTableEnd):
2838         (WebCore::RenderTableSection::cellAt):
2839         (WebCore::RenderTableSection::primaryCellAt):
2840         (WebCore::RenderTableSection::rowRendererAt):
2841         (WebCore::RenderTableSection::outerBorderLeft):
2842         (WebCore::RenderTableSection::outerBorderRight):
2843         (WebCore::RenderTableSection::outerBorderTop):
2844         (WebCore::RenderTableSection::outerBorderBottom):
2845         (WebCore::RenderTableSection::numRows):
2846         (WebCore::RenderTableSection::recalcCellsIfNeeded):
2847         (WebCore::RenderTableSection::rowBaseline):
2848         (WebCore::RenderTableSection::fullTableRowSpan):
2849         (WebCore::CellSpan::start): Deleted.
2850         (WebCore::CellSpan::end): Deleted.
2851
2852 2015-02-16  Dean Jackson  <dino@apple.com>
2853
2854         REGRESSION: Video control fails to hide after playback begins in reflowable EPUB files
2855         https://bugs.webkit.org/show_bug.cgi?id=141689
2856         <rdar://problem/19689286>
2857
2858         Reviewed by Eric Carlson.
2859
2860         The iBooks app turns off the requirement for a user gesture
2861         before triggering playback. When we moved to script-based
2862         media controls there were a few regressions in this setup.
2863         This makes them behave a lot more like iOS 7.
2864
2865         * Modules/mediacontrols/mediaControlsApple.js:
2866         (Controller.prototype.setPlaying): We don't want to hide the controls
2867         yet, just start a hiding timer.
2868         * Modules/mediacontrols/mediaControlsiOS.js:
2869         (ControllerIOS.prototype.shouldHaveStartPlaybackButton): If we've ever
2870         played before, we don't want to show the big start button. If we
2871         are in the middle of construction, we do want to show it. We no
2872         longer care about the case where you're not in setup and have
2873         the relaxed restrictions (we still want to show the start button
2874         in that case).
2875         (ControllerIOS.prototype.showControls): When we show the controls,
2876         make sure our timeline is up to date. This is necessary for the
2877         cases where we automatically show the controls, such as when we hit
2878         the end of a video.
2879         (ControllerIOS.prototype.updateTime): Make sure to pass the forceUpdate
2880         parameter on to the super-method.
2881         (ControllerIOS.prototype.setPlaying):
2882         (ControllerIOS.prototype.progressFillStyle): Deleted.
2883
2884 2015-02-17  Chris Dumez  <cdumez@apple.com>
2885
2886         Access MemoryPressureHandler global instance via a singleton() static member function
2887         https://bugs.webkit.org/show_bug.cgi?id=141691
2888
2889         Reviewed by Andreas Kling.
2890
2891         Access MemoryPressureHandler global instance via a singleton() static
2892         member function as per coding style. Also make all other member
2893         functions non-static as callers can just use singleton() to get the
2894         instance and access methods. This avoid having to call
2895         MemoryPressureHandler::singleton() from member functions.
2896
2897         * bindings/js/ScriptController.cpp:
2898         (WebCore::collectGarbageAfterWindowShellDestruction):
2899         * history/PageCache.cpp:
2900         (WebCore::PageCache::canCache):
2901         * loader/FrameLoader.cpp:
2902         (WebCore::FrameLoader::commitProvisionalLoad):
2903         * page/FrameView.cpp:
2904         (WebCore::FrameView::willPaintContents):
2905         (WebCore::FrameView::didPaintContents):
2906         (WebCore::FrameView::computeCoverageRect):
2907         * platform/MemoryPressureHandler.cpp:
2908         (WebCore::MemoryPressureHandler::singleton):
2909         (WebCore::MemoryPressureHandler::MemoryPressureHandler):
2910         (WebCore::MemoryPressureHandler::releaseCriticalMemory):
2911         (WebCore::memoryPressureHandler): Deleted.
2912         * platform/MemoryPressureHandler.h:
2913         (WebCore::MemoryPressureHandler::setLowMemoryHandler):
2914         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
2915         (WebCore::MemoryPressureHandler::platformReleaseMemory):
2916         (WebCore::MemoryPressureHandler::install):
2917         (WebCore::MemoryPressureHandler::holdOff):
2918         (WebCore::respondToMemoryPressureCallback):
2919         * platform/graphics/FontCache.cpp:
2920         (WebCore::FontCache::purgeInactiveFontDataIfNeeded):
2921         * platform/ios/LegacyTileCache.mm:
2922         (WebCore::LegacyTileCache::createTilesInActiveGrid):
2923         * platform/ios/LegacyTileGrid.mm:
2924         (WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage):
2925         * platform/ios/LegacyTileLayerPool.mm:
2926         (WebCore::LegacyTileLayerPool::addLayer):
2927         * platform/ios/TileControllerMemoryHandlerIOS.cpp:
2928         (WebCore::TileControllerMemoryHandler::tileControllerGainedUnparentedTiles):
2929         * platform/linux/MemoryPressureHandlerLinux.cpp:
2930         (WebCore::MemoryPressureHandler::waitForMemoryPressureEvent):
2931
2932 2015-02-17  Alex Christensen  <achristensen@webkit.org>
2933
2934         Remove WebCore.exp.in and clean up.
2935         https://bugs.webkit.org/show_bug.cgi?id=141491
2936
2937         Reviewed by Andreas Kling.
2938
2939         * Configurations/WebCore.xcconfig:
2940         Don't use exported symbols files.
2941         * DerivedSources.make:
2942         Don't generate export files.
2943         * WebCore.exp.in: Removed.
2944         * WebCore.xcodeproj/project.pbxproj:
2945         Removed WebCoreExportFileGenerator targets.
2946         * make-export-file-generator: Removed.
2947
2948 2015-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2949
2950         Use HashMap::add instead of get/contains + set in DOMObjectCache
2951         https://bugs.webkit.org/show_bug.cgi?id=141558
2952
2953         Rubber-stamped by Žan Doberšek.
2954
2955         * bindings/gobject/DOMObjectCache.cpp:
2956         (WebKit::getOrCreateDOMObjectCacheFrameObserver):
2957         (WebKit::DOMObjectCache::put):
2958
2959 2015-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2960
2961         [GTK] GObject DOM bindings object are cached forever
2962         https://bugs.webkit.org/show_bug.cgi?id=141558
2963
2964         Reviewed by Sergio Villar Senin.
2965
2966         Rework the DOMObjectCache to avoid having to manually clear the
2967         objects when the frame is destroyed, using a FrameDestructionObserver
2968         instead. When a new object associated to a Frame is added to the
2969         cache, a FrameDestructionObserver is created for the frame if
2970         needed, and the DOM object is tracked by the observer too. When
2971         the frame is detached from the page all its objects are cleared,
2972         and if the aren't additional references, the object is finalized
2973         and removed from the cache normally.
2974         This patch also simplifies and modernizes the code to make it
2975         easier to read an maintain.
2976
2977         * bindings/gobject/DOMObjectCache.cpp:
2978         (WebKit::DOMObjectCacheData::DOMObjectCacheData): Add constructor
2979         to initialize its members and simplify the callers.
2980         (WebKit::DOMObjectCacheData::clearObject): Remove the references
2981         added by the cache, ensuring the GObject is not finalized until
2982         the method returns.
2983         (WebKit::DOMObjectCacheData::refObject): Adds a reference owned by
2984         the cache.
2985         (WebKit::domObjectCacheFrameObservers): Map a frame to a FrameDestructionObserver.
2986         (WebKit::getOrCreateDOMObjectCacheFrameObserver): Create a new
2987         FrameDestructionObserver for the given Frame or return the
2988         existing one.
2989         (WebKit::domObjects): Map wrapped object to wrapper object.
2990         (WebKit::DOMObjectCache::forget): Remove the wrapped object from
2991         the cache.
2992         (WebKit::DOMObjectCache::get): Return the wrapped object if it is
2993         in the cache, increasing the cache references.
2994         (WebKit::DOMObjectCache::put): Add the wrapper object to the cache
2995         for the given wrapped object. If it's a Node and has a frame add
2996         the node to the FrameDestructionObserver corresponding to the frame.
2997         (WebKit::getFrameFromHandle): Deleted.
2998         (WebKit::weakRefNotify): Deleted.
2999         (WebKit::DOMObjectCache::clearByFrame): Deleted.
3000         (WebKit::DOMObjectCache::~DOMObjectCache): Deleted.
3001         * bindings/gobject/DOMObjectCache.h:
3002
3003 2015-02-17  ChangSeok Oh  <changseok.oh@collabora.com>
3004
3005         REGRESSION(r180050): It broke the !ENABLE(CSS_GRID_LAYOUT) build
3006         https://bugs.webkit.org/show_bug.cgi?id=141647
3007
3008         Reviewed by Csaba Osztrogonác.
3009
3010         No new tests since this just fixes a build break.
3011
3012         * dom/Position.cpp: Add a build guard ENABLE(CSS_GRID_LAYOUT) for RenderGrid.
3013         (WebCore::Position::isCandidate):
3014
3015 2015-02-16  Chris Dumez  <cdumez@apple.com>
3016
3017         Keep all memory cache resources in ListHashSets
3018         https://bugs.webkit.org/show_bug.cgi?id=141667
3019
3020         Reviewed by Andreas Kling.
3021
3022         Keep all memory cache resources in ListHashSets instead of manual linked
3023         lists. This simplifies the code a lot and is also more efficient for
3024         retrieving / removing particular CachedResources.
3025
3026         * loader/cache/CachedResource.cpp:
3027         (WebCore::CachedResource::CachedResource):
3028         * loader/cache/CachedResource.h:
3029         * loader/cache/MemoryCache.cpp:
3030         (WebCore::MemoryCache::pruneDeadResourcesToSize):
3031         (WebCore::MemoryCache::removeFromLRUList):
3032         (WebCore::MemoryCache::insertInLRUList):
3033         (WebCore::MemoryCache::dumpLRULists):
3034         (WebCore::MemoryCache::lruListFor): Deleted.
3035         * loader/cache/MemoryCache.h:
3036
3037 2015-02-16  Benjamin Poulain  <benjamin@webkit.org>
3038
3039         CSS JIT: finish :nth-last-child()
3040         https://bugs.webkit.org/show_bug.cgi?id=141629
3041
3042         Reviewed by Andreas Kling.
3043
3044         This patch adds the matcher for :nth-child(An+B of selector list) and
3045         fix a small bug I discovered while working on it.
3046
3047         The matcher is straightforward: count the next siblings matching the selector,
3048         nothing fancy.
3049
3050         While working on it I noticed I forgot the test for IsParsingChildrenFinished
3051         on the simple version of :nth-last-child(). I add it in both matcher, write
3052         a couple of tests, the first part of the tests now succeed, but the second part
3053         fails...
3054
3055         What happened is:
3056         1) We interupt the parsing to execute the JavaScript.
3057            From there, we force the style resolution to get the computed style.
3058         2) When resolving the style, the early check for isFinishedParsingChildren()
3059            quits the function early. This is done *before* we marked the parent
3060            for :nth-last-child() style resolution.
3061         3) After the script, parsing resume and the following elements are added.
3062         4) When resolving the style, only the new elements are marked dirty,
3063            the elements pending their :nth-last-child() style never get udpated.
3064
3065         To fix the problem, I moved the test for FinishedParsingChildren after
3066         the parent marking.
3067
3068         Honestly, those early return for FinishedParsingChildren need to be refined
3069         and they should be tested properly. We should not do this kind of things
3070         for Query for example.
3071
3072         Tests: fast/selectors/nth-last-child-cannot-match-during-parsing-1.html
3073                fast/selectors/nth-last-child-cannot-match-during-parsing-2.html
3074                fast/selectors/nth-last-child-of-cannot-match-during-parsing-1.html
3075                fast/selectors/nth-last-child-of-cannot-match-during-parsing-2.html
3076                fast/selectors/nth-last-child-of-register-requirement.html
3077
3078         * css/SelectorChecker.cpp:
3079         (WebCore::SelectorChecker::checkOne):
3080         Fix the tree marking.
3081
3082         * cssjit/SelectorCompiler.cpp:
3083         (WebCore::SelectorCompiler::addPseudoClassType):
3084         The fragment creation was already done, all I had to do was
3085         accept the compile.
3086
3087         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
3088         :nth-child() and :nth-last-child() with a selector list are heavier than :not()
3089         and :matches(), move them accordingly.
3090
3091         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChild):
3092         More the early return after the tree marking.
3093
3094         (WebCore::SelectorCompiler::setParentAffectedByLastChildOf):
3095         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChildOf):
3096         New matcher, nothing optimized yet.
3097
3098 2015-02-16  Tim Horton  <timothy_horton@apple.com>
3099
3100         Adopt CAMachPort-as-layer-contents
3101         https://bugs.webkit.org/show_bug.cgi?id=141687
3102         <rdar://problem/19393233>
3103
3104         Reviewed by Simon Fraser.
3105
3106         No new tests, just a performance bump.
3107
3108         * platform/cocoa/MachSendRight.h:
3109         (WebCore::MachSendRight::operator bool):
3110         Add an operator bool() that checks if the underlying port is nonnull.
3111
3112         * platform/spi/cocoa/QuartzCoreSPI.h:
3113         Add some SPI.
3114
3115 2015-02-15  Sam Weinig  <sam@webkit.org>
3116
3117         Add experimental <attachment> element support
3118         https://bugs.webkit.org/show_bug.cgi?id=141626
3119
3120         Reviewed by Tim Horton.
3121
3122         Adds scaffolding for an experimental implementation of an <attachment> element
3123         which can represent a file attachment (e.g. NSTextAttachment in NSAttributedString
3124         parlance).
3125
3126         The implementation is guarded by both an #ifdef (ENABLE(ATTACHMENT_ELEMENT)) and 
3127         a setting (Settings::attachmentElementEnabled()).
3128
3129         Tests: fast/attachment/attachment-disabled-dom.html
3130                fast/attachment/attachment-disabled-rendering.html
3131                fast/attachment/attachment-dom.html
3132                fast/attachment/attachment-rendering.html
3133
3134         * Configurations/FeatureDefines.xcconfig:
3135         Add new ENABLE_ATTACHMENT_ELEMENT macro.
3136
3137         * CMakeLists.txt:
3138         * WebCore.vcxproj/WebCore.vcxproj:
3139         * WebCore.xcodeproj/project.pbxproj:
3140         Add new files.
3141
3142         * dom/make_names.pl:
3143         Add support for checking a setting to determine if a particular tag should be exposed.
3144
3145         * html/HTMLAttachmentElement.cpp: Added.
3146         * html/HTMLAttachmentElement.h: Added.
3147         Stub out the basics of the new element.
3148
3149         * html/HTMLElementsAllInOne.cpp:
3150         Add HTMLAttachmentElement.cpp.
3151
3152         * html/HTMLTagNames.in:
3153         Add 'attachment'.
3154
3155         * page/Settings.in:
3156         Add attachmentElementEnabled setting.
3157
3158         * rendering/RenderAttachment.cpp: Added.
3159         * rendering/RenderAttachment.h: Added.
3160         Stub out the basics of the new render. We will probably want to replace this with
3161         a non-replaced render, but this will do as a placeholder for now.
3162
3163         * rendering/RenderObject.h:
3164         (WebCore::RenderObject::isAttachment):
3165         Add predicate for type casting.
3166
3167         * rendering/RenderingAllInOne.cpp:
3168         Add RenderAttachment.cpp.
3169
3170 2015-02-16  Andreas Kling  <akling@apple.com>
3171
3172         GC (almost) immediately when navigating under memory pressure.
3173         <https://webkit.org/b/141663>
3174
3175         Reviewed by Geoffrey Garen.
3176
3177         Since the PageCache is already disabled in memory pressure situations,
3178         we know that detaching the old window shell on navigation is basically
3179         guaranteed to generate a bunch of garbage, we can soften the memory
3180         peak a bit by doing a GC right away instead of scheduling one for soon(tm).
3181
3182         * bindings/js/GCController.cpp:
3183         (WebCore::GCController::GCController):
3184         (WebCore::GCController::garbageCollectSoon):
3185         (WebCore::GCController::garbageCollectOnNextRunLoop):
3186         (WebCore::GCController::gcTimerFired):
3187         * bindings/js/GCController.h:
3188
3189             Add a GCController::garbageCollectOnNextRunLoop() complement to the
3190             "soon" and "now" options. There was already a zero timer in here for
3191             non-CF builds, so I just used that same timer to implement this
3192             and have the non-CF code path call garbageCollectOnNextRunLoop().
3193
3194         * bindings/js/ScriptController.cpp:
3195         (WebCore::collectGarbageAfterWindowShellDestruction):
3196         (WebCore::ScriptController::~ScriptController):
3197         (WebCore::ScriptController::clearWindowShell):
3198
3199             Under system memory pressure conditions, schedule a full GC on next
3200             runloop iteration instead of just asking for it to happen soon.
3201             We do it on next runloop to ensure that there's no pointer to the
3202             window object on the stack.
3203
3204 2015-02-16  Enrica Casucci  <enrica@apple.com>
3205
3206         Emoji sequences do not render properly.
3207         https://bugs.webkit.org/show_bug.cgi?id=141661
3208         rdar://problem/19820463
3209
3210         Reviewed by Sam Weinig.
3211
3212         Emoji sequences and emoji with variations should be rendered
3213         using the Complex code path and should be treated as graphemes.
3214         This change modifies advanceByCombiningCharacterSequence to add
3215         this logic.
3216
3217         Test: fast/text/emoji.html
3218
3219         * WebCore.xcodeproj/project.pbxproj:
3220         * platform/graphics/FontCascade.cpp:
3221         (WebCore::FontCascade::characterRangeCodePath):
3222         * platform/graphics/mac/ComplexTextController.cpp:
3223         (WebCore::advanceByCombiningCharacterSequence): Implements a simple
3224         logic to treat emoji sequences and emoji with variations as graphemes.
3225         * platform/text/CharacterProperties.h: Added.
3226         (WebCore::isEmojiGroupCandidate):
3227         (WebCore::isEmojiModifier):
3228         (WebCore::isVariationSelector):
3229         * rendering/RenderText.cpp:
3230         (WebCore::isEmojiGroupCandidate): Deleted.
3231         (WebCore::isEmojiModifier): Deleted.
3232
3233 2015-02-16  Zalan Bujtas  <zalan@apple.com>
3234
3235         RenderTableRow should check if it has access to its ancestor chain.
3236         https://bugs.webkit.org/show_bug.cgi?id=141668
3237
3238         Reviewed by Andreas Kling.
3239
3240         Preventive fix.
3241
3242         * rendering/RenderTableRow.cpp:
3243         (WebCore::RenderTableRow::styleDidChange):
3244         (WebCore::RenderTableRow::addChild):
3245         * rendering/RenderTableRow.h:
3246
3247 2015-02-16  Jer Noble  <jer.noble@apple.com>
3248
3249         [iOS] Build fix: declare undeclared identifier 'credential'.
3250
3251         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3252         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedCredential):
3253
3254 2015-02-16  Jer Noble  <jer.noble@apple.com>
3255
3256         [iOS] Unable to play .mp4 file over http with basic http authentication
3257         https://bugs.webkit.org/show_bug.cgi?id=141503
3258         rdar://problem/15799844
3259
3260         Reviewed by Alexey Proskuryakov.
3261
3262         On iOS, CFNetwork is used for authentication, so the NSURLAuthenticationChallenge
3263         provided by AVAssetResourceLoader needs to be shoehorned into a AuthenticationChallenge
3264         object by way of CFURLAuthChallengeRef.
3265
3266         Create a new class, WebCoreNSURLAuthenticationChallengeClient, whose sole purpose
3267         is to take AuthenticationChallengeClient callbacks and pass them along to a
3268         NSURLAuthenticationChallenge sender.
3269
3270         Create a NSURLAuthenticationChallenge out of the CF version through an SPI, and add
3271         that SPI to a new header. Drive-by fix: take two of our existing SPI calls and move
3272         them into that same header.
3273
3274         * WebCore.xcodeproj/project.pbxproj: Add CFNSURLConnectionSPI.h to project.
3275         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3276         (WebCore::WebCoreNSURLAuthenticationChallengeClient::create): Factory.
3277         (WebCore::WebCoreNSURLAuthenticationChallengeClient::WebCoreNSURLAuthenticationChallengeClient): Simple constructor.
3278         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedCredential): Pass to m_challenge.
3279         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedRequestToContinueWithoutCredential): Ditto.
3280         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedCancellation): Ditto.
3281         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedRequestToPerformDefaultHandling): Ditto.
3282         (WebCore::WebCoreNSURLAuthenticationChallengeClient::receivedChallengeRejection): Ditto.
3283         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForResponseToAuthenticationChallenge):
3284             Create an AuthenticationChallenge out of the nsChallenge and client and pass it up
3285             to the HTMLMediaElement.
3286         * platform/network/mac/AuthenticationMac.mm:
3287         * platform/spi/cocoa/CFNSURLConnectionSPI.h: Added.
3288
3289 2015-02-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
3290
3291         Revert a change in SVGRenderSupport::mapLocalToContainer committed for fixing <https://bugs.webkit.org/show_bug.cgi?id=119626>.
3292         https://bugs.webkit.org/show_bug.cgi?id=138439
3293
3294         Reviewed by Darin Adler.
3295
3296         The change http://trac.webkit.org/changeset/164861 was ported from Blink
3297         but it was was revert later because it broke Chrome SVG rendering. It also
3298         broke the WebKit SVG text search highlighting.
3299         
3300         Tests: svg/transforms/svg-geometry-crash.html: This test was added by the
3301         blamed change. A new but correct solution is required to fix the assertion.
3302
3303         * rendering/svg/SVGRenderSupport.h:
3304         * rendering/svg/SVGRenderSupport.cpp:
3305         Notice that TransformState.applyTransform() does matrix-left-multiplication,
3306         i.e. state = transform * state. But operator*() of AffineTransform and
3307         MatrixTransform  does right multiply, i.e. this = this * transform.
3308         
3309         (WebCore::SVGRenderSupport::localToParentTransform): Have the calculation
3310         of the SVG localToParentTransform in one shared function.
3311         
3312         (WebCore::SVGRenderSupport::mapLocalToContainer): Revert the Blink change.
3313         If the parent is the SVG root, the transform state should be equal to
3314         transform = svg_to_css_mapping * local_to_parent_mapping * transform.
3315         
3316         (WebCore::SVGRenderSupport::pushMappingToContainer): Get the localToParent
3317         transform to be pushed in the geometryMap. If the parent is the SVG root,
3318         localToParent = svg_to_css_mapping * local_to_parent_mapping. The original
3319         code was doing the opposite and this is the cause of the assertion which 
3320         was fixed wrongly by reversing the correct multiplication order in 
3321         SVGRenderSupport::mapLocalToContainer().
3322
3323 2015-02-16  Zalan Bujtas  <zalan@apple.com>
3324
3325         RenderTableCell can't access its parent while in detached state.
3326         https://bugs.webkit.org/show_bug.cgi?id=141639
3327         rdar://problem/19850760
3328
3329         Reviewed by Simon Fraser.
3330
3331         Null check against ancestor chain so that certain methods in RenderTableCell can
3332         be called even if the renderer is not yet attached.
3333
3334         Test: fast/table/table-cell-crash-when-detached-state.html
3335
3336         * rendering/RenderTableCell.cpp:
3337         (WebCore::RenderTableCell::borderLeft):
3338         (WebCore::RenderTableCell::borderRight):
3339         (WebCore::RenderTableCell::borderTop):
3340         (WebCore::RenderTableCell::borderBottom):
3341         (WebCore::RenderTableCell::borderStart):
3342         (WebCore::RenderTableCell::borderEnd):
3343         (WebCore::RenderTableCell::borderBefore):
3344         (WebCore::RenderTableCell::borderAfter):
3345         * rendering/RenderTableCell.h:
3346
3347 2015-02-16  David Hyatt  <hyatt@apple.com>
3348
3349         Add ifdefs to avoid adjusting Ruby selection rects to avoid overlap on iOS.
3350         https://bugs.webkit.org/show_bug.cgi?id=141651
3351         <rdar://problem/19182526>
3352         
3353         Reviewed by Simon Fraser.
3354
3355         * rendering/RootInlineBox.cpp:
3356         (WebCore::RootInlineBox::selectionTop):
3357         (WebCore::RootInlineBox::selectionBottom):
3358
3359 2015-02-16  David Kilzer  <ddkilzer@apple.com>
3360
3361         SoftLinking.h: Update copyright and license; clean up whitespace
3362
3363         * platform/mac/SoftLinking.h:
3364
3365 2015-02-12  David Hyatt  <hyatt@apple.com>
3366
3367         text-underline-position:under has multiple correctness issues
3368         https://bugs.webkit.org/show_bug.cgi?id=141528
3369
3370         Reviewed by Dean Jackson.
3371
3372         Added a bunch of new tests in fast/text
3373
3374         * rendering/InlineFlowBox.cpp:
3375         (WebCore::InlineFlowBox::maxLogicalBottomForTextDecorationLine):
3376         (WebCore::InlineFlowBox::minLogicalTopForTextDecorationLine):
3377         (WebCore::InlineFlowBox::computeMaxLogicalBottom): Deleted.
3378         * rendering/InlineFlowBox.h:
3379         These functions have been re-written to take an enclosing renderer that specified the
3380         decoration. This way they can properly limit the bottom/top computation to only line boxes
3381         that are contained inside the renderer.
3382
3383         * rendering/InlineTextBox.cpp:
3384         (WebCore::InlineTextBox::paintDecoration):
3385         Tweak the call to get the decoration colors now that quirks mode has been removed.
3386
3387         * rendering/RenderElement.cpp:
3388         (WebCore::RenderElement::enclosingRendererWithTextDecoration):
3389         * rendering/RenderElement.h:
3390         New function that finds the enclosing renderer that specified a text decoration. For now
3391         this is only used in the "under" position computation, but soon we'll be using it
3392         everywhere.
3393
3394         * rendering/RenderObject.cpp:
3395         (WebCore::RenderObject::getTextDecorationColors):
3396         * rendering/RenderObject.h:
3397         Remove the quirks mode argument, since we were always passing true anyway (making the argument dead).
3398
3399         * rendering/RootInlineBox.cpp:
3400         (WebCore::RootInlineBox::maxLogicalBottom): Deleted.
3401         * rendering/RootInlineBox.h:
3402         Get rid of these functions and just have InlineTextBoxStyle's computeUnderLineOffset function call
3403         the InlineFlowBox functions directly.
3404
3405         * style/InlineTextBoxStyle.cpp:
3406         (WebCore::computeUnderlineOffset):
3407         Re-written to fetch the enclosingRendererWithTextDecoration so that it can be passed to the logical top/bottom
3408         computation to limit which line boxes get included.
3409
3410 2015-02-16  Brent Fulgham  <bfulgham@apple.com>
3411
3412         FEGaussianBlur::calculateUnscaledKernelSize does unspeakable things with signed and unsigned values
3413         https://bugs.webkit.org/show_bug.cgi?id=141596
3414         <rdar://problem/19837103>
3415
3416         Reviewed by Zalan Bujtas.
3417
3418         No new tests. Covered by css3/filters/huge-blur-value.html
3419
3420         Avoid overflowing the signed integer values by not converting from unsigned
3421         until the maximum size has been clamped to the expected max.
3422
3423         * platform/graphics/filters/FEGaussianBlur.cpp:
3424         (WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
3425
3426 2015-02-13  Sergio Villar Senin  <svillar@igalia.com>
3427
3428         [CSS Grid Layout] Invalid initialization of track sizes with non spanning grid items
3429         https://bugs.webkit.org/show_bug.cgi?id=140763
3430
3431         Reviewed by Antti Koivisto.
3432
3433         Content sized tracks with non-spanning grid items were not
3434         properly sized because the growth limit was sometimes infinity
3435         (-1) after calling resolveContentBasedTrackSizingFunctions() when
3436         it should not. This patch adds an special initialization phase for
3437         non-spanning grid items&n