[Win] Unreviewed debug build fix after r182186.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-03-31  Alex Christensen  <achristensen@webkit.org>
2
3         [Win] Unreviewed debug build fix after r182186.
4
5         * WebCore.vcxproj/WebCore.vcxproj:
6         Include InspectorAllInOne.cpp in debug builds.
7
8 2015-03-30  David Hyatt  <hyatt@apple.com>
9
10         [New Block-Inside-Inline Model] Make sure line breaks occur before and after the anonymous inline-block.
11         https://bugs.webkit.org/show_bug.cgi?id=143238.
12
13         Reviewed by Dean Jackson.
14
15         Added fast/blocks/inside-inlines/breaking-behavior.html (and new-model equivalent).
16
17         * rendering/InlineFlowBox.h:
18         (WebCore::InlineFlowBox::InlineFlowBox):
19         (WebCore::InlineFlowBox::hasAnonymousInlineBlock):
20         (WebCore::InlineFlowBox::setHasAnonymousInlineBlock):
21         Add a bit to root line boxes (stored in the InlineFlowBox since it has free bits) that indicates whether
22         or not a line is an anonymous inline-block line.
23
24         * rendering/RenderBlockFlow.cpp:
25         (WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
26         Patch the preferred logical width computation to break both before and after an anonymous inline-block.
27         Also make sure to strip trailing spaces from the line before the anonymous inline-block.
28
29         * rendering/RenderBlockLineLayout.cpp:
30         (WebCore::RenderBlockFlow::constructLine):
31         Patch line construction so that no intermediate boxes are constructed between the InlineBox for the anonymous
32         inline-block and the root line box.
33
34         * rendering/RootInlineBox.cpp:
35         (WebCore::RootInlineBox::ascentAndDescentForBox):
36         The height of a "line" that holds an anonymous inline-block should ignore line-box-contain and also make sure
37         that the margins of the replaced element are "outside" the line, since those margins will collapse.
38
39         * rendering/line/BreakingContext.h:
40         (WebCore::BreakingContext::handleReplaced):
41         Patch handleReplaced to make sure breaks occur both before and after an anonymous inline-block. In the case of
42         a break after the block, we setPreviousLineBrokeCleanly to true so that <br>s that follow the anonymous inline-block
43         are respected.
44
45 2015-03-31  Csaba Osztrogonác  <ossy@webkit.org>
46
47         [EFL] Add nullptr check to GraphicsContext3D::makeContextCurrent()
48         https://bugs.webkit.org/show_bug.cgi?id=143214
49
50         Reviewed by Žan Doberšek.
51
52         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
53         (WebCore::GraphicsContext3D::makeContextCurrent):
54
55 2015-03-31  Matt Baker  <mattbaker@apple.com>
56
57         Web Inspector: add 2D/WebGL canvas instrumentation infrastructure
58         https://bugs.webkit.org/show_bug.cgi?id=137278
59
60         Reviewed by Timothy Hatcher.
61
62         Added backend agent for canvas inspection. A canvas is instrumented once its CanvasRenderingContext has been
63         created. WebGLRenderingContext is instrumented to track the lifetime of shader program objects.
64
65         To instrument off-screen rendering contexts (CSS canvases and detached canvas elements), the canvas agent must
66         track all CanvasRenderingContexts as they are created, even in the absense of the frontend. As far as I know,
67         there is no practical way to identify rendering contexts belonging to a frame that are not in the DOM. In the
68         absence of the inspector frontend the agent does only the minimum required to track the lifetime of rendering
69         contexts and their resources, to avoid creating a negative performance impact.
70
71         Tests: inspector/canvas/canvas-add-remove-events.html
72                inspector/canvas/canvas-context-attributes.html
73                inspector/canvas/canvas-css-name.html
74
75         * CMakeLists.txt:
76         * WebCore.xcodeproj/project.pbxproj:
77
78         * dom/Document.cpp:
79         (WebCore::Document::getCSSCanvasElement):
80         Instrumentation for CSS canvases.
81
82         * html/HTMLCanvasElement.cpp:
83         (WebCore::HTMLCanvasElement::getContext):
84         Instrumentation for context creation.
85
86         * html/canvas/WebGLRenderingContextBase.cpp:
87         (WebCore::WebGLRenderingContextBase::attachShader):
88         (WebCore::WebGLRenderingContextBase::createProgram):
89         (WebCore::WebGLRenderingContextBase::deleteProgram):
90         (WebCore::WebGLRenderingContextBase::detachShader):
91         Instrumentation for programs and shaders.
92
93         * inspector/InspectorAllInOne.cpp:
94
95         * inspector/InspectorCanvasAgent.cpp: Added.
96         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
97         (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
98         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
99         (WebCore::InspectorCanvasAgent::frameNavigated):
100         (WebCore::InspectorCanvasAgent::didCreateCSSCanvas):
101         (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
102         (WebCore::InspectorCanvasAgent::didAttachShader):
103         (WebCore::InspectorCanvasAgent::didDetachShader):
104         (WebCore::InspectorCanvasAgent::didCreateProgram):
105         (WebCore::InspectorCanvasAgent::didDeleteProgram):
106         (WebCore::InspectorCanvasAgent::getCanvases):
107         (WebCore::InspectorCanvasAgent::canvasDestroyed):
108         (WebCore::InspectorCanvasAgent::canvasDestroyedTimerFired):
109         (WebCore::InspectorCanvasAgent::reset):
110         (WebCore::InspectorCanvasAgent::getCanvasEntry):
111         (WebCore::InspectorCanvasAgent::getProgramEntry):
112         (WebCore::InspectorCanvasAgent::removeShaderFromShaderMap):
113         (WebCore::InspectorCanvasAgent::contextTypeJson):
114         (WebCore::InspectorCanvasAgent::buildObjectForCanvas):
115         * inspector/InspectorCanvasAgent.h: Added.
116         New backend agent.
117
118         * inspector/InspectorController.cpp:
119         (WebCore::InspectorController::InspectorController):
120         Support for new backend agent.
121
122         * inspector/InspectorInstrumentation.cpp:
123         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
124         (WebCore::InspectorInstrumentation::didCreateCSSCanvasImpl):
125         (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContextImpl):
126         (WebCore::InspectorInstrumentation::didAttachShaderImpl):
127         (WebCore::InspectorInstrumentation::didDetachShaderImpl):
128         (WebCore::InspectorInstrumentation::didCreateProgramImpl):
129         (WebCore::InspectorInstrumentation::didDeleteProgramImpl):
130         (WebCore::InspectorInstrumentation::instrumentingAgentsForRenderingContext):
131         Plumbing for canvas instrumentation.
132
133         * inspector/InspectorInstrumentation.h:
134         (WebCore::InspectorInstrumentation::didCreateCSSCanvas):
135         (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext):
136         (WebCore::InspectorInstrumentation::didAttachShader):
137         (WebCore::InspectorInstrumentation::didDetachShader):
138         (WebCore::InspectorInstrumentation::didCreateProgram):
139         (WebCore::InspectorInstrumentation::didDeleteProgram):
140
141         * inspector/InstrumentingAgents.cpp:
142         (WebCore::InstrumentingAgents::InstrumentingAgents):
143         (WebCore::InstrumentingAgents::reset):
144         * inspector/InstrumentingAgents.h:
145         (WebCore::InstrumentingAgents::inspectorCanvasAgent):
146         (WebCore::InstrumentingAgents::setInspectorCanvasAgent):
147         Support for new backend agent.
148
149 2015-03-31  Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet  <youenn.fablet@crf.canon.fr>
150
151         [Streams API] Implement a barebone ReadableStreamReader interface
152         https://bugs.webkit.org/show_bug.cgi?id=142866
153
154         Reviewed by Benjamin Poulain.
155
156         This patch implements a barebone ReadableStreamReader as described in https://streams.spec.whatwg.org/#reader-class.
157         It implements the IDL without implementing most of the functionality behind.
158         It implements ReadableStreamReader JS constructor and the link with ReadableStream.getReader:
159         - Raise an error if stream is already locked
160         - Set the stream reader to the newly created ReadableStreamReader instance.
161
162         Test: streams/readablestreamreader-constructor.html
163
164         * CMakeLists.txt: Adding ReadableStreamReader files.
165         * DerivedSources.cpp: Ditto.
166         * DerivedSources.make: Ditto.
167         * Modules/streams/ReadableStream.cpp:
168         (WebCore::ReadableStream::createReader): Used by JS binding to get access to the reader.
169         * Modules/streams/ReadableStream.h: Declaration of createReader, reader and lock.
170         (WebCore::ReadableStream::reader):
171         (WebCore::ReadableStream::lock):
172         * Modules/streams/ReadableStream.idl: Cleaning-up the IDL.
173         * Modules/streams/ReadableStreamReader.cpp: Added.
174         (WebCore::ReadableStreamReader::create):
175         (WebCore::ReadableStreamReader::ReadableStreamReader):
176         (WebCore::ReadableStreamReader::~ReadableStreamReader):
177         (WebCore::ReadableStreamReader::closed):
178         (WebCore::ReadableStreamReader::activeDOMObjectName):
179         (WebCore::ReadableStreamReader::canSuspend):
180         * Modules/streams/ReadableStreamReader.h: Added.
181         (WebCore::ReadableStreamReader::stream):
182         * Modules/streams/ReadableStreamReader.idl: Added.
183         * WebCore.vcxproj/WebCore.vcxproj:
184         * WebCore.vcxproj/WebCore.vcxproj.filters:
185         * WebCore.xcodeproj/project.pbxproj:
186         * bindings/js/JSBindingsAllInOne.cpp:
187         * bindings/js/JSReadableStreamCustom.cpp:
188         (WebCore::JSReadableStream::getReader):
189         * bindings/js/JSReadableStreamReaderCustom.cpp: Added.
190         (WebCore::JSReadableStreamReader::read):
191         (WebCore::getOrCreatePromiseDeferredFromObject):
192         (WebCore::closedPromiseSlotName):
193         (WebCore::JSReadableStreamReader::closed):
194         (WebCore::JSReadableStreamReader::cancel):
195         (WebCore::JSReadableStreamReader::releaseLock):
196         (WebCore::constructJSReadableStreamReader):
197
198 2015-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>
199
200         [GTK] DnD icon/widget has odd background
201         https://bugs.webkit.org/show_bug.cgi?id=143217
202
203         Reviewed by Martin Robinson.
204
205         Remove DragIcon class since it's no longer needed with GTK+3 and
206         the GTK+2 code there is unused. GTK+ knows what to do with a cairo
207         surface, I guess we migrated the GTK+2 code to GTK+3 without
208         realizing that using the surface was enough.
209
210         * PlatformGTK.cmake:
211         * platform/gtk/DragIcon.cpp: Removed.
212         * platform/gtk/DragIcon.h: Removed.
213
214 2015-03-30  Alex Christensen  <achristensen@webkit.org>
215
216         Unreviewed build fix after r182168.
217
218         * contentextensions/ContentExtensionsBackend.cpp:
219         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
220         Explicitly cast to unsigned.
221
222 2015-03-30  Alex Christensen  <achristensen@webkit.org>
223
224         [Content Extensions] Correctly handle regular expressions matching everything
225         https://bugs.webkit.org/show_bug.cgi?id=143235
226
227         Reviewed by Benjamin Poulain.
228
229         Test: http/tests/contentextensions/whitelist.html
230
231         * contentextensions/CompiledContentExtension.cpp:
232         (WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors):
233         Global actions can have non-css actions.  Only put the selectors into the list of selectors.
234         * contentextensions/ContentExtensionCompiler.cpp:
235         (WebCore::ContentExtensions::serializeSelector):
236         (WebCore::ContentExtensions::serializeActions):
237         Merge sequential css selectors with identical triggers (usually .*) into one action to reduce the number of actions.
238         (WebCore::ContentExtensions::compileRuleList):
239         Fail if a regular expression matches everything after ignore-previous-rules.
240         * contentextensions/ContentExtensionError.cpp:
241         (WebCore::ContentExtensions::contentExtensionErrorCategory):
242         * contentextensions/ContentExtensionError.h:
243         Add more failure cases.
244         * contentextensions/ContentExtensionRule.h:
245         (WebCore::ContentExtensions::Trigger::operator==):
246         Allow comparing of Triggers to determine if sequential triggers are equal.
247         * contentextensions/ContentExtensionsBackend.cpp:
248         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
249         Put non-css actions that match everything into the list of actions if ignore-previous-rules was not hit.
250         These actions will be out of order, but order only matters when determining if ignore-previous-rules, and this case is handled correctly.
251         * contentextensions/DFABytecodeInterpreter.cpp:
252         (WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot):
253         (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
254         Added an assertion that all actions that match everything should be in the first DFA root.
255         We should catch them all with URLFilterParser::MatchesEverything.
256
257 2015-03-30  Myles C. Maxfield  <mmaxfield@apple.com>
258
259         Allow building on Windows without Cygwin
260         https://bugs.webkit.org/show_bug.cgi?id=143219
261
262         Reviewed by Brent Fulgham.
263
264         * AVFoundationSupport.py: Renamed from Source/WebCore/WebCore.vcxproj/MigrateScripts.
265         Move logic from DerivedSources.make to its own script
266         (lookFor):
267         * DerivedSources.make: Paths like /usr/bin don't exist on Windows.
268         Windows uses del instead of rm -f
269         Windows doesn't have printf
270         * WebCore.vcxproj/WebCoreGenerated.make: Pass the CC executable to
271         build-generated-files.pl
272         * WebCore.vcxproj/build-generated-files.pl: Export the CC executable as an environment
273         variable. Don't use /usr/bin.
274         * WebCore.vcxproj/migrate-scripts.pl: Deleted the MigrateScripts makefile. We don't
275         need a whole Makefile just to copy 5 files. Moved this logic into migrate-scripts.pl.
276         (copyFile):
277         * bindings/scripts/preprocessor.pm:
278         (applyPreprocessor): Support passing preprocessing flags to the Visual Studio
279         compiler.
280         * dom/make_names.pl: Ditto.
281
282 2015-03-30  Alexey Proskuryakov  <ap@apple.com>
283
284         Build fix.
285
286         * platform/spi/mac/AVFoundationSPI.h:
287
288 2015-03-30  Sam Weinig  <sam@webkit.org>
289
290         [Content Extensions] Flesh out the UserContentExtensionStore
291         https://bugs.webkit.org/show_bug.cgi?id=143123
292
293         Reviewed by Benjamin Poulain.
294
295         - Adds a variant of getFileSize() that takes a PlatformFileHandle.
296         - Adds a new file system function, rename() which operates as the POSIX
297           rename function does.
298
299         * platform/FileSystem.h:
300         Add new functions.
301
302         * platform/posix/FileSystemPOSIX.cpp:
303         (WebCore::renameFile):
304         (WebCore::getFileSize):
305         Add implementations.
306
307         * platform/gtk/FileSystemGtk.cpp:
308         (WebCore::renameFile):
309         (WebCore::getFileSize):
310         * platform/win/FileSystemWin.cpp:
311         (WebCore::getFileSize):
312         (WebCore::renameFile):
313         Add stubs.
314
315 2015-03-30  Per Arne Vollan  <peavo@outlook.com>
316
317         [WinCairo] Crash when closing window while video is loading
318         https://bugs.webkit.org/show_bug.cgi?id=143088
319
320         Reviewed by Mark Lam.
321
322         When the media player is destroyed, we have to cancel possible calls on the
323         main thread made by a worker thread. Otherwise the destroyed media player
324         will be accessed when performing the call.
325
326         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
327         (WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation):
328         (WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
329         (WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
330         (WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):
331         (WebCore::MediaPlayerPrivateMediaFoundation::onCreatedMediaSourceCallback):
332         (WebCore::MediaPlayerPrivateMediaFoundation::onTopologySetCallback):
333         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
334
335 2015-03-30  Gwang Yoon Hwang  <yoon@igalia.com>
336
337         [Threaded Compositor] Crash when animation changes frequently.
338         https://bugs.webkit.org/show_bug.cgi?id=143213
339
340         Reviewed by Simon Fraser.
341
342         CompositingCoordinator copies CoordinatedGraphicsLayerState when
343         flushing GraphicsLayer changes, and ThreadedCoordinatedCompositor passes
344         it to compositing thread.
345
346         To ensure thread-safety, we need to provide copy constructor to copy
347         Animation object in TextureMapperAnimation instead of referencing it.
348
349         Since TimingFunction and TransformOperation used by KeyframeValueList are
350         not ThreadSafeRefCounted, these should be cloned also.
351
352         No new tests needed.
353
354         * platform/graphics/GraphicsLayer.h:
355         (WebCore::AnimationValue::AnimationValue):
356         (WebCore::FloatAnimationValue::FloatAnimationValue):
357         (WebCore::TransformAnimationValue::TransformAnimationValue):
358         (WebCore::FilterAnimationValue::FilterAnimationValue):
359         Adds deep copy constructor.
360
361         * platform/graphics/texmap/TextureMapperAnimation.cpp:
362         (WebCore::TextureMapperAnimation::TextureMapperAnimation):
363         Because the name of the animation can be AtomicString, we need to create
364         isolated version of string to ensure thread safty.
365
366         * platform/graphics/texmap/TextureMapperAnimation.h:
367         * platform/graphics/transforms/IdentityTransformOperation.h:
368         * platform/graphics/transforms/Matrix3DTransformOperation.h:
369         * platform/graphics/transforms/MatrixTransformOperation.h:
370         * platform/graphics/transforms/PerspectiveTransformOperation.h:
371         * platform/graphics/transforms/RotateTransformOperation.h:
372         * platform/graphics/transforms/ScaleTransformOperation.h:
373         * platform/graphics/transforms/SkewTransformOperation.h:
374         * platform/graphics/transforms/TransformOperation.h:
375         * platform/graphics/transforms/TranslateTransformOperation.h:
376         Adds TransformOperation::clone() for threadsafety.
377
378 2015-03-30  Chris Dumez  <cdumez@apple.com>
379
380         Cached "Expires" header is not updated upon successful resource revalidation
381         https://bugs.webkit.org/show_bug.cgi?id=143228
382         <rdar://problem/20348059>
383
384         Reviewed by Antti Koivisto.
385
386         Cached "Expires" header was not updated upon successful resource
387         revalidation. This affected both our disk cache and our memory cache.
388         This was caused by shouldUpdateHeaderAfterRevalidation() in
389         CacheValidation.cpp returning false for the "Expires" header.
390
391         There is a comment there stating that the list of ignored headers
392         matches Chromium's net library but that's not the case, at least not
393         anymore:
394         http://osxr.org/android/source/external/chromium/net/http/http_response_headers.cc
395
396         HTTP servers such as Apache return an "Expires" header in their 304
397         responses and the "Expires" header is potentially a new one. However,
398         our caches were ignoring the updated expiration date and kept using the
399         old one, which meant that the cached resource expired sooner than it
400         should have.
401
402         See the following Apache bugs that explain the issue:
403         https://bz.apache.org/bugzilla/show_bug.cgi?id=24884
404         https://bz.apache.org/bugzilla/show_bug.cgi?id=25123
405
406         Test: http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html
407
408         * platform/network/CacheValidation.cpp:
409
410 2015-03-30  Antti Koivisto  <antti@apple.com>
411
412         Don't cache resources that are very unlikely to be reused
413         https://bugs.webkit.org/show_bug.cgi?id=143226
414         <rdar://problem/20347160>
415
416         Reviewed by Geoff Garen.
417
418         Allow overriding resource load priorities via Internals for testing.
419
420         * loader/FrameLoader.cpp:
421         (WebCore::FrameLoader::addExtraFieldsToRequest):
422         (WebCore::FrameLoader::clearTestingOverrides):
423         * loader/FrameLoader.h:
424         (WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting):
425         (WebCore::FrameLoader::clearOverrideCachePolicyForTesting): Deleted.
426         * page/DiagnosticLoggingKeys.cpp:
427         (WebCore::DiagnosticLoggingKeys::unlikelyToReuseKey):
428         * page/DiagnosticLoggingKeys.h:
429
430             Add a key.
431
432         * testing/Internals.cpp:
433         (WebCore::Internals::resetToConsistentState):
434         (WebCore::stringToResourceLoadPriority):
435         (WebCore::Internals::setOverrideResourceLoadPriority):
436         * testing/Internals.h:
437         * testing/Internals.idl:
438
439 2015-03-30  Javier Fernandez  <jfernandez@igalia.com>
440
441         [CSS Grid Layout] Upgrade align-self and align-items parsing to CSS 3
442         https://bugs.webkit.org/show_bug.cgi?id=133359
443
444         Reviewed by David Hyatt.
445
446         From Blink r164817 and r165264 by <jchaffraix@chromium.org>
447
448         Broaden justify-self's parsing name
449
450         This is in preparation of migrating align-self, align-items
451         and justify-items to the CSS 3 Alignment syntax.
452
453         The current naming was too tied to justify-self and needs to
454         be broadened. This will reduce the follow-up implementations'
455         patches.
456
457         Upgrade align-self and align-items parsing to CSS 3
458
459         This change migrates the 2 properties to the CSS 3 Alignment
460         parsing. The new parsing is identical to how we parse
461         'justify-self'. The 2 properties need to be migrated together
462         as they are used in tandem in CSSComputedStyleDeclaration.
463
464         This change also removes EAlignItems as it is now unused.
465
466         Tests: css3/parse-align-items.html
467                css3/parse-align-self.html
468
469         * css/CSSComputedStyleDeclaration.cpp:
470         (WebCore::resolveAlignmentAuto): Added. Resolves the "auto" value for the alignment properties.
471         (WebCore::valueForItemPositionWithOverflowAlignment): Added. Builds the CSSValue for the for the alignment properties.
472         (WebCore::ComputedStyleExtractor::propertyValue):
473         * css/CSSParser.cpp:
474          (WebCore::isValidKeywordPropertyAndValue): Removed align-self, align-items and justify-items.
475         (WebCore::isKeywordPropertyID): Removed align-self, align-items and justify-items.
476         (WebCore::isBaselinePositionKeyword): Added. Set of keywords related to baseline value.
477         (WebCore::CSSParser::parseItemPositionOverflowPosition): Generic parsing fuction for the alignment properties.
478         (WebCore::CSSParser::parseJustifySelf): Deleted.
479         (WebCore::CSSParser::parseValue): Added align-items and align-self to the list and call to the generic parsing fuction for the alignment properties.
480         * css/CSSParser.h:
481         * css/CSSPrimitiveValueMappings.h:
482         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added.
483         (WebCore::CSSPrimitiveValue::operator ItemPosition): Added. Replace the old EAlignItems enumeration.
484         (WebCore::CSSPrimitiveValue::operator OverflowAlignment): Added.
485         (WebCore::CSSPrimitiveValue::operator EAlignItems): Deleted.
486         (WebCore::CSSPrimitiveValue::operator EJustifySelf): Deleted.
487         (WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment): Deleted.
488         * css/CSSPropertyNames.in:
489         * css/CSSValueKeywords.in:
490         * css/StyleBuilderCustom.h:
491         (WebCore::StyleBuilderCustom::applyInheritAlignSelf): Added.
492         (WebCore::StyleBuilderCustom::applyInitialAlignSelf): Added.
493         (WebCore::StyleBuilderCustom::applyValueAlignSelf): Added.
494         (WebCore::StyleBuilderCustom::applyInheritAlignItems): Added.
495         (WebCore::StyleBuilderCustom::applyInitialAlignItems): Added.
496         (WebCore::StyleBuilderCustom::applyValueAlignItems): Added.
497         (WebCore::StyleBuilderCustom::applyInheritJustifySelf): Added.
498         (WebCore::StyleBuilderCustom::applyInitialJustifySelf): Added.
499         (WebCore::StyleBuilderCustom::applyValueJustifySelf): Added.
500         (WebCore::StyleBuilderCustom::applyValueWebkitJustifySelf): Deleted.
501         * css/StyleResolver.cpp:
502         (WebCore::StyleResolver::adjustRenderStyle): isDisplayFlexibleOrGridBox now a RenderStyle function.
503         (WebCore::isDisplayFlexibleBox): Deleted. Moved to RenderStyle.
504         (WebCore::isDisplayGridBox): Deleted. Moved to RenderStyle.
505         (WebCore::isDisplayFlexibleOrGridBox): Deleted. Moved to RenderStyle.
506         * rendering/RenderBox.cpp:
507         (WebCore::flexItemHasStretchAlignment): Adapted to the new ItemPostition enum.
508         * rendering/RenderFlexibleBox.cpp:
509         (WebCore::RenderFlexibleBox::firstLineBaseline): Adapted to the new ItemPostition enum.
510         (WebCore::RenderFlexibleBox::styleDidChange): Adapted to the new ItemPostition enum.
511         (WebCore::RenderFlexibleBox::alignmentForChild): Adapted to the new ItemPostition enum.
512         (WebCore::RenderFlexibleBox::needToStretchChild): Adapted to the new ItemPostition enum.
513         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Adapted to the new ItemPostition enum.
514         (WebCore::RenderFlexibleBox::alignChildren): Adapted to the new ItemPostition enum.
515         (WebCore::resolveAlignment): Deleted. Moved to RenderStyle.
516         * rendering/RenderFlexibleBox.h:
517         * rendering/RenderFullScreen.cpp:
518         (WebCore::createFullScreenStyle): Adapted to the new ItemPostition enum.
519         * rendering/RenderMenuList.cpp:
520         (WebCore::RenderMenuList::adjustInnerStyle): Adapted to the new ItemPostition enum.
521         * rendering/mathml/RenderMathMLRoot.cpp:
522         (WebCore::RenderMathMLRoot::updateStyle): Adapted to the new ItemPostition enum.
523         * rendering/mathml/RenderMathMLScripts.cpp:
524         (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Adapted to the new ItemPostition enum.
525         (WebCore::RenderMathMLScripts::fixAnonymousStyles): Adapted to the new ItemPostition enum.
526         * rendering/style/ContentData.h:
527         * rendering/style/RenderStyle.cpp:
528         (WebCore::RenderStyle::resolveAlignment): Added.
529         * rendering/style/RenderStyle.h: Adapted to the new ItemPostition enum.
530         * rendering/style/RenderStyleConstants.h: Adapted to the new ItemPostition enum.
531         * rendering/style/StyleRareNonInheritedData.cpp: Adapted to the new ItemPostition enum.
532         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Adapted to the new ItemPostition enum.
533         (WebCore::StyleRareNonInheritedData::operator==): Adapted to the new ItemPostition enum.
534         * rendering/style/StyleRareNonInheritedData.h: Adapted to the new ItemPostition enum.
535         * style/StyleResolveTree.cpp:
536         (WebCore::Style::determineChange): Changes in the alignItems property cause a Detach.
537
538 2015-03-27  David Hyatt  <hyatt@apple.com>
539
540         [New Block-Inside-Inline Model] Create anonymous inline blocks to hold blocks-inside-inlines.
541         https://bugs.webkit.org/show_bug.cgi?id=143145
542
543         Reviewed by Dean Jackson.
544
545         Added fast/block/inside-inlines/ tests.
546
547         * rendering/RenderBlock.cpp:
548         (WebCore::RenderBlock::renderName):
549         Add support for labeling anonymous inline-blocks when dumped by the render tree.
550
551         * rendering/RenderInline.cpp:
552         (WebCore::RenderInline::addChildIgnoringContinuation):
553         When the pref is set to use the new block-inside-inline model, create an anonymous inline block to
554         hold block children of RenderInlines instead of splitting flows or creating continuations.
555
556         * rendering/RenderObject.h:
557         (WebCore::RenderObject::isAnonymousInlineBlock):
558         Add the definition of isAnonymousInlineBlock (note the exclusion of Ruby, since Ruby creates anonymous
559         inline-blocks also).
560
561 2015-03-30  Chris Dumez  <cdumez@apple.com>
562
563         [WK2][NetworkCache] Add support for "Cache-Control: max-stale" request header
564         https://bugs.webkit.org/show_bug.cgi?id=143159
565         <rdar://problem/20333296>
566
567         Reviewed by Antti Koivisto.
568
569         Add support for "Cache-Control: max-stale" request header:
570         https://tools.ietf.org/html/rfc7234#section-5.2.1.2
571
572         Test: http/tests/cache/disk-cache/disk-cache-request-max-stale.html
573
574         * platform/network/CacheValidation.cpp:
575         (WebCore::parseCacheControlDirectives):
576         * platform/network/CacheValidation.h:
577
578 2015-03-30  Simon Fraser  <simon.fraser@apple.com>
579
580         Fix iOS internal build after r182132.
581
582         * page/scrolling/ScrollingCoordinator.cpp:
583         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
584
585 2015-03-30  Jer Noble  <jer.noble@apple.com>
586
587         [iOS] When Web Audio is interrupted by a phone call, it cannot be restarted.
588         https://bugs.webkit.org/show_bug.cgi?id=143190
589
590         Reviewed by Darin Adler.
591
592         Tests: webaudio/audiocontext-state-interrupted.html
593                webaudio/audiocontext-state.html
594
595         Implement the following methods and properties from the Web Audio spec:
596         close(), suspend(), resume(), onstatechange.
597
598         AudioContext will take more responsibility for tracking state and interruptions (and
599         AudioDestination will give up that responsibility). This means AudioContext must be a
600         MediaSessionClient, and own its own MediaSession. In return, AudioDestinationIOS and 
601         AudioDestinationMac relinquish both.
602
603         * Modules/webaudio/AudioContext.cpp:
604         (WebCore::AudioContext::AudioContext): Set default values in header.
605         (WebCore::AudioContext::uninitialize): Call setState() instead of setting m_state.
606         (WebCore::AudioContext::addReaction): Added. Append the callback to the appropriate vector for the state.
607         (WebCore::AudioContext::setState): Added. Fire events and resolve the appropriate reaction callbacks for the new state.
608         (WebCore::AudioContext::state): Return a string representing the context's state.
609         (WebCore::AudioContext::stop): Close the event queue.
610         (WebCore::AudioContext::startRendering): Call setState().
611         (WebCore::AudioContext::fireCompletionEvent): Call setState().
612         (WebCore::AudioContext::suspendContext): Added. Add reaction callback and call suspend() on the destination node.
613         (WebCore::AudioContext::resumeContext): Added. Add reaction callback and call resume() on the destination node.
614         (WebCore::AudioContext::closeContext): Added. Add reaction callback and call close() on the destination node.
615         (WebCore::AudioContext::suspendPlayback): Added. Suspend playback and set state to interrupted.
616         (WebCore::AudioContext::mayResumePlayback): Added. Conditionally resume playback.
617         * bindings/js/JSAudioContextCustom.cpp:
618         (WebCore::JSAudioContext::suspend): Added. Create and return a new Promise object.
619         (WebCore::JSAudioContext::resume): Ditto.
620         (WebCore::JSAudioContext::close): Ditto.
621         * Modules/webaudio/AudioContext.idl: Add new methods and properties.
622
623         Extensive organizational changes were made to AudioContext.h to group instance
624         variables together and add C++11 initializers in their declarations:
625
626         * Modules/webaudio/AudioContext.h:
627         (WebCore::AudioContext::mediaType): Moved from AudioDestinationNode.
628         (WebCore::AudioContext::presentationType): Ditto.
629         (WebCore::AudioContext::canReceiveRemoteControlCommands): Ditto.
630         (WebCore::AudioContext::didReceiveRemoteControlCommand): Ditto.
631         (WebCore::AudioContext::overrideBackgroundPlaybackRestriction): Ditto.
632         
633         Other changes to support the new AudioContext methods:
634
635         * Modules/webaudio/AudioDestinationNode.h:
636         (WebCore::AudioDestinationNode::resume): Add empty default virtual method.
637         (WebCore::AudioDestinationNode::suspend): Ditto.
638         (WebCore::AudioDestinationNode::close): Ditto.
639         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
640         (WebCore::DefaultAudioDestinationNode::resume): Added. Pass to AudioDestination.
641         (WebCore::DefaultAudioDestinationNode::suspend): Ditto.
642         (WebCore::DefaultAudioDestinationNode::close): Ditto.
643         * Modules/webaudio/DefaultAudioDestinationNode.h:
644         * bindings/js/JSDOMPromise.h:
645         (WebCore::DeferredWrapper::resolve): Add an overload for a nullptr resolve value.
646         * dom/EventNames.h: Added 'statechange'.
647         * dom/ScriptExecutionContext.h:
648         (WebCore::ScriptExecutionContext::Task::Task): Add a constructor which takes a void() callback.
649
650         Modify MediaSession, AudioSession, and MediaSessionManager to support the new
651         interruption behavior.
652
653         * html/HTMLMediaElement.cpp:
654         (WebCore::HTMLMediaElement::suspendPlayback): Renamed from pausePlayback().
655         (WebCore::HTMLMediaElement::mayResumePlayback): Renamed from resumePlayback().
656         * html/HTMLMediaElement.h:
657         * platform/audio/AudioSession.cpp:
658         (WebCore::AudioSession::tryToSetActive): Renamed from setActive. Return true by default.
659         (WebCore::AudioSession::setActive): Deleted.
660         * platform/audio/AudioSession.h:
661         * platform/audio/MediaSession.cpp:
662         (WebCore::MediaSession::beginInterruption): pausePlayback() was renamed to suspendPlayback().
663         (WebCore::MediaSession::endInterruption): Always notify the client, telling it whether to resume.
664         (WebCore::MediaSession::clientWillBeginPlayback): Bail early if reentrant.  Check the (new) 
665             return value of sessionWillBeginPlayback() and remember to resume once the interruption ends.
666         (WebCore::MediaSession::clientWillPausePlayback): Bail early if reentrant.
667         (WebCore::MediaSession::pauseSession): pausePlayback() was renamed to suspendPlayback().
668         * platform/audio/MediaSession.h:
669         * platform/audio/MediaSessionManager.cpp:
670         (WebCore::MediaSessionManager::sessionWillBeginPlayback): Return false if not allowed to break interruption or 
671             if activating the audio session failed. Otherwise, end the interruption.
672         * platform/audio/MediaSessionManager.h:
673         * platform/audio/ios/AudioDestinationIOS.cpp:
674         (WebCore::AudioDestinationIOS::AudioDestinationIOS): m_mediaSession was removed.
675         (WebCore::AudioDestinationIOS::start): Ditto.
676         * platform/audio/ios/AudioDestinationIOS.h:
677         * platform/audio/ios/AudioSessionIOS.mm:
678         (WebCore::AudioSession::tryToSetActive): Renamed from setActive. Return false if the AVAudioSession could not be activated.
679         (WebCore::AudioSession::setActive): Deleted.
680         * platform/audio/ios/MediaSessionManagerIOS.h:
681         * platform/audio/ios/MediaSessionManagerIOS.mm:
682         (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Do not update the now playing info if session playback was blocked.
683         * platform/audio/mac/AudioDestinationMac.cpp:
684         (WebCore::AudioDestinationMac::AudioDestinationMac): m_mediaSession was removed.
685         * platform/audio/mac/AudioDestinationMac.h:
686         * platform/audio/mac/AudioSessionMac.cpp:
687         (WebCore::AudioSession::tryToSetActive): Renamed from setActive(). Return true by default.
688         (WebCore::AudioSession::setActive): Deleted.
689         * platform/audio/mac/MediaSessionManagerMac.cpp:
690         (MediaSessionManager::updateSessionState): No longer attempt to activate the session, as this is done
691             MediaSessionManager::sessionWillBeginPlayback().
692         * testing/Internals.cpp:
693         (WebCore::Internals::setMediaSessionRestrictions): Add "InterruptedPlaybackNotPermitted".
694
695 2015-03-25 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr>
696
697         [Streams API] Error storage should be moved from source to stream/reader
698         https://bugs.webkit.org/show_bug.cgi?id=143048
699
700         Reviewed by Benjamin Poulain.
701
702         This patch removes error storage from the source as it should be stored at the stream level as error access goes through the reader.
703         It removes abstract ReadableStreamSource::isErrored and the storage of JavaScript errors from ReadableStreamJSSource.
704
705         Existing tests cover most of the changes.
706         Added test case for creating readable stream from empty JS object.
707
708         * Modules/streams/ReadableStreamSource.h: Removing isErrored().
709         * bindings/js/JSReadableStreamCustom.cpp:
710         (WebCore::constructJSReadableStream): Added JS stream constructor parameters checking.
711         * bindings/js/ReadableStreamJSSource.cpp:
712         (WebCore::ReadableStreamJSSource::ReadableStreamJSSource): Removed JS stream constructor parameters checking.
713         (WebCore::ReadableStreamJSSource::start): Changed prototype of start so that start can throw errors directly.
714         (WebCore::ReadableStreamJSSource::setInternalError): Deleted.
715         * bindings/js/ReadableStreamJSSource.h: Removed m_error, setInternalError and updated start declaration.
716
717 2015-03-30  Philippe Normand  <pnormand@igalia.com>
718
719         [GStreamer] More GL shared context fixes
720         https://bugs.webkit.org/show_bug.cgi?id=143216
721
722         Reviewed by Carlos Garcia Campos.
723
724         Moved the GLX/EGL context tests to be done at runtime rather than
725         using build-time macros because in the GTK port at least, both EGL
726         and GLX support are mutually exclusive. Also fixed a couple wrong
727         defines (USE(GLES2) doesn't exist).
728
729         * platform/graphics/GLContext.h: Simple utility method to check if
730         the platform context is compatible with EGL APIs or not.
731         * platform/graphics/egl/GLContextEGL.h:
732         (WebCore::GLContextEGL::isEGLContext):
733         * platform/graphics/glx/GLContextGLX.h:
734         (WebCore::GLContextGLX::isEGLContext):
735         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
736         (WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext): Do
737         runtime checks and properly ensure GLES2/GL API usage.
738
739 2015-03-30  Marcos Chavarría Teijeiro  <chavarria1991@gmail.com>
740
741         Add support for deleting emoji on GTK
742         https://bugs.webkit.org/show_bug.cgi?id=141419
743
744         Reviewed by Gustavo Noronha Silva.
745
746         The code for deleting special group of characters was specific for
747         COCOA and EFL platforms. The fix consists on add GTK to the #if
748         preprocessor directive.
749
750         * rendering/RenderText.cpp:
751         (WebCore::RenderText::previousOffsetForBackwardDeletion):
752
753 2015-03-30  Benjamin Poulain  <benjamin@webkit.org>
754
755         Start the features.json files
756         https://bugs.webkit.org/show_bug.cgi?id=143207
757
758         Reviewed by Darin Adler.
759
760         * features.json: Added.
761
762 2015-03-29  Simon Fraser  <simon.fraser@apple.com>
763
764         Convert arguments to ScrollingCoordinator functions to references
765         https://bugs.webkit.org/show_bug.cgi?id=143198
766
767         Reviewed by Darin Adler.
768
769         Convert all the FrameView* and ScrollableArea* arguments to ScrollingCoordinator functions to
770         references, and use references in a few other places.
771
772         * dom/Document.cpp:
773         (WebCore::wheelEventHandlerCountChanged):
774         * loader/HistoryController.cpp:
775         (WebCore::HistoryController::restoreScrollPositionAndViewState):
776         * page/DebugPageOverlays.cpp:
777         (WebCore::NonFastScrollableRegionOverlay::updateRegion):
778         * page/Frame.cpp:
779         (WebCore::Frame::willDetachPage):
780         * page/FrameView.cpp:
781         (WebCore::FrameView::prepareForDetach):
782         (WebCore::FrameView::addSlowRepaintObject):
783         (WebCore::FrameView::removeSlowRepaintObject):
784         (WebCore::FrameView::addViewportConstrainedObject):
785         (WebCore::FrameView::removeViewportConstrainedObject):
786         (WebCore::FrameView::requestScrollPositionUpdate):
787         (WebCore::FrameView::performPostLayoutTasks):
788         (WebCore::FrameView::scrollableAreaSetChanged):
789         (WebCore::FrameView::wheelEvent):
790         * page/Page.cpp:
791         (WebCore::Page::nonFastScrollableRects):
792         * page/Page.h:
793         * page/scrolling/AsyncScrollingCoordinator.cpp:
794         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
795         (WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
796         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
797         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
798         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
799         (WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
800         (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
801         (WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
802         (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
803         * page/scrolling/AsyncScrollingCoordinator.h:
804         * page/scrolling/ScrollingCoordinator.cpp:
805         (WebCore::ScrollingCoordinator::pageDestroyed):
806         (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
807         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
808         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
809         (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
810         (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
811         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
812         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
813         (WebCore::ScrollingCoordinator::headerLayerForFrameView):
814         (WebCore::ScrollingCoordinator::footerLayerForFrameView):
815         (WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView):
816         (WebCore::ScrollingCoordinator::insetClipLayerForFrameView):
817         (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
818         (WebCore::ScrollingCoordinator::rootContentLayerForFrameView):
819         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
820         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
821         (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
822         (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
823         (WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
824         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
825         (WebCore::ScrollingCoordinator::replaySessionStateDidChange):
826         (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
827         * page/scrolling/ScrollingCoordinator.h: Align the bitmask enums to make mistakes easier to spot.
828         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
829         (WebCore::ScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
830         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
831         (WebCore::ScrollingCoordinator::handleWheelEvent):
832         (WebCore::ScrollingCoordinator::willDestroyScrollableArea):
833         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
834         (WebCore::ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
835         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
836         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
837         (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
838         (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
839         (WebCore::ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate):
840         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
841         * page/scrolling/ios/ScrollingCoordinatorIOS.h:
842         * page/scrolling/mac/ScrollingCoordinatorMac.h:
843         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
844         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
845         * rendering/RenderLayer.cpp:
846         (WebCore::RenderLayer::~RenderLayer):
847         * rendering/RenderLayerBacking.cpp:
848         (WebCore::RenderLayerBacking::updateOverflowControlsLayers):
849         * rendering/RenderLayerCompositor.cpp:
850         (WebCore::RenderLayerCompositor::updateBacking):
851         (WebCore::RenderLayerCompositor::hasCoordinatedScrolling):
852         (WebCore::RenderLayerCompositor::scrollingLayerDidChange):
853         (WebCore::RenderLayerCompositor::updateLayerForHeader):
854         (WebCore::RenderLayerCompositor::updateLayerForFooter):
855         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
856         (WebCore::RenderLayerCompositor::destroyRootLayer):
857         (WebCore::RenderLayerCompositor::updateScrollCoordinationForThisFrame):
858         (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
859         (WebCore::RenderLayerCompositor::willRemoveScrollingLayerWithBacking):
860         (WebCore::RenderLayerCompositor::didAddScrollingLayer):
861         * testing/Internals.cpp:
862         (WebCore::Internals::nonFastScrollableRects):
863
864 2015-03-29  Benjamin Poulain  <benjamin@webkit.org>
865
866         Use :matches() instead of :-webkit-any() for the sections and headings default style
867         https://bugs.webkit.org/show_bug.cgi?id=143197
868
869         Reviewed by Darin Adler.
870
871         We no longer need to use the :-webkit-any() hack in the default stylesheet.
872
873         The pseudo class :matches() also support correct specificity. This is not observable
874         since those selector do not conflict with any other rule in the default stylesheet.
875
876         * css/CSSSelector.h:
877         * css/SelectorChecker.cpp:
878         (WebCore::SelectorChecker::determineLinkMatchType):
879         * css/html.css:
880         (:matches(article, aside, nav, section) h1):
881         (:matches(article, aside, nav, section) :matches(article, aside, nav, section) h1):
882         (:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1):
883         (:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1):
884         (:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1):
885         (:-webkit-any(article,aside,nav,section) h1): Deleted.
886         (:-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1): Deleted.
887         (:-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1): Deleted.
888         (:-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1): Deleted.
889         (:-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) :-webkit-any(article,aside,nav,section) h1): Deleted.
890
891 2015-03-29  Benjamin Poulain  <benjamin@webkit.org>
892
893         `currentColor` computes to the same colour on all elements, even if 'color' is inherited differently
894         https://bugs.webkit.org/show_bug.cgi?id=133420
895
896         Reviewed by Darin Adler.
897
898         When resolving a style with the help of the property cache, we were
899         completely ignoring currentColor.
900
901         Since you can set currentColor on properties that are not inherited,
902         those properties would just be copied from the cached style, which
903         may have a completely different inherited color.
904
905         This pacth fixes the issue by preventing any MatchResult from hitting
906         the cache if it contains any non-inherited property that would require
907         resolution by the cache:
908         -Using the inherit value.
909         -Using the currentColor value.
910
911         Tests: fast/css/currentColor-on-before-after-pseudo-elements.html
912                fast/css/currentColor-style-update-reftest.html
913                fast/css/currentColor-value-style-update.html
914
915         * css/ElementRuleCollector.cpp:
916         (WebCore::ElementRuleCollector::addElementStyleProperties):
917         (WebCore::ElementRuleCollector::matchAuthorRules):
918         (WebCore::ElementRuleCollector::matchUserRules):
919         (WebCore::ElementRuleCollector::matchUARules):
920         * css/StyleResolver.cpp:
921         (WebCore::StyleResolver::MatchResult::addMatchedProperties):
922         (WebCore::StyleResolver::styleForKeyframe):
923         (WebCore::StyleResolver::pseudoStyleForElement):
924         (WebCore::StyleResolver::styleForPage):
925         (WebCore::StyleResolver::findFromMatchedPropertiesCache):
926         (WebCore::StyleResolver::addToMatchedPropertiesCache):
927         (WebCore::extractDirectionAndWritingMode):
928         (WebCore::StyleResolver::applyMatchedProperties):
929         (WebCore::StyleResolver::CascadedProperties::addStyleProperties):
930         (WebCore::StyleResolver::CascadedProperties::addMatches):
931         * css/StyleResolver.h:
932         (WebCore::StyleResolver::MatchResult::matchedProperties):
933
934 2015-03-29  Benjamin Poulain  <benjamin@webkit.org>
935
936         Enable :any-link by default
937         https://bugs.webkit.org/show_bug.cgi?id=143201
938
939         Reviewed by Sam Weinig.
940
941         The pseudo class :any-link has been stable for a while. This patch enables
942         it by default and remove the -webkit- prefix on the default style.
943
944         * css/CSSDefaultStyleSheets.cpp:
945         * css/CSSSelector.cpp:
946         (WebCore::CSSSelector::selectorText):
947         * css/CSSSelector.h:
948         * css/RuleSet.cpp:
949         (WebCore::RuleSet::addRule):
950         * css/SelectorChecker.cpp:
951         (WebCore::SelectorChecker::checkOne):
952         * css/SelectorChecker.h:
953         (WebCore::SelectorChecker::isCommonPseudoClassSelector):
954         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
955         * css/html.css:
956         (a:any-link):
957         (a:any-link:active):
958         (:any-link img):
959         (a:-webkit-any-link): Deleted.
960         (a:-webkit-any-link:active): Deleted.
961         (:-webkit-any-link img): Deleted.
962         * cssjit/SelectorCompiler.cpp:
963         (WebCore::SelectorCompiler::addPseudoClassType):
964         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):
965
966 2015-03-29  Joonghun Park  <jh718.park@samsung.com>
967
968         nullptr cleanup in RenderFooBox classes
969         https://bugs.webkit.org/show_bug.cgi?id=143182
970
971         Reviewed by Ryosuke Niwa.
972
973         No new tests, no behavior changes
974
975         Replace 0 with nullptr in RenderFooBox classes.
976
977         * rendering/RenderBox.cpp:
978         (WebCore::RenderBox::RenderBox):
979         (WebCore::RenderBox::paintFillLayer):
980         (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
981         (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
982         (WebCore::RenderBox::renderBoxRegionInfo):
983         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
984         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
985         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
986         (WebCore::RenderBox::positionForPoint):
987         (WebCore::RenderBox::layoutOverflowRectForPropagation):
988         * rendering/RenderBox.h:
989         (WebCore::RenderBox::setMarginBefore):
990         (WebCore::RenderBox::setMarginAfter):
991         (WebCore::RenderBox::setMarginStart):
992         (WebCore::RenderBox::setMarginEnd):
993         (WebCore::RenderBox::createAnonymousBoxWithSameTypeAs):
994         (WebCore::RenderBox::setInlineBoxWrapper):
995         * rendering/RenderBoxModelObject.cpp:
996         (WebCore::RenderBoxModelObject::willBeDestroyed):
997         (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
998         (WebCore::RenderBoxModelObject::paintBorderSides):
999         (WebCore::RenderBoxModelObject::firstLetterRemainingText):
1000         * rendering/RenderBoxModelObject.h:
1001         (WebCore::RenderBoxModelObject::moveChildTo):
1002         (WebCore::RenderBoxModelObject::moveAllChildrenTo):
1003         (WebCore::RenderBoxModelObject::moveChildrenTo):
1004         * rendering/RenderDeprecatedFlexibleBox.cpp:
1005         (WebCore::FlexBoxIterator::reset):
1006         (WebCore::FlexBoxIterator::next):
1007         * rendering/RenderDeprecatedFlexibleBox.h:
1008         * rendering/RenderFlexibleBox.cpp:
1009         (WebCore::RenderFlexibleBox::firstLineBaseline):
1010         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
1011         * rendering/RenderLineBoxList.cpp:
1012         (WebCore::RenderLineBoxList::deleteLineBoxTree):
1013         (WebCore::RenderLineBoxList::extractLineBox):
1014         (WebCore::RenderLineBoxList::deleteLineBoxes):
1015         (WebCore::RenderLineBoxList::checkConsistency):
1016         * rendering/RenderLineBoxList.h:
1017         (WebCore::RenderLineBoxList::RenderLineBoxList):
1018         * rendering/RenderListBox.cpp:
1019         (WebCore::RenderListBox::enclosingScrollableArea):
1020         (WebCore::RenderListBox::setHasVerticalScrollbar):
1021         * rendering/RenderListBox.h:
1022
1023 2015-03-29  Darin Adler  <darin@apple.com>
1024
1025         HTMLCollection caches incorrect length if item(0) is called before length on an empty collection
1026         https://bugs.webkit.org/show_bug.cgi?id=143203
1027         rdar://problem/18460462
1028
1029         Reviewed by Antti Koivisto.
1030
1031         Test: fast/dom/htmlcollection-length-after-item-2.html
1032
1033         * dom/CollectionIndexCache.h:
1034         (CollectionIndexCache::nodeAt): If we hit the end looking for index 0, cache a length
1035         of 0, not a length of 1.
1036
1037 2015-03-29  Darin Adler  <darin@apple.com>
1038
1039         Remove unneeded SVG code, including most isSupportedAttribute functions
1040         https://bugs.webkit.org/show_bug.cgi?id=143194
1041
1042         Reviewed by Antti Koivisto.
1043
1044         - Removed most implementations of isSupportedAttribute. Others can be removed in
1045           future patches. The ones left behind are now all private static member functions.
1046           It's dangerous for them to be public because they tend to indicate which attributes
1047           are supported at a particular level in the class hierarchy and they are not virtual
1048           functions; might want to rethink the function name if we keep any of these long term.
1049
1050         - Removed unneeded includes, especially of Attr.h and Attribute.h.
1051
1052         - Changed most parseAttribute and svgAttributeChanged functions so they no longer
1053           rely on checking attribute names against a set. Also removed lots of unneeded calls
1054           to SVGLangSpace::parseAttribute, which is called by SVGElement::parseAttribute and
1055           need not be called by derived classes.
1056
1057         - Removed return values from parseAttribute functions. Skipping other parseAttribute
1058           logic is not an important optimization and makes functions needlessly complex.
1059
1060         - Moved use of InstanceInvalidationGuard closer to where they are needed. Eventually
1061           we may be able to remove many of these.
1062
1063         - Used auto in a few places where the same type is repeated twice on the same line of
1064           code, and auto makes it a bit smaller.
1065
1066         - Got rid of protected sections in some final classes; doesn't make sense to combine
1067           these two. Also moved a few functions from protected to private in other classes.
1068
1069         - Made a number of functions into static member functions in the base classes such
1070           as SVGLangSpace; they were not making any use of the object, and so it was wasteful
1071           to compile them as non-static member functions.
1072
1073         * rendering/svg/RenderSVGImage.cpp: Removed unneeded includes.
1074         * svg/SVGAElement.cpp: Removed unneeded includes.
1075         (WebCore::SVGAElement::isSupportedAttribute): Deleted.
1076         (WebCore::SVGAElement::parseAttribute): Don't use isSupportedAttribute.
1077         (WebCore::SVGAElement::svgAttributeChanged): Don't use isSupportedAttribute.
1078         * svg/SVGAElement.h: Removed isSupportedAttribute.
1079         * svg/SVGAnimateMotionElement.cpp: Removed unneeded includes.
1080         (WebCore::SVGAnimateMotionElement::isSupportedAttribute): Deleted.
1081         (WebCore::SVGAnimateMotionElement::parseAttribute): Don't use isSupportedAttribute.
1082         * svg/SVGAnimateMotionElement.h: Removed isSupportedAttribute.
1083         * svg/SVGAnimateTransformElement.cpp:
1084         (WebCore::SVGAnimateTransformElement::isSupportedAttribute): Deleted.
1085         (WebCore::SVGAnimateTransformElement::parseAttribute): Don't use isSupportedAttribute.
1086         * svg/SVGAnimateTransformElement.h: Removed isSupportedAttribute.
1087         * svg/SVGAnimationElement.cpp:
1088         (WebCore::SVGAnimationElement::parseAttribute): Don't use isSupportedAttribute.
1089         * svg/SVGCircleElement.cpp:
1090         (WebCore::SVGCircleElement::isSupportedAttribute): Deleted.
1091         (WebCore::SVGCircleElement::parseAttribute): Don't use isSupportedAttribute.
1092         (WebCore::SVGCircleElement::svgAttributeChanged): Don't use isSupportedAttribute.
1093         * svg/SVGCircleElement.h: Removed isSupportedAttribute.
1094         * svg/SVGClipPathElement.cpp: Removed unneeded includes.
1095         (WebCore::SVGClipPathElement::parseAttribute): Don't use isSupportedAttribute.
1096         * svg/SVGComponentTransferFunctionElement.cpp:
1097         (WebCore::SVGComponentTransferFunctionElement::parseAttribute): Don't use isSupportedAttribute.
1098         * svg/SVGCursorElement.cpp: Removed unneeded includes.
1099         (WebCore::SVGCursorElement::parseAttribute): Don't use isSupportedAttribute.
1100         (WebCore::SVGCursorElement::svgAttributeChanged): Don't use isSupportedAttribute.
1101         * svg/SVGElement.cpp: Removed unneeded includes.
1102         * svg/SVGEllipseElement.cpp: Removed unneeded includes.
1103         (WebCore::SVGEllipseElement::isSupportedAttribute): Deleted.
1104         (WebCore::SVGEllipseElement::parseAttribute): Don't use isSupportedAttribute.
1105         (WebCore::SVGEllipseElement::svgAttributeChanged): Don't use isSupportedAttribute.
1106         * svg/SVGEllipseElement.h: Removed isSupportedAttribute.
1107         * svg/SVGExternalResourcesRequired.cpp: Removed unneeded includes.
1108         (WebCore::SVGExternalResourcesRequired::parseAttribute): Don't return a boolean.
1109         * svg/SVGExternalResourcesRequired.h: Don't return a boolean.
1110         * svg/SVGFEBlendElement.cpp: Removed unneeded includes.
1111         (WebCore::SVGFEBlendElement::isSupportedAttribute): Deleted.
1112         (WebCore::SVGFEBlendElement::parseAttribute): Don't use isSupportedAttribute.
1113         (WebCore::SVGFEBlendElement::svgAttributeChanged): Don't use isSupportedAttribute.
1114         * svg/SVGFEBlendElement.h: Removed isSupportedAttribute.
1115         * svg/SVGFEColorMatrixElement.cpp: Removed unneeded includes.
1116         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute): Deleted.
1117         (WebCore::SVGFEColorMatrixElement::parseAttribute): Don't use isSupportedAttribute.
1118         (WebCore::SVGFEColorMatrixElement::svgAttributeChanged): Don't use isSupportedAttribute.
1119         * svg/SVGFEColorMatrixElement.h: Removed isSupportedAttribute.
1120         * svg/SVGFEComponentTransferElement.cpp: Removed unneeded includes.
1121         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute): Deleted.
1122         (WebCore::SVGFEComponentTransferElement::parseAttribute): Don't use isSupportedAttribute.
1123         * svg/SVGFEComponentTransferElement.h: Removed unneeded includes.
1124         * svg/SVGFECompositeElement.cpp: Removed unneeded includes.
1125         (WebCore::SVGFECompositeElement::isSupportedAttribute): Deleted.
1126         (WebCore::SVGFECompositeElement::parseAttribute): Don't use isSupportedAttribute.
1127         (WebCore::SVGFECompositeElement::svgAttributeChanged): Don't use isSupportedAttribute.
1128         * svg/SVGFECompositeElement.h:
1129         * svg/SVGFEConvolveMatrixElement.cpp: Removed unneeded includes.
1130         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute): Deleted.
1131         (WebCore::SVGFEConvolveMatrixElement::parseAttribute): Don't use isSupportedAttribute.
1132         (WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged): Don't use isSupportedAttribute.
1133         * svg/SVGFEConvolveMatrixElement.h:
1134         * svg/SVGFEDiffuseLightingElement.cpp: Removed unneeded includes.
1135         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute): Deleted.
1136         (WebCore::SVGFEDiffuseLightingElement::parseAttribute): Don't use isSupportedAttribute.
1137         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): Don't use isSupportedAttribute.
1138         * svg/SVGFEDiffuseLightingElement.h:
1139         * svg/SVGFEDisplacementMapElement.cpp: Removed unneeded includes.
1140         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute): Deleted.
1141         (WebCore::SVGFEDisplacementMapElement::parseAttribute): Don't use isSupportedAttribute.
1142         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): Don't use isSupportedAttribute.
1143         * svg/SVGFEDisplacementMapElement.h:
1144         * svg/SVGFEDropShadowElement.cpp: Removed unneeded includes.
1145         (WebCore::SVGFEDropShadowElement::isSupportedAttribute): Deleted.
1146         (WebCore::SVGFEDropShadowElement::parseAttribute): Don't use isSupportedAttribute.
1147         (WebCore::SVGFEDropShadowElement::svgAttributeChanged): Don't use isSupportedAttribute.
1148         * svg/SVGFEDropShadowElement.h:
1149         * svg/SVGFEFloodElement.cpp: Removed unneeded includes.
1150         * svg/SVGFEGaussianBlurElement.cpp: Removed unneeded includes.
1151         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute): Deleted.
1152         (WebCore::SVGFEGaussianBlurElement::parseAttribute): Don't use isSupportedAttribute.
1153         (WebCore::SVGFEGaussianBlurElement::svgAttributeChanged): Don't use isSupportedAttribute.
1154         * svg/SVGFEGaussianBlurElement.h:
1155         * svg/SVGFEImageElement.cpp: Removed unneeded includes.
1156         (WebCore::SVGFEImageElement::isSupportedAttribute): Deleted.
1157         (WebCore::SVGFEImageElement::parseAttribute): Don't use isSupportedAttribute.
1158         (WebCore::SVGFEImageElement::svgAttributeChanged): Don't use isSupportedAttribute.
1159         * svg/SVGFEImageElement.h:
1160         * svg/SVGFELightElement.cpp: Removed unneeded includes.
1161         (WebCore::SVGFELightElement::isSupportedAttribute): Deleted.
1162         (WebCore::SVGFELightElement::parseAttribute): Don't use isSupportedAttribute.
1163         (WebCore::SVGFELightElement::svgAttributeChanged): Don't use isSupportedAttribute.
1164         * svg/SVGFELightElement.h:
1165         * svg/SVGFEMergeNodeElement.cpp: Removed unneeded includes.
1166         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute): Deleted.
1167         (WebCore::SVGFEMergeNodeElement::parseAttribute): Don't use isSupportedAttribute.
1168         (WebCore::SVGFEMergeNodeElement::svgAttributeChanged): Don't use isSupportedAttribute.
1169         * svg/SVGFEMergeNodeElement.h:
1170         * svg/SVGFEMorphologyElement.cpp: Removed unneeded includes.
1171         (WebCore::SVGFEMorphologyElement::isSupportedAttribute): Deleted.
1172         (WebCore::SVGFEMorphologyElement::parseAttribute): Don't use isSupportedAttribute.
1173         (WebCore::SVGFEMorphologyElement::svgAttributeChanged): Don't use isSupportedAttribute.
1174         * svg/SVGFEMorphologyElement.h:
1175         * svg/SVGFEOffsetElement.cpp: Removed unneeded includes.
1176         (WebCore::SVGFEOffsetElement::isSupportedAttribute): Deleted.
1177         (WebCore::SVGFEOffsetElement::parseAttribute): Don't use isSupportedAttribute.
1178         (WebCore::SVGFEOffsetElement::svgAttributeChanged): Don't use isSupportedAttribute.
1179         * svg/SVGFEOffsetElement.h:
1180         * svg/SVGFESpecularLightingElement.cpp: Removed unneeded includes.
1181         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute): Deleted.
1182         (WebCore::SVGFESpecularLightingElement::parseAttribute): Don't use isSupportedAttribute.
1183         (WebCore::SVGFESpecularLightingElement::svgAttributeChanged): Don't use isSupportedAttribute.
1184         * svg/SVGFESpecularLightingElement.h:
1185         * svg/SVGFETileElement.cpp: Removed unneeded includes.
1186         (WebCore::SVGFETileElement::isSupportedAttribute): Deleted.
1187         (WebCore::SVGFETileElement::parseAttribute): Don't use isSupportedAttribute.
1188         (WebCore::SVGFETileElement::svgAttributeChanged): Don't use isSupportedAttribute.
1189         * svg/SVGFETileElement.h:
1190         * svg/SVGFETurbulenceElement.cpp: Removed unneeded includes.
1191         (WebCore::SVGFETurbulenceElement::isSupportedAttribute): Deleted.
1192         (WebCore::SVGFETurbulenceElement::parseAttribute): Don't use isSupportedAttribute.
1193         (WebCore::SVGFETurbulenceElement::svgAttributeChanged): Don't use isSupportedAttribute.
1194         * svg/SVGFETurbulenceElement.h:
1195         * svg/SVGFilterElement.cpp: Removed unneeded includes.
1196         (WebCore::SVGFilterElement::parseAttribute): Don't use isSupportedAttribute.
1197         * svg/SVGFilterPrimitiveStandardAttributes.cpp: Removed unneeded includes.
1198         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute): Don't use isSupportedAttribute.
1199         * svg/SVGFilterPrimitiveStandardAttributes.h: Removed isSupportedAttribute and also moved a
1200         couple functions out of the class definition.
1201         * svg/SVGFitToViewBox.cpp: Removed unneeded includes.
1202         * svg/SVGFontFaceElement.cpp: Removed unneeded includes.
1203         * svg/SVGFontFaceUriElement.cpp: Removed unneeded includes.
1204         * svg/SVGForeignObjectElement.cpp: Removed unneeded includes.
1205         (WebCore::SVGForeignObjectElement::parseAttribute): Don't use isSupportedAttribute.
1206         * svg/SVGGElement.cpp: Removed unneeded includes.
1207         (WebCore::SVGGElement::parseAttribute): Don't use isSupportedAttribute.
1208         * svg/SVGGlyphElement.cpp: Removed unneeded includes.
1209         * svg/SVGGlyphRefElement.cpp: Removed unneeded includes.
1210         (WebCore::SVGGlyphRefElement::hasValidGlyphElement): Rewrote to use is<> instead of hasTagName.
1211         (WebCore::SVGGlyphRefElement::parseAttribute): Don't use return value from SVGURIReference::parseAttribute.
1212         * svg/SVGGradientElement.cpp: Removed unneeded includes.
1213         (WebCore::SVGGradientElement::parseAttribute): Don't use isSupportedAttribute.
1214         * svg/SVGGraphicsElement.cpp: Removed unneeded includes.
1215         (WebCore::SVGGraphicsElement::parseAttribute): Don't use isSupportedAttribute.
1216         * svg/SVGImageElement.cpp: Removed unneeded includes.
1217         (WebCore::SVGImageElement::parseAttribute): Don't use isSupportedAttribute.
1218         * svg/SVGLangSpace.cpp: Removed unneeded includes.
1219         (WebCore::SVGLangSpace::parseAttribute): Removed the return value.
1220         * svg/SVGLangSpace.h: Converted functions to static member functions and removed the
1221         return value from parseAttribute.
1222         * svg/SVGLineElement.cpp: Removed unneeded includes.
1223         (WebCore::SVGLineElement::parseAttribute): Don't use isSupportedAttribute.
1224         * svg/SVGLinearGradientElement.cpp: Removed unneeded includes.
1225         (WebCore::SVGLinearGradientElement::parseAttribute): Don't use isSupportedAttribute.
1226         * svg/SVGMPathElement.cpp: Removed unneeded includes.
1227         (WebCore::SVGMPathElement::isSupportedAttribute): Deleted.
1228         (WebCore::SVGMPathElement::parseAttribute): Don't use isSupportedAttribute.
1229         (WebCore::SVGMPathElement::svgAttributeChanged): Don't use isSupportedAttribute.
1230         * svg/SVGMPathElement.h: Removed isSupportedAttribute and made didNotifySubtreeInsertions
1231         private instead of protected.
1232         * svg/SVGMarkerElement.cpp: Removed unneeded includes.
1233         (WebCore::SVGMarkerElement::parseAttribute): Don't use isSupportedAttribute.
1234         * svg/SVGMaskElement.cpp: Removed unneeded includes.
1235         (WebCore::SVGMaskElement::parseAttribute): Don't use isSupportedAttribute.
1236         * svg/SVGPathElement.cpp: Removed unneeded includes.
1237         (WebCore::SVGPathElement::parseAttribute): Don't use isSupportedAttribute.
1238         * svg/SVGPatternElement.cpp: Removed unneeded includes.
1239         (WebCore::SVGPatternElement::parseAttribute): Don't use isSupportedAttribute.
1240         * svg/SVGPolyElement.cpp: Removed unneeded includes.
1241         (WebCore::SVGPolyElement::isSupportedAttribute): Deleted.
1242         (WebCore::SVGPolyElement::parseAttribute): Don't use isSupportedAttribute.
1243         (WebCore::SVGPolyElement::svgAttributeChanged): Don't use isSupportedAttribute.
1244         * svg/SVGPolyElement.h:
1245         * svg/SVGRadialGradientElement.cpp: Removed unneeded includes.
1246         (WebCore::SVGRadialGradientElement::parseAttribute): Don't use isSupportedAttribute.
1247         * svg/SVGRectElement.cpp: Removed unneeded includes.
1248         (WebCore::SVGRectElement::isSupportedAttribute): Deleted.
1249         (WebCore::SVGRectElement::parseAttribute): Don't use isSupportedAttribute.
1250         (WebCore::SVGRectElement::svgAttributeChanged): Don't use isSupportedAttribute.
1251         * svg/SVGRectElement.h:
1252         * svg/SVGSVGElement.cpp: Removed unneeded includes.
1253         (WebCore::SVGSVGElement::parseAttribute): Don't use isSupportedAttribute.
1254         * svg/SVGScriptElement.cpp: Removed unneeded includes.
1255         * svg/SVGStopElement.cpp: Removed unneeded includes.
1256         (WebCore::SVGStopElement::isSupportedAttribute): Deleted.
1257         (WebCore::SVGStopElement::parseAttribute): Don't use isSupportedAttribute.
1258         (WebCore::SVGStopElement::svgAttributeChanged): Don't use isSupportedAttribute.
1259         * svg/SVGStopElement.h: Removed isSupportedAttribute.
1260         * svg/SVGStyleElement.cpp: Removed unneeded includes.
1261         (WebCore::SVGStyleElement::isSupportedAttribute): Deleted.
1262         (WebCore::SVGStyleElement::parseAttribute): Don't use isSupportedAttribute.
1263         * svg/SVGStyleElement.h: Removed isSupportedAttribute.
1264         * svg/SVGSymbolElement.cpp: Removed unneeded includes.
1265         (WebCore::SVGSymbolElement::isSupportedAttribute): Deleted.
1266         (WebCore::SVGSymbolElement::parseAttribute): Don't use isSupportedAttribute.
1267         (WebCore::SVGSymbolElement::svgAttributeChanged): Don't use isSupportedAttribute.
1268         * svg/SVGSymbolElement.h: Removed isSupportedAttribute.
1269         * svg/SVGTRefElement.cpp: Removed unneeded includes.
1270         (WebCore::SVGTRefElement::isSupportedAttribute): Deleted.
1271         (WebCore::SVGTRefElement::parseAttribute): Don't use isSupportedAttribute.
1272         (WebCore::SVGTRefElement::svgAttributeChanged): Don't use isSupportedAttribute.
1273         * svg/SVGTRefElement.h: Removed isSupportedAttribute and made didNotifySubtreeInsertions
1274         private instead of protected.
1275         * svg/SVGTests.cpp: Removed unneeded includes.
1276         (WebCore::SVGTests::parseAttribute): Removed return value.
1277         * svg/SVGTests.h: Removed return value of parseAttribute.
1278         * svg/SVGTextContentElement.cpp: Removed unneeded includes.
1279         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute): Don't use
1280         isSupportedAttribute. Also removed global to optimize comparing attribute value against
1281         the string "preserve".
1282         (WebCore::SVGTextContentElement::parseAttribute): Don't use isSupportedAttribute.
1283         (WebCore::SVGTextContentElement::svgAttributeChanged): Don't use isSupportedAttribute.
1284         * svg/SVGTextContentElement.h: Made isSupportedAttribute private instead of protected.
1285         * svg/SVGTextElement.cpp: Removed unneeded includes.
1286         * svg/SVGTextPathElement.cpp: Removed unneeded includes.
1287         (WebCore::SVGTextPathElement::parseAttribute): Don't use isSupportedAttribute.
1288         * svg/SVGTextPositioningElement.cpp: Removed unneeded includes.
1289         (WebCore::SVGTextPositioningElement::isSupportedAttribute): Deleted.
1290         (WebCore::SVGTextPositioningElement::parseAttribute): Don't use isSupportedAttribute.
1291         (WebCore::SVGTextPositioningElement::svgAttributeChanged): Don't use isSupportedAttribute.
1292         * svg/SVGTextPositioningElement.h: Removed isSupportedAttribute and made some functions
1293         private insetad of protected.
1294         * svg/SVGURIReference.cpp: Removed unneeded includes.
1295         (WebCore::SVGURIReference::parseAttribute): Don't use isSupportedAttribute.
1296         * svg/SVGURIReference.h:
1297         (WebCore::SVGURIReference::isExternalURIReference):
1298         * svg/SVGUseElement.cpp: Removed unneeded includes.
1299         (WebCore::SVGUseElement::parseAttribute): Don't use isSupportedAttribute.
1300         * svg/SVGViewElement.h: Removed isSupportedAttribute.
1301         * svg/animation/SVGSMILElement.cpp: Removed unneeded includes.
1302
1303 2015-03-29  Darin Adler  <darin@apple.com>
1304
1305         Remove unneeded includes of "Attribute.h"
1306         https://bugs.webkit.org/show_bug.cgi?id=143195
1307
1308         Reviewed by Antti Koivisto.
1309
1310         * css/StyleResolver.cpp:
1311         * html/HTMLAnchorElement.cpp:
1312         * html/HTMLAreaElement.cpp:
1313         * html/HTMLBRElement.cpp:
1314         * html/HTMLBaseElement.cpp:
1315         * html/HTMLBodyElement.cpp:
1316         * html/HTMLButtonElement.cpp:
1317         * html/HTMLCanvasElement.cpp:
1318         * html/HTMLDivElement.cpp:
1319         * html/HTMLElement.cpp:
1320         * html/HTMLEmbedElement.cpp:
1321         * html/HTMLFontElement.cpp:
1322         * html/HTMLFormControlElement.cpp:
1323         * html/HTMLFormElement.cpp:
1324         * html/HTMLFrameElement.cpp:
1325         * html/HTMLFrameElementBase.cpp:
1326         * html/HTMLFrameSetElement.cpp:
1327         * html/HTMLHRElement.cpp:
1328         * html/HTMLIFrameElement.cpp:
1329         * html/HTMLImageElement.cpp:
1330         * html/HTMLOListElement.cpp:
1331         * html/HTMLOptionElement.cpp:
1332         * html/HTMLParagraphElement.cpp:
1333         * html/HTMLParamElement.cpp:
1334         * html/HTMLPlugInElement.cpp:
1335         * html/HTMLPreElement.cpp:
1336         * html/HTMLProgressElement.cpp:
1337         * html/HTMLScriptElement.cpp:
1338         * html/HTMLSelectElement.cpp:
1339         * html/HTMLStyleElement.cpp:
1340         * html/HTMLTableCaptionElement.cpp:
1341         * html/HTMLTableCellElement.cpp:
1342         * html/HTMLTableColElement.cpp:
1343         * html/HTMLTableElement.cpp:
1344         * html/HTMLTablePartElement.cpp:
1345         * html/HTMLTextAreaElement.cpp:
1346         * html/HTMLTextFormControlElement.cpp:
1347         * html/HTMLUListElement.cpp:
1348         * html/HTMLVideoElement.cpp:
1349         * html/parser/HTMLScriptRunner.cpp:
1350         * inspector/InspectorNodeFinder.cpp:
1351         Removed includes of "Attribute.h".
1352
1353 2015-03-28  Eric Carlson  <eric.carlson@apple.com>
1354
1355         [Mac] Update for output device API change
1356         https://bugs.webkit.org/show_bug.cgi?id=143187
1357
1358         Reviewed by Zalan Bujtas.
1359
1360         The API used for output device is being deprecated, update to the replacement.
1361
1362         * WebCore.xcodeproj/project.pbxproj: Add SPI headers.
1363
1364         * platform/graphics/MediaPlaybackTarget.h:
1365         (WebCore::MediaPlaybackTarget::MediaPlaybackTarget): Update for API change.
1366         (WebCore::MediaPlaybackTarget::setDevicePickerContext):
1367         (WebCore::MediaPlaybackTarget::devicePickerContext):
1368
1369         * platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:
1370         (WebCore::MediaPlaybackTarget::encode):
1371         (WebCore::MediaPlaybackTarget::decode):
1372
1373         * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
1374         * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
1375         (WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):
1376         (WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac):
1377         (WebCore::MediaPlaybackTargetPickerMac::outputeDeviceAvailabilityChangedTimerFired):
1378         (WebCore::MediaPlaybackTargetPickerMac::devicePicker):
1379         (WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange):
1380         (WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets):
1381         (-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
1382         (-[WebAVOutputDevicePickerMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]): Deleted.
1383
1384         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1385         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1386         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
1387         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
1388         (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
1389         (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
1390
1391         * platform/spi/cocoa/AVKitSPI.h: Copied from Source/WebCore/platform/spi/ios/AVKitSPI.h. Moved
1392             from ios directory, added Mac includes and prototypes.
1393         * platform/spi/ios/AVKitSPI.h: Removed.
1394
1395         * platform/spi/mac/AVFoundationSPI.h: Added.
1396
1397 2015-03-28  Simon Fraser  <simon.fraser@apple.com>
1398
1399         Optimize RenderLayer::intersectsDamageRect() slightly
1400         https://bugs.webkit.org/show_bug.cgi?id=143186
1401
1402         Reviewed by Zalan Bujtas.
1403
1404         We can early return from RenderLayer::intersectsDamageRect() if the
1405         damageRect is empty, since nothing will intersect with the empty rect.
1406         
1407         Slight performance gain when scrolling overflow-scroll with lots of nested,
1408         clipping layers.
1409
1410         * rendering/RenderLayer.cpp:
1411         (WebCore::RenderLayer::calculateClipRects):
1412
1413 2015-03-28  Anders Carlsson  <andersca@apple.com>
1414
1415         Remove an unused SPI method from WebKitLegacy
1416         https://bugs.webkit.org/show_bug.cgi?id=143185
1417
1418         Reviewed by Sam Weinig.
1419
1420         * loader/appcache/ApplicationCacheStorage.cpp:
1421         (WebCore::ApplicationCacheStorage::storeCopyOfCache): Deleted.
1422         * loader/appcache/ApplicationCacheStorage.h:
1423
1424 2015-03-28  Joonghun Park  <jh718.park@samsung.com>
1425
1426         nullptr cleanup in InlineFooBox classes
1427         https://bugs.webkit.org/show_bug.cgi?id=143178
1428
1429         Reviewed by Csaba Osztrogonác.
1430
1431         No new tests, no behavior changes
1432
1433         Replace 0 with nullptr in InlineFooBox classes.
1434
1435         * rendering/InlineBox.cpp:
1436         (WebCore::InlineBox::prevLeafChildIgnoringLineBreak):
1437         * rendering/InlineFlowBox.cpp:
1438         (WebCore::InlineFlowBox::removeChild):
1439         (WebCore::InlineFlowBox::deleteLine):
1440         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
1441         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1442         * rendering/InlineFlowBox.h:
1443         (WebCore::InlineFlowBox::InlineFlowBox):
1444         * rendering/InlineTextBox.h:
1445         (WebCore::InlineTextBox::InlineTextBox):
1446         * rendering/RootInlineBox.cpp:
1447         (WebCore::RootInlineBox::getLogicalStartBoxWithNode):
1448         (WebCore::RootInlineBox::getLogicalEndBoxWithNode):
1449         * rendering/RootInlineBox.h:
1450         * rendering/svg/SVGInlineTextBox.cpp:
1451         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
1452         (WebCore::SVGInlineTextBox::releasePaintingResource):
1453         (WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting):
1454         * rendering/svg/SVGRootInlineBox.cpp:
1455         (WebCore::SVGRootInlineBox::closestLeafChildForPosition):
1456         (WebCore::findFirstAndLastAttributesInVector):
1457         * rendering/svg/SVGRootInlineBox.h:
1458
1459 2015-03-27  Simon Fraser  <simon.fraser@apple.com>
1460
1461         More modern loops in RenderLayer.cpp
1462         https://bugs.webkit.org/show_bug.cgi?id=143175
1463
1464         Reviewed by Ryosuke Niwa.
1465
1466         Use modern loops in more places in RenderLayer.app.
1467
1468         * rendering/RenderLayer.cpp:
1469         (WebCore::RenderLayer::update3DTransformedDescendantStatus):
1470         (WebCore::RenderLayer::paint):
1471         (WebCore::performOverlapTests):
1472         (WebCore::RenderLayer::paintFixedLayersInNamedFlows):
1473         (WebCore::RenderLayer::paintList):
1474         (WebCore::RenderLayer::collectFragments):
1475         (WebCore::RenderLayer::updatePaintingInfoForFragments):
1476         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1477         (WebCore::RenderLayer::calculateClipRects):
1478
1479 2015-03-27  Simon Fraser  <simon.fraser@apple.com>
1480
1481         nullptr cleanup in RenderLayer
1482         https://bugs.webkit.org/show_bug.cgi?id=143174
1483
1484         Reviewed by Ryosuke Niwa.
1485
1486         Replace 0 with nullptr in RenderLayer.cpp.
1487
1488         * rendering/RenderLayer.cpp:
1489         (WebCore::RenderLayer::filterRenderer):
1490         (WebCore::RenderLayer::updateLayerPositionsAfterLayout):
1491         (WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll):
1492         (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
1493         (WebCore::RenderLayer::enclosingOverflowClipLayer):
1494         (WebCore::RenderLayer::enclosingCompositingLayer):
1495         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint):
1496         (WebCore::RenderLayer::enclosingFilterLayer):
1497         (WebCore::RenderLayer::enclosingFilterRepaintLayer):
1498         (WebCore::RenderLayer::clippingRootForPainting):
1499         (WebCore::RenderLayer::transparentPaintingAncestor):
1500         (WebCore::transparencyClipBox):
1501         (WebCore::RenderLayer::removeChild):
1502         (WebCore::RenderLayer::removeOnlyThisLayer):
1503         (WebCore::RenderLayer::insertOnlyThisLayer):
1504         (WebCore::accumulateOffsetTowardsAncestor):
1505         (WebCore::RenderLayer::enclosingScrollableArea):
1506         (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
1507         (WebCore::RenderLayer::enclosingElement):
1508         (WebCore::RenderLayer::enclosingFlowThreadAncestor):
1509         (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
1510         (WebCore::RenderLayer::hitTestLayer):
1511         (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
1512         (WebCore::RenderLayer::hitTestLayerByApplyingTransform):
1513         (WebCore::RenderLayer::hitTestList):
1514         (WebCore::RenderLayer::updateClipRects):
1515         (WebCore::RenderLayer::clipRects):
1516         (WebCore::RenderLayer::calculateClipRects):
1517
1518 2015-03-27  Gwang Yoon Hwang  <yoon@igalia.com>
1519
1520         [TexMap] Seperate BitmapTexture related classes implementations from TextureMapper
1521         https://bugs.webkit.org/show_bug.cgi?id=142386
1522
1523         Reviewed by Žan Doberšek.
1524
1525         TextureMapper and TextureMapperGL are bloated and tightly coupled with
1526         BitmapTexture. We should move these classes to seperated file of their own.
1527         Also, this patch removes friend relationship from TextureMapperGL and  its
1528         subsidiary classes.
1529
1530         The main purpose of this refactoring is to expose BitmapTexturePool to
1531         renderers of platformlayers like Video and Canvas. By doing this, each
1532         renderer can acquire textures from the global texture pool to paint
1533         their contents directly.
1534
1535         No new tests needed.
1536
1537         * PlatformEfl.cmake:
1538         * PlatformGTK.cmake:
1539         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1540         Include BitmapTextureGL and BitmapTexturePool explicitly
1541
1542         * platform/graphics/texmap/BitmapTexture.cpp: Added.
1543         * platform/graphics/texmap/BitmapTexture.h: Added.
1544         (WebCore::BitmapTexture::updateContents):
1545         Exclude BitmapTexture class from TextureMapper
1546
1547         * platform/graphics/texmap/BitmapTextureGL.cpp: Added.
1548         * platform/graphics/texmap/BitmapTextureGL.h: Added.
1549         Exclude BitmapTextureGL class from TextureMapperGL
1550         (WebCore::BitmapTextureGL::clipStack): Added.
1551         Add the getter for clipStack for TextureMapperGL
1552         (WebCore::BitmapTextureGL::Bind): Deleted.
1553         (WebCore::BitmapTextureGL::BindAsSurface): Added.
1554         Bind used TextureMapperGL's internal data directly to compute projection matrix as a friend class,
1555         However, TextureMapperGL can compute projection matrix itself after binding job, so this
1556         friend ship is not needed. Also, this patch renames Bind to BindAsSurface to remove ambiguity.
1557
1558         * platform/graphics/texmap/BitmapTextureImageBuffer.cpp: Added.
1559         * platform/graphics/texmap/BitmapTextureImageBuffer.h: Added.
1560         Exclude BitmapTextureImageBuffer class from TextureMapperImageBuffer
1561
1562         * platform/graphics/texmap/BitmapTexturePool.cpp: Added.
1563         * platform/graphics/texmap/BitmapTexturePool.h: Added.
1564         Exclude BitmapTexturePool class from TextureMapperGL
1565         (WebCore::BitmapTexturePool::acquireTexture):
1566         Modified to use passed GraphicsContext3D instead of TextureMapperGL to remove redundant coupling
1567
1568         * platform/graphics/texmap/TextureMapper.cpp:
1569         * platform/graphics/texmap/TextureMapper.h:
1570         Remove BitmapTexturePool and BitmapTexture from its implementation.
1571
1572         * platform/graphics/texmap/TextureMapperGL.cpp:
1573         * platform/graphics/texmap/TextureMapperGL.h:
1574         Remove BitmapTextureGL from its implementation.
1575         (WebCore::TextureMapperGL::TextureMapperGL):
1576         (WebCore::TextureMapperGL::clipStack):
1577         (WebCore::TextureMapperGL::bindSurface):
1578         (WebCore::TextureMapperGL::currentSurface):
1579         Add a getter of the current surface for filtering operation in BitmapTextureGL.
1580         It would be clear to move filtering operation from BitmapTextureGL to TextureMapperGL later.
1581
1582         (WebCore::TextureMapperGL::ClipStack):
1583         Move inner class declaration to public.
1584
1585         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
1586         * platform/graphics/texmap/TextureMapperImageBuffer.h:
1587         Remove BitmapTextureImageBuffer from its implementation.
1588
1589 2015-03-27  Tim Horton  <timothy_horton@apple.com>
1590
1591         WebProcess started by editable WKWebView spends 15% of its initialization time loading DataDetectors
1592         https://bugs.webkit.org/show_bug.cgi?id=143142
1593         <rdar://problem/20324495>
1594
1595         Reviewed by Anders Carlsson.
1596
1597         Calling DataDetectorsLibrary() is expensive; we should avoid doing it
1598         until actually necessary. When loading a page that makes a caret selection,
1599         ServicesOverlayController was calling DataDetectorsLibrary() (ignoring the fact
1600         that a caret selection can't have any services associated with it) to avoid
1601         crashing on systems where DataDetectors is not available. Instead, we should
1602         first check if there's anything to do, and then check for the existence
1603         of DataDetectors.
1604
1605         * page/mac/ServicesOverlayController.mm:
1606         (WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
1607         Build the list of phone number ranges, and bail (clearing the potential highlights)
1608         if it is empty, before calling DataDetectorsLibrary().
1609
1610         (WebCore::ServicesOverlayController::buildSelectionHighlight):
1611         Check the list of selection rects, and bail (clearing the potential highlights)
1612         if it is empty, before calling DataDetectorsLibrary().
1613
1614 2015-03-27  Jer Noble  <jer.noble@apple.com>
1615
1616         [Mac] Safari fails to fire page "load" event with video[preload=none]
1617         https://bugs.webkit.org/show_bug.cgi?id=143147
1618
1619         Reviewed by Simon Fraser.
1620
1621         Test: media/video-page-load-preload-none.html
1622
1623         When told to load() when preload == None, set the networkState to Idle.
1624         This causes HTMLMediaElement to set the shouldDelayLoadEvent flag to
1625         false, and allows the page's 'load' event to fire.
1626
1627         Drive-by fix: add setNetworkState() and setReadyState() methods to
1628         MediaPlayerPrivateAVFoundation, reducing a bunch of code duplication.
1629
1630         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1631         (WebCore::MediaPlayerPrivateAVFoundation::load):
1632         (WebCore::MediaPlayerPrivateAVFoundation::setNetworkState):
1633         (WebCore::MediaPlayerPrivateAVFoundation::setReadyState):
1634         (WebCore::MediaPlayerPrivateAVFoundation::updateStates):
1635         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1636
1637 2015-03-27  Alexey Proskuryakov  <ap@apple.com>
1638
1639         Calling crypto.webkitSubtle.generateKey causes page memory to never be released
1640         https://bugs.webkit.org/show_bug.cgi?id=143151
1641         rdar://problem/18940687
1642
1643         Reviewed by Tim Horton.
1644
1645         * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::generatePair): Don't.
1646
1647 2015-03-27  Brent Fulgham  <bfulgham@apple.com>
1648
1649         Null dereference in InbandMetadataTextTrack handling
1650         https://bugs.webkit.org/show_bug.cgi?id=143144
1651         <rdar://problem/18983250>
1652
1653         Reviewed by Eric Carlson.
1654
1655         * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
1656         (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes): Check for null return value from
1657         'client()', just like we do in all other methods.
1658
1659 2015-03-27  Oliver Hunt  <oliver@apple.com>
1660
1661         Forward additional CFNetwork ATS information to child processes
1662         https://bugs.webkit.org/show_bug.cgi?id=143136
1663
1664         Reviewed by Anders Carlsson.
1665
1666         Declare SPI.
1667
1668         * platform/spi/cf/CFNetworkSPI.h:
1669
1670 2015-03-27  Chris Dumez  <cdumez@apple.com>
1671
1672         [WK2][NetworkCache] We only cache responses with status codes that are cacheable by default
1673         https://bugs.webkit.org/show_bug.cgi?id=143125
1674         <rdar://problem/20321172>
1675
1676         Reviewed by Antti Koivisto.
1677
1678         Export a couple of extra symbols.
1679
1680         * platform/network/ResourceResponseBase.h:
1681
1682 2015-03-27  Jer Noble  <jer.noble@apple.com>
1683
1684         HTMLMediaElement will fire 'seeked' before seek completes, leading to currentTime discontinuities.
1685         https://bugs.webkit.org/show_bug.cgi?id=143132
1686
1687         Reviewed by Eric Carlson.
1688
1689         When seeking, if the ready state rises to >= HAVE_CURRENT_DATA, we will fire the 'seeked'
1690         event and continue playback. However, if a media engine updates the ready state before its
1691         seek operation actually completes, the currentTime it returns may still be the time before
1692         the seek.
1693
1694         Wait until both the ready state rises to HAVE_CURRENT_DATA and m_player->seeking() returns
1695         false before firing the 'seeked' event.
1696
1697         * html/HTMLMediaElement.cpp:
1698         (WebCore::HTMLMediaElement::parseAttribute):
1699
1700 2015-03-26  Geoffrey Garen  <ggaren@apple.com>
1701
1702         Make some more objects use FastMalloc
1703         https://bugs.webkit.org/show_bug.cgi?id=143122
1704
1705         Reviewed by Csaba Osztrogonác.
1706
1707         * Modules/geolocation/GeolocationController.h:
1708         * Modules/geolocation/NavigatorGeolocation.h:
1709         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
1710         * Modules/notifications/NotificationController.h:
1711         * Modules/webdatabase/DatabaseServer.h:
1712         * css/CSSFontFaceSource.h:
1713         * html/HTMLMediaSession.h:
1714         * inspector/InspectorIndexedDBAgent.h:
1715         * inspector/InspectorReplayAgent.h:
1716         * page/CaptionUserPreferencesMediaAF.h:
1717         * page/PageConsoleClient.h:
1718         * page/PageDebuggable.h:
1719         * page/animation/CSSPropertyAnimation.cpp:
1720         * page/mac/ServicesOverlayController.h:
1721         * platform/RemoteCommandListener.h:
1722         * platform/Timer.h:
1723         * platform/audio/MediaSessionManager.h:
1724         * platform/mac/SystemSleepListenerMac.h:
1725         * platform/mac/ThemeMac.h:
1726         * rendering/svg/RenderSVGResourceSolidColor.h:
1727         * replay/ReplayController.h:
1728
1729 2015-03-27  Said Abou-Hallawa  <sabouhallawa@apple.com>
1730
1731         FEMorphology::platformApplyGeneric() should bail out if the radius is less than or equal to zero.
1732         https://bugs.webkit.org/show_bug.cgi?id=142885.
1733
1734         Reviewed by Dean Jackson.
1735
1736         FEMorphology class implementation code clean up.
1737         
1738         Tests: svg/filters/feMorphology-radius-cases.svg
1739
1740         * platform/graphics/filters/FEMorphology.cpp:
1741         (WebCore::shouldSupersedeExtremum): Reuse code instead of repeating it and
1742         use < and > instead of =< and >=.
1743         
1744         (WebCore::pixelArrayIndex): Returns the array index of a pixel in an image
1745         buffer, given: position(x, y), image width and the color channel.
1746         
1747         (WebCore::columnExtremum): Returns the extremum of a column of pixels.
1748         
1749         (WebCore::kernelExtremum): Returns the extremum of a filter kernel.
1750         
1751         (WebCore::FEMorphology::platformApplyGeneric): Apply some code clean-up.
1752         The kernel size should be equal to radius of the filter. The extra pixel
1753         was causing the resulted image to be asymmetric in some cases.
1754         
1755         (WebCore::FEMorphology::platformApplyDegenerate):
1756         (WebCore::FEMorphology::platformApplySoftware): After applying scaling, we
1757         still need to check the resulted radius is negative (overflow case) or less
1758         than one (zero radius case) and treat these cases differently.
1759         
1760         (WebCore::FEMorphology::morphologyOperator): Deleted.
1761         (WebCore::FEMorphology::radiusX): Deleted.
1762         (WebCore::FEMorphology::radiusY): Deleted.
1763         * platform/graphics/filters/FEMorphology.h:
1764         (WebCore::FEMorphology::morphologyOperator):
1765         (WebCore::FEMorphology::radiusX):
1766         (WebCore::FEMorphology::radiusY):
1767         Move a single line functions from the source file to the header file.
1768
1769 2015-03-27  Antti Koivisto  <antti@apple.com>
1770
1771         Move CacheValidation to platform
1772         https://bugs.webkit.org/show_bug.cgi?id=143133
1773
1774         Reviewed by Chris Dumez.
1775
1776         It deals with platform types only and is currently violating layering.
1777
1778         * WebCore.xcodeproj/project.pbxproj:
1779         * loader/cache/CacheValidation.cpp: Removed.
1780         * loader/cache/CacheValidation.h: Removed.
1781         * platform/network/CacheValidation.cpp: Copied from Source/WebCore/loader/cache/CacheValidation.cpp.
1782         * platform/network/CacheValidation.h: Copied from Source/WebCore/loader/cache/CacheValidation.h.
1783
1784 2015-03-27  Commit Queue  <commit-queue@webkit.org>
1785
1786         Unreviewed, rolling out r177896.
1787         https://bugs.webkit.org/show_bug.cgi?id=142978
1788
1789         Loading libgstclutter.so in-process hangs web process
1790         (Requested by mcatanzaro on #webkit).
1791
1792         Reverted changeset:
1793
1794         "[GStreamer] Disable gst-plugin-scanner if seccomp filters are
1795         enabled"
1796         https://bugs.webkit.org/show_bug.cgi?id=140069
1797         http://trac.webkit.org/changeset/177896
1798
1799 2015-03-26  Antti Koivisto  <antti@apple.com>
1800
1801         Respect cache-control directives in request
1802         https://bugs.webkit.org/show_bug.cgi?id=143121
1803         rdar://problem/19714040
1804
1805         Reviewed by Chris Dumez.
1806
1807         Test: http/tests/cache/disk-cache/disk-cache-request-headers.html
1808
1809         * loader/cache/CacheValidation.cpp:
1810         (WebCore::isCacheHeaderSeparator):
1811         (WebCore::isControlCharacter):
1812         (WebCore::trimToNextSeparator):
1813         (WebCore::parseCacheHeader):
1814         (WebCore::parseCacheControlDirectives):
1815
1816             Factor Cache-control parsing here so it can be used for both requests and responses.
1817
1818         * loader/cache/CacheValidation.h:
1819         * platform/network/ResourceRequestBase.h:
1820         * platform/network/ResourceResponseBase.cpp:
1821         (WebCore::ResourceResponseBase::ResourceResponseBase):
1822         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
1823         (WebCore::ResourceResponseBase::cacheControlContainsNoCache):
1824         (WebCore::ResourceResponseBase::cacheControlContainsNoStore):
1825         (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate):
1826         (WebCore::ResourceResponseBase::cacheControlMaxAge):
1827         (WebCore::isCacheHeaderSeparator): Deleted.
1828         (WebCore::isControlCharacter): Deleted.
1829         (WebCore::trimToNextSeparator): Deleted.
1830         (WebCore::parseCacheHeader): Deleted.
1831         * platform/network/ResourceResponseBase.h:
1832
1833 2015-03-27  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
1834
1835         [GStreamer] share GL context in pipeline, part 2
1836         https://bugs.webkit.org/show_bug.cgi?id=143049
1837
1838         Reviewed by Carlos Garcia Campos.
1839
1840         This patch, instead of cluttering the GstGL attributes creation in
1841         ::handleSyncMessage(), creates a new method ::ensureGstGLContext(),
1842         where those attributes are defined. This method is guarded by
1843         USE(GSTREAMER_GL)
1844
1845         ::handlSyncMessage() shall return nothing, according to GStreamer
1846         documentation, not a boolean.
1847
1848         The GstGL attributes are now GRefPtr<> to avoid memory leaks.
1849
1850         The GstGLAPI and GstGLPlatform are now set given by the pre-processor
1851         directives, and the code in ::ensureGstGLContext() is simpler.
1852
1853         No new tests because this is platform specific and it depends in the
1854         run-time availability and configurations of GstGL elements.
1855
1856         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1857         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1858         Don't initialise the GstGL attributes since are GRefPtr<>
1859         (WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage): Changed the
1860         signature to use void instead of gboolean.
1861         (WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext): New method.
1862         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1863
1864 2015-03-26  Jeremy Jones  <jeremyj@apple.com>
1865
1866         Optimized Fullscreen fails to cleanup because of no longer necessary release of m_playerController in exitFullscreen()
1867         https://bugs.webkit.org/show_bug.cgi?id=143120
1868
1869         Reviewed by Eric Carlson.
1870
1871         We used to release m_playerController in WebVideoFullscreenInterfaceAVKit::exitFullscreen() in order to make sure 
1872         media state was reset. This is no longer necessary as we now have a way the model can explicitly request resetting the
1873         media state via resetMediaState(). m_playerController is already released in 
1874         WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal(). Releasing it prematurely can actually prevent the exit
1875         fullscreen process from completing successfully.
1876
1877         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1878         (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
1879
1880 2015-03-26  Zalan Bujtas  <zalan@apple.com>
1881
1882         Inline continuation code should not take anonymous containing wrapper granted.
1883         https://bugs.webkit.org/show_bug.cgi?id=133312
1884
1885         Reviewed by Dave Hyatt.
1886
1887         It's wrong to assume that when RenderInline is part of an inline continuation, its containing block
1888         is an anonymous wrapper and its sibling might be a block level renderer.
1889         When the inline continuation is no longer needed, for example when the block level renderer that initiated the continuation
1890         is detached from the render tree, the inline renderes still continue to form continuation.(however they no longer require
1891         anonymous wrappers)
1892
1893         Test: fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html
1894
1895         * rendering/RenderInline.cpp:
1896         (WebCore::updateStyleOfAnonymousBlockContinuations):
1897         (WebCore::RenderInline::styleDidChange):
1898
1899 2015-03-26  Tim Horton  <timothy_horton@apple.com>
1900
1901         REGRESSION (r181358 and r181507): Lots of sites think that we support touch events on OS X
1902         https://bugs.webkit.org/show_bug.cgi?id=142888
1903         <rdar://problem/20227304>
1904
1905         Reviewed by Beth Dakin.
1906
1907         * dom/Document.idl:
1908         * dom/Element.idl:
1909         * html/HTMLBodyElement.idl:
1910         * html/HTMLFrameSetElement.idl:
1911         * page/DOMWindow.idl:
1912         Re-conditionalize a lot of event listeners; sites test ("ontouchstart" in window), which
1913         is not covered by NotEnumerable, and so r181358 and r181507 broke a bunch of sites
1914         (apple.com, blaze.com, anything using nicescroll.js, etc.) by causing them to think
1915         that (Mac) Safari was touch-enabled.
1916
1917 2015-03-26  Geoffrey Garen  <ggaren@apple.com>
1918
1919         "lineNo" does not match WebKit coding style guidelines
1920         https://bugs.webkit.org/show_bug.cgi?id=143119
1921
1922         Reviewed by Michael Saboff.
1923
1924         We can afford to use whole words.
1925
1926         * bindings/js/JSLazyEventListener.cpp:
1927         (WebCore::JSLazyEventListener::initializeJSFunction):
1928         * bindings/js/JSMainThreadExecStateInstrumentation.h:
1929         (WebCore::JSMainThreadExecState::instrumentFunctionCall):
1930         * inspector/InspectorDOMAgent.cpp:
1931         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
1932         * testing/Internals.cpp:
1933         (WebCore::Internals::parserMetaData):
1934
1935 2015-03-26  Roger Fong  <roger_fong@apple.com>
1936
1937         Apply blur effect to media control background.
1938         https://bugs.webkit.org/show_bug.cgi?id=143116.
1939         <rdar://problem/20316964>.
1940
1941         Reviewed by Brent Fulgham.
1942
1943         There are still a few issues, like the borders of the controls being blurred with black,
1944         and the volume slider background not showing the blur effect. Will fix those separately.
1945
1946         Add CSS for new divs to create blur effect using back drop filters and blend modes.
1947         * Modules/mediacontrols/mediaControlsApple.css:
1948         (audio::-webkit-media-controls-panel):
1949         (audio::-webkit-media-controls-panel-tint):
1950         (audio::-webkit-media-controls-panel-background):
1951         (audio::-webkit-media-controls-panel .volume-box):
1952         (audio::-webkit-media-controls-volume-slider-container-background):
1953         (audio::-webkit-media-controls-volume-slider-container-tint):
1954         (audio::-webkit-media-controls-toggle-closed-captions-button): Adjust fill.
1955         (audio::-webkit-media-controls-fullscreen-button): Adjust fill.
1956         (audio::-webkit-media-controls-fullscreen-button.exit): Adjust fill.
1957         (video:-webkit-full-screen::-webkit-media-controls-panel):
1958         (audio:-webkit-full-screen::-webkit-media-controls-panel-tint):
1959         (audio:-webkit-full-screen::-webkit-media-controls-panel-background):
1960         (video:-webkit-full-screen::-webkit-media-controls-panel .volume-box):
1961         (video:-webkit-full-screen::-webkit-media-controls-play-button):
1962         (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
1963         (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
1964         (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
1965         (video:-webkit-full-screen::-webkit-media-controls-status-display):
1966         (audio::-webkit-media-controls-panel .volume-box:active): Deleted.
1967         * Modules/mediacontrols/mediaControlsApple.js:
1968         (Controller.prototype.createControls):
1969         (Controller.prototype.configureInlineControls): Add new divs for blurred background effect.
1970         (Controller.prototype.configureFullScreenControls): Ditto.
1971         (Controller.prototype.handlePanelMouseDown): The tint div is now in front.
1972         (Controller.prototype.drawTimelineBackground): Adjust colors to make border look better with new background.
1973         (Controller.prototype.drawVolumeBackground): Ditto.
1974
1975 2015-03-26  Geoffrey Garen  <ggaren@apple.com>
1976
1977         Assertion firing in JavaScriptCore/parser/parser.h for statesman.com site
1978         https://bugs.webkit.org/show_bug.cgi?id=142974
1979
1980         Reviewed by Joseph Pecoraro.
1981
1982         * bindings/js/JSLazyEventListener.cpp:
1983         (WebCore::JSLazyEventListener::initializeJSFunction): Use the new override
1984         line number API to guarantee that errors will map to the .html file locations
1985         that we like.
1986
1987         * bindings/js/ScriptController.cpp:
1988         (WebCore::ScriptController::eventHandlerPosition): Added a FIXME to cover
1989         some cases where our line and column numbers are still nonsense.
1990
1991 2015-03-26  Beth Dakin  <bdakin@apple.com>
1992
1993         Relevant repainted objects callback is inaccurate and inconsistent for PDF 
1994         documents
1995         https://bugs.webkit.org/show_bug.cgi?id=143118
1996         -and corresponding-
1997         rdar://problem/13371582
1998
1999         Reviewed by Tim Horton.
2000
2001         Investigating this bug resulted in finding two things that should change for the 
2002         relevant repainted objects heuristic. First, we should not count any objects 
2003         painted while updating control tints. And secondly, we should not use it at all 
2004         for plugin documents. In other documents, we count the plugin area as “painted” 
2005         when we get to paint whether or not the plugin has actually loaded. This is 
2006         intentional because it allows us to account for chunks of the page that will be 
2007         filled in by possibly slow-loading ads. However, if the plugin is the whole 
2008         document, then the heuristic just doesn’t make any sense and it leads to 
2009         inconsistent behavior at different window sizes. So we’ll only count plugins when 
2010         the document is not a plugin document. 
2011
2012         Don’t count objects during this paint!
2013         * page/FrameView.cpp:
2014         (WebCore::FrameView::updateControlTints):
2015         * page/Page.h:
2016         (WebCore::Page::setIsCountingRelevantRepaintedObjects):
2017
2018         Make sure the document is not a plugin document.
2019         * rendering/RenderEmbeddedObject.cpp:
2020         (WebCore::RenderEmbeddedObject::paint):
2021
2022 2015-03-26  Alex Christensen  <achristensen@webkit.org>
2023
2024         Progress towards CMake on Mac.
2025         https://bugs.webkit.org/show_bug.cgi?id=143112
2026
2027         Reviewed by Chris Dumez.
2028
2029         * CMakeLists.txt:
2030         * PlatformEfl.cmake:
2031         * PlatformGTK.cmake:
2032         * PlatformMac.cmake:
2033         * platform/graphics/mac/IconMac.mm:
2034
2035 2015-03-26  Jer Noble  <jer.noble@apple.com>
2036
2037         [iOS] Accessibility crashing because MediaPlayer is laying out UI off the main thread
2038         https://bugs.webkit.org/show_bug.cgi?id=142970
2039
2040         Reviewed by Eric Carlson.
2041
2042         isMainThread() will (ironically) return true if called from the web thread. Rather than dispatch
2043         synchronously to the main thread to allocate the _volumeView, dispatch asynchronously and handle
2044         the case where the MPVolumeView has not yet been created.
2045
2046         * platform/audio/ios/MediaSessionManagerIOS.mm:
2047         (-[WebMediaSessionHelper allocateVolumeView]): Dispatch to the main thread to allocate. Move notification
2048             registration to -setVolumeView:.
2049         (-[WebMediaSessionHelper setVolumeView:]): Added. Register/Unregister for route availablitiy notifications.
2050         (-[WebMediaSessionHelper hasWirelessTargetsAvailable]): Handle the possibility of a nil _volumeView.
2051
2052 2015-03-26  Benjamin Poulain  <bpoulain@apple.com>
2053
2054         Fix state maching debugging after r181964
2055         https://bugs.webkit.org/show_bug.cgi?id=143082
2056
2057         Reviewed by Alex Christensen.
2058
2059         * contentextensions/ContentExtensionCompiler.cpp:
2060         (WebCore::ContentExtensions::compileRuleList):
2061
2062 2015-03-25  David Hyatt  <hyatt@apple.com>
2063
2064         Improve the offsetWidth/Height layout optimization
2065         https://bugs.webkit.org/show_bug.cgi?id=143008
2066
2067         Reviewed by Zalan Bujtas.
2068
2069         * dom/Document.cpp:
2070         (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
2071         * dom/Document.h:
2072         Change Element* to Element&. Clean up the dimension bits to use shifting. Remove both the inline and
2073         the positioning restrictions on the optimization check.
2074
2075         * dom/Element.cpp:
2076         (WebCore::Element::offsetWidth):
2077         (WebCore::Element::offsetHeight):
2078         Change to use Element& instead of Element*.
2079
2080         (WebCore::Element::clientWidth):
2081         (WebCore::Element::clientHeight):
2082         (WebCore::Element::scrollWidth):
2083         (WebCore::Element::scrollHeight):
2084         Turn on the optimization for clientWidth/Height and scrollWidth/Height.
2085
2086 2015-03-26  Brady Eidson  <beidson@apple.com>
2087
2088         Apply ContentExtension actions after redirects.
2089         <rdar://problem/20062613> and https://bugs.webkit.org/show_bug.cgi?id=143055
2090
2091         Reviewed by Alex Christensen.
2092
2093         Tests: http/tests/contentextensions/loading/main-resource-redirect-blocked.php
2094                http/tests/contentextensions/subresource-redirect-blocked.html
2095
2096         This patch moves the "run a URL against the content extension" code from CachedResourceLoader to
2097         the ContentExtensionsBackend.
2098
2099         That allows it to be shared between the CachedResourceLoader where loads are initiated and 
2100         ResourceLoader where redirects are handled.
2101
2102         * contentextensions/ContentExtension.cpp:
2103         (WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):
2104
2105         * contentextensions/ContentExtensionsBackend.cpp:
2106         (WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
2107         (WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule):
2108         * contentextensions/ContentExtensionsBackend.h:
2109
2110         * loader/NetscapePlugInStreamLoader.cpp:
2111         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
2112
2113         * loader/ResourceLoadInfo.h:
2114
2115         * loader/ResourceLoader.cpp:
2116         (WebCore::ResourceLoader::ResourceLoader):
2117         (WebCore::ResourceLoader::willSendRequest):
2118         * loader/ResourceLoader.h:
2119
2120         * loader/SubresourceLoader.cpp:
2121         (WebCore::SubresourceLoader::SubresourceLoader):
2122
2123         * loader/cache/CachedResourceLoader.cpp:
2124         (WebCore::CachedResourceLoader::requestResource):
2125
2126         * page/UserContentController.cpp:
2127         (WebCore::UserContentController::processContentExtensionRulesForLoad):
2128         (WebCore::UserContentController::actionsForResourceLoad): Deleted.
2129         (WebCore::UserContentController::globalDisplayNoneStyleSheet): Deleted.
2130         (WebCore::UserContentController::displayNoneCSSRule): Deleted.
2131         * page/UserContentController.h:
2132
2133 2015-03-26  Myles C. Maxfield  <mmaxfield@apple.com>
2134
2135         Crash when laying out (char)0
2136         https://bugs.webkit.org/show_bug.cgi?id=143103
2137
2138         Reviewed by Dean Jackson.
2139
2140         We currently cache a character -> Font mapping in a HashMap.
2141         However, keys in Hashmaps can't be 0. This patch simply skips
2142         the cache in this case.
2143
2144         No new tests, for now. I'm having trouble creating a test because
2145         the site that causes this bug generates their page using script,
2146         and the script is all minified, and difficult to understand. I
2147         will contact the owner of the site and ask for and unminified
2148         version of their sources. However, I don't want to that to block
2149         this tiny fix from going in.
2150
2151         * platform/graphics/Font.cpp:
2152         (WebCore::Font::systemFallbackFontForCharacter):
2153
2154 2015-03-26  Jer Noble  <jer.noble@apple.com>
2155
2156         [Mac][EME] Crash at com.apple.WebCore: WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys + 177
2157         https://bugs.webkit.org/show_bug.cgi?id=143080
2158
2159         Reviewed by Eric Carlson.
2160
2161         Null-check m_certificate before dereferencing.
2162
2163         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
2164         (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys):
2165
2166 2015-03-26  Chris Fleizach  <cfleizach@apple.com>
2167
2168         AX: [role="button"][aria-pressed] should be exposed as AXCheckbox:AXToggleButton, with role description of "toggle button"
2169         https://bugs.webkit.org/show_bug.cgi?id=115298
2170
2171         Reviewed by Mario Sanchez Prada.
2172
2173         A role=button + aria-pressed object should be exposed as AXCheckbox on Mac now. It should also convert the
2174         aria-pressed state into a 0, 1, 2 number value for the Mac.
2175
2176         Test: platform/mac/accessibility/aria-pressed-button-attributes.html
2177
2178         * accessibility/AccessibilityObject.cpp:
2179         (WebCore::AccessibilityObject::checkboxOrRadioValue):
2180         * accessibility/AccessibilityObject.h:
2181         (WebCore::AccessibilityObject::isToggleButton):
2182         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2183         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
2184         (createAccessibilityRoleMap):
2185         (-[WebAccessibilityObjectWrapper subrole]):
2186         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2187
2188 2015-03-25  Dean Jackson  <dino@apple.com>
2189
2190         CSS blend modes do not parse when in the shadow tree
2191         https://bugs.webkit.org/show_bug.cgi?id=143067
2192         <rdar://problem/20302662>
2193
2194         Reviewed by Anders Carlson.
2195
2196         The media controls style sheets are injected as UA stylesheets
2197         when we come across a <video> or <audio> element. These stylesheets
2198         have a different parsing context than the document stylesheets -
2199         one that uses the default constructor, which initializes some
2200         features like cssCompositingEnabled to false without checking
2201         the runtime state.
2202
2203         The easy fix is to use the global state to initialize the context.
2204
2205         Unfortunately we can't test this since it only occurs in the shadow
2206         tree.
2207
2208         * css/CSSParser.cpp:
2209         (WebCore::CSSParserContext::CSSParserContext): Check the state
2210         of RuntimeEnabledFeatures to initialize CSS Regions and
2211         CSS Compositing (Blending).
2212
2213 2015-03-25  Chris Fleizach  <cfleizach@apple.com>
2214
2215         AX: table cells that use display:block render the table inaccessible to VoiceOver
2216         https://bugs.webkit.org/show_bug.cgi?id=143007
2217
2218         Reviewed by Mario Sanchez Prada.
2219
2220         When display:block is used on a table cell, it was being ignored because it was anonymous.
2221         This is still a valid scenario however if it's still inside of a valid table.
2222
2223         Test: accessibility/table-cell-display-block.html
2224
2225         * accessibility/AccessibilityTableCell.cpp:
2226         (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
2227
2228 2015-03-25  Tim Horton  <timothy_horton@apple.com>
2229
2230         Add a preference to prevent "user-scalable=no" from having any effect
2231         https://bugs.webkit.org/show_bug.cgi?id=143032
2232
2233         Reviewed by Sam Weinig.
2234
2235         * page/ViewportConfiguration.cpp:
2236         (WebCore::ViewportConfiguration::ViewportConfiguration):
2237         (WebCore::ViewportConfiguration::allowsUserScaling):
2238         * page/ViewportConfiguration.h:
2239         (WebCore::ViewportConfiguration::setForceAlwaysUserScalable):
2240         If forceAlwaysUserScalable is set to true, force "user-scalable=yes".
2241
2242 2015-03-25  Dan Bernstein  <mitz@apple.com>
2243
2244         Another attempt to get the iOS EWS building again.
2245
2246         * WebCore.xcodeproj/project.pbxproj:
2247
2248 2015-03-25  Alex Christensen  <achristensen@webkit.org>
2249
2250         Add case-insensitive checks to DFA bytecode.
2251         https://bugs.webkit.org/show_bug.cgi?id=142977
2252
2253         Reviewed by Benjamin Poulain.
2254
2255         * contentextensions/DFABytecode.h:
2256         (WebCore::ContentExtensions::instructionSizeWithArguments):
2257         * contentextensions/DFABytecodeCompiler.cpp:
2258         (WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValue):
2259         (WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValueRange):
2260         Add case-insensitive bytecode.
2261         (WebCore::ContentExtensions::DFABytecodeCompiler::compileNodeTransitions):
2262         Check to see if case-insensitive bytecodes can be used.
2263         (WebCore::ContentExtensions::DFABytecodeCompiler::compileCheckForRange):
2264         * contentextensions/DFABytecodeCompiler.h:
2265         (WebCore::ContentExtensions::DFABytecodeCompiler::Range::Range):
2266         Added Range structure to be able to count the ranges in a future patch deciding if we want to use jump tables.
2267         * contentextensions/DFABytecodeInterpreter.cpp:
2268         (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
2269         Interpret case-insensitive bytecodes.
2270
2271 2015-03-25  Sam Weinig  <sam@webkit.org>
2272
2273         Address additional review feedback from https://bugs.webkit.org/show_bug.cgi?id=143059.
2274
2275         * contentextensions/ContentExtensionCompiler.cpp:
2276         (WebCore::ContentExtensions::compileRuleList):
2277         * contentextensions/ContentExtensionCompiler.h:
2278         * contentextensions/ContentExtensionParser.cpp:
2279         (WebCore::ContentExtensions::getTypeFlags):
2280
2281 2015-03-25  Sam Weinig  <sam@webkit.org>
2282
2283         [Content Extensions] Convert content extension compiling to return error codes and write its output using a client
2284         https://bugs.webkit.org/show_bug.cgi?id=143059
2285
2286         Reviewed by Alex Christensen.
2287
2288         * WebCore.xcodeproj/project.pbxproj:
2289         Add ContentExtensionError.h/cpp.
2290
2291         * contentextensions/ContentExtensionError.cpp: Added.
2292         (WebCore::ContentExtensions::contentExtensionErrorCategory):
2293         * contentextensions/ContentExtensionError.h: Added.
2294         (WebCore::ContentExtensions::make_error_code):
2295         Add ContentExtensionError enum and std::error_code adaptor.
2296
2297         * contentextensions/ContentExtensionCompiler.h:
2298         Instead of returning CompiledContentExtensionData, use a client interface
2299         to pass data. Eventually, this should be turned into a direct streaming 
2300         interface so we can write directly to a file.
2301
2302         * contentextensions/ContentExtensionCompiler.cpp:
2303         (WebCore::ContentExtensions::compileRuleList):
2304         * contentextensions/ContentExtensionParser.cpp:
2305         (WebCore::ContentExtensions::getTypeFlags):
2306         (WebCore::ContentExtensions::loadTrigger):
2307         (WebCore::ContentExtensions::loadAction):
2308         (WebCore::ContentExtensions::loadRule):
2309         (WebCore::ContentExtensions::loadEncodedRules):
2310         (WebCore::ContentExtensions::parseRuleList):
2311         * contentextensions/ContentExtensionParser.h:
2312         Convert to return an error.
2313
2314 2015-03-25  Beth Dakin  <bdakin@apple.com>
2315
2316         REGRESSION (r181660): Safari navigates to link after a starting and canceling a 
2317         force preview
2318         https://bugs.webkit.org/show_bug.cgi?id=143057
2319         -and corresponding-
2320         rdar://problem/20251436
2321
2322         Reviewed by Tim Horton.
2323
2324         This patch adds a value for ActionUpdated to the ImmediateActionStage enum. Now if 
2325         m_immediateActionStage indicates that an immediate action has either begun or 
2326         completed then we can have the same behavior.
2327         * page/EventHandler.cpp:
2328         (WebCore::EventHandler::handleMouseReleaseEvent):
2329         * page/EventHandler.h:
2330
2331 2015-03-25  Dean Jackson  <dino@apple.com>
2332
2333         MediaControls: Use font with fixed number width
2334         https://bugs.webkit.org/show_bug.cgi?id=143018
2335         <rdar://problem/20245415>
2336
2337         Reviewed by Eric Carlson.
2338
2339         Add a new font-family, specific to Apple platforms,
2340         called -apple-system-font-monospaced-numbers. This is
2341         a special variant of the system font which uses monospaced
2342         forms for the number glyphs - allowing a time reading that
2343         doesn't bounce around as the time changes.
2344
2345         * Modules/mediacontrols/mediaControlsApple.css: Media controls should
2346         use the new font.
2347         (audio::-webkit-media-controls-time-remaining-display):
2348         * Modules/mediacontrols/mediaControlsiOS.css:
2349         (audio::-webkit-media-controls-time-remaining-display):
2350
2351         * platform/graphics/ios/FontCacheIOS.mm: Request a new CTFontRef with
2352         the appropriate attributes.
2353         (WebCore::createCTFontWithFamilyNameAndWeight):
2354         * platform/graphics/mac/FontCacheMac.mm: Ditto, but NSFont.
2355         (WebCore::fontWithFamily):
2356         * platform/spi/cocoa/CoreTextSPI.h: Expose the constants for
2357         the new form so that the public SDK can build.
2358
2359 2015-03-25  Alex Christensen  <achristensen@webkit.org>
2360
2361         [Content Extensions] Add multi-DFA compiling and interpreting.
2362         https://bugs.webkit.org/show_bug.cgi?id=143010
2363
2364         Reviewed by Benjamin Poulain.
2365
2366         * contentextensions/ContentExtensionCompiler.cpp:
2367         (WebCore::ContentExtensions::compileRuleList):
2368         Compile multiple NFAs to DFAs.
2369         * contentextensions/ContentExtensionsBackend.cpp:
2370         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
2371         Fixed a bug when there are no non-universal actions.
2372         We still need to report that no ignore-previous-rules was hit to apply the
2373         universal actions which are now accessed through DFABytecodeInterpreter::actionsFromDFARoot
2374         and skipped in DFABytecodeInterpreter::interpret.
2375         * contentextensions/DFABytecodeCompiler.cpp:
2376         (WebCore::ContentExtensions::DFABytecodeCompiler::compile):
2377         Add a header for each DFA.
2378         * contentextensions/DFABytecodeInterpreter.cpp:
2379         (WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot):
2380         (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
2381         Interpret as many DFAs as there are in the bytecode.
2382
2383 2015-03-25  Per Arne Vollan  <peavo@outlook.com>
2384
2385         [Win] Illegal character in project file.
2386         https://bugs.webkit.org/show_bug.cgi?id=143051
2387
2388         Reviewed by Brent Fulgham.
2389
2390         There is an illegal character in the WebCore project filter.
2391         WebCore files are shown unfiltered.
2392
2393         * WebCore.vcxproj/WebCore.vcxproj.filters:
2394
2395 2015-03-25  David Hyatt  <hyatt@apple.com>
2396
2397         Add a pref to enable the new block-inside-inline model
2398         https://bugs.webkit.org/show_bug.cgi?id=143050
2399
2400         Reviewed by Sam Weinig.
2401
2402         * page/Settings.in:
2403
2404 2015-03-25  Dan Bernstein  <mitz@apple.com>
2405
2406         iOS Simulator build fix.
2407
2408         * platform/spi/cocoa/IOSurfaceSPI.h:
2409
2410 2015-03-25  Commit Queue  <commit-queue@webkit.org>
2411
2412         Unreviewed, rolling out r181932.
2413         https://bugs.webkit.org/show_bug.cgi?id=143041
2414
2415         The test fails most of the time on bots (Requested by ap on
2416         #webkit).
2417
2418         Reverted changeset:
2419
2420         "[Content Extensions] Add multi-DFA compiling and
2421         interpreting."
2422         https://bugs.webkit.org/show_bug.cgi?id=143010
2423         http://trac.webkit.org/changeset/181932
2424
2425 2015-03-24  Dean Jackson  <dino@apple.com>
2426
2427         Source/WebCore/rendering/RenderThemeMac.mm:2181:118: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull]
2428         https://bugs.webkit.org/show_bug.cgi?id=143039
2429
2430         Unreviewed build fix for newer versions of OS X.
2431
2432         * rendering/RenderThemeMac.mm: Define a null language parameter. This
2433         seemed better than turning the clang warning off for just that
2434         function.
2435         (WebCore::AttachmentLayout::layOutTitle):
2436         (WebCore::AttachmentLayout::layOutSubtitle):
2437
2438 2015-03-24  Dan Bernstein  <mitz@apple.com>
2439
2440         Another attempt to fix the build.
2441
2442         * WebCore.xcodeproj/project.pbxproj:
2443         * platform/spi/cocoa/QuartzCoreSPI.h:
2444
2445 2015-03-24  Alex Christensen  <achristensen@webkit.org>
2446
2447         [Content Extensions] Add multi-DFA compiling and interpreting.
2448         https://bugs.webkit.org/show_bug.cgi?id=143010
2449
2450         Reviewed by Benjamin Poulain.
2451
2452         * contentextensions/ContentExtensionCompiler.cpp:
2453         (WebCore::ContentExtensions::compileRuleList):
2454         Compile multiple NFAs to DFAs.
2455         * contentextensions/ContentExtensionsBackend.cpp:
2456         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
2457         Fixed a bug when there are no non-universal actions.
2458         We still need to report that no ignore-previous-rules was hit to apply the
2459         universal actions which are now accessed through DFABytecodeInterpreter::actionsFromDFARoot
2460         and skipped in DFABytecodeInterpreter::interpret.
2461         * contentextensions/DFABytecodeCompiler.cpp:
2462         (WebCore::ContentExtensions::DFABytecodeCompiler::compile):
2463         Add a header for each DFA.
2464         * contentextensions/DFABytecodeInterpreter.cpp:
2465         (WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot):
2466         (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
2467         Interpret as many DFAs as there are in the bytecode.
2468
2469 2015-03-24  Dan Bernstein  <mitz@apple.com>
2470
2471         Tried to fix the EWS build.
2472
2473         * platform/spi/cocoa/QuartzCoreSPI.h:
2474
2475 2015-03-24  Commit Queue  <commit-queue@webkit.org>
2476
2477         Unreviewed, rolling out r181898 and r181909.
2478         https://bugs.webkit.org/show_bug.cgi?id=143034
2479
2480         Broke fast/regions/auto-size/autoheight-two-pass-layout-
2481         complex-002.html (Requested by ap on #webkit).
2482
2483         Reverted changesets:
2484
2485         "Improve the offsetWidth/Height layout optimization"
2486         https://bugs.webkit.org/show_bug.cgi?id=143008
2487         http://trac.webkit.org/changeset/181898
2488
2489         "Disable layout dimensions optimization for RenderRegions"
2490         https://bugs.webkit.org/show_bug.cgi?id=143017
2491         http://trac.webkit.org/changeset/181909
2492
2493 2015-03-24  Zhuo Li  <zachli@apple.com>
2494
2495         Scripts running in isolated world should not subject to a page's CSP about 'eval'.
2496         https://bugs.webkit.org/show_bug.cgi?id=141316.
2497
2498         Reviewed by Geoffrey Garen.
2499
2500         * bindings/js/ScriptController.cpp:
2501         (WebCore::ScriptController::initScript):
2502         We should not impose the main world Content Security Policy onto the isolated world.
2503
2504 2015-03-24  Chris Dumez  <cdumez@apple.com>
2505
2506         [Mac] Use .cpp file extension instead of .mm for SharedTimerCF and PowerObserverMac
2507         https://bugs.webkit.org/show_bug.cgi?id=143026
2508
2509         Reviewed by Andy Estes.
2510
2511         Use .cpp file extension instead of .mm for SharedTimerCF and
2512         PowerObserverMac.
2513
2514         * WebCore.xcodeproj/project.pbxproj:
2515         * platform/cf/SharedTimerCF.cpp: Renamed from Source/WebCore/platform/cf/SharedTimerCF.mm.
2516         (WebCore::timerFired):
2517         Use WTF::AutodrainedPool instead of @autoreleasepool {}.
2518
2519         * platform/mac/PowerObserverMac.cpp: Renamed from Source/WebCore/platform/mac/PowerObserverMac.mm.
2520
2521 2015-03-24  Yusuke Suzuki  <utatane.tea@gmail.com>
2522
2523         REGRESSION (r181458): Heap use-after-free in JSSetIterator destructor
2524         https://bugs.webkit.org/show_bug.cgi?id=142696
2525
2526         Reviewed and tweaked by Geoffrey Garen.
2527
2528         Use JSSetIterator/JSMapIterator to iterate over JSSet and JSMap.
2529
2530         * ForwardingHeaders/runtime/JSMapIterator.h: Added.
2531         * ForwardingHeaders/runtime/JSSetIterator.h: Added.
2532         * bindings/js/SerializedScriptValue.cpp:
2533         (WebCore::CloneSerializer::serialize):
2534
2535 2015-03-24  Dan Bernstein  <mitz@apple.com>
2536
2537         Tried to fix the iOS Simulator build.
2538
2539         * platform/spi/cocoa/QuartzCoreSPI.h:
2540
2541 2015-03-24  Benjamin Poulain  <bpoulain@apple.com>
2542
2543         Make URL filter patterns matching consistent and add a simple canonicalization step
2544         https://bugs.webkit.org/show_bug.cgi?id=142998
2545
2546         Reviewed by Alex Christensen.
2547
2548         This patch makes two changes to the url filter input:
2549         -Make the matching "Search" by default, the pattern can now appear anywhere
2550          in the URL by default.
2551         -Make the input a little less fragile: do not explode on valid input
2552          that is not formatted in a certain way.
2553
2554         To implement the search behavior, I simply add an implict ".*" in front of the patterns
2555         when that make sense.
2556
2557         To make the input more solid, we do some little modification on the input:
2558         -Remove duplicated ".*".
2559         -Remove matching suffixes that do not bring new information.
2560         -Unify all the ".*" in the same format.
2561
2562         Why do that here? That should be done through a graph analysis on the machine.
2563
2564         The reason is this is incredibly cheap compared to the graph analysis. Any state
2565         removed upfront will save the handling of several hundred nodes in the deterministic
2566         graph.
2567
2568         * contentextensions/URLFilterParser.cpp:
2569         (WebCore::ContentExtensions::Term::isKnownToMatchAnyString):
2570         (WebCore::ContentExtensions::Term::isUniversalTransition):
2571         (WebCore::ContentExtensions::GraphBuilder::finalize):
2572         (WebCore::ContentExtensions::GraphBuilder::assertionBOL):
2573         (WebCore::ContentExtensions::GraphBuilder::fail):
2574         (WebCore::ContentExtensions::GraphBuilder::simplifySunkTerms):
2575
2576 2015-03-24  Chris Dumez  <cdumez@apple.com>
2577
2578         Regression(r181671): Caused Timer-related crashes on iOS / WK1
2579         https://bugs.webkit.org/show_bug.cgi?id=143025
2580
2581         Reviewed by Andy Estes.
2582
2583         Call CFRunLoopAddTimer() on WebThreadRunLoop() instead of
2584         CFRunLoopGetCurrent() for iOS, as we did before r181671.
2585
2586         I inadvertently changed this in r181671 when merging the Mac
2587         and iOS implementations.
2588
2589         No new tests, already covered by existing tests.
2590
2591         * platform/cf/SharedTimerCF.mm:
2592         (WebCore::setSharedTimerFireInterval):
2593
2594 2015-03-24  Dan Bernstein  <mitz@apple.com>
2595
2596         WebCore part of <rdar://problem/20282863> Transforms are flattened in snapshots of on-screen WKWebViews
2597         https://bugs.webkit.org/show_bug.cgi?id=143023
2598
2599         Reviewed by Tim Horton.
2600
2601         * platform/spi/cocoa/QuartzCoreSPI.h: Added the declaration of
2602         CARenderServerRenderLayerWithTransform.
2603
2604 2015-03-24  David Hyatt  <hyatt@apple.com>
2605
2606         Disable layout dimensions optimization for RenderRegions
2607         https://bugs.webkit.org/show_bug.cgi?id=143017
2608
2609         Reviewed by Dean Jackson.
2610
2611         * dom/Document.cpp:
2612         (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
2613         Turn off the optimization for regions, since auto height regions can change size
2614         without needing a layout.
2615
2616 2015-03-24  Beth Dakin  <bdakin@apple.com>
2617
2618         Add events related to force click gesture
2619         https://bugs.webkit.org/show_bug.cgi?id=142836
2620         -and corresponding-
2621         rdar://problem/20210239
2622
2623         Reviewed by Dean Jackson.
2624
2625         This patch adds six new events for the force click gesture:
2626
2627         webkitmouseforcewillbegin -> Event is sent just before mousedown to indicate that 
2628         force can be perceived if the user presses any harder. The author should prevent 
2629         default on this event to both prevent the user agent’s default force click 
2630         features and to receive the other 5 events.
2631
2632         webkitmouseforcechanged -> This event fires whenever force changes between the 
2633         mousedown and mouseup. It is a new type of mouse event that includes a force 
2634         variable which is a normalized number between 0 (corresponds to click) and 1 
2635         (corresponds to force click). In this patch, I have only added code to send this 
2636         event between mousedown and mouseforcedown, but as a followup patch, we plan to 
2637         send it through mouseup.
2638
2639         webkitmouseforcecancelled -> If the user releases their finger from the trackpad 
2640         after pressing hard enough to send webkitmouseforcewillbegin events but not hard 
2641         enough to force click, this event will be sent to indicate that the user bailed 
2642         out on the gesture.
2643
2644         webkitmouseforcedown -> The down part of the force click.
2645
2646         webkitmouseforceup -> The up part of the force click. This event is added in this 
2647         patch, but does not yet fire. That is work for a follow-up patch.
2648
2649         webkitmouseforceclick -> The equivalent of the click event for the force click. 
2650         Should fire just after webkitmouseforceup. This event is added in this patch, but 
2651         does not yet fire. That is work for a follow-up patch.
2652
2653         Add new files for WebKitMouseForceEvent to build systems.
2654         * DerivedSources.cpp:
2655         * DerivedSources.make:
2656         * WebCore.vcxproj/WebCore.vcxproj:
2657         * WebCore.vcxproj/WebCore.vcxproj.filters:
2658         * WebCore.xcodeproj/project.pbxproj:
2659         * WebCore.xcodeproj/project.pbxproj:
2660
2661         Plumbing for new events.
2662         * dom/Document.idl:
2663
2664         Code to dispatch the new events. Currently the code that calls these functions is 
2665         in WebKit2.
2666         * dom/Element.cpp:
2667         (WebCore::Element::dispatchMouseForceWillBegin):
2668         (WebCore::Element::dispatchMouseForceChanged):
2669         (WebCore::Element::dispatchMouseForceDown):
2670         (WebCore::Element::dispatchMouseForceUp):
2671         (WebCore::Element::dispatchMouseForceClick):
2672         (WebCore::Element::dispatchMouseForceCancelled):
2673         * dom/Element.h:
2674
2675         More plumbing.
2676         * dom/Element.idl:
2677         * dom/EventNames.h:
2678         * dom/EventNames.in:
2679
2680         Our new type of mouse event that includes force.
2681         * dom/WebKitMouseForceEvent.cpp: Added.
2682         (WebCore::WebKitMouseForceEventInit::WebKitMouseForceEventInit):
2683         (WebCore::WebKitMouseForceEvent::WebKitMouseForceEvent):
2684         (WebCore::WebKitMouseForceEvent::~WebKitMouseForceEvent):
2685         (WebCore::WebKitMouseForceEvent::eventInterface):
2686         * dom/WebKitMouseForceEvent.h: Added.
2687         * dom/WebKitMouseForceEvent.idl: Added.
2688
2689         More plumbing.
2690         * html/HTMLAttributeNames.in:
2691         * html/HTMLBodyElement.cpp:
2692         (WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):
2693         * html/HTMLBodyElement.idl:
2694         * html/HTMLElement.cpp:
2695         (WebCore::HTMLElement::createEventHandlerNameMap):
2696         * page/DOMWindow.idl:
2697         * page/EventHandler.h:
2698         (WebCore::EventHandler::lastMouseDownEvent):
2699
2700 2015-03-24  Anders Carlsson  <andersca@apple.com>
2701
2702         Fix designated initializer violations
2703         https://bugs.webkit.org/show_bug.cgi?id=143016
2704         rdar://problem/20268858
2705
2706         Reviewed by Dan Bernstein.
2707
2708         Mark -[DOMObject init] as unavailable.
2709
2710         * bindings/objc/DOMObject.h:
2711         * bindings/objc/DOMObject.mm:
2712         (-[DOMObject init]):
2713
2714 2015-03-24  Benjamin Poulain  <benjamin@webkit.org>
2715
2716         CSS Selectors Level 4: enable case-insensitive attribute matching by default
2717         https://bugs.webkit.org/show_bug.cgi?id=142960
2718
2719         Reviewed by Andreas Kling.
2720
2721         All open issues have been resolved, enable the feature by default.
2722
2723         Test: fast/css/attribute-selector-case-insensitive.html
2724
2725         * css/CSSGrammar.y.in:
2726
2727 2015-03-24  Dean Jackson  <dino@apple.com>
2728
2729         MediaControls: Scrubber and Time displays have the incorrect blending
2730         https://bugs.webkit.org/show_bug.cgi?id=143011
2731         <rdar://problem/20245251>
2732
2733         Reviewed by Eric Carlson.
2734
2735         The scrubber in media controls should use plus-darker blending. Then
2736         the scrubber itself should use a slightly transparent black (55% opacity)
2737         when drawing.
2738
2739         * Modules/mediacontrols/mediaControlsiOS.css:
2740         (audio::-webkit-media-controls-timeline): Add the blend mode.
2741         * Modules/mediacontrols/mediaControlsiOS.js:
2742         (ControllerIOS.prototype.drawTimelineBackground): Start drawing with
2743         transparency. I changed the order of rendering to make it
2744         more clear we draw the three parts in left to right order.
2745
2746 2015-03-24  David Hyatt  <hyatt@apple.com>
2747
2748         Improve the offsetWidth/Height layout optimization
2749         https://bugs.webkit.org/show_bug.cgi?id=143008
2750
2751         Reviewed by Dean Jackson.
2752
2753         * dom/Document.cpp:
2754         (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
2755         * dom/Document.h:
2756         Change Element* to Element&. Clean up the dimension bits to use shifting. Remove both the inline and
2757         the positioning restrictions on the optimization check.
2758
2759         * dom/Element.cpp:
2760         (WebCore::Element::offsetWidth):
2761         (WebCore::Element::offsetHeight):
2762         Change to use Element& instead of Element*.
2763
2764         (WebCore::Element::clientWidth):
2765         (WebCore::Element::clientHeight):
2766         (WebCore::Element::scrollWidth):
2767         (WebCore::Element::scrollHeight):
2768         Turn on the optimization for clientWidth/Height and scrollWidth/Height.
2769
2770 2015-03-24  Yoav Weiss  <yoav@yoav.ws>
2771
2772         Stop image from displaying when src attribute is removed or emptied
2773         https://bugs.webkit.org/show_bug.cgi?id=142677
2774
2775         Reviewed by Chris Dumez.
2776
2777         Previously, we ignored empty attribute as failed URL, and didn't update the
2778         renderer when an image was removed. This patch fixes that.
2779
2780         Tests: fast/dom/HTMLImageElement/image-empty-src.html
2781                fast/dom/HTMLImageElement/image-remove-src.html
2782
2783         * loader/ImageLoader.cpp:
2784         (WebCore::ImageLoader::updateFromElement):
2785
2786 2015-03-17  Philippe Normand  <pnormand@igalia.com>
2787
2788         [OpenWebRTC] RealtimeMediaSourceCenter implementation
2789         https://bugs.webkit.org/show_bug.cgi?id=142476
2790
2791         Reviewed by Eric Carlson.
2792
2793         The old GStreamer MediaStreamCenter is replaced by the OpenWebRTC
2794         RealtimeMediaSourceCenter. It is not yet able to correctly assess
2795         MediaConstraints so it selects the first audio/video sources
2796         available through OpenWebRTC.
2797
2798         * PlatformEfl.cmake: Add new files to the build.
2799         * PlatformGTK.cmake: Ditto.
2800         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp: Removed.
2801         * platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp: Added.
2802         (WebCore::initializeOpenWebRTC): Simple function to initialize the
2803         framework, it is going to be used by the PeerConnection backend as well.
2804         * platform/mediastream/openwebrtc/OpenWebRTCUtilities.h: Added.
2805         * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: Added.
2806         (WebCore::mediaSourcesAvailableCallback): Function invoked once
2807         the media sources discovery succeeded within OpenWebRTC.
2808         (WebCore::RealtimeMediaSourceCenter::platformCenter): Instantiate
2809         the OpenWebRTC RealtimeMediaSourceCenter.
2810         (WebCore::RealtimeMediaSourceCenterOwr::RealtimeMediaSourceCenterOwr):
2811         (WebCore::RealtimeMediaSourceCenterOwr::~RealtimeMediaSourceCenterOwr):
2812         (WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
2813         Schedule a discovery process for the capture sources.
2814         (WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): Pick
2815         the first audio/video sources and create a MediaStream accordingly.
2816         (WebCore::RealtimeMediaSourceCenterOwr::getMediaStreamTrackSources):
2817         Not yet implemented.
2818         (WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
2819         Method invoked once the capture sources process succeeded. Parse
2820         them and create an internal cache of RealtimeMediaSources accordingly.
2821         (WebCore::RealtimeMediaSourceCenterOwr::firstSource): Utility
2822         function to fetch the first source of the given type from the
2823         RealtimeMediaSources cache.
2824         * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h.
2825         * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h: Added.
2826
2827 2015-03-24  Csaba Osztrogonác  <ossy@webkit.org>
2828
2829         [EFL] Add OpenWebRTC in jhbuild
2830         https://bugs.webkit.org/show_bug.cgi?id=142778
2831
2832         Reviewed by Gyuyoung Kim.
2833
2834         Original patch by Philippe Normand <pnormand@igalia.com>
2835
2836         * PlatformEfl.cmake: Add OpenWebRTC CFLAGS and LDFLAGS.
2837
2838 2015-03-23 Yoav Weiss  <yoav@yoav.ws>
2839
2840         Update empty image canvas tests and fix a related bug
2841         https://bugs.webkit.org/show_bug.cgi?id=142694
2842
2843         Reviewed by Chris Dumez.
2844
2845         During the work on https://bugs.webkit.org/show_bug.cgi?id=142677
2846         we encountered an issue with canvas tests related to empty image handling
2847         when drawn or used as a pattern. After updating these tests, an issue with
2848         pattern handling was encountered.
2849
2850         The spec, as well as Chrome's implementation, say that when an empty image
2851         is used as a pattern, createPattern should return null. See
2852         https://html.spec.whatwg.org/multipage/scripting.html#fill-and-stroke-styles:check-the-usability-of-the-image-argument
2853         Instead, createPattern returned an exception in this case.
2854         This patch fixes that and makes sure that it returns a null when image loading hasn't started.
2855
2856         Tests: canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html
2857                canvas/philip/tests/2d.drawImage.incomplete.nosrc.html
2858                canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html
2859                canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html
2860                canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html
2861
2862         * html/canvas/CanvasRenderingContext2D.cpp:
2863         (WebCore::CanvasRenderingContext2D::createPattern): Return "null" if image is not fully decodeable.
2864
2865 2015-03-23  Alex Christensen  <achristensen@webkit.org>
2866
2867         Fix api tests after r181876.
2868
2869         * contentextensions/ContentExtensionsBackend.cpp:
2870         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
2871         Always append a CSSDisplayNoneStyleSheet action if no ignore-previous-rules is seen.
2872         * loader/cache/CachedResourceLoader.cpp:
2873         (WebCore::CachedResourceLoader::requestResource):
2874         Changed an assertion to a null check.
2875
2876 2015-03-23  Dean Jackson  <dino@apple.com>
2877
2878         Timelines are sharing the same canvas background
2879         https://bugs.webkit.org/show_bug.cgi?id=142994
2880         <rdar://problem/20209466>
2881
2882         Reviewed by Brent Fulgham.
2883
2884         Since each MediaControl lives in an isolated world, we
2885         can't rely on a global variable to provide a unique
2886         identifier for a named canvas. The fix is to expose
2887         WebCore's UUID generator, and have each canvas use
2888         that for a name.
2889
2890         * Modules/mediacontrols/MediaControlsHost.cpp:
2891         (WebCore::MediaControlsHost::generateUUID): New method on the
2892         MediaControlsHost that generates a UUID.
2893         * Modules/mediacontrols/MediaControlsHost.h:
2894         * Modules/mediacontrols/MediaControlsHost.idl:
2895
2896         * Modules/mediacontrols/mediaControlsApple.js: Remove the global
2897         variable unique ID that wasn't working, and instead get
2898         an ID from the MediaControlsHost.
2899         (Controller.prototype.createControls):
2900         * Modules/mediacontrols/mediaControlsiOS.js:
2901         (ControllerIOS):
2902
2903 2015-03-23  Brent Fulgham  <bfulgham@apple.com>
2904
2905         Scroll latching logic can get stuck in 'scrollable="no"' iframes
2906         https://bugs.webkit.org/show_bug.cgi?id=142789
2907         <rdar://problem/20129494>
2908
2909         Reviewed by Dean Jackson.
2910
2911         Clean up the EventHandler and latching code as follows:
2912         (1) Do not handle iframe elements as part of the normal latching logic. Instead, iframes should
2913             be evaluated during the 'platformCompleteWheelEvent' phase of processing as top-level scrolling
2914             frames.
2915         (2) Get rid of the ill-conceived notation that we should process non-mainframe and main-frame frames
2916             different.
2917         (3) Modify code to reflect that the scroll latching code really deals with overflow scrolling. Consequently,
2918             the 'findEnclosingScrollableContainer' was renamed to 'findEnclosingOverflowScroll' and does not
2919             treat iframe as a suitable target.
2920         (4) Do not create a latching state object when the container being evaluated is already scrolled to the
2921             extreme position in the direction of the mouse gesture. In this case, we want the enclosing frame
2922             to be the latching target.
2923         (5) Do not treat the state where the mouse wheel gesture has ended manual scrolling, but has not ended
2924             momentum scrolling, as an appropriate time to select a latching target.
2925
2926         * page/EventHandler.cpp:
2927         (WebCore::EventHandler::platformCompleteWheelEvent): Modify signature to remove unneeded argument.
2928         (WebCore::EventHandler::handleWheelEvent): Modify call to 'platformCompleteWheelEvent' to remove unused argument.
2929         * page/EventHandler.h:
2930         * page/mac/EventHandlerMac.mm:
2931         (WebCore::findEnclosingOverflowScroll): Renamed from 'findEnclosingScrollableContainer' and revised per the
2932         notes above.
2933         (WebCore::EventHandler::platformPrepareForWheelEvents): Remove mainFrame vs. non-mainFrame code paths and
2934         consolidate logic.
2935         (WebCore::EventHandler::platformCompleteWheelEvent): Remove unused argument. The wheel event target is no
2936         longer needed here, now that iframes are not processed by this code.
2937         (WebCore::findEnclosingScrollableContainer): Deleted.
2938         * page/scrolling/ScrollLatchingState.cpp:
2939         (WebCore::ScrollLatchingState::setPreviousWheelScrolledElement:) Switch to move operator for passing
2940         a temporary RefPtr to the the function.
2941         * page/scrolling/ScrollLatchingState.h:
2942         * platform/PlatformWheelEvent.h:
2943         (WebCore::PlatformWheelEvent::useLatchedEventElement): Recognize 'phase=ended, momentum=none' as a state
2944         that should not cause latching state to be revised.
2945
2946 2015-03-23  Anders Carlsson  <andersca@apple.com>
2947
2948         Try to fix the iOS build.
2949
2950         * platform/network/mac/CookieJarMac.mm:
2951
2952 2015-03-23  Brady Eidson  <beidson@apple.com>
2953
2954         Content extensions should apply css selectors
2955         https://bugs.webkit.org/show_bug.cgi?id=142604
2956
2957         Reviewed by Alex Christensen.
2958
2959         Tests: http/tests/contentextensions/css-display-none.html
2960
2961         * WebCore.xcodeproj/project.pbxproj:
2962
2963         * contentextensions/ContentExtension.cpp:
2964         (WebCore::ContentExtensions::ContentExtension::create):
2965         (WebCore::ContentExtensions::ContentExtension::ContentExtension):
2966         (WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):
2967         * contentextensions/ContentExtension.h:
2968         (WebCore::ContentExtensions::ContentExtension::identifier):
2969         (WebCore::ContentExtensions::ContentExtension::compiledExtension):
2970
2971         * contentextensions/ContentExtensionsBackend.cpp:
2972         (WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
2973         (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
2974         (WebCore::ContentExtensions::ContentExtensionsBackend::globalDisplayNoneStyleSheet):
2975         * contentextensions/ContentExtensionsBackend.h:
2976
2977         * contentextensions/DFABytecodeInterpreter.cpp:
2978         (WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
2979
2980         * dom/DocumentStyleSheetCollection.cpp:
2981         (WebCore::DocumentStyleSheetCollection::maybeAddContentExtensionSheet):
2982         * dom/DocumentStyleSheetCollection.h:
2983
2984         * loader/DocumentLoader.cpp:
2985         (WebCore::DocumentLoader::commitData):
2986         (WebCore::DocumentLoader::startLoadingMainResource):
2987         (WebCore::DocumentLoader::addPendingContentExtensionSheet):
2988         * loader/DocumentLoader.h:
2989
2990         * loader/cache/CachedResourceLoader.cpp:
2991         (WebCore::CachedResourceLoader::requestResource):
2992
2993         * loader/cache/CachedResourceRequest.cpp:
2994         (WebCore::CachedResourceRequest::setInitiator):
2995         * loader/cache/CachedResourceRequest.h:
2996         (WebCore::CachedResourceRequest::initiatingDocumentLoader):
2997
2998         * page/UserContentController.cpp:
2999         (WebCore::UserContentController::globalDisplayNoneStyleSheet):
3000         (WebCore::UserContentController::displayNoneCSSRule):
3001         * page/UserContentController.h:
3002
3003 2015-03-23  Anders Carlsson  <andersca@apple.com>
3004
3005         -[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:] doesn't remove cookies
3006         https://bugs.webkit.org/show_bug.cgi?id=142990
3007         rdar://problem/20241645
3008
3009         Reviewed by Andreas Kling.
3010
3011         Use the Mac version of deleteAllCookiesModifiedSince on iOS as well.
3012
3013         * platform/network/cf/CookieJarCFNet.cpp:
3014         * platform/network/mac/CookieJarMac.mm:
3015
3016 2015-03-23  Conrad Shultz  <conrad_shultz@apple.com>
3017
3018         Replace uses of kCTFontSystemFontType
3019         https://bugs.webkit.org/show_bug.cgi?id=142984
3020
3021         Reviewed by Tim Horton.
3022
3023         * rendering/RenderThemeMac.mm:
3024         (WebCore::AttachmentLayout::layOutTitle):
3025         (WebCore::AttachmentLayout::layOutSubtitle):
3026
3027 2015-03-23  Dean Jackson  <dino@apple.com>
3028
3029         kCTFontSystemFontType is deprecated in CoreText
3030         https://bugs.webkit.org/show_bug.cgi?id=142981
3031         <rdar://problem/20261171>
3032
3033         Reviewed by Beth Dakin.
3034
3035         Update to the non-deprecated version.
3036
3037         * rendering/RenderThemeIOS.mm: kCTFontSystemFontType -> kCTFontUIFontSystem
3038         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
3039
3040 2015-03-23  Eric Carlson  <eric.carlson@apple.com>
3041
3042         [Mac] Enable fullscreen for MSE-based videos
3043         https://bugs.webkit.org/show_bug.cgi?id=142971
3044
3045         Reviewed by Jer Noble.
3046
3047         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
3048         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsFullscreen): Return true;
3049
3050 2015-03-23  Alex Christensen  <achristensen@webkit.org>
3051
3052         [MediaFoundation] Implement seek.
3053         https://bugs.webkit.org/show_bug.cgi?id=142594
3054
3055         Reviewed by Darin Adler.
3056
3057         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
3058         (WebCore::MediaPlayerPrivateMediaFoundation::seeking):
3059         (WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
3060         (WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
3061         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
3062
3063 2015-03-23  Dan Bernstein  <mitz@apple.com>
3064
3065         Fixed the build.
3066
3067         * platform/graphics/cocoa/FontCocoa.mm:
3068         (WebCore::Font::platformBoundsForGlyph): Switched to non-deprecated CTFontOrientation values.
3069         (WebCore::Font::platformWidthForGlyph): Ditto.
3070
3071 2015-03-23  Jer Noble  <jer.noble@apple.com>
3072
3073         [iOS] Accessibility crashing because MediaPlayer is laying out UI off the main thread
3074         https://bugs.webkit.org/show_bug.cgi?id=142970
3075
3076         Reviewed by Eric Carlson.
3077
3078         Return early after synchronously calling to the main thread to allocate the volume
3079         view, to avoid re-allocating the volume view again on the web thread.
3080
3081         * platform/audio/ios/MediaSessionManagerIOS.mm:
3082         (-[WebMediaSessionHelper allocateVolumeView]):
3083
3084 2015-03-23  Tim Horton  <timothy_horton@apple.com>
3085
3086         Add a share item to the link action menu
3087         https://bugs.webkit.org/show_bug.cgi?id=142961
3088         <rdar://problem/19198374>
3089
3090         Reviewed by Beth Dakin.
3091
3092         * English.lproj/Localizable.strings:
3093         Remove some now-unused strings.
3094
3095         * platform/spi/mac/NSMenuSPI.h:
3096         Add some SPI.
3097
3098 2015-03-23  David Kilzer  <ddkilzer@apple.com>
3099
3100         [iOS] Build fix: CoreText deprecated kCTFontSystemFontType
3101
3102         Fix tracked by:  <rdar://problem/20261171>
3103
3104         * rendering/RenderThemeIOS.mm:
3105         (WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
3106         Add clang pragmas.
3107
3108 2015-03-23  Brent Fulgham  <bfulgham@apple.com>
3109
3110         Unreviewed test fix.
3111
3112         * css/CSSParser.cpp:
3113         (WebCore::CSSParser::parseScrollSnapDestination): Remove new assertion.
3114
3115 2015-03-23  Brent Fulgham  <bfulgham@apple.com>
3116
3117         scroll-snap-destination and scroll-snap-coordinate do not seem to work together properly
3118         https://bugs.webkit.org/show_bug.cgi?id=142552
3119         <rdar://problem/20114743>
3120
3121         Reviewed by Dean Jackson.
3122
3123         Revise the snap point logic as follows:
3124         (1) Put the snap point destination handling in a helper function to make the rest of the code
3125             easier to read.
3126         (2) Make sure we always have a left-hand snap point (i.e., position 0), but don't add multiple
3127             left-hand snap points.
3128         (3) Create a helper function to determine if we should be working with the scroll snap 'elements'
3129             behavior. We want to use this for scroll-snap-destination/scroll-snap-coordinate markup.
3130         (4) Create per-element snap point offsets when using scroll-snap-destination/scroll-snap-coordinate.
3131
3132         * css/CSSParser.cpp:
3133         (WebCore::CSSParser::parseScrollSnapDestination): Add assertion to try to catch bad parser state.
3134         * page/scrolling/AxisScrollSnapOffsets.cpp:
3135         (WebCore::destinationOffsetForViewSize): Added helper function to consolidate logic for handling
3136         destination coordinates.
3137         (WebCore::updateFromStyle): Make sure a left-hand snap point is always provided.
3138         (WebCore::styleUsesElements): Added helper function.
3139         (WebCore::updateSnapOffsetsForScrollableArea): Revise logic to generate 'per-element' snap point
3140         offsets.
3141
3142 2015-03-23  Yoav Weiss  <yoav@yoav.ws>
3143
3144         Refactor ImageLoader's setting of CachedImage
3145         https://bugs.webkit.org/show_bug.cgi?id=142825
3146
3147         Reviewed by Chris Dumez.
3148
3149         No new tests, since there's no functional change.
3150
3151         setImage and setImageWithoutConsideringPendingLoadEvent were not called with new
3152         CachedImages and were not used as originally intended. That resulted in some dead code,
3153         and confusion when going over the code.
3154         This patch renames these methods into equivalent clearImage* methods, and deletes resulting dead code.
3155
3156         * html/HTMLObjectElement.cpp:
3157         (WebCore::HTMLObjectElement::renderFallbackContent): Changed setImage call to clearImage.
3158         * loader/ImageLoader.cpp:
3159         (WebCore::ImageLoader::clearImage):
3160         (WebCore::ImageLoader::clearImageWithoutConsideringPendingLoadEvent):
3161         (WebCore::ImageLoader::notifyFinished):
3162         (WebCore::ImageLoader::elementDidMoveToNewDocument):
3163         (WebCore::ImageLoader::setImage): Deleted.
3164         (WebCore::ImageLoader::setImageWithoutConsideringPendingLoadEvent): Deleted.
3165         * loader/ImageLoader.h:
3166
3167 2015-03-22  Benjamin Poulain  <benjamin@webkit.org>
3168
3169         CSS Selectors: fix attribute case-insensitive matching of Contain and List
3170         https://bugs.webkit.org/show_bug.cgi?id=142932
3171
3172         Reviewed by Darin Adler.
3173
3174         Fix the last two attribute selectors that were using full case-insensitive
3175         match:
3176             -Contain ([foo*=bar]).
3177             -List (foo~=bar]).
3178
3179         Tests: fast/selectors/attribute-contains-value-matching-is-ascii-case-insensitive.html
3180                fast/selectors/attribute-list-value-matching-is-ascii-case-insensitive.html
3181
3182         * css/SelectorChecker.cpp:
3183         (WebCore::attributeValueMatches):
3184         * cssjit/SelectorCompiler.cpp:
3185         (WebCore::SelectorCompiler::attributeValueContains):
3186         (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
3187
3188 2015-03-22  Benjamin Poulain  <bpoulain@apple.com>
3189
3190         Detect when url filter pattern with groups match the empty string
3191         https://bugs.webkit.org/show_bug.cgi?id=142930
3192
3193         Reviewed by Sam Weinig.
3194
3195         The previous test was only accounting for simple atoms. This patch extends
3196         it to groups.
3197
3198         * contentextensions/URLFilterParser.cpp:
3199         (WebCore::ContentExtensions::Term::quantify):
3200         (WebCore::ContentExtensions::Term::matchesAtLeastOneCharacter):
3201         (WebCore::ContentExtensions::GraphBuilder::finalize):
3202         (WebCore::ContentExtensions::Term::quantifier): Deleted.
3203
3204 2015-03-22  Eric Carlson  <eric.carlson@apple.com>
3205
3206         [Mac] Enable WIRELESS_PLAYBACK_TARGET for WK1
3207         https://bugs.webkit.org/show_bug.cgi?id=142940
3208
3209         Reviewed by Sam Weinig.
3210
3211         * dom/Document.cpp:
3212         (WebCore::Document::didChoosePlaybackTarget): const-ify the didChoosePlaybackTarget argument.
3213         * dom/Document.h:
3214
3215         * html/HTMLMediaSession.cpp:
3216         (WebCore::HTMLMediaSession::didChoosePlaybackTarget): Ditto.
3217         * html/HTMLMediaSession.h:
3218
3219         * page/Page.cpp:
3220         (WebCore::Page::didChoosePlaybackTarget):  Ditto.
3221         * page/Page.h:
3222
3223         * platform/audio/MediaSession.h:
3224         * platform/graphics/MediaPlaybackTargetPickerClient.h:
3225         * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: 
3226         (WebCore::MediaPlaybackTargetPickerMac::devicePicker):  Ditto.
3227
3228 2015-03-22  Anders Carlsson  <andersca@apple.com>
3229
3230         _WKWebsiteDataStore should clear WebSQL databases
3231         https://bugs.webkit.org/show_bug.cgi?id=142947
3232
3233         Reviewed by Sam Weinig.
3234
3235         * Modules/webdatabase/DatabaseTracker.cpp:
3236         (WebCore::DatabaseTracker::trackerWithDatabasePath):
3237         Add a hack so we can get at a tracker from the UI process.
3238
3239         (WebCore::DatabaseTracker::deleteDatabasesModifiedSince):
3240         New function that deletes all databases modified after a given time.
3241
3242         * Modules/webdatabase/DatabaseTracker.h:
3243         Add new members and export the ones we want to call from WebKit2.
3244
3245         * Modules/webdatabase/OriginLock.h:
3246         Export the destructor.
3247
3248 2015-03-21  Dean Jackson  <dino@apple.com>
3249
3250         Remove the prefix for CSS Transforms
3251         https://bugs.webkit.org/show_bug.cgi?id=142927
3252         <rdar://problem/11568151>
3253
3254         Reviewed by Simon Fraser.
3255
3256         Support the bare form of:
3257         - transform
3258         - transform-style
3259         - transform-origin
3260         - perspective
3261         - perspective-origin
3262
3263         For transform-style, we also still differentiate the prefixed property
3264         because we may want to use that as an indicator of legacy content.
3265
3266         This is mostly a find and replace, but with some related naming
3267         changes. The DOM interface for WebKitCSSTransformValue remains
3268         unchanged.
3269
3270         Tests: transforms/2d/transform-2d-prefixed.html
3271                transforms/3d/general/prefixed-3dtransform-values.html
3272
3273         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3274         (WebCore::propertyChangeMayRepaintNonDescendants):
3275         * css/CSSComputedStyleDeclaration.cpp:
3276         (WebCore::isLayoutDependent):
3277         (WebCore::ComputedStyleExtractor::propertyValue):
3278         * css/CSSParser.cpp:
3279         (WebCore::isValidKeywordPropertyAndValue):
3280         (WebCore::isKeywordPropertyID):
3281         (WebCore::parseTranslateTransformValue):
3282         (WebCore::CSSParser::parseValue):
3283         (WebCore::CSSParser::parseTransformOrigin):
3284         (WebCore::CSSParser::parsePerspectiveOrigin):
3285         * css/CSSPropertyNames.in:
3286         * css/StyleProperties.cpp:
3287         (WebCore::StyleProperties::getPropertyValue):
3288         (WebCore::StyleProperties::asText):
3289         * css/WebKitCSSMatrix.cpp:
3290         (WebCore::WebKitCSSMatrix::setMatrixValue):
3291         * html/track/VTTCue.cpp:
3292         (WebCore::VTTCueBox::applyCSSProperties):
3293         * page/animation/AnimationController.cpp:
3294         (WebCore::AnimationControllerPrivate::computeExtentOfAnimation):
3295         * page/animation/CSSPropertyAnimation.cpp:
3296         (WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
3297         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
3298         * page/animation/CompositeAnimation.cpp:
3299         (WebCore::CompositeAnimation::computeExtentOfTransformAnimation):
3300         * page/animation/ImplicitAnimation.cpp:
3301         (WebCore::ImplicitAnimation::computeExtentOfTransformAnimation):
3302         * page/animation/KeyframeAnimation.cpp:
3303         (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation):
3304         (WebCore::KeyframeAnimation::validateTransformFunctionList):
3305         * platform/graphics/GraphicsLayer.cpp:
3306         (WebCore::GraphicsLayer::validateTransformOperations):
3307         * platform/graphics/GraphicsLayerClient.h:
3308         * platform/graphics/ca/GraphicsLayerCA.cpp:
3309         (WebCore::propertyIdToString):
3310         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
3311         (WebCore::GraphicsLayerCA::addAnimation):
3312         (WebCore::GraphicsLayerCA::isRunningTransformAnimation):
3313         (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
3314         (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
3315         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3316         (WebCore::GraphicsLayerTextureMapper::addAnimation):
3317         * platform/graphics/texmap/TextureMapperAnimation.cpp:
3318         (WebCore::TextureMapperAnimation::applyInternal):
3319         * platform/graphics/texmap/TextureMapperLayer.cpp:
3320         (WebCore::TextureMapperLayer::syncAnimations):
3321         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
3322         (WebCore::CoordinatedGraphicsLayer::selfOrAncestorHasActiveTransformAnimation):
3323         (WebCore::CoordinatedGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):
3324         (WebCore::CoordinatedGraphicsLayer::addAnimation):
3325         * rendering/RenderLayerBacking.cpp:
3326         (WebCore::RenderLayerBacking::updateGeometry):
3327         (WebCore::RenderLayerBacking::startAnimation):
3328         (WebCore::RenderLayerBacking::startTransition):
3329         (WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
3330         (WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):
3331         * rendering/RenderLayerCompositor.cpp:
3332         (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
3333         (WebCore::RenderLayerCompositor::isRunningTransformAnimation):
3334         * svg/SVGElement.cpp:
3335         (WebCore::populateAttributeNameToCSSPropertyIDMap):
3336
3337 2015-03-21  Commit Queue  <commit-queue@webkit.org>
3338
3339         Unreviewed, rolling out r181824.
3340         https://bugs.webkit.org/show_bug.cgi?id=142935
3341
3342         Broke Windows build (Requested by ap on #webkit).
3343
3344         Reverted changeset:
3345
3346         "Remove the prefix for CSS Transforms"
3347         https://bugs.webkit.org/show_bug.cgi?id=142927
3348         http://trac.webkit.org/changeset/181824
3349
3350 2015-03-20  Dean Jackson  <dino@apple.com>
3351
3352         Remove the prefix for CSS Transforms
3353         https://bugs.webkit.org/show_bug.cgi?id=142927
3354         <rdar://problem/11568151>
3355
3356         Reviewed by Simon Fraser.
3357
3358         Support the bare form of:
3359         - transform
3360         - transform-style
3361         - transform-origin
3362         - perspective
3363         - perspective-origin
3364
3365         For transform-style, we also still differentiate the prefixed property
3366         because we may want to use that as an indicator of legacy content.
3367
3368         This is mostly a find and replace, but with some related naming
3369         changes. The DOM interface for WebKitCSSTransformValue remains
3370         unchanged.
3371
3372         Tests: transforms/2d/transform-2d-prefixed.html
3373                transforms/3d/general/prefixed-3dtransform-values.html
3374
3375         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3376         (WebCore::propertyChangeMayRepaintNonDescendants):
3377         * css/CSSComputedStyleDeclaration.cpp:
3378         (WebCore::isLayoutDependent):
3379         (WebCore::ComputedStyleExtractor::propertyValue):
3380         * css/CSSParser.cpp:
3381         (WebCore::isValidKeywordPropertyAndValue):
3382         (WebCore::isKeywordPropertyID):
3383         (WebCore::parseTranslateTransformValue):
3384         (WebCore::CSSParser::parseValue):
3385         (WebCore::CSSParser::parseTransformOrigin):
3386         (WebCore::CSSParser::parsePerspectiveOrigin):
3387         * css/CSSPropertyNames.in:
3388         * css/StyleProperties.cpp:
3389         (WebCore::StyleProperties::getPropertyValue):
3390         (WebCore::StyleProperties::asText):
3391         * css/WebKitCSSMatrix.cpp:
3392         (WebCore::WebKitCSSMatrix::setMatrixValue):
3393         * html/track/VTTCue.cpp:
3394         (WebCore::VTTCueBox::applyCSSProperties):
3395         * page/animation/AnimationController.cpp:
3396         (WebCore::AnimationControllerPrivate::computeExtentOfAnimation):
3397         * page/animation/CSSPropertyAnimation.cpp:
3398         (WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
3399         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
3400         * page/animation/CompositeAnimation.cpp:
3401         (WebCore::CompositeAnimation::computeExtentOfTransformAnimation):
3402         * page/animation/ImplicitAnimation.cpp:
3403         (WebCore::ImplicitAnimation::computeExtentOfTransformAnimation):
3404         * page/animation/KeyframeAnimation.cpp: