1. 18 Nov, 2013 4 commits
    • fpizlo@apple.com's avatar
      FTL should have an explicit notion of bytecode liveness · 002405c0
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124181
      
      Source/JavaScriptCore: 
      
      Reviewed by Sam Weinig.
              
      This makes FTL OSR exit use bytecode liveness analysis to determine which variables
      to include values for. The decision of how to get the values of variables is based on
      forward propagation of MovHints and SetLocals.
              
      This fixes a bunch of bugs (like https://bugs.webkit.org/show_bug.cgi?id=124138 but
      also others that I noticed when I started writing more targetted tests) and allows us
      to remove some sketchy code.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecode/BytecodeBasicBlock.h:
      * bytecode/BytecodeLivenessAnalysis.cpp:
      (JSC::isValidRegisterForLiveness):
      (JSC::setForOperand):
      (JSC::computeUsesForBytecodeOffset):
      (JSC::computeDefsForBytecodeOffset):
      (JSC::stepOverInstruction):
      (JSC::computeLocalLivenessForBytecodeOffset):
      (JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
      (JSC::BytecodeLivenessAnalysis::operandIsLiveAtBytecodeOffset):
      (JSC::getLivenessInfo):
      (JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset):
      (JSC::BytecodeLivenessAnalysis::computeFullLiveness):
      * bytecode/BytecodeLivenessAnalysis.h:
      * bytecode/BytecodeLivenessAnalysisInlines.h: Added.
      (JSC::operandIsAlwaysLive):
      (JSC::operandThatIsNotAlwaysLiveIsLive):
      (JSC::operandIsLive):
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::captureCount):
      (JSC::CodeBlock::captureStart):
      (JSC::CodeBlock::captureEnd):
      * bytecode/CodeOrigin.cpp:
      (JSC::InlineCallFrame::dumpInContext):
      * bytecode/FullBytecodeLiveness.h: Added.
      (JSC::FullBytecodeLiveness::FullBytecodeLiveness):
      (JSC::FullBytecodeLiveness::getOut):
      (JSC::FullBytecodeLiveness::operandIsLive):
      (JSC::FullBytecodeLiveness::getLiveness):
      * dfg/DFGAvailability.cpp: Added.
      (JSC::DFG::Availability::dump):
      (JSC::DFG::Availability::dumpInContext):
      * dfg/DFGAvailability.h: Added.
      (JSC::DFG::Availability::Availability):
      (JSC::DFG::Availability::unavailable):
      (JSC::DFG::Availability::withFlush):
      (JSC::DFG::Availability::withNode):
      (JSC::DFG::Availability::withUnavailableNode):
      (JSC::DFG::Availability::nodeIsUndecided):
      (JSC::DFG::Availability::nodeIsUnavailable):
      (JSC::DFG::Availability::hasNode):
      (JSC::DFG::Availability::node):
      (JSC::DFG::Availability::flushedAt):
      (JSC::DFG::Availability::operator!):
      (JSC::DFG::Availability::operator==):
      (JSC::DFG::Availability::merge):
      (JSC::DFG::Availability::mergeNodes):
      (JSC::DFG::Availability::unavailableMarker):
      * dfg/DFGBasicBlock.h:
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGDisassembler.cpp:
      (JSC::DFG::Disassembler::Disassembler):
      * dfg/DFGFlushFormat.cpp:
      (WTF::printInternal):
      * dfg/DFGFlushFormat.h:
      (JSC::DFG::resultFor):
      (JSC::DFG::useKindFor):
      (JSC::DFG::dataFormatFor):
      * dfg/DFGFlushedAt.cpp:
      (JSC::DFG::FlushedAt::dump):
      * dfg/DFGFlushedAt.h:
      (JSC::DFG::FlushedAt::FlushedAt):
      (JSC::DFG::FlushedAt::merge):
      * dfg/DFGGraph.cpp:
      (JSC::DFG::Graph::dump):
      (JSC::DFG::Graph::livenessFor):
      (JSC::DFG::Graph::isLiveInBytecode):
      * dfg/DFGGraph.h:
      (JSC::DFG::Graph::baselineCodeBlockFor):
      * dfg/DFGOSRAvailabilityAnalysisPhase.cpp:
      (JSC::DFG::OSRAvailabilityAnalysisPhase::run):
      * dfg/DFGOSRAvailabilityAnalysisPhase.h:
      * dfg/DFGPlan.cpp:
      (JSC::DFG::Plan::compileInThreadImpl):
      * dfg/DFGResurrectionForValidationPhase.cpp: Added.
      (JSC::DFG::ResurrectionForValidationPhase::ResurrectionForValidationPhase):
      (JSC::DFG::ResurrectionForValidationPhase::run):
      (JSC::DFG::performResurrectionForValidation):
      * dfg/DFGResurrectionForValidationPhase.h: Added.
      * dfg/DFGSSAConversionPhase.cpp:
      (JSC::DFG::SSAConversionPhase::run):
      * dfg/DFGValueSource.h:
      (JSC::DFG::ValueSource::forFlushFormat):
      * dfg/DFGVariableAccessData.h:
      * ftl/FTLExitValue.cpp:
      (JSC::FTL::ExitValue::dumpInContext):
      * ftl/FTLInlineCacheSize.cpp:
      (JSC::FTL::sizeOfGetById):
      * ftl/FTLLocation.cpp:
      (JSC::FTL::Location::gpr):
      (JSC::FTL::Location::fpr):
      (JSC::FTL::Location::directGPR):
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
      (JSC::FTL::LowerDFGToLLVM::compileBlock):
      (JSC::FTL::LowerDFGToLLVM::compileNode):
      (JSC::FTL::LowerDFGToLLVM::compileSetLocal):
      (JSC::FTL::LowerDFGToLLVM::compileZombieHint):
      (JSC::FTL::LowerDFGToLLVM::compilePutById):
      (JSC::FTL::LowerDFGToLLVM::compileInvalidationPoint):
      (JSC::FTL::LowerDFGToLLVM::initializeOSRExitStateForBlock):
      (JSC::FTL::LowerDFGToLLVM::appendOSRExit):
      (JSC::FTL::LowerDFGToLLVM::emitOSRExitCall):
      (JSC::FTL::LowerDFGToLLVM::buildExitArguments):
      (JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
      (JSC::FTL::LowerDFGToLLVM::observeMovHint):
      * ftl/FTLOutput.h:
      (JSC::FTL::Output::alloca):
      * ftl/FTLValueSource.cpp: Removed.
      * ftl/FTLValueSource.h: Removed.
      * llvm/LLVMAPIFunctions.h:
      * runtime/DumpContext.cpp:
      (JSC::DumpContext::DumpContext):
      * runtime/DumpContext.h:
      * runtime/Options.h:
      * runtime/SymbolTable.h:
      (JSC::SharedSymbolTable::captureStart):
      (JSC::SharedSymbolTable::captureEnd):
      (JSC::SharedSymbolTable::captureCount):
      
      Tools: 
      
      Reviewed by Mark Hahnenberg.
      
      * Scripts/run-jsc-stress-tests:
      
      LayoutTests: 
      
      Reviewed by Mark Hahnenberg or Sam Weinig.
              
      I totally added this test after the rest of the patch was r+'d. Under the right tier-up
      modes this triggers one of the bugs that the rest of the patch is trying to avoid.
      
      * js/regress/script-tests/weird-inlining-const-prop.js: Added.
      (foo):
      (bar):
      (fuzz):
      (testImpl):
      (test):
      * js/regress/weird-inlining-const-prop-expected.txt: Added.
      * js/regress/weird-inlining-const-prop.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159394 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      002405c0
    • ap@apple.com's avatar
      RSASSA-PKCS1-v1_5 JWK import doesn't check key size · 48c4fbd3
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124472
      
      Reviewed by Sam Weinig.
      
      Source/WebCore: 
      
      Test: crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html
      
      * bindings/js/JSCryptoKeySerializationJWK.cpp:
      (WebCore::JSCryptoKeySerializationJWK::keySizeIsValid): Added the checks.
      (WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Check key size when
      importing.
      (WebCore::JSCryptoKeySerializationJWK::serialize): Updated a comment.
      
      * crypto/keys/CryptoKeySerializationRaw.cpp: (WebCore::CryptoKeySerializationRaw::serialize):
      Updated a comment.
      
      LayoutTests: 
      
      * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key-expected.txt: Added.
      * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159393 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      48c4fbd3
    • ap@apple.com's avatar
      JWK crypto key export result is a DOM string instead of an array buffer · 106eb707
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124473
      
      Reviewed by Sam Weinig.
      
      Source/WebCore: 
      
      * bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::exportKey):
      Fix it.
      
      LayoutTests: 
      
      * crypto/subtle/aes-export-key.html:
      * crypto/subtle/hmac-export-key.html:
      
      * crypto/subtle/resources/common.js: (bytesToASCIIString): Added a function that
      converts an ArrayBuffer to a string, assuming it's all ASCII.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      106eb707
    • weinig@apple.com's avatar
      LayoutStateMaintainer should use references where possible · f8d77f33
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124471
      
      Reviewed by Dan Bernstein.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::layout):
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/LayoutState.h:
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::simplifiedLayout):
      * rendering/RenderBlockFlow.cpp:
      (WebCore::RenderBlockFlow::layoutBlock):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::layout):
      * rendering/RenderDeprecatedFlexibleBox.cpp:
      (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::layout):
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::pushFlowThreadLayoutState):
      * rendering/RenderFlowThread.h:
      * rendering/RenderGrid.cpp:
      (WebCore::RenderGrid::layoutBlock):
      * rendering/RenderMedia.cpp:
      (WebCore::RenderMedia::layout):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::calcRowLogicalHeight):
      (WebCore::RenderTableSection::layout):
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderTextTrackCue.cpp:
      (WebCore::RenderTextTrackCue::layout):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::pushLayoutState):
      (WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
      * rendering/RenderView.h:
      (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
      (WebCore::LayoutStateMaintainer::push):
      (WebCore::LayoutStateMaintainer::pop):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f8d77f33
  2. 17 Nov, 2013 8 commits
    • ap@apple.com's avatar
      Use uint8_t vectors for WebCrypto data · f37f9b40
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124466
      
      Reviewed by Sam Weinig.
      
      Source/WebCore: 
      
      Using Vector<char> for crypto key data is somewhat non-idiomatic, and it gets simply
      dangerous for bignums, because signed arithmetic is not appropriate for bignum digits.
      
      * Modules/websockets/WebSocketHandshake.cpp:
      (WebCore::generateSecWebSocketKey):
      (WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
      No longer need to cast data to char* here.
      
      * bindings/js/JSCryptoKeySerializationJWK.cpp:
      * bindings/js/JSCryptoKeySerializationJWK.h:
      * crypto/CryptoDigest.h:
      * crypto/CryptoKey.h:
      * crypto/keys/CryptoKeyAES.cpp:
      * crypto/keys/CryptoKeyAES.h:
      * crypto/keys/CryptoKeyDataOctetSequence.h:
      * crypto/keys/CryptoKeyDataRSAComponents.cpp:
      * crypto/keys/CryptoKeyDataRSAComponents.h:
      * crypto/keys/CryptoKeyHMAC.cpp:
      * crypto/keys/CryptoKeyHMAC.h:
      * crypto/keys/CryptoKeyRSA.h:
      * crypto/keys/CryptoKeySerializationRaw.cpp:
      * crypto/keys/CryptoKeySerializationRaw.h:
      * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
      * crypto/mac/CryptoAlgorithmHMACMac.cpp:
      * crypto/mac/CryptoDigestMac.cpp:
      * crypto/mac/CryptoKeyMac.cpp:
      * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
      Switched to Vector<uint8_t>.
      
      * crypto/mac/CryptoKeyRSAMac.cpp:
      (WebCore::getPublicKeyComponents): Extracted from buildAlgorithmDescription() and simplified.
      (WebCore::CryptoKeyRSA::create): Switched to Vector<uint8_t>.
      (WebCore::CryptoKeyRSA::buildAlgorithmDescription): No longer need to copy data just
      to change type from Vector<char> to Vector<unsigned char>.
      (WebCore::bigIntegerToUInt32): Ditto. No longer need to cast types when dealing with the bignum.
      (WebCore::CryptoKeyRSA::generatePair): Improved an error message a little.
      
      * fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::convertToDataURL):
      * inspector/DOMPatchSupport.cpp: (WebCore::DOMPatchSupport::createDigest):
      * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::archive):
      * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::CGImageToDataURL):
      No longer need to cast data to char* here.
      
      Source/WTF: 
      
      Binary data can be UTF-8, in which case "char*" is idiomatic, or it can be arbitrary
      binary data, in which case "uint8_t*" is more common.
      
      Changed encode functions that took "const char *" to "const void*", and decode
      functions that took "Vector<char>&" now take an adapter class.
      
      The adapter relies on Vector<char> and Vector<uint8_t> classes having an identical layout.
      
      * wtf/text/Base64.cpp:
      (WTF::base64Encode):
      (WTF::base64URLEncode):
      (WTF::base64DecodeInternal):
      (WTF::base64Decode):
      (WTF::base64URLDecode):
      * wtf/text/Base64.h:
      (WTF::SignedOrUnsignedCharVectorAdapter):
      (WTF::ConstSignedOrUnsignedCharVectorAdapter):
      (WTF::base64Encode):
      (WTF::base64URLEncode):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f37f9b40
    • antti@apple.com's avatar
      REGRESSION (r158774): Iteration over element children is broken · f6525067
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124145
      
      Source/WebCore: 
      
      Reviewed by Anders Carlsson.
              
      Mutation during traversal invalidates the position cache. After the mid-point we start
      traversing backwards as it the shortest path. However backward traversal of children-only
      HTMLCollection was wrong and would end up going to descendants.
              
      Reduction by yannick.poirier@inverto.tv.
      
      Test: fast/dom/htmlcollection-children-mutation.html
      
      * html/HTMLCollection.cpp:
      (WebCore::HTMLCollection::collectionTraverseBackward):
              
          Traverse direct children only when m_shouldOnlyIncludeDirectChildren bit is set.
      
      LayoutTests: 
      
      Reviewed by Anders Carlsson.
      
      * fast/dom/htmlcollection-children-mutation-expected.txt: Added.
      * fast/dom/htmlcollection-children-mutation.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f6525067
    • mitz@apple.com's avatar
      Try to fix the EFL build. · d647d51d
      mitz@apple.com authored
      * UIProcess/efl/PagePolicyClientEfl.cpp:
      (WebKit::PagePolicyClientEfl::decidePolicyForResponseCallback): No need to call
      WKFrameCanShowMIMEType now that this information is passed in as a parameter.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d647d51d
    • mitz@apple.com's avatar
      No way for policy client to determine if a the response’s MIME type can be shown · 8f11b919
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124445
      
      Reviewed by Sam Weinig.
      
      Source/WebKit2: 
      
      * Platform/CoreIPC/HandleMessage.h:
      (CoreIPC::callMemberFunction): Added a fifth message parameter to this template.
      
      * UIProcess/API/C/WKPage.h: Added a canShowMIMEType parameter to
      WKPageDecidePolicyForResponseCallback and deprecated the old version.
      
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      (setUpPagePolicyClient): Include whether the response MIME type can be shown under a new key
      in the action information dictionary.
      * UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: Declared
      WKActionCanShowMIMETypeKey.
      
      * UIProcess/WebInspectorProxy.cpp:
      (WebKit::WebInspectorProxy::createInspectorPage): Updated for changes in the policy client.
      
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::decidePolicyForResponse): Added canShowMIMEType parameter, which is
      passed to the policy client.
      (WebKit::WebPageProxy::decidePolicyForResponseSync): Added canShowMIMEType parameter, which
      is passed to the above function.
      * UIProcess/WebPageProxy.h:
      * UIProcess/WebPageProxy.messages.in: Added canShowMIMEType paramter to
      DecidePolicyForResponseSync.
      
      * UIProcess/WebPolicyClient.cpp:
      (WebKit::WebPolicyClient::decidePolicyForResponse): Added canShowMIMEType parameter, which
      is passed to the client callback.
      * UIProcess/WebPolicyClient.h:
      
      * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
      (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): Determine if the response
      MIME type can be shown and pass this information along in the message to the UI process.
      
      Tools: 
      
      * MiniBrowser/mac/WK2BrowserWindowController.m:
      (decidePolicyForResponse): Added canShowMIMEType parameter.
      (-[WK2BrowserWindowController awakeFromNib]): Updated for changes in the policy client.
      
      * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp:
      (TestWebKitAPI::decidePolicyForResponse): Added canShowMIMEType parameter.
      
      * WebKitTestRunner/TestController.cpp:
      (WTR::TestController::createWebViewWithOptions): Updated for changes in the policy client.
      (WTR::TestController::decidePolicyForResponse): Added canShowMIMEType parameter.
      * WebKitTestRunner/TestController.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8f11b919
    • zoltan@webkit.org's avatar
      Move LineLayoutState.h into rendering/line · a90902e8
      zoltan@webkit.org authored
      <https://webkit.org/b/124458>
      
      Reviewed by Mihnea Ovidenie.
      
      LineLayoutState is a helper class of RenderBlockLineLayout, so I'm moving it into line subdirectory.
      
      No new tests, no behavior change.
      
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.xcodeproj/project.pbxproj:
      * rendering/line/LineLayoutState.h: Renamed from Source/WebCore/rendering/LineLayoutState.h.
      (WebCore::FloatWithRect::FloatWithRect):
      (WebCore::LineLayoutState::LineLayoutState):
      (WebCore::LineLayoutState::lineInfo):
      (WebCore::LineLayoutState::endLineLogicalTop):
      (WebCore::LineLayoutState::setEndLineLogicalTop):
      (WebCore::LineLayoutState::endLine):
      (WebCore::LineLayoutState::setEndLine):
      (WebCore::LineLayoutState::lastFloat):
      (WebCore::LineLayoutState::setLastFloat):
      (WebCore::LineLayoutState::floats):
      (WebCore::LineLayoutState::floatIndex):
      (WebCore::LineLayoutState::setFloatIndex):
      (WebCore::LineLayoutState::adjustedLogicalLineTop):
      (WebCore::LineLayoutState::setAdjustedLogicalLineTop):
      (WebCore::LineLayoutState::flowThread):
      (WebCore::LineLayoutState::setFlowThread):
      (WebCore::LineLayoutState::endLineMatched):
      (WebCore::LineLayoutState::setEndLineMatched):
      (WebCore::LineLayoutState::checkForFloatsFromLastLine):
      (WebCore::LineLayoutState::setCheckForFloatsFromLastLine):
      (WebCore::LineLayoutState::markForFullLayout):
      (WebCore::LineLayoutState::isFullLayout):
      (WebCore::LineLayoutState::usesRepaintBounds):
      (WebCore::LineLayoutState::setRepaintRange):
      (WebCore::LineLayoutState::updateRepaintRangeFromBox):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a90902e8
    • antti@apple.com's avatar
      Simple line path does not respect visibility:hidden · 1a716e0f
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124467
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Test: fast/text/text-visibility.html
      
      * rendering/SimpleLineLayoutFunctions.cpp:
      (WebCore::SimpleLineLayout::paintFlow):
      
      LayoutTests: 
      
      * fast/text/text-visibility-expected.html: Added.
      * fast/text/text-visibility.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1a716e0f
    • fpizlo@apple.com's avatar
      Fix indentation of JSActivation.h. · 9274172d
      fpizlo@apple.com authored
      Rubber stamped by Mark Hahnenberg.
      
      * runtime/JSActivation.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9274172d
    • fpizlo@apple.com's avatar
      Fix indentation of JSVariableObject.h. · 4cd7f153
      fpizlo@apple.com authored
      Rubber stamped by Mark Hahnenberg.
              
      I'm about to do some damage to this file. I wanted to give it some sanity first.
      
      * runtime/JSVariableObject.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4cd7f153
  3. 16 Nov, 2013 15 commits
    • timothy_horton@apple.com's avatar
      Checkmarks are shifted down on iPhone at build.webkit.org/dashboard · 1b019c51
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122909
      
      Reviewed by Timothy Hatcher.
      
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/checkmark.svg: Added.
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/StatusLineView.js:
      (StatusLineView.prototype.set repeatCount):
      * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:
      (.status-line.good .bubble.pictogram):
      Use an SVG image instead of an obscure font for the checkboxes so they
      render identically on all platforms.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1b019c51
    • commit-queue@webkit.org's avatar
      [sh4] Fix build (broken since r159346). · c19522ac
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124455
      
      Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-16
      Reviewed by Oliver Hunt.
      
      Fix LLINT implementation for sh4 architecture to handle properly load and store operations with pr register.
      
      * offlineasm/sh4.rb:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c19522ac
    • ap@apple.com's avatar
      WebCrypto no longer uses sequences of ArrayBuffers · e51f247f
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124451
      
      Build fix.
      
      * crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature):
      Now that the function became shorter, clang realized that a variable was used
      uninitialized in an impossible code path.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e51f247f
    • ap@apple.com's avatar
      WebCrypto no longer uses sequences of ArrayBuffers · b651c9a6
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124451
      
      Reviewed by Sam Weinig.
      
      Source/WebCore: 
      
      Covered by existing tests.
      
      Changed all operations to take single CryptoOperationData objects.
      
      * bindings/js/JSCryptoOperationData.cpp:
      * bindings/js/JSCryptoOperationData.h:
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::JSSubtleCrypto::encrypt):
      (WebCore::JSSubtleCrypto::decrypt):
      (WebCore::JSSubtleCrypto::sign):
      (WebCore::JSSubtleCrypto::verify):
      (WebCore::JSSubtleCrypto::digest):
      * crypto/CryptoAlgorithm.cpp:
      (WebCore::CryptoAlgorithm::encrypt):
      (WebCore::CryptoAlgorithm::decrypt):
      (WebCore::CryptoAlgorithm::sign):
      (WebCore::CryptoAlgorithm::verify):
      (WebCore::CryptoAlgorithm::digest):
      * 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.h:
      * crypto/algorithms/CryptoAlgorithmHMAC.h:
      * 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/mac/CryptoAlgorithmAES_CBCMac.cpp:
      (WebCore::transformAES_CBC):
      (WebCore::CryptoAlgorithmAES_CBC::encrypt):
      (WebCore::CryptoAlgorithmAES_CBC::decrypt):
      * crypto/mac/CryptoAlgorithmHMACMac.cpp:
      (WebCore::calculateSignature):
      (WebCore::CryptoAlgorithmHMAC::sign):
      (WebCore::CryptoAlgorithmHMAC::verify):
      * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
      
      LayoutTests: 
      
      Updated tests accordingly.
      
      * crypto/subtle/aes-cbc-192-encrypt-decrypt.html:
      * crypto/subtle/aes-cbc-256-encrypt-decrypt.html:
      * crypto/subtle/aes-cbc-encrypt-decrypt-expected.txt:
      * crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html:
      * crypto/subtle/aes-cbc-encrypt-decrypt.html:
      * crypto/subtle/aes-cbc-import-jwk.html:
      * crypto/subtle/aes-cbc-wrong-key-class-expected.txt:
      * crypto/subtle/aes-cbc-wrong-key-class.html:
      * crypto/subtle/argument-conversion-expected.txt:
      * crypto/subtle/argument-conversion.html:
      * crypto/subtle/hmac-import-jwk.html:
      * crypto/subtle/hmac-sign-verify-empty-key.html:
      * crypto/subtle/hmac-sign-verify.html:
      * crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html:
      * crypto/subtle/sha-1-expected.txt:
      * crypto/subtle/sha-1.html:
      * crypto/subtle/sha-224-expected.txt:
      * crypto/subtle/sha-224.html:
      * crypto/subtle/sha-256-expected.txt:
      * crypto/subtle/sha-256.html:
      * crypto/subtle/sha-384-expected.txt:
      * crypto/subtle/sha-384.html:
      * crypto/subtle/sha-512-expected.txt:
      * crypto/subtle/sha-512.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b651c9a6
    • zoltan@webkit.org's avatar
      Remove the include of LineWidth.h from SimpleLineLayoutFunctions.cpp · 40a88fcc
      zoltan@webkit.org authored
      <https://webkit.org/b/124449>
      
      Reviewed by Antti Koivisto.
      
      I removed the include of LineWidth, since SimpleLineLayoutFunctions.cpp doesn't use it.
      
      No new tests, no behavior change.
      
      * rendering/SimpleLineLayoutFunctions.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      40a88fcc
    • ap@apple.com's avatar
      Support exporting symmetric keys as JWK · ca827605
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124442
      
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore: 
      
      * runtime/JSONObject.h: Export JSONStringify.
      
      Source/WebCore: 
      
      Error handling is not consistent yet - some errors cause exceptions, and others
      result in rejected promises. This part of spec is incomplete, so I basically did
      what was most straightforward in each case.
      
      * bindings/js/JSCryptoKeySerializationJWK.h: 
      * bindings/js/JSCryptoKeySerializationJWK.cpp:
      (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated a comment with a better link.
      (WebCore::JSCryptoKeySerializationJWK::buildJSONForOctetSequence): A helper to building JWK.
      (WebCore::JSCryptoKeySerializationJWK::addToJSON): Ditto.
      (WebCore::JSCryptoKeySerializationJWK::addBoolToJSON): Ditto.
      (WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON): Ditto. The code for
      mapping is my best guess, this all needs to be specified.
      (WebCore::JSCryptoKeySerializationJWK::addJWKUseToJSON): A helper to building JWK.
      (WebCore::JSCryptoKeySerializationJWK::serialize): Build a JSON string for the key.
      
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::JSSubtleCrypto::importKey): Updated a comment.
      (WebCore::JSSubtleCrypto::exportKey): Use CryptoKeySerialization (also for raw keys,
      for consistency).
      
      * crypto/CryptoKey.h:
      (WebCore::CryptoKey::algorithmIdentifier):
      (WebCore::CryptoKey::usagesBitmap):
      Exposed data needed for building JWK (it used to be only exposed in a form suitable
      for DOM accessors).
      
      * crypto/keys/CryptoKeyHMAC.h: Ditto, added an accessor for JWK.
      
      * crypto/keys/CryptoKeySerializationRaw.cpp: (WebCore::CryptoKeySerializationRaw::serialize):
      * crypto/keys/CryptoKeySerializationRaw.h:
      Moved from JSSubtleCryptoCustom.cpp for consistency.
      
      Source/WTF: 
      
      Base64URL encoding doesn't use '=' padding, and doesn't need any other options.
      Added this mode for encode, and removed policy arguments from exposed functions.
      
      * wtf/text/Base64.cpp:
      (WTF::base64EncodeInternal):
      (WTF::base64URLEncode):
      (WTF::base64URLDecode):
      * wtf/text/Base64.h:
      (WTF::base64URLEncode):
      
      LayoutTests: 
      
      * crypto/subtle/aes-export-key-expected.txt:
      * crypto/subtle/aes-export-key.html:
      * crypto/subtle/hmac-export-key-expected.txt:
      * crypto/subtle/hmac-export-key.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca827605
    • commit-queue@webkit.org's avatar
      [Win] JavaScript crashes on 64-bit with JIT enabled. · c5d9e32c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124409
      
      Patch by peavo@outlook.com <peavo@outlook.com> on 2013-11-15
      Reviewed by Michael Saboff.
      
      These are issues found with JIT on 64-bit:
      - The registers rsi and rdi in callToJavaScript needs to be saved and restored. This is required by the Windows 64-bit ABI.
      - The getHostCallReturnValue function needs to be updated according to it's GCC counterpart.
      - The poke argument offset needs to be 20h, because Windows 64-bit ABI requires stack space allocated for the 4 argument registers.
      
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Re-added JITStubsMSVC64.asm to project.
      * jit/CCallHelpers.h: Set poke argument offset.
      (JSC::CCallHelpers::setupArguments): Compile fix, added needed method.
      * jit/JITStubsMSVC64.asm: Save and restore registers rsi and rdi.
                                Update getHostCallReturnValue according to the GCC version.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c5d9e32c
    • roger_fong@apple.com's avatar
      Unreviewed, gtest project file cleanup. · 2e2648db
      roger_fong@apple.com authored
      * gtest/msvc/gtest-md.vcxproj:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e2648db
    • simon.fraser@apple.com's avatar
      Make results.html more sane · 11e0e653
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124446
      
      Reviewed by Sam Weinig.
      
      Fix various issues with results.html:
          * make it use page scrolling, not overflow scrolling
          * remove -webkit-flex stuff that wasn't doing anything
          * prettify the floating overlay for flagged tests
          * pull some markup out of the JS and into the HTML
          * remove the self-testing, which provides very little reward.
      
      * fast/harness/resources/results-test.js: Removed.
      * fast/harness/results-expected.txt:
      * fast/harness/results.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11e0e653
    • beidson@apple.com's avatar
      Move IDBCursorBackend operations into their own files · 1eae3156
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124444
      
      Reviewed by Tim Horton.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.xcodeproj/project.pbxproj:
      
      * Modules/indexeddb/IDBCursorBackend.cpp:
      * Modules/indexeddb/IDBCursorBackend.h:
      (WebCore::IDBCursorBackend::cursorType):
      (WebCore::IDBCursorBackend::deprecatedBackingStoreCursor):
      (WebCore::IDBCursorBackend::deprecatedSetBackingStoreCursor):
      (WebCore::IDBCursorBackend::deprecatedSetSavedBackingStoreCursor):
      
      * Modules/indexeddb/IDBCursorBackendOperations.cpp: Added.
      (WebCore::CallOnDestruct::CallOnDestruct):
      (WebCore::CallOnDestruct::~CallOnDestruct):
      (WebCore::CursorAdvanceOperation::perform):
      (WebCore::CursorIterationOperation::perform):
      (WebCore::CursorPrefetchIterationOperation::perform):
      * Modules/indexeddb/IDBCursorBackendOperations.h: Added.
      (WebCore::CursorIterationOperation::create):
      (WebCore::CursorIterationOperation::CursorIterationOperation):
      (WebCore::CursorAdvanceOperation::create):
      (WebCore::CursorAdvanceOperation::CursorAdvanceOperation):
      (WebCore::CursorPrefetchIterationOperation::create):
      (WebCore::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1eae3156
    • timothy_horton@apple.com's avatar
      results.html should have a link to historical results for a test/all failing tests · 02f2027e
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124402
      
      Reviewed by Simon Fraser.
      
      * fast/harness/results.html:
      * fast/harness/resources/results-test.js:
      Add the link to timeout/crash results too.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      02f2027e
    • ryuan.choi@samsung.com's avatar
      Unreviewed EFL build fix after r159358. · fcad6e92
      ryuan.choi@samsung.com authored
      * UIProcess/efl/PagePolicyClientEfl.cpp:
      (WebKit::PagePolicyClientEfl::decidePolicyForNavigationAction):
      * UIProcess/efl/PagePolicyClientEfl.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fcad6e92
    • timothy_horton@apple.com's avatar
      http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is slow,... · 6886548c
      timothy_horton@apple.com authored
      http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is slow, frequently > 30 second timeout
      https://bugs.webkit.org/show_bug.cgi?id=124373
      
      * platform/mac/TestExpectations:
      Mark test as timeout as well, since that happens sometimes too.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6886548c
    • dfarler@apple.com's avatar
      Copy ASAN flag settings to WebCore and JavaScriptCore intermediate build tools · 73ac9c47
      dfarler@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124362
      
      Reviewed by David Kilzer.
      
      Source/JavaScriptCore:
      
      * Configurations/ToolExecutable.xcconfig:
      Use ASAN_C*FLAGS.
      
      Source/WebCore:
      
      No new tests needed.
      
      * WebCore.xcodeproj/project.pbxproj:
      Use ASAN_C*FLAGS for WebCoreExportFileGenerator.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      73ac9c47
    • jer.noble@apple.com's avatar
      [Mac][AVF] Allow video and audio tracks to be initialized with an AVAssetTrack. · 6d19e068
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124421
      
      Reviewed by Eric Carlson.
      
      Currently, VideoTrackPrivateAVFObjC and AudioTrackPrivateAVFObjC are initialized with an
      AVPlayerItemTrack, but most of its methods use the AVAssetTrack wrapped by the
      AVPlayerItemTrack. Allow these objects to be alternatively initialized with an AVAssetTrack.
      
      Add factory methods taking an AVAssetTrack:
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
      (WebCore::AudioTrackPrivateAVFObjC::create):
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
      (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
      (WebCore::AudioTrackPrivateAVFObjC::setAssetTrack):
      (WebCore::AudioTrackPrivateAVFObjC::assetTrack):
      * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
      (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
      (WebCore::VideoTrackPrivateAVFObjC::setAssetTrack):
      (WebCore::VideoTrackPrivateAVFObjC::assetTrack):
      * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
      
      Use m_assetTrack instead of [m_playerItemTrack assetTrack]:
      * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
      (WebCore::AVTrackPrivateAVFObjCImpl::assetTrack):
      * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
      (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):
      (WebCore::AVTrackPrivateAVFObjCImpl::enabled):
      (WebCore::AVTrackPrivateAVFObjCImpl::setEnabled):
      (WebCore::AVTrackPrivateAVFObjCImpl::audioKind):
      (WebCore::AVTrackPrivateAVFObjCImpl::videoKind):
      (WebCore::AVTrackPrivateAVFObjCImpl::id):
      (WebCore::AVTrackPrivateAVFObjCImpl::label):
      (WebCore::AVTrackPrivateAVFObjCImpl::language):
      (WebCore::AVTrackPrivateAVFObjCImpl::trackID):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d19e068
  4. 15 Nov, 2013 13 commits
    • jer.noble@apple.com's avatar
      Unreviewed Win build fix; setCurrentTime() no longer takes an exception parameter. · 9eaea415
      jer.noble@apple.com authored
      * FullscreenVideoController.cpp:
      (FullscreenVideoController::setCurrentTime):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9eaea415
    • mhahnenberg@apple.com's avatar
      Remove JSChunk · dc0f013d
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124435
      
      Reviewed by Geoffrey Garen.
      
      It's empty and has been since it was added 3 years ago.
      
      * CMakeLists.txt:
      * runtime/JSChunk.cpp: Removed.
      * runtime/JSChunk.h: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc0f013d
    • beidson@apple.com's avatar
      Let IDBDatabaseBackend create IDBTransactionBackend's directly · 6e5f0963
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124438
      
      Reviewed by Beth Dakin.
      
      Source/WebCore:
      
      Create IDBTransactionBackends directly:
      * Modules/indexeddb/IDBDatabaseBackend.cpp:
      (WebCore::IDBDatabaseBackend::createTransaction):
      * Modules/indexeddb/IDBDatabaseBackend.h:
      
      Remove maybeCreateTransactionBackend():
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      
      Source/WebKit2:
      
      Remove maybeCreateTransactionBackend():
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e5f0963
    • timothy_horton@apple.com's avatar
      Occasionally, hundreds of tests fail with small text diffs on Mavericks · 55d46133
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124312
      
      Reviewed by Alexey Proskuryakov.
      
      Try reverting the part of r158652 that deleted all of the persistent
      defaults, in the thought that there might be some sort of race between
      processes causing some settings to be left in the wrong state.
      
      * DumpRenderTree/mac/DumpRenderTree.mm:
      (setDefaultsToConsistentValuesForTesting):
      * WebKitTestRunner/mac/main.mm:
      (setDefaultsToConsistentValuesForTesting):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      55d46133
    • jer.noble@apple.com's avatar
      HTMLMediaElement should not throw an exception from setCurrentTime or fastSeek. · b96ab1a9
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124294
      
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      Update the seek logic to match the current specification. This means removing exception
      throwing from both the .idl and the implementation.
      
      Remove the ExceptionCode parameter from setCurrentTime and fastSeek:
      * html/HTMLMediaElement.cpp:
      (HTMLMediaElement::fastSeek):
      (HTMLMediaElement::seek):
      (HTMLMediaElement::seekWithTolerance):
      (HTMLMediaElement::setCurrentTime):
      * html/HTMLMediaElement.h:
      * html/HTMLMediaElement.idl:
      * html/MediaController.cpp:
      (MediaController::setCurrentTime):
      * html/MediaController.h:
      * html/MediaController.idl:
      * html/MediaControllerInterface.h:
      
      Do not pass in an ExceptionCode placeholder when calling seek:
      * html/HTMLMediaElement.cpp:
      (HTMLMediaElement::rewind):
      (HTMLMediaElement::returnToRealtime):
      (HTMLMediaElement::finishSeek):
      (HTMLMediaElement::playInternal):
      (HTMLMediaElement::mediaPlayerTimeChanged):
      (HTMLMediaElement::mediaPlayerDurationChanged):
      (HTMLMediaElement::applyMediaFragmentURI):
      * html/HTMLMediaElement.h:
      * html/HTMLMediaElement.idl:
      * html/MediaController.cpp:
      (MediaController::bringElementUpToSpeed):
      * html/MediaController.h:
      * html/MediaController.idl:
      * html/MediaControllerInterface.h:
      * html/shadow/MediaControlElementTypes.cpp:
      (WebCore::MediaControlSeekButtonElement::seekTimerFired):
      * html/shadow/MediaControlElements.cpp:
      (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
      (WebCore::MediaControlTimelineElement::defaultEventHandler):
      * platform/mac/WebVideoFullscreenHUDWindowController.mm:
      (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
      
      LayoutTests:
      
      * media/video-seek-no-src-exception-expected.txt: Removed.
      * media/video-seek-no-src-exception.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b96ab1a9
    • beidson@apple.com's avatar
      Remove last vestiges of IDBBackingStore* from IDBTransactionBackend. · 046ca9e7
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124436
      
      Reviewed by Tim Horton.
      
      Source/WebCore:
      
      * Modules/indexeddb/IDBFactoryBackendInterface.h: Removed createCursorBackend.
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp: Removed createCursorBackend.
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h: Removed createCursorBackend.
      
      * Modules/indexeddb/IDBCursorBackend.h:
      
      * Modules/indexeddb/IDBTransactionBackend.cpp:
      * Modules/indexeddb/IDBTransactionBackend.h:
      
      * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
      (WebCore::IDBServerConnectionLevelDB::openCursor):
      
      Source/WebKit2:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: Removed createCursorBackend.
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      046ca9e7
    • timothy_horton@apple.com's avatar
      Layout Test editing/selection/5057506.html frequently times out on Mac WK2 · 6fec6783
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124437
      
      * platform/mac-wk2/TestExpectations:
      Mark aforementioned test as a flaky-timeout.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6fec6783
    • mhahnenberg@apple.com's avatar
      Remove VTableSpectrum · 5906583d
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124427
      
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/Heap.cpp:
      (JSC::Heap::lastChanceToFinalize):
      * heap/Heap.h:
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::callDestructor):
      * heap/SlotVisitor.cpp:
      (JSC::visitChildren):
      * heap/SlotVisitor.h:
      * heap/VTableSpectrum.cpp: Removed.
      * heap/VTableSpectrum.h: Removed.
      
      Source/WebKit/blackberry:
      
      * WebCoreSupport/AboutDataEnableFeatures.in:
      
      Source/WTF:
      
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5906583d
    • beidson@apple.com's avatar
      Make IDBIndexWriter a LevelDB specific concept · fcd7ae95
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124434
      
      Reviewed by Tim Horton.
      
      This includes renaming the class and moving it into the leveldb subdirectory.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.xcodeproj/project.pbxproj:
      
      * Modules/indexeddb/IDBBackingStoreInterface.h:
      * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
      
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
      (WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.cpp.
      (WebCore::IDBIndexWriterLevelDB::IDBIndexWriterLevelDB):
      (WebCore::IDBIndexWriterLevelDB::writeIndexKeys):
      (WebCore::IDBIndexWriterLevelDB::verifyIndexKeys):
      (WebCore::IDBIndexWriterLevelDB::addingKeyAllowed):
      * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.h.
      (WebCore::IDBIndexWriterLevelDB::create):
      
      * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
      (WebCore::IDBServerConnectionLevelDB::setIndexKeys):
      (WebCore::IDBServerConnectionLevelDB::put):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fcd7ae95
    • mitz@apple.com's avatar
      Give the policy client the originating frame of a navigation action · f9b0abcc
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124431
      
      Reviewed by Anders Carlsson.
      
      Source/WebKit2: 
      
      * Platform/CoreIPC/HandleMessage.h:
      (CoreIPC::callMemberFunction): Added a seventh message parameter to this template.
      
      * Shared/APIClientTraits.cpp: Defined API traits for WKPagePolicyClient, which now has two
      versions.
      * Shared/APIClientTraits.h: Declared APIClientTraits<WKPagePolicyClient>.
      
      * UIProcess/API/C/WKPage.h: Added an originatingFrame parameter to
      WKPageDecidePolicyForNavigationActionCallback and deprecated the old version. Bumped the
      policy client version to 1.
      
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      (setUpPagePolicyClient): Include the originating frame’s URL under the a new key in the
      action information dictionary.
      * UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: Declared
      WKActionOriginatingFrameURLKey.
      
      * UIProcess/WebInspectorProxy.cpp:
      (WebKit::decidePolicyForNavigationAction): Added originatingFrame parameter.
      (WebKit::WebInspectorProxy::createInspectorPage): Updated to the new version of the policy
      client interface.
      
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::decidePolicyForNavigationAction): Added originatingFrameID parameter
      and passing the originating frame to the policy client.
      * UIProcess/WebPageProxy.h:
      * UIProcess/WebPageProxy.messages.in: Added originatingFrameID paremeter to
      DecidePolicyForNavigationAction.
      
      * UIProcess/WebPolicyClient.cpp:
      (WebKit::WebPolicyClient::decidePolicyForNavigationAction): Added originatingFrame
      parameter, which is passed to the client callback.
      * UIProcess/WebPolicyClient.h:
      
      * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
      (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Determine the
      originating frame for link activation and form submission actions and send its ID in the
      DecidePolicyForNavigationAction message.
      
      Tools: 
      
      * MiniBrowser/mac/WK2BrowserWindowController.m:
      (decidePolicyForNavigationAction): Added originatingFrame parameter.
      (-[WK2BrowserWindowController awakeFromNib]): Updated for the new version of the policy
      client.
      
      * TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp:
      (TestWebKitAPI::decidePolicyForNavigationAction): Added originatingFrame parameter.
      (TestWebKitAPI::setPagePolicyClient): Updated for the new version of the policy client.
      
      * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp:
      (TestWebKitAPI::decidePolicyForNavigationAction): Added originatingFrame parameter.
      (TestWebKitAPI::TEST): Updated for the new version of the policy client.
      
      * WebKitTestRunner/TestController.cpp:
      (WTR::TestController::createWebViewWithOptions): Updated for the new version of the policy
      client.
      (WTR::TestController::decidePolicyForNavigationAction): Added originatingFrame parameter.
      * WebKitTestRunner/TestController.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9b0abcc
    • achicu@adobe.com's avatar
      Web Inspector: DOM.performSearch should accept a list of context nodes · 1aa38677
      achicu@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124390
      
      Reviewed by Timothy Hatcher.
      
      Source/WebCore:
      
      Extracted the code in InspectorDOMAgent::performSearch into its own helper class
      called InspectorNodeFinder. Also added a new array parameter called "nodeIds"
      that can be used to limit the search results to just partial subtrees.
      
      Tests: inspector-protocol/dom/dom-search-crash.html
             inspector-protocol/dom/dom-search-with-context.html
             inspector-protocol/dom/dom-search.html
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * inspector/protocol/DOM.json:
      * inspector/InspectorAllInOne.cpp:
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::performSearch):
      * inspector/InspectorDOMAgent.h:
      * inspector/InspectorNodeFinder.cpp: Added.
      (WebCore::stripCharacters):
      (WebCore::InspectorNodeFinder::InspectorNodeFinder):
      (WebCore::InspectorNodeFinder::performSearch):
      (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
      (WebCore::InspectorNodeFinder::matchesAttribute):
      (WebCore::InspectorNodeFinder::matchesElement):
      (WebCore::InspectorNodeFinder::searchUsingXPath):
      (WebCore::InspectorNodeFinder::searchUsingCSSSelectors):
      * inspector/InspectorNodeFinder.h: Added.
      (WebCore::InspectorNodeFinder::results):
      
      LayoutTests:
      
      Added new inspector-protocol tests to check for the DOM.performSearch implementation.
      Also, ported an existing test from the old "inspector" format.
      
      * http/tests/inspector-protocol/resources/InspectorDOMListener.js: Added boilerplate code that
      can be used to track node ids and class names.
      (createDOMListener.createNodeAttributesMap):
      (createDOMListener.collectNode):
      (createDOMListener.onSetChildNodes):
      (createDOMListener.onChildNodeRemoved):
      (createDOMListener.onChildNodeInserted):
      (createDOMListener.return.getNodeById):
      (createDOMListener.return.getNodeIdentifier):
      * http/tests/inspector-protocol/resources/InspectorTest.js:
      (InspectorFrontendAPI.dispatchMessageAsync): Added a way to catch all the messages received in the inspector.
      It is useful for debugging the test file.
      (InspectorTest.addEventListener): Helper method to register multiple handlers for the same event.
      * inspector-protocol/dom/dom-search-crash-expected.txt: Added.
      * inspector-protocol/dom/dom-search-crash.html: Added.
      * inspector-protocol/dom/dom-search-expected.txt: Added.
      * inspector-protocol/dom/dom-search-with-context-expected.txt: Added.
      * inspector-protocol/dom/dom-search-with-context.html: Added.
      * inspector-protocol/dom/dom-search.html: Added.
      * inspector-protocol/dom/resources/dom-search-crash-iframe.html: Cloned from inspector/dom/resources/dom-search-crash-iframe.html
      * inspector-protocol/dom/resources/dom-search-iframe.html: Added.
      * inspector-protocol/dom/resources/dom-search-queries.js: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1aa38677
    • timothy_horton@apple.com's avatar
      Make lint-test-expectations pass for platform/win · 7e740e9f
      timothy_horton@apple.com authored
      * platform/win/TestExpectations:
      I always kept the stronger expectation in the case of duplicates.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e740e9f
    • beidson@apple.com's avatar
      Remove IDBBackingStoreInterface.h includes that are no longer needed · 21c65fb2
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124433
      
      Reviewed by Tim Horton.
      
      * Modules/indexeddb/IDBCursorBackend.cpp:
      * Modules/indexeddb/IDBCursorBackend.h:
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/IDBTransactionBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      21c65fb2