Timeline



Nov 13, 2014:

10:57 PM Changeset in webkit [176116] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Two WKWebView internal methods are implemented in a category
https://bugs.webkit.org/show_bug.cgi?id=138728

Reviewed by Tim HOrton.

Moved the implementations from the category to the class.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _ignoresNonWheelMouseEvents]):
(-[WKWebView _setIgnoresNonWheelMouseEvents:]):

8:26 PM Changeset in webkit [176115] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebCore

[mac] Keep around more decoded image data, since it's purgeable
https://bugs.webkit.org/show_bug.cgi?id=125273
<rdar://problem/13205438>

Reviewed by Simon Fraser.

No new tests, just an optimization.

Instead of throwing away decoded image data eagerly, allow the operating
system to manage the memory via the standard purgeability mechanism,
where it can.

This improves the performance on some pathological cases (extremely large
animated GIFs) by up to 8x.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):
Don't prune live resources' decoded data if it is purgeable.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Don't eagerly throw away decoded image data if it's purgeable.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::decodedDataIsPurgeable):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::decodedDataIsPurgeable):

6:53 PM Changeset in webkit [176114] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review comment
https://bugs.webkit.org/show_bug.cgi?id=138633

  • platform/spi/cg/CoreGraphicsSPI.h:
6:45 PM Changeset in webkit [176113] by psolanki@apple.com
  • 185 edits in trunk/LayoutTests

Rebaseline iOS layout tests
https://bugs.webkit.org/show_bug.cgi?id=138721

Reviewed by Simon Fraser.

Rebaseline many of the failures in compositing tests.

  • platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt:
  • platform/ios-simulator/compositing/backing/backface-visibility-flip-expected.txt:
  • platform/ios-simulator/compositing/backing/backface-visibility-in-3dtransformed-expected.txt:
  • platform/ios-simulator/compositing/backing/border-radius-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/child-layer-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/filter-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/inline-block-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/masked-child-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/no-backing-for-clip-expected.txt:
  • platform/ios-simulator/compositing/backing/no-backing-for-clip-overhang-expected.txt:
  • platform/ios-simulator/compositing/backing/no-backing-for-clip-overlap-expected.txt:
  • platform/ios-simulator/compositing/backing/no-backing-for-perspective-expected.txt:
  • platform/ios-simulator/compositing/backing/replaced-child-no-backing-expected.txt:
  • platform/ios-simulator/compositing/backing/whitespace-nodes-no-backing-expected.txt:
  • platform/ios-simulator/compositing/bounds-in-flipped-writing-mode-expected.txt:
  • platform/ios-simulator/compositing/clip-child-by-non-stacking-ancestor-expected.txt:
  • platform/ios-simulator/compositing/columns/ancestor-clipped-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/columns/clipped-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-columns-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-columns-vertical-rl-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-in-paginated-rl-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-lr-paginated-repaint-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-nested-columns-expected.txt:
  • platform/ios-simulator/compositing/columns/composited-rl-paginated-repaint-expected.txt:
  • platform/ios-simulator/compositing/columns/hittest-composited-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/columns/rotated-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/columns/untransformed-composited-in-paginated-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/background-clip-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/background-color-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/body-background-painted-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/body-background-skipped-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/control-layer-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/filter-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/hidden-with-visible-child-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/hidden-with-visible-text-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/layer-opacity-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/layer-transform-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/overflow-hidden-child-layers-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/visibility-hidden-expected.txt:
  • platform/ios-simulator/compositing/contents-scale/animating-expected.txt:
  • platform/ios-simulator/compositing/contents-scale/rounded-contents-scale-expected.txt:
  • platform/ios-simulator/compositing/contents-scale/scaled-ancestor-expected.txt:
  • platform/ios-simulator/compositing/contents-scale/simple-scale-expected.txt:
  • platform/ios-simulator/compositing/contents-scale/z-translate-expected.txt:
  • platform/ios-simulator/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt:
  • platform/ios-simulator/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt:
  • platform/ios-simulator/compositing/filters/sw-shadow-overlaps-hw-layer-expected.txt:
  • platform/ios-simulator/compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt:
  • platform/ios-simulator/compositing/fixed-image-loading-expected.txt:
  • platform/ios-simulator/compositing/geometry/ancestor-overflow-change-expected.txt:
  • platform/ios-simulator/compositing/geometry/bounds-clipped-composited-child-expected.txt:
  • platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt:
  • platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt:
  • platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
  • platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-expected.txt:
  • platform/ios-simulator/compositing/geometry/clip-expected.txt:
  • platform/ios-simulator/compositing/geometry/clip-inside-expected.txt:
  • platform/ios-simulator/compositing/geometry/composited-in-columns-expected.txt:
  • platform/ios-simulator/compositing/geometry/fixed-position-composited-switch-expected.txt:
  • platform/ios-simulator/compositing/geometry/flipped-writing-mode-expected.txt:
  • platform/ios-simulator/compositing/geometry/foreground-layer-expected.txt:
  • platform/ios-simulator/compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt:
  • platform/ios-simulator/compositing/geometry/layer-due-to-layer-children-switch-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-overflow-root-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-positioned-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-transformed-expected.txt:
  • platform/ios-simulator/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt:
  • platform/ios-simulator/compositing/geometry/negative-text-indent-with-overflow-hidden-layer-expected.txt:
  • platform/ios-simulator/compositing/geometry/preserve-3d-switching-expected.txt:
  • platform/ios-simulator/compositing/geometry/vertical-scroll-composited-expected.txt:
  • platform/ios-simulator/compositing/iframes/become-composited-nested-iframes-expected.txt:
  • platform/ios-simulator/compositing/iframes/become-overlapped-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/composited-parent-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
  • platform/ios-simulator/compositing/iframes/connect-compositing-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/connect-compositing-iframe2-expected.txt:
  • platform/ios-simulator/compositing/iframes/connect-compositing-iframe3-expected.txt:
  • platform/ios-simulator/compositing/iframes/enter-compositing-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/iframe-resize-expected.txt:
  • platform/ios-simulator/compositing/iframes/iframe-size-from-zero-expected.txt:
  • platform/ios-simulator/compositing/iframes/iframe-size-to-zero-expected.txt: Progression.
  • platform/ios-simulator/compositing/iframes/iframe-src-change-expected.txt: Progression.
  • platform/ios-simulator/compositing/iframes/invisible-nested-iframe-hide-expected.txt:
  • platform/ios-simulator/compositing/iframes/leave-compositing-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/overlapped-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/overlapped-iframe-iframe-expected.txt:
  • platform/ios-simulator/compositing/iframes/overlapped-nested-iframes-expected.txt:
  • platform/ios-simulator/compositing/iframes/page-cache-layer-tree-expected.txt:
  • platform/ios-simulator/compositing/iframes/resizer-expected.txt:
  • platform/ios-simulator/compositing/iframes/scrolling-iframe-expected.txt:
  • platform/ios-simulator/compositing/images/clip-on-directly-composited-image-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/animation-overlap-with-children-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-and-transform-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-transformed-into-view-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/fixed-position-under-transform-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/no-compositing-for-fixed-position-under-transform-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/no-compositing-for-sticky-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overflow-scroll-overlap-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-child-layer-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-clipping-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-transformed-3d-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-transformed-layer-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/overlap-transforms-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/rotate3d-overlap-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/scroll-partial-update-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/stacking-context-overlap-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
  • platform/ios-simulator/compositing/layer-creation/translatez-overlap-expected.txt:
  • platform/ios-simulator/compositing/masks/mask-layer-size-expected.txt:
  • platform/ios-simulator/compositing/overflow-trumps-transform-style-expected.txt:
  • platform/ios-simulator/compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Progression.
  • platform/ios-simulator/compositing/overflow/clip-descendents-expected.txt:
  • platform/ios-simulator/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
  • platform/ios-simulator/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
  • platform/ios-simulator/compositing/overflow/content-gains-scrollbars-expected.txt:
  • platform/ios-simulator/compositing/overflow/content-loses-scrollbars-expected.txt:
  • platform/ios-simulator/compositing/overflow/overflow-auto-with-touch-expected.txt:
  • platform/ios-simulator/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • platform/ios-simulator/compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • platform/ios-simulator/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
  • platform/ios-simulator/compositing/overflow/overflow-scrollbar-layers-expected.txt:
  • platform/ios-simulator/compositing/overflow/resize-painting-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-clip-descendant-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-from-abs-in-named-flow-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-from-outflow-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-got-transformed-parent-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-lost-transformed-parent-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-overlap-composited-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-in-named-flow-transformed-parent-expected.txt:
  • platform/ios-simulator/compositing/regions/fixed-transformed-in-named-flow-expected.txt:
  • platform/ios-simulator/compositing/repaint/absolute-painted-into-composited-ancestor-expected.txt:
  • platform/ios-simulator/compositing/repaint/become-overlay-composited-layer-expected.txt:
  • platform/ios-simulator/compositing/repaint/fixed-background-scroll-expected.txt:
  • platform/ios-simulator/compositing/repaint/invalidations-on-composited-layers-expected.txt:
  • platform/ios-simulator/compositing/repaint/positioned-movement-expected.txt:
  • platform/ios-simulator/compositing/repaint/repaint-on-layer-grouping-change-expected.txt:
  • platform/ios-simulator/compositing/repaint/resize-repaint-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-absolute-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-absolute-overflow-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-fixed-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-fixed-overflow-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-iframe-absolute-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-iframe-fixed-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-iframe-relative-expected.txt:
  • platform/ios-simulator/compositing/rtl/rtl-relative-expected.txt:
  • platform/ios-simulator/compositing/scrolling/touch-scroll-to-clip-expected.txt:
  • platform/ios-simulator/compositing/tiled-layers-hidpi-expected.txt:
  • platform/ios-simulator/compositing/tiling/backface-preserve-3d-tiled-expected.txt:
  • platform/ios-simulator/compositing/tiling/crash-reparent-tiled-layer-expected.txt:
  • platform/ios-simulator/compositing/tiling/huge-layer-add-remove-child-expected.txt:
  • platform/ios-simulator/compositing/tiling/huge-layer-img-expected.txt:
  • platform/ios-simulator/compositing/tiling/huge-layer-with-layer-children-expected.txt:
  • platform/ios-simulator/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt:
  • platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/ios-simulator/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/ios-simulator/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/ios-simulator/compositing/tiling/tiled-layer-resize-expected.txt:
  • platform/ios-simulator/compositing/visibility/layer-visible-content-expected.txt:
  • platform/ios-simulator/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/2d-transformed-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/3d-transform-style-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/clipped-by-viewport-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/clipped-visible-rect-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/flipped-preserve-3d-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/iframe-and-layers-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/nested-transform-expected.txt:
  • platform/ios-simulator/compositing/visible-rect/scrolled-expected.txt:
6:19 PM Changeset in webkit [176112] by mmaxfield@apple.com
  • 23 edits
    1 copy
    1 move
    1 add in trunk/Source

Move FontMac and FontCacheMac off of WKSI
https://bugs.webkit.org/show_bug.cgi?id=138633

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-11-13
Reviewed by NOBODY (OOPS!).

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.exp.in:
  • WebCore.order:
  • WebCore.vcxproj/WebCoreCG.props:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::platformInit):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::platformInit):
(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/mac/FontMac.mm:

(WebCore::isIntegral):
(WebCore::setCGFontRenderingMode):
(WebCore::Font::drawGlyphs):

  • platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::platformInit):

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/spi/cocoa/CoreGraphicsSPI.h: Copied from Source/WebCore/platform/spi/cocoa/CGFontUnicodeSupportSPI.h.
  • platform/spi/cocoa/CoreTextSPI.h:
  • platform/spi/mac/NSFontSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CGFontUnicodeSupportSPI.h.

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebKit.order:

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • mac/WebKit2.order:
6:16 PM Changeset in webkit [176111] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move 'image-resolution' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138715

Reviewed by Andreas Kling.

Move 'image-resolution' CSS property from DeprecatedStyleBuilder to
the new StyleBuilder by using custom code.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyImageResolution::applyInheritValue): Deleted.
(WebCore::ApplyPropertyImageResolution::applyInitialValue): Deleted.
(WebCore::ApplyPropertyImageResolution::applyValue): Deleted.
(WebCore::ApplyPropertyImageResolution::createHandler): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderFunctions::applyInheritImageResolution):
(WebCore::StyleBuilderFunctions::applyInitialImageResolution):
(WebCore::StyleBuilderFunctions::applyValueImageResolution):

5:15 PM Changeset in webkit [176110] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

Unreviewed, rolling out r176106.
https://bugs.webkit.org/show_bug.cgi?id=138719

needs build love (Requested by kling on #webkit).

Reverted changeset:

"[mac] Keep around more decoded image data, since it's
purgeable"
https://bugs.webkit.org/show_bug.cgi?id=125273
http://trac.webkit.org/changeset/176106

Patch by Commit Queue <commit-queue@webkit.org> on 2014-11-13

5:07 PM Changeset in webkit [176109] by msaboff@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Add scope operand to op_new_func* byte codes
https://bugs.webkit.org/show_bug.cgi?id=138707

Reviewed by Mark Lam.

Added scope operand to op_new_func and op_new_func_expr to replace the implicit use
of exec->scope().

  • bytecode/BytecodeList.json: Increased size of op_new_func & op_new_func_expr bytecodes.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode): Added scope operand to dump output.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitNewFunctionInternal):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
Emit scope operand.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
Added new scope source nodes to NewFunction, NewFunctionExpression & NewFunctionNoCheck.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck):
(JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
Use scope children when making new function JIT_Operation calls. Use JSScope* value instead of
exec->scope().

  • dfg/DFGOperations.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_func_exp):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

Added new Jsc JIT_Operation parameter type for JSScope* values. Created declarations and
definitions for new JIT_Operations with Jsc parameters. Use the JSScope* parameters in lieu
of exec->scope() in operationNewFunction().
Removed comment for unused Jsa (JSLexicalEnvironment*) JIT_Operation parameter type.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
Use the scope operand instead of exec->scope().

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

Changed the operand indecies for added scope operand.

4:46 PM Changeset in webkit [176108] by Beth Dakin
  • 21 edits in trunk/Source

Context menus should not offer the "Download video" option for videos that cannot
be downloaded
https://bugs.webkit.org/show_bug.cgi?id=138530
-and corresponding-
rdar://problem/18919130

Patch by Eric Carlson <eric.carlson@apple.com> on 2014-11-13
Reviewed by Tim Horton.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::canSaveMediaData):
(WebCore::MediaPlayer::supportsSave): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::supportsFullscreen):
(WebCore::MediaPlayerPrivateInterface::canSaveMediaData):
(WebCore::MediaPlayerPrivateInterface::supportsSave): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::resolvedURL):
(WebCore::MediaPlayerPrivateAVFoundation::canSaveMediaData):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::canSaveMediaData):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::isDownloadableMedia):

Source/WebKit2:

Expose isDownloadableMedia() to the InjectedBundleHitTestResult.

  • WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:

(WKBundleHitTestResultIsDownloadableMedia):

  • WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:

(WebKit::InjectedBundleHitTestResult::isDownloadableMedia):

  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
4:37 PM Changeset in webkit [176107] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

WK1: Clean up WebActionMenuController to use the _hitTestResult ivar
https://bugs.webkit.org/show_bug.cgi?id=138716
-and corresponding-
rdar://problem/18977222

Reviewed by Tim Horton.

It’s not necessary to use the WebElementDictionary for so many things now that we
are caching the HitTestResult. We should just use the HitTestResult.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController _openURLFromActionMenu:]):
(-[WebActionMenuController _addToReadingListFromActionMenu:]):
(elementBoundingBoxFromNode):
(-[WebActionMenuController _quickLookURLFromActionMenu:]):
(-[WebActionMenuController _defaultMenuItemsForLink]):
(-[WebActionMenuController _defaultMenuItemsForImage]):
(-[WebActionMenuController _defaultMenuItemsForVideo]):
(-[WebActionMenuController _defaultMenuItemsForText]):
(-[WebActionMenuController _defaultMenuItemsForEditableText]):
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea]):
(-[WebActionMenuController _createActionMenuItemForTag:]):
(-[WebActionMenuController _defaultMenuItems]):
(-[WebActionMenuController _elementBoundingBoxFromDOMElement:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForLink:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForImage:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForVideo:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForText:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForEditableText:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea:]): Deleted.
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]): Deleted.

4:36 PM Changeset in webkit [176106] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

[mac] Keep around more decoded image data, since it's purgeable
<https://webkit.org/b/125273>
<rdar://problem/13205438>

Patch by Tim Horton <timothy_horton@apple.com> on 2014-11-02
Reviewed by Simon Fraser and Andreas Kling.

No new tests, just an optimization.

Instead of throwing away decoded image data eagerly, allow the operating
system to manage the memory via the standard purgeability mechanism,
where it can.

This improves the performance on some pathological cases (extremely large
animated GIFs) by up to 8x.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):
Don't prune live resources' decoded data if it is purgeable.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Don't eagerly throw away decoded image data if it's purgeable.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::decodedDataIsPurgeable):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::decodedDataIsPurgeable):

4:34 PM Changeset in webkit [176105] by dbates@webkit.org
  • 12 edits in trunk/Source

[iOS] NSGeometry data types are not available in the public SDK
https://bugs.webkit.org/show_bug.cgi?id=137536

Reviewed by David Kilzer.

Source/WebCore:

Towards building iOS WebKit with the public iOS SDK, define NSGeometry
data types and functions in terms of CGGeometry data types and functions
because the former is SPI on iOS.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Include

header WAKAppKitStubs.h when building for iOS. Otherwise, include header NSGeometry.h.

  • platform/graphics/ca/mac/PlatformCALayerMac.mm: Remove import of private header NSGeometry.h.

We will use the NSGeometry data types defined in WAKAppKitStubs.h, which is implicitly imported
by header WAKWindow.h.

  • platform/graphics/mac/MediaPlayerProxy.h: Substitute WAKAppKitStubs.h for NSGeometry.h.
  • platform/ios/PlatformEventFactoryIOS.mm: Ditto. Also fix up style issues with #import directives.
  • platform/ios/WebEvent.mm: Ditto.
  • platform/ios/wak/WAKAppKitStubs.h: Define typedefs and macros that map NSGeometry data types

and functions to the analogous CGGeometry data types and functions. Also, remove #ifdef OBJC-
guard as the existing content in WAKAppKitStubs.h assumes that this file will only be included
in an Objective-C/Objective-C++ file.

  • platform/ios/wak/WAKView.h: Import header WAKAppKitStubs.h instead of defining macros for some

NSGeometry data types.

Source/WebKit/mac:

Substitute header WAKAppKitStubs.h for NSGeometry.h as the latter is a
private header.

  • DOM/WebDOMOperationsPrivate.h:

Source/WebKit2:

Substitute header WAKAppKitStubs.h for NSGeometry.h as the latter is a
private header.

  • Shared/ios/NativeWebTouchEventIOS.mm:
4:33 PM Changeset in webkit [176104] by ap@apple.com
  • 2 edits in trunk/Tools

https://bugs.webkit.org/show_bug.cgi?id=138628
A patch that doesn't apply is stuck in commit queue

Rubber-stamped by David Kilzer.

This also hopefully fixes other issues:

  • a patch that has cq+ flag set by a non-committer kills commit queue;
  • EWS never reports failing tests, and keeps spinning instead.
  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla.set_flag_on_attachment):
(Bugzilla.obsolete_attachment):
Apply the fix from r174797 to more places.

4:10 PM Changeset in webkit [176103] by bshafiei@apple.com
  • 7 edits in tags/Safari-601.1.9/Source/WebCore

Merged r176090. rdar://problem/18963531

3:50 PM Changeset in webkit [176102] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Versioning.

3:47 PM Changeset in webkit [176101] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.3.6

New Tag.

3:43 PM Changeset in webkit [176100] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Change X86/64 JIT probes to save/restore xmm regs as double instead of m128. [Follow up]
<https://webkit.org/b/138708>

Reviewed by Michael Saboff.

Removed a stale comment and a now unnecessary #include.

  • assembler/X86Assembler.h:
3:30 PM Changeset in webkit [176099] by Beth Dakin
  • 3 edits in trunk/Source/WebKit/mac

WK1: Support default actions for video
https://bugs.webkit.org/show_bug.cgi?id=138713
-and corresponding-
rdar://problem/18877520

Reviewed by Tim Horton.

Call setToNonShadowAncestor() for media HitTestResults.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController performHitTestAtPoint:]):

Default items and actions.
(-[WebActionMenuController _defaultMenuItemsForVideo:]):
(-[WebActionMenuController _copyVideoURL:]):
(-[WebActionMenuController _saveVideoToDownloads:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

  • WebView/WebUIDelegatePrivate.h:
3:30 PM Changeset in webkit [176098] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r176087.
https://bugs.webkit.org/show_bug.cgi?id=138714

Broke the build (Requested by ap on #webkit).

Reverted changeset:

"Update WebKit to build with LLVM TOT"
https://bugs.webkit.org/show_bug.cgi?id=138519
http://trac.webkit.org/changeset/176087

3:27 PM Changeset in webkit [176097] by Simon Fraser
  • 11 edits in trunk/Source

[WK2] Fire a layout milestone on session restore based on render tree size
https://bugs.webkit.org/show_bug.cgi?id=138711
rdar://problem/16033854

Reviewed by Anders Carlsson.
Source/WebCore:

New layout milestone for session restore based on render tree size. Only used
in WK2 at present.

  • page/LayoutMilestones.h:

Source/WebKit2:

Add a session-restore layout milestone which fires after restoring a session,
when the render tree size reaches 50% of the size saved in the session state.

  • Shared/SessionState.h: Add renderTreeSize.
  • UIProcess/API/Cocoa/WKWebView.mm:

(layoutMilestones): Translate from SPI to WebCore milestones.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: New iOS-only milestone, er, event.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::renderingProgressEvents): Translate from WebCore milestone to rendering event.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Init stuff.
(WebKit::WebPageProxy::sessionState):
(WebKit::WebPageProxy::restoreFromSessionState): Zero out the target render tree size,
then get it out of session state and set the flag to say that we haven't reached it yet.
(WebKit::WebPageProxy::listenForLayoutMilestones): Set a flag to know that we should fire
the milestone. The other milestones get sent directly to WebCore.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::exceedsRenderTreeSizeSizeThreshold): Return true when we've reached 50%.
(WebKit::WebPageProxy::didCommitLayerTree): Fire the milestone when appropriate.

  • UIProcess/mac/LegacySessionStateCoding.cpp: Rev the session state data for iOS

(where doing so is less disruptive). Standardize some CFString constants.
(WebKit::encodeSessionHistory): Wrap for legibility.
(WebKit::encodeLegacySessionState): Make a CFNumber for render tree size, and store
it in the root dictionary.
(WebKit::decodeBackForwardTreeNode): Move a comment to match another similar block.
(WebKit::decodeLegacySessionState): Decode render tree size and store it.

3:22 PM Changeset in webkit [176096] by mitz@apple.com
  • 4 edits in trunk

Policy client not called for navigations through the page cache
https://bugs.webkit.org/show_bug.cgi?id=138703

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test added to TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem): When using a cached page, which already
has a document loader, set the document loader’s triggering action (so that the policy
client sees that this is a back/forward navigation) and clear its last checked request (so
that the policy client gets called).

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[DecidePolicyForPageCacheNavigationDelegate webView:didFinishNavigation:]):
(-[DecidePolicyForPageCacheNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):

3:00 PM Changeset in webkit [176095] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Change X86/64 JIT probes to save/restore xmm regs as double instead of m128.
<https://webkit.org/b/138708>

Reviewed by Michael Saboff.

The JIT code only uses the xmm regs as double registers. This patch changes
the storage types of the FP registers in X86Assembler.h to double instead of
m128, and updates the X86 and X86_64 JIT probe implementations accordingly.

Also made some minor cosmetic changes in the output of the probe dump functions.

  • assembler/MacroAssemblerX86Common.cpp:

(JSC::MacroAssemblerX86Common::ProbeContext::dumpCPURegisters):

  • assembler/X86Assembler.h:
  • jit/JITStubsX86.h:
  • jit/JITStubsX86Common.h:
  • jit/JITStubsX86_64.h:
2:59 PM Changeset in webkit [176094] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Update expected .png for platform/mac/editing/input/devanagari-ligature.html
https://bugs.webkit.org/show_bug.cgi?id=138712

This doesn't actually fix the test, it just updates the image.

Reviewed by Zalan Bujtas.

  • platform/mac/editing/input/devanagari-ligature-expected.png:
2:51 PM Changeset in webkit [176093] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

WK1: Update icon for Add to Reading List
https://bugs.webkit.org/show_bug.cgi?id=138710
<rdar://problem/18975774>

Reviewed by Beth Dakin.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
Use the right icon, matching WebKit2.

2:15 PM WebKitGTK/2.6.x edited by jdiggs@igalia.com
Adding a proposed merge for the next stable release (diff)
2:14 PM Changeset in webkit [176092] by matthew_hanson@apple.com
  • 10 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176086. rdar://problems/18947156

2:11 PM Changeset in webkit [176091] by jdiggs@igalia.com
  • 5 edits
    2 adds in trunk

AX: [ATK] Do not return ATK_ROLE_UNKNOWN for null or otherwise invalid accessible objects
https://bugs.webkit.org/show_bug.cgi?id=137867

Reviewed by Chris Fleizach.

Source/WebCore:

Return ATK_ROLE_INVALID for null or otherwise invalid accessible objects.

Test: platform/gtk/accessibility/detached-object-role.html

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetRole):

Tools:

Add ATK_ROLE_INVALID to roleToString. Remove the null AtkRole check in
AccessibilityUIElement::role: ATK_ROLE_INVALID = 0, and we need to be
able to test for the presence of ATK_ROLE_INVALID.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::role):

LayoutTests:

  • platform/gtk/accessibility/detached-object-role-expected.txt: Added.
  • platform/gtk/accessibility/detached-object-role.html: Added.
2:10 PM Changeset in webkit [176090] by eric.carlson@apple.com
  • 7 edits in trunk/Source/WebCore

[iOS] update optimized fullscreen media controls artwork
https://bugs.webkit.org/show_bug.cgi?id=138705

Reviewed by Dean Jackson.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::mediaUIImageData): Remove one button.

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.controlsAreHidden): Add parentheses to fix the logic.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldHaveStartPlaybackButton): The big play button should not be

visible during playback.

(ControllerIOS.prototype.createControls): No longer necessary to insert style dynamically,
(ControllerIOS.prototype.setPlaying): Call the base class first so "isPlaying" is set before

calling updateControls, which calls shouldHaveStartPlaybackButton.

  • platform/ios/WebCoreSystemInterfaceIOS.h: Update constants.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Add button style to the media controls sheet.

1:57 PM Changeset in webkit [176089] by psolanki@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

Rename ios-sim to ios-sim-deprecated.

The results here are historical and new results should go into ios-simulator
directory. Eventually, we should get rid of this directory completely.

Rubber-stamped by Simon Fraser.

  • platform/ios-sim: Removed.
  • platform/ios-sim-deprecated: Copied from LayoutTests/platform/ios-sim.
1:55 PM Changeset in webkit [176088] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Update the "combineModules" script to handel more LLVM metadata.
https://bugs.webkit.org/show_bug.cgi?id=138514

Patch by Juergen Ributzka <juergen@apple.com> on 2014-11-13
Reviewed by Filip Pizlo.

  • ReducedFTL/combineModules.rb:
1:54 PM Changeset in webkit [176087] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Update WebKit to build with LLVM TOT
https://bugs.webkit.org/show_bug.cgi?id=138519

Patch by Juergen Ributzka <juergen@apple.com> on 2014-11-13
Reviewed by Geoffrey Garen.

  • Configurations/LLVMForJSC.xcconfig:
  • llvm/LLVMAPIFunctions.h:
  • llvm/library/LLVMExports.cpp:

(initializeAndGetJSCLLVMAPI):

1:18 PM Changeset in webkit [176086] by timothy_horton@apple.com
  • 10 edits in trunk/Source/WebKit2

Adjust the WKBundlePageOverlay Data Detectors SPI
https://bugs.webkit.org/show_bug.cgi?id=138685
<rdar://problem/18947156>

Reviewed by Anders Carlsson.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Forward DDActionContext callbacks to the Web process.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
  • WebProcess/WebPage/WebPageOverlay.cpp:
  • WebProcess/WebPage/WebPageOverlay.h:

Add four DataDetectors-related WebKit2-only page overlay callbacks:

(WebKit::WebPageOverlay::actionContextForResultAtPoint):
Called during the action menu hit test; clients can reply with a DDActionContext
and a DOM range, and WebKit will treat that result and range as if it had
detected it itself, building the action menu and showing the yellow highlight as usual.

