WebKit-https.git
6 years agoSimplify WatchpointSet state tracking
fpizlo@apple.com [Mon, 18 Nov 2013 02:10:42 +0000 (02:10 +0000)]
Simplify WatchpointSet state tracking
https://bugs.webkit.org/show_bug.cgi?id=124465

Reviewed by Sam Weinig.

We previously represented the state of watchpoint sets using two booleans. But that
makes it awkward to case over the state.

We also previously supported a watchpoint set being both watched and invalidated. We
never used that capability, and its presence was just purely confusing.

This turns the whole thing into an enum.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branch8):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branch8):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::branch8):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::branch8):
* bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::WatchpointSet):
(JSC::WatchpointSet::add):
(JSC::WatchpointSet::notifyWriteSlow):
(JSC::InlineWatchpointSet::inflateSlow):
* bytecode/Watchpoint.h:
(JSC::WatchpointSet::state):
(JSC::WatchpointSet::isStillValid):
(JSC::WatchpointSet::startWatching):
(JSC::WatchpointSet::notifyWrite):
(JSC::WatchpointSet::addressOfState):
(JSC::InlineWatchpointSet::InlineWatchpointSet):
(JSC::InlineWatchpointSet::hasBeenInvalidated):
(JSC::InlineWatchpointSet::startWatching):
(JSC::InlineWatchpointSet::notifyWrite):
(JSC::InlineWatchpointSet::decodeState):
(JSC::InlineWatchpointSet::encodeState):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitVarInjectionCheck):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitVarInjectionCheck):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSFunction.cpp:
(JSC::JSFunction::JSFunction):
* runtime/JSFunctionInlines.h:
(JSC::JSFunction::JSFunction):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
* runtime/Structure.cpp:
(JSC::Structure::Structure):
* runtime/SymbolTable.cpp:
(JSC::SymbolTableEntry::attemptToWatch):
* runtime/SymbolTable.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159395 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFTL should have an explicit notion of bytecode liveness
fpizlo@apple.com [Mon, 18 Nov 2013 01:46:48 +0000 (01:46 +0000)]
FTL should have an explicit notion of bytecode liveness
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: https://svn.webkit.org/repository/webkit/trunk@159394 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRSASSA-PKCS1-v1_5 JWK import doesn't check key size
ap@apple.com [Mon, 18 Nov 2013 01:18:43 +0000 (01:18 +0000)]
RSASSA-PKCS1-v1_5 JWK import doesn't check key size
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: https://svn.webkit.org/repository/webkit/trunk@159393 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoJWK crypto key export result is a DOM string instead of an array buffer
ap@apple.com [Mon, 18 Nov 2013 01:17:09 +0000 (01:17 +0000)]
JWK crypto key export result is a DOM string instead of an array buffer
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: https://svn.webkit.org/repository/webkit/trunk@159392 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayoutStateMaintainer should use references where possible
weinig@apple.com [Mon, 18 Nov 2013 01:12:17 +0000 (01:12 +0000)]
LayoutStateMaintainer should use references where possible
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: https://svn.webkit.org/repository/webkit/trunk@159391 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse uint8_t vectors for WebCrypto data
ap@apple.com [Sun, 17 Nov 2013 21:41:46 +0000 (21:41 +0000)]
Use uint8_t vectors for WebCrypto data
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: https://svn.webkit.org/repository/webkit/trunk@159390 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r158774): Iteration over element children is broken
antti@apple.com [Sun, 17 Nov 2013 21:37:25 +0000 (21:37 +0000)]
REGRESSION (r158774): Iteration over element children is broken
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: https://svn.webkit.org/repository/webkit/trunk@159389 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTry to fix the EFL build.
mitz@apple.com [Sun, 17 Nov 2013 21:00:28 +0000 (21:00 +0000)]
Try to fix the EFL build.

* 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: https://svn.webkit.org/repository/webkit/trunk@159388 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNo way for policy client to determine if a the response’s MIME type can be shown
mitz@apple.com [Sun, 17 Nov 2013 20:30:43 +0000 (20:30 +0000)]
No way for policy client to determine if a the response’s MIME type can be shown
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: https://svn.webkit.org/repository/webkit/trunk@159387 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove LineLayoutState.h into rendering/line
zoltan@webkit.org [Sun, 17 Nov 2013 18:25:34 +0000 (18:25 +0000)]
Move LineLayoutState.h into rendering/line
<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: https://svn.webkit.org/repository/webkit/trunk@159386 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSimple line path does not respect visibility:hidden
antti@apple.com [Sun, 17 Nov 2013 17:29:29 +0000 (17:29 +0000)]
Simple line path does not respect visibility:hidden
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: https://svn.webkit.org/repository/webkit/trunk@159385 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix indentation of JSActivation.h.
fpizlo@apple.com [Sun, 17 Nov 2013 03:49:42 +0000 (03:49 +0000)]
Fix indentation of JSActivation.h.

Rubber stamped by Mark Hahnenberg.

* runtime/JSActivation.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159384 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix indentation of JSVariableObject.h.
fpizlo@apple.com [Sun, 17 Nov 2013 03:41:19 +0000 (03:41 +0000)]
Fix indentation of JSVariableObject.h.

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: https://svn.webkit.org/repository/webkit/trunk@159383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCheckmarks are shifted down on iPhone at build.webkit.org/dashboard
timothy_horton@apple.com [Sat, 16 Nov 2013 23:19:24 +0000 (23:19 +0000)]
Checkmarks are shifted down on iPhone at build.webkit.org/dashboard
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: https://svn.webkit.org/repository/webkit/trunk@159382 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[sh4] Fix build (broken since r159346).
commit-queue@webkit.org [Sat, 16 Nov 2013 22:28:27 +0000 (22:28 +0000)]
[sh4] Fix build (broken since r159346).
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: https://svn.webkit.org/repository/webkit/trunk@159381 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWebCrypto no longer uses sequences of ArrayBuffers
ap@apple.com [Sat, 16 Nov 2013 19:14:14 +0000 (19:14 +0000)]
WebCrypto no longer uses sequences of ArrayBuffers
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: https://svn.webkit.org/repository/webkit/trunk@159380 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWebCrypto no longer uses sequences of ArrayBuffers
ap@apple.com [Sat, 16 Nov 2013 18:58:39 +0000 (18:58 +0000)]
WebCrypto no longer uses sequences of ArrayBuffers
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: https://svn.webkit.org/repository/webkit/trunk@159379 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove the include of LineWidth.h from SimpleLineLayoutFunctions.cpp
zoltan@webkit.org [Sat, 16 Nov 2013 10:08:52 +0000 (10:08 +0000)]
Remove the include of LineWidth.h from SimpleLineLayoutFunctions.cpp
<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: https://svn.webkit.org/repository/webkit/trunk@159378 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSupport exporting symmetric keys as JWK
ap@apple.com [Sat, 16 Nov 2013 07:10:31 +0000 (07:10 +0000)]
Support exporting symmetric keys as JWK
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: https://svn.webkit.org/repository/webkit/trunk@159377 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] JavaScript crashes on 64-bit with JIT enabled.
commit-queue@webkit.org [Sat, 16 Nov 2013 03:25:45 +0000 (03:25 +0000)]
[Win] JavaScript crashes on 64-bit with JIT enabled.
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: https://svn.webkit.org/repository/webkit/trunk@159376 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, gtest project file cleanup.
roger_fong@apple.com [Sat, 16 Nov 2013 01:32:38 +0000 (01:32 +0000)]
Unreviewed, gtest project file cleanup.

* gtest/msvc/gtest-md.vcxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159375 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake results.html more sane
simon.fraser@apple.com [Sat, 16 Nov 2013 01:28:22 +0000 (01:28 +0000)]
Make results.html more sane
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: https://svn.webkit.org/repository/webkit/trunk@159374 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove IDBCursorBackend operations into their own files
beidson@apple.com [Sat, 16 Nov 2013 01:16:28 +0000 (01:16 +0000)]
Move IDBCursorBackend operations into their own files
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: https://svn.webkit.org/repository/webkit/trunk@159373 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoresults.html should have a link to historical results for a test/all failing tests
timothy_horton@apple.com [Sat, 16 Nov 2013 01:10:19 +0000 (01:10 +0000)]
results.html should have a link to historical results for a test/all failing tests
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: https://svn.webkit.org/repository/webkit/trunk@159372 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed EFL build fix after r159358.
ryuan.choi@samsung.com [Sat, 16 Nov 2013 00:55:33 +0000 (00:55 +0000)]
Unreviewed EFL build fix after r159358.

* UIProcess/efl/PagePolicyClientEfl.cpp:
(WebKit::PagePolicyClientEfl::decidePolicyForNavigationAction):
* UIProcess/efl/PagePolicyClientEfl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159371 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is slow, freque...
timothy_horton@apple.com [Sat, 16 Nov 2013 00:22:24 +0000 (00:22 +0000)]
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: https://svn.webkit.org/repository/webkit/trunk@159370 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCopy ASAN flag settings to WebCore and JavaScriptCore intermediate build tools
dfarler@apple.com [Sat, 16 Nov 2013 00:11:12 +0000 (00:11 +0000)]
Copy ASAN flag settings to WebCore and JavaScriptCore intermediate build tools
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: https://svn.webkit.org/repository/webkit/trunk@159369 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac][AVF] Allow video and audio tracks to be initialized with an AVAssetTrack.
jer.noble@apple.com [Sat, 16 Nov 2013 00:01:39 +0000 (00:01 +0000)]
[Mac][AVF] Allow video and audio tracks to be initialized with an AVAssetTrack.
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: https://svn.webkit.org/repository/webkit/trunk@159368 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed Win build fix; setCurrentTime() no longer takes an exception parameter.
jer.noble@apple.com [Fri, 15 Nov 2013 23:50:26 +0000 (23:50 +0000)]
Unreviewed Win build fix; setCurrentTime() no longer takes an exception parameter.

* FullscreenVideoController.cpp:
(FullscreenVideoController::setCurrentTime):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159367 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove JSChunk
mhahnenberg@apple.com [Fri, 15 Nov 2013 23:47:12 +0000 (23:47 +0000)]
Remove JSChunk
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: https://svn.webkit.org/repository/webkit/trunk@159366 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLet IDBDatabaseBackend create IDBTransactionBackend's directly
beidson@apple.com [Fri, 15 Nov 2013 23:44:24 +0000 (23:44 +0000)]
Let IDBDatabaseBackend create IDBTransactionBackend's directly
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: https://svn.webkit.org/repository/webkit/trunk@159365 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoOccasionally, hundreds of tests fail with small text diffs on Mavericks
timothy_horton@apple.com [Fri, 15 Nov 2013 23:42:41 +0000 (23:42 +0000)]
Occasionally, hundreds of tests fail with small text diffs on Mavericks
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: https://svn.webkit.org/repository/webkit/trunk@159364 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoHTMLMediaElement should not throw an exception from setCurrentTime or fastSeek.
jer.noble@apple.com [Fri, 15 Nov 2013 23:38:48 +0000 (23:38 +0000)]
HTMLMediaElement should not throw an exception from setCurrentTime or fastSeek.
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: https://svn.webkit.org/repository/webkit/trunk@159363 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove last vestiges of IDBBackingStore* from IDBTransactionBackend.
beidson@apple.com [Fri, 15 Nov 2013 23:22:13 +0000 (23:22 +0000)]
Remove last vestiges of IDBBackingStore* from IDBTransactionBackend.
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: https://svn.webkit.org/repository/webkit/trunk@159362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayout Test editing/selection/5057506.html frequently times out on Mac WK2
timothy_horton@apple.com [Fri, 15 Nov 2013 23:21:53 +0000 (23:21 +0000)]
Layout Test editing/selection/5057506.html frequently times out on Mac WK2
https://bugs.webkit.org/show_bug.cgi?id=124437

* platform/mac-wk2/TestExpectations:
Mark aforementioned test as a flaky-timeout.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159361 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove VTableSpectrum
mhahnenberg@apple.com [Fri, 15 Nov 2013 22:47:50 +0000 (22:47 +0000)]
Remove VTableSpectrum
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: https://svn.webkit.org/repository/webkit/trunk@159360 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake IDBIndexWriter a LevelDB specific concept
beidson@apple.com [Fri, 15 Nov 2013 22:24:14 +0000 (22:24 +0000)]
Make IDBIndexWriter a LevelDB specific concept
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: https://svn.webkit.org/repository/webkit/trunk@159359 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGive the policy client the originating frame of a navigation action
mitz@apple.com [Fri, 15 Nov 2013 22:22:30 +0000 (22:22 +0000)]
Give the policy client the originating frame of a navigation action
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: https://svn.webkit.org/repository/webkit/trunk@159358 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: DOM.performSearch should accept a list of context nodes
achicu@adobe.com [Fri, 15 Nov 2013 22:08:13 +0000 (22:08 +0000)]
Web Inspector: DOM.performSearch should accept a list of context nodes
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: https://svn.webkit.org/repository/webkit/trunk@159357 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake lint-test-expectations pass for platform/win
timothy_horton@apple.com [Fri, 15 Nov 2013 22:07:39 +0000 (22:07 +0000)]
Make lint-test-expectations pass for platform/win

* platform/win/TestExpectations:
I always kept the stronger expectation in the case of duplicates.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159356 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove IDBBackingStoreInterface.h includes that are no longer needed
beidson@apple.com [Fri, 15 Nov 2013 21:59:36 +0000 (21:59 +0000)]
Remove IDBBackingStoreInterface.h includes that are no longer needed
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: https://svn.webkit.org/repository/webkit/trunk@159355 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove BreakingContext and LineBreaker into their own files
zoltan@webkit.org [Fri, 15 Nov 2013 21:40:59 +0000 (21:40 +0000)]
Move BreakingContext and LineBreaker into their own files
<https://webkit.org/b/124336>

Reviewed by David Hyatt.

In this change I introduced 'line' subdirectory inside 'rendering', this directory will contain all the classes
which have been refactored from RenderBlockLineLayout.cpp. This change contains the separation of BreakingContext,
and the separation of LineBreaker classes. Since I wanted to keep the helper functions organized, I also added a
new file called LineInlineHeaders.h, which contains the functions which used in LineBreaker.h and BreakingContext.h.
I moved LineInfo class into line directory. It was necessary this time, since I added a cpp for it. I'll move the
rest of the line layout related helper classes later. (I wanted to minimize merge conflicts.)

No new tests, no behavior change.

* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCoreCommon.props:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::createRun):
* rendering/line/BreakingContextInlineHeaders.h: Added.
(WebCore::WordMeasurement::WordMeasurement):
(WebCore::TrailingObjects::TrailingObjects):
(WebCore::TrailingObjects::setTrailingWhitespace):
(WebCore::TrailingObjects::clear):
(WebCore::TrailingObjects::appendBoxIfNeeded):
(WebCore::deprecatedAddMidpoint):
(WebCore::startIgnoringSpaces):
(WebCore::stopIgnoringSpaces):
(WebCore::ensureLineBoxInsideIgnoredSpaces):
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::currentObject):
(WebCore::BreakingContext::lineBreak):
(WebCore::BreakingContext::lineBreakRef):
(WebCore::BreakingContext::lineWidth):
(WebCore::BreakingContext::atEnd):
(WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::increment):
(WebCore::BreakingContext::handleBR):
(WebCore::borderPaddingMarginStart):
(WebCore::borderPaddingMarginEnd):
(WebCore::shouldAddBorderPaddingMargin):
(WebCore::previousInFlowSibling):
(WebCore::inlineLogicalWidth):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::firstPositiveWidth):
(WebCore::updateSegmentsForShapes):
(WebCore::iteratorIsBeyondEndOfRenderCombineText):
(WebCore::nextCharacter):
(WebCore::updateCounterIfNeeded):
(WebCore::measureHyphenWidth):
(WebCore::textWidth):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::handleText):
(WebCore::textBeginsWithBreakablePosition):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::checkMidpoints):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/LineBreaker.cpp: Added.
(WebCore::LineBreaker::reset):
(WebCore::LineBreaker::skipTrailingWhitespace):
(WebCore::LineBreaker::skipLeadingWhitespace):
* rendering/line/LineBreaker.h: Added.
(WebCore::LineBreaker::LineBreaker):
(WebCore::LineBreaker::lineWasHyphenated):
(WebCore::LineBreaker::positionedObjects):
(WebCore::LineBreaker::clear):
* rendering/line/LineInfo.cpp: Added.
(WebCore::LineInfo::setEmpty):
* rendering/line/LineInfo.h: Renamed from Source/WebCore/rendering/LineInfo.h.
(WebCore::LineInfo::LineInfo):
(WebCore::LineInfo::isFirstLine):
(WebCore::LineInfo::isLastLine):
(WebCore::LineInfo::isEmpty):
(WebCore::LineInfo::previousLineBrokeCleanly):
(WebCore::LineInfo::floatPaginationStrut):
(WebCore::LineInfo::runsFromLeadingWhitespace):
(WebCore::LineInfo::resetRunsFromLeadingWhitespace):
(WebCore::LineInfo::incrementRunsFromLeadingWhitespace):
(WebCore::LineInfo::setFirstLine):
(WebCore::LineInfo::setLastLine):
(WebCore::LineInfo::setPreviousLineBrokeCleanly):
(WebCore::LineInfo::setFloatPaginationStrut):
* rendering/line/LineInlineHeaders.h: Added.
(WebCore::hasInlineDirectionBordersPaddingOrMargin):
(WebCore::lineStyle):
(WebCore::requiresLineBoxForContent):
(WebCore::shouldCollapseWhiteSpace):
(WebCore::skipNonBreakingSpace):
(WebCore::alwaysRequiresLineBox):
(WebCore::requiresLineBox):
(WebCore::setStaticPositions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159354 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove execution of IDBTransactionBackendOperations to the IDBServerConnection
beidson@apple.com [Fri, 15 Nov 2013 20:57:35 +0000 (20:57 +0000)]
Move execution of IDBTransactionBackendOperations to the IDBServerConnection
https://bugs.webkit.org/show_bug.cgi?id=124385

Reviewed by Tim Horton.

Source/WebCore:

Each IDBOperation has it’s ::perform() moved to a method on IDBServerConnection.
This almost removes all knowledge of the backing stores from the front end.

* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::clearObjectStore):
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackend.h:

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::clear):

Add methods to reflect each transaction backend operation:
* Modules/indexeddb/IDBServerConnection.h:

Schedule certain operations with callbacks:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::scheduleVersionChangeOperation):
(WebCore::IDBTransactionBackend::schedulePutOperation):
(WebCore::IDBTransactionBackend::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackend::scheduleCountOperation):
(WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackend::scheduleClearObjectStoreOperation):
* Modules/indexeddb/IDBTransactionBackend.h:

