1. 21 Nov, 2013 30 commits
    • beidson@apple.com's avatar
      Hook up WebProcess-side of getOrEstablishIDBDatabaseMetadata · 025e3ee1
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124698
      
      Reviewed by Anders Carlsson.
      
      With this change the IDB API in WebKit2 using the DatabaseProcess finally does something observable:
      window.indexedDB.open() sends an error to Javascript.
      
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
      (WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata): Continue calling back to the
        WebProcess with dummy data, but include the request ID for reference.
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
      * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
      
      Add a new class that wraps a completion callback function and gives it a unique integer identifier.
      It also allows for wrapping an abort callback function (in case a connection is lost, for example).
      It is templated to flexibly handle any callback function signature.
      * Shared/AsyncRequest.cpp: Added.
      (WebKit::generateRequestID):
      (WebKit::AsyncRequest::AsyncRequest):
      (WebKit::AsyncRequest::~AsyncRequest):
      (WebKit::AsyncRequest::setAbortHandler):
      (WebKit::AsyncRequest::requestAborted):
      (WebKit::AsyncRequest::clearAbortHandler):
      * Shared/AsyncRequest.h: Added.
      (WebKit::AsyncRequest::requestID):
      (WebKit::AsyncRequest::requestCompleted):
      
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
      (WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata): Wrap the completion handler in an
        AsyncRequest and save off the request for later use.
      (WebKit::WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata): Send the results to the AsyncRequest.
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
      * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
      
      * WebKit2.xcodeproj/project.pbxproj:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      025e3ee1
    • andersca@apple.com's avatar
      Move activeURL getter to PageLoadState · 9e9e6762
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124690
      
      Reviewed by Tim Horton.
      
      * UIProcess/PageLoadState.cpp:
      (WebKit::PageLoadState::activeURL):
      * UIProcess/PageLoadState.h:
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::activeURL):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159638 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e9e6762
    • 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
      Unreviewed, rolling out r159633. · f3a4f0a7
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/159633
      https://bugs.webkit.org/show_bug.cgi?id=124726
      
      it broke 10 webkitpy tests (Requested by dino_ on #webkit).
      
      * Scripts/webkitpy/style/checker.py:
      (check_webkit_style_configuration):
      (CheckerDispatcher.dispatch):
      (StyleProcessorConfiguration):
      (StyleProcessorConfiguration.__init__):
      (StyleProcessorConfiguration.write_style_error):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f3a4f0a7
    • commit-queue@webkit.org's avatar
      [MIPS] Build fails since r159545. · 0390ec2f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124716
      
      Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-11-21
      Reviewed by Michael Saboff.
      
      Add missing implementations in MacroAssembler and LLInt for MIPS.
      
      * assembler/MIPSAssembler.h:
      (JSC::MIPSAssembler::sync):
      * assembler/MacroAssemblerMIPS.h:
      (JSC::MacroAssemblerMIPS::store8):
      (JSC::MacroAssemblerMIPS::memoryFence):
      * offlineasm/mips.rb:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0390ec2f
    • simon.fraser@apple.com's avatar
      Clean up WebKit2 initialization · 87130376
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124696
      
      Reviewed by Sam Weinig.
      
      Call InitializeWebKit2() everywhere we need to do one-time
      initialization in WebKit2, rather than having a hotch-potch
      of init code.
      
      * Shared/APIObject.cpp:
      (API::Object::Object):
      * UIProcess/API/mac/WKView.mm:
      (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
      * UIProcess/Launcher/mac/ProcessLauncherMac.mm: Removed an unused #include.
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::create):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87130376
    • commit-queue@webkit.org's avatar
      Remove the stderr_write attribute from StyleProcessorConfiguration. · ad855950
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124703
      
      Patch by László Langó <lango@inf.u-szeged.hu> on 2013-11-21
      Reviewed by Brent Fulgham.
      
      * Scripts/webkitpy/style/checker.py:
      (check_webkit_style_configuration):
      (CheckerDispatcher.dispatch):
      (StyleProcessorConfiguration):
      (StyleProcessorConfiguration.__init__):
      (StyleProcessorConfiguration.write_style_error):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ad855950
    • 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
    • mitz@apple.com's avatar
      Reverted r159603, as it appears to have caused Safari’s Web processes to crash on launch. · b336d3d9
      mitz@apple.com authored
      Requested by Sam Weinig.
      
      * Scripts/webkit2/messages.py:
      (struct_or_class):
      * Shared/UserMessageCoders.h:
      (WebKit::UserMessageEncoder::baseEncode):
      * Shared/WebPageCreationParameters.cpp:
      (WebKit::WebPageCreationParameters::encode):
      (WebKit::WebPageCreationParameters::decode):
      * Shared/WebPageCreationParameters.h:
      * Shared/mac/ObjCObjectGraphCoders.h:
      * Shared/mac/ObjCObjectGraphCoders.mm:
      (WebKit::ObjCObjectGraphEncoder::baseEncode):
      (WebKit::WebContextObjCObjectGraphEncoderImpl::WebContextObjCObjectGraphEncoderImpl):
      (WebKit::WebContextObjCObjectGraphEncoderImpl::encode):
      (WebKit::InjectedBundleObjCObjectGraphEncoderImpl::encode):
      (WebKit::WebContextObjCObjectGraphEncoder::WebContextObjCObjectGraphEncoder):
      (WebKit::WebContextObjCObjectGraphEncoder::encode):
      * UIProcess/WebConnectionToWebProcess.cpp:
      (WebKit::WebConnectionToWebProcess::encodeMessageBody):
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::createNewWebProcess):
      (WebKit::WebContext::createWebPage):
      (WebKit::WebContext::postMessageToInjectedBundle):
      (WebKit::WebContext::didReceiveSyncMessage):
      * UIProcess/WebContextUserMessageCoders.h:
      (WebKit::WebContextUserMessageEncoder::WebContextUserMessageEncoder):
      (WebKit::WebContextUserMessageEncoder::encode):
      (WebKit::WebContextUserMessageDecoder::decode):
      * UIProcess/WebPageGroup.cpp:
      * UIProcess/WebPageGroup.h:
      (WebKit::WebPageGroup::sendToAllProcessesInGroup):
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::create):
      (WebKit::WebPageProxy::WebPageProxy):
      (WebKit::WebPageProxy::initializeWebPage):
      (WebKit::WebPageProxy::loadURL):
      (WebKit::WebPageProxy::loadURLRequest):
      (WebKit::WebPageProxy::loadFile):
      (WebKit::WebPageProxy::loadData):
      (WebKit::WebPageProxy::loadHTMLString):
      (WebKit::WebPageProxy::loadAlternateHTMLString):
      (WebKit::WebPageProxy::loadPlainTextString):
      (WebKit::WebPageProxy::loadWebArchiveData):
      (WebKit::WebPageProxy::postMessageToInjectedBundle):
      (WebKit::WebPageProxy::initializeCreationParameters):
      * UIProcess/WebPageProxy.h:
      * UIProcess/WebProcessProxy.cpp:
      (WebKit::WebProcessProxy::disconnect):
      (WebKit::WebProcessProxy::createWebPage):
      * UIProcess/WebProcessProxy.h:
      * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
      (WebKit::InjectedBundleUserMessageEncoder::encode):
      (WebKit::InjectedBundleUserMessageDecoder::decode):
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::WebPage):
      * WebProcess/WebProcess.cpp:
      (WebKit::WebProcess::webPageGroup):
      * WebProcess/WebProcess.h:
      * WebProcess/WebProcess.messages.in:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b336d3d9
    • commit-queue@webkit.org's avatar
      [WinCairo] Building ANGLE libraries fails. · 24511866
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124679
      
      Patch by peavo@outlook.com <peavo@outlook.com> on 2013-11-21
      Reviewed by Brent Fulgham.
      
      Source/ThirdParty/ANGLE:
      
      Added/removed files to/from project, and re-added constants.h file.
      
      * ANGLE.vcxproj/libEGL.vcxproj:
      * ANGLE.vcxproj/libEGL.vcxproj.filters:
      * ANGLE.vcxproj/libGLESv2.vcxproj:
      * ANGLE.vcxproj/libGLESv2.vcxproj.filters:
      * ANGLE.vcxproj/libGLESv2Common.props:
      * ANGLE.vcxproj/translator_common.vcxproj:
      * ANGLE.vcxproj/translator_common.vcxproj.filters:
      * ANGLE.vcxproj/translator_glsl.vcxproj:
      * ANGLE.vcxproj/translator_glsl.vcxproj.filters:
      * ANGLE.vcxproj/translator_hlsl.vcxproj:
      * ANGLE.vcxproj/translator_hlsl.vcxproj.filters:
      * src/libGLESv2/libGLESv2.def:
      
      Source/WebKit:
      
      * WebKit.vcxproj/WebKit/WebKitCFLite.props: Link with translator_hlsl.lib.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24511866
    • commit-queue@webkit.org's avatar
      Fix sh4 build after r159545. · 5c642dd6
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124713
      
      Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-21
      Reviewed by Michael Saboff.
      
      Add missing implementations in macro assembler and LLINT for sh4.
      
      * assembler/MacroAssemblerSH4.h:
      (JSC::MacroAssemblerSH4::load8):
      (JSC::MacroAssemblerSH4::store8):
      (JSC::MacroAssemblerSH4::memoryFence):
      * assembler/SH4Assembler.h:
      (JSC::SH4Assembler::synco):
      * offlineasm/sh4.rb: Handle "memfence" opcode.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5c642dd6
    • stavila@adobe.com's avatar
      Added test for the overflow of a region being painted across multiple tiles. · 334948a2
      stavila@adobe.com authored
      Added test for correct repainting of a region's overflow.
      
      [CSS Regions] Overflow areas from regions do not redraw
      https://bugs.webkit.org/show_bug.cgi?id=117329
      
      Reviewed by Antti Koivisto.
      
      * fast/regions/regions-overflow-tile-expected.html: Added.
      * fast/regions/regions-overflow-tile.html: Added.
      * fast/repaint/repaint-regions-overflow-expected.txt: Added.
      * fast/repaint/repaint-regions-overflow.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159628 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      334948a2
    • stavila@adobe.com's avatar
      [CSS Regions] Float get sliced if its container has forced break and is less tall than float · 988faba6
      stavila@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124205
      
      Added test for the case when a float is overflowing a region due to a forced break.
      
      Reviewed by Antti Koivisto.
      
      * fast/regions/float-slicing-on-forced-break-expected.html: Added.
      * fast/regions/float-slicing-on-forced-break.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      988faba6
    • 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
    • stavila@adobe.com's avatar
      Created test for positioned fragmented content which overflows the regions. · 25c262ce
      stavila@adobe.com authored
      [CSS Regions] Fragmented content that is relatively positioned get sliced (and overflows in the next region)
      https://bugs.webkit.org/show_bug.cgi?id=117122
      
      Reviewed by Antti Koivisto.
      
      * fast/regions/positioned-fragmented-content-expected.html: Added.
      * fast/regions/positioned-fragmented-content.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25c262ce
    • stavila@adobe.com's avatar
      Added test for visual overflow with transformed content in regions. · e4178da5
      stavila@adobe.com authored
      [CSS Regions] Transform applied to content node causes overflow to be hidden
      https://bugs.webkit.org/show_bug.cgi?id=116242
      
      Reviewed by Antti Koivisto.
      
      * fast/regions/region-visual-overflow-transform-expected.html: Added.
      * fast/regions/region-visual-overflow-transform.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e4178da5
    • 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
    • commit-queue@webkit.org's avatar
      [EFL] Fix accessibility media-element expectation · 0a8ce7d7
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124711
      
      Unreviewed EFL gardening.
      
      Changing main element AXRole AXUnknown -> AXEmbedded.
      
      Patch by Andrzej Badowski <a.badowski@samsung.com> on 2013-11-21
      
      * platform/efl/accessibility/media-element-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0a8ce7d7
    • m.pakula@samsung.com's avatar
      Unreviewed EFL gardening. · a7acb604
      m.pakula@samsung.com authored
      Update baselines after r159575.
      
      * platform/efl/fast/block/float/024-expected.txt:
      * platform/efl/fast/block/margin-collapse/025-expected.txt:
      * platform/efl/fast/block/margin-collapse/block-inside-inline/025-expected.txt:
      * platform/efl/fast/block/margin-collapse/empty-clear-blocks-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159621 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a7acb604
    • 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
    • rniwa@webkit.org's avatar
      PerfTestRunner._generate_results_dict shouldn't depend on test objects · 75d2557f
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124623
      
      Removed the dependency on test objects from results JSON generation.
      This allows single test.run to return metrics for multiple tests
      
      Reviewed by Antti Koivisto.
      
      * Scripts/webkitpy/performance_tests/perftest.py:
      (PerfTestMetric.__init__): Takes the test path and test name.
      (PerfTestMetric.path): Added.
      (PerfTestMetric.test_file_name): Added.
      (PerfTest.run): Accumulate PerfTestMetric objects instead of raw values.
      (PerfTest._ensure_metrics): Instantiate PerfTestMetric with the test path and test name.
      The path is going to have the names of subtests at the end once we support them.
      
      * Scripts/webkitpy/performance_tests/perftest_unittest.py:
      (TestPerfTestMetric.test_init_set_missing_unit): Specify the test path and test name.
      (TestPerfTestMetric.test_init_set_time_metric): Ditto.
      (TestPerfTestMetric.test_has_values): Ditto.
      (TestPerfTestMetric.test_append): Ditto.
      
      * Scripts/webkitpy/performance_tests/perftestsrunner.py:
      (_generate_results_dict): Only use metrics.
      (_run_tests_set): Accumulate metrics as supposed to (test, metrics) pairs.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159617 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      75d2557f
    • rego@igalia.com's avatar
      REGRESSION(r159599): webkitdirs.pm spits out warnings at lines 851 and 852 · 926aa30f
      rego@igalia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124697
      
      Reviewed by Ryosuke Niwa.
      
      * Scripts/webkitdirs.pm:
      (checkForArgumentAndRemoveFromARGVGettingValue): Fix check of array size
      before trying to access to the first element.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      926aa30f
    • 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
    • commit-queue@webkit.org's avatar
      check-webkit-style should support C++11 rvalue references. · 7e710c2c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123406
      
      Patch by László Langó <lango@inf.u-szeged.hu> on 2013-11-20
      Reviewed by Brent Fulgham.
      
      * Scripts/webkitpy/style/checkers/cpp.py:
      (check_style):
      * Scripts/webkitpy/style/checkers/cpp_unittest.py:
      (Cpp11StyleTest):
      (Cpp11StyleTest.test_rvaule_reference_at_end_of_line):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e710c2c
    • 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 10 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
    • 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
    • weinig@apple.com's avatar
      WebPageGroup's should keep track of what processes they are being used by · 8ebc9866
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124556
      
      Reviewed by Dan Bernstein.
      
      * Scripts/webkit2/messages.py:
      (struct_or_class):
      Mark WebPageGroupData as a struct.
      
      * Shared/UserMessageCoders.h:
      * Shared/mac/ObjCObjectGraphCoders.h:
      * Shared/mac/ObjCObjectGraphCoders.mm:
      * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
      * UIProcess/WebConnectionToWebProcess.cpp:
      * UIProcess/WebContext.cpp:
      * UIProcess/WebContextUserMessageCoders.h:
      * UIProcess/WebPageProxy.cpp:
      * UIProcess/WebPageProxy.h:
      Pass the WebProcess/WebProcessProxy to both encode and decode.
      
      * Shared/WebPageCreationParameters.h:
      Pass the page group by ID when creating a page, as it will have had its own
      creation message sent already.
      
      * UIProcess/WebPageGroup.cpp:
      * UIProcess/WebPageGroup.h:
      Keep track of processes.
      
      * UIProcess/WebProcessProxy.cpp:
      * UIProcess/WebProcessProxy.h:
      Keep track of the page groups used by the process.
      
      * WebProcess/WebPage/WebPage.cpp:
      Get the already created page group on creation.
      
      * WebProcess/WebProcess.cpp:
      * WebProcess/WebProcess.h:
      * WebProcess/WebProcess.messages.in:
      Explicitly create page groups in the WebProcess.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8ebc9866
    • dino@apple.com's avatar
      Allow settings to be shown/hidden on build.webkit.org/dashboard · 92b0effb
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124694
      
      Reviewed by Tim Horton.
      
      In preparation for more options/buttons, allow the page to
      show or hide all the interactive things using a little gear icon
      in the top left corner.
      
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:
      (Settings.prototype.toggleSettingsDisplay):
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
      (div.cellButton.hide):
      (div.cellButton.unhide):
      (.settings-visible div.cellButton.hide, .settings-visible div.cellButton.unhide):
      (.settings):
      (.settings:hover):
      (.settings-visible .settings):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      92b0effb
    • dino@apple.com's avatar
      No need to base64 SVG on build.webkit.org/dashboard · 01062c89
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124687
      
      Reviewed by Tim Horton.
      
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:
      (.status-line.good .bubble.pictogram):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159601 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01062c89
    • dino@apple.com's avatar
      Make links look more like links on build.webkit.org/dashboard · 6235e1c5
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124686
      
      Reviewed by Tim Horton.
      
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/BuildbotQueueView.css:
      (.queue-view .queueLabel:hover):
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:
      (.status-line.linked .label:hover):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6235e1c5