1 2013-12-01 Andreas Kling <akling@apple.com>
3 SVG: Intersection/enclosure checks should use RenderElement.
4 <https://webkit.org/b/125058>
6 Make RenderSVGModelObject's checkIntersection() and checkEnclosure()
7 take RenderElement* instead of RenderObject*. They are only ever
8 called with SVGElement's renderers.
10 Reviewed by Sam Weinig.
12 2013-12-01 Andreas Kling <akling@apple.com>
14 Remove unreachable labels for -webkit-margin-*-collapse properties.
15 <https://webkit.org/b/125057>
17 The following properties are implemented in DeprecatedStyleBuilder
18 and should not have case labels in the applyProperty() switch:
20 -webkit-margin-before-collapse
21 -webkit-margin-top-collapse
22 -webkit-margin-after-collapse
23 -webkit-margin-bottom-collapse
25 This seems counter-intuitive, but they are actually *not* like other
26 directional properties. In this case, before/after are only aliases
27 for top/bottom, and do not depend on writing-mode or text-direction.
28 See also r68561, where the aliases were originally added.
30 Reviewed by Anders Carlsson.
32 2013-12-01 Andreas Kling <akling@apple.com>
34 CSSFunctionValue constructors should return PassRef.
35 <https://webkit.org/b/125054>
37 Make CSSFunctionValue::create() helpers return PassRef instead of
38 PassRefPtr since they will never return null.
40 Reviewed by Anders Carlsson.
42 2013-12-01 Commit Queue <commit-queue@webkit.org>
44 Unreviewed, rolling out r159764.
45 http://trac.webkit.org/changeset/159764
46 https://bugs.webkit.org/show_bug.cgi?id=125055
48 appears to hurt html5-full-render times (Requested by kling on
51 * html/parser/HTMLConstructionSite.cpp:
52 (WebCore::HTMLConstructionSite::insertTextNode):
53 * html/parser/HTMLConstructionSite.h:
55 2013-12-01 Andreas Kling <akling@apple.com>
57 Make more computed style helpers return PassRef.
58 <https://webkit.org/b/125043>
60 Reduce branchiness in computed style code by making more of the
61 file-local helpers return PassRef instead of PassRefPtr.
63 Reviewed by Anders Carlsson.
65 2013-11-30 Ryuan Choi <ryuan.choi@samsung.com>
67 [EFL] Implement scrollbarThickness for opaque scrollbar
68 https://bugs.webkit.org/show_bug.cgi?id=125034
70 Reviewed by Gyuyoung Kim.
72 Implemented scrollbarThickness to support opaque scrollbar.
73 Now, edj can decide whether to support opaque scrollbar by adding scrollbar.thickness.
74 In addition, added OVERRIDE/FINAL keyword and removed unnecessary destructor
75 in ScrollbarThemeEfl.cpp.
77 No new tests, no behavior changes with default theme.
79 * platform/efl/RenderThemeEfl.cpp:
80 (WebCore::RenderThemeEfl::loadTheme):
81 Update thickness of scrollbar when theme was loaded.
82 * platform/efl/ScrollbarThemeEfl.cpp:
83 * platform/efl/ScrollbarThemeEfl.h:
84 (WebCore::ScrollbarThemeEfl::setScrollbarThickness):
85 (WebCore::ScrollbarThemeEfl::scrollbarThickness):
86 (WebCore::ScrollbarThemeEfl::registerScrollbar):
87 (WebCore::ScrollbarThemeEfl::unregisterScrollbar):
89 2013-11-29 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
91 Remove Symbian specific code.
92 https://bugs.webkit.org/show_bug.cgi?id=124939
94 Reviewed by Zoltan Herczeg.
96 Symbian is not supported, remove leftover code.
100 2013-11-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
102 Rename InlineIterator::m_obj and make it private
103 https://bugs.webkit.org/show_bug.cgi?id=124837
105 Reviewed by Antti Koivisto.
107 InlineIterator has been exported m_obj as public though there is a getter function.
108 Besides *object* name isn't ambigious. So, changed it with m_renderer and renderer().
109 Additionally, setRenderer() is added as well.
111 No new tests, no behavior changes.
113 * rendering/InlineIterator.h:
114 (WebCore::InlineIterator::setObject):
115 (WebCore::operator==):
116 (WebCore::operator!=):
117 (WebCore::InlineBidiResolver::appendRun):
118 * rendering/RenderBlockLineLayout.cpp:
119 (WebCore::RenderBlockFlow::appendRunsForObject):
120 (WebCore::constructBidiRunsForLine):
121 (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
122 (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
123 (WebCore::RenderBlockFlow::matchedEndLine):
124 * rendering/line/BreakingContextInlineHeaders.h:
125 (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
126 (WebCore::BreakingContext::BreakingContext):
127 (WebCore::BreakingContext::currentObject):
128 (WebCore::BreakingContext::initializeForCurrentObject):
129 (WebCore::BreakingContext::handleBR):
130 (WebCore::BreakingContext::handleOutOfFlowPositioned):
131 (WebCore::BreakingContext::handleFloat):
132 (WebCore::BreakingContext::handleEmptyInline):
133 (WebCore::BreakingContext::handleReplaced):
134 (WebCore::iteratorIsBeyondEndOfRenderCombineText):
135 (WebCore::ensureCharacterGetsLineBox):
136 (WebCore::BreakingContext::handleText):
137 (WebCore::BreakingContext::canBreakAtThisPosition):
138 (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
139 (WebCore::checkMidpoints):
140 (WebCore::BreakingContext::handleEndOfLine):
141 * rendering/line/LineBreaker.cpp:
142 (WebCore::LineBreaker::skipTrailingWhitespace):
143 (WebCore::LineBreaker::skipLeadingWhitespace):
144 * rendering/line/LineInlineHeaders.h:
145 (WebCore::skipNonBreakingSpace):
146 (WebCore::requiresLineBox):
148 2013-11-28 Antti Koivisto <antti@apple.com>
150 Rename StylePropertySet to StyleProperties
151 https://bugs.webkit.org/show_bug.cgi?id=124990
153 Reviewed by Andreas Kling.
155 "Set" does not add useful information here. Use less clunky plural name.
157 2013-11-28 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
159 Nix Upstream: Adding EditorNix to WebCore
160 https://bugs.webkit.org/show_bug.cgi?id=124984
162 Reviewed by Csaba Osztrogonác.
167 * editing/nix/EditorNix.cpp: Added.
169 2013-11-28 Zoltan Horvath <zoltan@webkit.org>
171 [Win] Update vcxproj.filters, since LineInfo.h and LineLayoutState.h have been moved to rendering/line
172 https://bugs.webkit.org/show_bug.cgi?id=124959
174 Reviewed by Brent Fulgham.
176 Update WebCore.vcxproj.filters, since LineInfo.h (r155628) and LineLayoutState.h (158121) have been moved to rendering/line.
178 No new tests, no behavior change.
180 * WebCore.vcxproj/WebCore.vcxproj.filters:
182 2013-11-28 Laszlo Vidacs <lac@inf.u-szeged.hu>
184 RenderTableSection Blink merge asserting
185 https://bugs.webkit.org/show_bug.cgi?id=124857
187 Reviewed by Csaba Osztrogonác.
189 Use border spacing at the end of all sections.
191 * rendering/RenderTableSection.cpp:
192 (WebCore::RenderTableSection::calcRowLogicalHeight):
194 2013-11-28 Antti Koivisto <antti@apple.com>
196 Remove feature: CSS variables
197 https://bugs.webkit.org/show_bug.cgi?id=114119
199 Reviewed by Andreas Kling.
201 The feature is unmaintained and it is getting in the way of refactoring. Code quality is not up to
202 WebKit standards either.
204 * Configurations/FeatureDefines.xcconfig:
205 * GNUmakefile.list.am:
206 * WebCore.xcodeproj/project.pbxproj:
207 * css/CSSBasicShapes.cpp:
208 * css/CSSBasicShapes.h:
209 * css/CSSCalculationValue.cpp:
210 (WebCore::unitCategory):
211 (WebCore::hasDoubleValue):
212 (WebCore::CSSCalcPrimitiveValue::toCalcValue):
213 (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
214 (WebCore::determineCategory):
215 (WebCore::CSSCalcBinaryOperation::primitiveType):
216 * css/CSSCalculationValue.h:
217 * css/CSSComputedStyleDeclaration.cpp:
218 (WebCore::ComputedStyleExtractor::propertyValue):
219 * css/CSSGrammar.y.in:
221 (WebCore::CSSParserContext::CSSParserContext):
222 (WebCore::operator==):
223 (WebCore::filterProperties):
224 (WebCore::CSSParser::createStylePropertySet):
225 (WebCore::CSSParser::addProperty):
226 (WebCore::CSSParser::validCalculationUnit):
227 (WebCore::CSSParser::validUnit):
228 (WebCore::CSSParser::createPrimitiveNumericValue):
229 (WebCore::CSSParser::parseValidPrimitive):
230 (WebCore::CSSParser::parseValue):
231 (WebCore::CSSParser::parseReflect):
232 (WebCore::CSSParser::detectDashToken):
233 (WebCore::CSSParser::realLex):
235 * css/CSSParserMode.h:
236 * css/CSSParserValues.cpp:
237 (WebCore::CSSParserValue::createCSSValue):
238 * css/CSSParserValues.h:
239 * css/CSSPrimitiveValue.cpp:
240 (WebCore::isValidCSSUnitTypeForDoubleConversion):
241 (WebCore::CSSPrimitiveValue::primitiveType):
242 (WebCore::CSSPrimitiveValue::cleanup):
243 (WebCore::CSSPrimitiveValue::getStringValue):
244 (WebCore::CSSPrimitiveValue::customCSSText):
245 (WebCore::CSSPrimitiveValue::equals):
246 * css/CSSPrimitiveValue.h:
247 * css/CSSPrimitiveValueMappings.h:
248 (WebCore::CSSPrimitiveValue::convertToLength):
249 * css/CSSProperty.cpp:
251 (WebCore::CSSProperty::CSSProperty):
252 * css/CSSReflectValue.cpp:
253 * css/CSSReflectValue.h:
255 (WebCore::CSSValue::equals):
256 (WebCore::CSSValue::cssText):
257 (WebCore::CSSValue::destroy):
259 (WebCore::CSSValue::setCssText):
260 * css/CSSValueList.cpp:
261 * css/CSSValueList.h:
262 * css/CSSVariableValue.h: Removed.
265 * css/StylePropertySet.cpp:
266 (WebCore::StylePropertySet::asText):
267 (WebCore::StylePropertySet::PropertyReference::cssName):
268 * css/StyleResolver.cpp:
269 (WebCore::StyleResolver::styleForPage):
270 (WebCore::StyleResolver::applyProperties):
271 (WebCore::StyleResolver::applyMatchedProperties):
272 (WebCore::StyleResolver::applyProperty):
273 * css/StyleResolver.h:
274 * css/WebKitCSSTransformValue.cpp:
275 * css/WebKitCSSTransformValue.h:
276 (WebCore::WebKitCSSTransformValue::equals):
279 (WebCore::Settings::Settings):
281 * rendering/style/RenderStyle.h:
282 * rendering/style/StyleRareInheritedData.cpp:
283 (WebCore::StyleRareInheritedData::StyleRareInheritedData):
284 (WebCore::StyleRareInheritedData::operator==):
285 * rendering/style/StyleRareInheritedData.h:
286 * rendering/style/StyleVariableData.h: Removed.
287 * testing/InternalSettings.cpp:
288 (WebCore::InternalSettings::Backup::Backup):
289 (WebCore::InternalSettings::Backup::restoreTo):
290 * testing/InternalSettings.h:
291 * testing/InternalSettings.idl:
293 2013-11-28 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
295 Updating RTCPeerConnectionHandlerMock after r159769
296 https://bugs.webkit.org/show_bug.cgi?id=124947
298 Reviewed by Philippe Normand.
300 Adding its create function back, in order to run RTCPeerConnection LayoutTests.
304 * platform/mock/RTCPeerConnectionHandlerMock.cpp:
305 (WebCore::RTCPeerConnectionHandlerMock::create):
306 * platform/mock/RTCPeerConnectionHandlerMock.h:
308 2013-11-27 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
310 [GTK] Support custom types for drag and drop data
311 https://bugs.webkit.org/show_bug.cgi?id=124659
313 Reviewed by Martin Robinson.
315 Covered by fast/events/drag-customData.html.
317 * platform/gtk/DataObjectGtk.cpp:
318 (WebCore::DataObjectGtk::unknownTypes): returns a hash map with all custom types set.
319 (WebCore::DataObjectGtk::clearAllExceptFilenames): clear custom types.
320 * platform/gtk/DataObjectGtk.h:
321 (WebCore::DataObjectGtk::hasUnknownTypeData): returns whether custom types are set.
322 (WebCore::DataObjectGtk::unknownTypeData): returns the data for a custom type.
323 (WebCore::DataObjectGtk::setUnknownTypeData): sets the data for a custom type.
324 * platform/gtk/PasteboardGtk.cpp:
325 (WebCore::Pasteboard::writeString): handle unknown types as custom.
326 (WebCore::Pasteboard::writePasteboard): ditto.
327 (WebCore::Pasteboard::hasData): also check for custom types.
328 (WebCore::Pasteboard::types): also obtain the list of custom types.
329 (WebCore::Pasteboard::readString): handle unknown types as custom.
330 * platform/gtk/PasteboardHelper.cpp:
331 (WebCore::initGdkAtoms): new unknown atom.
332 (WebCore::PasteboardHelper::PasteboardHelper): add custom type to the list of targets.
333 (WebCore::PasteboardHelper::fillSelectionData): turns any custom types' data into a GVariant, which
334 is in turn serialized to a single string for GtkSelectionData to hold.
335 (WebCore::PasteboardHelper::targetListForDataObject): add custom data to the target list if any is
337 (WebCore::PasteboardHelper::fillDataObjectFromDropData): retrieve the custom types and their data
338 from the serialized GVariant string held by GtkSelectionData.
339 (WebCore::PasteboardHelper::dropAtomsForContext): handle custom types.
341 2013-11-27 Eric Carlson <eric.carlson@apple.com>
343 Allow the QuickTime plug-in to be replaced by script in an isolated word
344 https://bugs.webkit.org/show_bug.cgi?id=124900
346 Reviewed by Dean Jackson.
348 Test: plugins/quicktime-plugin-replacement.html
350 * CMakeLists.txt: Add new Modules path.
351 * DerivedSources.make: Add new files.
352 * GNUmakefile.am: Add new Modules path.
353 * GNUmakefile.list.am: Add new header.
354 * WebCore.vcxproj/WebCore.vcxproj: Add new header.
355 * WebCore.vcxproj/WebCoreCommon.props: Add new Modules path.
356 * WebCore.xcodeproj/project.pbxproj: Add new files.
358 * Modules/plugins: Added.
359 * Modules/plugins/PluginReplacement.h: Added. Defines the interface for a plug-in replacement.
361 Create a replacement for the QuickTime plug-in.
362 * Modules/plugins/QuickTimePluginReplacement.cpp: Added.
363 * Modules/plugins/QuickTimePluginReplacement.css: Added.
364 * Modules/plugins/QuickTimePluginReplacement.h: Added.
365 * Modules/plugins/QuickTimePluginReplacement.idl: Added.
366 * Modules/plugins/QuickTimePluginReplacement.js: Added.
368 Allow plug-in replacement to be enabled at runtime.
369 * bindings/generic/RuntimeEnabledFeatures.h:
370 (WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled):
371 (WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled):
373 * bindings/js/JSDOMBinding.h:
374 (WebCore::toJS): Add toJS(... const String& ...).
376 * bindings/js/JSPluginElementFunctions.cpp:
377 (WebCore::pluginScriptObject): Give a plug-in replacement a first shot at defining the
380 * html/HTMLEmbedElement.cpp:
381 (WebCore::HTMLEmbedElement::updateWidget): Call base class requestObject.
383 * html/HTMLMediaElement.cpp:
384 (HTMLMediaElement::fileSize): New, passthrough to media engine.
385 * html/HTMLMediaElement.h:
387 * html/HTMLObjectElement.cpp:
388 (WebCore::HTMLObjectElement::updateWidget): Call base class requestObject.
390 Moved some logic that was previously used only for creating a plug-in snapshot to the base
391 class so it can be shared by a plug-in replacement.
392 * html/HTMLPlugInElement.cpp:
393 (WebCore::HTMLPlugInElement::HTMLPlugInElement): Initialize timer used to swap renderers.
394 (WebCore::HTMLPlugInElement::createRenderer): Allow plug-in replacement to create the renderer.
395 (WebCore::HTMLPlugInElement::swapRendererTimerFired): Create a shadow root.
396 (WebCore::HTMLPlugInElement::setDisplayState): Set the new state, prime the swap renderer
398 (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Tell the plug-in replacement to
399 install itself in the new shadow DOM.
400 (WebCore::registeredPluginReplacements): Return vector of all registered plug-in replacements.
401 (WebCore::registerPluginReplacement): Add a plug-in replacement.
402 (WebCore::pluginReplacementForType): Find a plug-in replacement for a MIME type.
403 (WebCore::HTMLPlugInElement::requestObject): If there is a plug-in replacement for the MIME type,
404 create it and set the display state.
405 (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Return the script object for
406 the current plug-in replacement, if any.
407 * html/HTMLPlugInElement.h:
409 Move some plug-in snapshot code into the base class.
410 * html/HTMLPlugInImageElement.cpp:
411 (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): No need to initialize timer.
412 (WebCore::HTMLPlugInImageElement::setDisplayState): Call base class.
413 (WebCore::HTMLPlugInImageElement::createRenderer): Ditto.
414 (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Ditto.
415 (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Remove unnecessary class name.
416 (WebCore::HTMLPlugInImageElement::requestObject): New.
417 * html/HTMLPlugInImageElement.h:
419 * html/HTMLVideoElement.h: Make createRenderer public so the QuickTime plug-in replacement can
422 * platform/graphics/MediaPlayer.cpp:
423 (WebCore::MediaPlayer::fileSize): New.
424 * platform/graphics/MediaPlayer.h:
425 * platform/graphics/MediaPlayerPrivate.h:
427 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
428 (WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): totalBytes returns an unsigned long long.
429 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
430 (WebCore::MediaPlayerPrivateAVFoundation::fileSize):
432 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
433 (WebCore::MediaPlayerPrivateAVFoundationCF::totalBytes): Return an unsigned long long.
434 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
436 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
437 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
438 (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Ditto.
440 * testing/InternalSettings.cpp:
441 (WebCore::InternalSettings::Backup::Backup): Backup the plug-in replacement runtime setting.
442 (WebCore::InternalSettings::Backup::restoreTo): Restore it.
443 (WebCore::InternalSettings::setPluginReplacementEnabled): Set it.
444 * testing/InternalSettings.h:
445 * testing/InternalSettings.idl:
447 2013-11-27 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
449 Adding MediaConstraintsMock class
450 https://bugs.webkit.org/show_bug.cgi?id=124902
452 Reviewed by Eric Carlson.
454 Validate constraints used in RTCPeerConnection LayoutTests
456 Existing test was updated.
459 * GNUmakefile.list.am:
460 * platform/mock/MediaConstraintsMock.cpp: Added.
461 * platform/mock/MediaConstraintsMock.h: Added.
462 * platform/mock/MockMediaStreamCenter.cpp:
463 (WebCore::MockMediaStreamCenter::validateRequestConstraints): Now using MediaConstraintsMock
464 (WebCore::MockMediaStreamCenter::createMediaStream): Ditto.
465 * platform/mock/RTCPeerConnectionHandlerMock.cpp:
466 (WebCore::RTCPeerConnectionHandlerMock::initialize): Ditto.
468 2013-11-27 Bear Travis <betravis@adobe.com>
470 [CSS Shapes] Shape-Inside Should Default to 'auto'
471 https://bugs.webkit.org/show_bug.cgi?id=124851
473 Reviewed by Alexandru Chiculita.
475 The current shape-inside specification has the property default to the 'auto'
476 value, not 'outside-shape'.
478 Updated tests are under fast/shapes.
480 * rendering/style/RenderStyle.cpp:
481 * rendering/style/RenderStyle.h:
483 2013-11-27 Hans Muller <hmuller@adobe.com>
485 [CSS Shapes] shape-inside rectangle layout can fail
486 https://bugs.webkit.org/show_bug.cgi?id=124784
488 Reviewed by Andreas Kling.
490 Apply LayoutUnit::fromFloatCeil() consistently in RectangleShape::firstIncludedIntervalLogicalTop().
492 Test: fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html
494 * rendering/shapes/RectangleShape.cpp:
495 (WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
497 2013-11-27 Nick Diego Yamane <nick.yamane@openbossa.org>
499 Remove Qt-specific .qrc files
500 https://bugs.webkit.org/show_bug.cgi?id=124944
502 Reviewed by Andreas Kling.
506 * WebCore.qrc: Removed.
508 2013-11-27 Xabier Rodriguez Calvar <calvaris@igalia.com>
510 [GStreamer] Invalid command line error when visiting www.chessbase.com
511 https://bugs.webkit.org/show_bug.cgi?id=124715
513 Reviewed by Philippe Normand.
515 We were not handling the HTTP errors in the WebKit GStreamer
516 source and therefore the 404 error page was being 'decoded'. As no
517 decoder could be found (for obvious reasons), playback failed, but
518 it should be failing for the source not being found instead of the
521 Test: http/tests/media/video-error-does-not-exist.html
523 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
524 (StreamingClient::handleResponseReceived): Handle HTTP errors in
525 the source and raise a GStreamer error to the pipeline.
527 2013-11-14 Sergio Villar Senin <svillar@igalia.com>
529 [CSS Grid Layout] Fix positioning of grid items with margins
530 https://bugs.webkit.org/show_bug.cgi?id=124345
532 Reviewed by David Hyatt.
534 From Blink r157925 and r158041 by <jchaffraix@chromium.org>
536 Test: fast/css-grid-layout/grid-item-margin-resolution.html
538 Adds margin start/before to the positions of grid items (removing
539 several FIXME's in the current code). This means calling
540 findChildLogicalPosition() after the layout in order to have the
541 right values for the margins.
543 In order to match flexbox and author's intents we're also
544 including the margins of grid items in the intrinsic size of the
545 grid. That's why flexbox's marginLogicalPositionForChild() is
546 moved up to RenderBlock in order to share it with RenderGrid.
548 * rendering/RenderBlock.cpp:
549 (WebCore::RenderBlock::marginIntrinsicLogicalWidthForChild): Moved
550 from RenderFlexibleBox::marginLogicalWidthForChild().
551 * rendering/RenderBlock.h:
552 * rendering/RenderFlexibleBox.cpp:
553 (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
554 * rendering/RenderGrid.cpp:
555 (WebCore::RenderGrid::computePreferredTrackWidth):
556 (WebCore::RenderGrid::layoutGridItems):
557 (WebCore::RenderGrid::findChildLogicalPosition):
559 2013-11-26 Sergio Villar Senin <svillar@igalia.com>
561 [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
562 https://bugs.webkit.org/show_bug.cgi?id=103312
564 Reviewed by Andreas Kling.
566 Added support for the repeat() syntax inside
567 grid-definition-{rows|columns} by just adding the repeated values
568 to our list of column|row definitions.
570 The parsing of <track-name> was refactored in a new function as
571 it's used now in three different places. The <track-size> parsing
572 was also refactored to share it with the repeat() parsing.
574 Test: fast/css-grid-layout/grid-element-repeat-get-set.html
577 (WebCore::CSSParser::parseValue):
578 (WebCore::CSSParser::parseGridTrackNames):
579 (WebCore::CSSParser::parseGridTrackList):
580 (WebCore::CSSParser::parseGridTrackRepeatFunction):
581 (WebCore::CSSParser::parseGridTrackSize):
584 2013-11-26 Marcelo Lira <marcelo.lira@openbossa.org>
586 Nix upstreaming - Adding build files and supporting scripts
587 https://bugs.webkit.org/show_bug.cgi?id=118367
589 Reviewed by Ryosuke Niwa.
594 * PlatformNix.cmake: Added.
596 2013-11-26 Tim Horton <timothy_horton@apple.com>
598 Don't parent the TileController root layer in two places
599 https://bugs.webkit.org/show_bug.cgi?id=124873
601 Reviewed by Brent Fulgham.
603 * platform/graphics/ca/mac/TileController.mm:
604 (WebCore::TileController::TileController):
605 The TileController's layer is already parented by callers of
606 TileController::create, and in a special way. TileController
607 shouldn't parent itself, anyway...
609 2013-11-26 Nick Diego Yamane <nick.yamane@openbossa.org>
611 [MediaStream API] HTMLMediaElement should be able to use MediaStream as source
612 https://bugs.webkit.org/show_bug.cgi?id=121943
614 Reviewed by Eric Carlson.
616 Implement MediaStream direct assignment to Media Elements using the new 'srcObject'
617 attribute: http://www.w3.org/TR/mediacapture-streams/#direct-assignment-to-media-elements
619 Test: fast/mediastream/MediaStream-MediaElement-srcObject.html
621 * CMakeLists.txt: Added new HTMLMediaElementMediaStream.h and .cpp to cmake build.
622 * DerivedSources.make: Added HTMLMediaElementMediaStream.idl.
623 * GNUmakefile.list.am: Added new HTMLMediaElementMediaStream* to autotools build.
624 * WebCore.xcodeproj/project.pbxproj: Added new files.
625 * Modules/mediastream/HTMLMediaElementMediaStream.cpp: Added.
626 (WebCore::HTMLMediaElementMediaStream::srcObject): implements srcObject getter.
627 (WebCore::HTMLMediaElementMediaStream::setSrcObject): implements srcObject setter.
628 * Modules/mediastream/HTMLMediaElementMediaStream.h: Added.
629 * Modules/mediastream/HTMLMediaElementMediaStream.idl: Added.
630 * html/HTMLMediaElement.cpp:
631 (WebCore::HTMLMediaElement::setSrcObject): This is an initial implementation, and
632 is still incomplete, that will be addressed in a separate bug: https://webkit.org/b/124896
633 * html/HTMLMediaElement.h: Added m_mediaStreamSrcObject class variable
634 and its corresponding getter.
636 2013-11-26 Andreas Kling <akling@apple.com>
638 Use child iterator to find operators in RenderMathMLRow::layout().
639 <https://webkit.org/b/124108>
641 Replace manual children walk with childrenOfType<RenderMathMLBlock>.
642 Minor update to fix build.
644 Reviewed by Martin Robinson.
646 2013-11-26 Andreas Kling <akling@apple.com>
648 RenderObject: Inline isBody() and isHR().
649 <https://webkit.org/b/124901>
651 Together these account for ~0.3% of samples on HTML5-8266.
652 Almost all of it is call overhead.
654 Reviewed by Anders Carlsson.
656 2013-11-26 Bear Travis <betravis@adobe.com>
658 [CSS Shapes] Layout using [<box> || <shape>] value
659 https://bugs.webkit.org/show_bug.cgi?id=124428
661 Reviewed by David Hyatt.
663 When a box value is supplied, use it to size and position the shape. Otherwise,
664 use a default value (content-box for shape-inside, margin-box for shape-outside).
665 This patch extends the sizing and positioning code used for the box patch (Bug 124227)
666 to also apply to shapes. With this patch, we also no longer use the box-sizing
667 property to size and position shapes.
669 Tests: fast/shapes/shape-outside-floats/shape-outside-shape-boxes-001.html
670 fast/shapes/shape-outside-floats/shape-outside-shape-boxes-002.html
671 fast/shapes/shape-outside-floats/shape-outside-shape-boxes-003.html
673 * css/CSSComputedStyleDeclaration.cpp:
674 (WebCore::ComputedStyleExtractor::propertyValue): Adjust for ShapeValues storing
675 BasicShape::ReferenceBox as their box value, rather than a CSSValueID.
676 * css/DeprecatedStyleBuilder.cpp:
677 (WebCore::ApplyPropertyShape::applyValue): Ditto.
678 * rendering/shapes/ShapeInfo.h:
679 (WebCore::ShapeInfo::setShapeSize): Adjust for BasicShapes with reference boxes
680 as well as plain box values. Also, remove old box-sizing code.
681 (WebCore::ShapeInfo::logicalTopOffset): Ditto.
682 (WebCore::ShapeInfo::logicalLeftOffset): Ditto.
683 * rendering/shapes/ShapeInsideInfo.h:
684 * rendering/shapes/ShapeOutsideInfo.h:
685 * rendering/style/ShapeValue.h:
686 (WebCore::ShapeValue::createBoxValue): Adjust for boxes being stored as
687 BasicShape::ReferenceBoxes.
688 (WebCore::ShapeValue::box): Ditto.
689 (WebCore::ShapeValue::ShapeValue): Ditto.
691 2013-11-26 Brian J. Burg <burg@cs.washington.edu>
693 ImageBuffer::create should return a std::unique_ptr instead of OwnPtr.
694 https://bugs.webkit.org/show_bug.cgi?id=124822
696 Reviewed by Andreas Kling.
698 Replace all uses of OwnPtr<ImageBuffer> and PassOwnPtr<ImageBuffer> with
699 std::unique_ptr<ImageBuffer>. Replace calls to OwnPtr::clear() and
700 OwnPtr::release() with reset() and std::move(). Remove unnecessary includes.
702 No new tests. This is a mechanical refactoring.
704 * css/CSSFilterImageValue.cpp:
705 (WebCore::CSSFilterImageValue::image):
706 * html/HTMLCanvasElement.cpp:
707 (WebCore::HTMLCanvasElement::setSurfaceSize):
708 * html/HTMLCanvasElement.h:
709 * html/canvas/CanvasRenderingContext2D.cpp:
710 (WebCore::CanvasRenderingContext2D::createCompositingBuffer):
711 (WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
712 (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):
713 (WebCore::CanvasRenderingContext2D::drawTextInternal):
714 * html/canvas/CanvasRenderingContext2D.h:
715 * html/canvas/WebGLRenderingContext.cpp:
716 (WebCore::WebGLRenderingContext::LRUImageBufferCache::LRUImageBufferCache):
717 (WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):
718 * html/canvas/WebGLRenderingContext.h:
719 * html/shadow/MediaControlElements.cpp:
720 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
722 (WebCore::Frame::nodeImage):
723 (WebCore::Frame::dragImageForSelection):
724 * platform/graphics/BitmapImage.cpp:
725 (WebCore::BitmapImage::drawPattern):
726 * platform/graphics/CrossfadeGeneratedImage.cpp:
727 (WebCore::CrossfadeGeneratedImage::drawPattern):
728 * platform/graphics/GradientImage.h:
729 * platform/graphics/GraphicsContext.cpp:
730 (WebCore::GraphicsContext::createCompatibleBuffer):
731 * platform/graphics/GraphicsContext.h:
732 * platform/graphics/ImageBuffer.cpp:
733 (WebCore::ImageBuffer::createCompatibleBuffer):
734 * platform/graphics/ImageBuffer.h:
735 (WebCore::ImageBuffer::create):
736 * platform/graphics/ShadowBlur.cpp:
737 * platform/graphics/cg/ImageBufferCG.cpp:
738 (WebCore::ImageBuffer::putByteArray):
739 * platform/graphics/cg/PDFDocumentImage.h:
740 * platform/graphics/filters/FETile.cpp:
741 (WebCore::FETile::platformApplySoftware):
742 * platform/graphics/filters/Filter.h:
743 (WebCore::Filter::setSourceImage):
744 * platform/graphics/filters/FilterEffect.cpp:
745 (WebCore::FilterEffect::clearResult):
746 * platform/graphics/filters/FilterEffect.h:
747 * platform/graphics/texmap/TextureMapper.cpp:
748 (WebCore::BitmapTexture::updateContents):
749 * platform/graphics/texmap/TextureMapperImageBuffer.h:
750 * rendering/InlineTextBox.cpp:
751 (WebCore::InlineTextBox::paintDecoration):
752 * rendering/RenderBoxModelObject.cpp:
753 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
754 * rendering/RenderThemeMac.mm:
755 (WebCore::RenderThemeMac::paintProgressBar):
756 * rendering/shapes/Shape.cpp:
757 (WebCore::Shape::createShape):
758 * rendering/svg/RenderSVGImage.cpp:
759 (WebCore::RenderSVGImage::invalidateBufferedForeground):
760 * rendering/svg/RenderSVGImage.h:
761 * rendering/svg/RenderSVGResourceClipper.cpp:
762 (WebCore::RenderSVGResourceClipper::applyClippingToContext):
763 * rendering/svg/RenderSVGResourceClipper.h:
764 * rendering/svg/RenderSVGResourceFilter.cpp:
765 (WebCore::RenderSVGResourceFilter::applyResource):
766 (WebCore::RenderSVGResourceFilter::postApplyResource):
767 * rendering/svg/RenderSVGResourceFilter.h:
768 * rendering/svg/RenderSVGResourceGradient.cpp: Remove method parameter wrapping/indentation.
769 (WebCore::createMaskAndSwapContextForTextGradient):
770 (WebCore::clipToTextMask):
771 (WebCore::RenderSVGResourceGradient::applyResource):
772 * rendering/svg/RenderSVGResourceGradient.h:
773 * rendering/svg/RenderSVGResourceMasker.cpp:
774 (WebCore::RenderSVGResourceMasker::applyResource):
775 * rendering/svg/RenderSVGResourceMasker.h:
776 * rendering/svg/RenderSVGResourcePattern.cpp: Remove method parameter wrapping/indentation.
777 (WebCore::RenderSVGResourcePattern::buildPattern):
778 (WebCore::RenderSVGResourcePattern::createTileImage):
779 * rendering/svg/RenderSVGResourcePattern.h: Remove method parameter wrapping/indentation.
780 * rendering/svg/SVGRenderingContext.cpp:
781 (WebCore::SVGRenderingContext::createImageBuffer):
782 (WebCore::SVGRenderingContext::createImageBufferForPattern):
783 (WebCore::SVGRenderingContext::clipToImageBuffer):
784 (WebCore::SVGRenderingContext::bufferForeground):
785 * rendering/svg/SVGRenderingContext.h:
786 * svg/graphics/SVGImage.cpp:
787 (WebCore::SVGImage::nativeImageForCurrentFrame):
788 (WebCore::SVGImage::drawPatternForContainer):
790 2013-11-26 Eric Carlson <eric.carlson@apple.com>
792 video.currentSrc should return empty when no resource is loaded
793 https://bugs.webkit.org/show_bug.cgi?id=124898
795 Reviewed by Dan Bernstein.
797 Test: media/video-currentsrc-cleared.html
799 * html/HTMLMediaElement.cpp:
800 (WebCore::HTMLMediaElement::prepareForLoad): Set m_currentSrc to empty in
801 preparation for attempting to load a new url.
803 2013-11-26 Hans Muller <hmuller@adobe.com>
805 [CSS Shapes] Support for shape-margin in BoxShape
806 https://bugs.webkit.org/show_bug.cgi?id=124788
808 Reviewed by Andreas Kling.
810 Corrected BoxShape's internal shape-margin/padding bounds FloatRoundedRect
811 initialization. Tests for the padding bounds will be added when the rest of
812 shape-padding for box shapes implementation is ready.
814 Tests: fast/shapes/shape-outside-floats/shape-outside-margin-boxes-001.html
815 fast/shapes/shape-outside-floats/shape-outside-margin-boxes-002.html
817 * rendering/shapes/BoxShape.cpp: Use constructor shape-margin,shape-padding parameters.
818 (WebCore::BoxShape::BoxShape):
819 * rendering/shapes/BoxShape.h:
820 * rendering/shapes/Shape.cpp:
821 (WebCore::createBoxShape): Pass the shape-margin and shape-padding values along to the BoxShape constructor.
822 (WebCore::Shape::createShape): Ditto.
824 2013-11-26 Nick Diego Yamane <nick.yamane@openbossa.org>
826 Remove unnecessary webaudio include from MediaStreamSource header
827 https://bugs.webkit.org/show_bug.cgi?id=124897
829 Reviewed by Eric Carlson.
831 AudioDestinationConsumer.h is included but not used anywhere in
832 MediaStreamSource implementation.
834 * platform/mediastream/MediaStreamSource.h:
836 2013-11-26 Andreas Kling <akling@apple.com>
838 Avoid unnecessary copy-on-write in FillLayer style application.
839 <https://webkit.org/b/124878>
841 We ended up with a lot of cloned StyleBackgroundData objects on
842 HTML5-8266. This happened because we always forced a copy-on-write
843 when applying background-image:inherit / background-image:initial.
845 This patch adds early returns to both functions. In the "inherit"
846 case, we bail early if the target style already has the same fill
847 layer data as its parent style.
849 In the "initial" case, we optimize for the single-FillLayer case
850 and add an early return if the relevant value is either unset or
851 equal to the templatized initial value.
853 2.46 MB progression on HTML5-8266 locally.
855 Reviewed by Antti Koivisto.
857 2013-11-26 Antoine Quint <graouts@apple.com>
859 Web Inspector: Allow showing a context menu on all mouse events.
860 https://bugs.webkit.org/show_bug.cgi?id=124747
862 Reviewed by Joseph Pecoraro.
864 Add a new InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event*) method
865 to let the inspector front-end dispatch a native contextmenu event that will allow
866 for a context menu to be shown from within a non-contextmenu event handler.
868 * inspector/InspectorFrontendHost.cpp:
869 (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
870 Check that we're dealing with a mouse event, get the frame for the event target
871 and the event's location to call ContextMenuController::showContextMenuAt()
872 which will handle the new contextmenu event dispatch to the original event target.
874 * inspector/InspectorFrontendHost.h:
875 * inspector/InspectorFrontendHost.idl:
877 2013-11-25 Sam Weinig <sam@webkit.org>
879 Convert some Shape code to use references
880 https://bugs.webkit.org/show_bug.cgi?id=124876
882 Reviewed by Andreas Kling.
884 * inspector/InspectorOverlay.cpp:
885 * rendering/FloatingObjects.cpp:
886 * rendering/LayoutState.cpp:
887 * rendering/RenderBlock.cpp:
888 * rendering/RenderBlock.h:
889 * rendering/RenderBlockLineLayout.cpp:
890 * rendering/RenderBox.cpp:
891 * rendering/RenderBox.h:
892 * rendering/line/BreakingContextInlineHeaders.h:
893 * rendering/line/LineWidth.cpp:
894 * rendering/shapes/ShapeInfo.cpp:
895 * rendering/shapes/ShapeInfo.h:
896 * rendering/shapes/ShapeInsideInfo.cpp:
897 * rendering/shapes/ShapeInsideInfo.h:
898 * rendering/shapes/ShapeOutsideInfo.cpp:
899 * rendering/shapes/ShapeOutsideInfo.h:
900 Replace yet more pointers with references.
902 2013-11-25 Simon Pena <simon.pena@samsung.com>
904 [EFL] X11Helper::createPixmap doesn't initialise out value handleId
905 https://bugs.webkit.org/show_bug.cgi?id=124722
907 Reviewed by Gyuyoung Kim.
909 The overloaded functions X11Helper::createPixmap don't initialise out
910 value handleId, and they do early returns on error situations. Since
911 the functions are void and they don't communicate their failure in any
912 way, returning an out value without initialising it could make the
913 error go farther unnoticed. With the variable being initialised, it can
914 be reliably checked for errors when the function returns.
916 * platform/graphics/surfaces/glx/X11Helper.cpp:
917 (WebCore::X11Helper::createPixmap): Initialise handleId to 0.
919 2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
921 Mark URLRegistry's lookup() as const and its child classes as final
922 https://bugs.webkit.org/show_bug.cgi?id=124865
924 Reviewed by Eric Carlson.
926 No new tests needed. No behavior changes.
928 * Modules/mediasource/MediaSourceRegistry.cpp:
929 (WebCore::MediaSourceRegistry::lookup): marked as const.
930 * Modules/mediasource/MediaSourceRegistry.h: MediaSourceRegistry
932 * Modules/mediastream/MediaStreamRegistry.cpp:
933 (WebCore::MediaStreamRegistry::lookup): marked as const.
934 * Modules/mediastream/MediaStreamRegistry.h: MediaStreamRegistry
937 * html/URLRegistry.h: lookup() marked as const.
938 (WebCore::URLRegistry::lookup): marked as const.
940 2013-11-25 Sergio Correia <sergio.correia@openbossa.org>
942 [MediaStream] Use std::unique_ptr instead of OwnPtr/PassOwnPtr
943 https://bugs.webkit.org/show_bug.cgi?id=124858
945 Reviewed by Eric Carlson.
947 Another step of the OwnPtr/PassOwnPtr => std::unique_ptr conversion,
948 now targeting mediastream-related code.
950 No new tests, covered by existing ones.
952 * Modules/mediastream/RTCDTMFSender.cpp:
953 * Modules/mediastream/RTCDTMFSender.h:
954 * Modules/mediastream/RTCDataChannel.cpp:
955 * Modules/mediastream/RTCDataChannel.h:
956 * Modules/mediastream/RTCPeerConnection.cpp:
957 * Modules/mediastream/RTCPeerConnection.h:
958 * platform/mediastream/MediaStreamSource.cpp:
959 * platform/mediastream/RTCPeerConnectionHandler.cpp:
960 * platform/mediastream/RTCPeerConnectionHandler.h:
961 * platform/mediastream/RTCPeerConnectionHandlerClient.h:
962 * platform/mock/RTCNotifiersMock.cpp:
963 * platform/mock/RTCPeerConnectionHandlerMock.cpp:
964 * platform/mock/RTCPeerConnectionHandlerMock.h:
966 2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
968 MediaStreamRegistry should store MediaStreams instead of MediaStreamPrivates
969 https://bugs.webkit.org/show_bug.cgi?id=124860
971 Reviewed by Eric Carlson.
973 MediaStreamRegistry::lookup() should return a MediaStream instead of MediaStreamPrivate.
975 No new tests needed. No behavior changes.
977 * Modules/mediastream/MediaStreamRegistry.cpp:
978 (WebCore::MediaStreamRegistry::registerURL): m_privateStreams -> m_mediaStreams
979 (WebCore::MediaStreamRegistry::unregisterURL): Ditto.
980 (WebCore::MediaStreamRegistry::lookup): Override URLRegistry::lookup() instead of add a
981 new method MediaStream::lookupMediaStreamPrivate().
982 * Modules/mediastream/MediaStreamRegistry.h:
983 * html/HTMLMediaElement.cpp:
984 (HTMLMediaElement::loadResource): call lookup() instead of lookupMediaStreamPrivate()
986 2013-11-25 peavo@outlook.com <peavo@outlook.com>
988 [WinCairo] Compile fails when GSTREAMER is not used.
989 https://bugs.webkit.org/show_bug.cgi?id=124853
991 Reviewed by Philippe Normand.
993 * platform/graphics/gstreamer/GStreamerUtilities.cpp: Don't include GStreamerUtilities.h when GSTREAMER is not used.
995 2013-11-25 Andreas Kling <akling@apple.com>
997 Deduplicate shortish Text node strings during tree construction.
998 <https://webkit.org/b/124855>
1000 Let HTMLConstructionSite keep a hash set of already seen strings over
1001 its lifetime. Use this to deduplicate the strings inside Text nodes
1002 for any string up to 64 characters of length.
1004 This optimization already sort-of existed for whitespace-only Texts,
1005 but those are laundered in the AtomicString table which we definitely
1006 don't want to pollute with every single Text. It might be a good idea
1007 to stop using the AtomicString table for all-whitespace Text too.
1009 3.82 MB progression on HTML5-8266 locally.
1011 Reviewed by Anders Carlsson.
1013 2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
1015 Remove unnecessary MediaStreamTrackDescriptor forward declaration
1016 https://bugs.webkit.org/show_bug.cgi?id=124854
1018 Reviewed by Eric Carlson.
1020 No new tests needed. No behavior changed.
1022 * Modules/mediastream/VideoStreamTrack.h:
1024 2013-11-25 Robert Hogan <robert@webkit.org>
1026 Remove code now unnecessary after r159575
1027 https://bugs.webkit.org/show_bug.cgi?id=124809
1029 Reviewed by Antti Koivisto.
1031 Covered by existing tests fast/block/margin-collapse/self-collapsing-block-with-float*
1033 * rendering/line/LineBreaker.cpp:
1034 (WebCore::LineBreaker::skipLeadingWhitespace):
1036 2013-11-25 Laszlo Vidacs <lac@inf.u-szeged.hu>
1038 Vertical border spacing is doubled between table row groups
1039 https://bugs.webkit.org/show_bug.cgi?id=20040
1041 Reviewed by Csaba Osztrogonác.
1043 Based on Chromium fix https://chromium.googlesource.com/chromium/blink/+/eb615069267f895c59bc576f9d65b3fa5add41e9
1045 Rebaseline needed for table related tests (100+).
1047 * rendering/RenderTableSection.cpp:
1048 (WebCore::RenderTableSection::calcRowLogicalHeight):
1050 2013-11-25 Andres Gomez <agomez@igalia.com>
1052 [GStreamer] Seeking fails on media content provided by servers not supporting Range requests
1053 https://bugs.webkit.org/show_bug.cgi?id=85994
1055 Reviewed by Philippe Normand.
1057 Based on the patch written by Andre Moreira Magalhaes.
1059 When the GStreamer web source was doing a "Range" request we were
1060 expecting to receive a 206 status reply with the "Content-Range"
1061 header and just the requested data. Supporting "Range" requests is
1062 not mandatory so, for the servers not supporting it they will be
1063 replying with a 200 status and the whole content of the media
1064 element. Now, we are properly handling these replies too.
1066 Test: http/tests/media/media-seeking-no-ranges-server.html
1068 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1069 (StreamingClient::handleResponseReceived): Do not fail when
1070 receiving 200 as response for HTTP range requests.
1071 (StreamingClient::handleDataReceived): Manually seek on stream
1072 when receiving the full data after a seek.
1074 2013-11-25 Radu Stavila <stavila@adobe.com>
1076 Removed obsolete FIXME after the landing of visual overflow patch (https://bugs.webkit.org/show_bug.cgi?id=118665).
1077 https://bugs.webkit.org/show_bug.cgi?id=124833
1079 Reviewed by Mihnea Ovidenie.
1081 * rendering/RenderRegion.cpp:
1082 (WebCore::RenderRegion::layoutBlock):
1084 2013-11-18 Sergio Villar Senin <svillar@igalia.com>
1086 [CSS Grid Layout] Cache several vectors to avoid malloc/free churn
1087 https://bugs.webkit.org/show_bug.cgi?id=123995
1089 Reviewed by Dean Jackson.
1091 From Blink r158228 by <jchaffraix@chromium.org>
1093 Laying-out the grid items means a lot of calls to
1094 distributeSpaceToTracks() and
1095 resolveContentBasedTrackSizingFunctionsForItems() as they're
1096 called in a loop. This means that there is a lot of malloc/free
1097 going on there. By moving the vectors used by these methods to a
1098 new class which is kept during the whole layout process we save a
1101 This obviously mean that the price we pay for a significant
1102 perfomance improvement is that we keep the maximum allocation till
1103 the end of each layout, but it's an amount of memory that we have
1104 to allocate anyway. The improvement in the
1105 auto-grid-lots-of-data.html perf test is ~24% (165 runs/s vs 207
1108 No new tests required as we're just refactoring code to a new
1109 helper class. Nevertheless the performance improvement is backed
1110 by the perf test mentioned above.
1112 * rendering/RenderGrid.cpp:
1113 (WebCore::RenderGrid::GridSizingData::GridSizingData):
1114 (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
1115 (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
1116 (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
1117 (WebCore::RenderGrid::distributeSpaceToTracks):
1118 (WebCore::RenderGrid::layoutGridItems):
1119 (WebCore::RenderGrid::findChildLogicalPosition):
1120 * rendering/RenderGrid.h:
1122 2013-11-24 Brady Eidson <beidson@apple.com>
1124 DatabaseProcess: Add "UniqueIDBDatabase" that multiple WebProcesses can connect to
1125 https://bugs.webkit.org/show_bug.cgi?id=124819
1127 Reviewed by Dan Bernstein.
1129 * Modules/indexeddb/IDBDatabaseBackend.cpp:
1130 (WebCore::IDBDatabaseBackend::~IDBDatabaseBackend): Unregister from the IDBFactory.
1132 2013-11-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1134 Generate toHTMLMarquee|OListElement() to cleanup static_cast<>
1135 https://bugs.webkit.org/show_bug.cgi?id=124707
1137 Reviewed by Darin Adler.
1139 As a step to use toFoo(), we need to generate toHTMLMarquee|OListElement().
1140 Besides this patch cleans up remaining static_cast<> usage.
1142 No new tests, no behavior changes.
1144 * css/StyleResolver.cpp:
1145 (WebCore::StyleResolver::State::initElement):
1146 (WebCore::StyleResolver::locateCousinList):
1147 (WebCore::StyleResolver::findSiblingForStyleSharing):
1149 (WebCore::Attr::style):
1151 (WebCore::Element::removeAttribute):
1152 * editing/ApplyStyleCommand.cpp:
1153 (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
1154 (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
1155 * editing/EditingStyle.cpp:
1156 (WebCore::EditingStyle::wrappingStyleForSerialization):
1157 * editing/Editor.cpp:
1158 (WebCore::Editor::applyEditingStyleToElement):
1159 * editing/ReplaceSelectionCommand.cpp:
1160 (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1161 * html/HTMLMarqueeElement.h:
1162 * html/HTMLOListElement.h:
1163 * html/HTMLTagNames.in:
1164 * inspector/InspectorCSSAgent.cpp:
1165 (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
1166 * inspector/InspectorOverlay.cpp:
1167 (WebCore::buildObjectForElementInfo):
1168 * page/PageSerializer.cpp:
1169 (WebCore::PageSerializer::serializeFrame):
1170 * rendering/RenderCounter.cpp:
1171 (WebCore::planCounter):
1172 * rendering/RenderLayer.cpp:
1173 (WebCore::RenderLayer::resize):
1174 * rendering/RenderListItem.cpp:
1175 (WebCore::RenderListItem::calcValue):
1176 (WebCore::RenderListItem::updateListMarkerNumbers):
1177 * rendering/RenderMarquee.cpp:
1178 (WebCore::RenderMarquee::marqueeSpeed):
1180 2013-11-24 Tim Horton <timothy_horton@apple.com>
1182 REGRESSION (r156291): TileController tiles don't always repaint when they resize
1183 https://bugs.webkit.org/show_bug.cgi?id=124796
1185 Reviewed by Simon Fraser.
1187 In removing platformCALayerDidCreateTiles, r156291 also removed
1188 the call to setNeedsDisplay when tiles are resized, without
1189 putting it somewhere else.
1191 * platform/graphics/ca/mac/TileController.mm:
1192 (WebCore::TileController::setNeedsDisplay):
1193 Use hasStaleContent when invalidating a whole tile, just
1194 like we do for partial tile repaints.
1196 (WebCore::TileController::setTileNeedsDisplayInRect):
1197 Mark hasStaleContent for any unparented layers, so they'll be painted
1198 when they are reparented.
1200 (WebCore::TileController::ensureTilesForRect):
1201 Invalidate the whole tile when it changes size.
1203 2013-11-23 Xabier Rodriguez Calvar <calvaris@igalia.com>
1205 [GStreamer] Remove 0.10 codepath
1206 https://bugs.webkit.org/show_bug.cgi?id=124534
1208 Reviewed by Philippe Normand.
1210 All GStreamer ports are using 1.0 now so we remove the 0.10
1213 * GNUmakefile.list.am:
1214 * PlatformEfl.cmake:
1215 * PlatformGTK.cmake:
1216 * WebCore.vcxproj/WebCore.vcxproj:
1217 * WebCore.vcxproj/WebCore.vcxproj.filters: Removed
1218 GStreamerVersioning.
1219 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
1220 (onGStreamerWavparsePadAddedCallback): Removed.
1221 (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
1222 Replaced webkitGstPipelineGetBus and removed 0.10 codepath.
1223 (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
1224 Replaced webkitGstPipelineGetBus.
1225 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1226 (WebCore::copyGstreamerBuffersToAudioChannel):
1227 (WebCore::onAppsinkPullRequiredCallback): Removed 0.10 codepath.
1228 (WebCore::AudioFileReader::~AudioFileReader): Replaced
1229 webkitGstPipelineGetBus and removed 0.10 codepath.
1230 (WebCore::AudioFileReader::handleSample): Left as only codepath.
1231 (WebCore::AudioFileReader::handleBuffer): Removed.
1232 (WebCore::AudioFileReader::handleNewDeinterleavePad): Removed 0.10
1234 (WebCore::AudioFileReader::plugDeinterleave): Replaced
1236 (WebCore::AudioFileReader::decodeAudioForBusCreation): Replaced
1237 webkitGstPipelineGetBus.
1238 (WebCore::AudioFileReader::createBus): Removed 0.10 codepath.
1239 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1240 (getGStreamerMonoAudioCaps):
1241 (webKitWebAudioGStreamerChannelPosition): Removed 0.10 codepath.
1242 (webkit_web_audio_src_class_init): Replaced
1243 setGstElementClassMetadata.
1244 (webkit_web_audio_src_init):
1245 (webKitWebAudioSrcConstructed):
1246 (webKitWebAudioSrcFinalize):
1247 (webKitWebAudioSrcLoop): Removed 0.10 codepath.
1248 * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
1249 * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
1250 Removed checks for 1.0 as it is the only codepath now.
1251 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1254 (WTF::GstPadTemplate):
1257 (WTF::GstElementFactory):
1258 (WTF::adoptGRef): Replaced gstObjectIsFloating.
1259 (WTF::refGRef): Replaced webkitGstObjectRefSink.
1261 (WTF::GstSample): Removed checks for 1.0 as it is the only
1263 * platform/graphics/gstreamer/GRefPtrGStreamer.h: Removed checks
1264 for 1.0 as it is the only codepath now.
1265 * platform/graphics/gstreamer/GStreamerUtilities.cpp:
1266 (WebCore::webkitGstGhostPadFromStaticTemplate):
1267 (WebCore::getVideoSizeAndFormatFromCaps):
1268 (WebCore::createGstBuffer):
1269 (WebCore::createGstBufferForData):
1270 (WebCore::getGstBufferDataPointer):
1271 (WebCore::mapGstBuffer):
1272 (WebCore::unmapGstBuffer): Moved here from GstVersioning and added
1273 to WebCore namespace.
1274 * platform/graphics/gstreamer/GStreamerUtilities.h:
1275 (WebCore::webkitGstCheckVersion): Moved here from GstVersioning
1276 and added to WebCore namespace.
1277 * platform/graphics/gstreamer/GStreamerVersioning.cpp: Removed.
1278 * platform/graphics/gstreamer/GStreamerVersioning.h: Removed.
1279 * platform/graphics/gstreamer/ImageGStreamer.h: Removed checks for
1280 1.0 as it is the only codepath now.
1281 * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
1282 (ImageGStreamer::ImageGStreamer): Removed 0.10 codepath.
1283 (ImageGStreamer::~ImageGStreamer): Removed checks for 1.0 as it is
1284 the only codepath now.
1285 * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
1286 * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
1287 * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
1288 Removed checks for 1.0 as it is the only codepath now.
1289 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1290 (WebCore::setAudioStreamPropertiesCallback): Removed 0.10 codepath.
1291 (WebCore::mediaPlayerPrivateTextChangedCallback): Removed checks
1292 for 1.0 as it is the only codepath now.
1293 (WebCore::MediaPlayerPrivateGStreamer::isAvailable): Replaced
1295 (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
1296 Removed checks for 1.0 and replaced webkitGstPipelineGetBus.
1297 (WebCore::MediaPlayerPrivateGStreamer::duration): Removed 0.10
1299 (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
1300 (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
1301 (WebCore::MediaPlayerPrivateGStreamer::textChanged):
1302 Removed checks for 1.0 as it is the only codepath now.
1303 (WebCore::MediaPlayerPrivateGStreamer::buffered): Replaced
1305 (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Removed
1307 (WebCore::MediaPlayerPrivateGStreamer::processTableOfContents):
1308 Removed checks for 1.0 as it is the only codepath now.
1309 (WebCore::MediaPlayerPrivateGStreamer::totalBytes): Removed 0.10
1311 (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Replaced
1312 gPlaybinName and webkitGstPipelineGetBus and removed checks for
1314 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1315 Removed checks for 1.0 as it is the only codepath now.
1316 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1317 (WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
1318 (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
1319 (WebCore::MediaPlayerPrivateGStreamerBase::paint): Removed 0.10
1321 * platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
1322 * platform/graphics/gstreamer/TextCombinerGStreamer.h:
1323 * platform/graphics/gstreamer/TextSinkGStreamer.cpp:
1324 * platform/graphics/gstreamer/TextSinkGStreamer.h:
1325 * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
1326 * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Removed
1327 checks for 1.0 as it is the only codepath now.
1328 * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
1329 (webkitVideoSinkRender): Removed 0.10 codepath and added WebCore
1330 as createGstBuffer namespace.
1331 (webkitVideoSinkSetCaps): Removed 0.10 codepath.
1332 (webkitVideoSinkProposeAllocation): Removed checks for 1.0 as it
1333 is the only codepath now.
1334 (webkitVideoSinkMarshalVoidAndMiniObject): Removed as it was 0.10.
1335 (webkit_video_sink_class_init): Removed 0.10 codepath and replaced
1336 setGstElementClassMetadata.
1337 * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
1338 * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
1339 Removed checks for 1.0 as it is the only codepath now.
1340 * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
1341 (webkit_media_src_class_init): Replaced
1342 setGstElementClassMetadata.
1343 (webKitMediaSrcAddSrc): Added WebCore namespace to
1344 webkitGstGhostPadFromStaticTemplate.
1345 (MediaSourceClientGstreamer::didReceiveData): Added WebCore
1346 namespace to createGstBufferForData.
1347 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1348 Removed 0.10 codepath.
1349 (webKitWebSrcQuery): Removed as it was 0.10 only.
1350 (void webkit_web_src_class_init): Replaced setGstElementClassMetadata.
1351 (webkit_web_src_init): Removed haveAppSrc27 private attribute and
1353 (webKitWebSrcStop): Removed checks for 1.0 as it is the only
1355 (webKitWebSrcSetProperty):
1356 (webKitWebSrcUriGetType):
1357 (webKitWebSrcGetProtocols):
1358 (webKitWebSrcGetUri):
1359 (webKitWebSrcSetUri): Removed 0.10 codepath.
1360 (StreamingClient::createReadBuffer): Removed checks for 1.0 and
1361 replaced getGstBufferSize.
1362 (StreamingClient::handleResponseReceived): Removed 0.10 codepath
1363 and replaced notifyGstTagsOnPad.
1364 (StreamingClient::handleDataReceived): Removed 0.10 codepath and
1365 replaced setGstBufferSize and gst_buffer_get_size.
1367 2013-11-22 Jer Noble <jer.noble@apple.com>
1369 [Mac] Can't drag full-screen video to another monitor
1370 https://bugs.webkit.org/show_bug.cgi?id=124798
1372 Reviewed by Geoffrey Garen.
1374 Make full screen windows movable by default. Previously, we wanted non-movable full screen
1375 windows since they were in the same space and were just placed atop non-full screen windows.
1376 Now that all our supported Mac platforms have explicit full screen support, we can remove this
1377 non-movable restriction.
1379 * platform/mac/WebCoreFullScreenWindow.mm:
1380 (-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):
1382 2013-11-22 Brent Fulgham <bfulgham@apple.com>
1384 [Win] Clean up ColorSpace handling in Windows code
1385 https://bugs.webkit.org/show_bug.cgi?id=124795
1387 Reviewed by Tim Horton.
1389 Functionality covered by existing fast/css/color test suite.
1391 * platform/graphics/cg/GraphicsContextCG.cpp:
1392 (WebCore::safeRGBColorSpaceRef): Handle case of Windows CG implementation not
1393 handling sRGB correctly.
1394 (WebCore::sRGBColorSpaceRef): Use new helper function.
1395 * platform/graphics/win/FontCGWin.cpp:
1396 (WebCore::Font::drawGlyphs): Pass correct color space to fill functions.
1397 * platform/graphics/win/GraphicsContextCGWin.cpp:
1398 (WebCore::GraphicsContext::platformInit): Initialize color space to value passed
1399 via the style to the constructor.
1401 2013-11-22 Alexey Proskuryakov <ap@apple.com>
1403 WebCrypto algorithms should check that key algorithm matches
1404 https://bugs.webkit.org/show_bug.cgi?id=123628
1406 Reviewed by Anders Carlsson.
1408 No change in behavior yet, because we have one algorithm per key class.
1409 Will be tested once more algorithms are added.
1411 * WebCore.xcodeproj/project.pbxproj: Updated for file renames.
1413 * bindings/js/JSCryptoAlgorithmDictionary.cpp:
1414 (WebCore::createRsaKeyParamsWithHash):
1415 (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
1416 * bindings/js/JSCryptoKeySerializationJWK.cpp:
1417 (WebCore::createRSAKeyParametersWithHash):
1418 (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
1419 * crypto/CryptoAlgorithmParameters.h:
1420 (WebCore::CryptoAlgorithmParameters::ENUM_CLASS):
1421 * crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h: Copied from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h.
1422 * crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Removed.
1423 Renamed RsaSsaKeyParams to RsaKeyParamsWithHash, because other algorithms (like RSA-OAEP)
1424 are in the same boat. Depending on where the spec goes, we might need to introduce
1425 algorithm specific RSA parameter classes later, but let's reduce copy/pasted code at
1428 * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Moved to the correct directory.
1429 * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Copied from Source/WebCore/crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp.
1430 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): Factored out Mac specific
1431 code, leaving type casting to cross-platform files.
1432 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Ditto.
1434 * crypto/CryptoAlgorithmRegistry.h:
1435 (WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
1436 * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
1437 (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
1438 Reduce copy/pasting in registration code.
1440 * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
1441 (WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches): Check key type and algorithm.
1442 (WebCore::CryptoAlgorithmAES_CBC::encrypt): Cross platform type casting code.
1443 Maybe we'll find a way to autogenerate or eliminate it one day.
1444 (WebCore::CryptoAlgorithmAES_CBC::decrypt): Ditto.
1446 * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
1447 * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
1448 (WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches):
1449 (WebCore::CryptoAlgorithmHMAC::sign):
1450 (WebCore::CryptoAlgorithmHMAC::verify):
1451 * crypto/algorithms/CryptoAlgorithmHMAC.h:
1452 * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
1453 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches):
1454 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
1455 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
1456 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
1457 * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
1458 * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
1459 (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
1460 (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
1461 * crypto/mac/CryptoAlgorithmHMACMac.cpp:
1462 (WebCore::CryptoAlgorithmHMAC::platformSign):
1463 (WebCore::CryptoAlgorithmHMAC::platformVerify):
1464 Same changes for all algorithms that have keys.
1466 2013-11-22 Brendan Long <b.long@cablelabs.com>
1468 Fire "change" event on TextTrackList when a TextTrack's mode changes
1469 https://bugs.webkit.org/show_bug.cgi?id=124789
1471 Reviewed by Eric Carlson.
1473 Since AudioTrackList and VideoTrackList already have this event, the
1474 interesting bits are in TrackListBase::scheduleChangeEvent(), and we
1475 just need to call it for TextTrackList changes.
1477 Test: media/track/track-change-event.html
1479 * html/HTMLMediaElement.cpp:
1480 (HTMLMediaElement::textTrackModeChanged): Call TrackListBase::scheduleChangeEvent().
1481 * html/track/TextTrackList.idl: Add onchange event listener.
1483 2013-11-22 Brendan Long <b.long@cablelabs.com>
1485 Add TextTrackList::getTrackById().
1486 https://bugs.webkit.org/show_bug.cgi?id=124785
1488 Reviewed by Eric Carlson.
1490 Test: media/track/track-id.html
1492 * html/track/TextTrackList.cpp: Add getTrackById()
1493 (TextTrackList::getTrackById):
1494 * html/track/TextTrackList.h: Same.
1495 * html/track/TextTrackList.idl: Same.
1497 2013-11-22 Hans Muller <hmuller@adobe.com>
1499 [CSS Shapes] When the <box> value is set, derive radii from border-radius
1500 https://bugs.webkit.org/show_bug.cgi?id=124228
1502 Reviewed by Dean Jackson.
1504 Add support for BoxShape elliptical corners.
1506 Tests: fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-001.html
1507 fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-002.html
1509 * platform/graphics/FloatRoundedRect.h:
1510 (WebCore::FloatRoundedRect::bottomLeftCorner): Corrected a copy-and-pasteO.
1511 * rendering/shapes/BoxShape.cpp:
1512 (WebCore::BoxShape::getExcludedIntervals): Returned interval now depends on the top and bottom of the line.
1513 * rendering/shapes/Shape.cpp:
1514 (WebCore::Shape::createShape): Rounded rect parameters are now specified with a RoundedRect parameter.
1515 * rendering/shapes/Shape.h:
1516 * rendering/shapes/ShapeInfo.cpp:
1517 (WebCore::::computedShape): Pass style's rounded border to createShape().
1519 2013-11-22 Andres Gomez <agomez@igalia.com>
1521 Several missing/incorrect guards for LOG_DISABLED=0 against Release build (Mac)
1522 https://bugs.webkit.org/show_bug.cgi?id=78735
1524 Reviewed by Mario Sanchez Prada.
1526 In a "Debug" build the CString.h header comes from another
1527 indirect dependency. Now, we explicitly add this missing include.
1529 * page/CaptionUserPreferencesMediaAF.cpp: Explicitly adding
1532 2013-11-22 Robert Sipka <sipka@inf.u-szeged.hu>
1534 [curl] Fix of SSL certificate chain storage
1535 https://bugs.webkit.org/show_bug.cgi?id=124768
1537 Reviewed by Brent Fulgham.
1539 Change the certificates storage type into ListHashSet
1540 from HashSet to keep the chain order in each case.
1541 This ensures that there is no difference between the stored
1542 and the recieved certificate chain.
1544 * platform/network/curl/SSLHandle.cpp:
1545 (WebCore::allowsAnyHTTPSCertificateHosts):
1546 (WebCore::sslIgnoreHTTPSCertificate):
1548 (WebCore::certVerifyCallback):
1550 2013-11-22 Brent Fulgham <bfulgham@apple.com>
1552 [Win] Avoid deadlock when interacting with some AVFoundationCF content
1553 <rdar://problem/15482977> and https://bugs.webkit.org/show_bug.cgi?id=124752
1555 Prevent deadlock caused by conflict over the "mapLock" mutex. Notification handling in the file,
1556 which modify assets and make other changes, are required to happen on the main thread. This
1557 patch enforces this requirement.
1559 Reviewed by Eric Carlson.
1561 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1562 (WebCore::NotificationCallbackData::NotificationCallbackData): Added
1563 (WebCore::AVFWrapper::processNotification): Moved logic from 'notificationCallback', which was
1564 sometimes happening on a background thread.
1565 (WebCore::AVFWrapper::notificationCallback): Dispatch calls to main thread.
1567 2013-11-22 peavo@outlook.com <peavo@outlook.com>
1569 [WinCairo] Compile error when ACCELERATED_COMPOSITING is not used.
1570 https://bugs.webkit.org/show_bug.cgi?id=124773
1572 Reviewed by Brent Fulgham.
1574 * rendering/RenderView.cpp:
1575 (WebCore::RenderView::paintBoxDecorations): Added USE(ACCELERATED_COMPOSITING) guard.
1577 2013-11-18 Sergio Villar Senin <svillar@igalia.com>
1579 [CSS Grid Layout] Improve content-sized track layout
1580 https://bugs.webkit.org/show_bug.cgi?id=124408
1582 Reviewed by Dean Jackson.
1584 Test: fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html
1586 From Blink r156122 & r157633 by <jchaffraix@chromium.org>
1588 Added a couple of optimizations to speed up the layout of content
1589 based tracks. The idea is to narrow down the conditions for
1590 relayouting when the height of a grid area changes. We basically
1591 just need to layout tracks with percentage heights as they're the
1592 only ones that change.
1594 A new performance test is attached to demonstrate the effect of
1595 these optimizations. We get a ~1000% improvement on a i7 M620
1596 going from 14.5 runs/s to 165 runs/s.
1598 * rendering/RenderGrid.cpp:
1599 (WebCore::RenderGrid::logicalContentHeightForChild):
1600 (WebCore::RenderGrid::layoutGridItems):
1602 2013-11-08 Sergio Villar Senin <svillar@igalia.com>
1604 [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
1605 https://bugs.webkit.org/show_bug.cgi?id=124039
1607 Reviewed by Dean Jackson.
1609 The current code runs the content sized track sizing algorithm all
1610 the time, which forces a layout even when the track is not
1611 content-sized. This change improves the situation by applying two
1612 optimizations. In the first one, we bail out the algorithm if we
1613 detect that we don't need to run it. And by the second one we
1614 reduce the amount of recomputations by only iterating over the
1615 content sized tracks instead of all of them. Both changes follow
1616 the ideas introduced in Blink r156028 and r156168 by
1617 <jchaffraix@chromium.org>.
1619 As we changed the way we iterate over children (we use the
1620 GridIterator now) the way they're stored in the RenderGrid changes
1621 too. If a item spans through several "cells" inside the grid, we
1622 will have a reference to it on each of them.
1624 These two changes account for a ~3200% improvement on a i7 M620 in
1625 the test that accompanies this change (15.5 vs 520 run/s).
1627 New perf test: PerformanceTests/Layout/fixed-grid-lots-of-data.html
1629 * rendering/RenderGrid.cpp:
1630 (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Keep track
1631 of content sized tracks and only iterate over them.
1632 (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
1633 (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
1634 Early return if there are no tracks to pass to the algorithm.
1635 * rendering/RenderGrid.h:
1636 * rendering/style/GridLength.h:
1637 (WebCore::GridLength::isContentSized):
1638 * rendering/style/GridTrackSize.h:
1639 (WebCore::GridTrackSize::isContentSized):
1641 2013-11-22 Manuel Rego Casasnovas <rego@igalia.com>
1643 [CSS Regions] Move code after early break in RenderRegion::repaintFlowThreadContentRectangle
1644 https://bugs.webkit.org/show_bug.cgi?id=124743
1646 Reviewed by Mihnea Ovidenie.
1648 No new tests, covered by existing tests.
1650 * rendering/RenderRegion.cpp:
1651 (WebCore::RenderRegion::repaintFlowThreadContentRectangle): Variable
1652 flippedFlowThreadPortionRect is not used before the early break, so we
1653 can move it after and save some unneeded operations.
1655 2013-11-22 Manuel Rego Casasnovas <rego@igalia.com>
1657 [CSS Regions] Use hasOverflowClip() in RenderRegion
1658 https://bugs.webkit.org/show_bug.cgi?id=124746
1660 Reviewed by Mihnea Ovidenie.
1662 Implement the suggested FIXME in RenderRegion using hasOverflowClip().
1664 No new tests, covered by existing tests.
1666 * rendering/RenderRegion.cpp:
1667 (WebCore::RenderRegion::overflowRectForFlowThreadPortion): Use
1669 (WebCore::RenderRegion::rectFlowPortionForBox): Ditto.
1671 2013-11-21 Frédéric Wang <fred.wang@free.fr>
1673 Map the dir attribute to the CSS direction property.
1674 https://bugs.webkit.org/show_bug.cgi?id=124572.
1676 Reviewed by Darin Adler.
1678 Test: mathml/presentation/mstyle-css-attributes.html
1680 * mathml/MathMLElement.cpp:
1681 (WebCore::MathMLElement::isPresentationAttribute): reorder attributes
1682 (WebCore::MathMLElement::collectStyleForPresentationAttribute): reorder tags that accept dir
1683 (WebCore::MathMLElement::isMathMLToken): add an inline function to test that a tag corresponds to a MathML Token Element.
1684 * mathml/MathMLElement.h:
1686 Follow-up work to address Darin's comments.
1688 2013-11-21 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
1690 Remove ENABLE_WORKERS
1691 https://bugs.webkit.org/show_bug.cgi?id=105784
1693 Reviewed by Darin Adler.
1695 2013-11-21 Alex Christensen <achristensen@webkit.org>
1697 [Win] Unreviewed build fix after r159632.
1699 * platform/network/curl/SSLHandle.cpp:
1700 (WebCore::certVerifyCallback):
1701 Fixed template syntax.
1703 2013-11-21 Bear Travis <betravis@adobe.com>
1705 Web Inspector: [CSS Shapes] Refactor highlighting code to decrease Shapes API surface
1706 https://bugs.webkit.org/show_bug.cgi?id=124737
1708 Reviewed by Timothy Hatcher.
1710 Add a virtual method to Shapes, buildPath, that can be used to build the
1711 path (in the Shape coordinate system) for display in the Inspector. This allows us
1712 to remove methods such as type(), polygon(), and logicalRx/Ry() which exposed the
1713 inner workings of the Shapes classes. Also covers the addition of the BoxShape type.
1715 Refactoring, existing test is inspector-protocol/model/highlight-shape-outside.html.
1717 * inspector/InspectorOverlay.cpp:
1718 (WebCore::appendPathCommandAndPoints): Points need to be translated from shape space
1719 to renderer space using ShapeInfo.
1720 (WebCore::buildObjectForShapeOutside): Add the ShapeOutsideInfo to the path info struct.
1721 * rendering/shapes/BoxShape.cpp:
1722 (WebCore::BoxShape::buildPath): Build the path for a BoxShape.
1723 * rendering/shapes/BoxShape.h:
1724 * rendering/shapes/PolygonShape.cpp:
1725 (WebCore::PolygonShape::buildPath): Build the path for a PolygonShape.
1726 * rendering/shapes/PolygonShape.h:
1727 * rendering/shapes/RasterShape.h:
1728 * rendering/shapes/RectangleShape.cpp:
1729 (WebCore::RectangleShape::buildPath): Build the path for a RectangleShape.
1730 * rendering/shapes/RectangleShape.h:
1731 * rendering/shapes/Shape.h:
1733 2013-11-21 Mark Rowe <mrowe@apple.com>
1735 <https://webkit.org/b/124702> Stop overriding VALID_ARCHS.
1737 All modern versions of Xcode set it appropriately for our needs.
1739 Reviewed by Alexey Proskuryakov.
1741 * Configurations/Base.xcconfig:
1743 2013-11-21 Gwang Yoon Hwang <ryumiel@company100.net>
1745 [GTK] Unreviewed buildfix after r159614 and r159656.
1747 * bindings/gobject/WebKitDOMCustom.cpp: Add missing header
1749 2013-11-21 Laszlo Vidacs <lac@inf.u-szeged.hu>
1751 Fix WinCairo unreachable code warnings in SimpleLineLayout.cpp
1752 https://bugs.webkit.org/show_bug.cgi?id=124704
1754 Reviewed by Antti Koivisto.
1756 Fix unreachable code warnings using conditional directives.
1758 * rendering/SimpleLineLayout.cpp:
1759 (WebCore::SimpleLineLayout::canUseFor):
1761 2013-11-21 Mark Rowe <mrowe@apple.com>
1763 <https://webkit.org/b/124701> Fix an error in a few Xcode configuration setting files.
1765 Reviewed by Alexey Proskuryakov.
1767 * Configurations/Base.xcconfig:
1769 2013-11-21 Mark Rowe <mrowe@apple.com>
1771 <https://webkit.org/b/124700> Fix some deprecation warnings.
1773 Reviewed by Anders Carlsson.
1775 * platform/mac/HTMLConverter.mm:
1776 (fileWrapperForURL): Move off a deprecated NSFileWrapper method.
1778 2013-11-21 Daniel Bates <dabates@apple.com>
1780 [iOS] Build fix; export symbol for WebCore::provideDeviceOrientationTo()
1782 Add the symbol __ZN7WebCore26provideDeviceOrientationToEPNS_4PageEPNS_23DeviceOrientationClientE.
1786 2013-11-21 Daniel Bates <dabates@apple.com>
1788 Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard
1789 https://bugs.webkit.org/show_bug.cgi?id=124741
1791 Reviewed by Alexey Proskuryakov.
1793 Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard around code that is unused
1794 when building with feature NETWORK_CFDATA_ARRAY_CALLBACK.
1796 Additionally, add a declaration for allocateSegment() with attribute WARN_UNUSED_RETURN
1797 to have the compiler warn when the return value of this function is unused. Together with
1798 warnings treated as errors this change will prevent a memory leak.
1800 * platform/SharedBuffer.cpp:
1802 2013-11-21 Daniel Bates <dabates@apple.com>
1804 Remove unused functions from WebCore and WebKit2
1805 https://bugs.webkit.org/show_bug.cgi?id=124739
1807 Reviewed by Alexey Proskuryakov.
1809 * editing/markup.cpp: Remove unused functions isHTMLBlockElement and
1810 ancestorToRetainStructureAndAppearanceWithNoRenderer.
1811 * rendering/InlineElementBox.cpp: Append newline to the end of the file.
1813 2013-11-21 Daniel Bates <dabates@apple.com>
1815 Only generate isObservable() when IDL specifies GenerateIsReachable
1816 https://bugs.webkit.org/show_bug.cgi?id=124729
1818 Reviewed by Geoffrey Garen.
1820 We should only generate the static inline function isObservable() when the IDL
1821 specifies GenerateIsReachable. Otherwise, this function is unused.
1823 Added a new test IDL TestGenerateIsReachable.idl and expected results to test that
1824 we generate isObservable() when an IDL specifies GenerateIsReachable. Additionally,
1825 rebased existing test results.
1827 * bindings/scripts/CodeGeneratorJS.pm:
1828 (GenerateImplementation):
1829 * bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.cpp: Added.
1830 * bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.h: Added.
1831 * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp: Added.
1832 * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h: Added.
1833 * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachablePrivate.h: Added.
1834 * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Removed unused function isObservable().
1835 * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
1836 * bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
1837 * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
1838 * bindings/scripts/test/JS/JSTestException.cpp: Ditto.
1839 * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Added.
1840 * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: Added.
1841 * bindings/scripts/test/JS/JSTestInterface.cpp: Removed unused function isObservable().
1842 * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
1843 * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
1844 * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
1845 * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
1846 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
1847 * bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
1848 * bindings/scripts/test/JS/JSattribute.cpp: Ditto.
1849 * bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
1850 * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h: Added.
1851 * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm: Added.
1852 * bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h: Added.
1853 * bindings/scripts/test/TestGenerateIsReachable.idl: Added.
1855 2013-11-21 Beth Dakin <bdakin@apple.com>
1857 Add a new mode to extend the tile cache beyond the page
1858 https://bugs.webkit.org/show_bug.cgi?id=124216
1860 Reviewed by Simon Fraser.
1862 This patch makes it possible to give the tile cache a margin of tiles. If there is
1863 a margin of tiles, this patch paints those tiles with the background color. Note
1864 that this patch does not actually give the tile cache a margin at this time.
1866 You opt into a margined tiled cache by called setTileMargins() with number of
1867 pixels that the margin on that side should be.
1868 * platform/graphics/TiledBacking.h:
1869 * platform/graphics/ca/mac/TileController.h:
1870 * platform/graphics/ca/mac/TileController.mm:
1871 (WebCore::TileController::TileController):
1872 (WebCore::TileController::tilesWouldChangeForVisibleRect):
1874 TileController::bounds() now computes the bounds INCLUDING the margin.
1875 (WebCore::TileController::bounds):
1877 adjustRectAtTileIndexForMargin() is a new function that is required to get the
1878 rect size for tiles in the margin right. rectForTileIndex() assumes all tiles
1879 strive to be the size of m_tileSize, but now margin tiles will be whatever the
1880 margin sizes were set to.
1881 (WebCore::TileController::adjustRectAtTileIndexForMargin):
1882 (WebCore::TileController::rectForTileIndex):
1884 This is another instance where m_tileSize is not always the right size to use.
1885 (WebCore::TileController::getTileIndexRangeForRect):
1887 The tile coverage rect now might include the margin tiles. Only include them in
1888 slow-scrolling mode if the current position is within one tile of the edge.
1889 (WebCore::TileController::computeTileCoverageRect):
1891 tileSizeForCoverageRect() does not make sense in a world where the coverage rect
1892 will include margin. Instead, this patch implements the current strategy more
1893 explicitly by returning the visibleRect in the slow scrolling case, and in the
1894 process this patch also re-names tileSizeForCoverageRect() to computeTileSize()
1895 since it no longer takes a coverageRect.
1896 (WebCore::TileController::computeTileSize):
1897 (WebCore::TileController::revalidateTiles):
1899 New setters and getters for the tile margins on each side.
1900 (WebCore::TileController::setTileMargins):
1901 (WebCore::TileController::hasMargins):
1902 (WebCore::TileController::topMarginHeight):
1903 (WebCore::TileController::bottomMarginHeight):
1904 (WebCore::TileController::leftMarginWidth):
1905 (WebCore::TileController::rightMarginWidth):
1907 New function to add margin onto the composited bounds if there is one.
1908 * rendering/RenderLayerBacking.cpp:
1909 (WebCore::RenderLayerBacking::tiledBackingHasMargin):
1910 (WebCore::RenderLayerBacking::paintContents):
1911 (WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
1912 * rendering/RenderLayerBacking.h:
1914 Do not set masks to bounds if there is a margin on the root layer.
1915 * rendering/RenderLayerCompositor.cpp:
1916 (WebCore::RenderLayerCompositor::updateBacking):
1917 (WebCore::RenderLayerCompositor::mainFrameBackingIsTiledWithMargin):
1918 * rendering/RenderLayerCompositor.h:
1920 Allow background color to paint into the margin tiles.
1921 * rendering/RenderView.cpp:
1922 (WebCore::RenderView::paintBoxDecorations):
1924 2013-11-21 Alexey Proskuryakov <ap@apple.com>
1926 Implement WebCrypto wrapKey
1927 https://bugs.webkit.org/show_bug.cgi?id=124738
1929 Reviewed by Anders Carlsson.
1931 Tests: crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html
1932 crypto/subtle/aes-cbc-wrap-rsa.html
1934 * bindings/js/JSSubtleCryptoCustom.cpp:
1935 (WebCore::exportKey): Factored out the actual operation that can be chained with
1936 encryption for wrapKey.
1937 (WebCore::JSSubtleCrypto::exportKey):
1938 (WebCore::JSSubtleCrypto::wrapKey):
1939 (WebCore::JSSubtleCrypto::unwrapKey): Fixed a memory leak in failure code path.
1941 * crypto/SubtleCrypto.idl: Added wrapKey.
1943 2013-11-21 Alexey Proskuryakov <ap@apple.com>
1945 Implement WebCrypto unwrapKey
1946 https://bugs.webkit.org/show_bug.cgi?id=124725
1948 Reviewed by Anders Carlsson.
1950 Tests: crypto/subtle/aes-cbc-unwrap-failure.html
1951 crypto/subtle/aes-cbc-unwrap-rsa.html
1953 * bindings/js/JSCryptoAlgorithmDictionary.cpp:
1954 * bindings/js/JSCryptoAlgorithmDictionary.h:
1955 Removed calls for wrap/unwrap parameter parsing, these are just the same as encrypt/decrypt.
1957 * bindings/js/JSCryptoOperationData.cpp:
1958 (WebCore::cryptoOperationDataFromJSValue):
1959 * bindings/js/JSCryptoOperationData.h:
1960 * crypto/CryptoKeySerialization.h:
1961 More Vector<char> elimination.
1963 * bindings/js/JSDOMPromise.cpp:
1964 * bindings/js/JSDOMPromise.h:
1965 Removed unneccessary copy constructor and assignment operator, they are no diffdrent
1966 than compiler generated ones.
1968 * bindings/js/JSSubtleCryptoCustom.cpp:
1969 (WebCore::cryptoKeyUsagesFromJSValue): Minor style fixes.
1970 (WebCore::JSSubtleCrypto::encrypt): Ditto.
1971 (WebCore::JSSubtleCrypto::decrypt): Ditto.
1972 (WebCore::JSSubtleCrypto::sign): Ditto.
1973 (WebCore::JSSubtleCrypto::verify): Ditto.
1974 (WebCore::JSSubtleCrypto::generateKey): Ditto.
1975 (WebCore::importKey): Separated actual import operation and the parts that read
1976 arguments from ExecState, and call the promise. Logically, this should be outside
1977 of bindings code even, but JWK makes that quite challenging.
1978 (WebCore::JSSubtleCrypto::importKey): This only does the more mundane arguments
1979 and return parts now.
1980 (WebCore::JSSubtleCrypto::exportKey): Minor style fixes.
1981 (WebCore::JSSubtleCrypto::unwrapKey): Chain decrypt and import.
1983 * crypto/CryptoAlgorithm.cpp:
1984 (WebCore::CryptoAlgorithm::encryptForWrapKey):
1985 (WebCore::CryptoAlgorithm::decryptForUnwrapKey):
1986 * crypto/CryptoAlgorithm.h:
1987 There are algorithms that expose wrap/unwrap, but not encrypt/decrypt. These will
1988 override these new functions, and leave encrypt/decrypt to raise NOT_SUPPORTED_ERR.
1990 * crypto/SubtleCrypto.idl: Added unwrapKey.
1992 2013-11-21 Robert Sipka <sipka@inf.u-szeged.hu>
1994 [curl]Improve ssl certificate storage and check
1995 https://bugs.webkit.org/show_bug.cgi?id=124569
1997 Reviewed by Brent Fulgham.
1999 Storage and check the whole certificate chain, not just the root certificate.
2001 * platform/network/curl/SSLHandle.cpp:
2002 (WebCore::allowsAnyHTTPSCertificateHosts):
2003 (WebCore::sslIgnoreHTTPSCertificate):
2005 (WebCore::certVerifyCallback):
2007 2013-11-21 Mihai Maerean <mmaerean@adobe.com>
2009 Fix hover area for divs with css transforms
2010 https://bugs.webkit.org/show_bug.cgi?id=124647
2012 Reviewed by Allan Sandfeld Jensen.
2014 Non transformed layers are now being hit last, not through or in-between transformed layers.
2015 The paint order says that the divs creating stacking contexts (including transforms) are painted after the
2016 other siblings so they should be hit tested in the reverse order. Also, a rotated div in a non-rotated parent
2017 should be hit in its entire area, not hit its parent's background, even if the z-coordinate is negative where
2018 the mouse is located.
2020 Test: transforms/3d/hit-testing/hover-rotated-negative-z.html
2022 * rendering/RenderLayer.cpp:
2023 (WebCore::computeZOffset):
2025 2013-11-21 Andres Gomez <agomez@igalia.com>
2027 [GTK] Release compilation fails when defining "LOG_DISABLED=0"
2028 https://bugs.webkit.org/show_bug.cgi?id=124661
2030 Reviewed by Mario Sanchez Prada.
2032 In a "Debug" build the CString.h header comes from another
2033 indirect dependency. Now, we explicitly add this missing include.
2035 * html/HTMLTrackElement.cpp: Explicitly adding missing include.
2037 2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
2039 Fix Range.insertNode when the inserted node is in the same container as the Range
2040 https://bugs.webkit.org/show_bug.cgi?id=123957
2042 Reviewed by Antti Koivisto.
2044 Inspired by https://chromium.googlesource.com/chromium/blink/+/fb6ca1f488703e8d4f20ce6449cc8ea210be6edb
2046 When a node from the same container is inserted, we can't simply adjust m_end with the offset.
2047 Compute m_start and m_end from the inserted nodes instead.
2049 Also, don't adjust m_start and m_end to nodes outside of the document if the inserted nodes had been
2050 removed by mutation events.
2052 Test: fast/dom/Range/range-insertNode-same-container.html
2055 (WebCore::Range::insertNode):
2057 2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
2059 nextBoundary and previousBoundary are very slow when there is a password field
2060 https://bugs.webkit.org/show_bug.cgi?id=123973
2062 Reviewed by Antti Koivisto.
2064 Merge https://chromium.googlesource.com/chromium/blink/+/57366eec5e3edea54062d4e74c0e047f8681dbad
2066 When iterating through DOM nodes nextBoundary and previousBoundary convert the contents of nodes using
2067 text security to a sequence of 'x' characters. The SimplifiedBackwardsTextIterator and TextIterator
2068 may iterate past node boundaries. Before this patch, the transformation was done looking at the starting
2069 node rather than the current node. In some situations, this replaced all boundaries with 'x' and caused
2070 the text iterator to continue iterating and transforming until the extent of the document.
2072 Test: editing/deleting/password-delete-performance.html
2074 * editing/TextIterator.h:
2075 (WebCore::SimplifiedBackwardsTextIterator::node):
2076 * editing/VisibleUnits.cpp:
2077 (WebCore::previousBoundary):
2078 (WebCore::nextBoundary):
2080 2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
2082 HTML parser should not associate elements inside templates with forms
2083 https://bugs.webkit.org/show_bug.cgi?id=117779
2085 Reviewed by Antti Koivisto.
2087 Merge https://chromium.googlesource.com/chromium/blink/+/45aadf7ee7ee010327eb692066cf013315ef3ed7
2089 When parsing <form><template><input>, the previous behavior was to associate the <input> with the <form>,
2090 even though they're not in the same tree (or even the same document).
2092 This patch changes that by checking, prior to creating a form control element, whether the element to be
2093 created lives in a document with a browsing context.
2095 We don't update m_form as needed to faithfully match the HTML5 specification's form element pointer
2096 http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#form-element-pointer
2097 and its algorithm for creating and inserting nodes:
2098 http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#creating-and-inserting-nodes
2100 While this leaves isindex's reference to form element pointer stale:
2101 http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#isindex
2102 The HTML5 specification matches the behaviors of Chrome and Firefox so we leave it as is.
2104 Test: fast/dom/HTMLTemplateElement/no-form-association.html
2106 * html/parser/HTMLConstructionSite.cpp:
2107 (WebCore::HTMLConstructionSite::createHTMLElement):
2109 2013-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
2111 [GTK] Cannot scroll in option menu when it larger than the screen
2112 https://bugs.webkit.org/show_bug.cgi?id=124671
2114 Reviewed by Martin Robinson.
2116 The problem is that the popup menu is not resized to fit in the
2117 screen, so it doesn't scroll and some of the items are offscreen
2118 so they can't be selected either. GTK+ automatically resizes the
2119 popup menus to fit in the work area, but only when the menu is
2122 * platform/gtk/GtkPopupMenu.cpp:
2123 (WebCore::GtkPopupMenu::popUp): Schedule a resize of the popup
2124 menu right after showing it once it has a position.
2126 2013-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
2128 [GTK] Mark all deprecated symbols in GObject DOM bindings
2129 https://bugs.webkit.org/show_bug.cgi?id=124406
2131 Reviewed by Gustavo Noronha Silva.
2133 Move deprecated API from WebKitDOMCustom to a new file
2134 WebKitDOMDeprecated leaving in WebKitDOMCustom only the
2135 non-deprecated API that is not autogenerated. Also added the
2136 deprecation decorations and tags in the documentation.
2138 * bindings/gobject/GNUmakefile.am:
2139 * bindings/gobject/WebKitDOMCustom.cpp:
2140 * bindings/gobject/WebKitDOMCustom.h:
2141 * bindings/gobject/WebKitDOMCustom.symbols:
2142 * bindings/gobject/WebKitDOMDeprecated.cpp: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.cpp.
2143 (webkit_dom_blob_webkit_slice):
2144 (webkit_dom_html_element_get_id):
2145 (webkit_dom_html_element_set_id):
2146 (webkit_dom_html_element_get_class_name):
2147 (webkit_dom_html_element_set_class_name):
2148 (webkit_dom_html_element_get_class_list):
2149 (webkit_dom_html_form_element_dispatch_form_change):
2150 (webkit_dom_html_form_element_dispatch_form_input):
2151 (webkit_dom_webkit_named_flow_get_overflow):
2152 (webkit_dom_element_get_webkit_region_overflow):
2153 (webkit_dom_webkit_named_flow_get_content_nodes):
2154 (webkit_dom_webkit_named_flow_get_regions_by_content_node):
2155 (webkit_dom_bar_info_get_property):
2156 (webkit_dom_bar_info_class_init):
2157 (webkit_dom_bar_info_init):
2158 (webkit_dom_bar_info_get_visible):
2159 (webkit_dom_console_get_memory):
2160 (webkit_dom_css_style_declaration_get_property_css_value):
2161 (webkit_dom_document_get_webkit_hidden):
2162 (webkit_dom_document_get_webkit_visibility_state):
2163 (webkit_dom_html_document_open):
2164 (webkit_dom_html_element_set_item_id):
2165 (webkit_dom_html_element_get_item_id):
2166 (webkit_dom_html_element_get_item_ref):
2167 (webkit_dom_html_element_get_item_prop):
2168 (webkit_dom_html_element_set_item_scope):
2169 (webkit_dom_html_element_get_item_scope):
2170 (webkit_dom_html_element_get_item_type):
2171 (webkit_dom_html_style_element_set_scoped):
2172 (webkit_dom_html_style_element_get_scoped):
2173 (webkit_dom_html_properties_collection_get_property):
2174 (webkit_dom_html_properties_collection_class_init):
2175 (webkit_dom_html_properties_collection_init):
2176 (webkit_dom_html_properties_collection_item):
2177 (webkit_dom_html_properties_collection_named_item):
2178 (webkit_dom_html_properties_collection_get_length):
2179 (webkit_dom_html_properties_collection_get_names):
2180 (webkit_dom_node_get_attributes):
2181 (webkit_dom_node_has_attributes):
2182 (webkit_dom_memory_info_get_property):
2183 (webkit_dom_memory_info_class_init):
2184 (webkit_dom_memory_info_init):
2185 (webkit_dom_memory_info_get_total_js_heap_size):
2186 (webkit_dom_memory_info_get_used_js_heap_size):
2187 (webkit_dom_memory_info_get_js_heap_size_limit):
2188 (webkit_dom_micro_data_item_value_class_init):
2189 (webkit_dom_micro_data_item_value_init):
2190 (webkit_dom_performance_get_memory):
2191 (webkit_dom_property_node_list_get_property):
2192 (webkit_dom_property_node_list_class_init):
2193 (webkit_dom_property_node_list_init):
2194 (webkit_dom_property_node_list_item):
2195 (webkit_dom_property_node_list_get_length):
2196 (webkit_dom_html_media_element_get_start_time):
2197 (webkit_dom_html_media_element_get_initial_time):
2198 (webkit_dom_html_head_element_get_profile):
2199 (webkit_dom_html_head_element_set_profile):
2200 (webkit_dom_processing_instruction_get_data):
2201 (webkit_dom_processing_instruction_set_data):
2202 * bindings/gobject/WebKitDOMDeprecated.h: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.h.
2203 * bindings/gobject/WebKitDOMDeprecated.symbols: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.symbols.
2204 * bindings/scripts/CodeGeneratorGObject.pm:
2205 (GenerateFunction): Do not include deprecation guards in the cpp file.
2206 * bindings/scripts/gobject-generate-headers.pl: Do not create
2207 fordward declarations for non-existent classes like Custom and
2209 * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
2210 (webkit_dom_test_event_target_dispatch_event):
2212 2013-11-20 Jae Hyun Park <jae.park@company100.net>
2214 [CoordinatedGraphics] Use std::unique_ptrs rather than OwnPtrs
2215 https://bugs.webkit.org/show_bug.cgi?id=124692
2217 Reviewed by Noam Rosenthal.
2219 No new tests, covered by existing ones.
2221 * platform/graphics/TiledBackingStore.cpp:
2222 (WebCore::TiledBackingStore::TiledBackingStore):
2223 * platform/graphics/TiledBackingStore.h:
2224 * platform/graphics/TiledBackingStoreBackend.h:
2225 * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
2226 (WebCore::CoordinatedGraphicsLayer::createBackingStore):
2227 * platform/graphics/texmap/coordinated/CoordinatedTile.h:
2229 2013-11-20 Brady Eidson <beidson@apple.com>
2231 Add more infrastructure for ServerConnection communication between Web and Database processes
2232 https://bugs.webkit.org/show_bug.cgi?id=124693
2234 Reviewed by Anders Carlsson.
2238 2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
2240 Hoist <template> to head when found between </head> and <body> for consistency with <script>
2241 https://bugs.webkit.org/show_bug.cgi?id=123949
2243 Reviewed by Antti Koivisto.
2245 Merge https://chromium.googlesource.com/chromium/blink/+/835fb468fd211054a920fb7612a6dc5043662495
2247 Move template elements between head and body elements into the head to be consistent with script elements.
2248 The HTML5 specification was changed in http://html5.org/tools/web-apps-tracker?from=8217&to=8218.
2250 Inline comments below are cited from https://www.w3.org/Bugs/Public/show_bug.cgi?id=23002
2251 and https://codereview.chromium.org/25900003 for clarity.
2253 * html/parser/HTMLTreeBuilder.cpp:
2254 (WebCore::HTMLTreeBuilder::processStartTag): Add the template element to the list of elements to be hoisted into
2256 (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
2258 Replace the assertion that isParsingFragment is true when item->node() == m_tree.openElements()->rootNode() since,
2259 with this change, we can now invoke resetInsertionMode when parsing a normal document (not fragment) and there is
2260 only the html element on the stack of open elements.
2262 For the second change, consider: <head></head><template>
2264 This example breaks in the old HTML parser because the template element is handled by "after head" state which
2265 pushes the head element back on, processes the template element for "in head", then pops the head element off.
2266 EOF is reached, which processes a fake close tag for the template element, which pops the template element off
2267 and resets the insertion mode appropriately
2269 The problem here is that "reset the insertion mode" is going to inspect the bottom-most element on the stack which
2270 is now the html element and it will set the mode to "before head". Nothing good happens after this.
2272 We fix this problem by having the reset algorithm check if the head element pointer is set, and if so, go to after
2273 head instead of before head.
2275 2013-11-20 Radu Stavila <stavila@adobe.com>
2277 [CSS Regions] Implement visual overflow for first & last regions
2278 https://bugs.webkit.org/show_bug.cgi?id=118665
2280 In order to properly propagate the visual overflow of elements flowed inside regions,
2281 the responsiblity of painting and hit-testing content inside flow threads has been
2282 moved to the flow thread layer's level.
2283 Each region keeps the associated overflow with each box in the RenderBoxRegionInfo
2284 structure, including one for the flow thread itself. This data is used during
2285 painting and hit-testing.
2287 Reviewed by David Hyatt.
2289 Tests: fast/regions/overflow-first-and-last-regions-in-container-hidden.html
2290 fast/regions/overflow-first-and-last-regions.html
2291 fast/regions/overflow-nested-regions.html
2292 fast/regions/overflow-region-float.html
2293 fast/regions/overflow-region-inline.html
2294 fast/regions/overflow-region-transform.html
2296 * rendering/InlineFlowBox.cpp:
2297 (WebCore::InlineFlowBox::setLayoutOverflow):
2298 (WebCore::InlineFlowBox::setVisualOverflow):
2299 * rendering/InlineFlowBox.h:
2300 * rendering/RenderBlock.cpp:
2301 (WebCore::RenderBlock::addOverflowFromChildren):
2302 (WebCore::RenderBlock::paint):
2303 (WebCore::RenderBlock::paintObject):
2304 (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
2305 (WebCore::RenderBlock::updateRegionRangeForBoxChild):
2306 * rendering/RenderBlockFlow.cpp:
2307 (WebCore::RenderBlockFlow::hasNextPage):
2308 (WebCore::RenderBlockFlow::relayoutForPagination):
2309 * rendering/RenderBlockLineLayout.cpp:
2310 (WebCore::RenderBlockFlow::positionNewFloatOnLine):
2311 * rendering/RenderBox.cpp:
2312 (WebCore::RenderBox::borderBoxRectInRegion):
2313 (WebCore::RenderBox::computeRectForRepaint):
2314 (WebCore::RenderBox::addLayoutOverflow):
2315 (WebCore::RenderBox::addVisualOverflow):
2316 (WebCore::RenderBox::isUnsplittableForPagination):
2317 (WebCore::RenderBox::overflowRectForPaintRejection):
2318 * rendering/RenderBox.h:
2319 (WebCore::RenderBox::canHaveOutsideRegionRange):
2320 * rendering/RenderBoxModelObject.cpp:
2321 (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
2322 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2323 * rendering/RenderBoxModelObject.h:
2324 * rendering/RenderBoxRegionInfo.h:
2325 (WebCore::RenderBoxRegionInfo::createOverflow):
2326 * rendering/RenderFlowThread.cpp:
2327 (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
2328 (WebCore::RenderFlowThread::mapFromLocalToFlowThread):
2329 (WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
2330 (WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
2331 (WebCore::RenderFlowThread::flipForWritingModeLocalCoordinates):
2332 (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
2333 (WebCore::RenderFlowThread::addRegionsVisualOverflow):
2334 (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
2335 * rendering/RenderFlowThread.h:
2336 * rendering/RenderLayer.cpp:
2337 (WebCore::RenderLayer::updateLayerPositions):
2338 (WebCore::expandClipRectForRegionAndReflection):
2339 (WebCore::expandClipRectForDescendantsAndReflection):
2340 (WebCore::RenderLayer::paintLayer):
2341 (WebCore::RenderLayer::paintLayerContents):
2342 (WebCore::RenderLayer::updatePaintingInfoForFragments):
2343 (WebCore::RenderLayer::paintForegroundForFragments):
2344 (WebCore::RenderLayer::hitTest):
2345 (WebCore::RenderLayer::hitTestLayer):
2346 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
2347 (WebCore::RenderLayer::calculateClipRects):
2348 (WebCore::RenderLayer::parentClipRects):
2349 (WebCore::RenderLayer::calculateRects):
2350 (WebCore::RenderLayer::intersectsDamageRect):
2351 (WebCore::RenderLayer::updateDescendantsLayerListsIfNeeded):
2352 (WebCore::RenderLayer::repaintIncludingDescendants):
2353 (WebCore::RenderLayer::paintNamedFlowThreadInsideRegion):
2354 (WebCore::RenderLayer::paintFlowThreadIfRegion):
2355 (WebCore::RenderLayer::hitTestFlowThreadIfRegion):
2356 * rendering/RenderLayer.h:
2357 (WebCore::ClipRect::inflateX):
2358 (WebCore::ClipRect::inflateY):
2359 (WebCore::ClipRect::inflate):
2360 * rendering/RenderLayerCompositor.cpp:
2361 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2362 * rendering/RenderListItem.cpp:
2363 (WebCore::RenderListItem::addOverflowFromChildren):
2364 * rendering/RenderMultiColumnSet.cpp:
2365 (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
2366 (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
2367 * rendering/RenderMultiColumnSet.h:
2368 * rendering/RenderNamedFlowFragment.cpp:
2369 (WebCore::RenderNamedFlowFragment::createStyle):
2370 (WebCore::RenderNamedFlowFragment::namedFlowThread):
2371 * rendering/RenderNamedFlowFragment.h:
2372 * rendering/RenderOverflow.h:
2373 * rendering/RenderRegion.cpp:
2374 (WebCore::RenderRegion::flowThreadPortionOverflowRect):
2375 (WebCore::RenderRegion::flowThreadPortionLocation):
2376 (WebCore::RenderRegion::regionContainerLayer):
2377 (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
2378 (WebCore::RenderRegion::computeOverflowFromFlowThread):
2379 (WebCore::RenderRegion::repaintFlowThreadContent):
2380 (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
2381 (WebCore::RenderRegion::insertedIntoTree):
2382 (WebCore::RenderRegion::ensureOverflowForBox):
2383 (WebCore::RenderRegion::rectFlowPortionForBox):
2384 (WebCore::RenderRegion::addLayoutOverflowForBox):
2385 (WebCore::RenderRegion::addVisualOverflowForBox):
2386 (WebCore::RenderRegion::layoutOverflowRectForBox):
2387 (WebCore::RenderRegion::visualOverflowRectForBox):
2388 (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
2389 * rendering/RenderRegion.h:
2390 * rendering/RenderReplaced.cpp:
2391 (WebCore::RenderReplaced::shouldPaint):
2392 * rendering/RootInlineBox.cpp:
2393 (WebCore::RootInlineBox::paint):
2395 2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
2397 [HTML parser] reset insertion mode appropriate must check for "in select in table" mode
2398 https://bugs.webkit.org/show_bug.cgi?id=123850
2400 Reviewed by Antti Koivisto.
2402 Merge https://chromium.googlesource.com/chromium/blink/+/2cb7523df57dfb48111f6aa16b7138cd54024ba7
2404 The HTML specification has been updated to detect encountering a template element inside of a select element,
2405 which in turn is inside of a table element. In this case, the select element will cause the parser to be in
2406 "InSelectInTable" mode. Thus when the template element closes, it should return to that mode.
2408 The fix here is that resetInsertionModeAppropriately must continue looking up the stack if the first node is
2409 select element to see whether the select element is inside of a table element.
2411 See also: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#reset-the-insertion-mode-appropriately
2413 Test: html5lib/resources/template.dat
2415 * html/parser/HTMLTreeBuilder.cpp:
2416 (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
2418 2013-11-20 Mark Lam <mark.lam@apple.com>
2420 Build fix for last commit.
2421 https://bugs.webkit.org/show_bug.cgi?id=124634.
2427 * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2429 2013-11-20 Mark Lam <mark.lam@apple.com>
2431 Introducing VMEntryScope to update the VM stack limit.
2432 https://bugs.webkit.org/show_bug.cgi?id=124634.
2434 Reviewed by Geoffrey Garen.
2438 Renamed dynamicGlobalObject() to vmEntryGlobalObject().
2439 Replaced uses of DynamicGlobalObjectScope with VMEntryScope.
2441 * ForwardingHeaders/runtime/VMEntryScope.h: Added.
2442 * WebCore.vcxproj/WebCore.vcxproj:
2443 * WebCore.vcxproj/WebCore.vcxproj.filters:
2444 * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2445 (WebCore::JSCryptoAlgorithmBuilder::add):
2446 * bindings/js/JSCustomXPathNSResolver.cpp:
2447 (WebCore::JSCustomXPathNSResolver::create):
2448 * bindings/js/JSDOMBinding.cpp:
2449 (WebCore::firstDOMWindow):
2450 * bindings/js/JSErrorHandler.cpp:
2451 (WebCore::JSErrorHandler::handleEvent):
2452 * bindings/js/JSEventListener.cpp:
2453 (WebCore::JSEventListener::handleEvent):
2454 * bindings/js/JavaScriptCallFrame.h:
2455 (WebCore::JavaScriptCallFrame::vmEntryGlobalObject):
2456 * bindings/js/PageScriptDebugServer.cpp:
2457 (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
2458 * bindings/js/ScriptDebugServer.cpp:
2459 (WebCore::ScriptDebugServer::evaluateBreakpointAction):
2460 (WebCore::ScriptDebugServer::handlePause):
2461 * bindings/js/WorkerScriptDebugServer.cpp:
2462 (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
2463 * bindings/objc/WebScriptObject.mm:
2464 (WebCore::addExceptionToConsole):
2465 * bridge/c/c_utility.cpp:
2466 (JSC::Bindings::convertValueToNPVariant):
2467 * bridge/objc/objc_instance.mm:
2468 (ObjcInstance::moveGlobalExceptionToExecState):
2469 * bridge/objc/objc_runtime.mm:
2470 (JSC::Bindings::convertValueToObjcObject):
2471 * bridge/objc/objc_utility.mm:
2472 (JSC::Bindings::convertValueToObjcValue):
2474 2013-11-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2476 Generate toHTMLFooElement() to clean up static_cast<>
2477 https://bugs.webkit.org/show_bug.cgi?id=124571
2479 Reviewed by Ryosuke Niwa.
2481 Though there are a lot of clean up commits before, there are still
2482 use of static_cast<HTMLFooElement*>. To clean up them, we need to generate
2483 toHTMLDetails|Meta|Summary|TableCaptionElement().
2485 Additionally, other static_cast<> are removed as well.
2487 No new tests, no behavior changes.
2489 * html/HTMLDetailsElement.h:
2490 * html/HTMLMediaElement.cpp:
2491 (HTMLMediaElement::selectNextSourceChild):
2492 * html/HTMLMetaElement.h:
2493 * html/HTMLObjectElement.cpp:
2494 (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
2495 * html/HTMLOptionElement.cpp:
2496 (WebCore::HTMLOptionElement::isDisabledFormControl):
2497 * html/HTMLPlugInImageElement.cpp:
2498 (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
2499 * html/HTMLSummaryElement.cpp:
2500 (WebCore::HTMLSummaryElement::detailsElement):
2501 * html/HTMLSummaryElement.h:
2502 * html/HTMLTableCaptionElement.h:
2503 * html/HTMLTableElement.cpp:
2504 (WebCore::HTMLTableElement::caption):
2505 * html/HTMLTagNames.in:
2506 * html/MediaDocument.cpp:
2507 (WebCore::MediaDocumentParser::createDocumentStructure):
2508 * html/shadow/DetailsMarkerControl.cpp:
2509 (WebCore::DetailsMarkerControl::summaryElement):
2510 * loader/FrameLoader.cpp:
2511 (WebCore::FrameLoader::handleFallbackContent):
2512 * loader/ImageLoader.cpp:
2513 (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
2514 * page/DragController.cpp:
2515 (WebCore::DragController::canProcessDrag):
2517 (WebCore::Frame::searchForLabelsBeforeElement):
2518 * page/SpatialNavigation.cpp:
2519 (WebCore::frameOwnerElement):
2521 2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
2523 Clear TemplateContentDocumentFragment::m_host when HTMLTemplateElement is destroyed
2524 https://bugs.webkit.org/show_bug.cgi?id=122806
2526 Reviewed by Antti Koivisto.
2528 Merge https://chromium.googlesource.com/chromium/blink/+/858ed5f6341de9d900768c1f4668fcfce870c52e
2530 The document fragment of a template element outlives the element itself.
2531 Clear the host property on the document fragment when that happens.
2533 Test: fast/dom/HTMLTemplateElement/content-outlives-template-crash.html
2535 * dom/TemplateContentDocumentFragment.h:
2536 * html/HTMLTemplateElement.cpp:
2537 (WebCore::HTMLTemplateElement::~HTMLTemplateElement):
2538 * html/HTMLTemplateElement.h:
2540 2013-11-20 Chris Fleizach <cfleizach@apple.com>
2542 AX: Implement CSS -webkit-alt property (text alternative for generated content pseudo-elements ::before and ::after)
2543 https://bugs.webkit.org/show_bug.cgi?id=120188
2545 Reviewed by Dean Jackson.
2547 Add a -webkit-alt CSS property that can be used to label Image content or Text content for accessibility clients.
2549 To accomplish this, it sets the string in the RenderStyle. Then when the ContentData creates an anonymous renderer,
2550 it sets that string on the TextFragment or RenderImage, which can be queried by accessibility code.
2552 Test: platform/mac/accessibility/webkit-alt-for-css-content.html
2554 * accessibility/AccessibilityNodeObject.cpp:
2555 (WebCore::AccessibilityNodeObject::alternativeText):
2556 * accessibility/AccessibilityRenderObject.cpp:
2557 (WebCore::AccessibilityRenderObject::textUnderElement):
2558 (WebCore::objectInclusionFromAltText):
2559 (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
2560 * css/CSSComputedStyleDeclaration.cpp:
2561 (WebCore::altTextToCSSValue):
2562 (WebCore::ComputedStyleExtractor::propertyValue):
2563 * css/CSSParser.cpp:
2564 (WebCore::CSSParser::parseValue):
2565 (WebCore::CSSParser::parseAlt):
2567 * css/CSSPropertyNames.in:
2568 * css/StyleResolver.cpp:
2569 (WebCore::StyleResolver::applyProperty):
2570 * rendering/RenderImage.h:
2571 (WebCore::RenderImage::altText):
2572 (WebCore::RenderImage::setAltText):
2573 * rendering/RenderTextFragment.h:
2574 * rendering/style/ContentData.cpp:
2575 (WebCore::ImageContentData::createRenderer):
2576 (WebCore::TextContentData::createRenderer):
2577 * rendering/style/ContentData.h:
2578 (WebCore::ContentData::setAltText):
2579 (WebCore::ContentData::altText):
2580 * rendering/style/RenderStyle.cpp:
2581 (WebCore::RenderStyle::setContent):
2582 (WebCore::RenderStyle::setContentAltText):
2583 (WebCore::RenderStyle::contentAltText):
2584 * rendering/style/RenderStyle.h:
2585 * rendering/style/StyleRareNonInheritedData.h:
2587 2013-11-20 Roger Fong <roger_fong@apple.com>
2589 Use compile flag SH_UNFOLD_SHORT_CIRCUIT when compiling shaders.
2590 https://bugs.webkit.org/show_bug.cgi?id=124684.
2592 Reviewed by Brent Fulgham.
2594 Existing test webgl/1.0.2/conformance/glsl/misc/shader-with-short-circuiting-operators.html
2596 * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2597 (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
2599 2013-11-20 Robert Sipka <sipka@inf.u-szeged.hu>
2601 [curl] Improve detecting and handling of SSL related errors
2602 https://bugs.webkit.org/show_bug.cgi?id=119436
2604 Reviewed by Brent Fulgham.
2606 Set the exact SSL verification error on CURL
2607 and store the enabled domain with certificate.
2609 * WebCore.vcxproj/WebCore.vcxproj:
2610 * WebCore.vcxproj/WebCore.vcxproj.filters:
2611 * platform/network/ResourceHandle.h:
2612 * platform/network/ResourceHandleInternal.h:
2613 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2614 * platform/network/curl/ResourceError.h:
2615 (WebCore::ResourceError::ResourceError):
2616 (WebCore::ResourceError::sslErrors):
2617 (WebCore::ResourceError::setSSLErrors):
2618 * platform/network/curl/ResourceHandleCurl.cpp:
2619 (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
2620 * platform/network/curl/ResourceHandleManager.cpp:
2621 (WebCore::ResourceHandleManager::downloadTimerCallback):
2622 (WebCore::ResourceHandleManager::initializeHandle):
2623 * platform/network/curl/SSLHandle.cpp: Added.
2624 (WebCore::allowsAnyHTTPSCertificateHosts):
2625 (WebCore::sslIgnoreHTTPSCertificate):
2626 (WebCore::sslCertificateFlag):
2628 (WebCore::certVerifyCallback):
2629 (WebCore::sslctxfun):
2630 (WebCore::setSSLVerifyOptions):
2631 * platform/network/curl/SSLHandle.h: Added.
2633 2013-11-20 Bem Jones-Bey <bjonesbe@adobe.com>
2635 [css shapes] Parse new circle shape syntax
2636 https://bugs.webkit.org/show_bug.cgi?id=124618
2638 Reviewed by Antti Koivisto.
2640 Implement parsing of the new cicle shape syntax. The implementation of
2641 the old syntax has been move aside as deprecated, and will be removed
2642 once the new syntax is stable.
2644 Updated existing parsing tests to cover this.
2646 * css/BasicShapeFunctions.cpp:
2647 (WebCore::valueForCenterCoordinate): Create a CSSPrimitiveValue from a
2648 BasicShapeCenterCoordinate.
2649 (WebCore::valueForBasicShape): Convert new basic shape and rename old
2651 (WebCore::convertToCenterCoordinate): Create a
2652 BasicShapeCenterCoordinate from a CSSPrimitiveValue.
2653 (WebCore::basicShapeForValue): Convert new shape value and rename old
2655 * css/CSSBasicShapes.cpp:
2656 (WebCore::buildCircleString): Build a new circle string.
2657 (WebCore::CSSBasicShapeCircle::cssText): Serialize the new circle
2659 (WebCore::CSSBasicShapeCircle::equals): Compare new circle shapes.
2660 (WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
2661 * css/CSSBasicShapes.h:
2662 (WebCore::CSSBasicShapeCircle::CSSBasicShapeCircle): Add class for new
2664 (WebCore::CSSDeprecatedBasicShapeCircle::create): Renamed to move out
2665 of the way of the new circle implementation.
2666 (WebCore::CSSDeprecatedBasicShapeCircle::centerX): Ditto.
2667 (WebCore::CSSDeprecatedBasicShapeCircle::centerY): Ditto.
2668 (WebCore::CSSDeprecatedBasicShapeCircle::radius): Ditto.
2669 (WebCore::CSSDeprecatedBasicShapeCircle::setCenterX): Ditto.
2670 (WebCore::CSSDeprecatedBasicShapeCircle::setCenterY): Ditto.
2671 (WebCore::CSSDeprecatedBasicShapeCircle::setRadius): Ditto.
2672 (WebCore::CSSDeprecatedBasicShapeCircle::CSSDeprecatedBasicShapeCircle): Ditto.
2673 * css/CSSParser.cpp:
2674 (WebCore::CSSParser::parseShapeRadius): Parse the radius for the new
2675 circle syntax. Will also be used by the new ellipse syntax.
2676 (WebCore::CSSParser::parseBasicShapeCircle): Parse the new circle
2678 (WebCore::CSSParser::parseDeprecatedBasicShapeCircle): Rename to make
2679 way for the new implementation.
2680 (WebCore::isDeprecatedBasicShape): Check if we have a new circle or an
2682 (WebCore::CSSParser::parseBasicShape): Update to parse the new circle
2685 * css/CSSValueKeywords.in: Add support for the new circle keywords.
2686 * rendering/shapes/Shape.cpp:
2687 (WebCore::Shape::createShape):
2688 * rendering/style/BasicShapes.cpp: Deprecate old circle and add stub
2690 (WebCore::DeprecatedBasicShapeCircle::path): Rename to make way for
2691 the new implementation.
2692 (WebCore::DeprecatedBasicShapeCircle::blend): Rename to make way for
2693 the new implementation.
2694 (WebCore::BasicShapeCircle::path): Create path for new circle shape.
2695 (WebCore::BasicShapeCircle::blend): Interpolate the new circle shape.
2696 * rendering/style/BasicShapes.h:
2697 (WebCore::BasicShapeCenterCoordinate::BasicShapeCenterCoordinate):
2698 Represent an x or y coordinate for the center of a new circle,
2699 since it can be either a keyword along with an offset that cannot
2700 be resolved until layout time or an ordinary Length. This will
2701 also be used by the new ellipse implementation.
2702 (WebCore::BasicShapeCenterCoordinate::keyword):
2703 (WebCore::BasicShapeCenterCoordinate::length):
2704 (WebCore::BasicShapeCenterCoordinate::blend): Interpolate.
2705 (WebCore::BasicShapeRadius::BasicShapeRadius): Represent the radius of
2706 a new circle shape since it can either be a straightforward Length or
2707 a keyword that cannot be resolved until layout time.
2708 (WebCore::BasicShapeRadius::value):
2709 (WebCore::BasicShapeRadius::type):
2710 (WebCore::BasicShapeRadius::blend): Interpolate.
2711 (WebCore::BasicShapeCircle::centerX):
2712 (WebCore::BasicShapeCircle::centerY):
2713 (WebCore::BasicShapeCircle::radius):
2714 (WebCore::BasicShapeCircle::setCenterX):
2715 (WebCore::BasicShapeCircle::setCenterY):
2716 (WebCore::BasicShapeCircle::setRadius):
2717 (WebCore::BasicShapeCircle::BasicShapeCircle): New circle class.
2718 (WebCore::DeprecatedBasicShapeCircle::create): Rename to make room for
2719 new circle implementation.
2720 (WebCore::DeprecatedBasicShapeCircle::DeprecatedBasicShapeCircle): Ditto.
2722 2013-11-20 Hans Muller <hmuller@adobe.com>
2724 [CSS Shapes] Add BoxShape and FloatRoundingRect classes
2725 https://bugs.webkit.org/show_bug.cgi?id=124368
2727 Reviewed by Dean Jackson.
2729 Added the BoxShape class. It's now used to represent shape-outside box
2730 values: [margin/border/padding/content]-box. BoxShape depends on a new
2731 FloatRoundedRect class, which is a float analog of the existing (int)
2732 RoundedRect class. The FloatRoundedRect class contains the same basic
2733 methods and accessors as BorderRect and adds a set of four methods,
2734 for example topLeftCorner(), that return a FloatRect that represents the
2735 bounds of one elliptical corner. I also added a method, xInterceptsAtY()
2736 that returns two X coordinates of the intersection between a horizontal
2737 line and the rounded rectangle.
2739 No new tests, this is just an internal refactoring.
2742 * GNUmakefile.list.am:
2743 * WebCore.vcxproj/WebCore.vcxproj:
2744 * WebCore.vcxproj/WebCore.vcxproj.filters:
2745 * WebCore.xcodeproj/project.pbxproj:
2746 * platform/graphics/FloatRoundedRect.cpp: Added.
2747 (WebCore::FloatRoundedRect::FloatRoundedRect):
2748 (WebCore::FloatRoundedRect::Radii::isZero):
2749 (WebCore::FloatRoundedRect::Radii::scale):
2750 (WebCore::FloatRoundedRect::Radii::expand):
2751 (WebCore::cornerRectIntercept):
2752 (WebCore::FloatRoundedRect::xInterceptsAtY):
2753 * platform/graphics/FloatRoundedRect.h: Added.
2754 (WebCore::FloatRoundedRect::Radii::Radii):
2755 (WebCore::FloatRoundedRect::Radii::setTopLeft):
2756 (WebCore::FloatRoundedRect::Radii::setTopRight):
2757 (WebCore::FloatRoundedRect::Radii::setBottomLeft):
2758 (WebCore::FloatRoundedRect::Radii::setBottomRight):
2759 (WebCore::FloatRoundedRect::Radii::topLeft):
2760 (WebCore::FloatRoundedRect::Radii::topRight):
2761 (WebCore::FloatRoundedRect::Radii::bottomLeft):
2762 (WebCore::FloatRoundedRect::Radii::bottomRight):
2763 (WebCore::FloatRoundedRect::Radii::expand):
2764 (WebCore::FloatRoundedRect::Radii::shrink):
2765 (WebCore::FloatRoundedRect::rect):
2766 (WebCore::FloatRoundedRect::radii):
2767 (WebCore::FloatRoundedRect::isRounded):
2768 (WebCore::FloatRoundedRect::isEmpty):
2769 (WebCore::FloatRoundedRect::setRect):
2770 (WebCore::FloatRoundedRect::setRadii):
2771 (WebCore::FloatRoundedRect::move):
2772 (WebCore::FloatRoundedRect::inflate):
2773 (WebCore::FloatRoundedRect::expandRadii):
2774 (WebCore::FloatRoundedRect::shrinkRadii):
2775 (WebCore::FloatRoundedRect::topLeftCorner):
2776 (WebCore::FloatRoundedRect::topRightCorner):
2777 (WebCore::FloatRoundedRect::bottomLeftCorner):
2778 (WebCore::FloatRoundedRect::bottomRightCorner):
2779 (WebCore::operator==):
2780 * rendering/shapes/BoxShape.cpp: Added.
2781 (WebCore::BoxShape::BoxShape):
2782 (WebCore::BoxShape::getExcludedIntervals):
2783 (WebCore::BoxShape::getIncludedIntervals):
2784 (WebCore::BoxShape::firstIncludedIntervalLogicalTop):
2785 * rendering/shapes/BoxShape.h: Added.
2786 * rendering/shapes/Shape.cpp:
2787 (WebCore::createBoxShape):
2788 (WebCore::Shape::createShape):
2790 2013-11-20 Antti Koivisto <antti@apple.com>
2792 Simple line layout should support floats
2793 https://bugs.webkit.org/show_bug.cgi?id=124666
2795 Reviewed by Dave Hyatt.
2797 Tests: fast/text/simple-lines-float-compare.html
2798 fast/text/simple-lines-float.html
2800 * rendering/line/LineWidth.h:
2801 (WebCore::LineWidth::logicalLeftOffset):
2803 Expose the left offset so we don't need to recompute it.
2805 * rendering/SimpleLineLayout.cpp:
2806 (WebCore::SimpleLineLayout::canUseFor):
2807 (WebCore::SimpleLineLayout::computeLineLeft):
2809 Include the left offset from floats.
2811 (WebCore::SimpleLineLayout::createTextRuns):
2813 Keep the flow height updated during the loop as LineWidth reads the current position from there.
2815 * rendering/SimpleLineLayoutResolver.h:
2816 (WebCore::SimpleLineLayout::RunResolver::Run::rect):
2817 (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
2818 (WebCore::SimpleLineLayout::RunResolver::RunResolver):
2819 (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
2821 We now bake the border and the padding to the line left offset. No need to add it during resolve.
2823 2013-11-20 Alexey Proskuryakov <ap@apple.com>
2825 Use std::function callbacks in CryptoAlgorithm instead of JS promises
2826 https://bugs.webkit.org/show_bug.cgi?id=124673
2828 Reviewed by Anders Carlsson.
2830 To implement key wrapping/unwrapping, we'll need to chain existing operations.
2831 It's much easier to do with C++ callbacks than with functions fulfilling JS
2834 Also, this will decouple CryptoAlgorithm from JS, which is nice.
2836 SubtleCrypto IDL says that all functions return Promise<any>, but in reality,
2837 there is very little polymorphism, the only function whose return type depends
2838 on algorithm is generateKey (it can create a Key or a KeyPair).
2840 * bindings/js/JSDOMPromise.cpp:
2841 (WebCore::PromiseWrapper::PromiseWrapper):
2842 (WebCore::PromiseWrapper::operator=):
2843 * bindings/js/JSDOMPromise.h:
2844 Made it copyable, as each crypto function wraps the promise in success and failure
2845 functional objects now.
2847 * bindings/js/JSSubtleCryptoCustom.cpp:
2848 (WebCore::JSSubtleCrypto::encrypt):
2849 (WebCore::JSSubtleCrypto::decrypt):
2850 (WebCore::JSSubtleCrypto::sign):
2851 (WebCore::JSSubtleCrypto::verify):
2852 (WebCore::JSSubtleCrypto::digest):
2853 (WebCore::JSSubtleCrypto::generateKey):
2854 (WebCore::JSSubtleCrypto::importKey):
2855 (WebCore::JSSubtleCrypto::exportKey):
2856 * crypto/CryptoAlgorithm.cpp:
2857 (WebCore::CryptoAlgorithm::encrypt):
2858 (WebCore::CryptoAlgorithm::decrypt):
2859 (WebCore::CryptoAlgorithm::sign):
2860 (WebCore::CryptoAlgorithm::verify):
2861 (WebCore::CryptoAlgorithm::digest):
2862 (WebCore::CryptoAlgorithm::generateKey):
2863 (WebCore::CryptoAlgorithm::deriveKey):
2864 (WebCore::CryptoAlgorithm::deriveBits):
2865 (WebCore::CryptoAlgorithm::importKey):
2866 * crypto/CryptoAlgorithm.h:
2867 * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
2868 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
2869 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
2870 * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
2871 (WebCore::CryptoAlgorithmAES_CBC::generateKey):
2872 (WebCore::CryptoAlgorithmAES_CBC::importKey):
2873 * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
2874 * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
2875 (WebCore::CryptoAlgorithmHMAC::generateKey):
2876 (WebCore::CryptoAlgorithmHMAC::importKey):
2877 * crypto/algorithms/CryptoAlgorithmHMAC.h:
2878 * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
2879 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
2880 (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
2881 * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
2882 * crypto/algorithms/CryptoAlgorithmSHA1.cpp:
2883 (WebCore::CryptoAlgorithmSHA1::digest):
2884 * crypto/algorithms/CryptoAlgorithmSHA1.h:
2885 * crypto/algorithms/CryptoAlgorithmSHA224.cpp:
2886 (WebCore::CryptoAlgorithmSHA224::digest):
2887 * crypto/algorithms/CryptoAlgorithmSHA224.h:
2888 * crypto/algorithms/CryptoAlgorithmSHA256.cpp:
2889 (WebCore::CryptoAlgorithmSHA256::digest):
2890 * crypto/algorithms/CryptoAlgorithmSHA256.h:
2891 * crypto/algorithms/CryptoAlgorithmSHA384.cpp:
2892 (WebCore::CryptoAlgorithmSHA384::digest):
2893 * crypto/algorithms/CryptoAlgorithmSHA384.h:
2894 * crypto/algorithms/CryptoAlgorithmSHA512.cpp:
2895 (WebCore::CryptoAlgorithmSHA512::digest):
2896 * crypto/algorithms/CryptoAlgorithmSHA512.h:
2897 * crypto/keys/CryptoKeyRSA.h:
2898 * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2899 (WebCore::transformAES_CBC):
2900 (WebCore::CryptoAlgorithmAES_CBC::encrypt):
2901 (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2902 * crypto/mac/CryptoAlgorithmHMACMac.cpp:
2903 (WebCore::CryptoAlgorithmHMAC::sign):
2904 (WebCore::CryptoAlgorithmHMAC::verify):
2905 * crypto/mac/CryptoKeyRSAMac.cpp:
2906 (WebCore::CryptoKeyRSA::generatePair):
2908 2013-11-20 Robert Hogan <robert@webkit.org>
2910 REGRESSION(r127163): Respect clearance set on ancestors when placing floats
2911 https://bugs.webkit.org/show_bug.cgi?id=119979
2913 Reviewed by David Hyatt.
2915 Refactor the way self-collapsing blocks with clearance are positioned so that they
2916 get the correct logical-top position during margin-collapsing.
2918 Test: fast/block/margin-collapse/self-collapsing-block-with-float-descendants.html
2920 * rendering/RenderBlockFlow.cpp:
2921 (WebCore::RenderBlockFlow::clearFloats):
2922 (WebCore::RenderBlockFlow::marginOffsetForSelfCollapsingBlock):
2923 (WebCore::RenderBlockFlow::collapseMargins):
2924 (WebCore::RenderBlockFlow::clearFloatsIfNeeded):
2925 (WebCore::RenderBlockFlow::handleAfterSideOfBlock):
2926 * rendering/RenderBlockFlow.h:
2928 2013-11-20 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2930 [GTK] Remove Chromium as user agent and claim to be Safari in OS X
2931 https://bugs.webkit.org/show_bug.cgi?id=124229
2933 Reviewed by Martin Robinson.
2935 http://www.duolingo.com/ doesn't get render correctly because it uses
2936 Chrome/Chromium specific variables, added after it was forked. Because
2937 of this, it is necessary to remove the Chrome/Chromium identification
2938 in the user agent. Also, from now on, by default, The GTK+ port will
2939 claim to be Safari in OS X to avoid loading wrong resources.
2941 * platform/gtk/UserAgentGtk.cpp:
2942 (WebCore::standardUserAgent):
2944 2013-11-20 Commit Queue <commit-queue@webkit.org>
2946 Unreviewed, rolling out r159551.
2947 http://trac.webkit.org/changeset/159551
2948 https://bugs.webkit.org/show_bug.cgi?id=124669
2950 made many tests asserts (Requested by anttik on #webkit).
2952 * html/HTMLDetailsElement.h:
2953 * html/HTMLMediaElement.cpp:
2954 (HTMLMediaElement::selectNextSourceChild):
2955 * html/HTMLMetaElement.h:
2956 * html/HTMLObjectElement.cpp:
2957 (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
2958 * html/HTMLOptionElement.cpp:
2959 (WebCore::HTMLOptionElement::isDisabledFormControl):
2960 * html/HTMLPlugInImageElement.cpp:
2961 (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
2962 * html/HTMLSummaryElement.cpp:
2963 (WebCore::HTMLSummaryElement::detailsElement):
2964 * html/HTMLSummaryElement.h:
2965 * html/HTMLTableCaptionElement.h:
2966 * html/HTMLTableElement.cpp:
2967 (WebCore::HTMLTableElement::caption):
2968 (WebCore::HTMLTableElement::tHead):
2969 (WebCore::HTMLTableElement::tFoot):
2970 (WebCore::HTMLTableElement::lastBody):
2971 * html/HTMLTableRowElement.cpp:
2972 (WebCore::HTMLTableRowElement::rowIndex):
2973 * html/HTMLTableSectionElement.h:
2974 * html/HTMLTagNames.in:
2975 * html/MediaDocument.cpp:
2976 (WebCore::MediaDocumentParser::createDocumentStructure):
2977 * html/shadow/DetailsMarkerControl.cpp:
2978 (WebCore::DetailsMarkerControl::summaryElement):
2979 * loader/FrameLoader.cpp:
2980 (WebCore::FrameLoader::handleFallbackContent):
2981 * loader/ImageLoader.cpp:
2982 (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
2983 * page/DragController.cpp:
2984 (WebCore::DragController::canProcessDrag):
2986 (WebCore::Frame::searchForLabelsBeforeElement):
2987 * page/SpatialNavigation.cpp:
2988 (WebCore::frameOwnerElement):
2990 2013-11-20 Zoltan Horvath <zoltan@webkit.org>
2992 Move LineWidth.{h,cpp} into rendering/line
2993 <https://webkit.org/b/124448>
2995 Reviewed by David Hyatt.
2997 In r159354 I introduced line directory. Now it's time to move the helper classes of RenderBlockLineLayout into 'line' subdirectory.
2999 No new tests, no behavior change.
3002 * GNUmakefile.list.am:
3003 * WebCore.vcxproj/WebCore.vcxproj:
3004 * WebCore.vcxproj/WebCore.vcxproj.filters:
3005 * WebCore.xcodeproj/project.pbxproj:
3006 * rendering/line/LineWidth.cpp: Renamed from Source/WebCore/rendering/LineWidth.cpp.
3007 (WebCore::LineWidth::LineWidth):
3008 (WebCore::LineWidth::fitsOnLine):
3009 (WebCore::LineWidth::fitsOnLineIncludingExtraWidth):
3010 (WebCore::LineWidth::fitsOnLineExcludingTrailingWhitespace):
3011 (WebCore::LineWidth::updateAvailableWidth):
3012 (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
3013 (WebCore::LineWidth::commit):
3014 (WebCore::LineWidth::applyOverhang):
3015 (WebCore::LineWidth::fitBelowFloats):
3016 (WebCore::LineWidth::setTrailingWhitespaceWidth):
3017 (WebCore::LineWidth::updateCurrentShapeSegment):
3018 (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
3019 (WebCore::LineWidth::fitsOnLineExcludingTrailingCollapsedWhitespace):
3020 * rendering/line/LineWidth.h: Renamed from Source/WebCore/rendering/LineWidth.h.
3021 (WebCore::LineWidth::currentWidth):
3022 (WebCore::LineWidth::uncommittedWidth):
3023 (WebCore::LineWidth::committedWidth):
3024 (WebCore::LineWidth::availableWidth):
3025 (WebCore::LineWidth::addUncommittedWidth):
3026 (WebCore::LineWidth::shouldIndentText):
3028 2013-11-20 Brady Eidson <beidson@apple.com>
3030 Alphabetization followup to r159567
3032 Reviewed by style-bot :(
3034 * Modules/indexeddb/IDBDatabaseBackend.h:
3035 * Modules/indexeddb/IDBIndex.h:
3036 * Modules/indexeddb/IDBObjectStore.h:
3037 * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3038 * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3039 * inspector/InspectorIndexedDBAgent.cpp:
3041 2013-11-20 Brady Eidson <beidson@apple.com>
3043 Rename IDBMetadata.h to IDBDatabaseMetadata.h
3044 https://bugs.webkit.org/show_bug.cgi?id=124668
3046 Reviewed by Dean Jackson.
3048 * GNUmakefile.list.am:
3049 * WebCore.xcodeproj/project.pbxproj:
3051 * Modules/indexeddb/IDBDatabase.h:
3052 * Modules/indexeddb/IDBDatabaseBackend.h:
3054 * Modules/indexeddb/IDBDatabaseMetadata.h: Renamed from Source/WebCore/Modules/indexeddb/IDBMetadata.h.
3055 (WebCore::IDBIndexMetadata::IDBIndexMetadata):
3056 (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
3057 (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
3059 * Modules/indexeddb/IDBIndex.h:
3060 * Modules/indexeddb/IDBObjectStore.h:
3061 * Modules/indexeddb/IDBServerConnection.h:
3062 * Modules/indexeddb/IDBTransaction.h:
3063 * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3064 * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3065 * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h:
3066 * inspector/InspectorIndexedDBAgent.cpp:
3068 2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
3070 Remove bogus assertions in updateNameForTreeScope and updateNameForDocument
3071 https://bugs.webkit.org/show_bug.cgi?id=124639
3073 Reviewed by Darin Adler.
3075 Removed assertions. We can't assert that the element in a tree scope or a document
3076 since these two functions are called from removedFrom.
3079 (WebCore::Element::updateNameForTreeScope):
3080 (WebCore::Element::updateNameForDocument):
3082 2013-11-20 Brady Eidson <beidson@apple.com>
3084 Cleanup getOrEstablishIDBDatabaseMetadata and stub it out in WK2
3085 https://bugs.webkit.org/show_bug.cgi?id=124635
3087 Reviewed by Tim Horton.
3089 getOrEstablishIDBDatabaseMetadata() should not have to take a database name parameter because the
3090 server connection should already know what database name it represents.
3092 * Modules/indexeddb/IDBDatabaseBackend.cpp:
3093 (WebCore::IDBDatabaseBackend::openInternalAsync):
3095 * Modules/indexeddb/IDBServerConnection.h:
3096 * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3097 (WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
3098 (WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
3099 * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
3101 * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
3102 (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
3103 (WebCore::IDBFactoryBackendLevelDB::open):
3105 2013-11-20 Andrzej Badowski <a.badowski@samsung.com>
3107 [EFL] <video> and <audio> should be accessible.
3108 https://bugs.webkit.org/show_bug.cgi?id=124494
3110 Reviewed by Gyuyoung Kim.
3112 Adding descriptions of media-element controls.
3114 * platform/efl/LocalizedStringsEfl.cpp:
3115 (WebCore::localizedMediaControlElementString):
3117 2013-11-20 Antti Koivisto <antti@apple.com>
3119 Don't paint simple text runs outside the paint rect
3120 https://bugs.webkit.org/show_bug.cgi?id=124651
3122 Reviewed by Anders Carlsson.
3124 This speeds up partial paints for long text paragraphs.
3125 Also add the same optimization for hit testing.
3127 * rendering/SimpleLineLayoutFunctions.cpp:
3128 (WebCore::SimpleLineLayout::paintFlow):
3130 Iterate over the run range that needs painting.
3132 (WebCore::SimpleLineLayout::hitTestFlow):
3134 Iterate over the line range that needs painting.
3136 * rendering/SimpleLineLayoutResolver.h:
3137 (WebCore::SimpleLineLayout::Range::Range):
3138 (WebCore::SimpleLineLayout::Range::begin):
3139 (WebCore::SimpleLineLayout::Range::end):
3143 (WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
3144 (WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
3145 (WebCore::SimpleLineLayout::RunResolver::Iterator::advance):
3146 (WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines):
3148 Optimize case where runCount==lineCount. In this case we can just directly jump
3149 to the right run/line.
3151 (WebCore::SimpleLineLayout::RunResolver::begin):
3152 (WebCore::SimpleLineLayout::RunResolver::end):
3153 (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
3154 (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
3156 Get the range corresponding to a rect. This currently cares about y coordinates only.
3158 (WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
3159 (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
3160 (WebCore::SimpleLineLayout::LineResolver::rangeForRect):
3162 2013-11-20 Antoine Quint <graouts@apple.com>
3164 Cannot animate "points" attribute for <svg:polygon>
3165 https://bugs.webkit.org/show_bug.cgi?id=21371
3167 Reviewed by Antti Koivisto.
3169 Ensure we use animated list of points for SVG <polygon> and <polyline> elements
3170 when we build the path used to draw them, otherwise the animated changes won't
3171 be rendered and the base value will be used.
3173 Tests: svg/animations/polygon-set.svg
3174 svg/animations/polyline-set.svg
3176 * rendering/svg/SVGPathData.cpp:
3177 (WebCore::updatePathFromPolygonElement):
3178 (WebCore::updatePathFromPolylineElement):
3180 2013-11-20 Andrei Bucur <abucur@adobe.com>
3182 [CSSRegions] Move region styling code into RenderNamedFlowFragment
3183 https://bugs.webkit.org/show_bug.cgi?id=122957
3185 Reviewed by Mihnea Ovidenie.
3187 The patch moves all the region styling functionality outside of RenderRegion
3188 to RenderNamedFlowFragment and outside of RenderFlowThread to RenderNamedFlowThread.
3189 This generates a couple of undesired casts that will be removed in later patches
3190 when everything CSS Regions specific will be located inside RenderNamedFlowThread
3191 and RenderNamedFlowFragment (e.g. the move of the isValid flag, the auto-height
3194 The painting function was also moved from RenderRegion to RenderNamedFlowFragment. It
3195 was only used by the CSS Regions code. The new multi-column implementation has its own
3198 Tests: No changed functionality, just refactorings.
3200 * rendering/RenderFlowThread.cpp:
3201 (WebCore::RenderFlowThread::RenderFlowThread):
3202 (WebCore::RenderFlowThread::removeFlowChildInfo):
3203 (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
3204 * rendering/RenderFlowThread.h:
3205 * rendering/RenderInline.cpp:
3206 (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
3207 * rendering/RenderNamedFlowFragment.cpp:
3208 (WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
3209 (WebCore::RenderNamedFlowFragment::styleDidChange):
3210 (WebCore::RenderNamedFlowFragment::checkRegionStyle):
3211 (WebCore::RenderNamedFlowFragment::computeStyleInRegion):
3212 (WebCore::RenderNamedFlowFragment::computeChildrenStyleInRegion):
3213 (WebCore::RenderNamedFlowFragment::setObjectStyleInRegion):
3214 (WebCore::RenderNamedFlowFragment::clearObjectStyleInRegion):
3215 (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
3216 (WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
3217 (WebCore::shouldPaintRegionContentsInPhase):
3218 (WebCore::RenderNamedFlowFragment::paintObject):
3219 * rendering/RenderNamedFlowFragment.h:
3220 * rendering/RenderNamedFlowThread.cpp:
3221 (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
3222 (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
3223 (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
3224 (WebCore::RenderNamedFlowThread::removeFlowChildInfo):
3225 * rendering/RenderNamedFlowThread.h:
3226 * rendering/RenderRegion.cpp:
3227 (WebCore::RenderRegion::RenderRegion):
3228 (WebCore::RenderRegion::styleDidChange):
3229 (WebCore::RenderRegion::attachRegion):
3230 * rendering/RenderRegion.h:
3231 * rendering/RenderTreeAsText.cpp:
3232 (WebCore::writeRenderRegionList):
3234 2013-11-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3236 Generate toHTMLFooElement() to clean up static_cast<>
3237 https://bugs.webkit.org/show_bug.cgi?id=124571
3239 Reviewed by Darin Adler.
3241 Though there are a lot of clean up commits before, there are still
3242 use of static_cast<HTMLFooElement*>. To clean up them, we need to generate
3243 toHTMLDetails|Meta|Summary|TableSection|TableCaptionElement().
3245 Additionally, other static_cast<> are removed as well.
3247 No new tests, no behavior changes.
3249 * html/HTMLDetailsElement.h:
3250 * html/HTMLMediaElement.cpp:
3251 (HTMLMediaElement::selectNextSourceChild):
3252 * html/HTMLMetaElement.h:
3253 * html/HTMLObjectElement.cpp:
3254 (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
3255 * html/HTMLOptionElement.cpp:
3256 (WebCore::HTMLOptionElement::isDisabledFormControl):
3257 * html/HTMLPlugInImageElement.cpp:
3258 (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
3259 * html/HTMLSummaryElement.cpp:
3260 (WebCore::HTMLSummaryElement::detailsElement):
3261 * html/HTMLSummaryElement.h:
3262 * html/HTMLTableCaptionElement.h:
3263 * html/HTMLTableElement.cpp:
3264 (WebCore::HTMLTableElement::caption):
3265 (WebCore::HTMLTableElement::tHead):
3266 (WebCore::HTMLTableElement::tFoot):
3267 (WebCore::HTMLTableElement::lastBody):
3268 * html/HTMLTableRowElement.cpp:
3269 (WebCore::HTMLTableRowElement::rowIndex):
3270 * html/HTMLTableSectionElement.h:
3271 * html/HTMLTagNames.in:
3272 * html/MediaDocument.cpp:
3273 (WebCore::MediaDocumentParser::createDocumentStructure):
3274 * html/shadow/DetailsMarkerControl.cpp:
3275 (WebCore::DetailsMarkerControl::summaryElement):
3276 * loader/FrameLoader.cpp:
3277 (WebCore::FrameLoader::handleFallbackContent):
3278 * loader/ImageLoader.cpp:
3279 (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
3280 * page/DragController.cpp:
3281 (WebCore::DragController::canProcessDrag):
3283 (WebCore::Frame::searchForLabelsBeforeElement):
3284 * page/SpatialNavigation.cpp:
3285 (WebCore::frameOwnerElement):
3287 2013-11-19 Ryosuke Niwa <rniwa@webkit.org>
3289 Enable HTMLTemplateElement on Mac port
3290 https://bugs.webkit.org/show_bug.cgi?id=124637
3292 Reviewed by Tim Horton.
3294 Enabled the feature.
3296 * Configurations/FeatureDefines.xcconfig:
3298 2013-11-19 Jinwoo Song <jinwoo7.song@samsung.com>
3300 Remove unused member function declaration in DocumentOrderedMap.h
3301 https://bugs.webkit.org/show_bug.cgi?id=124629
3303 Reviewed by Ryosuke Niwa.
3305 checkConsistency() is not used anywhere.
3307 * dom/DocumentOrderedMap.h:
3309 2013-11-19 Seokju Kwon <seokju@webkit.org>
3311 Removal of redundant function call in Editor::insertTextWithoutSendingTextEvent
3312 https://bugs.webkit.org/show_bug.cgi?id=124563
3314 Reviewed by Brent Fulgham.
3316 No new tests needed, no behavior change.
3318 * editing/Editor.cpp:
3319 (WebCore::Editor::insertTextWithoutSendingTextEvent):
3321 2013-11-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
3323 Fix build break after r159533.
3325 * CMakeLists.txt: Update ANGLE files.
3327 2013-11-19 Zhuang Zhigang <zhuangzg@cn.fujitsu.com>
3329 Implement spin control on WinCE port.
3330 https://bugs.webkit.org/show_bug.cgi?id=123254
3332 Reviewed by Brent Fulgham.
3334 * rendering/RenderThemeWinCE.cpp:
3335 (WebCore::RenderThemeWinCE::adjustInnerSpinButtonStyle):
3336 (WebCore::RenderThemeWinCE::paintInnerSpinButton):
3337 * rendering/RenderThemeWinCE.h:
3339 2013-11-19 Roger Fong <roger_fong@apple.com>
3341 Update ANGLE sources.
3342 https://bugs.webkit.org/show_bug.cgi?id=124615.
3344 Reviewed by Dean Jackson.
3346 Tests covered by Khronos WebGL conformance tests.
3348 * platform/graphics/ANGLEWebKitBridge.cpp: Resolve a build error that resulted from updating ANGLE.
3349 (WebCore::getSymbolInfo):
3350 (WebCore::ANGLEWebKitBridge::compileShaderSource):
3352 2013-11-19 Filip Pizlo <fpizlo@apple.com>
3354 Rename WatchpointSet::notifyWrite() should be renamed to WatchpointSet::fireAll()
3355 https://bugs.webkit.org/show_bug.cgi?id=124609
3357 Rubber stamped by Mark Lam.
3359 No new tests because no new behavior.
3361 * bindings/scripts/CodeGeneratorJS.pm:
3363 * bindings/scripts/test/JS/JSTestEventTarget.h:
3364 (WebCore::JSTestEventTarget::create):
3366 2013-11-19 Bear Travis <betravis@adobe.com>
3368 [CSS Shapes] Parse [<box> || <shape>] values
3369 https://bugs.webkit.org/show_bug.cgi?id=124426
3371 Reviewed by Dirk Schulze.
3373 Shape values can now have an optional box specifying the coordinate sytem to use
3374 for sizing and positioning the shape. This patch adds the functionality to support
3375 parsing these new values.
3377 * css/BasicShapeFunctions.cpp:
3378 (WebCore::valueForBox): Added function to convert between BasicShape::ReferenceBox
3379 and CSSPrimitiveValue (which wraps a CSSValueID).
3380 (WebCore::boxForValue): Ditto.
3381 (WebCore::valueForBasicShape): Translations between CSSBasicShape and BasicShape
3382 must now include the reference box.
3383 (WebCore::basicShapeForValue): Ditto.
3384 * css/BasicShapeFunctions.h:
3385 * css/CSSBasicShapes.cpp:
3386 (WebCore::buildRectangleString): Include the box in the built CSS string.
3387 (WebCore::CSSBasicShapeRectangle::cssText): Ditto.
3388 (WebCore::CSSBasicShapeRectangle::equals): Include the box in comparisions.
3389 (WebCore::buildCircleString):
3390 (WebCore::CSSBasicShapeCircle::cssText):
3391 (WebCore::CSSBasicShapeCircle::equals):
3392 (WebCore::buildEllipseString):
3393 (WebCore::CSSBasicShapeEllipse::cssText):
3394 (WebCore::CSSBasicShapeEllipse::equals):
3395 (WebCore::buildPolygonString):
3396 (WebCore::CSSBasicShapePolygon::cssText):
3397 (WebCore::CSSBasicShapePolygon::equals):
3398 (WebCore::buildInsetRectangleString):
3399 (WebCore::CSSBasicShapeInsetRectangle::cssText):
3400 (WebCore::CSSBasicShapeInsetRectangle::equals):
3401 * css/CSSBasicShapes.h:
3402 (WebCore::CSSBasicShape::box): BasicShapes now have an reference box.
3403 (WebCore::CSSBasicShape::setBox): Ditto.
3404 * css/CSSComputedStyleDeclaration.cpp:
3405 (WebCore::ComputedStyleExtractor::propertyValue): Shape-inside can also
3406 parse the box values.
3407 * css/CSSParser.cpp:
3408 (WebCore::CSSParser::parseValue): The shape properties use parseShapeProperty,
3409 while minor adjustments were made to parseBasicShape's return type.
3410 (WebCore::isBoxValue): Is the CSSValueID one of the box values.
3411 (WebCore::CSSParser::parseShapeProperty): Parse one of the shape properties
3412 and return an appropriate CSSValue.
3413 (WebCore::CSSParser::parseBasicShape): Return a CSSBasicShape rather than
3414 adding a ShapeValue to the style.
3416 * rendering/style/BasicShapes.h:
3417 (WebCore::BasicShape::box): Add a box to BasicShape and getters/setters.
3418 (WebCore::BasicShape::setBox): Ditto.
3419 (WebCore::BasicShape::BasicShape): Ditto.
3421 2013-11-19 Jer Noble <jer.noble@apple.com>
3423 [Mac] 9 WebGL conformance failures after r159518.
3424 https://bugs.webkit.org/show_bug.cgi?id=124608
3426 Reviewed by Dean Jackson.
3428 Once we removed the CIImage drawing path, there was no longer any reason to flip the
3429 CGImageRef before drawing to the provided GraphicsContext.
3431 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3432 (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
3434 2013-11-19 Chris Fleizach <cfleizach@apple.com>
3436 Web Speech API crashes onboundary event handling with reload
3437 https://bugs.webkit.org/show_bug.cgi?id=124607
3439 Reviewed by Tim Horton.
3441 If the page goes away, we need to cleanup the Mac platform synthesizer object, because
3442 NSSpeechSynthesizer is retained elsewhere to handle the callbacks (so it doesn't automatically
3445 The layout tests for speech rely on a Mock synthesizer, so there is no good way to test this
3446 Mac platform specific behavior.
3448 * platform/mac/PlatformSpeechSynthesizerMac.mm:
3449 (-[WebSpeechSynthesisWrapper invalidate]):
3450 (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
3452 2013-11-19 Mark Lam <mark.lam@apple.com>
3454 Add tracking of endColumn for Executables.
3455 https://bugs.webkit.org/show_bug.cgi?id=124245.
3457 Reviewed by Geoffrey Garen.