Make each operation’s perform() method defer to the IDBServerConnection (with a callback):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearObjectStoreOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):

Add accessors to each operation’s data members so the IDBServerConnection has everything it needs:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::CreateObjectStoreOperation::objectStoreMetadata):
(WebCore::DeleteObjectStoreOperation::objectStoreMetadata):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::version):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::callbacks):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::databaseCallbacks):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::CreateIndexOperation::objectStoreID):
(WebCore::CreateIndexOperation::idbIndexMetadata):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::objectStoreID):
(WebCore::DeleteIndexOperation::idbIndexMetadata):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::objectStoreID):
(WebCore::GetOperation::indexID):
(WebCore::GetOperation::cursorType):
(WebCore::GetOperation::keyRange):
(WebCore::GetOperation::callbacks):
(WebCore::GetOperation::autoIncrement):
(WebCore::GetOperation::keyPath):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::putMode):
(WebCore::PutOperation::objectStore):
(WebCore::PutOperation::key):
(WebCore::PutOperation::indexIDs):
(WebCore::PutOperation::indexKeys):
(WebCore::PutOperation::callbacks):
(WebCore::PutOperation::value):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::objectStoreID):
(WebCore::OpenCursorOperation::indexID):
(WebCore::OpenCursorOperation::direction):
(WebCore::OpenCursorOperation::cursorType):
(WebCore::OpenCursorOperation::taskType):
(WebCore::OpenCursorOperation::keyRange):
(WebCore::OpenCursorOperation::cursorDirection):
(WebCore::OpenCursorOperation::callbacks):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::objectStoreID):
(WebCore::CountOperation::indexID):
(WebCore::CountOperation::keyRange):
(WebCore::CountOperation::callbacks):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::objectStoreID):
(WebCore::DeleteRangeOperation::callbacks):
(WebCore::DeleteRangeOperation::keyRange):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearObjectStoreOperation::create):
(WebCore::ClearObjectStoreOperation::objectStoreID):
(WebCore::ClearObjectStoreOperation::callbacks):
(WebCore::ClearObjectStoreOperation::ClearObjectStoreOperation):

Implement each operation in terms of the appropriate backing store, then perform the callback:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::createObjectStore):
(WebCore::IDBServerConnectionLevelDB::createIndex):
(WebCore::IDBServerConnectionLevelDB::deleteIndex):
(WebCore::IDBServerConnectionLevelDB::get):
(WebCore::IDBServerConnectionLevelDB::put):
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
(WebCore::IDBServerConnectionLevelDB::clearObjectStore):
(WebCore::IDBServerConnectionLevelDB::deleteObjectStore):
(WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:

* WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159353 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agobuild.webkit.org/dashboard should provide a way to focus on a subset of bots
timothy_horton@apple.com [Fri, 15 Nov 2013 20:28:08 +0000 (20:28 +0000)]
build.webkit.org/dashboard should provide a way to focus on a subset of bots
https://bugs.webkit.org/show_bug.cgi?id=122676

Reviewed by Timothy Hatcher.

Add a small 'hide' button next to every platform logo, and a 'show all'
button which only appears when at least one platform is hidden. Hidden
platforms persist using localStorage.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(updateHiddenPlatforms):
(documentReady.unhideButton):
(documentReady.hideButton):
(documentReady):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js: Added.
(Settings.prototype.setObject):
(Settings.prototype.getObject):
(Settings.prototype.addSettingListener):
(Settings.prototype.fireSettingListener):
(Settings.prototype.toggleHiddenPlatform):
(Settings.prototype.clearHiddenPlatforms):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(div.cellButton):
(div.cellButton.hide):
(.hidden):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159352 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago-dealloc callbacks from wrapped Objective-C objects can happen at bad times
mhahnenberg@apple.com [Fri, 15 Nov 2013 19:53:30 +0000 (19:53 +0000)]
-dealloc callbacks from wrapped Objective-C objects can happen at bad times
https://bugs.webkit.org/show_bug.cgi?id=123821

Reviewed by Darin Adler.

Currently with the JSC Obj-C API, JS wrappers for client Obj-C objects retain their associated Obj-C
object. When they are swept, they release their Obj-C objects which can trigger a call to that
object's -dealloc method. These -dealloc methods can then call back into the same VM, which is not
allowed during sweeping or VM shutdown.

We can handle this case by creating our own pool of Obj-C objects to be released when it is safe to do so.
This is accomplished by using DelayedReleaseScope, an RAII-style object that will retain all objects
that are unsafe to release until the end of the DelayedReleaseScope.

* API/APIShims.h:
(JSC::APICallbackShim::APICallbackShim):
(JSC::APICallbackShim::vmForDropAllLocks):
(JSC::APICallbackShim::execForDropAllLocks):
* API/JSAPIWrapperObject.mm:
(JSAPIWrapperObjectHandleOwner::finalize):
* API/ObjCCallbackFunction.mm:
(JSC::ObjCCallbackFunctionImpl::destroy):
(JSC::ObjCCallbackFunction::destroy):
* API/tests/testapi.mm:
(-[TinyDOMNode initWithVirtualMachine:]):
(-[TinyDOMNode dealloc]):
(-[TinyDOMNode appendChild:]):
(-[TinyDOMNode removeChildAtIndex:]):
(-[EvilAllocationObject initWithContext:]):
(-[EvilAllocationObject dealloc]):
(-[EvilAllocationObject doEvilThingsWithContext:]):
* JavaScriptCore.xcodeproj/project.pbxproj:
* heap/DelayedReleaseScope.h: Added.
(JSC::DelayedReleaseScope::DelayedReleaseScope):
(JSC::DelayedReleaseScope::~DelayedReleaseScope):
(JSC::DelayedReleaseScope::releaseSoon):
(JSC::MarkedSpace::releaseSoon):
* heap/Heap.cpp:
(JSC::Heap::collectAllGarbage):
* heap/Heap.h:
(JSC::Heap::releaseSoon):
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::allocateSlowCase):
* heap/MarkedSpace.cpp:
(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::sweep):
* heap/MarkedSpace.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159351 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayout Test fast/dom/Geolocation/notimer-after-unload.html is flaky and crashy on...
timothy_horton@apple.com [Fri, 15 Nov 2013 19:51:26 +0000 (19:51 +0000)]
Layout Test fast/dom/Geolocation/notimer-after-unload.html is flaky and crashy on Mac WK2
https://bugs.webkit.org/show_bug.cgi?id=124425

* platform/mac-wk2/TestExpectations:
Mark as crash/pass/fail, since it does all three :(

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159350 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoModifying RTCIceCandidate object construction to match the spec
commit-queue@webkit.org [Fri, 15 Nov 2013 19:34:16 +0000 (19:34 +0000)]
Modifying RTCIceCandidate object construction to match the spec
https://bugs.webkit.org/show_bug.cgi?id=124369

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-11-15
Reviewed by Eric Carlson.

According to the spec the RTCIceCandidateInit parameter in RTCSessionDescription constructor is optional,
which must not be nullable, and, if passed, must be a valid Dictionary. If the keys are not present, the string
object that stores them in the RTCIceCandidate class, must be null in those cases. Also, if a key is present
and its value is not valid an exception must be raised.

Source/WebCore:

Existing test was updated.

* GNUmakefile.list.am:
* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
* Modules/mediastream/RTCIceCandidate.idl:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSRTCIceCandidateCustom.cpp: Added.
(WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):

LayoutTests:

* fast/mediastream/RTCIceCandidate-expected.txt:
* fast/mediastream/RTCIceCandidate.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159349 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayout Test webgl/1.0.2/conformance/ogles/GL/tan/tan_001_to_006.html fails on Intel
timothy_horton@apple.com [Fri, 15 Nov 2013 19:30:57 +0000 (19:30 +0000)]
Layout Test webgl/1.0.2/conformance/ogles/GL/tan/tan_001_to_006.html fails on Intel
https://bugs.webkit.org/show_bug.cgi?id=124424

* platform/mac/TestExpectations:
Mark as flaky everywhere, since I have no way to mark it as failing on Intel
and passing elsewhere.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159348 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r159337.
commit-queue@webkit.org [Fri, 15 Nov 2013 19:21:23 +0000 (19:21 +0000)]
Unreviewed, rolling out r159337.
http://trac.webkit.org/changeset/159337
https://bugs.webkit.org/show_bug.cgi?id=124423

broke a bunch of fast/regions tests on EFL/GTK (Requested by
philn on #webkit).

Source/WebCore:

* 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:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::createOverflow):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
(WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
(WebCore::RenderFlowThread::checkRegionsWithStyling):
(WebCore::RenderFlowThread::mapFromLocalToFlowThread):
(WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::repaintIncludingDescendants):
* rendering/RenderLayer.h:
* 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):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderOverflow.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::flowThreadPortionOverflowRect):
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::shouldPaintRegionContentsInPhase):
(WebCore::RenderRegion::paintObject):
(WebCore::RenderRegion::hitTestContents):
(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:

* 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: Removed.
* fast/regions/layers/dynamic-layer-removed-with-no-layout-expected.txt: Removed.
* fast/regions/layers/regions-promoted-to-layers-expected.txt: Removed.
* fast/regions/layers/regions-promoted-to-layers-horizontal-bt-expected.txt: Removed.
* fast/regions/layers/regions-promoted-to-layers-vertical-lr-expected.txt: Removed.
* fast/regions/layers/regions-promoted-to-layers-vertical-rl-expected.txt: Removed.
* fast/regions/outline-sides-in-region-expected.html:
* fast/regions/outline-sides-in-region.html:
* fast/regions/overflow-first-and-last-regions-expected.html: Removed.
* fast/regions/overflow-first-and-last-regions-in-container-hidden-expected.html: Removed.
* fast/regions/overflow-first-and-last-regions-in-container-hidden.html: Removed.
* fast/regions/overflow-first-and-last-regions.html: Removed.
* fast/regions/overflow-last-region-expected.html: Added.
* fast/regions/overflow-last-region.html: Added.
* fast/regions/overflow-nested-regions-expected.html: Removed.
* fast/regions/overflow-nested-regions.html: Removed.
* fast/regions/overflow-region-float-expected.html: Removed.
* fast/regions/overflow-region-float.html: Removed.
* fast/regions/overflow-region-inline-expected.html: Removed.
* fast/regions/overflow-region-inline.html: Removed.
* fast/regions/overflow-region-transform-expected.html: Removed.
* fast/regions/overflow-region-transform.html: Removed.
* 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: Removed.
* 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:
* fast/repaint/increasing-region-content-height-expected.txt:
* fast/repaint/increasing-region-content-height.html:
* platform/gtk/fast/regions/text-region-split-vertical-rl-expected.txt: Added.
* platform/mac-wk2/TestExpectations:
* platform/mac/fast/regions/top-overflow-out-of-second-region-expected.png: Added.
* platform/mac/fast/regions/top-overflow-out-of-second-region-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159347 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r158586): callToJavaScript needs to save return PC to Sentinel frame
msaboff@apple.com [Fri, 15 Nov 2013 19:07:01 +0000 (19:07 +0000)]
REGRESSION (r158586): callToJavaScript needs to save return PC to Sentinel frame
https://bugs.webkit.org/show_bug.cgi?id=124420