(WebKit::WebPageOverlay::dataDetectorsPresentedUI):
(WebKit::WebPageOverlay::dataDetectorsChangedUI):
(WebKit::WebPageOverlay::dataDetectorsHidUI):
These correspond to the DDActionContext callbacks, and can be used by clients
to show/hide corresponding UI while DataDetectors in the UI process is presenting UI.

(WebKit::WebPageOverlay::prepareForActionMenu): Deleted.
Get rid of prepareForActionMenu, as nobody ever used it.

  • WebProcess/WebPage/WebPage.cpp:

Add WebPageOverlay.h so that we can build, because the destructor lives here.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):
Give all of the WebPageOverlays the first shot at data detection; if none of them
reply with a valid DDActionContext/DOM range, we'll go ahead and do our normal detection.

(WebKit::WebPage::dataDetectorsPresentedUI):
(WebKit::WebPage::dataDetectorsChangedUI):
(WebKit::WebPage::dataDetectorsHidUI):
Forward these along to the active WebPageOverlay.

1:16 PM Changeset in webkit [176085] by Csaba Osztrogonác
  • 2 edits
    1 delete in trunk

Remove Source/Platform cruft
https://bugs.webkit.org/show_bug.cgi?id=138658

Reviewed by Anders Carlsson.

  • CMakeLists.txt:
  • Source/Platform: Removed.
1:00 PM Changeset in webkit [176084] by benjamin@webkit.org
  • 8 edits
    18 adds in trunk

Implement the matching for :nth-last-child(An+B of selector-list)
https://bugs.webkit.org/show_bug.cgi?id=138650

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-13
Reviewed by Andreas Kling.

Source/WebCore:

Matching is trivial based on the existing CSS4 infrastructure.

The tricky part is style invalidation. In the cases of the old :nth-last-child()
and :nth-last-of-type(), we were using the flag ChildrenAffectedByBackwardPositionalRules.

The problem with ChildrenAffectedByBackwardPositionalRules is that it only invalidate
subtrees when nodes are being added or removed. It is a valuable optimization by itself
since tree updates are less common than property updates.

For the case of property updates, I have added the new flag "ChildrenAffectedByPropertyBasedBackwardPositionalRules".
It pretty much work the same way but invalidates subtree on style recalc.

Tests: fast/css/nth-child-and-nth-last-child.html

fast/css/nth-last-child-of-classname.html
fast/css/nth-last-child-of-complex-selector.html
fast/css/nth-last-child-of-compound-selector.html
fast/css/nth-last-child-of-style-sharing-1.html
fast/css/nth-last-child-of-style-sharing-2.html
fast/css/nth-last-child-of-style-update-optimization.html
fast/css/nth-last-child-of-tagname.html
fast/selectors/nth-last-child-of-class-style-update.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • dom/Element.cpp:

(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules):
(WebCore::Element::hasFlagsSetDuringStylingOfChildren):
(WebCore::Element::rareDataChildrenAffectedByPropertyBasedBackwardPositionalRules):

  • dom/Element.h:

(WebCore::Element::childrenAffectedByPropertyBasedBackwardPositionalRules):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::childrenAffectedByPropertyBasedBackwardPositionalRules):
(WebCore::ElementRareData::setChildrenAffectedByPropertyBasedBackwardPositionalRules):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetDynamicRestyleObservations):

  • dom/Node.cpp:

(WebCore::Node::updateAncestorsForStyleRecalc):
(WebCore::Node::setNeedsStyleRecalc):
(WebCore::markAncestorsWithChildNeedsStyleRecalc): Deleted.

  • dom/Node.h:

Unlike the other marking steps, ChildrenAffectedByPropertyBasedBackwardPositionalRules can only really
affect one level (because we don't have a parent-selectors). It is quite easy to mark large
trees with ChildrenAffectedByPropertyBasedBackwardPositionalRules by using a selector list that is a bit
too generic. When that happen, we must be careful not invalidating everything, just the affected subtree.

LayoutTests:

  • fast/selectors/nth-last-child-of-class-style-update-expected.txt: Added.
  • fast/selectors/nth-last-child-of-class-style-update.html: Added.

Verify simple cases of style update.

  • fast/css/nth-last-child-of-style-update-optimization-expected.txt: Added.
  • fast/css/nth-last-child-of-style-update-optimization.html: Added.

Verify that style invalidation stays reasonable.

  • fast/css/nth-last-child-of-style-sharing-1-expected.html: Added.
  • fast/css/nth-last-child-of-style-sharing-1.html: Added.
  • fast/css/nth-last-child-of-style-sharing-2-expected.html: Added.
  • fast/css/nth-last-child-of-style-sharing-2.html: Added.

Check that style sharing is disabled for elements matching :nth-last-child().

  • fast/css/nth-child-and-nth-last-child-expected.html: Added.
  • fast/css/nth-child-and-nth-last-child.html: Added.

Test uniqueness testing by combining :nth-child() and :nth-last-child().

  • fast/css/nth-last-child-of-classname-expected.html: Added.
  • fast/css/nth-last-child-of-classname.html: Added.
  • fast/css/nth-last-child-of-complex-selector-expected.html: Added.
  • fast/css/nth-last-child-of-complex-selector.html: Added.
  • fast/css/nth-last-child-of-compound-selector-expected.html: Added.
  • fast/css/nth-last-child-of-compound-selector.html: Added.
  • fast/css/nth-last-child-of-tagname-expected.html: Added.
  • fast/css/nth-last-child-of-tagname.html: Added.

Test matching, those are the "last-child" counterpart of the existing
"nth-child-of" tests.

12:43 PM Changeset in webkit [176083] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

ARMv7(s) Assembler: LDRH with immediate offset is loading from the wrong offset
https://bugs.webkit.org/show_bug.cgi?id=136914

Reviewed by Michael Saboff.

TLDR: the immediate offset of half-word load was divided by 2.

Story time: So I started getting those weird reports of :nth-child() behaving bizarrely
on ARMv7 and ARMv7s. To make things worse, the behavior changes depending on style updates.

I started looking the disassembly on the tests cases...

The first thing I noticed was that the computation of An+B looked wrong. For example,
in the case of n+6, the instruction should have been:

subs r1, r1, #6

but was

subs r1, r1, #2

After spending a lot of time trying to find the error in the assembler, I discovered
the problem was not real, but just a bug in the disassembler.
This is the first fix: ARMv7DOpcodeAddSubtractImmediate3's immediate3() was truncating
the value to 2 bits instead of 3 bits.

The disassembler being fixed, I still have no lead on the weird bug. Some disassembly later,
I realize the LDRH instruction is not decoded at all. The reason is that both LDRH and STRH
were under the umbrella ARMv7DOpcodeLoadStoreRegisterImmediateHalfWord but the pattern
only matched SRTH.

I fix that next, ARMv7DOpcodeLoadStoreRegisterImmediateHalfWord is split into
ARMv7DOpcodeStoreRegisterImmediateHalfWord and ARMv7DOpcodeLoadRegisterImmediateHalfWord,
each with their own pattern and their instruction group.

Now that I can see the LDRHs correctly, there is something fishy about them, their offset
is way too small for the data I load.

This time, looking at the binary, the generated code is indeed incorrect. It turns out that
the ARMv7 assembler shifted the offset of half-word load as if they were byte load: divided by 4.
As a result, all the load of half-words with more than zero offset were loading
values with a smaller offset than what they should have.

That being fixed, I dump the assembly: still wrong. I am ready to throw my keyboard through
my screen at that point.

Looking at the disassembler, there is yet again a bug. The computation of the scale() adjustment
of the offset was incorrect for anything but word loads.
I replaced it by a switch-case to make it explicit.

STRH is likely incorrect too. I'll fix that in a follow up, I want to survey all the 16 bits cases
that are not directly used by the CSS JIT.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::ldrh):
Fix the immediate scaling. Add an assertion to make sure the alignment of the input is correct.

  • disassembler/ARMv7/ARMv7DOpcode.cpp:

(JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::scale):
Fix the scaling code. Just hardcode instruction-to-scale table.

  • disassembler/ARMv7/ARMv7DOpcode.h:

(JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::immediate3):
The mask for a 3 bits immediate is not 3 :)

(JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::scale): Deleted.

12:15 PM Changeset in webkit [176082] by jhoneycutt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r172826): Password field placeholder text is missing if
placeholder attribute precedes type attribute

<https://bugs.webkit.org/show_bug.cgi?id=138682>
<rdar://problem/18574213>

Source/WebCore:

When the placeholder attribute is encountered, a shadow tree is created
to include the placeholder element. When the type attribute is
encountered, the previous shadow tree is destroyed, and a new shadow
tree is created. TextFieldInputType::createShadowSubtree() did not
handle creating the placeholder element.

This regressed in r172826 because prior to r172826, the placeholder
element would be recreated when
HTMLTextFormControlElement::updatePlaceholderVisibility() was called.
In r172826, updatePlaceholderVisibility() was changed to only show or
hide the placeholder element if it exists.

Reviewed by Benjamin Poulain.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
Call updatePlaceholderVisibility() to insert the placeholder element
(after the inner text element has been inserted, as it appears before
it in the shadow DOM).

LayoutTests:

Reviewed by Benjamin Poulain.

  • fast/forms/placeholder-attribute-ordering-expected.html: Added.
  • fast/forms/placeholder-attribute-ordering.html: Added.
11:57 AM Changeset in webkit [176081] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Replace PDF icon with SVG version
https://bugs.webkit.org/show_bug.cgi?id=137296

Reviewed by Timothy Hatcher.

Add another free icon for the Web Inspector in GTK+.

  • UserInterface/Images/gtk/NavigationItemProbes.svg: Added.
11:36 AM Changeset in webkit [176080] by timothy@apple.com
  • 3 edits
    1 add
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Replace PDF Probes icon with SVG version
https://bugs.webkit.org/show_bug.cgi?id=137296

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/NavigationItemProbes.pdf: Removed.
  • UserInterface/Images/NavigationItemProbes.svg: Added.
  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WebInspector.ProbeDetailsSidebarPanel): Use NavigationItemProbes.svg.

11:18 AM Changeset in webkit [176079] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Generate put_by_id for bracket assignment with constant string subscript.
<https://webkit.org/b/138702>

Reviewed by Geoffrey Garen.

Transform of?=x to o.f=x when generating bytecode. This allows our JIT
to inline-cache those accesses instead of always dropping out to C++.

Just like the get_by_id transformations, this gets a bunch of use on
real-web content (and Speedometer) but little/none on raw JS benchmarks.

  • bytecompiler/NodesCodegen.cpp:

(JSC::AssignBracketNode::emitBytecode):

11:07 AM Changeset in webkit [176078] by mmaxfield@apple.com
  • 4 edits in trunk

Allow constructing a base PassRef with a derived Ref
https://bugs.webkit.org/show_bug.cgi?id=138701

Reviewed by Andreas Kling

Source/WTF:

  • wtf/PassRef.h:

(WTF::PassRef<T>::PassRef):

Tools:

  • TestWebKitAPI/Tests/WTF/Ref.cpp:

(TestWebKitAPI::passWithPassRef):
(TestWebKitAPI::passWithPassRefPtr):
(TestWebKitAPI::TEST):

10:57 AM WebKitGTK/2.6.x edited by jdiggs@igalia.com
Adding a proposed merge for the next stable release (diff)
10:52 AM Changeset in webkit [176077] by Alan Bujtas
  • 1 edit
    1 add in trunk/PerformanceTests

Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
https://bugs.webkit.org/show_bug.cgi?id=138699

Reviewed by Antti Koivisto.

  • Layout/line-layout-long-long-text.html: Added.
10:20 AM Changeset in webkit [176076] by jdiggs@igalia.com
  • 3 edits
    2 adds in trunk

AX: [ATK] Accessible focus events are emitted when the selection is changed in non-focused combo boxes
https://bugs.webkit.org/show_bug.cgi?id=137866

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Check that the AccessibilityMenuList is really focused before notifying
the platform that it is focused. Likewise, only notify the platform of
an AccessibilityMenuListOption focus gain if the AccessibilityMenuList
containing that option is expanded.

Test: platform/gtk/accessibility/menu-list-unfocused-notifications.html

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests:

  • platform/gtk/accessibility/menu-list-unfocused-notifications-expected.txt: Added.
  • platform/gtk/accessibility/menu-list-unfocused-notifications.html: Added.
9:33 AM Changeset in webkit [176075] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Simplify expectations for fullscreen/full-screen-iframe-legacy.html, as the more
specific variant doesn't work due to <https://bugs.webkit.org/show_bug.cgi?id=138698>.

  • platform/mac/TestExpectations:
9:26 AM Changeset in webkit [176074] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/events/overflow-scroll-fake-mouse-move.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=138697

  • platform/mac-wk1/TestExpectations: Mark it as such.
9:21 AM Changeset in webkit [176073] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed WK2 subpixel gardening.

  • platform/mac-wk2/TestExpectations:
8:43 AM Changeset in webkit [176072] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Create canonical lists of registers used by both the Assemblers and the JIT probes.
<https://webkit.org/b/138681>

Reviewed by Filip Pizlo.

  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/X86Assembler.h:
  • The FP register storage type is still defined as m128 because the JIT probe code still expects that amount of storage to be available. Will change this to double when the JIT probe code is updated accordingly in a later patch.
4:50 AM Changeset in webkit [176071] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[SOUP] Missing ResourceRequest members encoded/decoded
https://bugs.webkit.org/show_bug.cgi?id=138694

Reviewed by Sergio Villar Senin.

At least timeoutInterval and priority should also be
encoded/decoded. This fixes all http/tests/xmlhttprequest/timeout/
tests when using the network process, since the timeout is always
0 for all requests that we send to the network process.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

12:53 AM Changeset in webkit [176070] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Unexpected crashes in layout test after r175953
https://bugs.webkit.org/show_bug.cgi?id=138652

Reviewed by Csaba Osztrogonác.

In r175953, it set reusableNodeIndex value with m_partCache's size(). It causes
out of bound index crash because the reusableNodeIndex is Vector object.

No new test. This patch is to fix broken tests related to widgets on EFL port.

  • platform/efl/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::getThemePartFromCache): Need to set reusableNodeIndex with "size() - 1".

12:21 AM Changeset in webkit [176069] by Chris Dumez
  • 6 edits
    2 adds in trunk

Lazily create HTMLInputElement's inputType and shadow subtree
https://bugs.webkit.org/show_bug.cgi?id=138524

Reviewed by Ryosuke Niwa.

Source/WebCore:

When an HTMLInputElement was created by the parser, we would first call
HTMLInputElement::create(), then call Element::parserSetAttributes() on
the constructed input. With the previous implementation, this was a bit
inefficient because HTMLInputElement::create() would construct a
TextInputType inputType (as this is the default) as well as its
corresponding shadow subtree. Then, parserSetAttributes() would often
set the |type| attribute and would need to destroy this input type as
well as its subtree if the new |type| is not 'text', to create a new
inputType / shadow subtree of the right type. The profiler showed that
this was fairly expensive.

To improve this, this patch delays the inputType / shadow subtree
creation when the HTMLInputElement is constructed by the parser, until
the attributes are actually set by the parser. This way, we directly
create an inputType / shadow subtree of the right type.

I see a 1.4% speed up on speedometer (73.95 -> 75.0).

Test: fast/dom/HTMLInputElement/border-attribute-crash.html

  • dom/Element.cpp:

(WebCore::Element::parserSetAttributes):
(WebCore::Element::parserDidSetAttributes):

  • dom/Element.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::parserDidSetAttributes):
(WebCore::HTMLInputElement::finishParsingChildren):

  • html/HTMLInputElement.h:

LayoutTests:

Add a test case to make sure we don't crash when parsing an <input>
Element that has a |border| attribute as first attribute. This is what
was happening with the first version of this patch that landed in
r175852. When attributeChanged() was called for the |border| attribute
HTMLInputElement::isPresentationAttribute() would get called before
m_inputType is initialized, and "name == borderAttr && isImageButton()"
would crash because isImageButton() dereferences m_inputType.

  • fast/dom/HTMLInputElement/border-attribute-crash-expected.txt: Added.
  • fast/dom/HTMLInputElement/border-attribute-crash.html: Added.

Nov 12, 2014:

11:59 PM Changeset in webkit [176068] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Skip more test failing after r175776.

  • platform/gtk/TestExpectations:
11:36 PM Changeset in webkit [176067] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source/WebCore

Merged r175268. rdar://problems/18883890

11:07 PM Changeset in webkit [176066] by ryuan.choi@navercorp.com
  • 5 edits in trunk/Source

[EFL] Fix the build with EFL 1.12
https://bugs.webkit.org/show_bug.cgi?id=138245

Reviewed by Gyuyoung Kim.

Source/WebKit2:

  • UIProcess/API/efl/EwkView.cpp:

First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because
Evas_GL.h can't be included in UniquePtrEfl.h
It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL.
Second, provided the version of GLES in Evas_GL_Config not to break build with
EFL 1.12
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::displayTimerFired):
(EwkView::createGLSurface):

  • UIProcess/API/efl/EwkView.h:

Source/WTF:

  • wtf/efl/UniquePtrEfl.h:

Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because
it should not be included with official GL headers.

7:28 PM Changeset in webkit [176065] by Chris Dumez
  • 12 edits in trunk/Source

Have DOMTimer deal with more ScriptExecutionContext references
https://bugs.webkit.org/show_bug.cgi?id=138679

Reviewed by Andreas Kling.

Source/WebCore:

Have DOMTimer deal with more ScriptExecutionContext references instead
of pointers, to make it clear the script execution context cannot be
null.

No new tests, no behavior change.

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):
(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScheduledAction.h:
  • dom/DocumentEventQueue.cpp:
  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::DOMTimerFireState):
(WebCore::NestedTimersMap::instanceForContext):
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::setTimeout):
(WebCore::DOMWindow::clearTimeout):
(WebCore::DOMWindow::setInterval):
(WebCore::DOMWindow::clearInterval):

  • page/SuspendableTimer.cpp:

(WebCore::SuspendableTimer::SuspendableTimer):

  • page/SuspendableTimer.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::setTimeout):
(WebCore::WorkerGlobalScope::clearTimeout):
(WebCore::WorkerGlobalScope::setInterval):
(WebCore::WorkerGlobalScope::clearInterval):

Source/WebKit/win:

Update WindowCloseTimer to deal with ScriptExecutionContext references
instead of pointers as it subclasses SuspendableTimer and its
constructor takes a ScriptExecutionContext& in argument.

  • WebView.cpp:

(WindowCloseTimer::create):
(WindowCloseTimer::WindowCloseTimer):

7:19 PM Changeset in webkit [176064] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r176047. rdar://problems/18785434

7:19 PM Changeset in webkit [176063] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.3-branch/Source

Merged r176041. rdar://problems/18785434

6:52 PM Changeset in webkit [176062] by matthew_hanson@apple.com
  • 9 edits in branches/safari-600.3-branch/Source

Merged r175966. rdar://problems/18866308

6:31 PM Changeset in webkit [176061] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176038. rdar://problems/18960409

6:31 PM Changeset in webkit [176060] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Merged r176037. rdar://problems/18869900

6:30 PM Changeset in webkit [176059] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176027. rdar://problems/18909111

6:30 PM Changeset in webkit [176058] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.3-branch/Source

Merged r175992. rdar://problems/18741567

6:11 PM Changeset in webkit [176057] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175985. rdar://problems/18947400

6:11 PM Changeset in webkit [176056] by matthew_hanson@apple.com
  • 3 edits
    1 delete in branches/safari-600.3-branch/Source/WebKit2

Merged r175983. rdar://problems/18871984

6:11 PM Changeset in webkit [176055] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175973. rdar://problems/18855914

6:11 PM Changeset in webkit [176054] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175969. rdar://problems/18932770

5:58 PM Changeset in webkit [176053] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source

Merged r175964. rdar://problems/18867627

5:52 PM Changeset in webkit [176052] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source

Merged r175963. rdar://problems/18932770

5:45 PM Changeset in webkit [176051] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.3-branch/Source

Merged r175962. rdar://problem/18815343

5:23 PM Changeset in webkit [176050] by dino@apple.com
  • 12 edits
    4 adds in trunk

Support unprefixed animation property names
https://bugs.webkit.org/show_bug.cgi?id=138678
<rdar://problem/18943059>

Reviewed by Simon Fraser.

Source/WebCore:

Step 1 of 3 in unprefixing CSS animations: handling the
property names and values.

Unlike other unprefixing, where we use an alias that
effectively removes the prefixed values from the code,
for animations we need to keep the old values around so that
existing content will not break (e.g. computed style).

During testing I noticed that we didn't handle the
(relatively) new animation-direction values of
"reverse" and "alternate-reverse" when querying
computed style.

Tests: animations/unprefixed-properties.html

animations/unprefixed-shorthand.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Handle the unprefixed
values, but also get animation direction to produce the correct
results when "reverse" and "alternate-reverse" is specified.

  • css/CSSParser.cpp: Handle the new values. If necessary, pass a flag

around indicating whether it is prefixed or unprefixed.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand): Use the flag to decide
which of the forms we're going to check.
(WebCore::CSSParser::parseAnimationProperty):

  • css/CSSParser.h:
  • css/CSSProperty.h:

(WebCore::prefixingVariantForPropertyId): Add prefixing/unprefixing variants for
all the animation values, and clean up the code a bit.

  • css/CSSPropertyNames.in: Add new properties.
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): We need handlers for the
unprefixed forms. This should move to the new StyleBuilder soon.

  • css/StyleProperties.cpp: Handle new values.

(WebCore::StyleProperties::getPropertyValue):
(WebCore::StyleProperties::asText):

  • css/StylePropertyShorthand.cpp:

(WebCore::animationShorthand):
(WebCore::animationShorthandForParsing): Decide which list of properties to use.
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
(WebCore::webkitAnimationShorthandForParsing): Deleted.

  • css/StylePropertyShorthand.h:
  • css/StyleResolver.cpp: Since the new properties come before "background" in

alphabetical order, they are earlier in the CSSPropertyNames.in file, and thus
we need to update the call sites that think CSSPropertyBackground is the first
property.
(WebCore::StyleResolver::styleForKeyframe): Replace CSSPropertyBackground with CSSPropertyAnimation.
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyProperty):

LayoutTests:

Tests for unprefixed parsing and calculation of animation
properties. Fun fact, this is the first test we have
for the computed style of all animation-direction values.

  • animations/unprefixed-properties-expected.txt: Added.
  • animations/unprefixed-properties.html: Added.
  • animations/unprefixed-shorthand-expected.txt: Added.
  • animations/unprefixed-shorthand.html: Added.
4:27 PM Changeset in webkit [176049] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce work when activating multiple agents sequentially
https://bugs.webkit.org/show_bug.cgi?id=138677

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-11-12
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.activateExtraDomains):

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype._extraDomainsActivated):

  • UserInterface/Controllers/StorageManager.js:

(WebInspector.StorageManager.prototype._extraDomainsActivated):

3:51 PM Changeset in webkit [176048] by ap@apple.com
  • 10 edits
    8 copies
    1 add in trunk/LayoutTests

<rdar://problem/15864185> Syrah: platform/mac/editing/attributed-string tests are failing

Land Yosemite results, and remove the tests from TestExpectations.

  • platform/mac-mavericks/platform/mac/editing/attributed-string: Added.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/anchor-element-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/anchor-element-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/basic-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/basic-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/font-size-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-size-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/font-weight-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/font-weight-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/letter-spacing-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/letter-spacing-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/text-decorations-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/text-decorations-expected.txt.
  • platform/mac-mavericks/platform/mac/editing/attributed-string/vertical-align-expected.txt: Copied from LayoutTests/platform/mac/editing/attributed-string/vertical-align-expected.txt.
  • platform/mac/editing/attributed-string/anchor-element-expected.txt:
  • platform/mac/editing/attributed-string/basic-expected.txt:
  • platform/mac/editing/attributed-string/font-size-expected.txt:
  • platform/mac/editing/attributed-string/font-style-variant-effect-expected.txt:
  • platform/mac/editing/attributed-string/font-weight-expected.txt:
  • platform/mac/editing/attributed-string/letter-spacing-expected.txt:
  • platform/mac/editing/attributed-string/text-decorations-expected.txt:
  • platform/mac/editing/attributed-string/vertical-align-expected.txt:
  • platform/mac/TestExpectations:
3:46 PM Changeset in webkit [176047] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Speculative build fix.

  • WebCore.exp.in:
3:33 PM Changeset in webkit [176046] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Make Mac media-source test expectations future compatible
https://bugs.webkit.org/show_bug.cgi?id=138674

Roll it out, it somehow broke Mountain Liona and Mavericks.

  • platform/mac/TestExpectations:
3:25 PM Changeset in webkit [176045] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the iOS build.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pageMutedStateDidChange):

3:24 PM Changeset in webkit [176044] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build.

  • platform/spi/mac/DataDetectorsSPI.h:

It's likely that more of this file should be compiled out on iOS,
but this is all we need to build.

3:22 PM Changeset in webkit [176043] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

media/video-play-pause-exception.html is flakey.
https://bugs.webkit.org/show_bug.cgi?id=138670

Reviewed by Alexey Proskuryakov.

Work around race-condition behavior in HTMLMediaElement's resource selection algorithm.

  • media/video-play-pause-exception.html:
2:55 PM Changeset in webkit [176042] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Make Mac media-source test expectations future compatible
https://bugs.webkit.org/show_bug.cgi?id=138674

Reviewed by Eric Carlson.

  • platform/mac/TestExpectations:
2:52 PM Changeset in webkit [176041] by Beth Dakin
  • 6 edits in trunk/Source

WK1: Support default actions for images
https://bugs.webkit.org/show_bug.cgi?id=138668
-and corresponding-
rdar://problem/18785434

Reviewed by Tim Horton.

Source/WebCore:

Symbol needed for copying image.

  • WebCore.exp.in:

Source/WebKit/mac:

  • WebView/WebActionMenuController.h:
  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController didCloseMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItemsForImage:]):
(-[WebActionMenuController _copyImage:]):
(temporaryPhotosDirectoryPath):
(pathToPhotoOnDisk):
(-[WebActionMenuController _canAddMediaToPhotos]):
(-[WebActionMenuController _addImageToPhotos:]):
(-[WebActionMenuController _saveImageToDownloads:]):
(-[WebActionMenuController sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
(-[WebActionMenuController sharingServicePicker:delegateForSharingService:]):
(-[WebActionMenuController sharingService:sourceWindowForShareItems:sharingContentScope:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

  • WebView/WebUIDelegatePrivate.h:
2:39 PM Changeset in webkit [176040] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Flaky Test: media/video-ended-event-slow-motion-playback.html
https://bugs.webkit.org/show_bug.cgi?id=136755

Reviewed by Jer Noble.

  • media/video-ended-event-slow-motion-playback.html: The test verifies that playback

rate doesn't get rounded down to 0, and that is very easy to detect, no need for
flaky timeouts.

  • platform/mac/TestExpectations: Remove the flakiness expectation. Also while at it,

updated media/video-playbackrate.html to match what the bots actually see.

2:12 PM Changeset in webkit [176039] by adachan@apple.com
  • 20 edits
    3 adds in trunk

Implement new plug-in API for muting plug-ins
https://bugs.webkit.org/show_bug.cgi?id=138105

Reviewed by Anders Carlsson.

Source/WebCore:

Add the new NPNVmuteAudioBool NPNVariable.

Test: platform/mac-wk2/plugins/muted-state.html

  • plugins/npapi.h:

Source/WebKit2:

Handle the setting of NPNVmuteAudioBool on the plug-in.

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::PluginControllerProxy):
Initialize m_isMuted.
(WebKit::PluginControllerProxy::mutedStateChanged):
Tell the plugin about the new muted state.

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/PluginControllerProxy.messages.in:

Add the MutedStateChanged message.

  • PluginProcess/PluginCreationParameters.cpp:

(WebKit::PluginCreationParameters::PluginCreationParameters):
Initialize isMuted.
(WebKit::PluginCreationParameters::encode):
Handle isMuted.
(WebKit::PluginCreationParameters::decode):
Ditto.

  • PluginProcess/PluginCreationParameters.h:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::NPN_GetValue):
Get the plug-in's muted state.

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::isMuted):
Get the muted state from PluginControllerProxy.
(WebKit::NetscapePlugin::mutedStateChanged):
Call NPP_SetValue with NPNVmuteAudioBool and the updated muted state.

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Plugin.h:

(WebKit::Plugin::mutedStateChanged):

  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::initialize):
