1. 21 Nov, 2013 26 commits
    • commit-queue@webkit.org's avatar
      Remove ENABLE_WORKERS · f0eff209
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=105784
      
      .:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * Source/autotools/SetupWebKitFeatures.m4:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      Source/WebCore:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      Source/WebKit:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      
      Source/WebKit/efl:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * ewk/ewk_settings.cpp:
      (ewk_settings_memory_cache_clear):
      
      Source/WebKit/win:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * WebWorkersPrivate.cpp:
      (WebWorkersPrivate::workerThreadCount):
      
      Source/WTF:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * wtf/FeatureDefines.h:
      * wtf/nix/FeatureDefinesNix.h:
      
      Tools:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * Scripts/webkitperl/FeatureList.pm:
      
      WebKitLibraries:
      
      Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-21
      Reviewed by Darin Adler.
      
      * win/tools/vsprops/FeatureDefines.props:
      * win/tools/vsprops/FeatureDefinesCairo.props:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f0eff209
    • alex.christensen@flexsim.com's avatar
      [Win] Unreviewed build fix after r159632. · eca09750
      alex.christensen@flexsim.com authored
      * platform/network/curl/SSLHandle.cpp:
      (WebCore::certVerifyCallback):
      Fixed template syntax.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eca09750
    • betravis@adobe.com's avatar
      Web Inspector: [CSS Shapes] Refactor highlighting code to decrease Shapes API surface · 3239a7c0
      betravis@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124737
      
      Reviewed by Timothy Hatcher.
      
      Source/WebCore:
      
      Add a virtual method to Shapes, buildPath, that can be used to build the
      path (in the Shape coordinate system) for display in the Inspector. This allows us
      to remove methods such as type(), polygon(), and logicalRx/Ry() which exposed the
      inner workings of the Shapes classes. Also covers the addition of the BoxShape type.
      
      Refactoring, existing test is inspector-protocol/model/highlight-shape-outside.html.
      
      * inspector/InspectorOverlay.cpp:
      (WebCore::appendPathCommandAndPoints): Points need to be translated from shape space
      to renderer space using ShapeInfo.
      (WebCore::buildObjectForShapeOutside): Add the ShapeOutsideInfo to the path info struct.
      * rendering/shapes/BoxShape.cpp:
      (WebCore::BoxShape::buildPath): Build the path for a BoxShape.
      * rendering/shapes/BoxShape.h:
      * rendering/shapes/PolygonShape.cpp:
      (WebCore::PolygonShape::buildPath): Build the path for a PolygonShape.
      * rendering/shapes/PolygonShape.h:
      * rendering/shapes/RasterShape.h:
      * rendering/shapes/RectangleShape.cpp:
      (WebCore::RectangleShape::buildPath): Build the path for a RectangleShape.
      * rendering/shapes/RectangleShape.h:
      * rendering/shapes/Shape.h:
      
      LayoutTests:
      
      The shapes paths are now drawn in shape-coordinate space before being translated to
      renderer space. With different writing modes, shapes may have their coordinates
      translated. For example, a rectangle specified as four points [top left, top right,
      bottom right, bottom left] in vertical-lr space would appear as [top left, bottom left,
      bottom right, top right] in horizontal-tb space. Adjusting the previous tests, and
      adding a test for the new box value.
      
      * inspector-protocol/model/highlight-shape-outside-expected.txt:
      * inspector-protocol/model/highlight-shape-outside.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3239a7c0
    • mrowe@apple.com's avatar
      <https://webkit.org/b/124702> Stop overriding VALID_ARCHS. · 836db138
      mrowe@apple.com authored
      All modern versions of Xcode set it appropriately for our needs.
      
      Reviewed by Alexey Proskuryakov.
      
      Source/JavaScriptCore:
      
      * Configurations/Base.xcconfig:
      
      Source/WebCore:
      
      * Configurations/Base.xcconfig:
      
      Source/WebInspectorUI:
      
      * Configurations/Base.xcconfig:
      
      Source/WebKit/mac:
      
      * Configurations/Base.xcconfig:
      
      Source/WebKit2:
      
      * Configurations/Base.xcconfig:
      
      Tools:
      
      * MiniBrowser/Configurations/Base.xcconfig:
      * WebKitTestRunner/Configurations/Base.xcconfig:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      836db138
    • ryumiel@company100.net's avatar
      [GTK] Unreviewed buildfix after r159614 and r159656. · 99adce44
      ryumiel@company100.net authored
      Source/WebCore:
      
      * bindings/gobject/WebKitDOMCustom.cpp: Add missing header
      
      Source/WebKit2:
      
      * UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
      (WebKit::WebInspectorServer::buildPageList): Use the page load state to get page title.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      99adce44
    • commit-queue@webkit.org's avatar
      Fix WinCairo unreachable code warnings in SimpleLineLayout.cpp · 32f52b52
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124704
      
      Patch by Laszlo Vidacs <lac@inf.u-szeged.hu> on 2013-11-21
      Reviewed by Antti Koivisto.
      
      Fix unreachable code warnings using conditional directives.
      
      * rendering/SimpleLineLayout.cpp:
      (WebCore::SimpleLineLayout::canUseFor):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      32f52b52
    • mrowe@apple.com's avatar
      <https://webkit.org/b/124701> Fix an error in a few Xcode configuration setting files. · 2a0e83e0
      mrowe@apple.com authored
      Reviewed by Alexey Proskuryakov.
      
      Source/JavaScriptCore:
      
      * Configurations/Base.xcconfig:
      
      Source/ThirdParty/ANGLE:
      
      * Configurations/Base.xcconfig:
      
      Source/WebCore:
      
      * Configurations/Base.xcconfig:
      
      Source/WebKit/mac:
      
      * Configurations/Base.xcconfig:
      
      Source/WebKit2:
      
      * Configurations/Base.xcconfig:
      
      Source/WTF:
      
      * Configurations/Base.xcconfig:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a0e83e0
    • mrowe@apple.com's avatar
      <https://webkit.org/b/124700> Fix some deprecation warnings. · 01352df3
      mrowe@apple.com authored
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      * platform/mac/HTMLConverter.mm:
      (fileWrapperForURL): Move off a deprecated NSFileWrapper method.
      
      Source/WebKit/mac:
      
      * Plugins/WebNetscapePluginStream.mm:
      (WebNetscapePluginStream::startStream): Move off a deprecated NSData method.
      * WebView/WebDataSource.mm:
      (-[WebDataSource _fileWrapperForURL:]): Move off a deprecated NSFileWrapper method.
      * WebView/WebHTMLView.mm:
      (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Ditto.
      
      Source/WebKit2:
      
      * UIProcess/API/mac/WKView.mm:
      (-[WKView namesOfPromisedFilesDroppedAtDestination:]): Move off a deprecated NSFileWrapper method.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01352df3
    • dbates@webkit.org's avatar
      [iOS] Build fix; export symbol for WebCore::provideDeviceOrientationTo() · dfbf4350
      dbates@webkit.org authored
      Add the symbol __ZN7WebCore26provideDeviceOrientationToEPNS_4PageEPNS_23DeviceOrientationClientE.
      
      * WebCore.exp.in:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dfbf4350
    • dbates@webkit.org's avatar
      Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard · 1404d558
      dbates@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124741
      
      Reviewed by Alexey Proskuryakov.
      
      Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard around code that is unused
      when building with feature NETWORK_CFDATA_ARRAY_CALLBACK.
      
      Additionally, add a declaration for allocateSegment() with attribute WARN_UNUSED_RETURN
      to have the compiler warn when the return value of this function is unused. Together with
      warnings treated as errors this change will prevent a memory leak.
      
      * platform/SharedBuffer.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159650 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1404d558
    • dbates@webkit.org's avatar
      Remove unused functions from WebCore and WebKit2 · efa37bfb
      dbates@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124739
      
      Reviewed by Alexey Proskuryakov.
      
      Source/WebCore:
      
      * editing/markup.cpp: Remove unused functions isHTMLBlockElement and
      ancestorToRetainStructureAndAppearanceWithNoRenderer.
      * rendering/InlineElementBox.cpp: Append newline to the end of the file.
      
      Source/WebKit2:
      
      Remove unused functions autoreleased({WKURLRequestRef, WKURLResponseRef}).
      
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      efa37bfb
    • dbates@webkit.org's avatar
      Only generate isObservable() when IDL specifies GenerateIsReachable · 1ccf4754
      dbates@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124729
      
      Reviewed by Geoffrey Garen.
      
      We should only generate the static inline function isObservable() when the IDL
      specifies GenerateIsReachable. Otherwise, this function is unused.
      
      Added a new test IDL TestGenerateIsReachable.idl and expected results to test that
      we generate isObservable() when an IDL specifies GenerateIsReachable. Additionally,
      rebased existing test results.
      
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateImplementation):
      * bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.cpp: Added.
      * bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.h: Added.
      * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp: Added.
      * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h: Added.
      * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachablePrivate.h: Added.
      * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Removed unused function isObservable().
      * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestException.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Added.
      * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: Added.
      * bindings/scripts/test/JS/JSTestInterface.cpp: Removed unused function isObservable().
      * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
      * bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
      * bindings/scripts/test/JS/JSattribute.cpp: Ditto.
      * bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
      * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h: Added.
      * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm: Added.
      * bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h: Added.
      * bindings/scripts/test/TestGenerateIsReachable.idl: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1ccf4754
    • bdakin@apple.com's avatar
      Add a new mode to extend the tile cache beyond the page · 8af619cc
      bdakin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124216
      
      Reviewed by Simon Fraser.
      
      This patch makes it possible to give the tile cache a margin of tiles. If there is 
      a margin of tiles, this patch paints those tiles with the background color. Note 
      that this patch does not actually give the tile cache a margin at this time.
      
      You opt into a margined tiled cache by called setTileMargins() with number of 
      pixels that the margin on that side should be. 
      * platform/graphics/TiledBacking.h:
      * platform/graphics/ca/mac/TileController.h:
      * platform/graphics/ca/mac/TileController.mm:
      (WebCore::TileController::TileController):
      (WebCore::TileController::tilesWouldChangeForVisibleRect):
      
      TileController::bounds() now computes the bounds INCLUDING the margin.
      (WebCore::TileController::bounds):
      
      adjustRectAtTileIndexForMargin() is a new function that is required to get the 
      rect size for tiles in the margin right. rectForTileIndex() assumes all tiles 
      strive to be the size of m_tileSize, but now margin tiles will be whatever the 
      margin sizes were set to.
      (WebCore::TileController::adjustRectAtTileIndexForMargin):
      (WebCore::TileController::rectForTileIndex):
      
      This is another instance where m_tileSize is not always the right size to use.
      (WebCore::TileController::getTileIndexRangeForRect):
      
      The tile coverage rect now might include the margin tiles. Only include them in 
      slow-scrolling mode if the current position is within one tile of the edge.
      (WebCore::TileController::computeTileCoverageRect):
      
      tileSizeForCoverageRect() does not make sense in a world where the coverage rect 
      will include margin. Instead, this patch implements the current strategy more 
      explicitly by returning the visibleRect in the slow scrolling case, and in the 
      process this patch also re-names tileSizeForCoverageRect() to computeTileSize() 
      since it no longer takes a coverageRect.
      (WebCore::TileController::computeTileSize):
      (WebCore::TileController::revalidateTiles):
      
      New setters and getters for the tile margins on each side.
      (WebCore::TileController::setTileMargins):
      (WebCore::TileController::hasMargins):
      (WebCore::TileController::topMarginHeight):
      (WebCore::TileController::bottomMarginHeight):
      (WebCore::TileController::leftMarginWidth):
      (WebCore::TileController::rightMarginWidth):
      
      New function to add margin onto the composited bounds if there is one.
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::tiledBackingHasMargin):
      (WebCore::RenderLayerBacking::paintContents):
      (WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
      * rendering/RenderLayerBacking.h:
      
      Do not set masks to bounds if there is a margin on the root layer.
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::updateBacking):
      (WebCore::RenderLayerCompositor::mainFrameBackingIsTiledWithMargin):
      * rendering/RenderLayerCompositor.h:
      
      Allow background color to paint into the margin tiles.
      * rendering/RenderView.cpp:
      (WebCore::RenderView::paintBoxDecorations):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8af619cc
    • ap@apple.com's avatar
      Implement WebCrypto wrapKey · abd0bbca
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124738
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Tests: crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html
             crypto/subtle/aes-cbc-wrap-rsa.html
      
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::exportKey): Factored out the actual operation that can be chained with
      encryption for wrapKey.
      (WebCore::JSSubtleCrypto::exportKey):
      (WebCore::JSSubtleCrypto::wrapKey):
      (WebCore::JSSubtleCrypto::unwrapKey): Fixed a memory leak in failure code path.
      
      * crypto/SubtleCrypto.idl: Added wrapKey.
      
      LayoutTests: 
      
      * crypto/subtle/aes-cbc-wrap-rsa-expected.txt: Added.
      * crypto/subtle/aes-cbc-wrap-rsa-non-extractable-expected.txt: Added.
      * crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html: Added.
      * crypto/subtle/aes-cbc-wrap-rsa.html: Added.
      
      * crypto/subtle/aes-export-key-expected.txt:
      * crypto/subtle/hmac-export-key-expected.txt:
      There is no longer a console message, the error is in an exception.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      abd0bbca
    • ap@apple.com's avatar
      Implement WebCrypto unwrapKey · 19cf70fd
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124725
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Tests: crypto/subtle/aes-cbc-unwrap-failure.html
             crypto/subtle/aes-cbc-unwrap-rsa.html
      
      * bindings/js/JSCryptoAlgorithmDictionary.cpp:
      * bindings/js/JSCryptoAlgorithmDictionary.h:
      Removed calls for wrap/unwrap parameter parsing, these are just the same as encrypt/decrypt.
      
      * bindings/js/JSCryptoOperationData.cpp:
      (WebCore::cryptoOperationDataFromJSValue):
      * bindings/js/JSCryptoOperationData.h:
      * crypto/CryptoKeySerialization.h:
      More Vector<char> elimination.
      
      * bindings/js/JSDOMPromise.cpp:
      * bindings/js/JSDOMPromise.h:
      Removed unneccessary copy constructor and assignment operator, they are no diffdrent
      than compiler generated ones.
      
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::cryptoKeyUsagesFromJSValue): Minor style fixes.
      (WebCore::JSSubtleCrypto::encrypt): Ditto.
      (WebCore::JSSubtleCrypto::decrypt): Ditto.
      (WebCore::JSSubtleCrypto::sign): Ditto.
      (WebCore::JSSubtleCrypto::verify): Ditto.
      (WebCore::JSSubtleCrypto::generateKey): Ditto.
      (WebCore::importKey): Separated actual import operation and the parts that read
      arguments from ExecState, and call the promise. Logically, this should be outside
      of bindings code even, but JWK makes that quite challenging.
      (WebCore::JSSubtleCrypto::importKey): This only does the more mundane arguments
      and return parts now.
      (WebCore::JSSubtleCrypto::exportKey): Minor style fixes.
      (WebCore::JSSubtleCrypto::unwrapKey): Chain decrypt and import.
      
      * crypto/CryptoAlgorithm.cpp:
      (WebCore::CryptoAlgorithm::encryptForWrapKey):
      (WebCore::CryptoAlgorithm::decryptForUnwrapKey):
      * crypto/CryptoAlgorithm.h:
      There are algorithms that expose wrap/unwrap, but not encrypt/decrypt. These will
      override these new functions, and leave encrypt/decrypt to raise NOT_SUPPORTED_ERR.
      
      * crypto/SubtleCrypto.idl: Added unwrapKey.
      
      LayoutTests: 
      
      * crypto/subtle/aes-cbc-unwrap-failure-expected.txt: Added.
      * crypto/subtle/aes-cbc-unwrap-failure.html: Added.
      * crypto/subtle/aes-cbc-unwrap-rsa-expected.txt: Added.
      * crypto/subtle/aes-cbc-unwrap-rsa.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      19cf70fd
    • commit-queue@webkit.org's avatar
      [curl]Improve ssl certificate storage and check · a2378e48
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124569
      
      Patch by Robert Sipka <sipka@inf.u-szeged.hu> on 2013-11-21
      Reviewed by Brent Fulgham.
      
      Storage and check the whole certificate chain, not just the root certificate.
      
      * platform/network/curl/SSLHandle.cpp:
      (WebCore::allowsAnyHTTPSCertificateHosts):
      (WebCore::sslIgnoreHTTPSCertificate):
      (WebCore::pemData):
      (WebCore::certVerifyCallback):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2378e48
    • commit-queue@webkit.org's avatar
      Fix hover area for divs with css transforms · 2f67ac8d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124647
      
      Patch by Mihai Maerean <mmaerean@adobe.com> on 2013-11-21
      Reviewed by Allan Sandfeld Jensen.
      
      Source/WebCore:
      
      Non transformed layers are now being hit last, not through or in-between transformed layers.
      The paint order says that the divs creating stacking contexts (including transforms) are painted after the
      other siblings so they should be hit tested in the reverse order. Also, a rotated div in a non-rotated parent
      should be hit in its entire area, not hit its parent's background, even if the z-coordinate is negative where
      the mouse is located.
      
      Test: transforms/3d/hit-testing/hover-rotated-negative-z.html
      
      * rendering/RenderLayer.cpp:
      (WebCore::computeZOffset):
      
      LayoutTests:
      
      * transforms/3d/hit-testing/hover-rotated-negative-z.html: Added.
      * transforms/3d/hit-testing/hover-rotated-negative-z-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2f67ac8d
    • commit-queue@webkit.org's avatar
      [GTK] Release compilation fails when defining "LOG_DISABLED=0" · 38e2eaeb
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124661
      
      Patch by Andres Gomez <agomez@igalia.com> on 2013-11-21
      Reviewed by Mario Sanchez Prada.
      
      In a "Debug" build the CString.h header comes from another
      indirect dependency. Now, we explicitly add this missing include.
      
      * html/HTMLTrackElement.cpp: Explicitly adding missing include.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38e2eaeb
    • rniwa@webkit.org's avatar
      Fix Range.insertNode when the inserted node is in the same container as the Range · ac3262b8
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123957
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Inspired by https://chromium.googlesource.com/chromium/blink/+/fb6ca1f488703e8d4f20ce6449cc8ea210be6edb
      
      When a node from the same container is inserted, we can't simply adjust m_end with the offset.
      Compute m_start and m_end from the inserted nodes instead.
      
      Also, don't adjust m_start and m_end to nodes outside of the document if the inserted nodes had been
      removed by mutation events.
      
      Test: fast/dom/Range/range-insertNode-same-container.html
      
      * dom/Range.cpp:
      (WebCore::Range::insertNode):
      
      LayoutTests:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/fb6ca1f488703e8d4f20ce6449cc8ea210be6edb
      
      Used better labels between divs, and added more evalAndLog and shouldBe so that
      the expected result is self-explanatory.
      
      * fast/dom/Range/range-insertNode-same-container-expected.txt: Added.
      * fast/dom/Range/range-insertNode-same-container.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159620 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ac3262b8
    • rniwa@webkit.org's avatar
      nextBoundary and previousBoundary are very slow when there is a password field · 5aad18fd
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123973
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/57366eec5e3edea54062d4e74c0e047f8681dbad
      
      When iterating through DOM nodes nextBoundary and previousBoundary convert the contents of nodes using
      text security to a sequence of 'x' characters. The SimplifiedBackwardsTextIterator and TextIterator
      may iterate past node boundaries. Before this patch, the transformation was done looking at the starting
      node rather than the current node. In some situations, this replaced all boundaries with 'x' and caused
      the text iterator to continue iterating and transforming until the extent of the document.
      
      Test: editing/deleting/password-delete-performance.html
      
      * editing/TextIterator.h:
      (WebCore::SimplifiedBackwardsTextIterator::node):
      * editing/VisibleUnits.cpp:
      (WebCore::previousBoundary):
      (WebCore::nextBoundary):
      
      LayoutTests:
      
      * editing/deleting/password-delete-performance-expected.txt: Added.
      * editing/deleting/password-delete-performance.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5aad18fd
    • rniwa@webkit.org's avatar
      HTML parser should not associate elements inside templates with forms · 46a188fe
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=117779
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/45aadf7ee7ee010327eb692066cf013315ef3ed7
      
      When parsing <form><template><input>, the previous behavior was to associate the <input> with the <form>,
      even though they're not in the same tree (or even the same document).
      
      This patch changes that by checking, prior to creating a form control element, whether the element to be
      created lives in a document with a browsing context.
      
      We don't update m_form as needed to faithfully match the HTML5 specification's form element pointer
      http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#form-element-pointer
      and its algorithm for creating and inserting nodes:
      http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#creating-and-inserting-nodes
      
      While this leaves isindex's reference to form element pointer stale:
      http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#isindex
      The HTML5 specification matches the behaviors of Chrome and Firefox so we leave it as is.
      
      Test: fast/dom/HTMLTemplateElement/no-form-association.html
      
      * html/parser/HTMLConstructionSite.cpp:
      (WebCore::HTMLConstructionSite::createHTMLElement):
      
      LayoutTests:
      
      * fast/dom/HTMLTemplateElement/no-form-association-expected.txt: Added.
      * fast/dom/HTMLTemplateElement/no-form-association.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      46a188fe
    • carlosgc@webkit.org's avatar
      [GTK] Cannot scroll in option menu when it larger than the screen · c032a115
      carlosgc@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124671
      
      Reviewed by Martin Robinson.
      
      The problem is that the popup menu is not resized to fit in the
      screen, so it doesn't scroll and some of the items are offscreen
      so they can't be selected either. GTK+ automatically resizes the
      popup menus to fit in the work area, but only when the menu is
      already positioned.
      
      * platform/gtk/GtkPopupMenu.cpp:
      (WebCore::GtkPopupMenu::popUp): Schedule a resize of the popup
      menu right after showing it once it has a position.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c032a115
    • carlosgc@webkit.org's avatar
      [GTK] Mark all deprecated symbols in GObject DOM bindings · 50d007c9
      carlosgc@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124406
      
      Reviewed by Gustavo Noronha Silva.
      
      Source/WebCore:
      
      Move deprecated API from WebKitDOMCustom to a new file
      WebKitDOMDeprecated leaving in WebKitDOMCustom only the
      non-deprecated API that is not autogenerated. Also added the
      deprecation decorations and tags in the documentation.
      
      * bindings/gobject/GNUmakefile.am:
      * bindings/gobject/WebKitDOMCustom.cpp:
      * bindings/gobject/WebKitDOMCustom.h:
      * bindings/gobject/WebKitDOMCustom.symbols:
      * bindings/gobject/WebKitDOMDeprecated.cpp: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.cpp.
      (webkit_dom_blob_webkit_slice):
      (webkit_dom_html_element_get_id):
      (webkit_dom_html_element_set_id):
      (webkit_dom_html_element_get_class_name):
      (webkit_dom_html_element_set_class_name):
      (webkit_dom_html_element_get_class_list):
      (webkit_dom_html_form_element_dispatch_form_change):
      (webkit_dom_html_form_element_dispatch_form_input):
      (webkit_dom_webkit_named_flow_get_overflow):
      (webkit_dom_element_get_webkit_region_overflow):
      (webkit_dom_webkit_named_flow_get_content_nodes):
      (webkit_dom_webkit_named_flow_get_regions_by_content_node):
      (webkit_dom_bar_info_get_property):
      (webkit_dom_bar_info_class_init):
      (webkit_dom_bar_info_init):
      (webkit_dom_bar_info_get_visible):
      (webkit_dom_console_get_memory):
      (webkit_dom_css_style_declaration_get_property_css_value):
      (webkit_dom_document_get_webkit_hidden):
      (webkit_dom_document_get_webkit_visibility_state):
      (webkit_dom_html_document_open):
      (webkit_dom_html_element_set_item_id):
      (webkit_dom_html_element_get_item_id):
      (webkit_dom_html_element_get_item_ref):
      (webkit_dom_html_element_get_item_prop):
      (webkit_dom_html_element_set_item_scope):
      (webkit_dom_html_element_get_item_scope):
      (webkit_dom_html_element_get_item_type):
      (webkit_dom_html_style_element_set_scoped):
      (webkit_dom_html_style_element_get_scoped):
      (webkit_dom_html_properties_collection_get_property):
      (webkit_dom_html_properties_collection_class_init):
      (webkit_dom_html_properties_collection_init):
      (webkit_dom_html_properties_collection_item):
      (webkit_dom_html_properties_collection_named_item):
      (webkit_dom_html_properties_collection_get_length):
      (webkit_dom_html_properties_collection_get_names):
      (webkit_dom_node_get_attributes):
      (webkit_dom_node_has_attributes):
      (webkit_dom_memory_info_get_property):
      (webkit_dom_memory_info_class_init):
      (webkit_dom_memory_info_init):
      (webkit_dom_memory_info_get_total_js_heap_size):
      (webkit_dom_memory_info_get_used_js_heap_size):
      (webkit_dom_memory_info_get_js_heap_size_limit):
      (webkit_dom_micro_data_item_value_class_init):
      (webkit_dom_micro_data_item_value_init):
      (webkit_dom_performance_get_memory):
      (webkit_dom_property_node_list_get_property):
      (webkit_dom_property_node_list_class_init):
      (webkit_dom_property_node_list_init):
      (webkit_dom_property_node_list_item):
      (webkit_dom_property_node_list_get_length):
      (webkit_dom_html_media_element_get_start_time):
      (webkit_dom_html_media_element_get_initial_time):
      (webkit_dom_html_head_element_get_profile):
      (webkit_dom_html_head_element_set_profile):
      (webkit_dom_processing_instruction_get_data):
      (webkit_dom_processing_instruction_set_data):
      * bindings/gobject/WebKitDOMDeprecated.h: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.h.
      * bindings/gobject/WebKitDOMDeprecated.symbols: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.symbols.
      * bindings/scripts/CodeGeneratorGObject.pm:
      (GenerateFunction): Do not include deprecation guards in the cpp file.
      * bindings/scripts/gobject-generate-headers.pl: Do not create
      fordward declarations for non-existent classes like Custom and
      Deprecated.
      * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
      (webkit_dom_test_event_target_dispatch_event):
      
      Tools:
      
      * Scripts/webkitpy/style/checker.py: Add special case for
      WebKitDOMDeprecated.
      * gtk/generate-gtkdoc:
      (get_webkit2_options): Use the prefix of the methods as namespace,
      since this is what gtkdoc expects to sort the index.
      (get_webkit1_options): Ditto.
      (get_webkitdom_options): Ditto.
      * gtk/generate-webkitdom-doc-files:
      (WebKitDOMDocGenerator): Add a global list of deleted objects.
      (WebKitDOMDocGenerator.write_deleted_classes): New method to write
      the documentation for classes that are deprecated because they
      have been removed.
      (WebKitDOMDocGeneratorDocs.write_deleted_classes): Add sections
      for deleted classes too.
      (WebKitDOMDocGeneratorSections.__init__): Build a list of
      deprecated symbols using the given symbols file.
      (WebKitDOMDocGeneratorSections._deleted_class): Returns the
      deleted class corresponding to the given function.
      (WebKitDOMDocGeneratorSections._deprecated_symbols): Builds a
      dictionary of deprecated symbols for every class.
      (WebKitDOMDocGeneratorSections.write_section): Add also the
      deprecated symbols in every section.
      (WebKitDOMDocGeneratorSections.write_deleted_classes): Add
      sections for deleted classes too.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      50d007c9
    • jae.park@company100.net's avatar
      [CoordinatedGraphics] Use std::unique_ptrs rather than OwnPtrs · 6c1133d4
      jae.park@company100.net authored
      https://bugs.webkit.org/show_bug.cgi?id=124692
      
      Reviewed by Noam Rosenthal.
      
      No new tests, covered by existing ones.
      
      * platform/graphics/TiledBackingStore.cpp:
      (WebCore::TiledBackingStore::TiledBackingStore):
      * platform/graphics/TiledBackingStore.h:
      * platform/graphics/TiledBackingStoreBackend.h:
      * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
      (WebCore::CoordinatedGraphicsLayer::createBackingStore):
      * platform/graphics/texmap/coordinated/CoordinatedTile.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6c1133d4
    • beidson@apple.com's avatar
      Add more infrastructure for ServerConnection communication between Web and Database processes · 09bfc131
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124693
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      * WebCore.exp.in:
      
      Source/WebKit2:
      
      * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
      (WebKit::DatabaseToWebProcessConnection::establishIDBConnection):
      (WebKit::DatabaseToWebProcessConnection::removeDatabaseProcessIDBConnection): Added for WebProcess to be able
        to invalidate the DatabaseProcess side of a server connection.
      * DatabaseProcess/DatabaseToWebProcessConnection.h:
      * DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
      
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
      (WebKit::DatabaseProcessIDBConnection::DatabaseProcessIDBConnection):
      (WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Added for future cleanup.
      (WebKit::DatabaseProcessIDBConnection::establishConnection):
      (WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata): Callback to the WebProcess, even if
        it is just dummy data for now.
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
      (WebKit::DatabaseProcessIDBConnection::create):
      
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
      (WebKit::WebIDBServerConnection::create): Register the new object with the WebToDatabaseProcessConnection.
      (WebKit::WebIDBServerConnection::~WebIDBServerConnection): Remove from the WebToDatabaseProcessConnection.
      (WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
      (WebKit::WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata): Callback from the DatabaseProcess,
        a no-op for now.
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: Copied from Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.messages.in.
      
      * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
      (WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
      (WebKit::WebToDatabaseProcessConnection::didClose):
      (WebKit::WebToDatabaseProcessConnection::registerWebIDBServerConnection): Hold a collection of all
        server connections for messaging.
      (WebKit::WebToDatabaseProcessConnection::removeWebIDBServerConnection): Remove a connection from the collection,
        and also message the DatabaseProcess that it’s gone away.
      * WebProcess/Databases/WebToDatabaseProcessConnection.h:
      
      Project files, etc etc:
      * DerivedSources.make:
      * Scripts/webkit2/messages.py:
      (struct_or_class):
      * WebKit2.xcodeproj/project.pbxproj:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      09bfc131
    • rniwa@webkit.org's avatar
      Hoist <template> to head when found between </head> and <body> for consistency with <script> · b21553c0
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123949
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/835fb468fd211054a920fb7612a6dc5043662495
      
      Move template elements between head and body elements into the head to be consistent with script elements.
      The HTML5 specification was changed in http://html5.org/tools/web-apps-tracker?from=8217&to=8218.
      
      Inline comments below are cited from https://www.w3.org/Bugs/Public/show_bug.cgi?id=23002
      and https://codereview.chromium.org/25900003 for clarity.
      
      * html/parser/HTMLTreeBuilder.cpp:
      (WebCore::HTMLTreeBuilder::processStartTag): Add the template element to the list of elements to be hoisted into
      the head element.
      (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
      
      Replace the assertion that isParsingFragment is true when item->node() == m_tree.openElements()->rootNode() since,
      with this change, we can now invoke resetInsertionMode when parsing a normal document (not fragment) and there is
      only the html element on the stack of open elements.
      
      For the second change, consider: <head></head><template>
      
      This example breaks in the old HTML parser because the template element is handled by "after head" state which
      pushes the head element back on, processes the template element for "in head", then pops the head element off.
      EOF is reached, which processes a fake close tag for the template element, which pops the template element off
      and resets the insertion mode appropriately
      
      The problem here is that "reset the insertion mode" is going to inspect the bottom-most element on the stack which
      is now the html element and it will set the mode to "before head". Nothing good happens after this.
      
      We fix this problem by having the reset algorithm check if the head element pointer is set, and if so, go to after
      head instead of before head.
      
      LayoutTests:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/835fb468fd211054a920fb7612a6dc5043662495
      and added two more test cases discussed in https://www.w3.org/Bugs/Public/show_bug.cgi?id=23002.
      
      * html5lib/resources/template.dat:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b21553c0
  2. 20 Nov, 2013 14 commits
    • stavila@adobe.com's avatar
      [CSS Regions] Implement visual overflow for first & last regions · 6cb976d2
      stavila@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=118665
      
      Source/WebCore:
      
      In order to properly propagate the visual overflow of elements flowed inside regions,
      the responsiblity of painting and hit-testing content inside flow threads has been
      moved to the flow thread layer's level.
      Each region keeps the associated overflow with each box in the RenderBoxRegionInfo
      structure, including one for the flow thread itself. This data is used during
      painting and hit-testing.
      
      Reviewed by David Hyatt.
      
      Tests: fast/regions/overflow-first-and-last-regions-in-container-hidden.html
             fast/regions/overflow-first-and-last-regions.html
             fast/regions/overflow-nested-regions.html
             fast/regions/overflow-region-float.html
             fast/regions/overflow-region-inline.html
             fast/regions/overflow-region-transform.html
      
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::setLayoutOverflow):
      (WebCore::InlineFlowBox::setVisualOverflow):
      * rendering/InlineFlowBox.h:
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::addOverflowFromChildren):
      (WebCore::RenderBlock::paint):
      (WebCore::RenderBlock::paintObject):
      (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
      (WebCore::RenderBlock::updateRegionRangeForBoxChild):
      * rendering/RenderBlockFlow.cpp:
      (WebCore::RenderBlockFlow::hasNextPage):
      (WebCore::RenderBlockFlow::relayoutForPagination):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlockFlow::positionNewFloatOnLine):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::borderBoxRectInRegion):
      (WebCore::RenderBox::computeRectForRepaint):
      (WebCore::RenderBox::addLayoutOverflow):
      (WebCore::RenderBox::addVisualOverflow):
      (WebCore::RenderBox::isUnsplittableForPagination):
      (WebCore::RenderBox::overflowRectForPaintRejection):
      * rendering/RenderBox.h:
      (WebCore::RenderBox::canHaveOutsideRegionRange):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
      (WebCore::RenderBoxModelObject::paintFillLayerExtended):
      * rendering/RenderBoxModelObject.h:
      * rendering/RenderBoxRegionInfo.h:
      (WebCore::RenderBoxRegionInfo::createOverflow):
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
      (WebCore::RenderFlowThread::mapFromLocalToFlowThread):
      (WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
      (WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
      (WebCore::RenderFlowThread::flipForWritingModeLocalCoordinates):
      (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
      (WebCore::RenderFlowThread::addRegionsVisualOverflow):
      (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
      * rendering/RenderFlowThread.h:
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updateLayerPositions):
      (WebCore::expandClipRectForRegionAndReflection):
      (WebCore::expandClipRectForDescendantsAndReflection):
      (WebCore::RenderLayer::paintLayer):
      (WebCore::RenderLayer::paintLayerContents):
      (WebCore::RenderLayer::updatePaintingInfoForFragments):
      (WebCore::RenderLayer::paintForegroundForFragments):
      (WebCore::RenderLayer::hitTest):
      (WebCore::RenderLayer::hitTestLayer):
      (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
      (WebCore::RenderLayer::calculateClipRects):
      (WebCore::RenderLayer::parentClipRects):
      (WebCore::RenderLayer::calculateRects):
      (WebCore::RenderLayer::intersectsDamageRect):
      (WebCore::RenderLayer::updateDescendantsLayerListsIfNeeded):
      (WebCore::RenderLayer::repaintIncludingDescendants):
      (WebCore::RenderLayer::paintNamedFlowThreadInsideRegion):
      (WebCore::RenderLayer::paintFlowThreadIfRegion):
      (WebCore::RenderLayer::hitTestFlowThreadIfRegion):
      * rendering/RenderLayer.h:
      (WebCore::ClipRect::inflateX):
      (WebCore::ClipRect::inflateY):
      (WebCore::ClipRect::inflate):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::computeCompositingRequirements):
      * rendering/RenderListItem.cpp:
      (WebCore::RenderListItem::addOverflowFromChildren):
      * rendering/RenderMultiColumnSet.cpp:
      (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
      (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
      * rendering/RenderMultiColumnSet.h:
      * rendering/RenderNamedFlowFragment.cpp:
      (WebCore::RenderNamedFlowFragment::createStyle):
      (WebCore::RenderNamedFlowFragment::namedFlowThread):
      * rendering/RenderNamedFlowFragment.h:
      * rendering/RenderOverflow.h:
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::flowThreadPortionOverflowRect):
      (WebCore::RenderRegion::flowThreadPortionLocation):
      (WebCore::RenderRegion::regionContainerLayer):
      (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
      (WebCore::RenderRegion::computeOverflowFromFlowThread):
      (WebCore::RenderRegion::repaintFlowThreadContent):
      (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
      (WebCore::RenderRegion::insertedIntoTree):
      (WebCore::RenderRegion::ensureOverflowForBox):
      (WebCore::RenderRegion::rectFlowPortionForBox):
      (WebCore::RenderRegion::addLayoutOverflowForBox):
      (WebCore::RenderRegion::addVisualOverflowForBox):
      (WebCore::RenderRegion::layoutOverflowRectForBox):
      (WebCore::RenderRegion::visualOverflowRectForBox):
      (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
      * rendering/RenderRegion.h:
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::shouldPaint):
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::paint):
      
      LayoutTests:
      
      Rebased some tests due to regions layers changes.
      Updated some tests to increase clarity. Some of them were only passing because two
      regions were close together and the fact that an element was being painted
      inside the wrong region was not visible. Floats are now also unsplittable.
              - bottom-overflow-out-of-first-region
              - float-pushed-width-change-2
              - float-pushed-width-change
              - webkit-flow-float-unable-to-push
      
      Changed top-overflow-out-of-second-region to reftest.
      
      Added new tests for testing the visual overflow in different situations
      (transformed, inline, opacity, floating).
      
      Reviewed by David Hyatt.
      
      * fast/regions/bottom-overflow-out-of-first-region-expected.html:
      * fast/regions/bottom-overflow-out-of-first-region.html:
      * fast/regions/counters/extract-ordered-lists-in-regions-explicit-counters-005-expected.html:
      * fast/regions/counters/extract-ordered-lists-in-regions-explicit-counters-005.html:
      * fast/regions/element-in-named-flow-absolute-from-fixed-expected.txt:
      * fast/regions/element-in-named-flow-fixed-from-absolute-expected.txt:
      * fast/regions/element-inflow-fixed-from-outflow-static-expected.txt:
      * fast/regions/element-outflow-static-from-inflow-fixed-expected.txt:
      * fast/regions/float-pushed-width-change-2-expected.html:
      * fast/regions/float-pushed-width-change-2.html:
      * fast/regions/float-pushed-width-change-expected.html:
      * fast/regions/float-pushed-width-change.html:
      * fast/regions/layers/dynamic-layer-added-with-no-layout-expected.txt: Added.
      * fast/regions/layers/dynamic-layer-removed-with-no-layout-expected.txt: Added.
      * fast/regions/layers/regions-promoted-to-layers-expected.txt: Added.
      * fast/regions/layers/regions-promoted-to-layers-horizontal-bt-expected.txt: Added.
      * fast/regions/layers/regions-promoted-to-layers-vertical-lr-expected.txt: Added.
      * fast/regions/layers/regions-promoted-to-layers-vertical-rl-expected.txt: Added.
      * fast/regions/outline-sides-in-region-expected.html:
      * fast/regions/outline-sides-in-region.html:
      * fast/regions/overflow-first-and-last-regions-expected.html: Added.
      * fast/regions/overflow-first-and-last-regions-in-container-hidden-expected.html: Added.
      * fast/regions/overflow-first-and-last-regions-in-container-hidden.html: Added.
      * fast/regions/overflow-first-and-last-regions.html: Added.
      * fast/regions/overflow-last-region-expected.html: Removed.
      * fast/regions/overflow-last-region.html: Removed.
      * fast/regions/overflow-nested-regions-expected.html: Added.
      * fast/regions/overflow-nested-regions.html: Added.
      * fast/regions/overflow-region-float-expected.html: Added.
      * fast/regions/overflow-region-float.html: Added.
      * fast/regions/overflow-region-inline-expected.html: Added.
      * fast/regions/overflow-region-inline.html: Added.
      * fast/regions/overflow-region-transform-expected.html: Added.
      * fast/regions/overflow-region-transform.html: Added.
      * fast/regions/overflow-scrollable-rotated-fragment-expected.html:
      * fast/regions/overflow-scrollable-rotated-fragment.html:
      * fast/regions/top-overflow-out-of-second-region-expected.html: Copied from LayoutTests/fast/regions/top-overflow-out-of-second-region.html.
      * fast/regions/top-overflow-out-of-second-region.html:
      * fast/regions/webkit-flow-float-unable-to-push-expected.html:
      * fast/regions/webkit-flow-float-unable-to-push.html:
      * platform/gtk/fast/regions/text-region-split-vertical-rl-expected.txt: Removed.
      * platform/gtk/TestExpectations: Add new test expectations for failing tests.
      * platform/efl/TestExpectations: Add new test expectations for failing tests.
      * platform/mac-wk2/TestExpectations:
      * platform/mac/fast/regions/top-overflow-out-of-second-region-expected.png: Removed.
      * platform/mac/fast/regions/top-overflow-out-of-second-region-expected.txt: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6cb976d2
    • rniwa@webkit.org's avatar
      [HTML parser] reset insertion mode appropriate must check for "in select in table" mode · 303749d9
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123850
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/2cb7523df57dfb48111f6aa16b7138cd54024ba7
      
      The HTML specification has been updated to detect encountering a template element inside of a select element,
      which in turn is inside of a table element. In this case, the select element will cause the parser to be in
      "InSelectInTable" mode. Thus when the template element closes, it should return to that mode.
      
      The fix here is that resetInsertionModeAppropriately must continue looking up the stack if the first node is
      select element to see whether the select element is inside of a table element.
      
      See also: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#reset-the-insertion-mode-appropriately
      
      Test: html5lib/resources/template.dat
      
      * html/parser/HTMLTreeBuilder.cpp:
      (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
      
      LayoutTests:
      
      * html5lib/resources/template.dat:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      303749d9
    • mark.lam@apple.com's avatar
      Build fix for last commit. · 79f7a8eb
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124634.
      
      Not reviewed.
      
      No new tests.
      
      * bindings/js/JSCryptoAlgorithmBuilder.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      79f7a8eb
    • mark.lam@apple.com's avatar
      Introducing VMEntryScope to update the VM stack limit. · 30721257
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124634.
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore: 
      
      1. Introduced USE(SEPARATE_C_AND_JS_STACK) (defined in Platform.h).
         Currently, it is hardcoded to use separate C and JS stacks. Once we
         switch to using the C stack for JS frames, we'll need to fix this to
         only be enabled when ENABLE(LLINT_C_LOOP).
      
      2. Stack limits are now tracked in the VM.
      
         Logically, there are 2 stack limits:
         a. m_stackLimit for the native C stack, and
         b. m_jsStackLimit for the JS stack.
      
         If USE(SEPARATE_C_AND_JS_STACK), then the 2 limits are the same
         value, and are implemented as 2 fields in a union.
      
      3. The VM native stackLimit is set as follows:
         a. Initially, the VM sets it to the limit of the stack of the thread that
            instantiated the VM. This allows the parser and bytecode generator to
            run before we enter the VM to execute JS code.
      
         b. Upon entry into the VM to execute JS code (via one of the
            Interpreter::execute...() functions), we instantiate a VMEntryScope
            that sets the VM's stackLimit to the limit of the current thread's
            stack. The VMEntryScope will automatically restore the previous
            entryScope and stack limit upon destruction.
      
         If USE(SEPARATE_C_AND_JS_STACK), the JSStack's methods will set the VM's
         jsStackLimit whenever it grows or shrinks.
      
      4. The VM now provides a isSafeToRecurse() function that compares the
         current stack pointer against its native stackLimit. This subsumes and
         obsoletes the VMStackBounds class.
      
      5. The VMEntryScope class also subsumes DynamicGlobalObjectScope for
         tracking the JSGlobalObject that we last entered the VM with.
      
      6. Renamed dynamicGlobalObject() to vmEntryGlobalObject() since that is
         the value that the function retrieves.
      
      7. Changed JIT and LLINT code to do stack checks against the jsStackLimit
         in the VM class instead of the JSStack.
      
      * API/JSBase.cpp:
      (JSEvaluateScript):
      (JSCheckScriptSyntax):
      * API/JSContextRef.cpp:
      (JSGlobalContextRetain):
      (JSGlobalContextRelease):
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::BytecodeGenerator):
      * bytecompiler/BytecodeGenerator.h:
      (JSC::BytecodeGenerator::emitNode):
      (JSC::BytecodeGenerator::emitNodeInConditionContext):
      * debugger/Debugger.cpp:
      (JSC::Debugger::detach):
      (JSC::Debugger::recompileAllJSFunctions):
      (JSC::Debugger::pauseIfNeeded):
      * debugger/DebuggerCallFrame.cpp:
      (JSC::DebuggerCallFrame::vmEntryGlobalObject):
      * debugger/DebuggerCallFrame.h:
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::compileFunction):
      * dfg/DFGOSREntry.cpp:
      * ftl/FTLLink.cpp:
      (JSC::FTL::link):
      * ftl/FTLOSREntry.cpp:
      * heap/Heap.cpp:
      (JSC::Heap::lastChanceToFinalize):
      (JSC::Heap::deleteAllCompiledCode):
      * interpreter/CachedCall.h:
      (JSC::CachedCall::CachedCall):
      * interpreter/CallFrame.cpp:
      (JSC::CallFrame::vmEntryGlobalObject):
      * interpreter/CallFrame.h:
      * interpreter/Interpreter.cpp:
      (JSC::unwindCallFrame):
      (JSC::Interpreter::unwind):
      (JSC::Interpreter::execute):
      (JSC::Interpreter::executeCall):
      (JSC::Interpreter::executeConstruct):
      (JSC::Interpreter::prepareForRepeatCall):
      (JSC::Interpreter::debug):
      * interpreter/JSStack.cpp:
      (JSC::JSStack::JSStack):
      (JSC::JSStack::growSlowCase):
      * interpreter/JSStack.h:
      * interpreter/JSStackInlines.h:
      (JSC::JSStack::shrink):
      (JSC::JSStack::grow):
      - Moved these inlined functions here from JSStack.h. It reduces some
        #include dependencies of JSSTack.h which had previously resulted
        in some EWS bots' unhappiness with this patch.
      (JSC::JSStack::updateStackLimit):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompile):
      * jit/JITCall.cpp:
      (JSC::JIT::compileLoadVarargs):
      * jit/JITCall32_64.cpp:
      (JSC::JIT::compileLoadVarargs):
      * jit/JITOperations.cpp:
      * llint/LLIntSlowPaths.cpp:
      * llint/LowLevelInterpreter.asm:
      * parser/Parser.cpp:
      (JSC::::Parser):
      * parser/Parser.h:
      (JSC::Parser::canRecurse):
      * runtime/CommonSlowPaths.h:
      * runtime/Completion.cpp:
      (JSC::evaluate):
      * runtime/FunctionConstructor.cpp:
      (JSC::constructFunctionSkippingEvalEnabledCheck):
      * runtime/JSGlobalObject.cpp:
      * runtime/JSGlobalObject.h:
      * runtime/StringRecursionChecker.h:
      (JSC::StringRecursionChecker::performCheck):
      * runtime/VM.cpp:
      (JSC::VM::VM):
      (JSC::VM::releaseExecutableMemory):
      (JSC::VM::throwException):
      * runtime/VM.h:
      (JSC::VM::addressOfJSStackLimit):
      (JSC::VM::jsStackLimit):
      (JSC::VM::setJSStackLimit):
      (JSC::VM::stackLimit):
      (JSC::VM::setStackLimit):
      (JSC::VM::isSafeToRecurse):
      * runtime/VMEntryScope.cpp: Added.
      (JSC::VMEntryScope::VMEntryScope):
      (JSC::VMEntryScope::~VMEntryScope):
      (JSC::VMEntryScope::requiredCapacity):
      * runtime/VMEntryScope.h: Added.
      (JSC::VMEntryScope::globalObject):
      * runtime/VMStackBounds.h: Removed.
      
      Source/WebCore: 
      
      No new tests.
      
      Renamed dynamicGlobalObject() to vmEntryGlobalObject().
      Replaced uses of DynamicGlobalObjectScope with VMEntryScope.
      
      * ForwardingHeaders/runtime/VMEntryScope.h: Added.
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * bindings/js/JSCryptoAlgorithmBuilder.cpp:
      (WebCore::JSCryptoAlgorithmBuilder::add):
      * bindings/js/JSCustomXPathNSResolver.cpp:
      (WebCore::JSCustomXPathNSResolver::create):
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::firstDOMWindow):
      * bindings/js/JSErrorHandler.cpp:
      (WebCore::JSErrorHandler::handleEvent):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent):
      * bindings/js/JavaScriptCallFrame.h:
      (WebCore::JavaScriptCallFrame::vmEntryGlobalObject):
      * bindings/js/PageScriptDebugServer.cpp:
      (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
      * bindings/js/ScriptDebugServer.cpp:
      (WebCore::ScriptDebugServer::evaluateBreakpointAction):
      (WebCore::ScriptDebugServer::handlePause):
      * bindings/js/WorkerScriptDebugServer.cpp:
      (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
      * bindings/objc/WebScriptObject.mm:
      (WebCore::addExceptionToConsole):
      * bridge/c/c_utility.cpp:
      (JSC::Bindings::convertValueToNPVariant):
      * bridge/objc/objc_instance.mm:
      (ObjcInstance::moveGlobalExceptionToExecState):
      * bridge/objc/objc_runtime.mm:
      (JSC::Bindings::convertValueToObjcObject):
      * bridge/objc/objc_utility.mm:
      (JSC::Bindings::convertValueToObjcValue):
      
      Source/WebKit/mac: 
      
      * WebView/WebScriptDebugger.mm:
      (WebScriptDebugger::sourceParsed):
      
      Source/WTF: 
      
      * wtf/Platform.h:
      * wtf/StackBounds.h:
      (WTF::StackBounds::StackBounds):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159605 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      30721257
    • gyuyoung.kim@samsung.com's avatar
      Generate toHTMLFooElement() to clean up static_cast<> · b86fc58f
      gyuyoung.kim@samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124571
      
      Reviewed by Ryosuke Niwa.
      
      Though there are a lot of clean up commits before, there are still
      use of static_cast<HTMLFooElement*>. To clean up them, we need to generate
      toHTMLDetails|Meta|Summary|TableCaptionElement().
      
      Additionally, other static_cast<> are removed as well.
      
      No new tests, no behavior changes.
      
      * html/HTMLDetailsElement.h:
      * html/HTMLMediaElement.cpp:
      (HTMLMediaElement::selectNextSourceChild):
      * html/HTMLMetaElement.h:
      * html/HTMLObjectElement.cpp:
      (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
      * html/HTMLOptionElement.cpp:
      (WebCore::HTMLOptionElement::isDisabledFormControl):
      * html/HTMLPlugInImageElement.cpp:
      (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
      * html/HTMLSummaryElement.cpp:
      (WebCore::HTMLSummaryElement::detailsElement):
      * html/HTMLSummaryElement.h:
      * html/HTMLTableCaptionElement.h:
      * html/HTMLTableElement.cpp:
      (WebCore::HTMLTableElement::caption):
      * html/HTMLTagNames.in:
      * html/MediaDocument.cpp:
      (WebCore::MediaDocumentParser::createDocumentStructure):
      * html/shadow/DetailsMarkerControl.cpp:
      (WebCore::DetailsMarkerControl::summaryElement):
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::handleFallbackContent):
      * loader/ImageLoader.cpp:
      (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
      * page/DragController.cpp:
      (WebCore::DragController::canProcessDrag):
      * page/Frame.cpp:
      (WebCore::Frame::searchForLabelsBeforeElement):
      * page/SpatialNavigation.cpp:
      (WebCore::frameOwnerElement):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b86fc58f
    • rniwa@webkit.org's avatar
      Clear TemplateContentDocumentFragment::m_host when HTMLTemplateElement is destroyed · 473cc62e
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122806
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Merge https://chromium.googlesource.com/chromium/blink/+/858ed5f6341de9d900768c1f4668fcfce870c52e
      
      The document fragment of a template element outlives the element itself.
      Clear the host property on the document fragment when that happens.
      
      Test: fast/dom/HTMLTemplateElement/content-outlives-template-crash.html
      
      * dom/TemplateContentDocumentFragment.h:
      * html/HTMLTemplateElement.cpp:
      (WebCore::HTMLTemplateElement::~HTMLTemplateElement):
      * html/HTMLTemplateElement.h:
      
      LayoutTests:
      
      * fast/dom/HTMLTemplateElement/content-outlives-template-crash-expected.txt: Added.
      * fast/dom/HTMLTemplateElement/content-outlives-template-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159596 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      473cc62e
    • cfleizach@apple.com's avatar
      AX: Implement CSS -webkit-alt property (text alternative for generated content... · a171d862
      cfleizach@apple.com authored
      AX: Implement CSS -webkit-alt property (text alternative for generated content pseudo-elements ::before and ::after)
      https://bugs.webkit.org/show_bug.cgi?id=120188
      
      Reviewed by Dean Jackson.
      
      Source/WebCore: 
      
      Add a -webkit-alt CSS property that can be used to label Image content or Text content for accessibility clients.
      
      To accomplish this, it sets the string in the RenderStyle. Then when the ContentData creates an anonymous renderer,
      it sets that string on the TextFragment or RenderImage, which can be queried by accessibility code.
      
      Test: platform/mac/accessibility/webkit-alt-for-css-content.html
      
      * accessibility/AccessibilityNodeObject.cpp:
      (WebCore::AccessibilityNodeObject::alternativeText):
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::textUnderElement):
      (WebCore::objectInclusionFromAltText):
      (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore::altTextToCSSValue):
      (WebCore::ComputedStyleExtractor::propertyValue):
      * css/CSSParser.cpp:
      (WebCore::CSSParser::parseValue):
      (WebCore::CSSParser::parseAlt):
      * css/CSSParser.h:
      * css/CSSPropertyNames.in:
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::applyProperty):
      * rendering/RenderImage.h:
      (WebCore::RenderImage::altText):
      (WebCore::RenderImage::setAltText):
      * rendering/RenderTextFragment.h:
      * rendering/style/ContentData.cpp:
      (WebCore::ImageContentData::createRenderer):
      (WebCore::TextContentData::createRenderer):
      * rendering/style/ContentData.h:
      (WebCore::ContentData::setAltText):
      (WebCore::ContentData::altText):
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::setContent):
      (WebCore::RenderStyle::setContentAltText):
      (WebCore::RenderStyle::contentAltText):
      * rendering/style/RenderStyle.h:
      * rendering/style/StyleRareNonInheritedData.h:
      
      LayoutTests: 
      
      * platform/mac/accessibility/webkit-alt-for-css-content-expected.txt: Added.
      * platform/mac/accessibility/webkit-alt-for-css-content.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a171d862
    • roger_fong@apple.com's avatar
      Use compile flag SH_UNFOLD_SHORT_CIRCUIT when compiling shaders. · 235aef9b
      roger_fong@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124684.
      
      Reviewed by Brent Fulgham.
      
      Existing test webgl/1.0.2/conformance/glsl/misc/shader-with-short-circuiting-operators.html
      
      * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
      (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      235aef9b
    • commit-queue@webkit.org's avatar
      [curl] Improve detecting and handling of SSL related errors · f572c773
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=119436
      
      Patch by Robert Sipka <sipka@inf.u-szeged.hu> on 2013-11-20
      Reviewed by Brent Fulgham.
      
      Set the exact SSL verification error on CURL
      and store the enabled domain with certificate.
      
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * platform/network/ResourceHandle.h:
      * platform/network/ResourceHandleInternal.h:
      (WebCore::ResourceHandleInternal::ResourceHandleInternal):
      * platform/network/curl/ResourceError.h:
      (WebCore::ResourceError::ResourceError):
      (WebCore::ResourceError::sslErrors):
      (WebCore::ResourceError::setSSLErrors):
      * platform/network/curl/ResourceHandleCurl.cpp:
      (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
      * platform/network/curl/ResourceHandleManager.cpp:
      (WebCore::ResourceHandleManager::downloadTimerCallback):
      (WebCore::ResourceHandleManager::initializeHandle):
      * platform/network/curl/SSLHandle.cpp: Added.
      (WebCore::allowsAnyHTTPSCertificateHosts):
      (WebCore::sslIgnoreHTTPSCertificate):
      (WebCore::sslCertificateFlag):
      (WebCore::pemData):
      (WebCore::certVerifyCallback):
      (WebCore::sslctxfun):
      (WebCore::setSSLVerifyOptions):
      * platform/network/curl/SSLHandle.h: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f572c773
    • bjonesbe@adobe.com's avatar
      [css shapes] Parse new circle shape syntax · 625770e7
      bjonesbe@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124618
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      Implement parsing of the new cicle shape syntax. The implementation of
      the old syntax has been move aside as deprecated, and will be removed
      once the new syntax is stable.
      
      Updated existing parsing tests to cover this.
      
      * css/BasicShapeFunctions.cpp:
      (WebCore::valueForCenterCoordinate): Create a CSSPrimitiveValue from a
          BasicShapeCenterCoordinate.
      (WebCore::valueForBasicShape): Convert new basic shape and rename old
          one.
      (WebCore::convertToCenterCoordinate): Create a
          BasicShapeCenterCoordinate from a CSSPrimitiveValue.
      (WebCore::basicShapeForValue): Convert new shape value and rename old
          one.
      * css/CSSBasicShapes.cpp:
      (WebCore::buildCircleString): Build a new circle string.
      (WebCore::CSSBasicShapeCircle::cssText): Serialize the new circle
          shape.
      (WebCore::CSSBasicShapeCircle::equals): Compare new circle shapes.
      (WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
      * css/CSSBasicShapes.h:
      (WebCore::CSSBasicShapeCircle::CSSBasicShapeCircle): Add class for new
          circle shape.
      (WebCore::CSSDeprecatedBasicShapeCircle::create): Renamed to move out
          of the way of the new circle implementation.
      (WebCore::CSSDeprecatedBasicShapeCircle::centerX): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::centerY): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::radius): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::setCenterX): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::setCenterY): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::setRadius): Ditto.
      (WebCore::CSSDeprecatedBasicShapeCircle::CSSDeprecatedBasicShapeCircle): Ditto.
      * css/CSSParser.cpp:
      (WebCore::CSSParser::parseShapeRadius): Parse the radius for the new
          circle syntax. Will also be used by the new ellipse syntax.
      (WebCore::CSSParser::parseBasicShapeCircle): Parse the new circle
          syntax.
      (WebCore::CSSParser::parseDeprecatedBasicShapeCircle): Rename to make
          way for the new implementation.
      (WebCore::isDeprecatedBasicShape): Check if we have a new circle or an
          old circle.
      (WebCore::CSSParser::parseBasicShape): Update to parse the new circle
          syntax.
      * css/CSSParser.h:
      * css/CSSValueKeywords.in: Add support for the new circle keywords.
      * rendering/shapes/Shape.cpp:
      (WebCore::Shape::createShape):
      * rendering/style/BasicShapes.cpp: Deprecate old circle and add stub
          for layout code.
      (WebCore::DeprecatedBasicShapeCircle::path): Rename to make way for
          the new implementation.
      (WebCore::DeprecatedBasicShapeCircle::blend): Rename to make way for
          the new implementation.
      (WebCore::BasicShapeCircle::path): Create path for new circle shape.
      (WebCore::BasicShapeCircle::blend): Interpolate the new circle shape.
      * rendering/style/BasicShapes.h:
      (WebCore::BasicShapeCenterCoordinate::BasicShapeCenterCoordinate):
          Represent an x or y coordinate for the center of a new circle,
          since it can be either a keyword along with an offset that cannot
          be resolved until layout time or an ordinary Length. This will
          also be used by the new ellipse implementation.
      (WebCore::BasicShapeCenterCoordinate::keyword):
      (WebCore::BasicShapeCenterCoordinate::length):
      (WebCore::BasicShapeCenterCoordinate::blend): Interpolate.
      (WebCore::BasicShapeRadius::BasicShapeRadius): Represent the radius of
          a new circle shape since it can either be a straightforward Length or
          a keyword that cannot be resolved until layout time.
      (WebCore::BasicShapeRadius::value):
      (WebCore::BasicShapeRadius::type):
      (WebCore::BasicShapeRadius::blend): Interpolate.
      (WebCore::BasicShapeCircle::centerX):
      (WebCore::BasicShapeCircle::centerY):
      (WebCore::BasicShapeCircle::radius):
      (WebCore::BasicShapeCircle::setCenterX):
      (WebCore::BasicShapeCircle::setCenterY):
      (WebCore::BasicShapeCircle::setRadius):
      (WebCore::BasicShapeCircle::BasicShapeCircle): New circle class.
      (WebCore::DeprecatedBasicShapeCircle::create): Rename to make room for
          new circle implementation.
      (WebCore::DeprecatedBasicShapeCircle::DeprecatedBasicShapeCircle): Ditto.
      
      LayoutTests:
      
      Test that the new circle shape syntax is properly parsed.
      
      * fast/shapes/parsing/parsing-shape-inside-expected.txt:
      * fast/shapes/parsing/parsing-shape-outside-expected.txt:
      * fast/shapes/parsing/parsing-test-utils.js:
      * fast/masking/parsing-clip-path-shape-expected.txt:
      * fast/masking/parsing-clip-path-shape.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      625770e7
    • hmuller@adobe.com's avatar
      [CSS Shapes] Add BoxShape and FloatRoundingRect classes · d815da18
      hmuller@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124368
      
      Reviewed by Dean Jackson.
      
      Added the BoxShape class. It's now used to represent shape-outside box
      values: [margin/border/padding/content]-box. BoxShape depends on a new
      FloatRoundedRect class, which is a float analog of the existing (int)
      RoundedRect class. The FloatRoundedRect class contains the same basic
      methods and accessors as BorderRect and adds a set of four methods,
      for example topLeftCorner(), that return a FloatRect that represents the
      bounds of one elliptical corner. I also added a method, xInterceptsAtY()
      that returns two X coordinates of the intersection between a horizontal
      line and the rounded rectangle.
      
      No new tests, this is just an internal refactoring.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * platform/graphics/FloatRoundedRect.cpp: Added.
      (WebCore::FloatRoundedRect::FloatRoundedRect):
      (WebCore::FloatRoundedRect::Radii::isZero):
      (WebCore::FloatRoundedRect::Radii::scale):
      (WebCore::FloatRoundedRect::Radii::expand):
      (WebCore::cornerRectIntercept):
      (WebCore::FloatRoundedRect::xInterceptsAtY):
      * platform/graphics/FloatRoundedRect.h: Added.
      (WebCore::FloatRoundedRect::Radii::Radii):
      (WebCore::FloatRoundedRect::Radii::setTopLeft):
      (WebCore::FloatRoundedRect::Radii::setTopRight):
      (WebCore::FloatRoundedRect::Radii::setBottomLeft):
      (WebCore::FloatRoundedRect::Radii::setBottomRight):
      (WebCore::FloatRoundedRect::Radii::topLeft):
      (WebCore::FloatRoundedRect::Radii::topRight):
      (WebCore::FloatRoundedRect::Radii::bottomLeft):
      (WebCore::FloatRoundedRect::Radii::bottomRight):
      (WebCore::FloatRoundedRect::Radii::expand):
      (WebCore::FloatRoundedRect::Radii::shrink):
      (WebCore::FloatRoundedRect::rect):
      (WebCore::FloatRoundedRect::radii):
      (WebCore::FloatRoundedRect::isRounded):
      (WebCore::FloatRoundedRect::isEmpty):
      (WebCore::FloatRoundedRect::setRect):
      (WebCore::FloatRoundedRect::setRadii):
      (WebCore::FloatRoundedRect::move):
      (WebCore::FloatRoundedRect::inflate):
      (WebCore::FloatRoundedRect::expandRadii):
      (WebCore::FloatRoundedRect::shrinkRadii):
      (WebCore::FloatRoundedRect::topLeftCorner):
      (WebCore::FloatRoundedRect::topRightCorner):
      (WebCore::FloatRoundedRect::bottomLeftCorner):
      (WebCore::FloatRoundedRect::bottomRightCorner):
      (WebCore::operator==):
      * rendering/shapes/BoxShape.cpp: Added.
      (WebCore::BoxShape::BoxShape):
      (WebCore::BoxShape::getExcludedIntervals):
      (WebCore::BoxShape::getIncludedIntervals):
      (WebCore::BoxShape::firstIncludedIntervalLogicalTop):
      * rendering/shapes/BoxShape.h: Added.
      * rendering/shapes/Shape.cpp:
      (WebCore::createBoxShape):
      (WebCore::Shape::createShape):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159583 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d815da18
    • antti@apple.com's avatar
      Simple line layout should support floats · 01a04124
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124666
      
      Reviewed by Dave Hyatt.
      
      Source/WebCore: 
      
      Tests: fast/text/simple-lines-float-compare.html
             fast/text/simple-lines-float.html
      
      * rendering/line/LineWidth.h:
      (WebCore::LineWidth::logicalLeftOffset):
              
          Expose the left offset so we don't need to recompute it.
      
      * rendering/SimpleLineLayout.cpp:
      (WebCore::SimpleLineLayout::canUseFor):
      (WebCore::SimpleLineLayout::computeLineLeft):
              
          Include the left offset from floats.
      
      (WebCore::SimpleLineLayout::createTextRuns):
              
          Keep the flow height updated during the loop as LineWidth reads the current position from there.
      
      * rendering/SimpleLineLayoutResolver.h:
      (WebCore::SimpleLineLayout::RunResolver::Run::rect):
      (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
      (WebCore::SimpleLineLayout::RunResolver::RunResolver):
      (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
              
          We now bake the border and the padding to the line left offset. No need to add it during resolve.
      
      LayoutTests: 
      
      * fast/text/simple-lines-float-compare-expected.html: Added.
      * fast/text/simple-lines-float-compare.html: Added.
      * fast/text/simple-lines-float-expected.html: Added.
      * fast/text/simple-lines-float.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159579 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01a04124
    • ap@apple.com's avatar
      Use std::function callbacks in CryptoAlgorithm instead of JS promises · c1767f0a
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124673
      
      Reviewed by Anders Carlsson.
      
      To implement key wrapping/unwrapping, we'll need to chain existing operations.
      It's much easier to do with C++ callbacks than with functions fulfilling JS
      promises directly.
      
      Also, this will decouple CryptoAlgorithm from JS, which is nice.
      
      SubtleCrypto IDL says that all functions return Promise<any>, but in reality,
      there is very little polymorphism, the only function whose return type depends
      on algorithm is generateKey (it can create a Key or a KeyPair).
      
      * bindings/js/JSDOMPromise.cpp:
      (WebCore::PromiseWrapper::PromiseWrapper):
      (WebCore::PromiseWrapper::operator=):
      * bindings/js/JSDOMPromise.h:
      Made it copyable, as each crypto function wraps the promise in success and failure
      functional objects now.
      
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::JSSubtleCrypto::encrypt):
      (WebCore::JSSubtleCrypto::decrypt):
      (WebCore::JSSubtleCrypto::sign):
      (WebCore::JSSubtleCrypto::verify):
      (WebCore::JSSubtleCrypto::digest):
      (WebCore::JSSubtleCrypto::generateKey):
      (WebCore::JSSubtleCrypto::importKey):
      (WebCore::JSSubtleCrypto::exportKey):
      * crypto/CryptoAlgorithm.cpp:
      (WebCore::CryptoAlgorithm::encrypt):
      (WebCore::CryptoAlgorithm::decrypt):
      (WebCore::CryptoAlgorithm::sign):
      (WebCore::CryptoAlgorithm::verify):
      (WebCore::CryptoAlgorithm::digest):
      (WebCore::CryptoAlgorithm::generateKey):
      (WebCore::CryptoAlgorithm::deriveKey):
      (WebCore::CryptoAlgorithm::deriveBits):
      (WebCore::CryptoAlgorithm::importKey):
      * crypto/CryptoAlgorithm.h:
      * crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
      (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
      (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
      * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
      (WebCore::CryptoAlgorithmAES_CBC::generateKey):
      (WebCore::CryptoAlgorithmAES_CBC::importKey):
      * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
      * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
      (WebCore::CryptoAlgorithmHMAC::generateKey):
      (WebCore::CryptoAlgorithmHMAC::importKey):
      * crypto/algorithms/CryptoAlgorithmHMAC.h:
      * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
      (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
      (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
      * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
      * crypto/algorithms/CryptoAlgorithmSHA1.cpp:
      (WebCore::CryptoAlgorithmSHA1::digest):
      * crypto/algorithms/CryptoAlgorithmSHA1.h:
      * crypto/algorithms/CryptoAlgorithmSHA224.cpp:
      (WebCore::CryptoAlgorithmSHA224::digest):
      * crypto/algorithms/CryptoAlgorithmSHA224.h:
      * crypto/algorithms/CryptoAlgorithmSHA256.cpp:
      (WebCore::CryptoAlgorithmSHA256::digest):
      * crypto/algorithms/CryptoAlgorithmSHA256.h:
      * crypto/algorithms/CryptoAlgorithmSHA384.cpp:
      (WebCore::CryptoAlgorithmSHA384::digest):
      * crypto/algorithms/CryptoAlgorithmSHA384.h:
      * crypto/algorithms/CryptoAlgorithmSHA512.cpp:
      (WebCore::CryptoAlgorithmSHA512::digest):
      * crypto/algorithms/CryptoAlgorithmSHA512.h:
      * crypto/keys/CryptoKeyRSA.h:
      * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
      (WebCore::transformAES_CBC):
      (WebCore::CryptoAlgorithmAES_CBC::encrypt):
      (WebCore::CryptoAlgorithmAES_CBC::decrypt):
      * crypto/mac/CryptoAlgorithmHMACMac.cpp:
      (WebCore::CryptoAlgorithmHMAC::sign):
      (WebCore::CryptoAlgorithmHMAC::verify):
      * crypto/mac/CryptoKeyRSAMac.cpp:
      (WebCore::CryptoKeyRSA::generatePair):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c1767f0a
    • robert@webkit.org's avatar
      REGRESSION(r127163): Respect clearance set on ancestors when placing floats · 97037ef5
      robert@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=119979
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      Refactor the way self-collapsing blocks with clearance are positioned so that they
      get the correct logical-top position during margin-collapsing.
      
      Test: fast/block/margin-collapse/self-collapsing-block-with-float-descendants.html
      
      * rendering/RenderBlockFlow.cpp:
      (WebCore::RenderBlockFlow::clearFloats):
      (WebCore::RenderBlockFlow::marginOffsetForSelfCollapsingBlock):
      (WebCore::RenderBlockFlow::collapseMargins):
      (WebCore::RenderBlockFlow::clearFloatsIfNeeded):
      (WebCore::RenderBlockFlow::handleAfterSideOfBlock):
      * rendering/RenderBlockFlow.h:
      
      LayoutTests:
      
      * fast/block/float/clear-negative-margin-top-expected.html:
      * fast/block/float/clear-negative-margin-top.html:
      * fast/block/margin-collapse/self-collapsing-block-with-float-descendants-expected.html: Added.
      * fast/block/margin-collapse/self-collapsing-block-with-float-descendants.html: Added.
      * platform/mac/fast/block/float/024-expected.txt:
      * platform/mac/fast/block/margin-collapse/025-expected.txt:
      * platform/mac/fast/block/margin-collapse/block-inside-inline/025-expected.txt:
      * platform/mac/fast/block/margin-collapse/empty-clear-blocks-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159575 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      97037ef5