Reviewed by Filip Pizlo.

Save the return PC into the sentinel frame.

* jit/JITStubsMSVC64.asm:
* jit/JITStubsX86.h:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159346 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoHovering over text using simple line path should not cause switch to line boxes
antti@apple.com [Fri, 15 Nov 2013 18:32:34 +0000 (18:32 +0000)]
Hovering over text using simple line path should not cause switch to line boxes
https://bugs.webkit.org/show_bug.cgi?id=124418

Reviewed by Anders Carlsson.

Source/WebCore:

Test: fast/text/simple-lines-hover.html

* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):

    Collect quads and rects directly from simple lines without requiring the line box switch.

* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectTextAbsoluteRects):
(WebCore::SimpleLineLayout::collectTextAbsoluteQuads):

    Add these.

* rendering/SimpleLineLayoutFunctions.h:
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::start):
(WebCore::SimpleLineLayout::RunResolver::Run::end):

    For future use.

LayoutTests:

* fast/text/simple-lines-hover-expected.html: Added.
* fast/text/simple-lines-hover.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159345 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[CSS Shapes][CSS Regions] Simplify shape-inside-on-multiple-regions-with-negative...
zoltan@webkit.org [Fri, 15 Nov 2013 18:06:11 +0000 (18:06 +0000)]
[CSS Shapes][CSS Regions] Simplify shape-inside-on-multiple-regions-with-negative-shape-top.html
https://bugs.webkit.org/show_bug.cgi?id=123808

Reviewed by Mihnea Ovidenie.

Use a rectangle instead of a complex polygon in the test.

* fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top-expected.html:
* fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159344 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMediaTime addition and subtraction operators have errors when the rhs is infinite.
jer.noble@apple.com [Fri, 15 Nov 2013 18:03:47 +0000 (18:03 +0000)]
MediaTime addition and subtraction operators have errors when the rhs is infinite.
https://bugs.webkit.org/show_bug.cgi?id=124413

Reviewed by Eric Carlson.

Source/WTF:

Correctly account for infinities that can occur on the right-hand side of addition or
subtraction operators.

* wtf/MediaTime.cpp:
(WTF::MediaTime::operator+):
(WTF::MediaTime::operator-):

Tools:

Add a test for operator+ and operator- where an infinite value appears
on the right-hand side:
* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):

Add a LLDB summary provider for MediaTime which displays the rational
time as well as the value in seconds:
* lldb/lldb_webkit.py:
(__lldb_init_module):
(WTFMediaTime_SummaryProvider):
(WTFHashTableProvider.has_children):
(WTFMediaTimeProvider):
(WTFMediaTimeProvider.__init__):
(WTFMediaTimeProvider.timeValue):
(WTFMediaTimeProvider.timeScale):
(WTFMediaTimeProvider.isInvalid):
(WTFMediaTimeProvider.isPositiveInfinity):
(WTFMediaTimeProvider.isNegativeInfinity):
(WTFMediaTimeProvider.isIndefinite):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159343 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake it possible to select revision numbers on build.webkit.org/dashboard
timothy_horton@apple.com [Fri, 15 Nov 2013 17:47:10 +0000 (17:47 +0000)]
Make it possible to select revision numbers on build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=124400

Reviewed by Timothy Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype.revisionLinksForIteration):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(.selectable):
Add a child span to the trac link, which has '-webkit-user-select: all' on it.
This way, a Dashboard user can highlight revision numbers for easy copying,
and doesn't even have to be precise about the selection.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159342 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Fri, 15 Nov 2013 17:44:11 +0000 (17:44 +0000)]
Unreviewed EFL gardening

Add failure test expectations for failing tests.

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159341 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoresults.html should have a link to historical results for a test/all failing tests
timothy_horton@apple.com [Fri, 15 Nov 2013 17:42:14 +0000 (17:42 +0000)]
results.html should have a link to historical results for a test/all failing tests
https://bugs.webkit.org/show_bug.cgi?id=124402

Reviewed by Simon Fraser.

* fast/harness/results.html:
Add a new rightmost column, 'history'.
Clicking on the column header will open the flakiness dashboard
for the entire set of failing tests; clicking on the link
in a particular test's row will open it just for that single test.

* fast/harness/resources/results-test.js:
Update the harness test to expect the new number of columns.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159340 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdjust and add retina versions of EFL and GTK build.webkit.org/dashboard icons
timothy_horton@apple.com [Fri, 15 Nov 2013 17:32:14 +0000 (17:32 +0000)]
Adjust and add retina versions of EFL and GTK build.webkit.org/dashboard icons
https://bugs.webkit.org/show_bug.cgi?id=124399

Reviewed by Gustavo Noronha Silva.

Add new EFL and GTK icons (derived from Wikipedia's SVGs) to make new 1x and 2x icons,
with the icons adjusted to have solid backgrounds, to not be squished, and to not
intersect the ring, similar to the Mac icons.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL.png:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL@2x.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/GTK.png:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/GTK@2x.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
(documentReady.hideButton):
(documentReady):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(table.queue-grid tr.platform.linux-gtk img.logo):
(table.queue-grid tr.platform.linux-efl img.logo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159339 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFixed incorrectly placed NETWORK_PROCESS guard in NetworkConnectionToWebProcess.cpp
commit-queue@webkit.org [Fri, 15 Nov 2013 16:15:34 +0000 (16:15 +0000)]
Fixed incorrectly placed NETWORK_PROCESS guard in NetworkConnectionToWebProcess.cpp
https://bugs.webkit.org/show_bug.cgi?id=124398

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-11-15
Reviewed by Brady Eidson.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159338 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[CSS Regions] Implement visual overflow for first & last regions
stavila@adobe.com [Fri, 15 Nov 2013 15:34:21 +0000 (15:34 +0000)]
[CSS Regions] Implement visual overflow for first & last regions
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/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: https://svn.webkit.org/repository/webkit/trunk@159337 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Fri, 15 Nov 2013 15:31:47 +0000 (15:31 +0000)]
Unreviewed EFL gardening

Update TestExpectations files with failing tests.

* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159336 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GStreamer] Add support for Media Source API
commit-queue@webkit.org [Fri, 15 Nov 2013 15:05:48 +0000 (15:05 +0000)]
[GStreamer] Add support for Media Source API
https://bugs.webkit.org/show_bug.cgi?id=99065

Source/WebCore:

The patch integrate a Media Source player for the GStreamer backend. The implementented architecture is:
- MediaPlayerPrivateGStreamer engine is modified to support Media Source URIs (change blob:// to mediasourceblob://), in addition to the existing support for web (http/https/blob) URIs
- Similar to the existing WebKitWebSrc gstreamer element that handles web URIs, a new gstreamer element named WebKitMediaSrc is implemented to handle Media Source URIs
- WebKitMediaSrc registers its URI protocol handler, allowing uridecodebin to dynamically create the appropriate source element.
- The WebKitMediaSrc element creates a bin with 2 appsrc: One for Audio and One for Video. Pads are dynamically linked at the reception of first video and audio buffers.

Patch by Stephane Jadaud <sjadaud@sii.fr> on 2013-11-15
Reviewed by Philippe Normand.

Tests: Activate http/tests/media/media-source and media/media-source tests

* GNUmakefile.am:
* GNUmakefile.list.am:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp: Added.
(WebCore::MediaSourceGStreamer::open):
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::~MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::addSourceBuffer):
(WebCore::MediaSourceGStreamer::setDuration):
(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
* platform/graphics/gstreamer/MediaSourceGStreamer.h: Added.
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Added.
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h: Added.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Added.
(webKitMediaSrcAddSrc):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaVideoSrcStop):
(webKitMediaAudioSrcStop):
(webKitMediaVideoSrcStart):
(webKitMediaAudioSrcStart):
(webKitMediaSrcChangeState):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(webKitMediaVideoSrcNeedDataMainCb):
(webKitMediaAudioSrcNeedDataMainCb):
(webKitMediaVideoSrcNeedDataCb):
(webKitMediaAudioSrcNeedDataCb):
(webKitMediaVideoSrcEnoughDataMainCb):
(webKitMediaAudioSrcEnoughDataMainCb):
(webKitMediaVideoSrcEnoughDataCb):
(webKitMediaAudioSrcEnoughDataCb):
(webKitMediaVideoSrcSeekMainCb):
(webKitMediaAudioSrcSeekMainCb):
(webKitMediaVideoSrcSeekDataCb):
(webKitMediaAudioSrcSeekDataCb):
(webKitMediaSrcSetMediaPlayer):
(webKitMediaSrcSetPlayBin):
(MediaSourceClientGstreamer::MediaSourceClientGstreamer):
(MediaSourceClientGstreamer::~MediaSourceClientGstreamer):
(MediaSourceClientGstreamer::didReceiveDuration):
(MediaSourceClientGstreamer::didReceiveData):
(MediaSourceClientGstreamer::didFinishLoading):
(MediaSourceClientGstreamer::didFail):
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h: Added.

Tools:

Patch by Stephane Jadaud <sjadaud@sii.fr> on 2013-11-15
Reviewed by Philippe Normand.

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Patch by Stephane Jadaud <sjadaud@sii.fr> on 2013-11-15
Reviewed by Philippe Normand.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159335 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL] Leak in ewk_frame_certificate_status_get()
berto@igalia.com [Fri, 15 Nov 2013 14:08:00 +0000 (14:08 +0000)]
[EFL] Leak in ewk_frame_certificate_status_get()
https://bugs.webkit.org/show_bug.cgi?id=124401