Set m_pendingPluginCreationParameters->isMuted.
(WebKit::PluginProxy::mutedStateChanged):
Send the MutedStateChanged message to the plugin process.

  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pageMutedStateDidChange):
Call Plugin::mutedStateChanged() with the page's muted state.
(WebKit::PluginView::isMuted):
Get the page's current muted state.

  • WebProcess/Plugins/PluginView.h:

Tools:

Add a new plug-in test for the mute API.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/TestNetscapePlugIn/Tests/mac/SetMuted.cpp: Added.

(SetMuted::SetMuted):
(SetMuted::isMuted):
(SetMuted::cachedIsMuted):
(SetMuted::ScriptableObject::hasProperty):
(SetMuted::ScriptableObject::getProperty):
(SetMuted::ScriptableObject::pluginTest):
(SetMuted::NPP_New):
(SetMuted::NPP_GetValue):
(SetMuted::NPP_SetValue):

LayoutTests:

  • platform/mac-wk2/plugins/muted-state-expected.txt: Added.
  • platform/mac-wk2/plugins/muted-state.html: Added.
1:55 PM Changeset in webkit [176038] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Two action menu item titles are swapped
https://bugs.webkit.org/show_bug.cgi?id=138667
<rdar://problem/18960409>

Reviewed by Beth Dakin.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createActionMenuItemForTag:]):
Swap them back.

1:50 PM Changeset in webkit [176037] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Need to show the text indicator when Data Detectors shows a popover
https://bugs.webkit.org/show_bug.cgi?id=138664
<rdar://problem/18869900>

Reviewed by Beth Dakin.

  • UIProcess/mac/WKActionMenuController.h:
  • UIProcess/mac/WKActionMenuController.mm:

(hasDataDetectorsCompletionAPI):
Determine if we have the new API.

(-[WKActionMenuController willDestroyView:]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
Make use of the new API.
If we wanted to show a Data Detectors menu but have no items (or they're all
disabled), cancel the menu.
If we don't have it, manually manipulate the highlight.

(-[WKActionMenuController didCloseMenu:withEvent:]):
Make use of the new API.
If we don't have it, manually manipulate the highlight.

(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Set up completion handlers if we have the new API; when DataDetectors
presents UI, show the text indicator, when it dismisses, hide it.
If we don't have the API, manually manipulate the highlight.

  • platform/spi/mac/DataDetectorsSPI.h:

Add new DataDetectors SPI.

1:48 PM Changeset in webkit [176036] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Unreviewed, rolling out r175806.
https://bugs.webkit.org/show_bug.cgi?id=138666

Capturing CString is not thread safe (Requested by anttik on
#webkit).

Reverted changeset:

"[WK2] Use C++ lambdas in IPC::Connection"
https://bugs.webkit.org/show_bug.cgi?id=138018
http://trac.webkit.org/changeset/175806

1:13 PM Changeset in webkit [176035] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Generate get_by_id for bracket access with constant string subscript.
<https://webkit.org/b/138663>

Reviewed by Michael Saboff.

Transform of? into o.f when generating bytecode. This allows our JIT
to inline-cache those accesses instead of always dropping out to C++.

This is surprisingly common in real-web content, less so in benchmarks.
Interestingly, Speedometer does hit the optimization quite a bit.

  • bytecompiler/NodesCodegen.cpp:

(JSC::BracketAccessorNode::emitBytecode):

1:09 PM Changeset in webkit [176034] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Some platform/mac text expectation cleanup.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
12:22 PM Changeset in webkit [176033] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Mac-WK2 test expectations cleanup, part 1.

Put WK1 specific expectations into mac-wk1 (they used to be put in mac, and then
being overridden for wk2).
Remove expectations for tests that are no longer flaky.
Add more specific expectations to encient entries that were added in old format,
and just skipped indiscriminately.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:16 PM Changeset in webkit [176032] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Minor improvements to RenderListItem
https://bugs.webkit.org/show_bug.cgi?id=138601

Reviewed by Darin Adler.

Make several minor improvements to RenderListItem and clean up the
code a bit.

No new tests, no behavior change.

  • rendering/RenderListItem.cpp:

(WebCore::isHTMLListElement):

  • Rename isList to isHTMLListElement() for clarity as it checks for HTMLOListElement and HTMLUListElement types
  • Inline the function as it is short.
  • Use is<HTML*Element>() for type checking
  • Update the argument to take a Node& instead of an Element*. This is because the argument is expected to the non-null. Also using looser typing here allows us to use this utility function is one more place, without impacting performance as hasTagName(HTMLQualifiedName) is defined on Node.

(WebCore::enclosingList):

  • Pass the argument as a reference instead of a pointer as it is expected to be non-null.
  • Initialize firstNode before the loop to avoid the if (!firstNode) check for every iteration.

(WebCore::nextListItem):

  • Take an Element as second argument instead of a RenderListItem* and provide convenience overloads so that we don't need to do null checks just because some calls sites call this function with 2 arguments and others with 1 argument. This way, we avoid unnecessary null checks as most call sites already do such checks (or have references).
  • Transform the while loop into a for loop for clarity.
  • Don't traverse an Element's subtree if the Element does not have a renderer as it is impossible of any of its descendant to have a renderer (and we are looking for a specific type of renderer).

(WebCore::previousListItem):

  • Pass the item argument as a reference instead of a pointer as it is expected to be non-null.
  • Reduce the scope of the |current| so that it is now declared inside the loop.

(WebCore::RenderListItem::updateItemValuesForOrderedList):
(WebCore::RenderListItem::itemCountForOrderedList):

  • Pass argument as a reference instead of a pointer as it was expected to be non-null (There was an assertion in place to make sure of it).

(WebCore::RenderListItem::calcValue):

  • Use is<HTMLOListElement>() instead of hasTagName().

(WebCore::getParentOfFirstLineBox):

  • Rename variables to stop using abbreviations.
  • Pass arguments as references instead of pointers as they are expected to be non-null.
  • Remove the firstChild null check before the loop as it does not change behavior. The loop will abort early if firstChild is null and we will end up returning nullptr as well.
  • Use is<>() more for type checking.
  • Reuse the isHTMLListElement() utility function instead of duplicating its code inside this function.

(WebCore::firstNonMarkerChild):

  • Pass argument as a reference as it is expected to be non-null.
  • Rename variable from result to child for clarity, as we are traversing the children.

(WebCore::RenderListItem::markerTextWithSuffix):

  • Use String appending instead of StringBuilder as it simplifies the code a lot and should not impact performance in this case.

(WebCore::RenderListItem::explicitValueChanged):

  • Restructure the code a bit to do the |listNode| null check before the loop, now that nextListItem() takes a reference in argument. This is the only call site where we didn't already know that listNode is non-null.

(WebCore::previousOrNextItem):

  • Mark this function as inline as it is short and called repeatedly.
12:09 PM Changeset in webkit [176031] by mark.lam@apple.com
  • 21 edits in trunk/Source

Rename USE(MASM_PROBE) to ENABLE(MASM_PROBE).
<https://webkit.org/b/138661>

Reviewed by Michael Saboff.

Also move the switch for enabling the use of MASM_PROBE from JavaScriptCore's
config.h to WTF's Platform.h. This ensures that the setting is consistently
applied even when building WebCore parts as well.

Source/JavaScriptCore:

  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MacroAssemblerARM.cpp:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/MacroAssemblerX86_64.h:
  • assembler/X86Assembler.h:
  • config.h:
  • jit/JITStubs.h:
  • jit/JITStubsARM.h:
  • jit/JITStubsARMv7.h:
  • jit/JITStubsX86.h:
  • jit/JITStubsX86Common.h:
  • jit/JITStubsX86_64.h:

Source/WTF:

  • wtf/Platform.h:
12:07 PM Changeset in webkit [176030] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Speed up HTMLTextFormControlElement::setInnerTextValue() a bit
https://bugs.webkit.org/show_bug.cgi?id=138619

Reviewed by Darin Adler.

Speed up HTMLTextFormControlElement::setInnerTextValue() a bit by:

  • Not doing a virtual isTextFormControl() call. Relying on innerTextElement() not returning null is sufficient.
  • Caching the result of innerTextElement() instead of repeatedly calling that virtual function.
  • De-virtualizing setFormControlValueMatchesRenderer() / formControlValueMatchesRenderer() as these are never overridden.
  • Moving the code constructing the innerTextValue from a TextControlInnerTextElement from innerTextValue() to a new innerTextValueFrom(TextControlInnerTextElement&) function and call this new function from setInnerTextValue() to avoid calling innerTextElement() again and making sure it is non-null
  • Do the tree traversal from innerTextElement's firstChild instead of from innerTextElement. The innerTextElement is a TextControlInnerTextElement. Therefore, it cannot be an HTMLBRElement or a Text node.

No new tests, no behavior change.

  • html/HTMLFormControlElement.h:

(WebCore::HTMLFormControlElement::formControlValueMatchesRenderer):
(WebCore::HTMLFormControlElement::setFormControlValueMatchesRenderer):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::stripTrailingNewline):
(WebCore::innerTextValueFrom):
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
(WebCore::finishText): Deleted.

11:34 AM Changeset in webkit [176029] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Remove expectations for a couple tests that were marked as flaky on WK1 only,
as they don't appear to be flaky any more.

  • platform/mac-wk1/TestExpectations:
11:08 AM Changeset in webkit [176028] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Some WebKit1-only Yosemite-only failures don't appear to exist any more.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Unmark the tests.

11:06 AM Changeset in webkit [176027] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Make action menus much more reliable
https://bugs.webkit.org/show_bug.cgi?id=138654
<rdar://problem/18909111>

Reviewed by Anders Carlsson.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController prepareForMenu:withEvent:]):
Remove MenuUpdateStage; nothing actually uses this value, we just pass it around.

(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
Update the menu as soon as we have a reply from the Web process.

(-[WKActionMenuController menuNeedsUpdate:]):
If our sync-wait for the Web process' reply times out, we should still update
the menu to remove the placeholder separator item.

(-[WKActionMenuController _updateActionMenuItems]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]): Deleted.
If we have our final answer for this menu (_state == Ready), and the final answer
has no items in the menu, cancel tracking on the menu.

10:59 AM Changeset in webkit [176026] by ap@apple.com
  • 3 edits in trunk/LayoutTests

A number of hidpi tests don't appear to fail on Yosemite now, let's try unmarking them.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:41 AM Changeset in webkit [176025] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Instead of blacklisting tests for OS X versions that use PPT for testing,
whitelist MountainLion that doesn't. That's more future compatible.

  • platform/mac-wk2/TestExpectations:
10:40 AM Changeset in webkit [176024] by jer.noble@apple.com
  • 5 edits in trunk

[Mac] media/track/audio-track.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=138394

Reviewed by Alexey Proskuryakov.

Source/WebCore:

The above test fails if the HTMLMediaElement's "canplaythrough" event fires before the AudioTrackList's
"addtrack" event fires. This can happen because each object keeps its own GenericEventQueue, which
empties when that individual queue's timer fires. So events can be enqueued in the following order:
1, A, 2, B, 3, C; but fired in a different order: 1, 2, 3, A, B, C.

Make events enqueued in GenericEventQueues globally ordered, so that events are fired in the order
which they are enqueued, regardless of which object owns the queue. Use a static queue of
GenericEventQueues to manage which GenericEventQueue fires and in what order.

GenericEventQueues will use a WeakPtrFactory to cancel pending events. Revoking a GenericEventQueue's
weak pointers means those queue's entries will be skipped the next time the meta-queue is processed.

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::GenericEventQueue): Create a WeakPtrFactory instead of a Timer.
(WebCore::GenericEventQueue::enqueueEvent): Enqueue this queue with the MetaQueue.
(WebCore::GenericEventQueue::sharedTimer): Lazily-initializing accessor.
(WebCore::GenericEventQueue::sharedTimerFired): Ask each queue to dispatch one event.
(WebCore::GenericEventQueue::pendingQueues): Lazily-initializing accessor.
(WebCore::GenericEventQueue::dispatchOneEvent): Renamed from timerFired.
(WebCore::GenericEventQueue::close): Revoke all WeakPtrs.
(WebCore::GenericEventQueue::cancelAllEvents): Ditto.
(WebCore::GenericEventQueue::hasPendingEvents): Use !isEmpty().
(WebCore::GenericEventQueue::timerFired): Deleted.

  • dom/GenericEventQueue.h:

LayoutTests:

  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [176023] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Fix a typo in the previous commit - a test should be skipped, not its expectation.

  • platform/mac/TestExpectations:
9:46 AM Changeset in webkit [176022] by ap@apple.com
  • 2 edits
    1 move
    2 deletes in trunk/LayoutTests

compositing/video/video-border-radius.html frequently times out on Mountain Lion only
https://bugs.webkit.org/show_bug.cgi?id=138662

Make the test a reftest again, and skip it, as nothing helps.

Also, updated all compositing/video expectations to match what bots see now.

  • compositing/video/video-border-radius-expected.html: Copied from LayoutTests/compositing/video/video-border-radius-expected.html-disabled.
  • compositing/video/video-border-radius-expected.html-disabled: Removed.
  • compositing/video/video-border-radius-expected.png: Removed.
  • compositing/video/video-border-radius-expected.txt: Removed.
  • platform/mac/TestExpectations:
9:16 AM Changeset in webkit [176021] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[WinCairo] Incorrect names for test executables in debug mode.
https://bugs.webkit.org/show_bug.cgi?id=138659

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-11-12
Reviewed by Alex Christensen.

In debug mode, jsc.exe, and testapi.exe are not created, causing JSC test failures.

8:37 AM Changeset in webkit [176020] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, GTK gardening.

  • Scripts/run-gtk-tests:

(TestRunner): Skip the UserMediaBasic test because it depends on
constraints validation which is going to be fixed in bug #136449.

6:23 AM Changeset in webkit [176019] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Skip shared worker tests after r175776.

Shared workers are disabled with the Network Process.

  • platform/gtk/TestExpectations:
4:30 AM Changeset in webkit [176018] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

[GTK] Expose user script messages to GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=138411

Reviewed by Philippe Normand.

Source/WebCore:

  • PlatformGTK.cmake: Add WebKitDOMCustomUnstable.h to the list of

installed headers and make a symlink for it in the DerivedSources dir.

  • bindings/gobject/WebKitDOMCustomUnstable.h: Added.
  • bindings/gobject/WebKitDOMCustom.cpp:

(webkit_dom_dom_window_get_webkit_namespace):
(webkit_dom_user_message_handlers_namespace_get_handler):

  • bindings/scripts/CodeGeneratorGObject.pm:

(HasUnstableCustomAPI): Helper function to check if the given
class has custom unstable API.
(WriteData): Include WebKitDOMCustomUnstable.h header if the class
has API defined there.

Tools:

Add a test case to check that user script messages sent using the
DOM bindings API are also received in the UI process.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:

(UserScriptMessageTest::waitUntilMessageReceived):
(UserScriptMessageTest::postMessageAndWaitUntilReceived):
(testUserContentManagerScriptMessageFromDOMBindings):
(beforeAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(documentLoadedCallback):

4:26 AM Changeset in webkit [176017] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebCore

[GTK] Fix how SerializedScriptValue is exposed to GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=138409

Reviewed by Philippe Normand.

It's currently exposed as a WebKitDOMSerializedScriptValue class
that doesn't really exist. It should be handled as a string, that
is used to create a SerializedScriptValue when coming from the
API, and converted to a string again when returned to the API.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GetGlibTypeName): Return gchar* as glib type of SerializedScriptValue.
(IsGDOMClassType): Don't consider SerializedScriptValue as a GDOM class.
(GenerateFunction): Handle SerializedScriptValue parameters and
return values specially.

  • bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:

(webkit_dom_test_callback_callback_with_serialized_script_value_param):

  • bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_serialized_value):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:

(webkit_dom_test_serialized_script_value_interface_class_init):
(webkit_dom_test_serialized_script_value_interface_get_value):
(webkit_dom_test_serialized_script_value_interface_set_value):
(webkit_dom_test_serialized_script_value_interface_get_readonly_value):
(webkit_dom_test_serialized_script_value_interface_get_cached_value):
(webkit_dom_test_serialized_script_value_interface_set_cached_value):
(webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):

  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:

(webkit_dom_test_typedefs_class_init):
(webkit_dom_test_typedefs_get_immutable_serialized_script_value):
(webkit_dom_test_typedefs_set_immutable_serialized_script_value):

  • bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
4:13 AM Changeset in webkit [176016] by Carlos Garcia Campos
  • 5 edits
    2 moves in trunk/Source

[GTK] Move RedirectedXCompositeWindow from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=138093

Reviewed by Martin Robinson.

Source/WebCore:

Remove RedirectedXCompositeWindow.

  • PlatformGTK.cmake:

Source/WebKit2:

It's only used by WebKitWebViewBase. While moving the code the
following cleanups have been made:

  • Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
  • Use a helper class XDamageNotifier to handle the XDamage events filtering and notification.
  • Use std::function instead of pointer to function for the damage callback.
  • Pass the X display to the RedirectedXCompositeWindow constructor and keep it as a member to use it everywhere, instead of using the default display in some places and the widget display in others.
  • Pass the damage notify function as a contructor parameter of RedirectedXCompositeWindow instead of setting the callback right after creating the object.
  • Remove GLContextNeeded and all the dead code related to the CreateGLContext mode that is no longer used.
  • Rename cairoSurfaceForWidget() as surface().
  • windowId() has been renamed as windowID() and made const.
  • Use std::unique_ptr instead of PassOwnPtr.
  • Fix coding style issues.
  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):
(webkitWebViewRenderAcceleratedCompositingResults):
(webkitWebViewBaseCreateWebPage):
(redirectedWindowDamagedCallback): Deleted.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp: Renamed from Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp.

(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::filterXEvent):
(WebKit::xDamageNotifier):
(WebKit::supportsXDamageAndXComposite):
(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
(WebKit::RedirectedXCompositeWindow::cleanupPixmapAndPixmapSurface):
(WebKit::RedirectedXCompositeWindow::surface):

  • UIProcess/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h.

(WebKit::RedirectedXCompositeWindow::windowID):

3:25 AM Changeset in webkit [176015] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ clean build after r175930.

Partial rollout of r175930 to not build the new unit test that
broke clean builds in GTK+ port.

  • TestWebKitAPI/PlatformGTK.cmake:
12:51 AM Changeset in webkit [176014] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175974 - Protect Document in ProcessingInstruction::setXSLStyleSheet()
<http://webkit.org/b/138621>

Reviewed by Andreas Kling.

The patch is inspired by the following Blink revision by
<tasak@google.com>:
<https://src.chromium.org/viewvc/blink?view=rev&revision=182309>

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::setXSLStyleSheet):

12:49 AM Changeset in webkit [176013] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.6.3

WebKitGTK+ 2.6.3

12:39 AM Changeset in webkit [176012] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.6.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.6.3.
12:25 AM Changeset in webkit [176011] by Philippe Normand
  • 37 edits
    32 adds in trunk

Patch

Nov 11, 2014:

11:59 PM Changeset in webkit [176010] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Clean up OwnPtr in RenderThemeEfl
https://bugs.webkit.org/show_bug.cgi?id=138642

Reviewed by Zoltan Herczeg.

No new tests, no behavior change.

  • platform/efl/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::applyEdjeRTLState): Clean up all remaining OwnPtr.

11:33 PM Changeset in webkit [176009] by gyuyoung.kim@samsung.com
  • 13 edits in trunk/Source/WebCore

Move Modules/websockets to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=138649

Reviewed by Chris Dumez.

Remove create() factory function and use std::make_unique<>, std::unique_ptr<>
instead of OwnPtr, PassOwnPtr.
However didReceiveBinaryData() is still using PassOwnPtr. It should be replaced
with std::unique_ptr<>

No new tests, no behavior.

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::didFail):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
(WebCore::WebSocketChannel::sendFrame):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketDeflateFramer.cpp:

(WebCore::WebSocketDeflateFramer::createExtensionProcessor):
(WebCore::WebSocketDeflateFramer::enableDeflate):
(WebCore::WebSocketDeflateFramer::deflate):
(WebCore::WebSocketDeflateFramer::inflate):
(WebCore::WebSocketExtensionDeflateFrame::create): Deleted.

  • Modules/websockets/WebSocketDeflateFramer.h:

(WebCore::DeflateResultHolder::create): Deleted.
(WebCore::InflateResultHolder::create): Deleted.

  • Modules/websockets/WebSocketDeflater.cpp:

(WebCore::WebSocketDeflater::WebSocketDeflater):
(WebCore::WebSocketInflater::WebSocketInflater):
(WebCore::WebSocketDeflater::create): Deleted.
(WebCore::WebSocketInflater::create): Deleted.

  • Modules/websockets/WebSocketDeflater.h:
  • Modules/websockets/WebSocketExtensionDispatcher.cpp:

(WebCore::WebSocketExtensionDispatcher::addProcessor):

  • Modules/websockets/WebSocketExtensionDispatcher.h:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::addExtensionProcessor):

  • Modules/websockets/WebSocketHandshake.h:
10:20 PM Changeset in webkit [176008] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.9

New tag.

10:17 PM Changeset in webkit [176007] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:13 PM Changeset in webkit [176006] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix after r176001.

Export an additional symbol.

  • WebCore.exp.in:
10:00 PM Changeset in webkit [176005] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Change DFG to use scope operand for op_resolve_scope
https://bugs.webkit.org/show_bug.cgi?id=138651

Reviewed by Geoffrey Garen.

Changed to use the provided scope VirtualRegister.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getScope): Changed to use an argument scope register.
(JSC::DFG::ByteCodeParser::parseBlock): Created VirtualRegister from scope operand.

9:23 PM Changeset in webkit [176004] by jinwoo7.song@samsung.com
  • 9 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening. Rebaseline after r174535.

  • platform/efl/css3/selectors3/html/css3-modsel-61-expected.txt:
  • platform/efl/css3/selectors3/html/css3-modsel-83-expected.txt:
  • platform/efl/css3/selectors3/xhtml/css3-modsel-61-expected.txt:
  • platform/efl/css3/selectors3/xhtml/css3-modsel-83-expected.txt:
  • platform/efl/css3/selectors3/xml/css3-modsel-61-expected.txt:
  • platform/efl/css3/selectors3/xml/css3-modsel-83-expected.txt:
  • platform/efl/fast/selectors/061-expected.txt:
  • platform/efl/fast/selectors/083-expected.txt:
8:33 PM Changeset in webkit [176003] by bshafiei@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175996. rdar://problem/18949376

8:29 PM Changeset in webkit [176002] by jer.noble@apple.com
  • 15 edits in trunk/Source/WebCore

[Mac] Add diagnostic logging for per-media-engine load failures
https://bugs.webkit.org/show_bug.cgi?id=138647

Reviewed by Eric Carlson.

Add diagnostic logging fired whenever a media engine fails to load media,
even if another engine subsequentially succeeds. Add a mechanism for retrieving
the platform-specific error code from a given engine.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:
  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::engineFailedToLoadKey):

  • page/DiagnosticLoggingKeys.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::networkStateChanged):
(WebCore::MediaPlayer::platformErrorCode):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerEngineFailedToLoad):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::platformErrorCode):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::platformErrorCode):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::assetErrorCode):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::assetErrorCode):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::platformErrorCode):

8:17 PM Changeset in webkit [176001] by Chris Dumez
  • 4 edits in trunk/Source

Mark more virtual functions in HTMLInputElement as final
https://bugs.webkit.org/show_bug.cgi?id=138644

Reviewed by Andreas Kling.

Source/WebCore:

Mark more virtual functions in HTMLInputElement as final to help the
compiler optimize better.

No new tests, no behavior change.

  • html/HTMLInputElement.h:

Source/WebKit:

Export an additional symbol to fix Windows build.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
7:13 PM Changeset in webkit [176000] by gyuyoung.kim@samsung.com
  • 8 edits in trunk/Source

Remove IncrementalSweeper::create()
https://bugs.webkit.org/show_bug.cgi?id=138243

Reviewed by Filip Pizlo.

As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes
IncrementalSweeper::create(), then set constructor of IncrementalSweeper to public.
Now we begins to use std::make_unique<> to create IncrementalSweeper instance.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::setIncrementalSweeper):

  • heap/Heap.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::create): Deleted.

  • heap/IncrementalSweeper.h:

Source/WebCore:

No new tests, no behavior changes.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

  • platform/ios/WebSafeIncrementalSweeperIOS.h:
7:07 PM Changeset in webkit [175999] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Web Inspector: Handle activating extra agents properly after inspector has connected
https://bugs.webkit.org/show_bug.cgi?id=138639

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-11-11
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Instead of having the protocol configuration directly add the extra agent
to the inspector registry, isntead go through the augmentable controller.
The controller will initialize as required if we are already connected or not,
and will add to the registry.

The functional change here is that the frontend can be notified to activate
extra agents multiple times as agents eventually become available.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendExtraAgent):

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/agents/InspectorAgent.cpp:

(Inspector::InspectorAgent::activateExtraDomain):

  • inspector/agents/InspectorAgent.h:
  • inspector/augmentable/AugmentableInspectorController.h:
  • inspector/scripts/codegen/generator_templates.py:
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:

Rebased results.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WebInspector.activateExtraDomains):

6:33 PM Changeset in webkit [175998] by msaboff@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Use scope register when processing op_resolve_scope in LLInt and Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=138637

Reviewed by Mark Lam.

Filled out op_resolve_scope processing to use the scope operand to access the current
scope chain.

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

Added scope virtual register parameter to emitResolveClosure(). Added new callOperation() to
support the additional argument.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitResolveClosure):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitResolveClosure):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
Added "scope" parameter to emitResolveClosure(). Passed scope register index to slow path.
Used scope virtual register instead of JSStack::ScopeChain.

5:51 PM Changeset in webkit [175997] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move 'border-image-*' / '-webkit-mask-box-image-*' CSS properties to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138594

Reviewed by Antti Koivisto.

Move 'border-image-*' / '-webkit-mask-box-image-*' CSS properties from
DeprecatedStyleBuilder to the new StyleBuilder using custom code.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::createHandler): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyInheritValue):
(WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyInitialValue):
(WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::applyValue):
(WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::getValue):
(WebCore::StyleBuilderFunctions::ApplyPropertyBorderImageModifier::setValue):

5:29 PM Changeset in webkit [175996] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Action menu hit testing is not working properly with all WK1 apps
https://bugs.webkit.org/show_bug.cgi?id=138643
-and corresponding-
rdar://problem/18949376

Reviewed by Tim Horton.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController _lookupText:]):

5:20 PM Changeset in webkit [175995] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Modernize $buildingForIPhone in CodeGeneratorObjC.pm
<http://webkit.org/b/138640>

Reviewed by Daniel Bates.

Mac OS X is the only platform that supports NSColor, so rename
$buildingForIPhone to $shouldUseCGColor (which is actually what
the variable represents) and define it in terms of the "macosx"
platform name.

  • bindings/scripts/CodeGeneratorObjC.pm:

($buildingForIPhone): Rename to $shouldUseCGColor.
($shouldUseCGColor): False if PLATFORM_NAME is not defined,
which is the case on older Xcodes when building for Mac OS X, or
if PLATFORM_NAME is equal to "macosx". True otherwise.
(GetClassName): Switch to use new variable name.
(AddIncludesForType): Ditto.
(GenerateHeader): Remove dead code. The
$buildingForTigerOrEarlier variable was accidentally
re-introduced in r161638, but was originally removed in r127032!
(GenerateImplementation): Switch to use new variable name.

5:06 PM Changeset in webkit [175994] by ap@apple.com
  • 1 edit
    1 move
    2 adds in trunk/LayoutTests

Temporarlity turn video/video-border-radius-expected.html into a non-reftest,
hoping to get some error output from it.

  • compositing/video/video-border-radius-expected.html: Removed.
  • compositing/video/video-border-radius-expected.html-disabled: Copied from LayoutTests/compositing/video/video-border-radius-expected.html.
  • compositing/video/video-border-radius-expected.png: Added.
  • compositing/video/video-border-radius-expected.txt: Added.
5:05 PM Changeset in webkit [175993] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Don't require a debugger be attached for inspector auto attach
https://bugs.webkit.org/show_bug.cgi?id=138638

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-11-11
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate):

4:59 PM Changeset in webkit [175992] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Add support for mailto: link action menus
https://bugs.webkit.org/show_bug.cgi?id=138641
<rdar://problem/18741567>

Reviewed by Beth Dakin.

  • Shared/API/c/WKActionMenuTypes.h:

Add a new type for mailto links.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForMailtoLink]):
Build a DDActionContext and grab menu items for our mailto link.

(-[WKActionMenuController _defaultMenuItems]):
Get menu items from _defaultMenuItemsForMailtoLink if needed.

  • WebCore.exp.in:

Add an export.

  • platform/spi/mac/DataDetectorsSPI.h:

Add some DataDetectors SPI.

4:46 PM Changeset in webkit [175991] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

webkit-patch --suggest-reviewers is broken with newer versions of git
<http://webkit.org/b/138627>

Reviewed by Michael Saboff with feedback from Daniel Bates.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git._changes_files_for_commit): Strip blank lines instead of
assuming there is always a blank line at the beginning of the
list.

4:23 PM Changeset in webkit [175990] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/text/international/hindi-spacing.html and transforms/2d/hindi-rotated.html are
flaky on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=138075

  • platform/mac/TestExpectations: Mark them as such.
4:17 PM Changeset in webkit [175989] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Versioning.

4:16 PM Changeset in webkit [175988] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.3.5

New Tag.

4:15 PM Changeset in webkit [175987] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector/css/matched-style-properties.html and inspector/css/selector-specificity.html
are very flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=138636

Bring back Crash expectattion, as this is how it's reported on WK1. Also added one more test.

  • platform/mac/TestExpectations:
4:09 PM Changeset in webkit [175986] by ap@apple.com
  • 2 edits in trunk/LayoutTests

compositing/video/video-border-radius.html frequently times out on 10.8

Add an error even listener, to at hopefully get a proper failure when this happens.

  • compositing/video/video-border-radius.html:
3:59 PM Changeset in webkit [175985] by Conrad Shultz
  • 5 edits in trunk/Source/WebKit2

Clients should be notified when a page preview finishes
https://bugs.webkit.org/show_bug.cgi?id=138635

Reviewed by Tim Horton.

Add SPI to WKView to allow clients to do any cleanup that might be necessary when the preview closes.

  • UIProcess/API/Cocoa/WKViewPrivate.h:

Declare new SPI.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _finishPreviewingURL:withPreviewView:]):
Stub SPI implementation.

  • UIProcess/mac/WKActionMenuController.h:

Add an ivar for the preview view controller.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
Update to use the ivar.
(-[WKActionMenuController _clearPreviewPopover]):
Send -_finishPreviewingURL:withPreviewView: and nil out the view controller ivar.

3:56 PM Changeset in webkit [175984] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector/css/matched-style-properties.html and inspector/css/selector-specificity.html
are very flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=138636

Updated the results and comments for tests that don't work in production builds,
those are not quite relevant here.

  • platform/mac/TestExpectations:
3:23 PM Changeset in webkit [175983] by timothy_horton@apple.com
  • 3 edits
    1 delete in trunk/Source/WebKit2

Update artwork for some action menu items
https://bugs.webkit.org/show_bug.cgi?id=138634
<rdar://problem/18871984>

Reviewed by Anders Carlsson.

  • Resources/OpenInNewWindowTemplate.pdf: Removed.
  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createActionMenuItemForTag:]):
(webKitBundleImageNamed): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:

Get rid of our custom art, and use system art for two more items.

3:13 PM Changeset in webkit [175982] by ap@apple.com
  • 10 edits in trunk

DRT and WKTR touch disk cache
https://bugs.webkit.org/show_bug.cgi?id=138622

Reviewed by Geoffrey Garen.

Source/WebKit2:

Setting a cache model has a very strange behavior in WebKit2, where it ignores
sizes that were explicitly passed from UI process, and uses different ones. As
setCacheModel() is always called on launch, it always creates a non-empty disk cache.

The design needs to be improved one day, but for now, just make sure that we never
create a disk cache during testing.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformSetCacheModel):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm: (prepareConsistentTestingEnvironment):

Set a shared cache before calling -_switchNetworkLoaderToNewTestingSession, not after,
because this function uses the shared cache.

  • WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitializeContext):

Create an empty shared cache to prevent a default one from being created on disk.

3:11 PM Changeset in webkit [175981] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] video is sometimes allowed to play from the background
https://bugs.webkit.org/show_bug.cgi?id=138522

Rubber-stamped by Jer Noble.

  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::updateClientDataBuffering): Call MediaSessionManager::sessionCanLoadMedia.

2:59 PM Changeset in webkit [175980] by eric.carlson@apple.com
  • 6 edits in trunk/Source

[iOS] a page with video in optimized fullscreen is visible
https://bugs.webkit.org/show_bug.cgi?id=138632

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:

(WebCore::WebVideoFullscreenInterfaceAVKit::mode): Expose fullscreen mode.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isPlayingFullscreenOptimizedVideo]): New.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewVisible): Return true if displaying optimized fullscreen

video.

2:58 PM Changeset in webkit [175979] by ap@apple.com
  • 2 edits in trunk/LayoutTests

compositing/video/video-border-radius.html frequently times out on 10.8

Add an event listener before setting source, not after. This should not affect
anything, but seems worth a try.

  • compositing/video/video-border-radius.html:
2:42 PM Changeset in webkit [175978] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Mountain Lion build fix
https://bugs.webkit.org/show_bug.cgi?id=138631

Reviewed by Simon Fraser.

  • platform/spi/cocoa/CoreTextSPI.h:
2:20 PM Changeset in webkit [175977] by jonowells@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Main.js missing many trailing semicolons
https://bugs.webkit.org/show_bug.cgi?id=138624

Add semicolons to function variable assignments.

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js: Added semicolons.
2:03 PM Changeset in webkit [175976] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] cleanup wireless route monitoring
https://bugs.webkit.org/show_bug.cgi?id=138614

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::clearMediaPlayer): Add logging.
(WebCore::HTMLMediaElement::removeEventListener): Ditto.
(WebCore::HTMLMediaElement::createMediaPlayer): Ditto.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::resetRestrictions): Add logging.
(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring): Ditto.
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Ditto.
(-[WebMediaSessionHelper initWithCallback:]): Ditto.
(-[WebMediaSessionHelper dealloc]): Always deallocate volume view and routing controller

on the main thread.

(-[WebMediaSessionHelper clearCallback]): Add logging.
(-[WebMediaSessionHelper hasWirelessTargetsAvailable]): Ditto.
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]): Always call routing controller on

the main thread.

(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]): Ditto.
(-[WebMediaSessionHelper interruption:]): Add logging.
(-[WebMediaSessionHelper applicationWillEnterForeground:]): Ditto.
(-[WebMediaSessionHelper applicationDidBecomeActive:]): Ditto.
(-[WebMediaSessionHelper applicationWillResignActive:]): Ditto.
(-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]): Ditto.

2:02 PM Changeset in webkit [175975] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewd iOS build fix

  • platform/spi/cocoa/CoreTextSPI.h:
1:56 PM Changeset in webkit [175974] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Protect Document in ProcessingInstruction::setXSLStyleSheet()
<http://webkit.org/b/138621>

Reviewed by Andreas Kling.

The patch is inspired by the following Blink revision by
<tasak@google.com>:
<https://src.chromium.org/viewvc/blink?view=rev&revision=182309>

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::setXSLStyleSheet):

1:39 PM Changeset in webkit [175973] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Occasional assertion failure under recommendedScrollbarStyleDidChange()
https://bugs.webkit.org/show_bug.cgi?id=138604
<rdar://problem/18855914>

Reviewed by Beth Dakin.

It is possible for AppKit to install tracking areas into our view
behind our back, but we have code that depends on knowing exactly
the set of tracking areas installed on WKView.

Make this more robust by keeping a reference to the tracking area we
use for many things and manipulating that instead of making assumptions
about the total set of tracking areas on WKView.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _primaryTrackingArea]):
(-[WKView _replacePrimaryTrackingArea:]):
Provide a 'primary' tracking area setter/getter.

(-[WKView initWithFrame:context:configuration:webView:]):
Keep a reference to the original tracking area installed at initialization time.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
Instead of walking the set of tracking areas, make use of the fact that
we know exactly which tracking area we installed, and uninstall just that
one, and replace it with our newly-built one.

1:37 PM Changeset in webkit [175972] by mmaxfield@apple.com
  • 15 edits in trunk/Source

Finish moving CTFontGetVerticalGlyphsForCharacters and CTLineCreateWithUniCharProvider out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138623

Reviewed by Geoff Garen.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.exp.in:
  • WebCore.order:
  • platform/graphics/mac/GlyphPageTreeNodeMac.cpp:

(WebCore::GlyphPage::fill):

  • platform/graphics/mac/SimpleFontDataMac.mm:

(WebCore::SimpleFontData::canRenderCombiningCharacterSequence):

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/spi/cocoa/CoreTextSPI.h:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebKit.order:

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • mac/WebKit2.order:
1:21 PM Changeset in webkit [175971] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed Mountain Lion build fix

  • platform/spi/cocoa/CoreTextSPI.h:
1:13 PM Changeset in webkit [175970] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r175852.
https://bugs.webkit.org/show_bug.cgi?id=138626

Broke PLT by introducing a crash. (Requested by rniwa on
#webkit).

Reverted changeset:

"Lazily create HTMLInputElement's inputType and shadow
subtree"
https://bugs.webkit.org/show_bug.cgi?id=138524
http://trac.webkit.org/changeset/175852

12:56 PM Changeset in webkit [175969] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Add a respondsToSelector check to dismissActionMenuPopovers
https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>

Reviewed by Beth Dakin.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController dismissActionMenuPopovers]):
Avoid calling this wherever it doesn't exist.

12:41 PM Changeset in webkit [175968] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r175947): Caused assertions in debug builds
https://bugs.webkit.org/show_bug.cgi?id=138620

Reviewed by Benjamin Poulain.

In HTMLCollection::traverseForward(), traversedCount was incremented 1
time too many when hitting the end of the collection (i.e. element
becomes null). Doing a partial revert.

No new tests, already covered by existing tests.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::traverseForward):

12:36 PM Changeset in webkit [175967] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Handle cases in StackVisitor::Frame::existingArguments() when lexicalEnvironment and/or unmodifiedArgumentsRegister is not set up yet
https://bugs.webkit.org/show_bug.cgi?id=138543

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-11
Reviewed by Geoffrey Garen.

Exception fuzzing may may raise exceptions in places where they would be
otherwise impossible. Therefore, a callFrame may lack activation even if
the codeBlock signals need of activation. Also, even if codeBlock
signals the use of arguments, the unmodifiedArgumentsRegister may not be
initialized yet (neither locally nor in lexicalEnvironment).

If codeBlock()->needsActivation() is false, unmodifiedArgumentsRegister
is already checked for Undefined. This patch applies the same check when
the condition is true (and also checks whether
callFrame()->hasActivation()).

  • interpreter/CallFrame.h:

(JSC::ExecState::hasActivation):
Moved to interpreter/CallFrameInlines.h.

  • interpreter/CallFrameInlines.h:

(JSC::CallFrame::hasActivation):
Fixed to verify that the JSValue returned by uncheckedActivation() is a
cell.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::existingArguments):

12:12 PM Changeset in webkit [175966] by timothy_horton@apple.com
  • 9 edits in trunk/Source

DataDetectors' menu items aren't presented in the telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=138602
<rdar://problem/18866308>

Reviewed by Beth Dakin.

We currently round-trip the DataDetectors telephone number NSMenuItems
through the very-lossy WebContextMenuItemData, for no real reason.
We should avoid this so that DataDetectors' actual NSMenuItems are
presented in the final menu, so that they can adjust their items after
providing them to us.

  • Platform/mac/MenuUtilities.h:
  • Platform/mac/MenuUtilities.mm:

(WebKit::menuItemTitleForTelephoneNumber): Deleted.
Stop adjusting the menu item titles, as they come correct now.

(WebKit::menuItemsForTelephoneNumber): Deleted.
(WebKit::menuForTelephoneNumber):
Return a fully-formed menu for the single telephone number case.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::showTelephoneNumberMenu):
Present the fully-formed menu, without round-tripping through
WebContextMenuItemData, because we do not need to hand the items to
the context menu client (and indeed, were not), and because this
allows us to use the exact items returned by DataDetectors, so they
can keep ahold of the items that we actually present.

  • UIProcess/PageClient.h:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::showPlatformContextMenu):
Add a Mac-only PageClient function for presenting a NSMenu at a
WKView-relative point.

  • English.lproj/Localizable.strings:

Remove a now-unused localized string.

11:38 AM Changeset in webkit [175965] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

[Frame Flattening] ASSERT(transaction->view == &view()) fails in RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction()
https://bugs.webkit.org/show_bug.cgi?id=138615
<rdar://problem/18928487>

Reviewed by David Hyatt.

Source/WebCore:

Fixes an issue where we always expected that the RenderView associated with the RenderBlock called in
RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction() is the same as the RenderView associated with
the top transaction in the UpdateScrollInfoAfterLayoutTransaction stack regardless of frame flattening. This
expectation is only true when frame flattening is disabled.

Test: fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction):

LayoutTests:

Add a test that causes an assertion failure in affected builds.

  • fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update-expected.txt: Added.
  • fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update.html: Added.
11:18 AM Changeset in webkit [175964] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Adopt DDActionContext menu type SPI
https://bugs.webkit.org/show_bug.cgi?id=138603
<rdar://problem/18867627>

Reviewed by Anders Carlsson.

  • platform/spi/mac/DataDetectorsSPI.h:

Add the new SPI.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Use the new SPI instead of WKSI.

11:17 AM Changeset in webkit [175963] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Data Detectors popovers should be dismissed upon scrolling
https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>

Reviewed by Beth Dakin.

  • platform/spi/mac/DataDetectorsSPI.h:

Adjust the SPI header.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController prepareForMenu:withEvent:]):
Dismiss popovers when we start preparing another menu.

(-[WKActionMenuController dismissActionMenuPopovers]):
Use the new DataDetectors SPI.

11:14 AM Changeset in webkit [175962] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Localize strings for action menus
https://bugs.webkit.org/show_bug.cgi?id=138591
<rdar://problem/18815343>

Reviewed by Dan Bates.

  • English.lproj/Localizable.strings:

Add a bunch of localizable strings.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
Make use of the new strings.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _showTextIndicator]):
(-[WKActionMenuController _hideTextIndicator]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
Make use of the new strings.

11:13 AM Changeset in webkit [175961] by mmaxfield@apple.com
  • 11 edits in trunk/Source

Cleanup from r175379
https://bugs.webkit.org/show_bug.cgi?id=138616

Reviewed by Simon Fraser.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.exp.in:
  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebKit.order:

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • mac/WebKit2.order:
10:59 AM Changeset in webkit [175960] by mmaxfield@apple.com
  • 15 edits in trunk/Source

Move CTFontTransformGlyphs out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138599

Reviewed by Simon Fraser.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.exp.in:
  • WebCore.order:
  • platform/graphics/SimpleFontData.cpp:

(WebCore::SimpleFontData::applyTransforms):

  • platform/graphics/SimpleFontData.h:
  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/spi/cocoa/CoreTextSPI.h:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebKit.order:

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • mac/WebKit2.order:
10:36 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
10:25 AM Changeset in webkit [175959] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175688 - splitText API does not match DOM specification.
https://bugs.webkit.org/show_bug.cgi?id=138405

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-11-05
Reviewed by Chris Dumez.
Source/WebCore:

Make the offset argument for splitText API as mandatory (and thus throw if it is omitted) and stop throwing if the offset argument is
negative (and wraps to a valid index) as per specification: https://w3c.github.io/dom/#interface-text. Also This matches the behavior
of both Firefox 33 and Chrome 38.

Test: fast/dom/Text/splitText.html

  • dom/Text.idl:

LayoutTests:

  • fast/dom/Text/splitText-expected.txt: Added.
  • fast/dom/Text/splitText.html: Added.
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
10:23 AM Changeset in webkit [175958] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.8.1/Source

Versioning.

10:21 AM Changeset in webkit [175957] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.8.1

New tag.

10:17 AM Changeset in webkit [175956] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

More iOS build fix.

  • WebView/WebHTMLViewInternal.h:
10:15 AM Changeset in webkit [175955] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r175655 - Assertion hit DOMTimer::updateTimerIntervalIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=138440

Reviewed by Geoffrey Garen.

Source/WebCore:

We sometimes hit the ASSERT(repeatInterval() == previousInterval)
assertion in DOMTimer::updateTimerIntervalIfNecessary() when visiting
the following pages:
http://lifehacker.com/the-healthiest-foods-for-one-handed-snacking-while-gami-1654728164
http://longform.org/posts/like-something-the-lord-made

After debugging, the issue turned out to be that we are comparing
floating point numbers using ==, and the check sometimes fails even
though the values really close to each other. This patch updates the
DOMTimer code to use WTF::withinEpsilon() instead of operator==()
to compare the floating point intervals.

I confirmed manually that the assertion is no longer hit.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::updateTimerIntervalIfNecessary):

  • platform/graphics/FloatQuad.cpp:

(WebCore::FloatQuad::isRectilinear):
(WebCore::withinEpsilon): Deleted.

Source/WTF:

Move the withinEpsilon() function to WTF to avoid code duplication.

  • wtf/MathExtras.h:

(WTF::withinEpsilon):

9:59 AM Changeset in webkit [175954] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

iOS build fix.

  • WebView/WebHTMLView.mm:
9:53 AM Changeset in webkit [175953] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebCore

Use std::unique_ptr<>|std::make_unique_ptr in RenderThemeEfl::ThemePartCacheEntry::create()
https://bugs.webkit.org/show_bug.cgi?id=138558

Reviewed by Anders Carlsson.

This patch removes PassOwnPtr and OwnPtr in RenderThemeEfl::ThemePartCacheEntry::create().
It would be good if we also remove create() factory function though, in this case, it is
a little hard to remove it since the create() factory function does many works to create
a ThemePartCacheEntry instance. Thus this patch just replaces PassOwnPtr|OwnPtr with
std::unique_ptr<> and std::make_unique<> in RenderThemeEfl::ThemePartCacheEntry::create().

Besides the theme entries have been maintained by Eina_List*. Unfortunately it doesn't support
std::unique_ptr<> yet. Thus the Eina_List* should be replaced with Vector<std::unique_ptr<>>
so that m_partCache has ownship of all EFL theme entries. This patch tries to keep original
cache algorithm based on Vector class.

No new tests, no behavior changes.

  • platform/efl/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
(WebCore::RenderThemeEfl::getThemePartFromCache):

  • platform/efl/RenderThemeEfl.h:
9:52 AM Changeset in webkit [175952] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175622 - Stop special-casing the empty string in HTMLInputElement.type setter
https://bugs.webkit.org/show_bug.cgi?id=138403

Reviewed by Ryosuke Niwa.

Source/WebCore:

Stop special-casing the empty string in HTMLInputElement.type setter.
Previously, if input.type is set to "", we would remove the type
attribute. This is inconsistent with the specification and the behavior
of other browsers (tested Firefox 33 and Chrome 38). Instead, we should
set the attribute to the empty string.

Also stop treating null as a null string to align with the
specification and other browsers (tested Firefox 33 and Chrome 38).

Finally, update HTMLInputElement::setType() to take an AtomicString in
argument instead of a String as it ends up calling setAttribute(), and
thus needing an AtomicString.

Test: fast/dom/HTMLInputElement/input-type-attribute.html

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::UploadButtonElement):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setType):

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.idl:

LayoutTests:

Add layout test to check the functionality of the HTMLInputElement.type
getter and setter.

  • fast/dom/HTMLInputElement/input-type-attribute-expected.txt: Added.
  • fast/dom/HTMLInputElement/input-type-attribute.html: Added.
9:44 AM Changeset in webkit [175951] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r175696 - [GTK] [Stable] webkitgtk 2.6.1 fails to load flashplugin
https://bugs.webkit.org/show_bug.cgi?id=137849

Reviewed by Carlos Garcia Campos.

NPPVpluginNeedsXEmbed is a boolean value, so it should normally
use an NPBool (1 byte). However some plugins (the Flash player in
particular) are using an int instead, so we have to do it as well
else we'll end up corrupting the stack.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::platformPostInitialize):

9:42 AM Changeset in webkit [175950] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r175619 - NetscapePlugin: NPP_GetValue should receive a pointer to NPBool, not bool
https://bugs.webkit.org/show_bug.cgi?id=138418

Reviewed by Carlos Garcia Campos.

Replace bool with NPBool, which is actually an unsigned char.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::platformPostInitialize):

9:40 AM Changeset in webkit [175949] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175602 - Avoid double hash table lookup in SpaceSplitStringData::create()
https://bugs.webkit.org/show_bug.cgi?id=138396

Reviewed by Ryosuke Niwa.

Avoid double hash table lookup in SpaceSplitStringData::create() by
calling HashMap::add() and using the AddResult, instead of calling
HashMap::get() then HashMap::add().

No new tests, no behavior change.

  • dom/SpaceSplitString.cpp:

(WebCore::SpaceSplitStringData::create):

9:39 AM Changeset in webkit [175948] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175580 - RenderBox shouldn't need a pre-destructor hook.
<https://webkit.org/b/138367>

Reviewed by Antti Koivisto.

Move teardown logic from willBeDestroyed() to the regular ~RenderBox()
destructor since none of it depends on being in-tree or having a fully
constructed vtable.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::~RenderBox):
(WebCore::RenderBox::willBeDestroyed): Deleted.

  • rendering/RenderBox.h:
9:35 AM Changeset in webkit [175947] by Darin Adler
  • 17 edits in trunk/Source/WebCore

Minor tweaks to HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=138556

Reviewed by Chris Dumez.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
Update for namedElements function that now returns a Vector; also use
a new style for loop to iterate it.

  • bindings/js/JSHTMLAllCollectionCustom.cpp: Removed some unneeded includes.

(WebCore::namedItems): Updated name to match WebKit coding style, and also
updated to use the return value from namedItems, which now returns a Vector.
(WebCore::callHTMLAllCollection): Updated for namedItems name change.
Also removed explicit Node* type from result of namedItemWithIndex, since that
function now returns a more specific type.
(WebCore::JSHTMLAllCollection::nameGetter): Update for namedItems name change.
(WebCore::JSHTMLAllCollection::item): Ditto.
(WebCore::JSHTMLAllCollection::namedItem): Ditto.

  • bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Removed some unneeded includes.

(WebCore::namedItems): Updated name to match WebKit coding style, and also
updated to use the return value from namedItems, which now returns a Vector.
(WebCore::JSHTMLFormControlsCollection::nameGetter): Update for namedItems name change.
(WebCore::JSHTMLFormControlsCollection::namedItem): Ditto.

  • bindings/js/JSHTMLFormElementCustom.cpp:

(WebCore::JSHTMLFormElement::nameGetter): Updated to use the return value from
namedItems, which now returns a Vector.

  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::HTMLAllCollection): Marked the constructor inline,
since it's only used in one place, the create function.
(WebCore::HTMLAllCollection::~HTMLAllCollection): Deleted. No need to have an
explicit destructor since there's nothing special to implement, and includers of
the header file have everything they ened to compile the compiler-generated one.
(WebCore::HTMLAllCollection::namedItemWithIndex): Changed return type to Element.

  • html/HTMLAllCollection.h: Removed unneeded explicit declaration of destructor.

Chagned return type of namedItemWithIndex to Element.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::rootTypeFromCollectionType): Marked this inline. Also
changed this to be a static member function so it can use the RootType enum, which
is now private to the class.
(WebCore::isMatchingHTMLElement): Marked this function static so it will get
internal linkage.
(WebCore::isMatchingElement): Ditto.
(WebCore::previousElement): Marked this function inline since it's called in only
one place. Changed argument type to a reference since it can never be null.
(WebCore::HTMLCollection::iterateForPreviousElement): Changed argument name and
also updated for above changes.
(WebCore::firstMatchingElement): Marked this function static so it will get
internal linkage.
(WebCore::nextMatchingElement): Ditto. Changed argument type to a reference
since it can never be null.
(WebCore::HTMLCollection::item): Changed return type to Element.
(WebCore::nameShouldBeVisibleInDocumentAll): Added an overload that takes an
Element. This streamlines the code below that calls it so it fits on one line.
(WebCore::firstMatchingChildElement): Marked this function static so it will get
internal linkage.
(WebCore::nextMatchingSiblingElement): Ditto. Changed argument type to a reference
since it can never be null.
(WebCore::HTMLCollection::usesCustomForwardOnlyTraversal): Moved here from the
header since, although it's marked inline, it's only used inside this file.
(WebCore::HTMLCollection::traverseForward): Restructured the code a little bit
to make the function smaller and possibly easier to read. This does add one
redundant null check, but it seems OK to do that.
(WebCore::HTMLCollection::collectionTraverseBackward): Tweaked foramtting a bit.
(WebCore::HTMLCollection::namedItem): Changed return type to Element. Tightened
the code that calls nameShouldBeVisibleInDocumentAll so it fits better on one line.
Changed code that handles m_shouldOnlyIncludeDirectChildren to use a nested if
instead of an && since it makes the code a little easier to read.
(WebCore::HTMLCollection::updateNamedElementCache): Tweaked code a little bit,
using shorter variable names, and using references instead of pointers. Also removed
the call to didPopulate, since setNamedItemCache now takes care of that.
(WebCore::HTMLCollection::namedItems): Changed to return a Vector instead of
appending to an existing one. Also use reserveInitialCapacity and uncheckedAppend
for better performance. Added a FIXME, because there seems to be something wrong
here about this being non-virtual. Made other small tweaks to streamline the code.
(WebCore::HTMLCollection::customElementAfter): Moved this here from the header.
There is no reason to need to inline this.

  • html/HTMLCollection.h: Removed unneeded includes. Moved function bodies out

of the class definitions so the class definitions are easier to read. Made some
functions that were formerly public or protected be private instead. Added a call
to didPopulate to setNamedItemCache so the callers don't have to do it.

  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::namedItem): Changed return value to Element.
Tweaked coding style a little bit.
(WebCore::HTMLFormControlsCollection::updateNamedElementCache): Rearranged to
simplify a bit. Don't build the foundInputElements set when the owner is not a
form element, since we don't use the set in that case. Use shorter variable names,
and modern for loops. Also removed the call to didPopulate, since setNamedItemCache
now takes care of that.

  • html/HTMLFormControlsCollection.h: Removed some uneeded forward declarations.

Updated return type for namedItem, and also made the override private.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::namedElements): Changed to return a Vector and updated
function name accordingly.

  • html/HTMLFormElement.h: Ditto.
  • html/HTMLNameCollection.h: Removed a stray blank line.
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::namedItem): Changed return value to Element.
(WebCore::HTMLSelectElement::item): Ditto.

  • html/HTMLSelectElement.h: Ditto.
  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::appendChildSnapOffsets): Rewrote loop as a for loop rather than a while
loop. Removed unwanted use of children()->collectionBegin() to get the first element
child of an HTMLElement. This function uses a mix of DOM and rendering functions that
is probably incorrect, but I did not tackle fixing that at this time.

9:33 AM Changeset in webkit [175946] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175528 - RenderQuote shouldn't need a pre-destructor hook.
<https://webkit.org/b/138352>

Reviewed by Antti Koivisto.

The willBeDestroyed() hook in RenderQuote came from the time when it was
potential unsafe to access the RenderView from a renderer destructor.

Move the code to the plain ol' destructor instead.

  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::~RenderQuote):
(WebCore::RenderQuote::willBeDestroyed): Deleted.

  • rendering/RenderQuote.h:
9:32 AM Changeset in webkit [175945] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175526 - [LEAK] [GStreamer] Removing video element will not free assigned memory
https://bugs.webkit.org/show_bug.cgi?id=46560

Reviewed by Eric Carlson.

Moved the ::extraMemoryCost() implementation to the
MediaPlayerPivateInterface base class. This default implementation
is now shared between the various MediaPlayerPrivate backends,
excepted the AVF MediaSource player which still reports no extra
memory cost.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::totalBytes): Make
totalBytes() part of the MediaPlayerPrivate interface.
(WebCore::MediaPlayerPrivateInterface::extraMemoryCost): Default
implementation.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
9:32 AM Changeset in webkit [175944] by Carlos Garcia Campos
  • 5 edits
    6 adds in releases/WebKitGTK/webkit-2.6

Merge r175525 - Fix animation of orient attribute on marker element
https://bugs.webkit.org/show_bug.cgi?id=137942

Source/WebCore:

Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-11-04
Reviewed by Dirk Schulze.

Fixed implementation of SVG animated angles and the SVG
marker element orient attribute.
SVG animated angle was missing the logic to support animation
from auto to a numeric angle value - this is now added.
The SVG marker element getter for orientType was not returning
the animated value for orientType so in some cases (i.e. when
the initial value and the animated values were of different types)
the animation was not being rendered - although it was running.

Tests: svg/animations/animate-marker-orienttype-1.html

svg/animations/animate-marker-orienttype-2.html
svg/animations/animate-marker-orienttype-3.html

  • svg/SVGAnimatedAngle.cpp:

(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
Added logic to support auto to angle animation.

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::orientType):
This method now returns the animated value if an animation is
running.

  • svg/SVGMarkerElement.h:

LayoutTests:

Patch by Nikos Andrkos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-11-04
Reviewed by Dirk Schulze.

Test the rendered result of the animation of the orient attribute.
Existing tests were only testing the animated value in the DOM.

  • svg/animations/animate-marker-orienttype-1-expected.txt: Added.
  • svg/animations/animate-marker-orienttype-1.html: Added.
  • svg/animations/animate-marker-orienttype-2-expected.txt: Added.
  • svg/animations/animate-marker-orienttype-2.html: Added.
  • svg/animations/animate-marker-orienttype-3-expected.txt: Added.
  • svg/animations/animate-marker-orienttype-3.html: Added.
9:25 AM Changeset in webkit [175943] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175485 - RenderCounter shouldn't need a pre-destructor hook.
<https://webkit.org/b/138316>

Reviewed by Antti Koivisto.

RenderCounter will automatically register/unregister itself with
the RenderView when constructed/destroyed.

It was using a willBeDestroyed() hook because it used to be that you
couldn't get to the RenderView in the destructor. That's no longer
an issue as Document promises that RenderView is the last render tree
node to go away.

  • rendering/RenderCounter.cpp:

(WebCore::RenderCounter::~RenderCounter):
(WebCore::RenderCounter::willBeDestroyed): Deleted.

  • rendering/RenderCounter.h:
9:22 AM Changeset in webkit [175942] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175477 - REGRESSION: Using a media element changes window.name
https://bugs.webkit.org/show_bug.cgi?id=138278
rdar://problem/18704134

Apply the same fix to mediaControlsBase.js. I do not know who uses this file, but
there is no reason to have the bug there.

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.addVideoListeners):
(Controller.prototype.removeVideoListeners):
(Controller.prototype.disconnectControls):

9:22 AM Changeset in webkit [175941] by mitz@apple.com
  • 3 edits
    26 deletes in trunk/Source/WebCore

[Mac] WebCore includes unused cursor image resources
https://bugs.webkit.org/show_bug.cgi?id=138605

Reviewed by Anders Carlsson.

  • Resources/aliasCursor.png: Removed.
  • Resources/cellCursor.png: Removed.
  • Resources/contextMenuCursor.png: Removed.
  • Resources/copyCursor.png: Removed.
  • Resources/eastResizeCursor.png: Removed.
  • Resources/eastWestResizeCursor.png: Removed.
  • Resources/helpCursor.png: Removed.
  • Resources/linkCursor.png: Removed.
  • Resources/moveCursor.png: Removed.
  • Resources/noDropCursor.png: Removed.
  • Resources/noneCursor.png: Removed.
  • Resources/northEastResizeCursor.png: Removed.
  • Resources/northEastSouthWestResizeCursor.png: Removed.
  • Resources/northResizeCursor.png: Removed.
  • Resources/northSouthResizeCursor.png: Removed.
  • Resources/northWestResizeCursor.png: Removed.
  • Resources/northWestSouthEastResizeCursor.png: Removed.
  • Resources/progressCursor.png: Removed.
  • Resources/southEastResizeCursor.png: Removed.
  • Resources/southResizeCursor.png: Removed.
  • Resources/southWestResizeCursor.png: Removed.
  • Resources/verticalTextCursor.png: Removed.
  • Resources/waitCursor.png: Removed.
  • Resources/westResizeCursor.png: Removed.
  • Resources/zoomInCursor.png: Removed.
  • Resources/zoomOutCursor.png: Removed.
  • WebCore.xcodeproj/project.pbxproj: Removed references to the above files.
  • platform/mac/CursorMac.mm:

(WebCore::Cursor::ensurePlatformCursor): For Help, Cell, ZoomIn and ZoomOut, don’t check
for a nil return value from wkCursor(), which can’t occur in any supported configuration.
For None, create a cursor with an empty NSImage instead of loading a transparent image from
the file system.
(WebCore::createNamedCursor): Deleted.

9:21 AM Changeset in webkit [175940] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175475 - RenderLayerModelObject shouldn't need a pre-destructor hook.
<https://webkit.org/b/138314>

Reviewed by Antti Koivisto.

Move code from the willBeDestroyed() pre-destructor hook to the regular
~RenderLayerModelObject() destructor.

We just need to unregister the renderer from the FrameView's set of
viewport-constrained objects. That doesn't require being able to walk
the render tree or call virtuals, which is the main reason you'd use
willBeDestroyed().

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::~RenderLayerModelObject):
(WebCore::RenderLayerModelObject::willBeDestroyed): Deleted.

  • rendering/RenderLayerModelObject.h:
9:16 AM Changeset in webkit [175939] by gyuyoung.kim@samsung.com
  • 7 edits in trunk/Source/WebCore

Unreviewed, rolling out r175844.

Win debug build has broken since r175844.

Reverted changeset:

"Use std::unique_ptr<> and std::make_unique<> in WebCore"
https://bugs.webkit.org/show_bug.cgi?id=138560
http://trac.webkit.org/changeset/175844

9:09 AM Changeset in webkit [175938] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175462 - Reduce the cost of argumentCount checks in the JS bindings
https://bugs.webkit.org/show_bug.cgi?id=138289

Reviewed by Sam Weinig.

Slightly reduce the cost of argumentCount checks in the JS bindings by
hinting to the compiler that it is UNLIKELY that those methods are
called with too few arguments.

I see a 3% progression on PerformanceTests/DOM/DOMDivWalk.html
performance test.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateArgumentsCountCheck):

8:54 AM Changeset in webkit [175937] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Qt/Chromium remnants in MediaPlayer
https://bugs.webkit.org/show_bug.cgi?id=138611

Patch by Philippe Normand <pnormand@igalia.com> on 2014-11-11
Reviewed by Jer Noble.

  • platform/graphics/MediaPlayer.h: Remove unused Qt/Chromium stuff.
8:47 AM Changeset in webkit [175936] by Carlos Garcia Campos
  • 3 edits
    6 adds in releases/WebKitGTK/webkit-2.6

Merge r175432 - Pseudo classes with an escaped parenthesis generate invalid rules
https://bugs.webkit.org/show_bug.cgi?id=138266

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-10-31
Reviewed by Antti Koivisto.

Source/WebCore:

Since the functional pseudo classes are part of the list of PseudoClassAndCompatibilityElement,
they could be created by the rule

pseudo:

':' IDENT

if the parenthesis is escaped. For example, with ":not
(", the IDENT would be
"not(", CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector would
find a pseudo class type of PseudoClassNot, and the action would create an invalid
CSSSelector for a :not() without nested selector.

This patch fixes the issue by detecting the function case in
CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector().

An other solution would be to split PseudoClassAndCompatibilityElement into simple pseudo class
and functional pseudo classes. We may do that some day but at the moment it is a lot of work with
a little benefit.

Tests: fast/css/crash-on-incomplete-webkit-any.html

fast/css/pseudo-escaped-parenthesis.html
fast/selectors/invalid-functional-pseudo-class.html

  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):

LayoutTests:

  • fast/selectors/invalid-functional-pseudo-class-expected.txt: Added.
  • fast/selectors/invalid-functional-pseudo-class.html: Added.

New test for all the functional pseudo classes.

  • fast/css/crash-on-incomplete-webkit-any-expected.txt: Added.
  • fast/css/crash-on-incomplete-webkit-any.html: Added.
  • fast/css/pseudo-escaped-parenthesis-expected.txt: Added.
  • fast/css/pseudo-escaped-parenthesis.html: Added.

Those tests come from blink. Rune solved the same problem a year ago on blink
in https://chromiumcodereview.appspot.com/23710067
The patch is quite different because blink uses an ancient code base, but the tests
can still be useful so I included them here.

8:40 AM Changeset in webkit [175935] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r175416 - Make writes to RegExpObject.lastIndex cacheable.
<https://webkit.org/b/138255>

Reviewed by Geoffrey Garen.

We were neglecting to IC the puts to RegExpObject.lastIndex on Octane/regexp,
and ended up spending 4.5% of a time profile in operationPutByIdNonStrict.

~3% progression on Octane/regexp.

  • runtime/RegExpObject.cpp:

(JSC::regExpObjectSetLastIndexStrict):
(JSC::regExpObjectSetLastIndexNonStrict):
(JSC::RegExpObject::put):

8:36 AM Changeset in webkit [175934] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175395 - Short-circuit repaints with empty rects
https://bugs.webkit.org/show_bug.cgi?id=138234

Reviewed by Zalan Bujtas.

Repaints with an empty rectangle are common enough that it's worth
short-circuiting them.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintUsingContainer):

8:34 AM Changeset in webkit [175933] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r175382 - ASSERT(!m_deletionHasBegun) in RefCounted.h should be ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=138141

Reviewed by Alexey Proskuryakov.

  • wtf/RefCounted.h:

(WTF::RefCountedBase::ref):
(WTF::RefCountedBase::relaxAdoptionRequirement):
(WTF::RefCountedBase::derefBase):
(WTF::adopted):

8:31 AM Changeset in webkit [175932] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move '-webkit-marquee-speed' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138595

Reviewed by Antti Koivisto.

Move '-webkit-marquee-speed' CSS property from DeprecatedStyleBuilder
to the new StyleBuilder by adding a new MarqueeSpeed Converter.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue): Deleted.
(WebCore::ApplyPropertyMarqueeSpeed::createHandler): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertMarqueeSpeed):

8:29 AM Changeset in webkit [175931] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Unskip now passing http tests
https://bugs.webkit.org/show_bug.cgi?id=137694

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-11-11
Reviewed by Csaba Osztrogonác.

  • platform/efl/TestExpectations:
8:26 AM Changeset in webkit [175930] by svillar@igalia.com
  • 13 edits
    1 add
    2 deletes in trunk

[CSS Grid Layout] Limit the size of explicit/implicit grid
https://bugs.webkit.org/show_bug.cgi?id=136217

Reviewed by Andreas Kling.

Source/WebCore:

A recent change in the specs allow us to set a limit (maximum
size) for both the explicit and implicit grids so we can protect
ourselves from absurdly huge grid specifications. It was decided
to use the recommended limit which is 1 million.

This means that we can remove the old limitation for the number of
repetitions in repeat(). Instead we now clamp the number of
repetitions to the maximum value that allow us to have the maximum
number of whole repetitions without exceeding the track number
limit.

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction): Replaced the
old limit by the new one.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid): Use the amount of tracks
provided by GridResolvedPosition.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.

  • rendering/style/GridCoordinate.h:

(WebCore::GridSpan::GridSpan):

  • rendering/style/GridResolvedPosition.cpp:

(WebCore::GridResolvedPosition::explicitGridColumnCount): Bring
the static function back to life.
(WebCore::GridResolvedPosition::explicitGridRowCount): Ditto.
(WebCore::explicitGridSizeForSide):

  • rendering/style/GridResolvedPosition.h:

Tools:

Added a new unit test for the CSS parser. Right now it only checks
that we properly clamp the maximum number of tracks on a grid to a
maximum of 1 million.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/CSSParser.cpp: Added.

(TestWebKitAPI::computeNumberOfTracks): Helper function.
(TestWebKitAPI::TEST): Added a
CSSPropertyParserTest.GridTrackLimits test case.

LayoutTests:

Removed as they are now part of the WebCore's CSSParser.cpp unit
test. The reason why it was moved there is because the test would
require huge (~1000000 tracks) grid allocations, making the test
quite slow specially on Debug builds.

  • fast/css-grid-layout/grid-element-repeat-max-repetitions-expected.txt: Removed.
  • fast/css-grid-layout/grid-element-repeat-max-repetitions.html: Removed.
8:14 AM Changeset in webkit [175929] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r175372 - Unreviewed assertion fix.

RegExpCachedResult::m_reified is now the dedicated member that knows whether
the result was reified into an array or not. Check that instead of m_result
which is now single-purpose.

  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::setInput):

8:13 AM Changeset in webkit [175928] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175370 - [GStreamer] Video resolution changes trigger a crash in the TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=137065

Reviewed by Gustavo Noronha Silva.

Switch to GstSample for buffer+caps communication between the
video sink and the player. Using a single object type for this
avoid issues where the caps might not correctly describe the
buffer contents anymore, for example when the video resolution is
changed.

  • platform/graphics/gstreamer/ImageGStreamer.h: Use GstSample

instead of GstBuffer+GstCaps.
(WebCore::ImageGStreamer::createImage):

  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Ditto.

(ImageGStreamer::ImageGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::mediaPlayerPrivateRepaintCallback): The repaint signal
now uses a GstSample instead of a GstBuffer.
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
Store the current sample instead of a buffer. Also renamed the
mutex protecting access to the sample.
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize): Return
early if no sample is available. The caps used to get the video
size are store in the sample.
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Use
GstSample instead of GstBuffer.
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Now store a

GstSample internally. Also removed the now useless current-caps property.
(_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate): Renamed the
mutex protecting access to the sample.
(_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Ditto.
(webkit_video_sink_init): Disable last-sample in basesink since we
already store one in our sink anyway.
(webkitVideoSinkTimeoutCallback): Switch to GstSample.
(webkitVideoSinkRender): Ditto.
(unlockSampleMutex): Ditto.
(webkitVideoSinkUnlock): Ditto.
(webkitVideoSinkUnlockStop): Ditto.
(webkitVideoSinkStop): Ditto!
(webkitVideoSinkStart): Ditto.
(webkit_video_sink_class_init): Drop current-caps property.
(webkitVideoSinkGetProperty): Deleted.
(unlockBufferMutex): Deleted.

8:11 AM Changeset in webkit [175927] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r175365 - Use plain JSArray for RegExp matches instead of a lazily populated custom object.
<https://webkit.org/b/138191>

Reviewed by Geoffrey Garen.

We're already offering two RegExp matching APIs, one that collects subpattern
matches (exec), and one that simply tests for a match (test).
Given that, it was pretty overkill to lazily populate the resulting array of
matches, since the user could simply use test() if they didn't need them.

This allows the JIT to generate better code for RegExp match arrays, and also
enables some fast paths in the JSC runtime that check if an object isJSArray().

Looks like ~1.5% improvement on Octane/regexp according to run-jsc-benchmarks.

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • runtime/JSArray.h:

(JSC::createArrayButterflyWithExactLength): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::visitChildren):
(JSC::RegExpCachedResult::lastResult):
(JSC::RegExpCachedResult::leftContext):
(JSC::RegExpCachedResult::rightContext):

  • runtime/RegExpCachedResult.h:

(JSC::RegExpCachedResult::RegExpCachedResult):
(JSC::RegExpCachedResult::record):
(JSC::RegExpCachedResult::input):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getBackref):
(JSC::RegExpConstructor::getLastParen):
(JSC::RegExpConstructor::getLeftContext):
(JSC::RegExpConstructor::getRightContext):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createRegExpMatchesArray):
(JSC::RegExpMatchesArray::RegExpMatchesArray): Deleted.
(JSC::RegExpMatchesArray::create): Deleted.
(JSC::RegExpMatchesArray::finishCreation): Deleted.
(JSC::RegExpMatchesArray::visitChildren): Deleted.
(JSC::RegExpMatchesArray::reifyAllProperties): Deleted.
(JSC::RegExpMatchesArray::reifyMatchProperty): Deleted.
(JSC::RegExpMatchesArray::leftContext): Deleted.
(JSC::RegExpMatchesArray::rightContext): Deleted.

  • runtime/RegExpMatchesArray.h:

(JSC::RegExpMatchesArray::createStructure): Deleted.
(JSC::RegExpMatchesArray::reifyAllPropertiesIfNecessary): Deleted.
(JSC::RegExpMatchesArray::reifyMatchPropertyIfNecessary): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertySlot): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertySlotByIndex): Deleted.
(JSC::RegExpMatchesArray::put): Deleted.
(JSC::RegExpMatchesArray::putByIndex): Deleted.
(JSC::RegExpMatchesArray::deleteProperty): Deleted.
(JSC::RegExpMatchesArray::deletePropertyByIndex): Deleted.
(JSC::RegExpMatchesArray::getOwnPropertyNames): Deleted.
(JSC::RegExpMatchesArray::defineOwnProperty): Deleted.
(JSC::isRegExpMatchesArray): Deleted.

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::exec):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncMatch):

8:07 AM WebKitGTK/SpeedUpBuild edited by Csaba Osztrogonác
Add one more useful setting for icecc-ccache combo (diff)
7:52 AM Changeset in webkit [175926] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175363 - ASSERTION NOT REACHED because RenderStyle::setWordSpacing() does not handle a Length value of type 'Calculated'.
https://bugs.webkit.org/show_bug.cgi?id=138054.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-29
Reviewed by Zalan Bujtas.

Source/WebCore:

A Length of type 'Calculated' can be generated from blending two lengths of
different types. Setting the wordSpacing of the render style should be handled
correctly when the type of the new value is 'Calculated'.

Tests: css3/calculated-word-spacing.html.

Add a case for setting the render style wordSpacing to a <length> of type 'Calculated'.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setWordSpacing):

LayoutTests:

Ensure the render style's wordSpacing can be set correctly when the type of
the new value is 'Calculated'. The 'Calculated' Length value can result from
blending two Length values of different types. And these two Length values
are defined in two consecutive css animation key frames.

  • css3/calculated-word-spacing-expected.txt: Added.
  • css3/calculated-word-spacing.html: Added.
7:50 AM Changeset in webkit [175925] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175197 - Clamp wordSpacing percentage value.
https://bugs.webkit.org/show_bug.cgi?id=129350.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-24
Reviewed by Zalan Bujtas.

Source/WebCore:

When the CSS wordSpacing property is percentage, its value has to be within the
pre-defined min/max values for the CSS length type. This is done the same way
the wordSpacing of type <length> is handled.

Tests: css3/infinite-word-spacing.html.

Move the definitions of minValueForCssLength and maxValueForCssLength from the
.cpp file to the .h file.

  • css/CSSPrimitiveValue.cpp:
  • css/CSSPrimitiveValue.h:

Clamp the wordSpacing value to minValueForCssLength and maxValueForCssLength when
its type is percentage.

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyWordSpacing::applyValue):

LayoutTests:

Make sure that setting the CSS style wordSpacing property to very huge percentage
value and blending this value with other values for animating key frames does
not assert or crash. The expectation is to have this huge value to be clamped to
the pre-defined min/max values for the CSS length type. So when blending the clamped
value with other wordSpacing values, the result can't be NaN. This should be very
similar to the case when it is set to a huge <length> value.

  • css3/infinite-word-spacing-expected.txt: Added.
  • css3/infinite-word-spacing.html: Added.
7:38 AM Changeset in webkit [175924] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175177 - Replace INT_MIN/MAX / kFixedPointDenominator with intMin/MaxForLayoutUnit.
https://bugs.webkit.org/show_bug.cgi?id=138047

Reviewed by Andreas Kling.

No change in functionality.

  • css/CSSPrimitiveValue.cpp:
7:22 AM Changeset in webkit [175923] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175347 - Notify Settings object when its Page object goes away.
https://bugs.webkit.org/show_bug.cgi?id=138183
rdar://problem/18786900

Reviewed by Andreas Kling.

I could not make a test for this issue.

  • page/Page.cpp:

(WebCore::Page::~Page):

  • page/Settings.cpp:

(WebCore::setImageLoadingSettings):
(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingEnabled):
(WebCore::Settings::setTextAutosizingWindowSizeOverride):
(WebCore::Settings::setTextAutosizingFontScaleFactor):
(WebCore::Settings::setMediaTypeOverride):
(WebCore::Settings::setScriptEnabled):
(WebCore::Settings::setUserStyleSheetLocation):
(WebCore::Settings::setMinDOMTimerInterval):
(WebCore::Settings::minDOMTimerInterval):
(WebCore::Settings::domTimerAlignmentInterval):
(WebCore::Settings::setUsesPageCache):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::setDNSPrefetchingEnabled):
(WebCore::Settings::setStorageBlockingPolicy):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
(WebCore::Settings::setFontFallbackPrefersPictographs):

  • page/Settings.h:

(WebCore::Settings::pageDestroyed):

7:16 AM Changeset in webkit [175922] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175345 - Remove invalid float from RootInlineBox.
https://bugs.webkit.org/show_bug.cgi?id=137707

Reviewed by Antti Koivisto.

In certain cases, floating boxes get attached to the last (root) inline box.
When this particular floating box gets destroyed, it also needs to be detached
from the last inline box.
Source/WebCore:

  1. Introduce RootInlineBox::removeFloat() (vs. RootInlineBox::appendFloat())
  2. Ensure that it is called when the floating box is being destroyed.

Test: fast/inline/crash-when-inline-box-has-invalid-float.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::removeFloatingObject):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout): During style recalc, while
tearing down the render tree, we can get to a state where a block element has both inline and block children.
It happens when the style change on an element makes sibling anonymous block wrappers detached.
In that case the markAllDescendantsWithFloatsForLayout() call does not get propagated down on the
block child elements as we return early at the childrenInline() check.

  • rendering/RootInlineBox.h:

(WebCore::RootInlineBox::removeFloat):

LayoutTests:

  • fast/inline/crash-when-inline-box-has-invalid-float-expected.txt: Added.
  • fast/inline/crash-when-inline-box-has-invalid-float.html: Added.
7:12 AM Changeset in webkit [175921] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6

Merge r175344 - [GTK] Bump libsoup's minimum version to 2.42.0.
https://bugs.webkit.org/show_bug.cgi?id=138086

Reviewed by Martin Robinson.

The SOUP_CHECK_VERSION macro was added in libsoup 2.41.1, and the
soup-version.h header was added to soup.h in 2.41.4, which then becomes
the minimum version required to build the port these days.

In addition, since the autotools build system required 2.42.0 before
being retired, require the same version here. Version 2.42.0 was also
recommended in
https://lists.webkit.org/pipermail/webkit-gtk/2013-March/001387.html.

  • Source/cmake/OptionsGTK.cmake:
7:10 AM Changeset in webkit [175920] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r175299 - Cast std::chrono::duration.count() to int64_t in ArgumentCoder
https://bugs.webkit.org/show_bug.cgi?id=136981

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2014-10-28
Reviewed by Alexey Proskuryakov.

Explicitly cast the return value of std::chrono::duration.count() to
a fixed-size interger type, which prevents compilation error when
the return value type matches neither int32_t nor int64_t.

  • Platform/IPC/ArgumentCoders.h:
7:06 AM Changeset in webkit [175919] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175277 - FrameProgressTracker expects Page to not have detached
https://bugs.webkit.org/show_bug.cgi?id=138061

Reviewed by Alexey Proskuryakov.

In some cases, a Page may be detached from a Frame before its
FrameLoader is torn down, causing FrameProgressTracker's destructor
to hit a null pointer.

No new tests; it is impossible to reliably simulate the null pointer
case without intrusive code changes.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):

7:05 AM Changeset in webkit [175918] by Carlos Garcia Campos
  • 3 edits
    6 adds in releases/WebKitGTK/webkit-2.6

Merge r175243 - Crash when attempting to perform array iteration on a non-array with numeric keys not initialized.
<https://webkit.org/b/137814>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

The arrayIteratorNextThunkGenerator() thunk was not checking for the case where
the butterfly may be NULL. This was the source of the crash, and is now fixed.

In addition, it is also not checking for the case where a property named "length"
may have been set on the iterated object. The thunk only checks the butterfly's
publicLength for its iteration operation. Array objects will work fine with this
because it always updates its butterfly's publicLength when its length changes.
In the case of iterable non-Array objects, the "length" property will require a
look up outside of the scope of this thunk. The fix is simply to limit the fast
case checks in this thunk to Array objects.

  • jit/ThunkGenerators.cpp:

(JSC::arrayIteratorNextThunkGenerator):

LayoutTests:

  • js/array-length-shortening-expected.txt: Added.
  • js/array-length-shortening.html: Added.
  • js/for-of-crash-expected.txt: Added.
  • js/for-of-crash.html: Added.
  • js/script-tests/array-length-shortening.js: Added.

(testLengthShortening):
(denseInt32Elements):
(denseDoubleElements):
(denseObjectElements):
(holeyInt32Elements):
(holeyDoubleElements):
(holeyObjectElements):
(arrayStorageInt32Elements):
(arrayStorageDoubleElements):
(arrayStorageObjectElements):
(sparseInt32Elements):
(sparseDoubleElements):
(sparseObjectElements):

  • js/script-tests/for-of-crash.js: Added.

(foo):

7:02 AM Changeset in webkit [175917] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175241 - AX: input type=hidden is being exposed when aria-hidden=false
https://bugs.webkit.org/show_bug.cgi?id=138106

Reviewed by Benjamin Poulain.

Source/WebCore:

If an input type=hidden was inside an aria-hidden=false, it would appear because
the lack of a RenderObject behind that object was not blocking its adoption into the AX tree.
We should explicity check for whether the type is hidden and then return an appropriate role.

Test: accessibility/input-type-hidden-in-aria-hidden-false.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):

LayoutTests:

  • accessibility/input-type-hidden-in-aria-hidden-false-expected.txt: Added.
  • accessibility/input-type-hidden-in-aria-hidden-false.html: Added.
6:59 AM Changeset in webkit [175916] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175312 - Crash in CachedRawResource::canReuse() when reloading http://dnd.wizards.com/dungeons-and-dragons/story
https://bugs.webkit.org/show_bug.cgi?id=138164

Reviewed by Andreas Kling.

Source/WebCore:

This patch fixes a crash when reloading the following URL:
http://dnd.wizards.com/dungeons-and-dragons/story

We were crashing in CachedRawResource::canReuse() because header.key
would sometimes be a null String and we would call
HashMap::get(nullString).

The real issue was that header.key was null in the first place, which
means that even though the HTTPHeaderMap iterator is valid, it->key
is a null String, which should never happen. There was a bug in the
HTTPHeaderMapConstIterator() constructor that would cause the
iterator key/value pair to not get initialized if the HTTPHeaderMap
contained *only* uncommon HTTP headers. This patch updates the
constructor so that we fall back to updating the key/value from the
uncommon header map, if we failed to initialized from the common
header map (because it was empty).

Test: http/tests/cache/xhr-uncommon-header.html

  • platform/network/HTTPHeaderMap.h:

(WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::HTTPHeaderMapConstIterator):

LayoutTests:

Add a layout test that does XHR loads from cache with only uncommon
HTTP headers to reproduce a crash in CachedRawResource::canReuse()
when iterating over a HTTPHeaderMap that had uncommon HTTP headers
but no common ones.

  • http/tests/cache/xhr-uncommon-header-expected.txt: Added.
  • http/tests/cache/xhr-uncommon-header.html: Added.
6:40 AM Changeset in webkit [175915] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r175231 - Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
https://bugs.webkit.org/show_bug.cgi?id=138079

Reviewed by Anders Carlsson.

Source/WebCore:

Use separate HashMaps for common and uncommon headers in HTTPHeaderMap:

  • a (faster) HashMap<HTTPHeaderMap, String> for common HTTP headers
  • a HashMap<String, String, CaseFoldingHash> for uncommon ones

This avoids having to construct Strings from HTTPHeaderMap values for
storing. This also means we have less isolated String copies to do when
creating cross-thread data. The common headers HashMap should also be
a bit more efficient due to faster hashing and faster key comparison in
case of collision.

Some calls sites can also benefit from having direct access to common
headers of the request in HTTPHeaderName type.

This patch adds a new HTTPHeaderMapConstIterator iterator type for
HTTPHeaderMap so that call sites that do not need / want to distinguish
common / uncommon headers still do not need to. They can keep using
modern C++ loops over HTTPHeaderMap objects and get <String, String>
key/value pairs.

No new tests, no behavior change.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
Have isOnAccessControlSimpleRequestHeaderWhitelist() take a
HTTPHeaderName in argument instead of a String as only common headers
are in the whitelist.

(WebCore::isSimpleCrossOriginAccessRequest):
Call isOnAccessControlSimpleRequestHeaderWhitelist() only for common
HTTP headers.

  • loader/CrossOriginAccessControl.h:

Have isOnAccessControlSimpleRequestHeaderWhitelist() take a
HTTPHeaderName in argument instead of a String as only common headers
are in the whitelist.

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
Call isOnAccessControlSimpleRequestHeaderWhitelist() only for common
HTTP headers.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):
Call httpHeaderFields().commonHeaders().find() instead of
httpHeaderFields().find() as we are looking for a common header.
HTTPHeaderMap::find(HTTPHeaderName) was removed now that we have a
HashMap dedicated to common headers.

  • loader/cache/CachedRawResource.cpp:

(WebCore::shouldIgnoreHeaderForCacheReuse):
Update argument type to be a HTTPHeaderName instead of a String as
only common HTTP headers can be ignored for cache reuse. The
implementation already dealt with HTTPHeaderName type and had to
call findHTTPHeaderName(). This is no longer needed now that the
call site now has direct access to common headers in HTTPHeaderName
type.

(WebCore::CachedRawResource::canReuse):

  • Only call shouldIgnoreHeaderForCacheReuse() for common HTTP headers.
  • Slightly optimize the second loop (the one over oldHeaderMap) to only check that the key is present in newHeaderMap, without actually comparing the String values. If the String values were different, the first loop would have seen it already and we would have returned early.

Source/WebKit2:

Update the WK2 IPC HTTPHeaderMap serialization / deserialization code
to leverage the fact that HTTPHeaderMap now stores common HTTP headers
and uncommon one in separate HashMaps. This speeds up deserialization
as we no longer need to call findHTTPHeaderName() for every decoded
header. We already know if the header is a common one or not, and if
it is then we already have a HTTPHeaderName type instead of a String.

I see that we spend ~40% less time in HTTPHeaderMap decoding when
loading http://flickr.com/explore, while the encoding takes about
the same amount of time as before.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<HTTPHeaderMap>::encode):
(IPC::ArgumentCoder<HTTPHeaderMap>::decode):

Source/WTF:

Add HashTraits for C++11 strong enum types. Using integer HashTraits for
strong enums would be inconvenient as it would require casting between
integer and strong enum types.

  • wtf/HashTraits.h:

(WTF::StrongEnumHashTraits::emptyValue):
(WTF::StrongEnumHashTraits::constructDeletedValue):
(WTF::StrongEnumHashTraits::isDeletedValue):

6:12 AM Changeset in webkit [175914] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175221 - Shrink MathMLOperatorDictionary::dictionary table
https://bugs.webkit.org/show_bug.cgi?id=137914

Reviewed by Darin Adler.

Improve packing of the Entry structure that's used for elements
of the MathMLOperatorDictionary::dictionary table. This drops the
size of the struct from 16 bytes to just 4 bytes, and shrinks the
size of the dictionary table from rougly 16 kB down to 4 kB.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::MathMLOperatorDictionary::ExtractKey):
(WebCore::RenderMathMLOperator::setOperatorProperties):

  • rendering/mathml/RenderMathMLOperator.h:
6:10 AM Changeset in webkit [175913] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175213 - Images with usemap should not have a link state
https://bugs.webkit.org/show_bug.cgi?id=138071

Reviewed by Andreas Kling.

Source/WebCore:

Image tags were incorrectly getting a link state if a usemap is defined.
The <area> of the usemap is supposed to get the link state, but never the image.

Unfortunately, the Accessibility code was relying on the wrong behavior
to set the ImageMapRole, most of the patch is updating that code to get
the correct role without the link state.

Test: fast/selectors/images-with-usemap-should-not-match-link.html

The accessibility code is covered by a few tests in accessibility/.
The test accessibility/aria-used-on-image-maps.html ensure the <area>
elements also get the correct role.

  • dom/Node.h:

(WebCore::Node::setIsLink):
(WebCore::Node::clearIsLink): Deleted.
Unused code.

(WebCore::Node::isLink):
Move with its setter for clarity.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):
This is the bug.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
Here the branches for the role ImageMap where behind isLink() which would
never be valid after the fix.

My fix here was to use the same definition previously set by HTMLImageElement::parseAttribute(),
any usemap attribute qualifies the node for ImageMapRole.

(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::linkedUIElements):
(WebCore::AccessibilityRenderObject::url):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isAnchor): Deleted.
Something funny I discovered is the Accessibility code worked around the bug
by defining isAnchor() that exclude images from isLink().

Since isLink() will no longer be true for images, the hack can be removed.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::anchorElement):
(WebCore::AccessibilityNodeObject::isAnchor): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):

LayoutTests:

  • fast/selectors/images-with-usemap-should-not-match-link-expected.txt: Added.
  • fast/selectors/images-with-usemap-should-not-match-link.html: Added.
5:39 AM Changeset in webkit [175912] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175158 - WebContent crash at WebCore::RenderTextControl::textFormControlElement const.
https://bugs.webkit.org/show_bug.cgi?id=138035

Reviewed by Antti Koivisto.

NULL-check element().renderer() before using it.

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::didSetValueByUserEdit):

5:36 AM Changeset in webkit [175911] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r175152 - Carets in GMail and iCloud compositions are the foreground text color
https://bugs.webkit.org/show_bug.cgi?id=138029

Reviewed by Simon Fraser.

Source/WebCore:

Previously, we were only checking whether the background colors of the foreground and background
elements were the same, rather than taking validity and opacity into consideration.

Test: editing/caret/color-span-inside-editable-background.html

  • editing/FrameSelection.cpp:

(WebCore::disappearsIntoBackground):
(WebCore::CaretBase::paintCaret):

LayoutTests:

Test the case where the content editable root has a background color specified.

  • editing/caret/color-span-inside-editable-background-expected.html: Added.
  • editing/caret/color-span-inside-editable-background.html: Added.
5:32 AM Changeset in webkit [175910] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r175115 - [GTK] Fix build on Hurd
https://bugs.webkit.org/show_bug.cgi?id=138003

Reviewed by Carlos Garcia Campos.

  • wtf/InlineASM.h:
  • wtf/Platform.h:
5:13 AM Changeset in webkit [175909] by jinwoo7.song@samsung.com
  • 31 edits
    1 add in trunk/LayoutTests

[EFL] Unreviewed EFL gardening after r174233.

  • platform/efl/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
  • platform/efl/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
  • platform/efl/css2.1/t1602-c546-txt-align-00-b-expected.txt:
  • platform/efl/fast/multicol/float-avoidance-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/efl/fast/multicol/positive-leading-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-avoidance-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-avoidance-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-1-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-10-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-2-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-3-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-4-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-5-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-6-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-7-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-8-expected.txt:
  • platform/efl/fast/repaint/line-flow-with-floats-9-expected.txt:
  • platform/efl/fast/text/hyphenate-character-expected.txt:
  • platform/efl/fast/text/hyphens-expected.txt:
  • platform/efl/fast/text/justified-selection-at-edge-expected.txt:
  • platform/efl/fast/text/justify-nbsp-expected.txt: Added.
  • platform/efl/fast/text/trailing-white-space-2-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_align_justify-expected.txt:
5:07 AM Changeset in webkit [175908] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175100 - AX: Do the early return when role is different than UnknownRole
https://bugs.webkit.org/show_bug.cgi?id=137880

Reviewed by Chris Fleizach.

We do not need to call ariaRoleAttribute() to check whether m_ariaRole is different than UnknownRole.
Just check m_ariaRole instead.

No new tests, no behavior change, just some cleanup

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::determineAccessibilityRole):

5:06 AM Changeset in webkit [175907] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175095 - RenderThemeGtk::mediaControlsScript() is not defined when VIDEO is disabled.
<https://webkit.org/b/137970>.

Patch by Milan Crha <mcrha@redhat.com> on 2014-10-23
Reviewed by Carlos Garcia Campos.

  • rendering/RenderThemeGtk.cpp:
5:05 AM Changeset in webkit [175906] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175088 - Do not include GraphicsContext3D.h when 3D_GRAPHICS is not used.
<https://webkit.org/b/137969>.

Patch by Milan Crha <mcrha@redhat.com> on 2014-10-22
Reviewed by Carlos Garcia Campos.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:
5:04 AM Changeset in webkit [175905] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r175087 - Do not build WidgetBackingStoreGtkX11 when not used.
<https://webkit.org/b/137972>.

Patch by Milan Crha <mcrha@redhat.com> on 2014-10-22
Reviewed by Carlos Garcia Campos.

  • platform/gtk/WidgetBackingStoreGtkX11.cpp:
  • platform/gtk/WidgetBackingStoreGtkX11.h:
4:31 AM Changeset in webkit [175904] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.6

Merge r175078 - String(new Date(Mar 30 2014 01:00:00)) is wrong in CET
https://bugs.webkit.org/show_bug.cgi?id=130967

Patch by Byungseon Shin <sun.shin@lge.com> on 2014-10-22
Reviewed by Mark Lam.

Source/JavaScriptCore:

By definition of calculateLocalTimeOffset, input time should be UTC time.
But there are many cases when input time is based on local time.
So, it gives erroneous results while calculating offset of DST boundary time.
By adding a argument to distinguish UTC and local time, we can get the correct offset.

(JSC::constructDate):
(JSC::callDate):
(JSC::dateUTC):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::calculateGregorianDateTime):
(JSC::DateInstance::calculateGregorianDateTimeUTC):

  • runtime/DatePrototype.cpp:

(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetMilliSeconds):
(JSC::dateProtoFuncSetUTCMilliseconds):
(JSC::dateProtoFuncSetSeconds):
(JSC::dateProtoFuncSetUTCSeconds):
(JSC::dateProtoFuncSetMinutes):
(JSC::dateProtoFuncSetUTCMinutes):
(JSC::dateProtoFuncSetHours):
(JSC::dateProtoFuncSetUTCHours):
(JSC::dateProtoFuncSetDate):
(JSC::dateProtoFuncSetUTCDate):
(JSC::dateProtoFuncSetMonth):
(JSC::dateProtoFuncSetUTCMonth):
(JSC::dateProtoFuncSetFullYear):
(JSC::dateProtoFuncSetUTCFullYear):
(JSC::dateProtoFuncSetYear):

  • runtime/JSDateMath.cpp:

(JSC::localTimeOffset):
(JSC::gregorianDateTimeToMS):
(JSC::msToGregorianDateTime):
(JSC::parseDateFromNullTerminatedCharacters):

  • runtime/JSDateMath.h:
  • runtime/VM.h:

(JSC::LocalTimeOffsetCache::LocalTimeOffsetCache):
(JSC::LocalTimeOffsetCache::reset):
Passing TimeType argument to distingush UTC time and local time.

Source/WTF:

By definition of calculateLocalTimeOffset, input time should be UTC time.
But there are many cases when input time is based on local time.
So, it gives erroneous results while calculating offset of DST boundary time.
By adding a argument to distinguish UTC and local time, we can get the correct offset.

  • wtf/DateMath.cpp:

(WTF::calculateLocalTimeOffset):
(WTF::parseDateFromNullTerminatedCharacters):
Compensate time offset depends on UTC time or local time.

  • wtf/DateMath.h:

Add argument to differenciate UTC or local time.

LayoutTests:

Set latest DST timezone boundary values on
<http://www.timeanddate.com/time/zone/usa/los-angeles>

  • js/dom/script-tests/date-DST-time-cusps.js:
4:14 AM Changeset in webkit [175903] by Carlos Garcia Campos
  • 3 edits
    9 adds in releases/WebKitGTK/webkit-2.6

Merge r175074 - SVG loaded through html <img> can't request to load any external resources.
https://bugs.webkit.org/show_bug.cgi?id=137762.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-22
Reviewed by Daniel Bates.

Source/WebCore:

SVG images have unique security rules that prevent them from loading any external
resources. This patch enforces these rules in CachedResourceLoader::canRequest for
all non-data-uri resources.

The fix and the tests are ported but modified a little from the chromium fix:
http://src.chromium.org/viewvc/blink?view=rev&rev=176084

Test: http/tests/security/svg-image-with-cached-remote-image.html

http/tests/security/svg-image-with-css-cross-domain.html

For the SVG image, prevent loading any external sub-resource except for data urls.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest):

LayoutTests:

Ensure that SVG images, which are loaded through the <img> tag or through the
CSS background image, cannot load any external sub-resource except for data-
URL resources (though this doesn't work at the time of writing, see bug #137941).
Also ensure the same rule is enforced on cached resources.

The tests are ported but modified a little from the chromium fix:
http://src.chromium.org/viewvc/blink?view=rev&rev=176084

Set the circle background to orange

  • http/tests/security/resources/image-with-css-cross-domain-circle.css: Added.

(circle):

Set the circle stroke-width = 2 and the circle stroke = red

  • http/tests/security/resources/image-with-css-cross-domain-circle2.css: Added.

(circle):

This svg references the two css files: one is relative path and the other is absolute path

  • http/tests/security/resources/image-with-css-cross-domain.svg: Added.

This svg references an external image.

  • http/tests/security/resources/image-with-remote-image.svg: Added.

A helper css which sets the formatting style for some html tags

  • http/tests/security/svg-image-with-css-cross-domain.css: Added.

(span):
(span.circle-css-cross-domain):
(embed):
(iframe):

Test the svg which is referenced as a cached image by an <object> tag, does not load
external sub-resource.

  • http/tests/security/svg-image-with-cached-remote-image-expected.html: Added.
  • http/tests/security/svg-image-with-cached-remote-image.html: Added.

Test loading sub-resources for an svg which is included in the html by different ways
and which references external css files.
Ensure the image object does not load any external sub-resources.

  • http/tests/security/svg-image-with-css-cross-domain-expected.html: Added.
  • http/tests/security/svg-image-with-css-cross-domain.html: Added.
4:11 AM Changeset in webkit [175902] by Carlos Garcia Campos
  • 5 edits
    8 adds in releases/WebKitGTK/webkit-2.6

Merge r175053 - XMLHttpRequest should support attribute responseURL as per latest XHR spec.
https://bugs.webkit.org/show_bug.cgi?id=136938

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-10-22
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Tests: http/tests/xmlhttprequest/basic-auth-responseURL.html

http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html
http/tests/xmlhttprequest/redirect-credentials-responseURL.html
http/tests/xmlhttprequest/xmlhttprequest-responseURL.html

XMLHttpRequest should support attribute responseURL

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseURL):

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:

LayoutTests:

Added test to check responseURL attribute in XMLHttpRequest.

  • http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt: Added.
  • http/tests/xmlhttprequest/basic-auth-responseURL.html: Added.
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt: Added.
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html: Added.
  • http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt: Added.
  • http/tests/xmlhttprequest/redirect-credentials-responseURL.html: Added.
  • http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt: Added.
  • http/tests/xmlhttprequest/xmlhttprequest-responseURL.html: Added.
4:03 AM Changeset in webkit [175901] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.6

Merge r175043 - Match spec for font-weight: bolder|lighter
https://bugs.webkit.org/show_bug.cgi?id=137919

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-10-22
Reviewed by Andreas Kling.

This patch is a merge of Blink's
Source/WebCore:

https://chromiumcodereview.appspot.com/15994009

Currently, bolder and lighter change font-weight in a non-compliant way.
The spec (http://www.w3.org/TR/css3-fonts/#bolderlighter) defines
exactly what the computed values should be given the inherited weight values,
so we should match those.

The removed FIXME's for selecting the next lightest/heaviest weight from
the used font family seems to refer to behaviour from
CSS1 (http://www.w3.org/TR/CSS1/#font-weight), while this is replaced
with a simpler procedure for resolving bolder and lighter in font weights
in CSS2 (http://www.w3.org/TR/CSS2/fonts.html#propdef-font-weight) and CSS3 (link above).

and https://codereview.chromium.org/137813004

According to http://dev.w3.org/csswg/css-fonts/#font-weight-prop, the computed
weight of 'lighter' and 'bolder' are based on the inherited 'font-weight', so set
that inherited weight before calculating 'lighter' and 'bolder'.

Tests: css3/font-weight-multiple-selectors.html

css3/font-weight.html

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyFontWeight::applyValue):

  • platform/graphics/FontDescription.cpp:

(WebCore::FontDescription::lighterWeight):
(WebCore::FontDescription::bolderWeight):

LayoutTests:

https://chromiumcodereview.appspot.com/15994009 and
https://codereview.chromium.org/137813004

  • css3/font-weight-expected.txt: Added.
  • css3/font-weight-multiple-selectors-expected.txt: Added.
  • css3/font-weight-multiple-selectors.html: Added.
  • css3/font-weight.html: Added.
4:01 AM Changeset in webkit [175900] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r175005 - Remove erroneous canUseJIT() in the intrinsics version of JITThunks::hostFunctionStub().
<https://webkit.org/b/137937>

Reviewed by Michael Saboff.

This version of JITThunks::hostFunctionStub() can only be called from the intrinsics
version of VM::getHostFunction() which asserts canUseJIT(). Hence, we can eliminate
the canUseJIT() check in JITThunks::hostFunctionStub(). We don't handle the
!canUseJIT() case properly there anyway.

  • jit/JITThunks.cpp:

(JSC::JITThunks::hostFunctionStub):

3:58 AM Changeset in webkit [175899] by Carlos Garcia Campos
  • 4 edits
    2 adds
    1 delete in releases/WebKitGTK/webkit-2.6

Merge r174992 - AX: [ATK] CSS-generated text content not exposed to assistive technologies
https://bugs.webkit.org/show_bug.cgi?id=137669

Reviewed by Chris Fleizach.

Source/WebCore:

Do not use a text iterator to get the text for elements which include
pseudo elements.

Test: accessibility/css-content-attribute.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement):

LayoutTests:

Moved the Mac platform test and modified it to dump the accessible tree
and string values rather than a platform-specific hierarchy so that it
could be shared across platforms.

  • accessibility/css-content-attribute.html: Added.
  • platform/gtk/accessibility/css-content-attribute-expected.txt: Added.
  • platform/mac/accessibility/css-content-attribute-expected.txt: Modified to reflect new output.
  • platform/mac/accessibility/css-content-attribute.html: Removed.
3:55 AM Changeset in webkit [175898] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r174986 - REGRESSION: Google Search (mobile) video thumbnails are too large.
https://bugs.webkit.org/show_bug.cgi?id=137895

Reviewed by Simon Fraser.

This patch fixes layer clipping when an ancestor layer has border-radius clipping.

In cases, where the current layer has non-radius cliprect, while an ancestor layer
has border-radius clipping, we only use the border-radius rect to clip.

Source/WebCore:

Test: fast/clip/overflow-hidden-with-border-radius-overflow-clipping-parent.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:

(WebCore::ClipRect::ClipRect):
(WebCore::ClipRect::effectedByRadius):
(WebCore::ClipRect::setEffectedByRadius):
(WebCore::ClipRect::operator==):
(WebCore::ClipRect::operator!=):
(WebCore::ClipRect::intersect):
(WebCore::ClipRect::hasRadius): Deleted.
(WebCore::ClipRect::setHasRadius): Deleted.

LayoutTests:

  • fast/clip/overflow-hidden-with-border-radius-overflow-clipping-parent-expected.html: Added.
  • fast/clip/overflow-hidden-with-border-radius-overflow-clipping-parent.html: Added.
3:40 AM Changeset in webkit [175897] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r174922 - Ensure attached frame count doesn't exceed the maximum allowed frames
https://bugs.webkit.org/show_bug.cgi?id=136457

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: fast/frames/exponential-frames.html

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::isURLAllowed):

LayoutTests:

  • fast/frames/exponential-frames-expected.txt: Added.
  • fast/frames/exponential-frames.html: Added.
3:39 AM Changeset in webkit [175896] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r174920 - Tighten XMLHttpRequest setRequestHeader value check
https://bugs.webkit.org/show_bug.cgi?id=128593

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-10-20
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/xmlhttprequest/set-bad-headervalue.html

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidHTTPHeaderValue): Updated header values check according RFC 7230.
(WebCore::isValidHTTPToken): Renamed variable name and updated RFC related comment.

LayoutTests:

Added a test originating from w3c-test.org to test header values checking.
Testing headers with non ASCII characters and various control characters.

  • http/tests/xmlhttprequest/set-bad-headervalue-expected.txt: Added.
  • http/tests/xmlhttprequest/set-bad-headervalue.html: Added.
3:37 AM Changeset in webkit [175895] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r174916 - Use glFinish instead of glFlush when drawing WebGL output to screen.
https://bugs.webkit.org/show_bug.cgi?id=137897.
<rdar://problem/15846550>

Reviewed by Brent Fulgham.

Passes all conformance tests.
Performance tested by http://threejs.org/examples/#webgl_performance and Unity WebGL performance tests.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):

3:34 AM Changeset in webkit [175894] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r174883 - [cmake] Remove duplicated source files
https://bugs.webkit.org/show_bug.cgi?id=137875

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
3:29 AM Changeset in webkit [175893] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r174855 - Calling glReadPixels with BGRA format on an NVIDIA machine with an opaque context returns the wrong alpha values.
https://bugs.webkit.org/show_bug.cgi?id=137793.
<rdar://problem/15408133>

Reviewed by Dean Jackson.

This fixes conformance test context/context-attribute-preserve-drawing-buffer.html.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
On an NVIDIA machine, when the context has alpha turned off, call glReadPixels with RGBA format and then convert to RGBA.

3:25 AM Changeset in webkit [175892] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r174802 - Missing RefPtr.release() calls in TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=137777

Patch by Adrien Destugues <pulkomandy@gmail.com> on 2014-10-16
Reviewed by Chris Dumez.

No new tests: no functional change, cleanup/optimization.

Avoids useless ref/deref cycle when returning from functions.

  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::TextureMapper::acquireTextureFromPool):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintIntoSurface):

3:23 AM Changeset in webkit [175891] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r174762 - Use isnan from std namespace in ProfileGenerator.cpp
https://bugs.webkit.org/show_bug.cgi?id=137653

Patch by Adrien Destugues <pulkomandy@gmail.com> on 2014-10-16
Reviewed by Darin Adler.

The C++ isnan() function is in the std namespace. The unprefixed isnan
may be available because of C99 headers leakage in C++, but should not
be used.

No new tests: no functional change, build fix on platforms which don't
export C99 functions in C++.

  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::beginCallEntry):
(JSC::ProfileGenerator::endCallEntry):
(JSC::ProfileGenerator::didPause):
(JSC::ProfileGenerator::didContinue):

3:19 AM Changeset in webkit [175890] by Carlos Garcia Campos
  • 17 edits
    4 adds in releases/WebKitGTK/webkit-2.6

Merge r174761 - ASSERTION FAILED in WebCore::RenderFlowThread::getRegionRangeForBox
https://bugs.webkit.org/show_bug.cgi?id=135563

Reviewed by David Hyatt.

Source/WebCore:

The new multi-column code doesn't work correctly when the document contains nested fragmentation
contexts. The problem is the current flow thread concept that can store only one RenderFlowThread
at a time and use it during layout.

The stored flow thread is always correct for regions because named flow threads are absolutley positioned
so every child renderer is contained inside them (with the expcetion of fixed positioned elements which are
treated separately).

For multi-column elements this is no longer the case. An absolutely positioned element inside a static
multi-column element will be contained by a block outside the fragmentation context. It can even be
contained by a different multi-column element in the case of nested flow threads.

The patch below explores a solution that's not based on a current flow thread stored globally. The proposed
patch makes every block to store a pointer to its fragmentation context and a flag that states if this pointer
needs to be updated or not. If the renderer is not a block it will get its flow thread from the containing
block. Once the containing flow thread is requested for the block, the pointer is computed and cached until
invalidated:

  • when a subtree is removed from a flow thread
  • when the position property of an element inside a flow thread changes

The process is recursive and it doesn't affect elements that are not nested inside a flow thread. If a block
changes position from relative to static, any element that was contained by it can only be contained by an
ancestor of the block. This ancestor will still be outside of any flow thread. This ensures that non-fragmentation
code is not affected from a performance perspective.

The patch affects the results of the performance tests:

  • the regions layout tests have a decreased performance raging from 2% to 5-6%
  • the regions selection tests have an increased performance raging from 1-2% to 10%
  • the multicolumn layout tests (now pending review in b137687) have an increased performance

raging from 1.8% to 5%

Tests: fast/multicol/multicol-all-positioned-crash.html

fast/multicol/multicol-transform-containing-block.html

  • rendering/FlowThreadController.cpp:

(WebCore::FlowThreadController::FlowThreadController):

  • rendering/FlowThreadController.h:

(WebCore::FlowThreadController::currentRenderFlowThread): Deleted.
(WebCore::FlowThreadController::setCurrentRenderFlowThread): Deleted.

  • rendering/LayoutState.h:

(WebCore::LayoutState::currentRenderFlowThread):
(WebCore::LayoutState::setCurrentRenderFlowThread):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlockRareData::RenderBlockRareData):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::collapseAnonymousBoxChild):
(WebCore::RenderBlock::cachedFlowThreadContainingBlock):
(WebCore::RenderBlock::cachedFlowThreadContainingBlockNeedsUpdate):
(WebCore::RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate):
(WebCore::RenderBlock::updateCachedFlowThreadContainingBlock):
(WebCore::RenderBlock::locateFlowThreadContainingBlock):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleWillChange):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::borderBoxRectInRegion):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
(WebCore::RenderFlowThread::repaintRectangleInRegions):
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer): Deleted.
(WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer): Deleted.
(WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler): Deleted.
(WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler): Deleted.

  • rendering/RenderFlowThread.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::showRegionsInformation):
(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::removeFromRenderFlowThread):
(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):
(WebCore::RenderObject::invalidateFlowThreadContainingBlockIncludingDescendants):
(WebCore::RenderObject::currentRenderNamedFlowFragment):
(WebCore::RenderObject::locateFlowThreadContainingBlock):
(WebCore::RenderObject::locateFlowThreadContainingBlockNoCache): Deleted.
(WebCore::RenderObject::removeFromRenderFlowThreadRecursive): Deleted.

  • rendering/RenderObject.h:

(WebCore::RenderObject::flowThreadContainingBlock):

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::computeOverflowFromFlowThread):

  • rendering/RenderView.cpp:

(WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
(WebCore::RenderView::popLayoutStateForCurrentFlowThread):

  • rendering/RenderView.h:

LayoutTests:

A test verifying that positioned elements inside multi-column containers don't
cause assertions or crashes.

  • fast/multicol/multicol-all-positioned-crash-expected.txt: Added.
  • fast/multicol/multicol-all-positioned-crash.html: Added.
  • fast/multicol/multicol-transform-containing-block-expected.txt: Added.
  • fast/multicol/multicol-transform-containing-block.html: Added.
3:14 AM Changeset in webkit [175889] by Yusuke Suzuki
  • 7 edits
    6 adds in trunk

CSS4 Selectors: Add multiple pseudo elements support to :matches
https://bugs.webkit.org/show_bug.cgi?id=138214

Reviewed by Benjamin Poulain.

Source/WebCore:

In this patch, we implement (multiple) pseudo elements support to :matches.
Currently, we implemented it in css/SelectorChecker and there's no CSS JIT implementation.

And we change the semantics of pseudo element selector behavior.
Previously when pseudo element selector appeared in the non-rightmost
fragment, it was ignored. This patch changes it to unmatched.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::CheckingContextWithStatus::CheckingContextWithStatus):
(WebCore::SelectorChecker::match):
(WebCore::hasScrollbarPseudoElement):
(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::matchSelectorList):

  • css/SelectorChecker.h:

(WebCore::SelectorChecker::MatchResult::matches):
(WebCore::SelectorChecker::MatchResult::updateWithMatchType):
(WebCore::SelectorChecker::MatchResult::fails):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setHasPseudoStyles):

  • rendering/style/RenderStyleConstants.h:

(WebCore::PseudoIdSet::PseudoIdSet):
(WebCore::PseudoIdSet::fromMask):
(WebCore::PseudoIdSet::has):
(WebCore::PseudoIdSet::add):
(WebCore::PseudoIdSet::merge):
(WebCore::PseudoIdSet::operator &):
(WebCore::PseudoIdSet::operator |):
(WebCore::PseudoIdSet::operator bool):
(WebCore::PseudoIdSet::data):

LayoutTests:

  • fast/selectors/pseudo-element-in-non-rightmost-fragments-expected.html: Added.
  • fast/selectors/pseudo-element-in-non-rightmost-fragments.html: Added.

In this test, we ensure that pseudo elements selector in the
non-rightmost fragments becomes unmatched.

  • fast/selectors/pseudo-element-inside-matches-expected.html: Added.
  • fast/selectors/pseudo-element-inside-matches.html: Added.
  • fast/selectors/ignore-pseudo-element-inside-non-rightmost-fragments-expected.txt: Added.
  • fast/selectors/ignore-pseudo-element-inside-non-rightmost-fragments.html: Added.
2:53 AM Changeset in webkit [175888] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r174700 - Crash in WebCore::UserGestureIndicator::processingUserGesture with WebWorkers
https://bugs.webkit.org/show_bug.cgi?id=137676
<rdar://problem/15735049>

Reviewed by Alexey Proskuryakov.

Remove the code I added that tracks the timestamp of the most recent
user gesture from the event handling dispatch, as it was both
a silly place to do it and it originally crashed when events were fired from
Worker threads (although this was fixed in r152238).

It's now recorded by going through UserGestureIndicator, which is good because
it knows when a user has triggered an event. Its constructor now takes
a pointer to Document, and updates the timestamp there if necessary.

