1. 24 Apr, 2013 1 commit
  2. 23 Apr, 2013 28 commits
    • fpizlo@apple.com's avatar
      DFG CFA filters CheckFunction in a really weird way, and assumes that the... · f0dc46c7
      fpizlo@apple.com authored
      DFG CFA filters CheckFunction in a really weird way, and assumes that the function's structure won't change
      https://bugs.webkit.org/show_bug.cgi?id=115077
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      The filtering did three things that are unusual:
              
      1) AbstractValue::filterByValue() assumed that the passed value's structure wouldn't change, in
         the sense that at it assumed it could use that value's *current* structure to do structure
         filtering. Filtering by structure only makes sense if you can prove that the given value will
         always have that structure (for example by either using a watchpoing or emitting code that
         checks that structure at run-time).
              
      2) AbstractValue::filterByValue() and the CheckFunction case in AbstractState::executeEffects()
         tried to invalidate the CFA based on whether the filtration led to an empty value. This is
         well-intentioned, but it's not how the CFA currently works. It's inconsistent with other
         parts of the CFA. We shouldn't introduce this feature into just one kind of filtration and
         not have it elsewhere.
              
      3) The attempt to detect when the value was empty was actually implemented incorrectly. It
         relied on AbstractValue::validate(). That method says that a concrete value does not belong
         to the abstract value if it has a different structure. This makes sense for the other place
         where AbstractValue::validate() is called: during OSR entry, where we are talking about a
         JSValue that we see *right now*. It doesn't make sense in the CFA, since in the CFA any
         value we observe in the code is a value whose structure may change when the code starts
         running, and so we cannot use the value's current structure to infer things about the code
         when it starts running.
              
      I fixed the above problems by (1) changing filterByValue() to not filter the structure, (2)
      changing filterByValue() and the CheckFunction case to not invalidate the CFA, and (3)
      making sure that nobody else was misusing AbstractValue::validate() (they weren't).
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::executeEffects):
      * dfg/DFGAbstractValue.h:
      (JSC::DFG::AbstractValue::filterByValue):
      
      LayoutTests: 
      
      Reviewed by Oliver Hunt.
              
      This hilarious test fails prior to the rest of this patch.
      
      * fast/js/dfg-check-function-change-structure-expected.txt: Added.
      * fast/js/dfg-check-function-change-structure.html: Added.
      * fast/js/jsc-test-list:
      * fast/js/script-tests/dfg-check-function-change-structure.js: Added.
      (foo):
      (bar):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f0dc46c7
    • commit-queue@webkit.org's avatar
      Add platform support for -webkit-background-blend-mode to CG context with background color · 70f3d9eb
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114412
      
      Patch by Mihai Tica <mitica@adobe.com> on 2013-04-23
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Tests: css3/compositing/effect-background-blend-mode-color.html, css3/compositing/effect-background-blend-mode-color2.html
      
      This patch adds support for blending on background colors to the Core Graphics port of WebKit.
      
      * platform/graphics/GraphicsContext.cpp:
      (WebCore::GraphicsContext::fillRect):
      (WebCore::GraphicsContext::fillRoundedRect):
      * platform/graphics/GraphicsContext.h:
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::paintFillLayerExtended):
      
      LayoutTests:
      
      Adding pixel tests for -webkit-background-blend-mode with bg-color
      effect-background-blend-mode-color.html uses accelerated compositing
      effect-background-blend-mode-color2.html uses software rendering
      
      * css3/compositing/effect-background-blend-mode-color-expected.txt: Added.
      * css3/compositing/effect-background-blend-mode-color.html: Added.
      * platform/mac/css3/compositing/effect-background-blend-mode-color-expected.png: Added.
      * css3/compositing/effect-background-blend-mode-color2-expected.txt: Added.
      * css3/compositing/effect-background-blend-mode-color2.html: Added.
      * platform/mac/css3/compositing/effect-background-blend-mode-color2-expected.png: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70f3d9eb
    • ch.dumez@sisa.samsung.com's avatar
      Global constructors should be configurable and not enumerable · 0051b742
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110573
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      Update JSObject::deleteProperty() so that mark to set the property
      value to undefined if it is in static hashtable of properties. The
      previous code was not doing anything in this case and this meant
      we could not remove builtin DOMWindow properties such as
      "ProgressEvent" even if marked as Deletable.
      
      * runtime/JSObject.cpp:
      (JSC::JSObject::deleteProperty):
      * runtime/Lookup.h:
      (JSC):
      (JSC::putEntry):
      (JSC::lookupPut):
      
      Source/WebCore:
      
      Update JSC Code generator so that global constructors now have the following
      attributes:
      { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
      instead of previously:
      { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }
      
      The new behavior is according to the Web IDL specification (section 4.4):
      http://dev.w3.org/cvsweb/~checkout~/2006/webapi/WebIDL/Overview.html?rev=1.617;content-type=text%2Fhtml#es-interfaces
      
      This also matches the behavior of Firefox.
      
      Tests: fast/js/global-constructors-attributes.html
             fast/js/global-constructors-deletable.html
      
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateAttributesHashTable):
      
      LayoutTests:
      
      Add new tests to make sure that the global constructors have the
      right attributes and to check that they are 'Deletable'.
      
      * canvas/philip/tests/type.delete-expected.txt: Removed.
      * canvas/philip/tests/type.delete.html: Removed. It was checking that global constructor
      could NOT be deleted, which is no longer according to the Web IDL specification.
      * fast/dom/constructed-objects-prototypes-expected.txt:
      * fast/dom/script-tests/constructed-objects-prototypes.js: Update test to hardcode a few
      global constructors as they are no longer enumerable.
      * fast/js/getOwnPropertyDescriptor-expected.txt:
      * fast/js/global-constructors.html: Removed. It was relying on the global constructors
      to be 'Enumerable', which is not to the latest Web IDL specification.
      * fast/js/global-constructors-attributes-expected.txt: Added.
      * fast/js/global-constructors-attributes.html: Added.
      * fast/js/global-constructors-deletable-expected.txt: Added.
      * fast/js/global-constructors-deletable.html: Added.
      * fast/js/global-constructors-expected.txt: Removed.
      * fast/js/resources/getOwnPropertyDescriptor.js:
      * fast/js/script-tests/global-constructors-attributes.js: Added.
      * fast/js/script-tests/global-constructors-deletable.js: Added.
      * fast/js/script-tests/global-constructors.js: Removed.
      * platform/efl/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
      * platform/efl/fast/js/global-constructors-expected.txt: Removed.
      * platform/gtk/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
      * platform/gtk/fast/js/global-constructors-expected.txt: Removed.
      * platform/mac/fast/js/global-constructors-expected.txt: Removed.
      * platform/qt/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
      * platform/qt/fast/js/global-constructors-expected.txt: Removed.
      * platform/win/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
      * platform/win/fast/js/global-constructors-expected.txt: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0051b742
    • ggaren@apple.com's avatar
      Source/JavaScriptCore: Filled out more cases of branch folding in bytecode when emitting · ec40baf6
      ggaren@apple.com authored
      expressions into a branching context
      https://bugs.webkit.org/show_bug.cgi?id=115057
      
      Reviewed by Filip Pizlo.
      
      This covers a few cases like:
      
          - while (true) { }
          - while (1) { }
          - if (x) break;
          - if (x) continue;
          - if (boolean_expr == boolean_const) { }
          - if (boolean_expr == 1_or_0) { }
          - if (bitop == 1_or_0) { }
      
      This also works, but will bring shame on your family:
      
          - while ("hello world") { }
      
      No change on the benchmarks we track, but a 2.5X speedup on a microbenchmark
      that uses these techniques.
      
      * JavaScriptCore.order: Order!
      
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitNewArray):
      (JSC::BytecodeGenerator::emitThrowReferenceError):
      (JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
      * bytecompiler/BytecodeGenerator.h:
      (JSC::BytecodeGenerator::shouldEmitDebugHooks): Updated ancillary code
      for interface simplifications.
      
      * bytecompiler/NodesCodegen.cpp:
      (JSC::ConstantNode::emitBytecodeInConditionContext): Constants can
      jump unconditionally when used within a condition context.
      
      (JSC::ConstantNode::emitBytecode):
      (JSC::StringNode::jsValue): Gave constants a common base class so I
      could implement their codegen just once.
      
      (JSC::BinaryOpNode::emitBytecodeInConditionContext):
      (JSC::canFoldToBranch):
      (JSC::BinaryOpNode::tryFoldToBranch): Fold (!/=)= and (!/=)== where
      appropriate. A lot of cases are not appropriate because of the surprising
      type conversion semantics of ==. For example, if (number == true) { } is
      not the same as if (number) { } because the former will up-convert true
      to number and then do numeric comparison.
      
      (JSC::singleStatement):
      (JSC::IfElseNode::tryFoldBreakAndContinue):
      (JSC::IfElseNode::emitBytecode):
      (JSC::ContinueNode::trivialTarget):
      (JSC::BreakNode::trivialTarget): Fold "if (expression) break" and
      "if (expression) continue" into direct jumps from expression.
      
      * parser/ASTBuilder.h:
      (ASTBuilder):
      (JSC::ASTBuilder::createIfStatement):
      * parser/NodeConstructors.h:
      (JSC::ConstantNode::ConstantNode):
      (JSC):
      (JSC::NullNode::NullNode):
      (JSC::BooleanNode::BooleanNode):
      (JSC::NumberNode::NumberNode):
      (JSC::StringNode::StringNode):
      (JSC::IfElseNode::IfElseNode):
      * parser/Nodes.h:
      (JSC::ExpressionNode::isConstant):
      (JSC::ExpressionNode::isBoolean):
      (JSC::StatementNode::isBreak):
      (JSC::StatementNode::isContinue):
      (ConstantNode):
      (JSC::ConstantNode::isPure):
      (JSC::ConstantNode::isConstant):
      (NullNode):
      (JSC::NullNode::jsValue):
      (JSC::BooleanNode::value):
      (JSC::BooleanNode::isBoolean):
      (JSC::BooleanNode::jsValue):
      (JSC::NumberNode::value):
      (NumberNode):
      (JSC::NumberNode::jsValue):
      (StringNode):
      (BinaryOpNode):
      (IfElseNode):
      (ContinueNode):
      (JSC::ContinueNode::isContinue):
      (BreakNode):
      (JSC::BreakNode::isBreak):
      * parser/Parser.cpp:
      (JSC::::parseIfStatement):
      * parser/ResultType.h:
      (JSC::ResultType::definitelyIsBoolean):
      (ResultType):
      * runtime/JSCJSValueInlines.h:
      (JSC::JSValue::pureToBoolean):
      * runtime/JSCell.h:
      * runtime/JSCellInlines.h:
      (JSC::JSCell::pureToBoolean): Updated for interface changes above.
      
      Source/WTF: Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
      https://bugs.webkit.org/show_bug.cgi?id=115057
      
      Reviewed by Filip Pizlo.
      
      Added a helper constructor for TriState so clients can make one without
      branching or making assumptions about the integer values of TriStates.
      
      * wtf/TriState.h:
      (WTF::triState):
      (WTF):
      
      LayoutTests: Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
      https://bugs.webkit.org/show_bug.cgi?id=115057
      
      Reviewed by Filip Pizlo.
      
      Added a performance test for interesting branch types.
      
      * fast/js/regress/branch-fold-expected.txt: Added.
      * fast/js/regress/branch-fold.html: Added.
      * fast/js/regress/script-tests/branch-fold.js: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec40baf6
    • simon.fraser@apple.com's avatar
      Don't create compositing layers for sticky position unless using the ScrollingCoordinator · cdd758c0
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115060
      
      Source/WebCore:
      
      Reviewed by Tim Horton.
      
      Creating compositing layers for sticky position elements is only useful
      when we're using a ScrollingCoordinator, so don't create them if
      we're not in a frame that uses a scrolling coordinator.
      
      Tests: compositing/layer-creation/no-compositing-for-sticky.html
             platform/mac-wk2/tiled-drawing/sticky/sticky-layers.html
      
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
      
      LayoutTests:
      
      Reviewed by Tim Horton.
      
      Tests that we create layers for sticky position when in tiled drawing mode,
      and that we have no layers when not.
      
      * compositing/layer-creation/no-compositing-for-sticky-expected.txt: Added.
      * compositing/layer-creation/no-compositing-for-sticky.html: Added.
      * platform/mac-wk2/tiled-drawing/sticky/sticky-layers-expected.txt: Added.
      * platform/mac-wk2/tiled-drawing/sticky/sticky-layers.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148998 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cdd758c0
    • ch.dumez@sisa.samsung.com's avatar
      'length' property of DOM bindings functions returns wrong value · 3b62c4ed
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110569
      
      Reviewed by Geoffrey Garen.
      
      Source/WebCore:
      
      Make the 'length' property of Function objects and Interface
      objects behave according to the latest Web IDL specification
      editor draft:
      http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call
      http://dev.w3.org/2006/webapi/WebIDL/#es-operations
      
      As a result, only mandatory arguments are taken into account
      when computing the value for the 'length' property. This
      behavior is consistent with Firefox and Blink.
      
      Tests: fast/js/constructor-length.html
             fast/js/function-length.html
      
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateImplementation):
      (GenerateConstructorHelperMethods):
      Update the JSC code generator to only account for mandatory parameters
      when computing the value for the 'length' property of Function objects
      and constructors.
      
      * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
      (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
      (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
      (WebCore::JSTestEventConstructorConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestEventTarget.cpp:
      (WebCore::JSTestEventTargetConstructor::finishCreation):
      (WebCore):
      * bindings/scripts/test/JS/JSTestException.cpp:
      (WebCore::JSTestExceptionConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestInterface.cpp:
      (WebCore::JSTestInterfaceConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
      (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
      (WebCore::JSTestNamedConstructorConstructor::finishCreation):
      (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
      * bindings/scripts/test/JS/JSTestObj.cpp:
      (WebCore):
      * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
      (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
      (WebCore):
      * bindings/scripts/test/JS/JSTestTypedefs.cpp:
      (WebCore):
      Rebaseline bindings tests results.
      
      * fileapi/Blob.idl:
      Remove 'ConstructorParameters=2' extended attribute as the correct value
      is 0, given that a Blob can be constructed without parameter.
      
      * html/canvas/DataView.idl:
      Update ConstructorParameters extended attribute value from 3 to 1 as only
      one of the 3 parameters is mandatory.
      
      * html/canvas/Float32Array.idl:
      * html/canvas/Float64Array.idl:
      * html/canvas/Int16Array.idl:
      * html/canvas/Int32Array.idl:
      * html/canvas/Int8Array.idl:
      * html/canvas/Uint16Array.idl:
      * html/canvas/Uint32Array.idl:
      * html/canvas/Uint8Array.idl:
      * html/canvas/Uint8ClampedArray.idl:
      Remove 'ConstructorParameters=1' extended attribute from interfaces using
      'ConstructorTemplate=TypedArray' as the bindings generator now properly
      compute the number of constructor parameters for such interfaces.
      
      * page/WebKitPoint.idl:
      Remove 'ConstructorParameters=2' extended attribute as the correct value
      should be 0, given that a WebKitPoint can be constructed without parameters.
      
      LayoutTests:
      
      Update fast/js/constructor-length.html test case now that only
      mandatory arguments are considered for the constructor length.
      
      Also add a new fast/js/function-length.html test to make sure
      that the 'length' property of Function objects from DOM
      bindings behaves according to the Web IDL specification as
      this was not covered by existing tests.
      
      * fast/files/blob-constructor-expected.txt: Rebaseline.
      * fast/files/script-tests/blob-constructor.js: Update test now that Blob constructor
      length is 0 instead of 2.
      * fast/js/constructor-length.html:
      * fast/js/function-length-expected.txt: Added.
      * fast/js/function-length.html: Added.
      * platform/blackberry/fast/js/constructor-length-expected.txt: Rebaseline.
      * platform/efl/TestExpectations: Unskip fast/js/constructor-length.html for EFL port.
      * platform/efl/fast/js/constructor-length-expected.txt: Copied from LayoutTests/platform/mac/fast/js/constructor-length-expected.txt.
      * platform/gtk/fast/js/constructor-length-expected.txt: Rebaseline.
      * platform/mac/fast/js/constructor-length-expected.txt: Rebaseline.
      * platform/qt/fast/js/constructor-length-expected.txt: Rebaseline.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3b62c4ed
    • commit-queue@webkit.org's avatar
      NRWT: confusing warning about a line being in a Skipped file when it is really just listed · df3888bd
      commit-queue@webkit.org authored
      in _missing_symbol_to_skipped_tests in base.py
      https://bugs.webkit.org/show_bug.cgi?id=108884
      
      Patch by Jessie Berlin <jberlin@apple.com> on 2013-04-23
      Reviewed by Tim Horton.
      
      Tools:
      
      Remove symbol-based skipped list detection.
      
      * Scripts/webkitpy/port/base.py:
      (Port._missing_feature_to_skipped_tests):
      (Port._skipped_tests_for_unsupported_features):
      * Scripts/webkitpy/port/port_testcase.py:
      (PortTestCase.test_path_to_test_expectations_file):
      
      LayoutTests:
      
      Explicitly skip the mhtml tests on the Mac and Win ports.
      
      * platform/mac/TestExpectations:
      * platform/win/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df3888bd
    • krit@webkit.org's avatar
      Pick up color and mat values in custom shaders · 5ff7cd8e
      krit@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=115046
      
      Reviewed by Dean Jackson.
      
      Source/WebCore:
      
      The custom filter functions accept color values and mat2-4 functions
      as parameter types. These were implemented in CSS already.
      This patch picks up the values and applies them as uniforms to the
      custom shader program.
      
      Tests: css3/filters/custom/custom-filter-color.html
             css3/filters/custom/custom-filter-matN.html
      
      * platform/graphics/filters/CustomFilterRenderer.cpp:
      (WebCore::CustomFilterRenderer::bindProgramColorParameters): Set uniform for color values.
      (WebCore):
      (WebCore::CustomFilterRenderer::bindProgramMatrixParameters): Set uniform for mat2-4 values.
      (WebCore::CustomFilterRenderer::bindProgramParameters): Call color and matrix functions.
      * platform/graphics/filters/CustomFilterRenderer.h:
      (WebCore):
      (CustomFilterRenderer):
      
      LayoutTests:
      
      Test that the CSS defined color values and mat2-4 functions get
      set as uniforms in shader programs.
      
      * css3/filters/custom/custom-filter-color-expected.html: Added.
      * css3/filters/custom/custom-filter-color.html: Added.
      * css3/filters/custom/custom-filter-matN-expected.html: Added.
      * css3/filters/custom/custom-filter-matN.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ff7cd8e
    • simon.fraser@apple.com's avatar
      Tiled layers clipped inside nested transform/preserve-3d hierarchies · cc69d881
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115044
      
      Source/WebCore:
      
      Reviewed by Dean Jackson.
      
      The optimization added in r139479 to call move() for integral translation
      transforms hit a bug in TransformState::move(). If m_accumulatedTransform is
      not null, we have to apply it.
      
      Test: compositing/visible-rect/flipped-preserve-3d.html
      
      * platform/graphics/transforms/TransformState.cpp:
      (WebCore::TransformState::move):
      
      LayoutTests:
      
      Reviewed by Dean Jackson.
      
      Testcase that dumps visible rects for tiled layers inside nested
      transformed/preserve-3d hierarchies.
      
      * compositing/visible-rect/flipped-preserve-3d-expected.txt: Added.
      * compositing/visible-rect/flipped-preserve-3d.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148988 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cc69d881
    • csaavedra@igalia.com's avatar
      Ctrl+Shift+Right in Windows should select the spacing after the word · 03b571c8
      csaavedra@igalia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110487
      
      Reviewed by Ryosuke Niwa.
      
      Source/WebCore:
      
      Tests: editing/deleting/smart-editing-disabled-win.html
             editing/execCommand/remove-format-multiple-elements-win.html
             editing/execCommand/toggle-link-win.html
             editing/execCommand/toggle-unlink-win.html
             editing/selection/extend-selection-enclosing-block-win.html
             editing/style/make-text-writing-direction-inline-win.html
             editing/style/push-down-font-styles-win.html
             editing/style/push-down-implicit-styles-around-list-win.html
      
      * editing/FrameSelection.cpp:
      (WebCore::FrameSelection::nextWordPositionForPlatform): New method
      that takes platform-specific editing behaviour in order to decide
      what the next word position is, that is, for Windows, skip
      spacing, for all other platforms, behave as currently.
      (WebCore::FrameSelection::modifyExtendingRight):
      (WebCore::FrameSelection::modifyExtendingForward):
      (WebCore::FrameSelection::modifyMovingForward):
      (WebCore::FrameSelection::modifyExtendingLeft): Use the new method
      in all of the above.
      * editing/FrameSelection.h: Declare the new method.
      
      LayoutTests:
      
      * editing/deleting/smart-editing-disabled-win-expected.txt: Added.
      * editing/deleting/smart-editing-disabled-win.html: Added.
      * editing/execCommand/query-command-state-expected.txt:
      * editing/execCommand/remove-format-multiple-elements-win-expected.txt: Added.
      * editing/execCommand/remove-format-multiple-elements-win.html: Added.
      * editing/execCommand/script-tests/query-command-state.js:
      (runTests): Update to reflect new editing behavior in Windows.
      * editing/execCommand/script-tests/remove-format-multiple-elements-win.js: Added.
      * editing/execCommand/script-tests/toggle-link-win.js: Added.
      * editing/execCommand/script-tests/toggle-unlink-win.js: Added.
      * editing/execCommand/toggle-link-win-expected.txt: Added.
      * editing/execCommand/toggle-link-win.html: Added.
      * editing/execCommand/toggle-unlink-win-expected.txt: Added.
      * editing/execCommand/toggle-unlink-win.html: Added.
      * editing/selection/extend-selection-enclosing-block-win-expected.txt: Added.
      * editing/selection/extend-selection-enclosing-block-win.html: Added.
      * editing/selection/resources/extend-selection.js:
      (extendSelectionWithinBlockWin): Method to test behavior in windows.
      (extendAndLogSelectionWithinBlock): Add test support for Windows.
      * editing/selection/selection-extend-should-not-move-across-caret-on-mac.html:
      Add test support for Windows editing behavior.
      * editing/style/make-text-writing-direction-inline-win-expected.txt: Added.
      * editing/style/make-text-writing-direction-inline-win.html: Added.
      * editing/style/push-down-font-styles-win-expected.txt: Added.
      * editing/style/push-down-font-styles-win.html: Added.
      * editing/style/push-down-implicit-styles-around-list-win-expected.txt: Added.
      * editing/style/push-down-implicit-styles-around-list-win.html: Added.
      * editing/style/script-tests/make-text-writing-direction-inline-win.js: Added.
      * editing/style/script-tests/push-down-font-styles-win.js: Added.
      * editing/style/script-tests/push-down-implicit-styles-around-list-win.js: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148987 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      03b571c8
    • zoltan@webkit.org's avatar
      [Qt] REGRESSION (r148975) shape-inside-percentage.html and... · d54150b6
      zoltan@webkit.org authored
      [Qt] REGRESSION (r148975) shape-inside-percentage.html and shape-inside-overflow-fixed-dimensions.html are failing after r148975
      https://bugs.webkit.org/show_bug.cgi?id=115053
      
      Unreviewed gardening.
      
      * platform/qt/TestExpectations: Skip failing tests.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d54150b6
    • commit-queue@webkit.org's avatar
      Remove fast/js/i18n-bindings-locale.html · 23f5ab4c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=115024
      
      Patch by Seokju Kwon <seokju.kwon@gmail.com> on 2013-04-23
      Reviewed by Geoffrey Garen.
      
      Remove V8-i18n-extension test(r78095) from all ports.
      
      * fast/js/i18n-bindings-locale-expected.txt: Removed.
      * fast/js/i18n-bindings-locale.html: Removed.
      * fast/js/script-tests/i18n-bindings-locale.js: Removed.
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      23f5ab4c
    • zoltan@webkit.org's avatar
      [CSS Exclusions] shape-inside overflow should be pushed to the outside of the content box · 3bd77f58
      zoltan@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114526
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      The specification has changed to define shape-outside as the inverse of an exclusion. Overflowing content
      should not overlap the shape, and it should be pushed outside the content box. This change affects several
      tests, but only one new has been added. In this change I'm not intended to include the behavior change for
      shape-inside on CSS Regions, I'm going to fix that in a follow up patch.
      
      Tests: fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Modified.
             fast/exclusions/shape-inside/shape-inside-bottom-edge.html: Modified.
             fast/exclusions/shape-inside/shape-inside-empty.html: Modified.
             fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Added.
             fast/exclusions/shape-inside/shape-inside-overflow.html: Modified.
             fast/exclusions/shape-inside/shape-inside-percentage.html: Modified.
             fast/exclusions/shape-inside/shape-inside-rounded-rectangle-004.html: Modified.
      
      * rendering/ExclusionShapeInfo.h:
      (WebCore::ExclusionShapeInfo::clearSegments): Shape-outside's code uses shape-inside codepaths, when that happens we need to provide a
      way to reset the m_segments member.
      (WebCore::ExclusionShapeInfo::shapeContainingBlockHeight): The containing block's height is stored in m_shapeLogicalHeight, I added a
      function to get this value when we need it to calculate the content box's bottom position.
      (ExclusionShapeInfo):
      (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds):
      (WebCore::ExclusionShapeInfo::lineWithinShapeBounds):  Add function to test whether a whole line is within a shape or not.
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Overflowing content should start under the content box.
      (WebCore::RenderBlock::LineBreaker::nextLineBreak): Since we use shape-inside codepaths for shape-outside in layoutRunsAndFloatsInRange function
      and for shape-outside is not a requirement to check the line's bottom position is within the shape we might end up with some extra segments here.
      In this case we should clear segments, since we don't want to apply any horizontal offsets on the overflowing content.
      
      LayoutTests:
      
      Update and add tests for the new behavior.
      
      * fast/exclusions/resources/rounded-rectangle.js:
      (generateString): Modify the function to not generate overflow content.
      * fast/exclusions/shape-inside/shape-inside-bottom-edge-expected.html:
      * fast/exclusions/shape-inside/shape-inside-bottom-edge.html:
      * fast/exclusions/shape-inside/shape-inside-empty-expected.html:
      * fast/exclusions/shape-inside/shape-inside-empty.html:
      * fast/exclusions/shape-inside/shape-inside-overflow-expected.html:
      * fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions-expected.html: Added.
      * fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Added.
      * fast/exclusions/shape-inside/shape-inside-overflow.html:
      * fast/exclusions/shape-inside/shape-inside-percentage-expected.html:
      * fast/exclusions/shape-inside/shape-inside-percentage.html:
      * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-004-expected.html:
      * fast/exclusions/shape-inside/shape-inside-rounded-rectangle-004.html:
      * fast/regions/shape-inside/shape-inside-on-additional-regions-expected.html:
      * fast/regions/shape-inside/shape-inside-on-additional-regions.html: This test is not intented to test the overflow behavior from
      shape-inside on regions, so I set the shape's height to the container's height.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3bd77f58
    • robert@webkit.org's avatar
      checkLayout() should error out if no data-expected* attributes were found · ec4d7423
      robert@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114900
      
      Reviewed by Ojan Vafai.
      
      If checkLayout() doesn't find any attributes checking the node's layout then error out
      instead of assuming the test has passed. This will ensure data-* attributes containing
      typos don't register as a pass.
      
      * fast/check-layout-error-no-attributes-expected.txt: Added.
      * fast/check-layout-error-no-attributes.html: Added.
      * resources/check-layout.js:
      (.):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148973 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec4d7423
    • commit-queue@webkit.org's avatar
      WebSocket: Return type of send() should be void if hybi-10 protocol is chosen · a0c86a09
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=65850
      
      Patch by Lamarque V. Souza <Lamarque.Souza@basyskom.com> on 2013-04-23
      Reviewed by Alexey Proskuryakov.
      
      Source/WebCore:
      
      WebSocket API draft changed the return type of send() from boolean to void based on Simon
      Pieters' post to WHATWG. Firefox 8 and IE 10 already follow the specification, hence it should
      make sense for us to do the same when hybi protocol is used.
      
      Original patch by Yuta Kitamura  <yutak@chromium.org>
      
      Tests: http/tests/websocket/tests/hybi/bufferedAmount-after-close.html (updated)
             http/tests/websocket/tests/hybi/send-after-close-on-unload.html (updated)
      
      * Modules/websockets/WebSocket.cpp:
      (WebCore::WebSocket::send):
      * Modules/websockets/WebSocket.h:
      * Modules/websockets/WebSocket.idl:
      
      LayoutTests:
      
      Update tests and test results because WebSocket.send() now returns undefined when
      the hybi WebSocket protocol is used.
      
      * http/tests/websocket/tests/hybi/bufferedAmount-after-close-expected.txt:
      * http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy-expected.txt:
      * http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
      * http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
      * http/tests/websocket/tests/hybi/send-after-close-on-unload-expected.txt:
      * http/tests/websocket/tests/hybi/send-after-close-on-unload.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a0c86a09
    • akling@apple.com's avatar
      Clear StyleResolver state before returning from styleForElement(). · 0cc3dc0b
      akling@apple.com authored
      <http://webkit.org/b/115035>
      
      Reviewed by Antti Koivisto.
      
      From Blink r148687 by <inferno@chromium.org>.
      
      Source/WebCore:
      
      A cached element pointer in the resolver state was causing confusion because
      in some cases a subsequent call to styleForElement() would use a pointer to
      a different object that is at the same memory address as the previous one.
      
      Test: fast/css/reload-non-styled-element-crash.html
      
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::styleForElement):
      
      LayoutTests:
      
      * fast/css/reload-non-styled-element-crash-expected.txt: Added.
      * fast/css/reload-non-styled-element-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0cc3dc0b
    • allan.jensen@digia.com's avatar
      Baselines for fast/css/image-rendering.html · 1c96c9fe
      allan.jensen@digia.com authored
      Unreviewed gardening.
      
      * fast/css/image-rendering-expected.png: Added.
      * fast/css/image-rendering-expected.txt: Added.
      * platform/gtk-wk1/fast/css/image-rendering-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c96c9fe
    • allan.jensen@digia.com's avatar
      Remove the text expecation again to force the bots to fail and generate png expectations. · ff24f636
      allan.jensen@digia.com authored
      Unreviewed ungardening.
      
      * fast/css/image-rendering-expected.txt: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff24f636
    • zandobersek@gmail.com's avatar
      Unreviewed GTK gardening. Rebaselining after r148944. · 84ed7f11
      zandobersek@gmail.com authored
      * platform/gtk/TestExpectations:
      * platform/gtk/fast/table/giantRowspan-expected.txt:
      * platform/gtk/fast/table/giantRowspan2-expected.png:
      * platform/gtk/fast/table/giantRowspan2-expected.txt:
      * platform/gtk/tables/mozilla/bugs/bug133756-1-expected.txt:
      * platform/gtk/tables/mozilla/bugs/bug133756-2-expected.png:
      * platform/gtk/tables/mozilla/bugs/bug133756-2-expected.txt:
      * platform/gtk/tables/mozilla/bugs/bug220536-expected.png:
      * platform/gtk/tables/mozilla/bugs/bug220536-expected.txt:
      * platform/gtk/tables/mozilla/bugs/bug8858-expected.txt:
      * platform/gtk/tables/mozilla/core/bloomberg-expected.png:
      * platform/gtk/tables/mozilla/core/bloomberg-expected.txt:
      * platform/gtk/tables/mozilla/core/row_span-expected.png:
      * platform/gtk/tables/mozilla/core/row_span-expected.txt:
      * platform/gtk/tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
      * platform/gtk/tables/mozilla_expected_failures/bugs/bug23847-expected.png:
      * platform/gtk/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
      * platform/gtk/tables/mozilla_expected_failures/bugs/bug65372-expected.png:
      * platform/gtk/tables/mozilla_expected_failures/bugs/bug65372-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      84ed7f11
    • graouts@apple.com's avatar
      Initial advance of text runs should be taken into account · d66f4a30
      graouts@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114949
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Keep track of complex text runs' initial advance by adding a new
      member to GlyphBuffer and adding the initial advance of any non-first
      text run to the advance of the last glyph added for the previous text run.
      Additionally, we now correctly handle advance values in the y-axis.
      
      Test: fast/text/complex-initial-advance.html
      
      * WebCore.exp.in:
      Add support for new WebKitSystemInterface API.
      * platform/graphics/FontFastPath.cpp:
      (WebCore::Font::drawGlyphBuffer):
      Take into account the buffer's initial advance in the y-axis to adjust
      the point at which to draw the buffers. Additionally, keep track of advances
      on the y-axis as well as the x-axis (which we already were doing) as we iterate
      through glyphs and adjust the start point.
      (WebCore::Font::drawEmphasisMarks):
      Adopt change of GlyphBuffer::advanceAt() return type.
      * platform/graphics/GlyphBuffer.h:
      Removing the WINCE-specific GlyphBufferAdvance struct since heights are now necessary.
      (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
      New default constructor for GlyphBufferAdvance to support the m_initialAdvance member.
      (WebCore::GlyphBuffer::setInitialAdvance):
      (WebCore::GlyphBuffer::initialAdvance):
      New APIs to get and set the initial advance for a glyph buffer.
      (WebCore::GlyphBuffer::advanceAt):
      Return a GlyphBufferAdvance rather than a float which used to be only
      the glyph buffer's x-axis advance. This is necessary to handle deltas
      on the y-axis as well (see WebCore::Font::drawGlyphBuffer).
      * platform/graphics/GlyphBuffer.h:
      (GlyphBuffer):
      (WebCore::GlyphBuffer::setInitialAdvance):
      * platform/graphics/WidthIterator.cpp:
      (WebCore::WidthIterator::advanceInternal):
      (WebCore::WidthIterator::advanceOneCharacter):
      Adopt change of GlyphBuffer::advanceAt() return type.
      * platform/graphics/cairo/FontCairo.cpp:
      (WebCore::Font::drawGlyphs):
      Adopt change of GlyphBuffer::advanceAt() return type.
      * platform/graphics/mac/ComplexTextController.cpp:
      (WebCore::ComplexTextController::advance):
      When processing the first text run, set that run's initial advance as
      the glyph buffer's initial advance.
      (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
      Represent the initial advance for a text run by adjusting the advance
      of the last glyph of the previous text run in the glyph buffer.
      * platform/graphics/mac/ComplexTextController.h:
      (WebCore::ComplexTextController::ComplexTextRun::initialAdvance):
      (ComplexTextRun):
      New API to read the inital advance of a complex text run.
      * platform/graphics/mac/ComplexTextControllerCoreText.mm:
      (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
      Obtain the text run's initial advance via the new wkCTRunGetInitialAdvance
      WebKitSystemInterface API.
      * platform/graphics/qt/FontQt.cpp:
      (WebCore::Font::drawGlyphs):
      Adopt change of GlyphBuffer::advanceAt() return type.
      * platform/mac/WebCoreSystemInterface.h:
      * platform/mac/WebCoreSystemInterface.mm:
      Add support for the new wkCTRunGetInitialAdvance WebKitSystemInterface API.
      * platform/wx/wxcode/cairo/non-kerned-drawing.cpp:
      (WebCore::drawTextWithSpacing):
      Adopt change of GlyphBuffer::advanceAt() return type.
      * rendering/svg/SVGTextRunRenderingContext.cpp:
      (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
      Adopt change of GlyphBuffer::advanceAt() return type.
      
      Source/WebKit/mac:
      
      Adding support for new method CTRunGetInitialAdvance in WebKitSystemInterface.
      
      * WebCoreSupport/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      Source/WebKit2:
      
      Adding support for new method CTRunGetInitialAdvance in WebKitSystemInterface.
      
      * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      WebKitLibraries:
      
      * WebKitSystemInterface.h:
      * libWebKitSystemInterfaceLion.a:
      * libWebKitSystemInterfaceMountainLion.a:
      
      LayoutTests:
      
      * fast/text/complex-initial-advance-expected.html: Added.
      * fast/text/complex-initial-advance.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d66f4a30
    • zandobersek@gmail.com's avatar
      Unreviewed GTK gardening. · 24151b4c
      zandobersek@gmail.com authored
      * platform/gtk/TestExpectations: Adding failure expectations for two DOM4 constructors tests
      that started failing after enabling the subpixel layout due to LayoutUnit overflows.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24151b4c
    • commit-queue@webkit.org's avatar
      [EFL] EFL gardening · 8502def7
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=115013
      
      Remove editing/selection/doubleclick-whitespace-crash.html and
      editing/selection/doubleclick-whitespace-img-crash.html from TestExpectations
      after r144221.
      
      Unreviewed, EFL gardening.
      
      Patch by Jinwoo Song <jinwoo7.song@samsung.com> on 2013-04-23
      
      * platform/efl-wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8502def7
    • zarvai@inf.u-szeged.hu's avatar
      [Qt] Unreviewed gardening. Changing failure mark to skip after r148948. · 0e7afb73
      zarvai@inf.u-szeged.hu authored
      * platform/qt/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0e7afb73
    • allan.jensen@digia.com's avatar
      Respect image-rendering setting for determing image-rendering quality · 18ac8770
      allan.jensen@digia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=113405
      
      Reviewed by Benjamin Poulain.
      
      Source/WebCore:
      
      Remove the CSS4 values as they are not ready for implementation yet.
      We still parse the -webkit-crisp-edges and SVG compatibility values to
      be closer to the the partial support in Gecko and Presto.
      
      Tests: fast/css/image-rendering-canvas.html
             fast/css/image-rendering-parsing.html
             fast/css/image-rendering.html
             fast/css/optimize-contrast-image.html
      
      * css/CSSParser.cpp:
      (WebCore::isValidKeywordPropertyAndValue):
      * css/CSSPrimitiveValueMappings.h:
      (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
      (WebCore::CSSPrimitiveValue::operator EImageRendering):
      * css/CSSValueKeywords.in:
      * css/SVGCSSParser.cpp:
      (WebCore::CSSParser::parseSVGValue):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::ImageQualityController::shouldPaintAtLowQuality):
      * rendering/RenderHTMLCanvas.cpp:
      (WebCore::RenderHTMLCanvas::paintReplaced):
      * rendering/style/RenderStyleConstants.h:
      
      Tools:
      
      Remove CSS4 Images option. It is not ready for implementation.
      
      * Scripts/webkitperl/FeatureList.pm:
      
      LayoutTests:
      
      Moved the two tests of image-rendering out of CSS3 since it was removed from the final recommendation.
      Added tests of the supported values, and upgraded one test to a reference test so that it now tests
      that -webkit-optimize-contrast gets converted to and treated as -webkit-crisp-edges.
      
      Baselines for fast/css/image-rendering.html will be uploaded later when the bots have generated them.
      
      * css3/images/optimize-contrast-image-expected.png: Removed.
      * css3/images/optimize-contrast-image-expected.txt: Removed.
      * fast/css/image-rendering-canvas-expected.png: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.png.
      * fast/css/image-rendering-canvas-expected.txt: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.txt.
      * fast/css/image-rendering-canvas.html: Renamed from LayoutTests/css3/images/optimize-contrast-canvas.html.
      * fast/css/image-rendering-expected.txt: Added.
      * fast/css/image-rendering-parsing-expected.txt: Added.
      * fast/css/image-rendering-parsing.html: Renamed from LayoutTests/fast/css/image-set-parsing.html.
      * fast/css/image-rendering.html: Added.
      * fast/css/optimize-contrast-image-expected.html: Added.
      * fast/css/optimize-contrast-image.html: Renamed from LayoutTests/css3/images/optimize-contrast-image.html.
      * fast/css/script-tests/image-rendering-parsing.js: Added.
      (testImageRendering):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      18ac8770
    • zarvai@inf.u-szeged.hu's avatar
      [Qt] Unreviewed gardening. · de1404ce
      zarvai@inf.u-szeged.hu authored
      * platform/qt/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      de1404ce
    • rniwa@webkit.org's avatar
      Unreviewed, rolling out r148923. · 4c809472
      rniwa@webkit.org authored
      http://trac.webkit.org/changeset/148923
      https://bugs.webkit.org/show_bug.cgi?id=115020
      
      The patch causes multiple failures in CSS, canvas tests
      (Requested by zdobersek on #webkit).
      
      
      Source/WebCore:
      
      * platform/graphics/cairo/PlatformContextCairo.cpp:
      (WebCore::PlatformContextCairo::drawSurfaceToContext):
      
      LayoutTests:
      
      * fast/canvas/script-tests/shadow-image.js: Removed.
      * fast/canvas/shadow-image-expected.txt: Removed.
      * fast/canvas/shadow-image.html: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c809472
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL gardening. · 7672f87e
      ch.dumez@sisa.samsung.com authored
      Unskip several test cases that are no longer crashing after r148945.
      
      * platform/efl/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7672f87e
    • commit-queue@webkit.org's avatar
      table's text aligned on top instead of center because of rowspan · 1fdc04cc
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=18092
      
      Patch by Suchit Agrawal <a.suchit@samsung.com> on 2013-04-22
      Reviewed by Beth Dakin.
      
      Source/WebCore:
      
      Last row in the rowspan is not getting the height of rowspan cell because there is not
      enough rows present below rowspan cell and we are strictly applying height of rowspan
      to the row which should lay last in the rowspan based of rowspan value.
      
      When row contains rowspan cell and it is last row of the table then
      rowspan height is adding to last row of the table.
      
      Test: fast/table/Rowspan-value-more-than-number-of-rows-present.html
      
      It calculates logical height of the rows in the table.
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::calcRowLogicalHeight):
      
      LayoutTests:
      
      Added test cases, based on rowspan issue.
      * fast/table/Rowspan-value-more-than-number-of-rows-present-expected.txt: Added.
      * fast/table/Rowspan-value-more-than-number-of-rows-present.html: Added.
      
      Test cases need to do rebaseline in efl, gtk and mac platforms.
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      
      Test case results are updated in qt platform.
      * platform/qt/fast/table/giantRowspan-expected.png:
      * platform/qt/fast/table/giantRowspan-expected.txt:
      * platform/qt/fast/table/giantRowspan2-expected.png:
      * platform/qt/fast/table/giantRowspan2-expected.txt:
      * platform/qt/tables/mozilla/bugs/bug133756-1-expected.png:
      * platform/qt/tables/mozilla/bugs/bug133756-1-expected.txt:
      * platform/qt/tables/mozilla/bugs/bug133756-2-expected.png:
      * platform/qt/tables/mozilla/bugs/bug133756-2-expected.txt:
      * platform/qt/tables/mozilla/bugs/bug220536-expected.png:
      * platform/qt/tables/mozilla/bugs/bug220536-expected.txt:
      * platform/qt/tables/mozilla/bugs/bug8858-expected.txt:
      * platform/qt/tables/mozilla/core/bloomberg-expected.png:
      * platform/qt/tables/mozilla/core/bloomberg-expected.txt:
      * platform/qt/tables/mozilla/core/row_span-expected.png:
      * platform/qt/tables/mozilla/core/row_span-expected.txt:
      * platform/qt/tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
      * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.png:
      * platform/qt/tables/mozilla_expected_failures/bugs/bug65372-expected.png:
      * platform/qt/tables/mozilla_expected_failures/bugs/bug65372-expected.txt:
      * tables/mozilla/core/bloomberg-expected.txt:
      * tables/mozilla/core/row_span-expected.txt:
      * tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
      * tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1fdc04cc
  3. 22 Apr, 2013 11 commits
    • mihnea@adobe.com's avatar
      [CSS Regions] Region's float parent doesn't size according to region size but to content node size · bae154af
      mihnea@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=111332
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      Tests: fast/regions/intrinsic-sized-regions.html
             fast/regions/region-with-float-parent.html
      
      The patch ensures that the computation of region's preferred widths
      takes into account the region width/min-width if these values are specified.
      Also implemented the computation of intrinsic widths for a region,
      based on the min/max preferred widths of the associated flow thread.
      
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::computeIntrinsicLogicalWidths):
      (WebCore):
      (WebCore::RenderRegion::computePreferredLogicalWidths):
      * rendering/RenderRegion.h:
      (RenderRegion):
      
      LayoutTests:
      
      Added tests for intrinsic and preferred width computation for region.
      
      * fast/regions/intrinsic-sized-regions-expected.txt: Added.
      * fast/regions/intrinsic-sized-regions.html: Added.
      * fast/regions/region-with-float-parent-expected.txt: Added.
      * fast/regions/region-with-float-parent.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bae154af
    • jberlin@webkit.org's avatar
      Remove references to the inspector/profiler/memory-instrumentation tests removed in r148921 · 883d44f9
      jberlin@webkit.org authored
      Rubber-stamped by Benjamin Poulain.
      
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      883d44f9
    • beidson@apple.com's avatar
      REGRESSION (r141136): Wiki "Random article" function very broken. · 45418c25
      beidson@apple.com authored
      <rdar://problem/13229985> and https://bugs.webkit.org/show_bug.cgi?id=114480
      
      Reviewed by Alexey Proskuryakov.
      
      Source/WebCore:
      
      Test: http/tests/navigation/redirect-to-random-url-versus-memory-cache.html
      
      If we are performing a conditional GET to revalidate a resource and there's a redirect,
      check to see if the redirect is to a different URL than the final URL of the resource.
      
      If the URLs differ then we should make the redirect-request unconditional and do a normal load.
      
      * loader/SubresourceLoader.cpp:
      (WebCore::SubresourceLoader::willSendRequest):
      
      * platform/network/ResourceRequestBase.cpp:
      (WebCore::ResourceRequestBase::makeUnconditional):
      
      * platform/network/ResourceRequestBase.h:
      (ResourceRequestBase):
      
      LayoutTests:
      
      * http/tests/navigation/redirect-to-random-url-versus-memory-cache-expected.txt: Added.
      * http/tests/navigation/redirect-to-random-url-versus-memory-cache.html: Added.
      * http/tests/navigation/resources/randomredirects/0.php: Added.
      * http/tests/navigation/resources/randomredirects/1.php: Added.
      * http/tests/navigation/resources/randomredirects/2.php: Added.
      * http/tests/navigation/resources/randomredirects/3.php: Added.
      * http/tests/navigation/resources/randomredirects/4.php: Added.
      * http/tests/navigation/resources/randomredirects/5.php: Added.
      * http/tests/navigation/resources/randomredirects/6.php: Added.
      * http/tests/navigation/resources/randomredirects/7.php: Added.
      * http/tests/navigation/resources/randomredirects/8.php: Added.
      * http/tests/navigation/resources/randomredirects/9.php: Added.
      * http/tests/navigation/resources/randomredirects/randomredirect.php: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      45418c25
    • mrobinson@webkit.org's avatar
      [Cairo] Canvas-shadow behavior is not being as expected · 67fdfeba
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=108897
      
      Patch by Rashmi Shyamasundar <rashmi.s2@samsung.com> on 2013-04-22
      Reviewed by Martin Robinson.
      
      Source/WebCore:
      
      Use the pattern-extend-mode "CAIRO_EXTEND_NONE" instead of "CAIRO_EXTEND_PAD" in
      PlatformContextCairo::drawSurfaceToContext().
      
      In the function PlatformContextCairo::drawSurfaceToContext(), a pattern is being
      created from the source surface and this pattern is drawn onto the destination
      context. There is no gradient involved. Hence the extend mode for filling the
      pattern should be "CAIRO_EXTEND_NONE". If we use the extend mode
      "CAIRO_EXTEND_PAD" in PlatformContextCairo::drawSurfaceToContext(), the original
      image area is also filled with the shadow color which is not the expected behavior.
      
      Test: fast/canvas/canvas-image-shadow.html
      
      * platform/graphics/cairo/PlatformContextCairo.cpp:
      (WebCore::PlatformContextCairo::drawSurfaceToContext):
      
      LayoutTests:
      
      Test to verify the shadow of an image drawn on canvas.
      This test uses an image whose size is smaller than,
      the size of the rectangle which should be filled with the image.
      
      * fast/canvas/canvas-image-shadow-expected.txt: Added.
      * fast/canvas/canvas-image-shadow.html: Added.
      * fast/canvas/green.png: Added.
      * fast/canvas/script-tests/canvas-image-shadow.js: Added.
      (draw):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148923 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67fdfeba
    • benjamin@webkit.org's avatar
      Remove the memory instrumentation code · 9d72cb0b
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114931
      
      Reviewed by Andreas Kling.
      
      .: 
      
      * Source/autotools/symbols.filter:
      
      Source/JavaScriptCore: 
      
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      
      Source/WebCore: 
      
      The Memory Instrumentation code is unfinished and has already
      become out of sync the objects it is supposed to represent.
      
      The current approach does not seem maintainable, it is better to
      remove it before someone gets hurt.
      
      By removing the code, the binary become 1240976 bytes smaller.
      Yep, almost 1 Mb, bringing WebCore to the size it has 5 months ago :)
      
      * MostWebCoreFiles: remove the support for memory instrumentation.
      
      Source/WebKit: 
      
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      
      Source/WebKit/mac: 
      
      * WebView/WebRenderLayer.mm:
      
      Source/WebKit/win: 
      
      * WebKit.vcproj/WebKitExports.def.in:
      
      Source/WTF: 
      
      On Mac x86_64, the code removal cause the binary to be
      9224 bytes smaller.
      
      * GNUmakefile.list.am:
      * WTF.pro:
      * WTF.vcproj/WTF.vcproj:
      * WTF.vcxproj/WTF.vcxproj:
      * WTF.vcxproj/WTF.vcxproj.filters:
      * WTF.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      * wtf/Forward.h:
      * wtf/ListHashSet.h:
      (ListHashSet):
      (ListHashSetNodeAllocator):
      (WTF::ListHashSetNodeAllocator::pool):
      (WTF::ListHashSetNodeAllocator::pastPool):
      * wtf/MemoryInstrumentation.cpp: Removed.
      * wtf/MemoryInstrumentation.h: Removed.
      * wtf/MemoryInstrumentationArrayBufferView.h: Removed.
      * wtf/MemoryInstrumentationHashCountedSet.h: Removed.
      * wtf/MemoryInstrumentationHashMap.h: Removed.
      * wtf/MemoryInstrumentationHashSet.h: Removed.
      * wtf/MemoryInstrumentationListHashSet.h: Removed.
      * wtf/MemoryInstrumentationSequence.h: Removed.
      * wtf/MemoryInstrumentationString.h: Removed.
      * wtf/MemoryInstrumentationVector.h: Removed.
      * wtf/MemoryObjectInfo.h: Removed.
      * wtf/text/AtomicString.h:
      * wtf/text/StringImpl.h:
      (WTF::StringImpl::isASCIILiteral):
      * wtf/text/WTFString.h:
      
      Tools: 
      
      * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
      * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: Removed.
      
      LayoutTests: 
      
      * inspector/profiler/memory-instrumentation-cached-images-expected.txt: Removed.
      * inspector/profiler/memory-instrumentation-cached-images.html: Removed.
      * inspector/profiler/memory-instrumentation-canvas-expected.txt: Removed.
      * inspector/profiler/memory-instrumentation-canvas.html: Removed.
      * inspector/profiler/memory-instrumentation-external-array-expected.txt: Removed.
      * inspector/profiler/memory-instrumentation-external-array.html: Removed.
      * inspector/profiler/memory-instrumentation-external-string-expected.txt: Removed.
      * inspector/profiler/memory-instrumentation-external-string.html: Removed.
      * inspector/profiler/memory-instrumentation-test.js: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148921 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9d72cb0b
    • betravis@adobe.com's avatar
      Do not reuse ExclusionShapeInsideInfo in a recursive region layout · f797856f
      betravis@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114467
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      Elements that respect shape-inside that have inline children should not reuse an
      ExclusionShapeInsideInfo for their children's layout. This patch adds the test
      for regions. See the details for non-region layout in bug 104582.
      https://bugs.webkit.org/show_bug.cgi?id=104582
      
      Test: fast/regions/shape-inside/shape-inside-recursive-layout.html
      
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Do not look up a region's
      ExclusionShapeInsideInfo if a block is already respecting shape-inside.
      
      LayoutTests:
      
      Test that for various types of inline containers do not reuse
      ExclusionShapeInsideInfo when laying out their children.
      
      * fast/regions/shape-inside/shape-inside-recursive-layout-expected.html: Added.
      * fast/regions/shape-inside/shape-inside-recursive-layout.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f797856f
    • jberlin@webkit.org's avatar
      Fix r148773. · 245c21e4
      jberlin@webkit.org authored
      * platform/mac-lion/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      245c21e4
    • betravis@adobe.com's avatar
      [css exclusions] shape-inside-recursive-layout.html should not yet test display: inline-grid · dd82311f
      betravis@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114986
      
      Reviewed by Dirk Schulze.
      
      Because the inline-grid value is not yet supported, the test case is falling back to
      display: block. This causes an incorrect layout, as block and inline content react to
      shape-inside differently.
      
      * fast/exclusions/shape-inside/shape-inside-recursive-layout-expected.html:
      * fast/exclusions/shape-inside/shape-inside-recursive-layout.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd82311f
    • eric.carlson@apple.com's avatar
      [Mac] "automatic" track selection should only select a track that matches user language · bdddf9e1
      eric.carlson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114976
      
      Reviewed by Jer Noble.
      
      Source/WebCore:
      
      Test: media/track/track-automatic-subtitles.html
      
      * page/CaptionUserPreferencesMac.mm:
      (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): When in "automatic" mode, only
          consider text tracks that match the user's preferred language when the primary audio track
          does not.
      
      LayoutTests:
      
      * media/track/track-automatic-subtitles-expected.txt: Added.
      * media/track/track-automatic-subtitles.html: Added.
      * platform/mac/TestExpectations: Skip track-user-preferences.html, the logic is no longer
           correct for the Mac port.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bdddf9e1
    • aestes@apple.com's avatar
      Range.getClientRects() should not include rects for partially selected elements · 1fab65fa
      aestes@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=76839
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      CSSOM says that Range.getClientRects() should include the border boxes
      of each element selected by the range. However, we were also
      incorrectly including border boxes for partially selected elements.
      For instance, consider the following selection:
      
          <div>line one<br>line two</div>
          -------------
      
      The <div> is two lines tall, but only the first line is selected.
      Despite this, we'd include the <div>'s border box since its start tag
      was included in the selection.
      
      Fix this by excluding partially selected elements. This is accomplished
      by skipping over elements that come after the start boundary point of
      the range but are ancestors of the end boundary point.
      
      Added test cases to LayoutTests/fast/dom/Range/getClientRects.html.
      
      * dom/Range.cpp:
      (WebCore::Range::getBorderAndTextQuads):
      
      LayoutTests:
      
      * fast/dom/Range/getClientRects-expected.txt: Updated expected result.
      * fast/dom/Range/getClientRects.html: Added new test cases.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1fab65fa
    • eric.carlson@apple.com's avatar
      Unreviewed Mac gardening. Update a test and results now that forced text · 3bc008c2
      eric.carlson@apple.com authored
      tracks are supported.
      
      * media/track/track-in-band-expected.txt:
      * media/track/track-in-band.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148895 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3bc008c2