Reviewed by Carlos Garcia Campos.

The SoupMessage object is being leaked. In in this case that
object is not even necessary since ResourceRequest already
provides a way to get the soup flags directly.

* ewk/ewk_frame.cpp:
(ewk_frame_certificate_status_get):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159334 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCleanup the build from unused parameters in WebKit2
ossy@webkit.org [Fri, 15 Nov 2013 13:09:28 +0000 (13:09 +0000)]
Cleanup the build from unused parameters in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=124201

Patch by Tibor Meszaros <mtibor@inf.u-szeged.hu> on 2013-11-15
Reviewed by Darin Adler.

* Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::getPluginModuleInformation):
* UIProcess/API/C/WKBatteryManager.cpp:
(WKBatteryManagerSetProvider):
(WKBatteryManagerProviderDidChangeBatteryStatus):
(WKBatteryManagerProviderUpdateBatteryStatus):
* UIProcess/API/C/WKBatteryStatus.cpp:
(WKBatteryStatusCreate):
* UIProcess/API/C/WKColorPickerResultListener.cpp:
(WKColorPickerResultListenerSetColor):
* UIProcess/API/C/WKContext.cpp:
(WKContextGetBatteryManager):
(WKContextGetDatabaseManager):
(WKContextGetNetworkInfoManager):
* UIProcess/API/C/WKDatabaseManager.cpp:
(WKDatabaseManagerSetClient):
(WKDatabaseManagerGetDatabasesByOrigin):
(WKDatabaseManagerGetDatabaseOrigins):
(WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
(WKDatabaseManagerDeleteDatabasesForOrigin):
(WKDatabaseManagerDeleteAllDatabases):
(WKDatabaseManagerSetQuotaForOrigin):
* UIProcess/API/C/WKNetworkInfo.cpp:
(WKNetworkInfoCreate):
* UIProcess/API/C/WKNetworkInfoManager.cpp:
(WKNetworkInfoManagerSetProvider):
(WKNetworkInfoManagerProviderDidChangeNetworkInformation):
* UIProcess/API/C/WKOpenPanelParameters.cpp:
(WKOpenPanelParametersCopyCapture):
* UIProcess/API/C/WKVibration.cpp:
(WKVibrationSetProvider):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::createNewPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setVisibilityState):
(WebKit::WebPageProxy::unavailablePluginButtonClicked):
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeContentsPosition):
(WebKit::ViewClientEfl::didRenderFrame):
(WebKit::ViewClientEfl::didChangeViewportAttributes):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setDatabaseQuota):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159333 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: New color picker
graouts@apple.com [Fri, 15 Nov 2013 11:03:03 +0000 (11:03 +0000)]
Web Inspector: New color picker
https://bugs.webkit.org/show_bug.cgi?id=124354

Reviewed by Timothy Hatcher.

Beginning of a new color picker. The focus of this new picker is to let you pick from
a color wheel as the primary mean of color picking, with additional slider controls for
the brightness and the opacity, better matching the default OS X color picker. This is the
basis for a color picker that will evolve to support the following:

- editable CSS value label (http://webkit.org/b/124356)
- picking a color anywhere on screen (http://webkit.org/b/124357)
- swatches based on other colors in page (http://webkit.org/b/124358)

Note also that the color wheel has not been tested on Retina displays
(see http://webkit.org/b/124355).

* UserInterface/CSSColorPicker.css: Removed.
* UserInterface/CSSColorPicker.js: Removed.
Previous color picker, now removed in favor of the new ColorPicker class.

* UserInterface/CSSStyleDeclarationTextEditor.js:
Adopt new class name for the color picker, add a little padding to the popover
target frame and set the base color after the picker has been presented.

* UserInterface/Color.js:
(WebInspector.Color.prototype._hslToRGB):
Simplified math.

(WebInspector.Color.rgb2hsv):
(WebInspector.Color.hsv2rgb):
New utilities to deal with HSV colors used in the ColorWheel.

* UserInterface/ColorPicker.css: Added.

* UserInterface/ColorPicker.js: Added.
(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.get element):
(WebInspector.ColorPicker.prototype.set brightness):
(WebInspector.ColorPicker.prototype.set opacity):
(WebInspector.ColorPicker.prototype.get color):

(WebInspector.ColorPicker.prototype.set color):
We set the _dontUpdateColor flag here such that we don't attempt to
notify about a color change at this point in case the selected color
is too saturated to be represented accurately on the color wheel and
we would end up changing the color by virtue of presenting the popover.

(WebInspector.ColorPicker.prototype.colorWheelColorDidChange):
(WebInspector.ColorPicker.prototype.sliderValueDidChange):
(WebInspector.ColorPicker.prototype._updateColor):
(WebInspector.ColorPicker.prototype._updateSliders):

* UserInterface/ColorWheel.css: Added.

* UserInterface/ColorWheel.js: Added.
The ColorWheel makes use of three different <canvas> elements to draw itself.
The "raw" canvas is used to draw the raw, un-tinted color wheel with poor
aliasing. The "raw" canvas is only drawn when the dimension is changed.
The "tinted" canvas is used to draw the "raw" canvas with a black overlay
based on the brightness set on the wheel. The "final" canvas, the only <canvas>
element attached to the DOM, is used to draw the "tinted" canvas into a circle
clip of a slightly narrower radius so that the drawn image is visually more pleasing
and can be displayed above virtually any background color.

We use color math to generate the color wheel, courtesy of Dean Jackson, and also to
figure out where to position the crosshair for the provided base color as well as
the opposite operation where we get the color under the mouse pointer.

The color wheel fires a single delegate method call colorWheelColorDidChange(colorWheel),
the colors themselves being retrieved via the public properties tintedColor and rawColor.

(WebInspector.ColorWheel):
(WebInspector.ColorWheel.prototype.set dimension):
(WebInspector.ColorWheel.prototype.get element):
(WebInspector.ColorWheel.prototype.get brightness):
(WebInspector.ColorWheel.prototype.set brightness):
(WebInspector.ColorWheel.prototype.get tintedColor):
(WebInspector.ColorWheel.prototype.set tintedColor):
(WebInspector.ColorWheel.prototype.get rawColor):
(WebInspector.ColorWheel.prototype.handleEvent):
(WebInspector.ColorWheel.prototype._handleMousedown):
(WebInspector.ColorWheel.prototype._handleMousemove):
(WebInspector.ColorWheel.prototype._handleMouseup):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint):
(WebInspector.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference):
(WebInspector.ColorWheel.prototype._updateColorForMouseEvent):
(WebInspector.ColorWheel.prototype._setCrosshairPosition):
(WebInspector.ColorWheel.prototype._tintedColorToPointAndBrightness):
(WebInspector.ColorWheel.prototype._drawRawCanvas):
(WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
(WebInspector.ColorWheel.prototype._drawTintedCanvas):
(WebInspector.ColorWheel.prototype._draw):

* UserInterface/Images/SliderThumb.png: Added.
* UserInterface/Images/SliderThumb@2x.png: Added.
* UserInterface/Images/SliderThumbPressed.png: Added.
* UserInterface/Images/SliderThumbPressed@2x.png: Added.
Supporting artwork for the new Slider class.

* UserInterface/Main.html:
Remove the previous color picker class and add the new one, as well as the new Slider class.

* UserInterface/Slider.css: Added.

* UserInterface/Slider.js: Added.
New slider to match the look of the sliders used in the native OS X color picker. The most
interesting feature of these sliders is that they can be transformed using CSS in any way
and will still operate correctly due to always converting the mouse coordinates in the page
coordinate system to the coordinate system local to the backing element. For instance, the
color picker uses two sliders transformed to be displayed vertically.

As it stands these slides only support values between 0 and 1 and fire a single delegate
method call sliderValueDidChange(slider, newValue).

(WebInspector.Slider):
(WebInspector.Slider.prototype.get element):
(WebInspector.Slider.prototype.get value):
(WebInspector.Slider.prototype.set value):
(WebInspector.Slider.prototype.handleEvent):
(WebInspector.Slider.prototype._handleMousedown):
(WebInspector.Slider.prototype._handleMousemove):
(WebInspector.Slider.prototype._handleMouseup):
(WebInspector.Slider.prototype._localPointForEvent):
(WebInspector.Slider.prototype.get _maxX):

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Update file names for the new color picker.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159332 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Fri, 15 Nov 2013 10:35:35 +0000 (10:35 +0000)]
Unreviewed EFL gardening

Mark flaky and incorrectly passing tests.

* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/ietestcenter/css3/bordersbackgrounds/background-repeat-space-padding-box-expected.txt: Removed wrong test expectation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159331 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK] Bumping GStreamer version to 1.2.1 for the dependencies
calvaris@igalia.com [Fri, 15 Nov 2013 10:23:43 +0000 (10:23 +0000)]
[GTK] Bumping GStreamer version to 1.2.1 for the dependencies
https://bugs.webkit.org/show_bug.cgi?id=124360

Reviewed by Philippe Normand.

Tools:

* gtk/jhbuild.modules: Bumped GStreamer version up to 1.2.1

LayoutTests:

* platform/gtk/TestExpectations: Flagged
media/video-canvas-drawing-output.html

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159330 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL] Layout tests with international text properties need to be rebaselined.
commit-queue@webkit.org [Fri, 15 Nov 2013 09:21:52 +0000 (09:21 +0000)]
[EFL] Layout tests with international text properties need to be rebaselined.
https://bugs.webkit.org/show_bug.cgi?id=124389

Unreviewed, EFL rabaseline.

EFL international text rebaselined after r147668.
Move some expectation files to efl common place because those files in wk1 are
in exact accordance with files in wk2, and then delete the files in wk1 and wk2.

Patch by Sun-woo Nam <sunny.nam@samsung.com> on 2013-11-15

* platform/efl-wk1/fast/text/international/003-expected.txt: Removed.
* platform/efl-wk1/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
* platform/efl-wk2/TestExpectations:
* platform/efl/fast/text/international/002-expected.txt:
* platform/efl/fast/text/international/003-expected.txt:
Renamed from LayoutTests/platform/efl-wk2/fast/text/international/003-expected.txt.
* platform/efl/fast/text/international/bidi-layout-across-linebreak-expected.txt:
Renamed from LayoutTests/platform/efl-wk2/fast/text/international/bidi-layout-across-linebreak-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159329 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] Improve support for command line builds of 64-bit JSC
bfulgham@apple.com [Fri, 15 Nov 2013 04:58:12 +0000 (04:58 +0000)]
[Win] Improve support for command line builds of 64-bit JSC
https://bugs.webkit.org/show_bug.cgi?id=124380