Not all UserGestureIndicator instances needed to reset the timestamp; Those did
not have to pass along the Document.

This is untestable due to the fix mentioned above.

  • WebCore.exp.in: Change constructor signature.
  • accessibility/AccessibilityNodeObject.cpp: Pass a pointer to the Document into the UserGestureIndicator.

(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

  • accessibility/AccessibilityObject.cpp: Ditto.

(WebCore::AccessibilityObject::press):

  • dom/Document.cpp:

(WebCore::Document::updateLastHandledUserGestureTimestamp): Renamed.

  • dom/Document.h:
  • dom/EventTarget.cpp: Remove the code to update the timestamp.

(WebCore::EventTarget::fireEventListeners):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator): If there is a Document and
this is a user gesture, then reset the timestamp.

  • dom/UserGestureIndicator.h:
  • page/EventHandler.cpp: Pass a pointer to the Document.

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTouchEvent):

  • rendering/HitTestResult.cpp: Ditto.

(WebCore::HitTestResult::toggleMediaFullscreenState):
(WebCore::HitTestResult::enterFullscreenForVideo):

2:44 AM Changeset in webkit [175887] by evab.u-szeged@partner.samsung.com
  • 2 edits in trunk/Tools

webkitpy test fix after r175867
https://bugs.webkit.org/show_bug.cgi?id=138607

Reviewed by Philippe Normand.

  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:

(GDBCrashLogGeneratorTest.test_generate_crash_log):

2:38 AM Changeset in webkit [175886] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175757. rdar://problems/18900200

2:33 AM Changeset in webkit [175885] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.6

Merge r174677 - Changes in the stretchy attribute do not update rendering
https://bugs.webkit.org/show_bug.cgi?id=136883

Reviewed by Darin Adler.

Source/WebCore:

Test: mathml/presentation/mo-stretch-update.html

We need to relayout when a change in the stretchy attribute
happens.

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Parse the
modifications of the stretchy attribute.

  • mathml/MathMLTextElement.h:
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorFlagAndScheduleLayoutIfNeeded):
Add function that receives the value instead of looking for it and
checks if the change should schedule a layout.
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue):
Add function that receives the value instead of looking for it.

  • rendering/mathml/RenderMathMLOperator.h:

LayoutTests:

The test updates the stretchy value in a timeout.

  • mathml/presentation/mo-stretch-update-expected.html: Added.
  • mathml/presentation/mo-stretch-update.html: Added.
2:28 AM Changeset in webkit [175884] by Carlos Garcia Campos
  • 4 edits
    10 adds in releases/WebKitGTK/webkit-2.6

Merge r174640 - Referrer Policy: Update <meta name="referrer"> values to match the spec
https://bugs.webkit.org/show_bug.cgi?id=137635

Reviewed by Jochen Eisinger.

Source/WebCore:

The Referrer Policy specification ([Working Draft][WD], [Editor's
draft[ED]) defines different keywords than we originally
implemented. We should support them in the interests of clarity and
interoperability with other browsers implementing the specification.

[WD]: http://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-meta
[ED]: http://w3c.github.io/webappsec/specs/referrer-policy/#referrer-policy-delivery-meta

This patch is a port of Blink's https://codereview.chromium.org/607433002/

Tests: http/tests/security/referrer-policy-conflicting-policies.html

http/tests/security/referrer-policy-https-no-referrer-when-downgrade.html
http/tests/security/referrer-policy-https-no-referrer.html
http/tests/security/referrer-policy-https-unsafe-url.html
http/tests/security/referrer-policy-no-referrer-when-downgrade.html
http/tests/security/referrer-policy-no-referrer.html

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):

LayoutTests:

  • http/tests/security/referrer-policy-https-no-referrer-expected.txt: Added.
  • http/tests/security/referrer-policy-https-no-referrer-when-downgrade-expected.txt: Added.
  • http/tests/security/referrer-policy-https-no-referrer-when-downgrade.html: Added.
  • http/tests/security/referrer-policy-https-no-referrer.html: Added.
  • http/tests/security/referrer-policy-https-unsafe-url-expected.txt: Added.
  • http/tests/security/referrer-policy-https-unsafe-url.html: Added.
  • http/tests/security/referrer-policy-invalid-expected.txt: Update the error message with new keywords.
  • http/tests/security/referrer-policy-no-referrer-expected.txt: Added.
  • http/tests/security/referrer-policy-no-referrer-when-downgrade-expected.txt: Added.
  • http/tests/security/referrer-policy-no-referrer-when-downgrade.html: Added.
  • http/tests/security/referrer-policy-no-referrer.html: Added.
2:10 AM Changeset in webkit [175883] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r174540 - RenderMathMLUnderOver adds spacing to the child operator indefinitely when resizing the window.
https://bugs.webkit.org/show_bug.cgi?id=137330

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-09
Reviewed by Darin Adler.

The layout for the <mundercover> math object happens in two separate passes. The first pass runs
the layout for the two children and then calculates the maximum child width. It then sets the
stretch size for the math operator child. And finally it runs the second layout pass by calling
the base class layout() function. The base class function then runs the layout for the children
rendering blocks. In the operator child function computePreferredLogicalWidths(), the stretch
size is used to adjust the width (or the height) of the operator. Then it adds the leading and
trailing spaces and the total will be the operator child width.

When resizing or zooming the window, the render objects are just invalidated but marked as 'needs-
Layout'. The problem is happening because the stretch size of the math operator is not reset
before running the layout. The old logical width (or height) of the the math operator child which
is equal to the stretch size plus the leading and trailing spaces for is compared with the glyph
size if the old logical width ( or height) is larger, it is set to be the stretch size. When it
is used again because of invalidation, new leading and trailing spaces are included in the new
logical width. So with every zooming-in or out or window resizing, new leading and trailing
spaces are added to the logical width of the math operator child or the math <munderober> object.

Ensure the stretch size of the math operator render object is reset before running its layout.
Running the layout means either the page is just loaded or it's invalidated which means, no
layout stall data should be used.

Test: mathml/opentype/munderover-window-resize.html

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::resetStretchSize):

  • rendering/mathml/RenderMathMLOperator.h:

resetStretchSize() sets the stretch size to its original value when the class is created.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::layout):
Make sure the operator stretch size is reset before calling its layout. Also make sure the new
maximum stretch size to the operator objects that were invalid and needsLayout.

LayoutTests:
RenderMathMLUnderOver adds spacing to the child operator indefinitely when zooming or resizing the window.
https://bugs.webkit.org/show_bug.cgi?id=137330

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-10-09
Reviewed by Darin Adler, Daniel Bates.

When the alignment is center, which is the common case for math, changing the size of
an object affects the position of this object also. We need to confirm that zooming or
resizing the window should not affect the rectangle of the over/under math object operator.

  • mathml/opentype/munderover-window-resize-expected.txt: Added.
  • mathml/opentype/munderover-window-resize.html: Added.

New test with many under and over math objects. After loading the page, the window is resized and
the view is zoomed in and out to make sure the layout of these under and over objects were not changed.

  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:

This test was wrong because of the spacing issue. The page has two <mover> math objects at the beginning.
Each of them has an <mspace> child. The width of the first <mspace> is 1em while the width of the second
<mspace> is 2em. The font size is 10pt. So it is expected to have the first one 10 pixels and the second
to be 20 pixels. In the test, the width of the first is 22 and the width of the second is 32.
I do expect this test to fail on other platforms since they have the same mistake which is now fixed. I am
going to submit the mac expected version only and when it fails I am going to collect the result and submit
another patch for the other platforms expected files.

2:05 AM Changeset in webkit [175882] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r174511 - Enable ARM64 disassembler for all platforms
https://bugs.webkit.org/show_bug.cgi?id=137560

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-10-09
Reviewed by Michael Saboff.

Remove PLATFORM conditions from around WTF_USE_ARM64_DISASSEMBLER since
the ARM64 disassembler has no platform dependencies anymore.

  • wtf/Platform.h:
1:29 AM Changeset in webkit [175881] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175821. rdar://problems/18929733

1:21 AM Changeset in webkit [175880] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Another assertion fix for debug builds after r175846.

generateByIdStub() can now be called with an empty prototype chain
if kind == GetUndefined, so tweak the assertion to cover that.

  • jit/Repatch.cpp:

(JSC::generateByIdStub):

1:18 AM Changeset in webkit [175879] by matthew_hanson@apple.com
  • 7 edits in branches/safari-600.3-branch/Source

Merged r175842. rdar://problems/18877506

1:18 AM Changeset in webkit [175878] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175837. rdar://problems/18932048

1:18 AM Changeset in webkit [175877] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175835. rdar://problems/18933586

1:18 AM Changeset in webkit [175876] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175832. rdar://problems/18877497

1:18 AM Changeset in webkit [175875] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175831. rdar://problems/18931330

1:18 AM Changeset in webkit [175874] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r175825. rdar://problems/18877483

1:18 AM Changeset in webkit [175873] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r175823. rdar://problems/18877483

1:18 AM Changeset in webkit [175872] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r175820. rdar://problems/18877483

1:18 AM Changeset in webkit [175871] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r175819. rdar://problems/18877483

1:18 AM Changeset in webkit [175870] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebCore

Merged r175816. rdar://problems/18877483

1:18 AM Changeset in webkit [175869] by matthew_hanson@apple.com
  • 14 edits
    1 copy
    1 add in branches/safari-600.3-branch/Source

Merged r175814. rdar://problems/18877483

1:04 AM Changeset in webkit [175868] by Philippe Normand
  • 2 edits in trunk/Tools

webkitpy: demangle C++ symbols from crash log stderr
https://bugs.webkit.org/show_bug.cgi?id=138565

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator.generate_crash_log): Process stderr output
with c++filt.

1:01 AM Changeset in webkit [175867] by Philippe Normand
  • 3 edits in trunk/Tools

[GTK] fix up the GDB backtrace report tool
https://bugs.webkit.org/show_bug.cgi?id=138564

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._get_crash_log): Match the process name reported by the
driver with the GTK port WebProcess executable filename.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._get_gdb_output): Invoke gdb for the crashed
program.
(GDBCrashLogGenerator.generate_crash_log): Use %E in the core
pattern to workaround the 16 characters size limit of %e.

12:49 AM Changeset in webkit [175866] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175790. rdar://problems/18919700

12:49 AM Changeset in webkit [175865] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175780. rdar://problems/18919195

12:49 AM Changeset in webkit [175864] by matthew_hanson@apple.com
  • 11 edits in branches/safari-600.3-branch/Source

Merged r175779. rdar://problems/18742164

12:49 AM Changeset in webkit [175863] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175770. rdar://problems/18909717

12:49 AM Changeset in webkit [175862] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175761. rdar://problems/18909699

12:16 AM Changeset in webkit [175861] by matthew_hanson@apple.com
  • 9 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175756. rdar://problems/18901445

12:16 AM Changeset in webkit [175860] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175754. rdar://problems/18877717

12:08 AM Changeset in webkit [175859] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175753. rdar://problems/18892787

12:03 AM Changeset in webkit [175858] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175732. rdar://problems/18889231

Nov 10, 2014:

11:59 PM Changeset in webkit [175857] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175711. rdar://problems/18893079

11:55 PM Changeset in webkit [175856] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175705. rdar://problems/18892496

11:49 PM Changeset in webkit [175855] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175704. rdar://problems/18869036

11:43 PM Changeset in webkit [175854] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175702. rdar://problems/18872825

11:38 PM Changeset in webkit [175853] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175701. rdar://problems/18768377

11:19 PM Changeset in webkit [175852] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Lazily create HTMLInputElement's inputType and shadow subtree
https://bugs.webkit.org/show_bug.cgi?id=138524

Reviewed by Ryosuke Niwa.

When an HTMLInputElement was created by the parser, we would first call
HTMLInputElement::create(), then call Element::parserSetAttributes() on
the constructed input. With the previous implementation, this was a bit
inefficient because HTMLInputElement::create() would construct a
TextInputType inputType (as this is the default) as well as its
corresponding shadow subtree. Then, parserSetAttributes() would often
set the |type| attribute and would need to destroy this input type as
well as its subtree if the new |type| is not 'text', to create a new
inputType / shadow subtree of the right type. The profiler showed that
this was fairly expensive.

To improve this, this patch delays the inputType / shadow subtree
creation when the HTMLInputElement is constructed by the parser, until
the attributes are actually set by the parser. This way, we directly
create an inputType / shadow subtree of the right type.

I see a 1.4% speed up on speedometer (73.95 -> 75.0).

No new tests, no behavior change.

  • dom/Element.cpp:

(WebCore::Element::parserSetAttributes):
(WebCore::Element::parserDidFinishParsingAttributes):

  • dom/Element.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::ensureInputType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::parserDidFinishParsingAttributes):

  • html/HTMLInputElement.h:
10:11 PM Changeset in webkit [175851] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix possible crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=138597
rdar://problem/18872688

Reviewed by Andreas Kling.

I reported a crash when reloading a page after inspecting it, possibly caused by
r172864. Speculatively fix by null-checking the main frame.

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::~WebInspectorClient):

8:58 PM Changeset in webkit [175850] by jonowells@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Update Esprima, remove WebInspector.Esprima global.
https://bugs.webkit.org/show_bug.cgi?id=138579

Reviewed by Timothy Hatcher.

Update esprima.js file to be unchanged by removing WebInspector.Esprima global object. Move esprima.js include
so that all external libraries load before the WebInspector namespace is declared in the combined Main.js.

  • UserInterface/External/Esprima/esprima.js: File updated, no changes made.
  • UserInterface/Main.html: esprima.js script tag moved up with other externals.
  • UserInterface/Models/ScriptSyntaxTree.js: WebInspector.Esprima changed to esprima

(WebInspector.ScriptSyntaxTree):

8:32 PM Changeset in webkit [175849] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Assertion fix for debug builds after r175846.

PropertySlot::slotBase() will assert if the slot is unset, so reorder
the tests to check for isCacheableValue() first.

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

7:49 PM Changeset in webkit [175848] by benjamin@webkit.org
  • 9 edits
    8 adds in trunk

Source/WebCore:
Add parsing support for the extended :nth-last-child(An+B of selector-list) defined
https://bugs.webkit.org/show_bug.cgi?id=138520

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.

Add parsing for :nth-last-child(An+B of selector-list). The selector is defined
in CSS Selectors Level 4: http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo

Tests: fast/css/parsing-css-nth-last-child-of-1.html

fast/css/parsing-css-nth-last-child-of-2.html
fast/css/parsing-css-nth-last-child-of-3.html
fast/css/parsing-css-nth-last-child-of-4.html

  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::detectFunctionTypeToken):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):

LayoutTests:
Add parsing support for the extended :nth-last-child(An+B of selector-list)
https://bugs.webkit.org/show_bug.cgi?id=138520

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.

All the tests are variations of the existing tests for :nth-child(An+B of selector-list).

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:
  • fast/css/parsing-css-nth-last-child-of-1-expected.txt: Added.
  • fast/css/parsing-css-nth-last-child-of-1.html: Added.
  • fast/css/parsing-css-nth-last-child-of-2-expected.txt: Added.
  • fast/css/parsing-css-nth-last-child-of-2.html: Added.
  • fast/css/parsing-css-nth-last-child-of-3-expected.txt: Added.
  • fast/css/parsing-css-nth-last-child-of-3.html: Added.
  • fast/css/parsing-css-nth-last-child-of-4-expected.txt: Added.
  • fast/css/parsing-css-nth-last-child-of-4.html: Added.
7:25 PM Changeset in webkit [175847] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Source/WebCore:
SVG foreign objects do not inherit the container coordinates system if they are repainted.
https://bugs.webkit.org/show_bug.cgi?id=138481.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.

If a foreign object is included in an SVG, it should inherit the coordinates system
of the container if it is repainted. The foreign object is actually redrawn in the
CSS coordinates system regardless of the transformation that may be applied to the
container.

The bug is RenderSVG* classes use computeFloatRectForRepaint(), but the rest of the
render classes use computeRectForRepaint(). RenderSVGForeignObject::computeRectForRepaint()
was not defined, so we end up hitting RenderObject::computeRectForRepaint() for
a RenderSVGTransformableContainer and completely miss the transform.

Tests: svg/transforms/svg-transform-foreign-object-repaint.html

Implement RenderSVGForeignObject::computeRectForRepaint() so we can apply the
container transformation on the SVG foreign object repaint rectangle.

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::computeRectForRepaint):

  • rendering/svg/RenderSVGForeignObject.h:

LayoutTests:
SVG foreign objects do not inherit the container coordinates system if they are repainted..
https://bugs.webkit.org/show_bug.cgi?id=138481.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.

Ensure the repaint rectangle of the SVG foreign object is calculated correctly
when the container element has transformation.

  • svg/transforms/svg-transform-foreign-object-repaint-expected.png: Added.
  • svg/transforms/svg-transform-foreign-object-repaint-expected.txt: Added.
  • svg/transforms/svg-transform-foreign-object-repaint.html: Added.

Re-baseline these tests since the render tree dumping uses renderer.absoluteClippedOverflowRect()
in writePositionAndStyle() to get the object rectangle so this issue only affects test output.

  • svg/zoom/page/zoom-foreign-content-expected.txt:
  • platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt:
7:10 PM Changeset in webkit [175846] by akling@apple.com
  • 6 edits
    3 adds in trunk

The JIT should cache property lookup misses.
<https://webkit.org/b/135578>

Source/JavaScriptCore:

Add support for inline caching of missed property lookups.
Previously this would banish us to C++ slow path.

It's implemented as a simple GetById cache that returns jsUndefined()
as long as the Structure chain check passes. There's no DFG exploitation
of this knowledge in this patch.

Test: js/regress/undefined-property-access.js (~5.5x speedup)

Reviewed by Filip Pizlo.

  • bytecode/PolymorphicGetByIdList.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfo):

Add GetByIdAccess::SimpleMiss so we can communicate to the DFG that
the access has been cached.

  • jit/Repatch.cpp:

(JSC::toString):
(JSC::kindFor):
(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):

Added a GetUndefined stub kind, just a simple "store jsUndefined()" snippet.
Use this to cache missed lookups, piggybacking mostly on the GetValue kind.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::isUnset):

Exposed the unset state so PropertySlot can communicate that lookup failed.

LayoutTests:

Add a JSRegress test for caching of property lookup misses.
There are three subtests:

  1. Pure speed test.
  2. Test for when a property previously cached as missing suddenly appears on the object.
  3. Same as (2), but it appears on the prototype.

The test runs ~5.5x faster with the optimization.

Reviewed by Filip Pizlo.

  • js/regress/script-tests/undefined-property-access.js: Added.

(foo):
(bar):
(baz):

  • js/regress/undefined-property-access-expected.txt: Added.
  • js/regress/undefined-property-access.html: Added.
7:05 PM Changeset in webkit [175845] by msaboff@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Add scope operand to op_create_lexical_environment
https://bugs.webkit.org/show_bug.cgi?id=138588

Reviewed by Geoffrey Garen.

Added a second operand to op_create_lexical_environment that contains the scope register
to update. Note that the DFG relies on operationCreateActivation() to update the
scope register since we can't issue a set() with a non-local, non-argument register.
This is temporary until the scope register is allocated as a local.

  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
Added the scope register operand.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
Filled in the scope register operand.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_lexical_environment):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_create_lexical_environment):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

Set the scope register with the result of the appropriate create activation slow call.

5:47 PM Changeset in webkit [175844] by gyuyoung.kim@samsung.com
  • 7 edits in trunk/Source/WebCore

Use std::unique_ptr<> and std::make_unique<> in WebCore
https://bugs.webkit.org/show_bug.cgi?id=138560

Reviewed by Chris Dumez.

Clean up unused OwnPtr.h and PassOwnPtr.h and use std::unique_ptr.

No new tests, no behavior changes.

  • Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
  • dom/ContainerNode.h:
  • dom/ElementIteratorAssertions.h:

(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):

  • dom/ElementRareData.h:
  • page/DragController.h:
  • rendering/RenderView.h:
5:37 PM Changeset in webkit [175843] by mmaxfield@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Test that complext and fast text codepaths measure the same width
https://bugs.webkit.org/show_bug.cgi?id=138581

Reviewed by Simon Fraser.

  • fast/text/space-width-expected.html: Added.
  • fast/text/space-width.html: Added.
5:21 PM Changeset in webkit [175842] by Beth Dakin
  • 7 edits in trunk/Source

WK1: Support default actions for editable text with misspelled word
https://bugs.webkit.org/show_bug.cgi?id=138590
-and corresponding-
rdar://problem/18877506

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit/mac:

If there are misspelled word suggestions for editable text, create a new type of
menu with a spelling suggestion sub-menu.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]):
(-[WebActionMenuController _changeSelectionToSuggestion:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _changeSpellingToWord:]):

  • WebView/WebHTMLViewInternal.h:
  • WebView/WebUIDelegatePrivate.h:
5:16 PM Changeset in webkit [175841] by ap@apple.com
  • 64 edits
    1 copy
    3 moves in trunk/LayoutTests

http tests should not use shared temporary files
https://bugs.webkit.org/show_bug.cgi?id=138583

Reviewed by Tim Horton.

Made some of the scripts that write to files take a path argument, and made others
more strictly serve only one test.

This way, we don't race for any files.

  • http/tests/appcache/fail-on-update-2.html:
  • http/tests/appcache/fallback.html:
  • http/tests/appcache/main-resource-fallback-for-network-error-crash.html:
  • http/tests/appcache/main-resource-hash.html:
  • http/tests/appcache/main-resource-redirect.html:
  • http/tests/appcache/multi-fallback.html:
  • http/tests/appcache/non-html.xhtml:
  • http/tests/appcache/offline-access.html:
  • http/tests/appcache/online-whitelist.html:
  • http/tests/appcache/remove-cache.html:
  • http/tests/appcache/resources/counter.php: Removed.
  • http/tests/appcache/resources/fail-on-update-2.php:
  • http/tests/appcache/resources/fail-on-update.php:
  • http/tests/appcache/resources/main-resource-redirect-frame.php:
  • http/tests/appcache/resources/main-resource-redirect.manifest:
  • http/tests/appcache/resources/non-html.manifest:
  • http/tests/appcache/resources/offline-access-frame.html:
  • http/tests/appcache/resources/offline-access.js:
  • http/tests/appcache/resources/offline-access.manifest:
  • http/tests/appcache/resources/online-whitelist.manifest:
  • http/tests/appcache/resources/online-whitelist.php: Copied from LayoutTests/http/tests/appcache/resources/counter.php.
  • http/tests/appcache/resources/remove-cache-frame-2.html:
  • http/tests/appcache/resources/remove-cache-frame.html:
  • http/tests/appcache/resources/remove-cache.php: Copied from LayoutTests/http/tests/appcache/resources/fail-on-update.php.
  • http/tests/appcache/resources/update-cache.php: Copied from LayoutTests/http/tests/appcache/resources/versioned-manifest.php.
  • http/tests/appcache/resources/versioned-manifest.php: Removed.
  • http/tests/appcache/update-cache.html:
  • http/tests/cache/network-error-during-revalidation.html:
  • http/tests/cache/post-redirect-get.php:
  • http/tests/cache/post-with-cached-subresources.php:
  • http/tests/cache/reload-main-resource.php:
  • http/tests/cache/resources/network-error-during-revalidation-frame.html:
  • http/tests/cache/resources/partitioned-cache-echo-state.php:
  • http/tests/cache/resources/partitioned-cache-loader.html:
  • http/tests/cache/resources/post-image-to-verify.php:
  • http/tests/cache/resources/reload-main-resource-iframe.php:
  • http/tests/cache/stopped-revalidation.html:
  • http/tests/cache/subresource-fragment-identifier.html:
  • http/tests/css/border-image-loading.html:
  • http/tests/css/css-image-loading.html:
  • http/tests/css/mask-image-loading.html:
  • http/tests/css/reflection-mask-image-loading.html:
  • http/tests/css/resources/request-logging.js:
  • http/tests/loading/preload-img-test.html:
  • http/tests/local/link-stylesheet-load-order-preload.html:
  • http/tests/local/link-stylesheet-load-order.html:
  • http/tests/misc/link-rel-prefetch-and-subresource.html:
  • http/tests/resources/network-simulator.php:
  • http/tests/resources/tripmine.php: Removed.
  • http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html:
  • http/tests/xmlhttprequest/access-control-preflight-headers-async.html:
  • http/tests/xmlhttprequest/access-control-preflight-headers-sync.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html:
  • http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-not-supported.html:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
  • http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.php:
  • http/tests/xmlhttprequest/resources/no-custom-header.php:
  • http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.php: Copied from LayoutTests/http/tests/resources/tripmine.php.
  • http/tests/xmlhttprequest/state-after-network-error.html:
  • http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-responseURL.html:
5:15 PM Changeset in webkit [175840] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.2-branch/Source

Versioning.

5:13 PM Changeset in webkit [175839] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.2.2

New Tag.

4:39 PM Changeset in webkit [175838] by jonowells@apple.com
  • 4 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Add infrastructure for eslint based static analyzer
https://bugs.webkit.org/show_bug.cgi?id=137890

Reviewed by Timothy Hatcher.

Fix to previous patch to add AnalyzerManager and AnalyzerMessage classes. Changed Main.html to include ESLint.js
before Main.js in the combined resources.

  • UserInterface/Base/Main.js:
  • UserInterface/Controllers/AnalyzerManager.js: Added.

(WebInspector.AnalyzerManager):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
(set WebInspector.AnalyzerManager.prototype.set get sourceCodeCanBeAnalyzed):
(set WebInspector.AnalyzerManager.prototype._handleSourceCodeContentDidChange):

  • UserInterface/Main.html:
  • UserInterface/Models/AnalyzerMessage.js: Added.

(WebInspector.AnalyzerMessage):
(WebInspector.AnalyzerMessage.prototype.get sourceCodeLocation):
(WebInspector.AnalyzerMessage.prototype.get sourceCode):
(WebInspector.AnalyzerMessage.prototype.get text):
(WebInspector.AnalyzerMessage.prototype.get ruleIdentifier):

  • UserInterface/Models/SourceCode.js:
4:04 PM Changeset in webkit [175837] by Beth Dakin
  • 3 edits in trunk/Source/WebKit/mac

WK1: Support default actions for editable whitespace
https://bugs.webkit.org/show_bug.cgi?id=138586
-and corresponding-
rdar://problem/18932048

Reviewed by Tim Horton.

New menu type. Just wants paste.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

  • WebView/WebUIDelegatePrivate.h:
4:02 PM Changeset in webkit [175836] by Chris Dumez
  • 19 edits in trunk/Source/WebCore

Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
https://bugs.webkit.org/show_bug.cgi?id=138578

Reviewed by Andreas Kling.

Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
and turn the argument into a reference to make it clear it cannot be
null.

No new tests, no behavior change.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::willRemoveChild):

  • dom/Document.cpp:

(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):

  • dom/Document.h:
  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::nodeWillBeRemoved):
(WebCore::NodeIterator::updateForNodeRemoval):

  • dom/NodeIterator.h:
  • dom/Range.cpp:

(WebCore::Range::insertNode):
(WebCore::boundaryNodeWillBeRemoved):
(WebCore::Range::nodeWillBeRemoved):

  • dom/Range.h:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::setToBeforeChild):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):

  • editing/CompositeEditCommand.h:
  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):

  • editing/FrameSelection.cpp:

(WebCore::removingNodeRemovesPosition):
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::FrameSelection::nodeWillBeRemoved):
(WebCore::FrameSelection::respondToNodeModification):

  • editing/FrameSelection.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):

  • editing/htmlediting.cpp:

(WebCore::updatePositionForNodeRemoval):

  • editing/htmlediting.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::nodeWillBeRemoved):

  • page/EventHandler.h:
3:55 PM Changeset in webkit [175835] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Whitespace action menus aren't working properly
https://bugs.webkit.org/show_bug.cgi?id=138585
-and corresponding-
rdar://problem/18933586

Reviewed by Tim Horton.

Treat the whitespace menu as a text menu.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController isMenuForTextContent]):

3:23 PM Changeset in webkit [175834] by msaboff@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add test for fix of REGRESSION (r174985-174986): Site display disappears
https://bugs.webkit.org/show_bug.cgi?id=138470

Reviewed by Geoffrey Garen.

This checks that document.write() and document.writeln() are cached and the same instance
is always returned.

  • js/dom/document-write-functions-cached-expected.txt: Added.
  • js/dom/document-write-functions-cached.html: Added.
2:48 PM Changeset in webkit [175833] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix the build when CSS Selectors Level 4 is disabled
https://bugs.webkit.org/show_bug.cgi?id=138533

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10

  • css/CSSSelector.cpp:

(WebCore::appendArgumentList):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):

2:36 PM Changeset in webkit [175832] by Beth Dakin
  • 3 edits in trunk/Source/WebKit/mac

WK1: Support default actions for editable text
https://bugs.webkit.org/show_bug.cgi?id=138580
-and corresponding-
rdar://problem/18877497

Reviewed by Tim Horton.

New menu type, and new action type for paste.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController willOpenMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItemsForEditableText:]):
(-[WebActionMenuController _paste:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

  • WebView/WebUIDelegatePrivate.h:
2:12 PM Changeset in webkit [175831] by Beth Dakin
  • 4 edits in trunk/Source/WebKit/mac

WK1: Text is getting selected even when an action menu fails to invoke
https://bugs.webkit.org/show_bug.cgi?id=138576
-and corresponding-
rdar://problem/18931330

Reviewed by Tim Horton.

Selection changes should happen in willOpenMenu: instead of prepareForMenu:

  • WebView/WebActionMenuController.h:
  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController willOpenMenu:withEvent:]):

_selectLookupText no longer needs to return a BOOL indicating success or failure.
(-[WebActionMenuController _selectLookupText]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

Pass willOpenMenu: on to the controller.

  • WebView/WebView.mm:

(-[WebView willOpenMenu:withEvent:]):

2:05 PM Changeset in webkit [175830] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Support throttling of DOMTimers using nested setTimeout() calls
https://bugs.webkit.org/show_bug.cgi?id=138262

Reviewed by Gavin Barraclough.

Extend DOMTimers throttling support to timers that are using nested
setTimeout() calls instead of a setInterval(). To achieve this, this
patch introduces a NestedTimersMap singleton class where nested timers
are added, and for which we potentially update the next firing time,
after the parent timer is done executing.

I have verified this helps on ebay.com for example, which has timers
interacting with non-visible plugins that are scheduled using nested
setTimeout() calls with a frequency of 150 / 200 ms.

This is a second take on r175441, which caused intermittent crashes.
This time, nested timers are removed from the NestedTimersMap when
DOMTimer::removeById() is called. It would be unsafe to use the nested
timer afterwards because we don't hold a strong reference to it and
the ScriptExecutionContext is unref'ing the DOMTimer when
ScriptExecutionContext::removeTimeout() is called from
DOMTimer::removeById().

  • page/DOMTimer.cpp:

(WebCore::NestedTimersMap::NestedTimersMap):
(WebCore::NestedTimersMap::~NestedTimersMap):
(WebCore::NestedTimersMap::add):
(WebCore::NestedTimersMap::remove):
(WebCore::NestedTimersMap::begin):
(WebCore::NestedTimersMap::end):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

2:01 PM Changeset in webkit [175829] by Conrad Shultz
  • 2 edits in trunk/Tools

Unreviewed, moved myself to the list of committers.

  • Scripts/webkitpy/common/config/contributors.json:
1:48 PM Changeset in webkit [175828] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME][Mac] Add a systemCode to distinguish when no expired sessions were found in response to a "keyrelease" message.
https://bugs.webkit.org/show_bug.cgi?id=138199

Reviewed by Eric Carlson.

Clients may want to be able to distinguish between cases where expired session data is not supported, and when
those data are supported, but none are found.

  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:

(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage):

1:39 PM Changeset in webkit [175827] by Simon Fraser
  • 4 edits in trunk/Source/WebKit2

[iOS WK2] Scroll deceleration rate is wrong
https://bugs.webkit.org/show_bug.cgi?id=138574
rdar://problem/18715303

Reviewed by Benjamin Poulain.

The CSS Snap Points code incorrectly set the WKScrollView's deceleration rate,
overriding the custom value that UIWebScrollView sets.

Fix by having WKScrollView store the custom rate at init time, and
using that value in -scrollViewWillBeginDragging:.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewWillBeginDragging:]):

  • UIProcess/ios/WKScrollView.h:
  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]):

12:43 PM Changeset in webkit [175826] by jer.noble@apple.com
  • 6 edits in trunk

REGRESSION(r174823): Several tests fail due to canplaythrough firing before tracks are available
https://bugs.webkit.org/show_bug.cgi?id=137882

Reviewed by Eric Carlson.

Source/WebCore:

For HLS streams with only one video, audio, or text track, there will be no media selection group
for that media characteristic. When culling out AVPlayerItemTracks in tracksDidChange(), do not skip
tracks for which there is no matching AVMediaSelectionGroup.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasLoadedMediaSelectionGroups): Refactored.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Call above.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
12:39 PM Changeset in webkit [175825] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Speculative build fix.

  • WebView/WebActionMenuController.mm:
12:33 PM Changeset in webkit [175824] by commit-queue@webkit.org
  • 10 edits
    6 deletes in trunk

Unreviewed, rolling out r175813.
https://bugs.webkit.org/show_bug.cgi?id=138573

Breaks complex text layout spacing (Requested by litherum on
#webkit).

Reverted changeset:

"[OSX] Some words are placed on top of each other in complex
text layout"
https://bugs.webkit.org/show_bug.cgi?id=138348
http://trac.webkit.org/changeset/175813

12:31 PM Changeset in webkit [175823] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Rolling out failed build fix
http://trac.webkit.org/changeset/175819

  • WebCore.exp.in:
12:31 PM Changeset in webkit [175822] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit2

Reset WebPageProxy's isPlayingAudio state after web process crash or page invalidation.
https://bugs.webkit.org/show_bug.cgi?id=138559

Reviewed by Andreas Kling.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

12:25 PM Changeset in webkit [175821] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Action menu initialization should be moved to _commonInitializationWithFrameName
https://bugs.webkit.org/show_bug.cgi?id=138572
-and corresponding-
rdar://problem/18929733

Reviewed by Tim Horton.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _initWithFrame:frameName:groupName:]):

12:18 PM Changeset in webkit [175820] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Speculative build fix.

  • WebCore.exp.in:
12:15 PM Changeset in webkit [175819] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Speculative build fix.

  • WebCore.exp.in:
12:03 PM Changeset in webkit [175818] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[iOS WK2] Layers with negative z position disapear behind the page tiles
https://bugs.webkit.org/show_bug.cgi?id=138571
rdar://problem/18873480

Reviewed by Dean Jackson.

Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
to use the m_childContainmentLayer as the ancestor for descendants, so layers with
negative z position would get depth-sorted behind the tiles.

Fix by removing that code.

This should have been detected by compositing/tile-cache-must-flatten.html, but
testing infrastructure suck prevented us from doing so.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::parentForSublayers):

  • rendering/RenderLayerBacking.h: Just some nullptr cleanup.
11:56 AM Changeset in webkit [175817] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move 'resize' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138550

Reviewed by Andreas Kling.

No new tests, no behavior change.

Move 'resize' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder by adding a new 'Resize' Converter function.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyResize::applyValue): Deleted.
(WebCore::ApplyPropertyResize::createHandler): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertResize):

11:35 AM Changeset in webkit [175816] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Speculative build fix.

  • editing/DictionaryLookup.h:
  • editing/DictionaryLookup.mm:
11:34 AM Changeset in webkit [175815] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Move 'text-indent' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138547

Reviewed by Andreas Kling.

Move 'text-indent' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder, by using custom code.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyTextIndent::applyInheritValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyInitialValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyValue): Deleted.
(WebCore::ApplyPropertyTextIndent::createHandler): Deleted.

  • css/StyleBuilderConverter.h:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderFunctions::applyInheritTextIndent):
(WebCore::StyleBuilderFunctions::applyInitialTextIndent):
(WebCore::StyleBuilderFunctions::applyValueTextIndent):

11:19 AM Changeset in webkit [175814] by Beth Dakin
  • 14 edits
    2 adds in trunk/Source

WK1: Support default actions for read-only text
https://bugs.webkit.org/show_bug.cgi?id=138552
-and corresponding-
rdar://problem/18877483

Reviewed by Tim Horton.

Source/WebCore:

WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/DictionaryLookup.h: Added.
  • editing/DictionaryLookup.mm: Added.

(WebCore::isPositionInRange):
(WebCore::shouldUseSelection):
(WebCore::rangeExpandedAroundPositionByCharacters):
(WebCore::rangeForDictionaryLookupForSelection):
(WebCore::rangeForDictionaryLookupAtHitTestResult):

  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

New WKSystemInterface functions that WebCore needs to use.

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

WebActionMenuController now keeps an ivar for the WebCore::HitTestResult. This
makes a lot of things easier.

  • WebView/WebActionMenuController.h:
  • WebView/WebActionMenuController.mm:

Perform the hit test ourselves instead of calling into WebView so that we can more
easily save the WebCore::HitTestResult for ourselves.
(-[WebActionMenuController performHitTestAtPoint:]):

Clear selection for non-text menus.
(-[WebActionMenuController prepareForMenu:withEvent:]):

Re-set the _type here just to be safe.
(-[WebActionMenuController didCloseMenu:withEvent:]):

Moving this method to be next to the link actions so they can be within a pragma
mark.
(-[WebActionMenuController _defaultMenuItemsForLink:]):

New method for default text actions — lookup and copy.
(-[WebActionMenuController _defaultMenuItemsForText:]):
(-[WebActionMenuController _copySelection:]):
(-[WebActionMenuController _lookupText:]):

If there is not already a selection, invoking the action menu on text should
select the lookup text.
(-[WebActionMenuController _selectLookupText]):
(performDictionaryLookupForSelection):
(performDictionaryLookupForRange):

Handle text now.
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

New enum values.

  • WebView/WebUIDelegatePrivate.h:

Pass didCloseMenu on to the controller.

  • WebView/WebView.mm:

(-[WebView didCloseMenu:withEvent:]):

Source/WebKit2:

WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::isPositionInRange): Deleted.
(WebKit::shouldUseSelection): Deleted.
(WebKit::rangeExpandedAroundPositionByCharacters): Deleted.
(WebKit::rangeForDictionaryLookupForSelection): Deleted.
(WebKit::rangeForDictionaryLookupAtHitTestResult): Deleted.

10:55 AM Changeset in webkit [175813] by mmaxfield@apple.com
  • 10 edits
    1 copy
    5 adds in trunk

[OSX] Some words are placed on top of each other in complex text layout
https://bugs.webkit.org/show_bug.cgi?id=138348

Reviewed by Simon Fraser.

Source/WebCore:

Some complex text layouts have lots of diacritics being placed all over the place.
CoreText sometimes compensates for this by adjusting the advances of the glyphs
throughout the string to make glyphs appear in the correct place. This means that
we can't naively cache the width of a space character; instead, we must obey
CoreText when it gives us an advance for a space.

Test: fast/text/large-space-width-complex.html

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

Updating tests to not use cached space width.

  • fast/text/large-space-width-complex-expected.html: Added.
  • fast/text/large-space-width-complex.html: Added.
  • fast/text/resources/NotoNastaliqUrduDraft.ttf: Added.
  • platform/mac-mavericks/fast/text/emphasis-expected.png:
  • platform/mac-mavericks/fast/text/emphasis-expected.txt: This test is orthogonal to space widths.
  • platform/mac-mountainlion/fast/text/emphasis-expected.png:
  • platform/mac-mountainlion/fast/text/emphasis-expected.txt:
  • platform/mac/fast/text/emphasis-expected.png:
  • platform/mac/fast/text/emphasis-expected.txt:
  • platform/mac/fast/text/sticky-typesetting-features-expected.png:
  • platform/mac/fast/text/sticky-typesetting-features-expected.txt: Ditto.
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.png:
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt: This test actually is improved with

this patch. Instead of a weirdly wide space width, the two words are spaced appropriately now.

10:35 AM Changeset in webkit [175812] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] wireless playback placeholder UI doesn't always draw
https://bugs.webkit.org/show_bug.cgi?id=138548

While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
when we are displaying inline controls because listening for it increases power consumption,
we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
it controls whether or not we draw the placeholder UI which is always visible during wireless
playback.

Reviewed by Brent Fulgham.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.addVideoListeners): Always listen for the

'webkitcurrentplaybacktargetiswirelesschanged' event.

(ControllerIOS.prototype.removeVideoListeners): Always stop listening for the

'webkitcurrentplaybacktargetiswirelesschanged' event.

(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update

the type of controls rendered and start listening for wireless target changes immediately.

(ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop

listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.

10:04 AM Changeset in webkit [175811] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix.

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

9:05 AM Changeset in webkit [175810] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

Remove BloomFilter size limit
https://bugs.webkit.org/show_bug.cgi?id=138549

Reviewed by Andreas Kling.

  • wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes.
8:20 AM Changeset in webkit [175809] by Csaba Osztrogonác
  • 3 edits
    2 adds in trunk

Crash in WebCore::Node::getFlag
https://bugs.webkit.org/show_bug.cgi?id=137961

Reviewed by Antti Koivisto.

Source/WebCore:

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle): Null pointer check added.

LayoutTests:

  • editing/execCommand/crash-137961-expected.txt: Added.
  • editing/execCommand/crash-137961.html: Added.
7:37 AM Changeset in webkit [175808] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Fix the test font path after r175555.

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-11-10
Reviewed by Csaba Osztrogonác.

  • WebKitTestRunner/PlatformEfl.cmake: Dependencies -> DependenciesEFL
6:58 AM Changeset in webkit [175807] by mihnea@adobe.com
  • 3 edits
    2 adds in trunk
ASSERTION FAILED: !object
!object->parent()->isRuby() is<RenderRubyRun>(*object) (object->isInline() && (object->isBeforeContent() object->isAfterContent())) (object->isAnonymous() && ... ) in WebCore::isAnonymousRubyInlineBlock

https://bugs.webkit.org/show_bug.cgi?id=137958

Reviewed by Chris Dumez.

Source/WebCore:

When a ruby element, with block behavior, dynamically changes its style
from multicol to without multicol, we have to remove its special children,
RenderMultiColumnFlowThread and RenderMultiColumnSet, the normal way using
the method in RenderBlockFlow base class. This patch adds both
RenderMultiColumnFlowThread and RenderMultiColumnSet to the list of RenderRuby
children removed normally and adds a new function - isRubyChildForNormalRemove -
to test the condition and use it in the assertion in RenderRuby*::removeChild
method.

Test: fast/multicol/newmulticol/ruby-from-multicol-to-auto.html

  • rendering/RenderRuby.cpp:

(WebCore::isRubyChildForNormalRemove):
(WebCore::RenderRubyAsInline::removeChild):
(WebCore::RenderRubyAsBlock::removeChild):

LayoutTests:

  • fast/multicol/newmulticol/ruby-from-multicol-to-auto-expected.txt: Added.
  • fast/multicol/newmulticol/ruby-from-multicol-to-auto.html: Added.
4:29 AM Changeset in webkit [175806] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebKit2

[WK2] Use C++ lambdas in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=138018

Reviewed by Anders Carlsson.

Replace uses of WTF::bind() in the IPC::Connection class with C++11 lambdas.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::initializeDeadNameSource):
(IPC::Connection::receiveSourceEventHandler):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::open):

2:48 AM Changeset in webkit [175805] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

[EFL] Add missing test results since r169631, r174992
https://bugs.webkit.org/show_bug.cgi?id=138502

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-11-10
Reviewed by Gyuyoung Kim.

  • platform/efl/accessibility/aria-inherits-presentational-expected.txt: Added.
  • platform/efl/accessibility/css-content-attribute-expected.txt: Added.
2:38 AM Changeset in webkit [175804] by commit-queue@webkit.org
  • 2 edits in trunk

Enable Cortex-A53-specific code paths by default if core is detected.
https://bugs.webkit.org/show_bug.cgi?id=138499

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Csaba Osztrogonác.

On ARM64/Linux, check /proc/cpuinfo for CPU part 0xd03 (signaling
Cortex-A53) and set the initial value of WTF_CPU_ARM64_CORTEXA53 to true
if found.

Since on ARM64/Linux the part number that cpuinfo reports depends on
the core the query is run on, the check is bound to and executed on the
available cores one by one.

  • Source/cmake/OptionsCommon.cmake:
1:09 AM Changeset in webkit [175803] by evab.u-szeged@partner.samsung.com
  • 2 edits in trunk

[EFL] Remove unnecessary version check from OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=138498

Reviewed by Csaba Osztrogonác.

  • Source/cmake/OptionsEfl.cmake:
12:00 AM Changeset in webkit [175802] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Fix 'noreturn' function does return warning in LLVMOverrides.cpp
https://bugs.webkit.org/show_bug.cgi?id=138306

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-09
Reviewed by Filip Pizlo.

Adding NO_RETURN where needed.

  • llvm/library/LLVMExports.cpp:

(initializeAndGetJSCLLVMAPI):

  • llvm/library/LLVMOverrides.cpp:
  • llvm/library/LLVMTrapCallback.h:

Nov 9, 2014:

11:59 PM Changeset in webkit [175801] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix the exception fuzz helper to generate targets in the correct range
https://bugs.webkit.org/show_bug.cgi?id=138544

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Filip Pizlo.

Currently, the script generates exception fuzz targets in the range of
0..($checkCount-1). However, target 0 is never hit, while target 1 is
always outside of the outermost try block of the tests, which therefore
prints unexpected output and results in false failures when fired at.
Additionally, target $checkCount is never generated.

This patch fixes the script to generate targets in the range of
2..$checkCount.

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:
10:52 PM Changeset in webkit [175800] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Remove GamepadDeviceEfl::create()
https://bugs.webkit.org/show_bug.cgi?id=138553

Reviewed by Darin Adler.

As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes GamepadDeviceEfl::create().
Instead we use std::make_unique<>.

No new tests, no behavior changes.

  • platform/efl/GamepadsEfl.cpp:

(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadDeviceEfl::create): Deleted.
(WebCore::GamepadsEfl::unregisterDevice): Deleted.

10:46 PM Changeset in webkit [175799] by gyuyoung.kim@samsung.com
  • 8 edits in trunk/Source

Remove create() factory function in FooAnimationValue classes
https://bugs.webkit.org/show_bug.cgi?id=138206

Reviewed by Darin Adler.

As a step to use std::unique_ptr and std::make_unique, this patch removes create()
factory function in FooAnimationValue classes. As this changes, FooAnimationValue::create()
are changed to std::make_unique<>.

Source/WebCore:

No new tests, no behavior changes.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::KeyframeValueList::insert):

  • platform/graphics/GraphicsLayer.h:

(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::FilterAnimationValue):
(WebCore::FloatAnimationValue::create): Deleted.
(WebCore::TransformAnimationValue::create): Deleted.
(WebCore::FilterAnimationValue::create): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):

Source/WebKit2:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

10:11 PM Changeset in webkit [175798] by Csaba Osztrogonác
  • 2 edits
    1 add
    1 delete in trunk/Tools

make-passwords-json.py should generarate everything needed for testing
https://bugs.webkit.org/show_bug.cgi?id=138503

Reviewed by Ryosuke Niwa.

  • BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py:

Renamed from make-passwords-json.py to be able included from mastercfg_unittest.py.
Additionally generate auth.json, credentials.cfg and committers.cfg too.
(create_mock_slave_passwords_dict): Moved from mastercfg_unittest.py

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:

(BuildBotConfigLoader._mock_open): Use make_passwords_json.create_mock_slave_passwords_dict() to avoid duplication.
(BuildBotConfigLoader._create_mock_passwords_dict): Deleted.

9:48 PM Changeset in webkit [175797] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, fix typo in r175796.

Rename areEssentialEqualAsFloat to areEssentiallyEqualAsFloat.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::areEssentiallyEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::areEssentialEqualAsFloat): Deleted.

4:21 PM Changeset in webkit [175796] by Chris Dumez
  • 14 edits in trunk/Source

Add a more correct way to compare floating point numbers and use it
https://bugs.webkit.org/show_bug.cgi?id=138527

Reviewed by Darin Adler.

Source/WebCore:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

No new tests, no behavior change.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::updateTimerIntervalIfNecessary):

  • platform/graphics/FloatQuad.cpp:

(WebCore::FloatQuad::isRectilinear):

  • platform/graphics/FloatRoundedRect.cpp:

(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius):

  • platform/graphics/FloatSize.h:

(WebCore::areEssentiallyEqual):
(WebCore::withinEpsilon): Deleted.

Source/WebKit/mac:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]):

Source/WebKit2:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

  • UIProcess/API/Cocoa/WKWebView.mm:

(withinEpsilon):

  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.

  • UIProcess/CoordinatedGraphics/PageViewportController.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::withinEpsilon):

  • UIProcess/API/Cocoa/WKWebView.mm:

(areEssentiallyEqualAsFloat):
(-[WKWebView _didCommitLayerTree:]):
(withinEpsilon): Deleted.

  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.

  • UIProcess/CoordinatedGraphics/PageViewportController.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::areEssentialEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::withinEpsilon): Deleted.

Source/WTF:

To compare floating point numbers in the code base, we would often rely
on the following check:
std::abs(a - b) <= std::numeric_limits<T>::epsilon()

However, this is not correct for arbitrary floating point values, and
will fail for values that are not close to zero.

This patch introduces a WTF::areEssentiallyEqual() templated function
that can only be called with floating point types and relies on the
following formula from [1][2] that defines u as being "essentially
equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e

[1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of

Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998.
229-45.

[2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html

  • wtf/MathExtras.h:

(WTF::safeFPDivision):
(WTF::areEssentiallyEqual):
(WTF::withinEpsilon): Deleted.

11:46 AM Changeset in webkit [175795] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Put bug link at the start of the line.

  • platform/mac-wk2/TestExpectations:
11:42 AM Changeset in webkit [175794] by Simon Fraser
  • 29 edits
    2 adds in trunk

Implement round-rect clipping on video elements
https://bugs.webkit.org/show_bug.cgi?id=138537
rdar://problem/9534399

Reviewed by Darin Adler.
Source/WebCore:

Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.

Test: compositing/video/video-border-radius.html

  • WebCore.exp.in:
  • platform/graphics/FloatRoundedRect.cpp:

(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius): Returns true if all
corner radii are the same, and have equal widths and heights.

  • platform/graphics/FloatRoundedRect.h: Allow construction without an explicit

rect.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer): nullptr goodness.
(showGraphicsLayerTree): Print contents layers when debugging.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::contentsClippingRect): Make this take a FloatRoundedRect.
(WebCore::GraphicsLayer::setContentsClippingRect):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateClippingStrategy): Determines whether we can simply
use corner-radius on the existing contentsClippingLayer, or whether we have to
create a shape layer to use as a mask.
(WebCore::GraphicsLayerCA::updateContentsRects): We have to add/remove the shape layer
based on the rounded rect radii. Calls updateClippingStrategy() on the clipping layer,
and also updates clones accordingly.
(WebCore::dumpInnerLayer):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump all the inner layers
(requiring on test rebaseline), including the new shape and backdrop layers.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h: Add a new shape layer type.
  • platform/graphics/ca/mac/PlatformCALayerMac.h: Support for corner radius and

a rounded rect shape mask.

  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::clone):
(PlatformCALayerMac::setMask):
(PlatformCALayerMac::cornerRadius):
(PlatformCALayerMac::setCornerRadius):
(PlatformCALayerMac::shapeRoundedRect):
(PlatformCALayerMac::setShapeRoundedRect):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::cornerRadius):
(PlatformCALayerWin::setCornerRadius):
(PlatformCALayerWin::shapeRoundedRect):
(PlatformCALayerWin::setShapeRoundedRect):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::resetContentsRect): Use getRoundedInnerBorderFor() to get
the rounded rect used to clip contents.
(WebCore::RenderLayerBacking::positionOverflowControlsLayers): Push a FloatRoundedRect for the contents clip,
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor): Ditto.
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.
(WebCore::RenderLayerBacking::updateImageContents): Get the rounded rect clip.

  • rendering/RenderLayerBacking.h: nullptr.

Source/WebKit2:

Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FloatRoundedRect>::encode):
(IPC::ArgumentCoder<FloatRoundedRect>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/mac/RemoteLayerBackingStore.mm: New shape layer type.

(WebKit::RemoteLayerBackingStore::drawInContext):

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::applyPropertiesToLayer): Apply corner-radius and shape path.

  • Shared/mac/RemoteLayerTreeTransaction.h: Prettify the flags. Yes, I prefer this style.
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(+[WKShapeView layerClass]): Make UIViews with a CAShapeLayer layer class.
(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::isEquivalentLayer):
(WebKit::PlatformCALayerRemote::setMask):
(WebKit::PlatformCALayerRemote::setClonedLayer):
(WebKit::PlatformCALayerRemote::cornerRadius):
(WebKit::PlatformCALayerRemote::setCornerRadius):
(WebKit::PlatformCALayerRemote::shapeRoundedRect):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

Test that uses clip() to compare a bit of rounded-rect video in the corner.
Rebaselined test that dumped contents layers.

  • compositing/video/video-border-radius-expected.html: Added.
  • compositing/video/video-border-radius.html: Added.
  • platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:
10:27 AM Changeset in webkit [175793] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] generate-gtkdoc should ignore invalid files
https://bugs.webkit.org/show_bug.cgi?id=138542

Reviewed by Darin Adler.

  • gtk/generate-gtkdoc:

(files_to_ignore.file_should_be_ignored): Return True to ignore
invalid files.

9:25 AM Changeset in webkit [175792] by Darin Adler
  • 13 edits in trunk/Source/WebCore

Fix various cases of incorrect cross-thread capture of non-thread-safe RefCounted
https://bugs.webkit.org/show_bug.cgi?id=138539

Reviewed by Alexey Proskuryakov.

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): Use StringCapture
instead of isolatedCopy, to avoid a problem where the original thread does its deref
after passing the string to the other thread.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail): Ditto.

  • dom/Document.cpp:

(WebCore::Document::addConsoleMessage): Pass a StringCapture when creating
AddConsoleMessageTask. Same reason as above, but in a different context.
(WebCore::Document::addMessage): Ditto.

  • dom/ScriptExecutionContext.h: Changed AddConsoleMessageTask to take and

capture a StringCapture rather than a String, for the same reason as above.

  • fileapi/AsyncFileStream.cpp:

(WebCore::AsyncFileStream::write): Use URLCapture instead of trying to use
StringCapture on a URL, since that doesn't preserve the validity flag.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Use StringCapture.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): Ditto.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck): Ditto.

  • platform/URL.h: Added URLCapture.
  • platform/network/FormData.cpp:

(WebCore::appendBlobResolved): Remove incorrect pointless code that creates a new URL
from an existing URL with the ParsedURLString constructor.

  • workers/DefaultSharedWorkerRepository.cpp: Fixed code that was trying to copy a URL

by copying a string to instead just use URL::copy. The comment claimed that URL::copy
is not thread safe, but that claim is incorrect.
(WebCore::SharedWorkerProxy::postExceptionToWorkerObject): Use StringCapture.
(WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::DefaultSharedWorkerRepository::getProxy): Use URL::copy.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::addConsoleMessage): Use StringCapture.
(WebCore::WorkerGlobalScope::addMessage): Ditto.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::sendMessageToInspector): Ditto.
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Ditto.

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::postTaskAndTerminate): Make a Task with make_unique
rather than with Task::create. Removed an extra isolatedCopy, unneeded because
the Task constructor already does an isolatedCopy.
(WebCore::WorkerRunLoop::postTaskForMode): Ditto.
(WebCore::WorkerRunLoop::Task::create): Deleted.

  • workers/WorkerRunLoop.h: Removed unneeded create function and explicit

public empty destructor.

9:21 AM Changeset in webkit [175791] by Chris Dumez
  • 10 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for HTMLCollection subclasses
https://bugs.webkit.org/show_bug.cgi?id=138541

Reviewed by Sam Weinig.

Use is<>() / downcast<>() for HTMLCollection subclasses for
safety and consistency with the rest of the code base.

No new tests, no behavior change.

  • bindings/gobject/WebKitDOMPrivate.cpp:

(WebKit::wrap):

  • html/HTMLAllCollection.h:
  • html/HTMLCollection.cpp:

(WebCore::isMatchingHTMLElement):
(WebCore::isMatchingElement):

  • html/HTMLCollection.h:
  • html/HTMLFormControlsCollection.h:
  • html/HTMLNameCollection.h:
  • html/HTMLOptionsCollection.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::options):

  • html/HTMLTableRowsCollection.h:
2:12 AM Changeset in webkit [175790] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Move _ignoresNonWheelMouseEvents implementation to WKView(Private)
https://bugs.webkit.org/show_bug.cgi?id=138487

Patch by Conrad Shultz <Conrad Shultz> on 2014-11-09
Reviewed by Dan Bernstein.

Relocate some methods that should have been in a category implementation.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _ignoresNonWheelMouseEvents]):

Note: See TracTimeline for information about the timeline view.