Patch by Brent Fulgham <bfulgham@apple.com> on 2013-11-14
Reviewed by David Kilzer.

* Scripts/webkitdirs.pm:
(argumentsForConfiguration): Recognize all flavors of Debug and Release (i.e., 'Debug',
'Debug|Win32', 'Debug|x64') when passing arguments to child processes.
(determinePassedConfiguration): Don't suffix configuration with "|Win32" or "|x64". That's
what the "$configurationForVisualStudio" value is for.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159328 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUpdate WebCrypto tests
ap@apple.com [Fri, 15 Nov 2013 02:50:37 +0000 (02:50 +0000)]
Update WebCrypto tests
https://bugs.webkit.org/show_bug.cgi?id=124388

Reviewed by Anders Carlsson.

Updated tests for newer common.js. Changed some tests from just dumping results
to comparing them to known expected ones. Fixed a syntax error in
aes-cbc-invalid-length.html, so it now actually runs.

* crypto/subtle/resources/common.js: Update to a new version from Blink, because
it's much nicer than the old one, and it's good to be compatible at test level.
Moved crypto.subtle definition from webkitSubtle here to avoid repeating it in all
tests. Added a quick and dirty Promise.all implementation.

* crypto/subtle/aes-cbc-192-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-192-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-256-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-256-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html:
* crypto/subtle/aes-cbc-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-generate-key.html:
* crypto/subtle/aes-cbc-import-jwk-expected.txt:
* crypto/subtle/aes-cbc-import-jwk.html:
* crypto/subtle/aes-cbc-invalid-length-expected.txt:
* crypto/subtle/aes-cbc-invalid-length.html:
* crypto/subtle/aes-cbc-wrong-key-class.html:
* crypto/subtle/aes-export-key-expected.txt:
* crypto/subtle/aes-export-key.html:
* crypto/subtle/argument-conversion-expected.txt:
* crypto/subtle/argument-conversion.html:
* crypto/subtle/hmac-export-key-expected.txt:
* crypto/subtle/hmac-export-key.html:
* crypto/subtle/hmac-generate-key.html:
* crypto/subtle/hmac-import-jwk-expected.txt:
* crypto/subtle/hmac-import-jwk.html:
* crypto/subtle/hmac-sign-verify-empty-key-expected.txt:
* crypto/subtle/hmac-sign-verify-empty-key.html:
* crypto/subtle/hmac-sign-verify-expected.txt:
* crypto/subtle/hmac-sign-verify.html:
* crypto/subtle/import-jwk-expected.txt:
* crypto/subtle/import-jwk.html:
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html:
* crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-expected.txt:
* crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html:
* crypto/subtle/rsassa-pkcs1-v1_5-sign-verify-expected.txt:
* 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: https://svn.webkit.org/repository/webkit/trunk@159327 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoXMLSerializer escapes < > & correctly inside <script> and <style> tags.
commit-queue@webkit.org [Fri, 15 Nov 2013 02:27:59 +0000 (02:27 +0000)]
XMLSerializer escapes < > & correctly inside <script> and <style> tags.
https://bugs.webkit.org/show_bug.cgi?id=123914

Patch by Victor Costan <costan@gmail.com> on 2013-11-14
Reviewed by Darin Adler.

Source/WebCore:

Test: fast/dom/XMLSerializer-entities.html

* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces): vim removed some whitespace.
(WebCore::MarkupAccumulator::entityMaskForText): Fixed the returned value for <script> etc in XML.

LayoutTests:

* fast/dom/SelectorAPI/resig-SelectorsAPI-test-expected.txt: fix incorrect expectations.
* fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml: use CDATA consistently.
* fast/dom/XMLSerializer-entities-expected.txt: Added.
* fast/dom/XMLSerializer-entities.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159326 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoASSERTION FAILED: rangesIntersect(m_renderer.pixelSnappedLogicalTopForFloat(floatingO...
bjonesbe@adobe.com [Fri, 15 Nov 2013 01:34:50 +0000 (01:34 +0000)]
ASSERTION FAILED: rangesIntersect(m_renderer.pixelSnappedLogicalTopForFloat(floatingObject), m_renderer.pixelSnappedLogicalBottomForFloat(floatingObject), m_lineTop, m_lineBottom) ../../Source/WebCore/rendering/FloatingObjects.cpp(463)
https://bugs.webkit.org/show_bug.cgi?id=124375

Reviewed by Alexandru Chiculita.

When moving the placed floats tree over to LayoutUnit, I forgot to
update these asserts, which causes issues on ports with subpixel
layout enabled.

No new tests, no behavior change.

* rendering/FloatingObjects.cpp:
(WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
(WebCore::::collectIfNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159324 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoClean up sequence handling in Blob constructor
commit-queue@webkit.org [Fri, 15 Nov 2013 00:55:45 +0000 (00:55 +0000)]
Clean up sequence handling in Blob constructor
https://bugs.webkit.org/show_bug.cgi?id=124343

Patch by Victor Costan <costan@gmail.com> on 2013-11-14
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Added test case to LayoutTests/fast/files/blob-constructor.html

* bindings/js/JSBlobCustom.cpp:
(WebCore::JSBlobConstructor::constructJSBlob):
    Handle exceptions in sequences, eliminate double type-checking for
    ArrayBuffer, ArrayBufferView and Blob parts.

LayoutTests:

* fast/files/blob-constructor-expected.txt:
* fast/files/script-tests/blob-constructor.js:
    Add test with sequence that throws an error on property access.
(get Object):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159323 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Cocoa] WKBrowsingContextController's policy client implementation over-releases...
mitz@apple.com [Fri, 15 Nov 2013 00:28:38 +0000 (00:28 +0000)]
[Cocoa] WKBrowsingContextController's policy client implementation over-releases WKURLRequests and WKURLResponses
https://bugs.webkit.org/show_bug.cgi?id=124386

Reviewed by Sam Weinig.

* UIProcess/API/mac/WKBrowsingContextController.mm:
(setUpPagePolicyClient): Changed to release the Cocoa objects we copy out of the WK objects
passed into the client callbacks, but not the WK objects themselves, which are not owned by
the callbacks.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159322 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake CLoop easier to build, and make it work
oliver@apple.com [Fri, 15 Nov 2013 00:12:51 +0000 (00:12 +0000)]
Make CLoop easier to build, and make it work
https://bugs.webkit.org/show_bug.cgi?id=124359

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Add --cloop to build-jsc, build-webkit and friends.

Also make CLoop build and work again - This meant adding a
couple of missing ENABLE(DFG_JIT) blocks, and fixing a few
other references.

* Configurations/FeatureDefines.xcconfig:
* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/DFGExitProfile.cpp:
* dfg/DFGCapabilities.cpp:
* dfg/DFGCompilationKey.cpp:
* dfg/DFGCompilationMode.cpp:
* jit/JITExceptions.cpp:
(JSC::genericUnwind):

Source/WebCore:

Add cloop configuration info to WebCore FeatureDefines
so that it's consistent with JSC

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Make building with the CLoop forcibly enabled manually
disable the JITs

* wtf/Platform.h:

Tools:

Add --cloop support to forcibly enable to CLoop build

* Scripts/build-jsc:
* Scripts/build-webkit:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159321 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoReplace calls to deprecated CFPropertyList functions in WebKit2
aestes@apple.com [Fri, 15 Nov 2013 00:11:33 +0000 (00:11 +0000)]
Replace calls to deprecated CFPropertyList functions in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=124384

Reviewed by Anders Carlsson.

* UIProcess/cf/WebPageProxyCF.cpp:
(WebKit::WebPageProxy::sessionStateData): Replaced CFPropertyListWriteToStream() with CFPropertyListWrite().
(WebKit::WebPageProxy::restoreFromSessionStateData): Replaced CFPropertyListCreateFromXMLData() with CFPropertyListCreateWithData().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159319 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoChange Fail->Failure in some recent expectations.
timothy_horton@apple.com [Thu, 14 Nov 2013 23:27:59 +0000 (23:27 +0000)]
Change Fail->Failure in some recent expectations.

Suddenly, everything is clear.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159317 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd webkit slave.
lforschler@apple.com [Thu, 14 Nov 2013 23:26:33 +0000 (23:26 +0000)]
Add webkit slave.

Unreviewed.

* BuildSlaveSupport/build.webkit.org-config/config.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159316 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is slow, freque...
timothy_horton@apple.com [Thu, 14 Nov 2013 23:23:35 +0000 (23:23 +0000)]
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 flaky on Mountain Lion Release bot.
Marking as slow seems to have no effect on the notifyDone timeout, just the outer timeouts.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159315 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Cairo] Avoid extra copy when drawing images
commit-queue@webkit.org [Thu, 14 Nov 2013 23:15:24 +0000 (23:15 +0000)]
[Cairo] Avoid extra copy when drawing images
https://bugs.webkit.org/show_bug.cgi?id=124209

Patch by Aloisio Almeida Jr <aloisio.almeida@openbossa.org> on 2013-11-14
Reviewed by Martin Robinson.

To solve the bug #58309 a cairo subsurface is being used to limit the
source image boundaries.
In many cases, when a cairo subsurface is used for drawing an image,
it occurs an image copy, causing performance penalty. In the case of
the function PlatformContextCairo::drawSurfaceToContext, the image
copy always happens.
So, we should use the subsurface only when it's really necessary.
In cases where we're drawing the whole image, the subsurface is
unnecessary.

The proposed patch avoid the use of subsurfaces when sampling the whole
image.

No new tests. It's an enhancement. Already covered by existing tests.

* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159314 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agobuild.webkit.org/dashboard can’t open different results in two new tabs
timothy_horton@apple.com [Thu, 14 Nov 2013 23:03:32 +0000 (23:03 +0000)]
build.webkit.org/dashboard can’t open different results in two new tabs
https://bugs.webkit.org/show_bug.cgi?id=124383

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype.revisionLinksForIteration):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/StatusLineView.js:
(StatusLineView.prototype._clicked):
Use _blank (which is effectively open-in-new-tab, in Safari) instead of _new (which isn't a
real pseudo-target and instead acts as a named target and will end up causing all link clicks
to open in the same secondary tab).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159313 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agogenerate-message-receiver.py can't handle nested #ifs
commit-queue@webkit.org [Thu, 14 Nov 2013 22:20:04 +0000 (22:20 +0000)]
generate-message-receiver.py can't handle nested #ifs
https://bugs.webkit.org/show_bug.cgi?id=121877

Patch by Gergo Balogh <geryxyz@inf.u-szeged.hu> on 2013-11-14
Reviewed by Darin Adler.

parser.py was modifieded to collect and combine conditions of nested #ifs.
messages_unittest.py extended to check these modifications.

* Scripts/webkit2/messages_unittest.py:
(LoadSomething):
(std):
(AddEvent):
(LoadSomethingElse):
* Scripts/webkit2/parser.py:
(combine_condition):
(bracket_if_needed):
(parse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159312 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoReimplement getDayBoundaries using NSCalendar on 10.9
andersca@apple.com [Thu, 14 Nov 2013 22:02:47 +0000 (22:02 +0000)]
Reimplement getDayBoundaries using NSCalendar on 10.9
https://bugs.webkit.org/show_bug.cgi?id=124379

Reviewed by Dan Bernstein.

* History/WebHistory.mm:
(getDayBoundaries):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159311 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement raw format for WebCrypto key export
ap@apple.com [Thu, 14 Nov 2013 21:44:25 +0000 (21:44 +0000)]
Implement raw format for WebCrypto key export
https://bugs.webkit.org/show_bug.cgi?id=124376

Reviewed by Anders Carlsson.

Source/WebCore:

Tests: crypto/subtle/aes-export-key.html
       crypto/subtle/hmac-export-key.html

A CryptoKey just exports its native CryptoKeyData, which will also work nicely for
JWK format soon. For spki and pkcs8, we'll need to figure out the best way to
utilize platform library support for ASN.1, but we are not there yet.

* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::exportKey):
* crypto/CryptoKey.h:
* crypto/SubtleCrypto.idl:
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::exportData):
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::exportData):
* crypto/keys/CryptoKeyHMAC.h:

* crypto/keys/CryptoKeyRSA.h:
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::exportData):
Added a dummy implementation for RSA.

LayoutTests:

* crypto/subtle/aes-export-key-expected.txt: Added.
* crypto/subtle/aes-export-key.html: Added.
* crypto/subtle/hmac-export-key-expected.txt: Added.
* crypto/subtle/hmac-export-key.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159310 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Cocoa] WKAction keys are not exported
mitz@apple.com [Thu, 14 Nov 2013 21:40:53 +0000 (21:40 +0000)]
[Cocoa] WKAction keys are not exported
https://bugs.webkit.org/show_bug.cgi?id=124378

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKBrowsingContextController.mm: Made the keys constant pointers.
* UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: Exported the keys.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159309 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Simply generated domain dispatch methods for domains with few commands
commit-queue@webkit.org [Thu, 14 Nov 2013 21:30:48 +0000 (21:30 +0000)]
Web Inspector: Simply generated domain dispatch methods for domains with few commands
https://bugs.webkit.org/show_bug.cgi?id=124374

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-11-14
Reviewed by Timothy Hatcher.

* inspector/CodeGeneratorInspector.py:
(Generator.go):
(Generator.process_command):
* inspector/CodeGeneratorInspectorStrings.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159308 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[CSS Shapes] Accept the new <box> value for shape-outside
betravis@adobe.com [Thu, 14 Nov 2013 21:26:53 +0000 (21:26 +0000)]
[CSS Shapes] Accept the new <box> value for shape-outside
https://bugs.webkit.org/show_bug.cgi?id=124227

Reviewed by David Hyatt.

Source/WebCore:

The shape-outside property can now be set to the box values [margin/border/padding/content]-box.
This patch adds the parsing code required to accept the new values, and the layout code
to create a rectangle shape that has the size and position of the appropriate box.

Tests: fast/shapes/shape-outside-floats/shape-outside-boxes-001.html
       fast/shapes/shape-outside-floats/shape-outside-boxes-002.html
       fast/shapes/shape-outside-floats/shape-outside-boxes-003.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Output the new box values.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Accept the new box values.
* css/CSSValueKeywords.in: Add margin-box value.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::applyValue): Accept the new box values.
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::borderLogicalWidth): Added new utility methods to help
with box sizing.
(WebCore::RenderBoxModelObject::borderLogicalHeight): Ditto.
(WebCore::RenderBoxModelObject::paddingLogicalWidth): Ditto.
(WebCore::RenderBoxModelObject::paddingLogicalHeight): Ditto.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): You can create a shape from a box's dimensions, rather
than always using a BasicShape or RasterShape value.
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape): Create the appropriate shape based on the box values.
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize): Adjust for the box size when using a box value.
(WebCore::ShapeInfo::logicalTopOffset): Ditto.
(WebCore::ShapeInfo::logicalLeftOffset): Ditto.
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor): Enable for the box values.
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::isEnabledFor): Disable for shape-inside.
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createBoxValue): Create the appropriate shape value for a box.
(WebCore::ShapeValue::box): Return the box value for this ShapeValue.
(WebCore::ShapeValue::ShapeValue): Create a ShapeValue from a box value.

LayoutTests:

Test the different box values with different writing modes.

* fast/shapes/parsing/parsing-shape-inside-expected.html: Adding box values as invalid.
* fast/shapes/parsing/parsing-shape-inside.html: Ditto.
* fast/shapes/parsing/parsing-shape-outside-expected.html: Adding box values as valid.
* fast/shapes/parsing/parsing-shape-outside.html: Ditto.
* fast/shapes/shape-outside-floats/shape-outside-boxes-001-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-boxes-001.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-boxes-002-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-boxes-002.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-boxes-003-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-boxes-003.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159307 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFlaky Test: media/video-fast-seek.html
jer.noble@apple.com [Thu, 14 Nov 2013 21:26:06 +0000 (21:26 +0000)]
Flaky Test: media/video-fast-seek.html
https://bugs.webkit.org/show_bug.cgi?id=124298

Reviewed by Eric Carlson.

Don't check for the precise results of currentTime, as MediaTime -> double
rounding will occasionally result in errors.

* media/video-fast-seek-expected.txt:
* media/video-fast-seek.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159306 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoStop using deprecated NSPropertyListSerialization methods
andersca@apple.com [Thu, 14 Nov 2013 21:14:40 +0000 (21:14 +0000)]
Stop using deprecated NSPropertyListSerialization methods
https://bugs.webkit.org/show_bug.cgi?id=124377

Reviewed by Mark Rowe.

* History/WebHistory.mm:
(-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::spawnPluginHost):
(WebKit::NetscapePluginHostManager::instantiatePlugin):
* Plugins/Hosted/NetscapePluginHostProxy.mm:
(WKPCIdentifierInfo):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::NetscapePluginInstanceProxy::marshalValue):
(WebKit::NetscapePluginInstanceProxy::marshalValues):
(WebKit::NetscapePluginInstanceProxy::demarshalValue):
(WebKit::NetscapePluginInstanceProxy::demarshalValues):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::getPropertyNames):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159305 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agofullscreen/anonymous-block-merge-crash.html often times out in WebKit1
timothy_horton@apple.com [Thu, 14 Nov 2013 20:13:39 +0000 (20:13 +0000)]
fullscreen/anonymous-block-merge-crash.html often times out in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=124318

* platform/mac/TestExpectations:
Used the wrong kind of failure for a notifyDone timeout.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159304 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRubber-stamped by Tim Horton.
bdakin@apple.com [Thu, 14 Nov 2013 20:12:25 +0000 (20:12 +0000)]
Rubber-stamped by Tim Horton.

Post-checkin review comment! StickToViewportBounds sounds better and more accurate
than StickToWindowBounds.

* platform/ScrollTypes.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159303 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed build failure; update MediaPlayerPrivateAVFFoundationCF::seekToTime after...
bfulgham@apple.com [Thu, 14 Nov 2013 20:10:36 +0000 (20:10 +0000)]
Unreviewed build failure; update MediaPlayerPrivateAVFFoundationCF::seekToTime after r159208.

After r159208, seekToTime takes tolerance parameters.

Patch by Jer Noble <jer.noble@apple.com> on 2013-11-13

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
(WebCore::AVFWrapper::seekToTime):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159302 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html is slow, freque...
timothy_horton@apple.com [Thu, 14 Nov 2013 20:05:48 +0000 (20:05 +0000)]
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 slow on Mountain Lion Release bot.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159301 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd a new mode where fixed elements don't constrain their positions during a
bdakin@apple.com [Thu, 14 Nov 2013 20:03:59 +0000 (20:03 +0000)]
Add a new mode where fixed elements don't constrain their positions during a
rubber band
https://bugs.webkit.org/show_bug.cgi?id=124260

Reviewed by Tim Horton.

This patch adds a new enum called ScrollBehaviorForFixedElements, which has
two values, StickToDocumentBounds or StickToWindowBounds. StickToDocumentBounds
corresponds to our current behavior, where fixed elements constrain
their positions during a rubber-band so that they stay stuck to the document.
The new mode, StickToWindowBounds, will cause fixed elements to always stay
fixed relative to the window.

scrollOffsetForFixedPosition() now takes a new parameter for the fixed behavior
so that it knows whether or not to constrain the position.
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetForFixedPosition):

Right now, just return StickToDocumentBounds and retain existing behavior.
(WebCore::FrameView::scrollBehaviorForFixedElements):
* page/FrameView.h:

The scrolling thread needs to know about the fixed element scroll behavior,
so this code makes ScrollingStateScrollingNodes keep track of that
information to pass over to the scrolling thread.
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinatorMac::setScrollBehaviorForFixedElementsForNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

Here is the new enum.
* platform/ScrollTypes.h:

Another place where we only want to constrain scroll position if that is the
mode we are in.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159300 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] HMAC sign/verify crashes when key is empty
ap@apple.com [Thu, 14 Nov 2013 19:56:37 +0000 (19:56 +0000)]
[Mac] HMAC sign/verify crashes when key is empty
https://bugs.webkit.org/show_bug.cgi?id=124372

Reviewed by Sam Weinig.

Source/WebCore:

Test: crypto/subtle/hmac-sign-verify-empty-key.html

* crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature): Give it
a non-null pointer then.

LayoutTests:

* crypto/subtle/hmac-sign-verify-empty-key-expected.txt: Added.
* crypto/subtle/hmac-sign-verify-empty-key.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159299 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r159276): Fix lots of crashes for arm_traditional architecture.
msaboff@apple.com [Thu, 14 Nov 2013 19:43:08 +0000 (19:43 +0000)]
REGRESSION (r159276): Fix lots of crashes for arm_traditional architecture.
https://bugs.webkit.org/show_bug.cgi?id=124365

Reviewed by Oliver Hunt.

Crashes were caused by a mixup between regular registers and temporary registers in ARM_EXTRA_GPRS.

* llint/LowLevelInterpreter32_64.asm: Warning, t3 != a3. It's safer to use an implementation using aX
registers like the MIPS one for cCallX macros.
* offlineasm/arm.rb: Rearrange ARM_EXTRA_GPRS according to the new register distribution in LLINT.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159298 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove duplicate entry.
andersca@apple.com [Thu, 14 Nov 2013 19:16:31 +0000 (19:16 +0000)]
Remove duplicate entry.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159297 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement RSASSA-PKCS1-v1_5 sign/verify
ap@apple.com [Thu, 14 Nov 2013 19:00:58 +0000 (19:00 +0000)]
Implement RSASSA-PKCS1-v1_5 sign/verify
https://bugs.webkit.org/show_bug.cgi?id=124335

Build fix.

* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAX: Calling NSAccessibilityColumnsAttribute and NSAccessibilityRowsAttribute simply...
samuel_white@apple.com [Thu, 14 Nov 2013 18:57:11 +0000 (18:57 +0000)]
AX: Calling NSAccessibilityColumnsAttribute and NSAccessibilityRowsAttribute simply to get column/row count can be very expensive.
https://bugs.webkit.org/show_bug.cgi?id=124293

Reviewed by Chris Fleizach.

Source/WebCore:

Added ability to get accessibility table column or row count without fetching all columns or rows.

Test: platform/mac/accessibility/table-column-and-row-count.html

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

Added test to ensure NSAccessibilityColumnsAttribute and NSAccessibilityRowsAttribute
behave as expected. Also updated existing table tests to reflect this additional API.

* platform/mac/accessibility/table-column-and-row-count-expected.txt: Added.
* platform/mac/accessibility/table-column-and-row-count.html: Added.
* platform/mac/accessibility/table-detection-expected.txt:
* platform/mac/accessibility/table-with-rules-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159295 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoVersioning.
lforschler@apple.com [Thu, 14 Nov 2013 18:51:45 +0000 (18:51 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159294 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoImplement RSASSA-PKCS1-v1_5 sign/verify
ap@apple.com [Thu, 14 Nov 2013 18:26:36 +0000 (18:26 +0000)]
Implement RSASSA-PKCS1-v1_5 sign/verify
https://bugs.webkit.org/show_bug.cgi?id=124335

Reviewed by Sam Weinig.

Source/WebCore:

Test: crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html

* WebCore.xcodeproj/project.pbxproj: Added new files, removed Mac SHA algorithm files.

* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::getCommonCryptoDigestAlgorithm):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
Implemented. These take two steps, first a digest is computed, and then it's signed.

* crypto/CryptoDigest.h: Added.
* crypto/mac/CryptoDigestMac.cpp: Added.
(WebCore::CryptoDigest::CryptoDigest):
(WebCore::CryptoDigest::~CryptoDigest):
(WebCore::CryptoDigest::create):
(WebCore::CryptoDigest::addBytes):
(WebCore::CryptoDigest::computeHash):
Added a cross-platform interface and Mac implementation to compute a digest. It
should be possible to use it outside WebCrypto if we need to (perhaps even merge
with  WTF SHA-1 class).
The Mac implementation is kind of ugly, but at least it encapsulates the ugliness.

* crypto/algorithms/CryptoAlgorithmSHA1.cpp: (WebCore::CryptoAlgorithmSHA1::digest):
* crypto/algorithms/CryptoAlgorithmSHA224.cpp: (WebCore::CryptoAlgorithmSHA224::digest):
* crypto/algorithms/CryptoAlgorithmSHA256.cpp: (WebCore::CryptoAlgorithmSHA256::digest):
* crypto/algorithms/CryptoAlgorithmSHA384.cpp: (WebCore::CryptoAlgorithmSHA384::digest):
* crypto/algorithms/CryptoAlgorithmSHA512.cpp: (WebCore::CryptoAlgorithmSHA512::digest):
* crypto/mac/CryptoAlgorithmSHA1Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Removed.
These are all cross-platform now.

LayoutTests:

* crypto/subtle/rsassa-pkcs1-v1_5-sign-verify-expected.txt: Added.
* crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@159292 268f45cc-cd09-0410-ab3c-d52691b4dbfc