Timeline
Sep 3, 2013:
- 11:26 PM Changeset in webkit [155023] by
-
- 54 edits15 adds in trunk
The DFG should be able to tier-up and OSR enter into the FTL
https://bugs.webkit.org/show_bug.cgi?id=112838
Source/JavaScriptCore:
Reviewed by Mark Hahnenberg.
This adds the ability for the DFG to tier-up into the FTL. This works in both
of the expected tier-up modes:
Replacement: frequently called functions eventually have their entrypoint
replaced with one that goes into FTL-compiled code. Note, this will be a
slow-down for now since we don't yet have LLVM calling convention integration.
OSR entry: code stuck in hot loops gets OSR'd into the FTL from the DFG.
This means that if the DFG detects that a function is an FTL candidate, it
inserts execution counting code similar to the kind that the baseline JIT
would use. If you trip on a loop count in a loop header that is an OSR
candidate (it's not an inlined loop), we do OSR; otherwise we do replacement.
OSR almost always also implies future replacement.
OSR entry into the FTL is really cool. It uses a specialized FTL compile of
the code, where early in the DFG pipeline we replace the original root block
with an OSR entrypoint block that jumps to the pre-header of the hot loop.
The OSR entrypoint loads all live state at the loop pre-header using loads
from a scratch buffer, which gets populated by the runtime's OSR entry
preparation code (FTL::prepareOSREntry()). This approach appears to work well
with all of our subsequent optimizations, including prediction propagation,
CFA, and LICM. LLVM seems happy with it, too. Best of all, it works naturally
with concurrent compilation: when we hit the tier-up trigger we spawn a
compilation plan at the bytecode index from which we triggered; once the
compilation finishes the next trigger will try to enter, at that bytecode
index. If it can't - for example because the code has moved on to another
loop - then we just try again. Loops that get hot enough for OSR entry (about
25,000 iterations) will probably still be running when a concurrent compile
finishes, so this doesn't appear to be a big problem.
This immediately gives us a 70% speed-up on imaging-gaussian-blur. We could
get a bigger speed-up by adding some more intelligence and tweaking LLVM to
compile code faster. Those things will happen eventually but this is a good
start. Probably this code will see more tuning as we get more coverage in the
FTL JIT, but I'll worry about that in future patches.
- CMakeLists.txt:
- GNUmakefile.list.am:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Target.pri:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::hasOptimizedReplacement):
(JSC::CodeBlock::setOptimizationThresholdBasedOnCompilationResult):
- bytecode/CodeBlock.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::parse):
- dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
(JSC::DFG::compile):
- dfg/DFGDriver.h:
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::killUnreachableBlocks):
- dfg/DFGGraph.h:
- dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::initialize):
- dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::reconstruct):
(JSC::DFG::JITCode::checkIfOptimizationThresholdReached):
(JSC::DFG::JITCode::optimizeNextInvocation):
(JSC::DFG::JITCode::dontOptimizeAnytimeSoon):
(JSC::DFG::JITCode::optimizeAfterWarmUp):
(JSC::DFG::JITCode::optimizeSoon):
(JSC::DFG::JITCode::forceOptimizationSlowPathConcurrently):
(JSC::DFG::JITCode::setOptimizationThresholdBasedOnCompilationResult):
- dfg/DFGJITCode.h:
- dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):
(JSC::DFG::JITFinalizer::finalizeCommon):
- dfg/DFGLoopPreHeaderCreationPhase.cpp:
(JSC::DFG::createPreHeader):
(JSC::DFG::LoopPreHeaderCreationPhase::run):
- dfg/DFGLoopPreHeaderCreationPhase.h:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasUnlinkedLocal):
(JSC::DFG::Node::unlinkedLocal):
- dfg/DFGNodeType.h:
- dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
- dfg/DFGOSREntrypointCreationPhase.cpp: Added.
(JSC::DFG::OSREntrypointCreationPhase::OSREntrypointCreationPhase):
(JSC::DFG::OSREntrypointCreationPhase::run):
(JSC::DFG::performOSREntrypointCreation):
- dfg/DFGOSREntrypointCreationPhase.h: Added.
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPlan.h:
- dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTierUpCheckInjectionPhase.cpp: Added.
(JSC::DFG::TierUpCheckInjectionPhase::TierUpCheckInjectionPhase):
(JSC::DFG::TierUpCheckInjectionPhase::run):
(JSC::DFG::performTierUpCheckInjection):
- dfg/DFGTierUpCheckInjectionPhase.h: Added.
- dfg/DFGToFTLDeferredCompilationCallback.cpp: Added.
(JSC::DFG::ToFTLDeferredCompilationCallback::ToFTLDeferredCompilationCallback):
(JSC::DFG::ToFTLDeferredCompilationCallback::~ToFTLDeferredCompilationCallback):
(JSC::DFG::ToFTLDeferredCompilationCallback::create):
(JSC::DFG::ToFTLDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
(JSC::DFG::ToFTLDeferredCompilationCallback::compilationDidComplete):
- dfg/DFGToFTLDeferredCompilationCallback.h: Added.
- dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp: Added.
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::ToFTLForOSREntryDeferredCompilationCallback):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::~ToFTLForOSREntryDeferredCompilationCallback):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::create):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete):
- dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h: Added.
- dfg/DFGWorklist.cpp:
(JSC::DFG::globalWorklist):
- dfg/DFGWorklist.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLCapabilities.h:
- ftl/FTLForOSREntryJITCode.cpp: Added.
(JSC::FTL::ForOSREntryJITCode::ForOSREntryJITCode):
(JSC::FTL::ForOSREntryJITCode::~ForOSREntryJITCode):
(JSC::FTL::ForOSREntryJITCode::ftlForOSREntry):
(JSC::FTL::ForOSREntryJITCode::initializeEntryBuffer):
- ftl/FTLForOSREntryJITCode.h: Added.
(JSC::FTL::ForOSREntryJITCode::entryBuffer):
(JSC::FTL::ForOSREntryJITCode::setBytecodeIndex):
(JSC::FTL::ForOSREntryJITCode::bytecodeIndex):
(JSC::FTL::ForOSREntryJITCode::countEntryFailure):
(JSC::FTL::ForOSREntryJITCode::entryFailureCount):
- ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
- ftl/FTLLink.cpp:
(JSC::FTL::link):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileBlock):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileExtractOSREntryLocal):
(JSC::FTL::LowerDFGToLLVM::compileGetLocal):
(JSC::FTL::LowerDFGToLLVM::addWeakReference):
- ftl/FTLOSREntry.cpp: Added.
(JSC::FTL::prepareOSREntry):
- ftl/FTLOSREntry.h: Added.
- ftl/FTLOutput.h:
(JSC::FTL::Output::crashNonTerminal):
(JSC::FTL::Output::crash):
- ftl/FTLState.cpp:
(JSC::FTL::State::State):
- interpreter/Register.h:
(JSC::Register::unboxedDouble):
- jit/JIT.cpp:
(JSC::JIT::emitEnterOptimizationCheck):
- jit/JITCode.cpp:
(JSC::JITCode::ftlForOSREntry):
- jit/JITCode.h:
- jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
- runtime/Options.h:
- runtime/VM.cpp:
(JSC::VM::ensureWorklist):
- runtime/VM.h:
LayoutTests:
Reviewed by Mark Hahnenberg.
Fix marsaglia to check the result instead of printing, and add a second
version that relies on OSR entry.
- fast/js/regress/marsaglia-osr-entry-expected.txt: Added.
- fast/js/regress/marsaglia-osr-entry.html: Added.
- fast/js/regress/script-tests/marsaglia-osr-entry.js: Added.
(marsaglia):
- fast/js/regress/script-tests/marsaglia.js:
- 11:13 PM Changeset in webkit [155022] by
-
- 6 edits2 adds in trunk
AX: REGRESSION: @title is exposed as AXDescription when label label from contents already exists.
https://bugs.webkit.org/show_bug.cgi?id=120550
Reviewed by Mario Sanchez Prada.
Source/WebCore:
Resolve a FIXME from the accessible name computation refactoring so that alternative text for links do not
show up in the title field and do not duplicate naming when a title tag is used.
Effectively, this means that links no longer use AXTitle for alternative text. They use AXDescription
like all other elements.
Test: platform/mac/accessibility/link-with-title.html
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
(-[WebAccessibilityObjectWrapper accessibilityDescription]):
LayoutTests:
- accessibility/image-map1.html:
- platform/mac/accessibility/document-links-expected.txt:
- platform/mac/accessibility/image-map1-expected.txt:
- platform/mac/accessibility/link-with-title-expected.txt: Added.
- platform/mac/accessibility/link-with-title.html: Added.
- 10:48 PM Changeset in webkit [155021] by
-
- 4 edits in trunk/Source
CodeBlock memory cost reporting should be rationalized
https://bugs.webkit.org/show_bug.cgi?id=120615
Source/JavaScriptCore:
Reviewed by Darin Adler.
Report the size of the instruction stream, and then remind the GC that we're
using memory when we trace.
This is a slight slow-down on some JSBench tests because it makes us GC a
bit more frequently. But I think it's well worth it; if we really want those
tests to GC less frequently then we can achieve that through other kinds of
tuning. It's better that the GC knows that CodeBlocks do in fact use memory;
what it does with that information is a somewhat orthogonal question.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::visitAggregate):
Source/WTF:
Reviewed by Darin Adler.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::refCount):
- 10:06 PM Changeset in webkit [155020] by
-
- 3 edits in trunk/Source/WTF
Follow up to http://trac.webkit.org/changeset/155014
Reviewed by Alexey Proskuryakov.
In the r155014 I renamed hasLineBreakingPropertyComplexContext
to requiresComplexContextForWordBreaking but forgot to
make the same change in UnicodeWchar.h.
- wtf/unicode/wchar/UnicodeWchar.cpp:
(WTF::Unicode::requiresComplexContextForWordBreaking):
- wtf/unicode/wchar/UnicodeWchar.h:
- 9:53 PM Changeset in webkit [155019] by
-
- 4 edits in trunk/Source/WebCore
Change type of Document::doctype back to a raw pointer
https://bugs.webkit.org/show_bug.cgi?id=120617
Reviewed by Andreas Kling.
- dom/Document.cpp:
(WebCore::Document::doctype): Return a raw pointer.
(WebCore::Document::childrenChanged): Use the raw pointer.
Also added a FIXME about this code that is probably in the wrong place.
- dom/Document.h: More of the same.
- editing/markup.cpp:
(WebCore::documentTypeString): Get rid of local variable entirely,
since null is already handled right by createMarkup, and also remove
the call to get since doctype is just a raw pointer.
- 9:49 PM Changeset in webkit [155018] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: frame().view() == this closing a page with SVG or video
<https://webkit.org/b/120645>
Reviewed by Antti Koivisto.
Have RenderSVGResourceContainer check if the document is being destroyed before
triggering any repaints. This replaces the previous check for a null RenderView
which meant basically the same thing.
We could add more and better assertions to catch unnecessary work during tree
teardown, but let's do that separately.
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markClientForInvalidation):
- 9:27 PM Changeset in webkit [155017] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r154967) window resize is very choppy
https://bugs.webkit.org/show_bug.cgi?id=120653
Reviewed by Andreas Kling.
Andreas Kling spotted the bad change.
- Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::waitForMessage): Roll out this incorrect change.
The code here is not the same as a call to take.
- 8:34 PM Changeset in webkit [155016] by
-
- 2 edits in trunk/Source/WebCore
Fix uninitialized build warning in make_names.pl
https://bugs.webkit.org/show_bug.cgi?id=120658
Reviewed by Andreas Kling.
No new tests, no behavior change.
- dom/make_names.pl:
(printTypeChecks): Fixed a build warning since r154965.
- 7:46 PM Changeset in webkit [155015] by
-
- 2 edits in trunk/Source/WebCore
Fix backwards branch in ~Node from r154967
https://bugs.webkit.org/show_bug.cgi?id=120659
Reviewed by Andreas Kling.
- dom/Node.cpp:
(WebCore::Node::~Node): Fix backwards branch. The old code ran the code only
when we did not remove the item from the table. I removed a ! from this expression
after review; bad idea.
- 6:13 PM Changeset in webkit [155014] by
-
- 5 edits2 adds in trunk
Can't select Katakana word by double-clicking.
<rdar://problem/14654926>
Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
Source/WebCore:
For some languages, like Japanese we need
to use more context for word breaking.
New test: editing/selection/doubleclick-japanese-text.html
- platform/text/TextBoundaries.h:
(WebCore::requiresContextForWordBoundary):
Source/WTF:
For some languages, like Japanese we need
to use more context for word breaking.
I've renamed the function to better reflect its use
and remove the unused hasLineBreakingPropertyComplexContextOrIdeographic.
- wtf/unicode/icu/UnicodeIcu.h:
(WTF::Unicode::requiresComplexContextForWordBreaking):
LayoutTests:
Added new test for this scenario.
- editing/selection/doubleclick-japanese-text-expected.txt: Added.
- editing/selection/doubleclick-japanese-text.html: Added.
- 5:26 PM Changeset in webkit [155013] by
-
- 16 edits in trunk/Source
Converting StackIterator to a callback interface.
https://bugs.webkit.org/show_bug.cgi?id=120564.
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
- API/JSContextRef.cpp:
(BacktraceFunctor::BacktraceFunctor):
(BacktraceFunctor::operator()):
(JSContextCreateBacktrace):
- interpreter/CallFrame.cpp:
- interpreter/CallFrame.h:
- interpreter/Interpreter.cpp:
(JSC::DumpRegisterFunctor::DumpRegisterFunctor):
(JSC::DumpRegisterFunctor::operator()):
(JSC::Interpreter::dumpRegisters):
(JSC::unwindCallFrame):
(JSC::GetStackTraceFunctor::GetStackTraceFunctor):
(JSC::GetStackTraceFunctor::operator()):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::stackTraceAsString):
(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator()):
(JSC::Interpreter::unwind):
- interpreter/Interpreter.h:
- interpreter/StackIterator.cpp:
(JSC::StackIterator::numberOfFrames):
(JSC::StackIterator::gotoFrameAtIndex):
(JSC::StackIterator::gotoNextFrameWithFilter):
(JSC::StackIterator::resetIterator):
(JSC::StackIterator::Frame::print):
(debugPrintCallFrame):
(DebugPrintStackFunctor::operator()):
(debugPrintStack): Added for debugging convenience.
- interpreter/StackIterator.h:
(JSC::StackIterator::Frame::index):
(JSC::StackIterator::iterate):
- jsc.cpp:
(FunctionJSCStackFunctor::FunctionJSCStackFunctor):
(FunctionJSCStackFunctor::operator()):
(functionJSCStack):
- profiler/ProfileGenerator.cpp:
(JSC::AddParentForConsoleStartFunctor::AddParentForConsoleStartFunctor):
(JSC::AddParentForConsoleStartFunctor::foundParent):
(JSC::AddParentForConsoleStartFunctor::operator()):
(JSC::ProfileGenerator::addParentForConsoleStart):
- runtime/JSFunction.cpp:
(JSC::RetrieveArgumentsFunctor::RetrieveArgumentsFunctor):
(JSC::RetrieveArgumentsFunctor::result):
(JSC::RetrieveArgumentsFunctor::operator()):
(JSC::retrieveArguments):
(JSC::RetrieveCallerFunctionFunctor::RetrieveCallerFunctionFunctor):
(JSC::RetrieveCallerFunctionFunctor::result):
(JSC::RetrieveCallerFunctionFunctor::operator()):
(JSC::retrieveCallerFunction):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::GlobalFuncProtoGetterFunctor::GlobalFuncProtoGetterFunctor):
(JSC::GlobalFuncProtoGetterFunctor::result):
(JSC::GlobalFuncProtoGetterFunctor::operator()):
(JSC::globalFuncProtoGetter):
(JSC::GlobalFuncProtoSetterFunctor::GlobalFuncProtoSetterFunctor):
(JSC::GlobalFuncProtoSetterFunctor::allowsAccess):
(JSC::GlobalFuncProtoSetterFunctor::operator()):
(JSC::globalFuncProtoSetter):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructorGetPrototypeOfFunctor::ObjectConstructorGetPrototypeOfFunctor):
(JSC::ObjectConstructorGetPrototypeOfFunctor::result):
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
(JSC::objectConstructorGetPrototypeOf):
Source/WebCore:
No new tests.
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::SendFunctor::SendFunctor):
(WebCore::SendFunctor::hasViableFrame):
(WebCore::SendFunctor::operator()):
(WebCore::JSXMLHttpRequest::send):
- bindings/js/ScriptCallStackFactory.cpp:
(WebCore::CreateScriptCallStackFunctor::CreateScriptCallStackFunctor):
(WebCore::CreateScriptCallStackFunctor::operator()):
(WebCore::createScriptCallStack):
(WebCore::CreateScriptCallStackForConsoleFunctor::CreateScriptCallStackForConsoleFunctor):
(WebCore::CreateScriptCallStackForConsoleFunctor::operator()):
- 5:16 PM Changeset in webkit [155012] by
-
- 2 edits in trunk/LayoutTests
Try unskipping compositing/images/positioned-image-content-rect.html
Unreviewed.
- platform/mac/TestExpectations:
The test compositing/images/positioned-image-content-rect.html seems to pass reliably
on the bots and locally.
Try to unskip it.
- 5:04 PM Changeset in webkit [155011] by
-
- 5 edits in branches/safari-537.60-branch/Source
Versioning.
- 4:57 PM Changeset in webkit [155010] by
-
- 1 copy in tags/Safari-537.60.1
New Tag.
- 4:56 PM Changeset in webkit [155009] by
-
- 2 edits in trunk/LayoutTests
The test inspector/geolocation-success.html is unreliable
https://bugs.webkit.org/show_bug.cgi?id=120655
Reviewed by Alexey Proskuryakov.
- inspector/geolocation-success.html:
The test was expecting everything would be done in the page context
when InspectorTest.evaluateInPage invoke the callback.
This is not the case, geolocation APIs are asynchronous.
The callbacks printLocation() and printError() may or may not be executed.
To fix this, the execution of each step is changed to depends on the completion
of the geolocation callback.
- 4:21 PM Changeset in webkit [155008] by
-
- 10 edits3 adds in trunk
Support structured clone of Map and Set
https://bugs.webkit.org/show_bug.cgi?id=120654
Reviewed by Simon Fraser.
Source/JavaScriptCore:
Make xcode copy the required headers, and add appropriate export attributes
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/JSMap.h:
- runtime/JSSet.h:
- runtime/MapData.h:
Source/WebCore:
Add support for cloning Map and Set. Fairly self explanatory change.
Needed to add Forwarding headers for the JSMap, JSSet and MapData classes.
- ForwardingHeaders/runtime/JSMap.h: Added.
- ForwardingHeaders/runtime/JSSet.h: Added.
- ForwardingHeaders/runtime/MapData.h: Added.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::isMap):
(WebCore::CloneSerializer::isSet):
(WebCore::CloneSerializer::startSet):
(WebCore::CloneSerializer::startMap):
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::consumeMapDataTerminationIfPossible):
(WebCore::CloneDeserializer::deserialize):
LayoutTests:
Tests!
- fast/dom/Window/script-tests/postmessage-clone.js:
(set new):
(set add.set add):
- 4:04 PM Changeset in webkit [155007] by
-
- 1 edit in branches/safari-537.60-branch/Source/WebKit/win/WebFrame.cpp
Windows build fix.
- 3:36 PM Changeset in webkit [155006] by
-
- 5 edits in branches/safari-537-branch/Source
Versioning.
- 3:34 PM Changeset in webkit [155005] by
-
- 1 copy in tags/Safari-537.67
New Tag.
- 3:31 PM Changeset in webkit [155004] by
-
- 1 edit in branches/safari-537.60-branch/Source/WebKit/win/WebView.cpp
Windows build fix after 155001.
- 3:20 PM Changeset in webkit [155003] by
-
- 3 edits in branches/safari-537.60-branch/Source/WebKit/win
Merged r154764. <rdar://problem/14879688>
- 3:14 PM Changeset in webkit [155002] by
-
- 6 edits2 adds in trunk
[CSS Shapes] Shape's content gets extra left offset when left-border is positive on the content box
https://bugs.webkit.org/show_bug.cgi?id=117573
Reviewed by David Hyatt.
Source/WebCore:
Nested blocks need to take into account their offset from the shape-inside container.
The new code calculates the offset from the shape-inside container, then applies the
offset to the computed segments. The line must be moved down by the offset's height,
and each segment must be moved left by the offset's width.
Test: fast/shapes/shape-inside/shape-inside-offset-block-children.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Relayout a block child if its
new logical left would cause it to rest at a new position within a shape container.
(WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Calculate the logical
offset form a shape inside ancestor container.
(WebCore::RenderBlock::layoutBlockChild): Call relayoutShapeDescendantIfMoved with the
new position offset.
- rendering/RenderBlock.h:
- rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLine): Use layout offset, rather
than just vertical offset.
(WebCore::RenderBlock::updateShapeAndSegmentsForCurrentLineInFlowThread): Ditto.
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
- rendering/shapes/ShapeInsideInfo.h:
(WebCore::ShapeInsideInfo::computeSegmentsForLine): Shift segments logically left when
there is an inline offset.
LayoutTests:
Test that nested children with padding correctly apply an ancestor's shape-inside
across different writing modes.
- fast/shapes/shape-inside/shape-inside-offset-block-children-expected.html: Added.
- fast/shapes/shape-inside/shape-inside-offset-block-children.html: Added.
- 3:08 PM Changeset in webkit [155001] by
-
- 3 edits in branches/safari-537.60-branch/Source/WebKit/win
Merged r154759. <rdar://problem/14879679>
- 2:47 PM Changeset in webkit [155000] by
-
- 2 edits in trunk/Tools
[Mac] WebKitTestRunner still beeps sometimes
https://bugs.webkit.org/show_bug.cgi?id=120652
Reviewed by Tim Horton.
In bug 107251, we disabled beeping in WebProcess, but some of the beeps happen in
UI process (notably, AppKit beeps when handling a key equivalent returns NO).
- WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitialize): Use the same SPI that we use in DRT and in WebProcess to disable beeping.
- 2:36 PM Changeset in webkit [154999] by
-
- 2 edits in trunk/Websites/webkit.org
Fix the recommended testing platform on the website
Rubberstamped by Enrica Casucci.
- quality/testing.html:
- 1:16 PM Changeset in webkit [154998] by
-
- 9 edits in trunk
Web Inspector: exceptions triggered from console evaluation do not pause the debugger
https://bugs.webkit.org/show_bug.cgi?id=120460
Source/WebCore:
Reviewed by Timothy Hatcher.
- inspector/InjectedScriptSource.js:
Explicitly set a sourceURL such that the frontend may identify injected script when
processing call frames in order to hide such code from the debugger.
Source/WebInspectorUI:
We used to preclude any debugging from errors stemming from code evaluated in the console
as we would always set the doNotPauseOnExceptionsAndMuteConsole parameter to "false" when
calling JavaScriptLogViewController._evaluateInInspectedWindow(). However, it is desirable
to allow debugging code ran from the console.
We now allow debugging in such a scenario and we filter out call frames coming from the
Web Inspector injected script as well as the call frame for the console prompt such that
we only pause in the debugger in case the exception is in code under the console prompt
and not the console code prompt itself.
Additionally, to prevent stepping out to call frames we may have filtered out, we disable
the "step out" button in cases where there are no further frames in the frontend to go out to.
Reviewed by Timothy Hatcher.
- UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Filter out call frames that have a URL coming from Web Inspector injected script by looking
for a URL starting with the "WebInspector" prefix. If we determine that there are no call
frames left after filtering, we resume code evaluation such that we only pause in the debugger
when the exception is in code evluated under the console prompt.
- UserInterface/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
Monitor any change to the active call frame such that we may tie the state of the
"step out" button to the availability of a call frame to step out to in the filtered
list set on the DebuggerManager.
- UserInterface/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Set the doNotPauseOnExceptionsAndMuteConsole to "false" when calling _evaluateInInspectedWindow()
in order to allow pausing on exceptions coming from code evalued in the console. Also, explicitly
set a sourceURL for the script to evaluate such that we may identify its origin when filtering
call frames stemming from inspector code.
- UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Filter out any script resource starting with the Web Inspector-specific "WebInspector" prefix
so that injected script does not show up.
LayoutTests:
Reviewed by Timothy Hatcher.
- platform/mac/inspector/console/command-line-api-expected.txt:
Take into account the addition of a sourceURL to inspector/InjectedScriptSource.js.
- 12:30 PM Changeset in webkit [154997] by
-
- 6 edits in trunk/Source
Support Vector<Ref<T>>.
<https://webkit.org/b/120637>
Reviewed by Antti Koivisto.
Source/WebCore:
Use Vector<Ref<T>> internally in Page.
- page/Page.cpp:
(WebCore::networkStateChanged):
(WebCore::Page::refreshPlugins):
Clean up these functions and use Vector<Ref<Frame>> to store pointers to frames
since we know they are not going to be null.
(WebCore::Page::pluginViews):
Changed this to return a Vector<Ref<PluginView>> by value instead of passing a
writable vector as an argument. Clean up loops with 'auto'.
(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::privateBrowsingStateChanged):
Tweaked for pluginViews() returning a Vector now.
(WebCore::Page::setVisibilityState):
Store Documents that need a visibilitychange event in a Vector<Ref<Document>>.
Source/WTF:
Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
but is necessary for Vector::append(const T&) to find a constructor.
An alternative would be to add something like std::vector::emplace_back, but I can't
think of a good name for that, and it'd be nice if append() would "just work."
Also add operator->(). I initially excluded this because I felt it made for
unsafe-looking code. Things quickly got out of hand with .get() everywhere though.
IMO -> looks OK as long as it's only used on the first link in a dereference chain,
as that variable and its type will be "in context."
- wtf/Ref.h:
(WTF::Ref::Ref):
(WTF::Ref::~Ref):
(WTF::Ref::operator->):
(WTF::Ref::get):
- wtf/VectorTraits.h:
Add simple traits for Ref<T> so it can be moved around freely by Vector.
- 12:14 PM Changeset in webkit [154996] by
-
- 10 edits in trunk
[CSS Grid Layout] Add parsing for named grid lines
https://bugs.webkit.org/show_bug.cgi?id=119540
Reviewed by Andreas Kling.
From Blink r150381,r150587 by <jchaffraix@chromium.org>
Source/WebCore:
Adds parsing support for named grid lines at <grid-line> level,
i.e., inside grid-{row|column}-{start|end}. This change covers
only the parsing, layout changes coming in a follow up patch.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
- css/CSSParser.cpp:
(WebCore::CSSParser::parseIntegerOrStringFromGridPosition):
(WebCore::CSSParser::parseGridPosition):
- css/CSSParser.h:
- css/StyleResolver.cpp:
(WebCore::createGridPosition):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionFromStyle):
- rendering/style/GridPosition.h:
(WebCore::GridPosition::setExplicitPosition):
(WebCore::GridPosition::setSpanPosition):
(WebCore::GridPosition::integerPosition):
(WebCore::GridPosition::namedGridLine):
LayoutTests:
Added several new test cases which include different types of
named grid lines, this means including the names at different
positions, multiple names per line or mixing names with keywords
like 'span'.
- fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
- fast/css-grid-layout/grid-item-column-row-get-set.html:
- 12:00 PM Changeset in webkit [154995] by
-
- 3 edits1 add in trunk
[Mac] Hyphenation respects regional format settings language instead of primary language
https://bugs.webkit.org/show_bug.cgi?id=120641
Reviewed by Dan Bernstein.
Fixes hyphenation tests on my machine with non-English regional format settings.
- platform/text/cf/HyphenationCF.cpp: (createValueForNullKey): Use primary UI language for hyphenation, not regional settings language.
- 12:00 PM Changeset in webkit [154994] by
-
- 3 edits in trunk/Source/WebCore
[GTK][EFL] include missing localized strings for subtitle auto track
https://bugs.webkit.org/show_bug.cgi?id=120629
those methods are necessary to show the "Auto" track on webkitgtk
Patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2013-09-03
Reviewed by Gustavo Noronha Silva.
- platform/efl/LocalizedStringsEfl.cpp:
(WebCore::textTrackAutomaticMenuItemText):
- platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::textTrackAutomaticMenuItemText):
- 11:51 AM Changeset in webkit [154993] by
-
- 9 edits2 adds in trunk
Require layout when -webkit-overflow-scrolling changes
https://bugs.webkit.org/show_bug.cgi?id=120535
Reviewed by Darin Adler.
Source/WebCore:
Test: fast/repaint/overflow-scroll-touch-repaint.html
We want to require a layout when the value of -webkit-overflow-scrolling changes
since -webkit-overflow-scrolling creates a stacking context.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
LayoutTests:
Add a test to ensure we perform a layout and repaint when the
value of -webkit-overflow-scrolling changes on an element.
At the time of writing, the iOS port enables ACCELERATED_OVERFLOW_SCROLLING.
- fast/repaint/overflow-scroll-touch-repaint-expected.txt: Added.
- fast/repaint/overflow-scroll-touch-repaint.html: Added.
- platform/efl/TestExpectations: Skip test fast/repaint/overflow-scroll-touch-repaint.html
since this platform doesn't enable ACCELERATED_OVERFLOW_SCROLLING.
- platform/gtk/TestExpectations: Ditto.
- platform/mac/TestExpectations: Ditto.
- platform/qt/TestExpectations: Ditto.
- platform/win/TestExpectations: Ditto.
- platform/wincairo/TestExpectations: Ditto.
- 11:45 AM Changeset in webkit [154992] by
-
- 10 edits9 adds in trunk
Support the "json" responseType and JSON response entity in XHR
https://bugs.webkit.org/show_bug.cgi?id=73648
Reviewed by Oliver Hunt.
Source/JavaScriptCore:
Based on the patch written by Jarred Nicholls.
Add JSC::JSONParse. This function will be used in XMLHttpRequest.response of type 'json'.
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/JSONObject.cpp:
(JSC::JSONParse):
- runtime/JSONObject.h:
Source/WebCore:
Based on the patch written by Jarred Nicholls.
Implement 'json' type for XMLHttpRequest.response. We cache the result on JSC side as a cached attribute
unlike other response types like 'document' and 'blob' for which the parsed response object is cached
in XMLHttpRequest itself. In the long run, we should do the same for other types of response types.
Also refactored the various code to share the code.
Tests: fast/xmlhttprequest/xmlhttprequest-responsetype-json-invalid.html
fast/xmlhttprequest/xmlhttprequest-responsetype-json-utf16.html
fast/xmlhttprequest/xmlhttprequest-responsetype-json-valid.html
- ForwardingHeaders/runtime/JSONObject.h: Added.
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::visitChildren):
(WebCore::JSXMLHttpRequest::response): Use JSONParse to parse the response text and cache the result.
Call didCacheResponseJSON to set the cache status and clear the original response buffer.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest): Added m_responseCacheIsValid to invalidate the cache of
a json response.
(WebCore::XMLHttpRequest::responseText):
(WebCore::XMLHttpRequest::didCacheResponseJSON): Added; Updates m_responseCacheIsValid and clears the
response buffer to save memory.
(WebCore::XMLHttpRequest::responseXML):
(WebCore::XMLHttpRequest::setResponseType):
(WebCore::XMLHttpRequest::responseType):
(WebCore::XMLHttpRequest::clearResponseBuffers):
(WebCore::XMLHttpRequest::didReceiveData):
- xml/XMLHttpRequest.h:
(WebCore::XMLHttpRequest::doneWithoutErrors): Extracted from responseXML.
(WebCore::XMLHttpRequest::responseTextIgnoringResponseType): Extracted from responseText.
(WebCore::XMLHttpRequest::responseCacheIsValid): Added.
(WebCore::XMLHttpRequest::shouldDecodeResponse): Extracted from didReceiveData.
Also modified to decode when the response type is ResponseTypeJSON.
- xml/XMLHttpRequest.idl: Added CachedAttribute IDL extention on response property. This cache is
used when the response type is 'json'.
LayoutTests:
Add regression tests for XMLHttpRequest.response of type 'json'.
Two of these tests (valid & invalid) come from Jarred Nicholls's original patch.
- fast/xmlhttprequest/resources/xmlhttprequest-responsetype-json-utf-16.json: Added.
- fast/xmlhttprequest/resources/xmlhttprequest-responsetype-json.json: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-invalid-expected.txt: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-invalid.html: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-utf16-expected.txt: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-utf16.html: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-valid-expected.txt: Added.
- fast/xmlhttprequest/xmlhttprequest-responsetype-json-valid.html: Added.
- 11:30 AM Changeset in webkit [154991] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r154881.
http://trac.webkit.org/changeset/154881
https://bugs.webkit.org/show_bug.cgi?id=120643
Crashes on macworld.com (Requested by kling on #webkit).
Source/WebCore:
- dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
LayoutTests:
- fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Removed.
- fast/dom/Element/setAttributeNode-for-existing-attribute.html: Removed.
- 10:33 AM Changeset in webkit [154990] by
-
- 2 edits in trunk/Source/WTF
Check WTF::VectorFiller template argument type size in compile time
https://bugs.webkit.org/show_bug.cgi?id=120631
Reviewed by Darin Adler.
The template argument's type size in WTF::VectorFiller 'memset' specialization
should be checked during compilation rather than in runtime.
- wtf/Vector.h:
- 10:08 AM Changeset in webkit [154989] by
-
- 3 edits in trunk/Source/WebKit2
[GTK] gdk threads deprecated functions calls should be refactored
https://bugs.webkit.org/show_bug.cgi?id=120070
Patch by Anton Obzhirov <Anton Obzhirov> on 2013-09-03
Reviewed by Mario Sanchez Prada.
Removed deprecated functions gdk_threads_leave()/gdk_threads_enter() functions since
there is no more checks for threads lock in GTK 3.6.
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewRunAsModal):
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
- 9:51 AM Changeset in webkit [154988] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Don't set state to NULL until element is destroyed
https://bugs.webkit.org/show_bug.cgi?id=117354
Patch by Andre Moreira Magalhaes <Andre Moreira Magalhaes> on 2013-09-03
Reviewed by Philippe Normand.
Don't set playbin to NULL until it is going to be destroyed or if we stay
for too long on the READY state. Instead only set the state to READY as this
allows much faster state changes to PAUSED/PLAYING again. playbin internally
caches some state that is destroyed when setting it to NULL.
This state is independent of the URI and it is even possible to change the
URI in READY state.
To avoid having resources (e.g. audio devices) open indefinitely,
when setting the state to READY we create a timeout and if the timeout
is reached we reset the pipeline state to NULL to free resources.
Also now all state changes use the changePipelineState method instead of setting
the playbin state directly with gst_element_set_state, so we have a better control
of when we are requesting state changes.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateReadyStateTimeoutCallback):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- 9:51 AM Changeset in webkit [154987] by
-
- 4 edits in trunk/Source/WebKit2
[GTK] [WK2] TestContextMenu default-menu fails
https://bugs.webkit.org/show_bug.cgi?id=120459
Patch by Brian Holt <brian.holt@samsung.com> on 2013-09-03
Reviewed by Gustavo Noronha Silva.
Add context menu items for downloading media elements.
- UIProcess/API/gtk/WebKitContextMenuActions.cpp:
(webkitContextMenuActionGetActionTag):
(webkitContextMenuActionGetForContextMenuItem):
(webkitContextMenuActionGetLabel):
- UIProcess/API/gtk/WebKitContextMenuActions.h:
- UIProcess/API/gtk/tests/TestContextMenu.cpp:
- 9:39 AM Changeset in webkit [154986] by
-
- 18 edits2 adds2 deletes in trunk/Source/JavaScriptCore
CodeBlock::jettison() should be implicit
https://bugs.webkit.org/show_bug.cgi?id=120567
Reviewed by Oliver Hunt.
This is a risky change from a performance standpoint, but I believe it's
necessary. This makes all CodeBlocks get swept by GC. Nobody but the GC
can delete CodeBlocks because the GC always holds a reference to them.
Once a CodeBlock reaches just one reference (i.e. the one from the GC)
then the GC will free it only if it's not on the stack.
This allows me to get rid of the jettisoning logic. We need this for FTL
tier-up. Well; we don't need it, but it will help prevent a lot of bugs.
Previously, if you wanted to to replace one code block with another, you
had to remember to tell the GC that the previous code block is
"jettisoned". We would need to do this when tiering up from DFG to FTL
and when dealing with DFG-to-FTL OSR entry code blocks. There are a lot
of permutations here - tiering up to the FTL, OSR entering into the FTL,
deciding that an OSR entry code block is not relevant anymore - just to
name a few. In each of these cases we'd have to jettison the previous
code block. It smells like a huge source of future bugs.
So I made jettisoning implicit by making the GC always watch out for a
CodeBlock being owned solely by the GC.
This change is performance neutral.
- CMakeLists.txt:
- GNUmakefile.list.am:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Target.pri:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::visitAggregate):
(JSC::CodeBlock::jettison):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::setJITCode):
(JSC::CodeBlock::shouldImmediatelyAssumeLivenessDuringScan):
(JSC::CodeBlockSet::mark):
- dfg/DFGCommonData.h:
(JSC::DFG::CommonData::CommonData):
- heap/CodeBlockSet.cpp: Added.
(JSC::CodeBlockSet::CodeBlockSet):
(JSC::CodeBlockSet::~CodeBlockSet):
(JSC::CodeBlockSet::add):
(JSC::CodeBlockSet::clearMarks):
(JSC::CodeBlockSet::deleteUnmarkedAndUnreferenced):
(JSC::CodeBlockSet::traceMarked):
- heap/CodeBlockSet.h: Added.
- heap/ConservativeRoots.cpp:
(JSC::ConservativeRoots::add):
- heap/ConservativeRoots.h:
- heap/DFGCodeBlocks.cpp: Removed.
- heap/DFGCodeBlocks.h: Removed.
- heap/Heap.cpp:
(JSC::Heap::markRoots):
(JSC::Heap::deleteAllCompiledCode):
(JSC::Heap::deleteUnmarkedCompiledCode):
- heap/Heap.h:
- interpreter/JSStack.cpp:
(JSC::JSStack::gatherConservativeRoots):
- interpreter/JSStack.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/Executable.h:
- runtime/VM.h:
- 8:32 AM Changeset in webkit [154985] by
-
- 2 edits in trunk/Source/WebKit/qt
[Qt] Images scaled poorly on composited canvas
https://bugs.webkit.org/show_bug.cgi?id=120632
Reviewed by Jocelyn Turcotte.
Explicitly set a imageInterpolationQuality on the TextureMapper, because
InterpolationDefault may be interpreted differently by nested GraphicsContexts.
- WebCoreSupport/TextureMapperLayerClientQt.cpp:
(TextureMapperLayerClientQt::renderCompositedLayers):
- 7:50 AM Changeset in webkit [154984] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Unneeded code in method GlyphPage::fill().
https://bugs.webkit.org/show_bug.cgi?id=120634
Patch by peavo@outlook.com <peavo@outlook.com> on 2013-09-03
Reviewed by Andreas Kling.
- platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
(WebCore::GlyphPage::fill): Remove unneeded call to GetTextMetrics() function.
- 7:47 AM Changeset in webkit [154983] by
-
- 2 edits in trunk/Source/WebKit/qt
[Qt] Tiled-backing store not clipped to frame or visible rect
https://bugs.webkit.org/show_bug.cgi?id=120606
Reviewed by Jocelyn Turcotte.
Clip painting from the tiled-backing store to the frame rect.
- WebCoreSupport/QWebFrameAdapter.cpp:
(QWebFrameAdapter::renderFromTiledBackingStore):
- 7:43 AM Changeset in webkit [154982] by
-
- 3 edits4 adds in trunk
[CSSRegions] Pseudo-elements as regions should not be exposed to JS
https://bugs.webkit.org/show_bug.cgi?id=120633
Reviewed by Andreas Kling.
Source/WebCore:
Until we properly implement the Region interface (http://dev.w3.org/csswg/css-regions/#the-region-interface)
for pseudo-elements, we should not return these as regions in JS.
Tests: fast/regions/get-regions-by-content-pseudo.html
fast/regions/webkit-named-flow-get-regions-pseudo.html
- dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex): Skip pseudo-elements as regions here too,
otherwise we may get an index that cannot be used with getRegions().
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
LayoutTests:
Add tests with pseudo-elements as regions checking the following API:
WebKitNamedFlow::getRegions(), WebKitNamedFlow::getRegionsByContent()
Because we do not return the pseudo-elements as regions in the region list,
i modified WebKitNamedFlow::firstEmptyRegionIndex to skip these regions too.
- fast/regions/get-regions-by-content-pseudo-expected.txt: Added.
- fast/regions/get-regions-by-content-pseudo.html: Added.
- fast/regions/webkit-named-flow-get-regions-pseudo-expected.txt: Added.
- fast/regions/webkit-named-flow-get-regions-pseudo.html: Added.
- 7:20 AM Changeset in webkit [154981] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r154967): http appcache tests crashing on WK1
https://bugs.webkit.org/show_bug.cgi?id=120620
Reviewed by Andreas Kling.
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::cacheDestroyed): Reintroduce pre-r154967 behavior that returned early in
this method if the passed-in ApplicationCache object was not found in the ApplicationCacheGroup's HashSet
of all the caches. This is now done by checking that the HashSet<T>::remove(T) returns true (meaning the
object was found in the HashSet and removed from it) in addition to that HashSet being subsequently empty
before the method moves on to destroying its ApplicationCacheGroup instance.
- 6:36 AM Changeset in webkit [154980] by
-
- 3 edits in trunk/LayoutTests
[Qt] Unreviewed gardening. Skip some failing tests.
- platform/qt-wk1/TestExpectations:
- platform/qt/TestExpectations:
- 6:25 AM Changeset in webkit [154979] by
-
- 2 edits in trunk/LayoutTests
[EFL] accessibility/aria-describedby-on-input.html is failing
https://bugs.webkit.org/show_bug.cgi?id=112027
Unreviewed EFL gardening.
accessibility/aria-describedby-on-input.html passes after r154976.
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-03
- platform/efl-wk2/TestExpectations:
- 6:25 AM Changeset in webkit [154978] by
-
- 2 edits in trunk
[CMake] Fix detection of x86_64 platform with MSVC
https://bugs.webkit.org/show_bug.cgi?id=116662
Reviewed by Gyuyoung Kim.
Use ${MSVC_CXX_ARCHITECTURE_ID} instead of ${CMAKE_SYSTEM_PROCESSOR}, since
the later one just resolves to the host processor on Windows.
- CMakeLists.txt:
- 6:16 AM Changeset in webkit [154977] by
-
- 3 edits3 adds in trunk
[gstreamer] Disable HTTP request "Accept-Encoding:" header field on gstreamer source element to avoid receiving the wrong size when retrieving data
https://bugs.webkit.org/show_bug.cgi?id=115354
Patch by Andre Moreira Magalhaes <Andre Moreira Magalhaes> on 2013-09-03
Reviewed by Philippe Normand.
Source/WebCore:
Also disable Accept-Encoding on ResourceRequest::toSoupMessage accordingly.
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::toSoupMessage):
Call ResourceRequest::updateSoupMessage from ResourceRequest::toSoupMessage so that the
Accept-Encoding header is also respected.
LayoutTests:
Add test to check that video requests will send no "Accept-Encoding" header.
- http/tests/media/video-accept-encoding-expected.txt: Added.
- http/tests/media/video-accept-encoding.cgi: Added.
- http/tests/media/video-accept-encoding.html: Added.
- 4:29 AM Changeset in webkit [154976] by
-
- 15 edits2 moves in trunk
Source/WebCore: [AX][ATK] Added support for sort and help attributes.
https://bugs.webkit.org/show_bug.cgi?id=120456
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-03
Reviewed by Chris Fleizach.
Added support for aria-sort and aria-help attributes.
Test: accessibility/aria-sort.html
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
Tools: [AX][ATK] Added support for sort and help attributes
https://bugs.webkit.org/show_bug.cgi?id=120456
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-03
Reviewed by Chris Fleizach.
Added missing implementation to AccessibilityUIElement::helpText and support for
aria-sort attribute.
- DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(coreAttributeToAtkAttribute):
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::coreAttributeToAtkAttribute):
(WTR::AccessibilityUIElement::helpText):
LayoutTests: [AX][ATK] Added support for sort and help attributes
https://bugs.webkit.org/show_bug.cgi?id=120456
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-03
Reviewed by Chris Fleizach.
Sharing aria-sort.html specific mac test with efl and gtk.
Changing specific expectations of some accessibility tests.
- accessibility/aria-sort-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/aria-sort-expected.txt.
- accessibility/aria-sort.html: Renamed from LayoutTests/platform/mac/accessibility/aria-sort.html.
- platform/efl-wk2/TestExpectations:
- platform/efl-wk2/accessibility/image-link-expected.txt:
- platform/efl-wk2/accessibility/image-map2-expected.txt:
- platform/efl-wk2/accessibility/table-cell-spans-expected.txt:
- platform/efl-wk2/accessibility/table-cells-expected.txt:
- platform/gtk/accessibility/image-link-expected.txt:
- platform/gtk/accessibility/image-map2-expected.txt:
- platform/gtk/accessibility/table-cell-spans-expected.txt:
- platform/gtk/accessibility/table-cells-expected.txt:
- 3:10 AM Changeset in webkit [154975] by
-
- 4 edits3 deletes in trunk/Source/WebCore
[Qt] Remove dead code for QtXmlPatterns
https://bugs.webkit.org/show_bug.cgi?id=120624
Reviewed by Simon Hausmann.
Remove code supporting XSLT using QtXmlPatterns which has been
dead for some time.
- Target.pri:
- WebCore.pri:
- dom/TransformSourceQt.cpp: Removed.
- xml/XSLStyleSheetQt.cpp: Removed.
- xml/XSLTProcessorQt.cpp: Removed.
- xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::doEnd):
(WebCore::XMLDocumentParser::parseProcessingInstruction):
- 1:54 AM Changeset in webkit [154974] by
-
- 5 edits in trunk
[Qt][WK1] PageVisibility tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=120418
Reviewed by Jocelyn Turcotte.
Source/WebKit/qt:
- WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::resetPageVisibility):
- WebCoreSupport/DumpRenderTreeSupportQt.h:
Tools:
Implement resetPageVisibility so we can reset visibility without
emiting visibility state change events.
- DumpRenderTree/qt/TestRunnerQt.cpp:
(TestRunner::resetPageVisibility):
- 1:21 AM Changeset in webkit [154973] by
-
- 12 edits20 adds in trunk
[CSS Regions] position: fixed is computed relative to the first region, not the viewport
https://bugs.webkit.org/show_bug.cgi?id=111176
Reviewed by David Hyatt.
Source/WebCore:
Fixed positioned elements inside a named flow should be positioned and sized relative to the viewport,
not on the first region, as described in the spec: http://dev.w3.org/csswg/css-regions/#the-flow-into-property.
While the flow thread will still act as containing block for the fixed positioned elements, the painting and hit
testing for the fixed positioned elements is done by RenderView. The layers for the fixed positioned elements
are collected by the flow thread.
Tests: fast/regions/element-in-named-flow-absolute-from-fixed.html
fast/regions/element-in-named-flow-fixed-from-absolute.html
fast/regions/element-inflow-fixed-from-outflow-static.html
fast/regions/element-outflow-static-from-inflow-fixed.html
fast/regions/fixed-element-transformed-parent.html
fast/regions/fixed-in-named-flow-scroll.html
fast/regions/fixed-inside-fixed-in-named-flow.html
fast/regions/fixed-inside-named-flow-zIndex.html
fast/regions/fixed-pos-elem-in-namedflow-noregions.html
fast/regions/fixed-pos-region-in-nested-flow.html
- rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::collectFixedPositionedLayers):
Return the list of layers for the fixed positioned elements with named flows as containing blocks.
Used in RenderLayer:: paintFixedLayersInNamedFlows and RenderLayer:: hitTestFixedLayersInNamedFlows.
- rendering/FlowThreadController.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
For fixed positioned elements, width and height are given by the view instead of the first region.
- rendering/RenderLayer.cpp:
(WebCore::accumulateOffsetTowardsAncestor):
Modified for the fixed positioned elements inside named flows with the named flows as containing block
to take into account the view scroll.
(WebCore::compareZIndex):
Moved upwards because it is used in RenderLayer::paintFixedLayersInNamedFlows.
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
Paint the list of fixed layers directly from the RenderView instead of painting them through regions -> named flows.
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
Hit test the layers for the fix positioned elements inside named flows from the RenderView layer
instead of the region -> named flow layer.
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateRects):
- rendering/RenderLayer.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
We do not support yet the accelerated compositing for elements in named flows,
so bail out early here. We need to revisit fixed elements once we finish accelerated compositing for elements in named flows.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::fixedPositionedWithNamedFlowContainingBlock):
(WebCore::hasFixedPosInNamedFlowContainingBlock):
(WebCore::RenderObject::containerForRepaint):
Changed to take into account that RenderView should be the repaintContainer for the
fixed positioned elements with named flow as the containing block.
- rendering/RenderObject.h:
LayoutTests:
Added new tests and changed the existing ones that were relying on incorrect positioning
for fixed elements.
- fast/regions/element-in-named-flow-absolute-from-fixed-expected.txt: Added.
- fast/regions/element-in-named-flow-absolute-from-fixed.html: Added.
- fast/regions/element-in-named-flow-fixed-from-absolute-expected.txt: Added.
- fast/regions/element-in-named-flow-fixed-from-absolute.html: Added.
- fast/regions/element-inflow-fixed-from-outflow-static-expected.txt: Added.
- fast/regions/element-inflow-fixed-from-outflow-static.html: Added.
- fast/regions/element-outflow-static-from-inflow-fixed-expected.txt: Added.
- fast/regions/element-outflow-static-from-inflow-fixed.html: Added.
- fast/regions/fixed-element-transformed-parent-expected.txt: Added.
- fast/regions/fixed-element-transformed-parent.html: Added.
- fast/regions/fixed-in-named-flow-scroll-expected.txt: Added.
- fast/regions/fixed-in-named-flow-scroll.html: Added.
- fast/regions/fixed-inside-fixed-in-named-flow-expected.html: Added.
- fast/regions/fixed-inside-fixed-in-named-flow.html: Added.
- fast/regions/fixed-inside-named-flow-zIndex-expected.html: Added.
- fast/regions/fixed-inside-named-flow-zIndex.html: Added.
- fast/regions/fixed-pos-elem-in-namedflow-noregions-expected.html: Added.
- fast/regions/fixed-pos-elem-in-namedflow-noregions.html: Added.
- fast/regions/fixed-pos-elem-in-region-expected.html:
- fast/regions/fixed-pos-elem-in-region.html:
- fast/regions/fixed-pos-region-in-nested-flow-expected.html: Added.
- fast/regions/fixed-pos-region-in-nested-flow.html: Added.
- 1:15 AM Changeset in webkit [154972] by
-
- 2 edits in trunk/Tools
[GTK] libsoup upversion to fix a gstreamer issue, bug115354
https://bugs.webkit.org/show_bug.cgi?id=120613
Reviewed by Philippe Normand.
Up version of libsoup to 2.43.90. But the exact version which we'll use is not 2.43.90.
To fix bug115354, we need the Andre's patch for libsoup, but the lastest release
does not contain it. https://bugzilla.gnome.org/show_bug.cgi?id=706338
For the reason, we'll use libsoup git repo directly for a while until the next
libsoup release.
- gtk/jhbuild.modules:
- 12:29 AM Changeset in webkit [154971] by
-
- 7 edits in trunk/Source/WebCore
[BlackBerry] Remove LayerData::LayerProgram
https://bugs.webkit.org/show_bug.cgi?id=120601
Reviewed by Anders Carlsson.
JIRA 490672
All layer contents are RGBA now, so there's no need to support BGRA any
more and the LayerData::LayerProgram enum can be removed. Related dead
code was removed.
No new tests, no change in behavior.
- platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
(WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
- platform/graphics/blackberry/LayerData.h:
(WebCore::LayerData::LayerData):
- platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::compositeLayersRecursive):
(WebCore::LayerRenderer::createProgram):
- platform/graphics/blackberry/LayerRenderer.h:
- platform/graphics/blackberry/LayerWebKitThread.h:
- platform/graphics/blackberry/PluginLayerWebKitThread.cpp:
(WebCore::PluginLayerWebKitThread::setPluginView):
- 12:16 AM Changeset in webkit [154970] by
-
- 5 edits in trunk/Source/WebCore
[GStreamer] Video player sets system volume to 100%
https://bugs.webkit.org/show_bug.cgi?id=118974
Reviewed by Philippe Normand.
In order to preserve the system volume we need to keep track of
the volume being initialized in the HTMLMediaElement and then just
setting the volume to the sink when initializing the pipeline if
that volume was changed before.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialized
attribute to false.
(WebCore::HTMLMediaElement::setVolume): Set the attribute to true
when volume is changed.
(WebCore::HTMLMediaElement::updateVolume): Set the volume only if
volume was initialized.
(WebCore::HTMLMediaElement::mediaPlayerPlatformVolumeConfigurationRequired):
Platform volume configuration is required only if volume was not
initialized before.
- html/HTMLMediaElement.h: Added attribute and interface method.
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerPlatformVolumeConfigurationRequired):
Declared and added default implementation for the interface method.
(WebCore::MediaPlayer::platformVolumeConfigurationRequired):
Asked the client, meaning the HTMLMediaElement if the platform
volume configuration is required.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::mediaPlayerPrivateVolumeChangedCallback): Added log.
(WebCore::MediaPlayerPrivateGStreamerBase::setVolume): Added log.
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
Set the volume only if not platform volume is required and added log.
Sep 2, 2013:
- 11:06 PM Changeset in webkit [154969] by
-
- 6 edits24 copies in branches/safari-537-branch
Merged r154785. <rdar://problem/14664586>
- 11:02 PM Changeset in webkit [154968] by
-
- 2 edits in trunk/Source/WebCore
- inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::removeProfile): Fix braces here; a review
comment I forgot to address in my last check-in.
- 11:00 PM Changeset in webkit [154967] by
-
- 39 edits in trunk/Source
Cut down on double hashing and code needlessly using hash table iterators
https://bugs.webkit.org/show_bug.cgi?id=120611
Reviewed by Andreas Kling.
Source/WebCore:
Some of these changes are primarily code cleanup, but others could provide
a small code size and speed improvement by avoiding extra hashing.
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::Watchers::find): Use get instead of find.
(WebCore::Geolocation::Watchers::remove): Use take instead of find.
(WebCore::Geolocation::makeCachedPositionCallbacks): Use the return
value from remove to avoid hashing twice.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::addAutomaticPullNode): Use the return value from
add to avoid hashing twice.
(WebCore::AudioContext::removeAutomaticPullNode): Use the return value
from remove to avoid hashing twice.
- Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::connect): Use the return value from add to avoid
hashing twice.
(WebCore::AudioNodeInput::disconnect): Use the return value from remove
to avoid hashing twice.
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::connect): Use the return value from add to avoid
hashing twice.
(WebCore::AudioParam::disconnect): Use the return value from remove to
avoid hashing twice.
- bridge/NP_jsobject.cpp:
(ObjectMap::remove): Use remove instead of find/remove.
- dom/Node.cpp:
(WebCore::Node::~Node): Use the return value from remove instead of
find/remove.
- inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::removeProfile): Remove needless
calls to contains.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::removeSubresourceLoader): Use the return
value from remove instead of find/remove.
- loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::HostInformation::remove): Use the
return value from remove to avoid hashing twice.
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::disassociateDocumentLoader): Use
remove instead of find/remove.
(WebCore::ApplicationCacheGroup::cacheDestroyed): Removed a needless
call to contains to avoid hashing twice. It's fine to do the check
for an empty hash table unconditionally.
- page/DOMWindow.cpp:
(WebCore::addUnloadEventListener): Eliminated a local variable for clarity.
(WebCore::removeUnloadEventListener): Ditto. Also use remove instead
of find/remove.
(WebCore::removeAllUnloadEventListeners): Ditto. Also use removeAll instead
of find/removeAll.
(WebCore::addBeforeUnloadEventListener): Ditto.
(WebCore::removeBeforeUnloadEventListener): Ditto.
(WebCore::removeAllBeforeUnloadEventListeners): Ditto.
- page/FrameView.cpp:
(WebCore::FrameView::removeViewportConstrainedObject): Use the return
value from remove to avoid hashing twice.
(WebCore::FrameView::removeScrollableArea): Use the return value from
remove instead of find/remove.
(WebCore::FrameView::containsScrollableArea): Use && instead of an if
statement in a way that is idiomatic for this kind of function.
- page/Page.cpp:
(WebCore::Page::addRelevantRepaintedObject): Use the return value from
remove instead of find/remove.
- page/PageGroup.cpp:
(WebCore::PageGroup::removeUserScriptsFromWorld): Use remove instead
of find/remove.
(WebCore::PageGroup::removeUserStyleSheetsFromWorld): Use the return
value from remove instead of find/remove.
- page/PerformanceUserTiming.cpp:
(WebCore::clearPeformanceEntries): Removed a needless call to contains.
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::removeClient): Use the return value
from remove instead of find/remove.
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh): Use remove
instead of find/remove.
- platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::removeLayer): Use the return value from remove
instead of find/remove.
- platform/win/WindowMessageBroadcaster.cpp:
(WebCore::WindowMessageBroadcaster::removeListener): Use remove instead
of find/remove. It's fine to do the check for an empty hash table unconditionally.
- plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::removeDisabledPluginFile): Use the return value
from remove instead of find/remove.
- rendering/style/StyleCustomFilterProgramCache.cpp:
(WebCore::StyleCustomFilterProgramCache::lookup): Use get instead of find.
(WebCore::StyleCustomFilterProgramCache::add): Use contains instead of find
in an assertion.
(WebCore::StyleCustomFilterProgramCache::remove): Use remove instead of
find/remove.
- svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::removeClient): Use the return value from remove
instead of find/remove.
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::removeResource): Removed an unneeded call
to contains.
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Use
remove instead of find/remove. It's fine to do the check for an empty hash
table unconditionally.
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Use
remove instead of find/remove. Also removed unhelpful assertions. One is
already done by HashMap, and the other is just checking a basic invariant
of every HashMap that doesn't need to be checked.
- svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::removeClientFromCache): Removed an unneeded call
to contains.
- svg/properties/SVGAnimatedProperty.cpp:
(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty): Use the version of
remove that takes an iterator rather than the one that takes a key, so
we don't need to redo the hashing.
Source/WebKit2:
- Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::waitForMessage): Use take instead of find/remove.
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::removePageGroup): Use the return value from remove
instead of find/remove.
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
(WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
Use take instead of find/remove.
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::frameDidFinishLoading): Use take instead of find/remove.
(WebKit::NetscapePlugin::frameDidFail): Use take instead of find/remove.
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::removeItem): Use take instead of find/remove.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didFinishCheckingText): Use take instead of get/remove so we
hash only once.
(WebKit::WebPage::didCancelCheckingText): Ditto.
(WebKit::WebPage::stopExtendingIncrementalRenderingSuppression): Use the return
value from remove instead of contains/remove so we hash only once.
Source/WTF:
Double hashing is common in code that needs to combine a remove with some
action to only be done if the code is removed. The only way to avoid it is
to write code using find and a hash table iterator. To help with this, add
a boolean return value to remove functions to indicate if anything was removed.
Double hashing also happens in code that does a get followed by a remove.
The take function is helpful in this case. To help with this, add a takeFirst
funciton to ListHashSet.
- wtf/HashCountedSet.h:
(WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
that the HashCountedSet::remove function already has.
- wtf/HashMap.h:
(WTF::HashMap::remove): Added a boolean return value, true if something was removed.
- wtf/HashSet.h:
(WTF::HashSet::remove): Ditto.
- wtf/RefPtrHashMap.h:
(WTF::RefPtrHashMap::remove): Ditto.
- wtf/ListHashSet.h:
(WTF::ListHashSet::takeFirst): Added.
(WTF::ListHashSet::takeLast): Added.
(WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.
- wtf/WTFThreadData.h:
(JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
the code in this function.
- 1:30 PM Changeset in webkit [154966] by
-
- 2 edits in trunk/Source/WTF
Remove duplicate entries found by Xcode in WTF project
Platform.h was duplicated in r111778 after being added in
r111504.
A dangling reference to Ref.h was added in r154962.
- WTF.xcodeproj/project.pbxproj: Remove duplicate entries for
Platform.h and Ref.h.
- 1:10 PM Changeset in webkit [154965] by
-
- 41 edits in trunk/Source/WebCore
Generate isFooElement() functions from tagname data.
<https://webkit.org/b/120584>
Reviewed by Antti Koivisto.
Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
This also outputs an isElementOfType<T> check for the Element iterators.
Removed all the hand-written isFooElement() functions that only checked tag name.
- html/HTMLTagNames.in:
- svg/svgtags.in:
Added "generateTypeChecks" attribute as appropriate.
- GNUmakefile.am:
- GNUmakefile.list.am:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
Added to build systems based on how HTMLNames.h was done.
We're just outputting an additional header file in the generated code directory
so I suspect most ports will just pick this up automagically.
- dom/make_names.pl:
(defaultTagPropertyHash):
(printLicenseHeader):
(printTypeChecks):
(printTypeChecksHeaderFile):
Generate a separate file for each namespace with isFooElement() helpers for
elements with "generateTypeChecks" attribute set.
- 12:41 PM Changeset in webkit [154964] by
-
- 1 edit1 add in trunk/Source/WTF
Actually add Ref.h
- 11:55 AM Changeset in webkit [154963] by
-
- 21 edits in trunk
[Mac] No need for HardAutorelease, which is same as CFBridgingRelease
https://bugs.webkit.org/show_bug.cgi?id=120569
Reviewed by Andy Estes.
Source/JavaScriptCore:
- API/JSValue.mm:
(valueToString): Use CFBridgingRelease.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXTextMarkerRange):
(AXTextMarkerRangeStart):
(AXTextMarkerRangeEnd):
(textMarkerForVisiblePosition):
Use CFBridgingRelease.
- platform/mac/KURLMac.mm:
(WebCore::KURL::operator NSURL *): Use CFBridgingRelease.
(WebCore::KURL::createCFURL): Get rid of needless local variable.
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::mapHostNameWithRange):
(WebCore::URLWithData):
(WebCore::userVisibleString):
- platform/text/mac/StringImplMac.mm:
(WTF::StringImpl::operator NSString *):
Use CFBridgingRelease.
Source/WebKit/mac:
- Misc/WebNSFileManagerExtras.mm:
(-[NSFileManager _webkit_startupVolumeName]): Removed some unneeded locals.
Got rid of the pointless ref/leakRef/HardAutorelease dance, and replaced it
with a [[x copy] autorelease].
- Misc/WebNSURLExtras.mm:
(-[NSURL _web_URLWithLowercasedScheme]): Use CFBridgingRelease, and got rid
of unneeded type casts.
- Plugins/WebBasePluginPackage.mm:
(+[WebBasePluginPackage preferredLocalizationName]): Use CFBridgingRelease.
- WebView/WebPDFRepresentation.mm:
(-[WebPDFRepresentation convertPostScriptDataSourceToPDF:]): Ditto.
- WebView/WebView.mm:
(+[WebView _setCacheModel:]): Use CFBridgingRelease and got rid of unneeded
type cast.
Source/WebKit2:
- Platform/mac/StringUtilities.mm:
(WebKit::nsStringFromWebCoreString): Use CFBridgingRelease. Also
changed condition to be a little cleaner and use a constant string for empty
strings as well as null strings.
- UIProcess/API/mac/WKBrowsingContextController.mm:
(autoreleased): Switched from autorelease to CFBridgingRelease for strings,
which eliminates a type cast and makes this work under GC, although I don't
think we should compile WebKit2 for GC.
- WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
Use CFBridgingRelease.
Source/WTF:
- wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.
Deleted HardAutorelease.
(wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
(wtfCallIMP): Ditto.
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(dump): Use CFBridgingRelease.
- 11:50 AM Changeset in webkit [154962] by
-
- 68 edits in trunk/Source
Ref: A smart pointer for the reference age.
<https://webkit.org/b/120570>
Reviewed by Antti Koivisto.
Source/WebCore:
Use Ref<T> for various stack guards where null checking isn't needed.
Source/WTF:
Add a very simple simple Ref<T> smart pointer class that is never null.
It's initialized by passing a T& to the constructor and cannot be assigned to.
operator-> is not overloaded, to prevent unsafe-looking code.
The value is extracted by "T& get()", since C++ does not let you override operator.()
- wtf/Ref.h:
- 10:05 AM Changeset in webkit [154961] by
-
- 6 edits in trunk/Source/WebCore
Simplify DocumentType handling.
<https://webkit.org/b/120529>
Reviewed by Antti Koivisto.
Removed the insertedInto()/removedFrom() handlers from DocumentType.
Document no longer keeps a pointer to its doctype node, it was only used for the
document.doctype DOM API, which now just looks through the list of (<=2) children.
The ENABLE(LEGACY_VIEWPORT_ADAPTION) hunk from Document::setDocType() was moved
into Document::childrenChanged().
We no longer clear the style resolver on doctype insertion/removal since it
doesn't actually affect style anyway.
Also made doctype() return a PassRefPtr<DocumentType> instead of a raw pointer.
- dom/Document.cpp:
(WebCore::Document::dispose):
(WebCore::Document::doctype):
(WebCore::Document::childrenChanged):
- dom/Document.h:
- dom/DocumentType.cpp:
- dom/DocumentType.h:
- editing/markup.cpp:
(WebCore::documentTypeString):
- 8:44 AM Changeset in webkit [154960] by
-
- 10 edits in trunk
<https://webkit.org/b/98350> [GTK] accessibility/aria-invalid.html times out
Patch by Anton Obzhirov <Anton Obzhirov> on 2013-09-02
Reviewed by Mario Sanchez Prada.
Source/WebCore:
The patch exposes aria-invalid attribute to ATK.
- accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
Added emitting state-change signal for aria-invalid event.
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
Added aria-invalid attribute.
Tools:
Added few mappings in DumpRenderTree and WebKitTestRunner for aria-invalid in order to get the tests run properly.
- DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp:
(axObjectEventListener):
Added mapping for invalid-entry event parameter.
- DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(coreAttributeToAtkAttribute):
Added mapping to aria-invalid.
(AccessibilityUIElement::stringAttributeValue):
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::coreAttributeToAtkAttribute):
Added mapping to aria-invalid.
LayoutTests:
Unskipped accessibility/aria-invalid.html which is passing now.
- platform/gtk/TestExpectations: Removed passing test.
- platform/gtk-wk2/TestExpectations: Added test timing out in WK2 only.
- 8:43 AM Changeset in webkit [154959] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(r154909): caused many crashes on Qt WK2, EFL WK2
https://bugs.webkit.org/show_bug.cgi?id=120600
Reviewed by Andreas Kling.
- Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::decode): keyTime should be double here too.
- 8:22 AM Changeset in webkit [154958] by
-
- 41 edits in trunk/Source/WebCore
Unreviewed, rolling out r154955.
http://trac.webkit.org/changeset/154955
https://bugs.webkit.org/show_bug.cgi?id=120605
broke xcode4 build :| (Requested by kling on #webkit).
Patch by Commit Queue <commit-queue@webkit.org> on 2013-09-02
- GNUmakefile.am:
- GNUmakefile.list.am:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
- dom/make_names.pl:
(defaultTagPropertyHash):
(printLicenseHeader):
- html/HTMLAnchorElement.h:
(WebCore::isHTMLAnchorElement):
(WebCore::HTMLAnchorElement):
- html/HTMLAreaElement.h:
(WebCore::isHTMLAreaElement):
(WebCore::HTMLAreaElement):
- html/HTMLAudioElement.h:
(WebCore::isHTMLAudioElement):
- html/HTMLBaseElement.h:
(WebCore::isHTMLBaseElement):
(WebCore::HTMLBaseElement):
- html/HTMLCanvasElement.h:
(WebCore::isHTMLCanvasElement):
- html/HTMLElement.h:
- html/HTMLFieldSetElement.h:
(WebCore::isHTMLFieldSetElement):
(WebCore::HTMLFieldSetElement):
- html/HTMLFormElement.h:
(WebCore::isHTMLFormElement):
- html/HTMLFrameSetElement.h:
(WebCore::isHTMLFrameSetElement):
(WebCore::HTMLFrameSetElement):
- html/HTMLImageElement.h:
(WebCore::isHTMLImageElement):
- html/HTMLInputElement.h:
(WebCore::isHTMLInputElement):
- html/HTMLLabelElement.h:
(WebCore::isHTMLLabelElement):
(WebCore::HTMLLabelElement):
- html/HTMLLegendElement.h:
(WebCore::isHTMLLegendElement):
(WebCore::HTMLLegendElement):
- html/HTMLMapElement.h:
(WebCore::isHTMLMapElement):
- html/HTMLMeterElement.h:
(WebCore::isHTMLMeterElement):
- html/HTMLOptGroupElement.h:
(WebCore::isHTMLOptGroupElement):
- html/HTMLOptionElement.h:
(WebCore::isHTMLOptionElement):
- html/HTMLParamElement.h:
(WebCore::isHTMLParamElement):
(WebCore::HTMLParamElement):
- html/HTMLProgressElement.h:
(WebCore::isHTMLProgressElement):
- html/HTMLScriptElement.h:
(WebCore::isHTMLScriptElement):
- html/HTMLSourceElement.h:
(WebCore::isHTMLSourceElement):
(WebCore::HTMLSourceElement):
- html/HTMLStyleElement.h:
(WebCore::isHTMLStyleElement):
(WebCore::HTMLStyleElement):
- html/HTMLTableElement.h:
(WebCore::isHTMLTableElement):
- html/HTMLTableRowElement.h:
(WebCore::isHTMLTableRowElement):
(WebCore::HTMLTableRowElement):
- html/HTMLTagNames.in:
- html/HTMLTextAreaElement.h:
(WebCore::isHTMLTextAreaElement):
- html/HTMLTitleElement.h:
(WebCore::isHTMLTitleElement):
(WebCore::HTMLTitleElement):
- html/HTMLTrackElement.h:
(WebCore::isHTMLTrackElement):
(WebCore::HTMLTrackElement):
- svg/SVGElement.h:
- svg/SVGFontElement.h:
(WebCore::isSVGFontElement):
- svg/SVGFontFaceElement.h:
(WebCore::isSVGFontFaceElement):
(WebCore::SVGFontFaceElement):
- svg/SVGForeignObjectElement.h:
(WebCore::isSVGForeignObjectElement):
(WebCore::SVGForeignObjectElement):
- svg/SVGImageElement.h:
(WebCore::isSVGImageElement):
- svg/SVGScriptElement.h:
(WebCore::isSVGScriptElement):
- svg/svgtags.in:
- 8:17 AM Changeset in webkit [154957] by
-
- 68 edits in trunk/Source/WebCore
Clean up ContainerNode::childrenChanged
https://bugs.webkit.org/show_bug.cgi?id=120599
Reviewed by Andreas Kling.
- Make childrenChanged take a single struct argument instead of a long list of arguments.
- Use enum instead of childCountDelta. It was always -1, 0, 1 or the total number of children (in case of removing them all).
- Remove use of Node*, give the change range as Elements.
- Related cleanups.
- dom/Attr.cpp:
(WebCore::Attr::childrenChanged):
- dom/Attr.h:
- dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::dispatchModifiedEvent):
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::notifyChildInserted):
(WebCore::ContainerNode::notifyChildRemoved):
Add private helpers for setting up the struct.
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::removeChild):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::childrenChanged):
(WebCore::ContainerNode::updateTreeAfterInsertion):
- dom/ContainerNode.h:
- dom/Document.cpp:
(WebCore::Document::childrenChanged):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::checkForSiblingStyleChanges):
Clean up and simplify. Since we now get element range automatically we don't need to compute it.
(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):
- dom/Element.h:
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::childrenChanged):
- dom/ShadowRoot.h:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::childrenChanged):
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
Try to keep the existing behavior. This code needs more cleanup to be sane. It shouldn't operate on Nodes
as it only really cares about Elements.
- html/HTMLElement.h:
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::childrenChanged):
- html/HTMLFieldSetElement.h:
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::childrenChanged):
- html/HTMLObjectElement.h:
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::childrenChanged):
- html/HTMLOptGroupElement.h:
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::childrenChanged):
- html/HTMLOptionElement.h:
- html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::childrenChanged):
- html/HTMLOutputElement.h:
- html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::childrenChanged):
- html/HTMLScriptElement.h:
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::childrenChanged):
- html/HTMLSelectElement.h:
- html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::childrenChanged):
- html/HTMLStyleElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::childrenChanged):
- html/HTMLTextAreaElement.h:
- html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::childrenChanged):
- html/HTMLTitleElement.h:
- html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::childrenChanged):
- html/shadow/InsertionPoint.h:
- svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::childrenChanged):
- svg/SVGClipPathElement.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::childrenChanged):
- svg/SVGElement.h:
- svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::childrenChanged):
- svg/SVGFELightElement.h:
- svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::childrenChanged):
- svg/SVGFilterElement.h:
- svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
- svg/SVGFilterPrimitiveStandardAttributes.h:
- svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::childrenChanged):
- svg/SVGFontFaceElement.h:
- svg/SVGFontFaceFormatElement.cpp:
(WebCore::SVGFontFaceFormatElement::childrenChanged):
- svg/SVGFontFaceFormatElement.h:
- svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::childrenChanged):
- svg/SVGFontFaceSrcElement.h:
- svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::childrenChanged):
- svg/SVGFontFaceUriElement.h:
- svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::childrenChanged):
- svg/SVGGradientElement.h:
- svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::childrenChanged):
- svg/SVGMarkerElement.h:
- svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::childrenChanged):
- svg/SVGMaskElement.h:
- svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::childrenChanged):
- svg/SVGPatternElement.h:
- svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::childrenChanged):
- svg/SVGScriptElement.h:
- svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::childrenChanged):
- svg/SVGStyleElement.h:
- svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::childrenChanged):
- svg/SVGTitleElement.h:
- 8:15 AM Changeset in webkit [154956] by
-
- 2 edits in trunk/LayoutTests
[Qt] Unreviewed gardening. Skip some failing tests.
- platform/qt/TestExpectations:
- 8:12 AM Changeset in webkit [154955] by
-
- 41 edits in trunk/Source/WebCore
Generate isFooElement() functions from tagname data.
<https://webkit.org/b/120584>
Reviewed by Antti Koivisto.
Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
This also outputs an isElementOfType<T> check for the Element iterators.
Removed all the hand-written isFooElement() functions that only checked tag name.
- html/HTMLTagNames.in:
- svg/svgtags.in:
Added "generateTypeChecks" attribute as appropriate.
- GNUmakefile.am:
- GNUmakefile.list.am:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
Added to build systems based on how HTMLNames.h was done.
We're just outputting an additional header file in the generated code directory
so I suspect most ports will just pick this up automagically.
- dom/make_names.pl:
(defaultTagPropertyHash):
(printLicenseHeader):
(printTypeChecks):
(printTypeChecksHeaderFile):
Generate a separate file for each namespace with isFooElement() helpers for
elements with "generateTypeChecks" attribute set.
- 8:03 AM Changeset in webkit [154954] by
-
- 6 edits4 adds in trunk
Use edgeMode=duplicate for blurring on filter() function
https://bugs.webkit.org/show_bug.cgi?id=120590
Reviewed by Antti Koivisto.
Source/WebCore:
Filters on the CSS Image function filter() are not allowed to extend the
dimension of the input image. This causes weird results on blurring an image,
where the fading on the edges is clipped at the half of the fading.
We shouldn't fade edges at all and use the edgeMode=duplicate instead.
This will duplicate the pixel value on the nearest edge of the input image
instead of taking transparent black and results in nice blurred images with
sharp edges.
Spec: http://dev.w3.org/fxtf/filters/#blurEquivalent
Test: fast/filter-image/filter-image-blur.html
- css/CSSFilterImageValue.cpp: Pass consumer information to the renderer.
(WebCore::CSSFilterImageValue::image):
- rendering/FilterEffectRenderer.cpp: Set edgeMode for feGaussianBlur to
'duplicate' or 'none' depending on the consumer.
(WebCore::FilterEffectRenderer::build):
- rendering/FilterEffectRenderer.h: Add enumeration to differ between the
different consumers of the renderer.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Pass consumer
information to the renderer.
LayoutTests:
Added test to check that filter(<image>, blur(<value>)) takes
the edgeMode 'duplicate' instead of none.
- fast/filter-image/filter-image-blur-expected.html: Added.
- fast/filter-image/filter-image-blur.html: Added.
- fast/filter-image/resources/svg-blur.svg: Added.
- fast/filter-image/resources/svg-noblur.svg: Added.
- 7:40 AM Changeset in webkit [154953] by
-
- 2 edits in trunk/Source/WebKit/gtk
[ATK] Leak: Leaks in testatk.c
https://bugs.webkit.org/show_bug.cgi?id=118675
Patch by Brian Holt <brian.holt@samsung.com> on 2013-09-02
Reviewed by Mario Sanchez Prada.
Fixed memory leaks by matching ref calls with unrefs.
- tests/testatk.c:
(testWebkitAtkCaretOffsets):
(testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces):
(testWebkitAtkGetTextAtOffset):
(testWebkitAtkGetTextAtOffsetNewlines):
(testWebkitAtkGetTextAtOffsetTextarea):
(testWebkitAtkGetTextAtOffsetTextInput):
(testWebkitAtkGetTextInParagraphAndBodySimple):
(testWebkitAtkGetTextInParagraphAndBodyModerate):
(testWebkitAtkTextAttributes):
(testWebkitAtkTextSelections):
(testWebkitAtkListsOfItems):
- 7:37 AM Changeset in webkit [154952] by
-
- 2 edits in trunk/LayoutTests
[Qt] Unreviewed gardening.
https://bugs.webkit.org/show_bug.cgi?id=120595
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-09-02
- platform/qt/TestExpectations: Skipping failing xss-DENIED tests.
- 5:48 AM Changeset in webkit [154951] by
-
- 2 edits in trunk/Tools
Save md5 correctly when jhbuildPath doesn't exist yet
https://bugs.webkit.org/show_bug.cgi?id=120548
Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-09-02
Reviewed by Gustavo Noronha Silva.
After r152605, Md5 for jhbuild files are saved before the update
process, this prevents the script to restart update from scratch
when initial checkouts fail. However it causes an issue when builddir
(or builddir/Dependencies) doesn't exist yet. In that case the
saveJhbuildMd5 function fails to create md5 files.
This patch adds a checking for the jhbuildPath and creates it if
necessary before trying to open the md5 files.
- Scripts/update-webkit-libs-jhbuild:
(saveJhbuildMd5):
- 5:41 AM Changeset in webkit [154950] by
-
- 2 edits in trunk/Tools
Unreviewed. Move myself to the reviewers list.
- Scripts/webkitpy/common/config/contributors.json:
Sep 1, 2013:
- 11:36 PM Changeset in webkit [154949] by
-
- 9 edits4 adds in trunk
[WK2][Mac] Drag and drop tests interfere with user's UI
https://bugs.webkit.org/show_bug.cgi?id=120538
Reviewed by Dan Bernstein.
This makes running WebKit2 regression tests locally more viable. The patch doesn't
fix drag and drop tests to work as expected, I posted some thought about that in
<https://bugs.webkit.org/show_bug.cgi?id=68552>.
- WebKitTestRunner/EventSenderProxy.h: (WTR::EventSenderProxy::position):
- WebKitTestRunner/TestController.h: (WTR::TestController::eventSenderProxy): Expose a way to get current mouse position from anywhere in WKTR code.
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added new files.
- WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseUp): Copied a FIXME comment from DumpRenderTree.
- WebKitTestRunner/mac/PlatformWebViewMac.mm: (-[TestRunnerWKView dragImage:at:offset:event:pasteboard:source:slideBack:]): Override drag initiation, using a custom NSDraggingInfo implementation.
- WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitialize): Replace NSEvent with a custom class.
- WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h: Added.
- WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm: Added.
- WebKitTestRunner/mac/WebKitTestRunnerEvent.h: Added.
- WebKitTestRunner/mac/WebKitTestRunnerEvent.mm: Added. Largely a copy of DumpRenderTree classes, modified to not use global variables. We should consider making these variables static in EventSenderProxy though, as it's strange that mouse state in WKTR is reset between tests without WebKit ever being told about that.
- 9:53 PM Changeset in webkit [154948] by
-
- 8 edits9 adds in trunk
Source/WebCore: Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582
Add 'edgeMode' attribute to the SVGFEGaussianBlur element. This attribute
allows users to define the behavior on edges with the values 'none' where
pixel values outside the input image are treated as transparent black. (The
current blurring behavior.) 'duplicate' which repeats the values on the
nearest edge and 'warp', which takes the pixel of the opposite site of
the input image.
Beside the attribute, this patch implements the behavior of 'duplicate'.
http://dev.w3.org/fxtf/filters/#feGaussianBlurEdgeModeAttribute
Reviewed by Rob Buis.
Tests: svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html
svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html
svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg
svg/filters/svg-gaussianblur-edgeMode-duplicate.svg
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::FEGaussianBlur):
(WebCore::FEGaussianBlur::create):
(WebCore::FEGaussianBlur::edgeMode):
(WebCore::FEGaussianBlur::setEdgeMode):
(WebCore::boxBlur):
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
- platform/graphics/filters/FEGaussianBlur.h:
- rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::build):
- svg/SVGFEGaussianBlurElement.h:
- svg/SVGFEGaussianBlurElement.idl:
LayoutTests: Add edgeMode attribtue.
Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582
Added DOM and SVGDOM tests for the attribute 'edgeMode'.
Also added a reftest to test edgeMode='duplicate'.
Reviewed by Rob Buis.
- platform/mac/svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.png: Added.
- svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr-expected.txt: Added.
- svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html: Added.
- svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.txt: Added.
- svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html: Added.
- svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-dom-edgeMode-attr.js: Added.
(repaintTest):
- svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.js: Added.
(repaintTest):
- svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg: Added.
- svg/filters/svg-gaussianblur-edgeMode-duplicate.svg: Added.
- 1:04 PM Changeset in webkit [154947] by
-
- 9 edits in trunk/Source/WebCore
EventHandler::m_frame should be a Frame&.
<https://webkit.org/b/120580>
Reviewed by Darin Adler.
EventHandler is tied to the lifetime of its frame, so let m_frame be a Frame&.
A handful of null checks and assertions removed.
- 12:23 PM Changeset in webkit [154946] by
-
- 2 edits in trunk/Source/WebCore
Fix a mistake in my recent pasteboard/editor refactoring that was causing tests to fail.
- editing/mac/EditorMac.mm:
(WebCore::getImage): One place this said cachedImage but it should have said tentativeCachedImage.
- 12:12 PM Changeset in webkit [154945] by
-
- 6 edits in trunk/Source/WebCore
HitTestResult should have innerNonSharedElement
https://bugs.webkit.org/show_bug.cgi?id=120579
Reviewed by Andreas Kling.
- editing/Editor.cpp:
(WebCore::Editor::copyImage): Call HitTestResult member function version of
innerNonSharedElement instead of a local function that does it.
- page/Chrome.cpp:
(WebCore::Chrome::setToolTip): Use innerNonSharedElement instead of getting
the node and checking if it's an input element. Also added some missing braces.
- page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromHitTestResult): Use targetNode for
local variables instead of innerNode to match the HitTestResult function name.
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Ditto.
(WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
(WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
(WebCore::EventHandler::handleMousePressEvent): Ditto.
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerElement): Rewrote so there there is no loop.
(WebCore::HitTestResult::innerNonSharedElement): Ditto.
- rendering/HitTestResult.h: Added innerNonSharedElement. Generally speaking,
we'd like to avoid using Node unless there is some real need.
- 10:12 AM Changeset in webkit [154944] by
-
- 7 edits2 adds in trunk
Volume slider value should be 0 when audio is muted
https://bugs.webkit.org/show_bug.cgi?id=120553
Reviewed by Eric Carlson.
Source/WebCore:
Fixed the problem of showing a non empty slider when audio is
muted.
Test: media/volume-bar-empty-when-muted.html.
- html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset): Use setSliderVolume.
(WebCore::MediaControls::changedVolume): Use setSliderVolume.
(WebCore::MediaControls::setSliderVolume): Added to set the volume
to 0 when muted and to its value otherwise.
- html/shadow/MediaControls.h: Added setSliderVolume.
- html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::reset): Used setSliderVolume and
setFullscreenSliderVolume.
(WebCore::MediaControlsApple::changedVolume): Used
setFullscreenSliderVolume.
(WebCore::MediaControlsApple::setFullscreenSliderVolume): Added to
set the volume to 0 when muted and to its value otherwise.
- html/shadow/MediaControlsApple.h: Added setFullscreenSliderVolume
- html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlsBlackBerry::reset): Used setSliderVolume.
LayoutTests:
Added test to check if the volume slider value is 0 when the
element is muted even if volume is set to something else.
- media/volume-bar-empty-when-muted-expected.txt: Added.
- media/volume-bar-empty-when-muted.html: Added.
- 7:57 AM Changeset in webkit [154943] by
-
- 12 edits in trunk/Source/WebCore
Give EditCommand a protected Frame& getter.
<https://webkit.org/b/120574>
Reviewed by Darin Adler.
EditCommand is only created for documents that are attached to a Frame,
we already ASSERTed as much in the EditCommand constructor.
This patch adds a "Frame& EditCommand::frame()" helper, so EditCommand
and its subclasses don't have to fumble around with pointers.
- 6:53 AM Changeset in webkit [154942] by
-
- 11 edits in trunk/LayoutTests
Web Inspector: A little more test cleanup
https://bugs.webkit.org/show_bug.cgi?id=120575
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-09-01
Reviewed by Timothy Hatcher.
Give tests names and remove unnecessary script type attributes.
- inspector-protocol/debugger/removeBreakpoint-expected.txt:
- inspector-protocol/debugger/removeBreakpoint.html:
- inspector-protocol/debugger/setBreakpoint-autoContinue-expected.txt:
- inspector-protocol/debugger/setBreakpoint-autoContinue.html:
- inspector-protocol/debugger/setBreakpoint-column-expected.txt:
- inspector-protocol/debugger/setBreakpoint-column.html:
- inspector-protocol/debugger/setBreakpoint-condition-expected.txt:
- inspector-protocol/debugger/setBreakpoint-condition.html:
- inspector-protocol/debugger/setBreakpoint-expected.txt:
- inspector-protocol/debugger/setBreakpoint.html:
- 4:23 AM Changeset in webkit [154941] by
-
- 6 edits in trunk/LayoutTests
Fixed typo in media/video-volume-slider.html
https://bugs.webkit.org/show_bug.cgi?id=120578
Unreviewed.
- media/video-volume-slider.html: Fixed typo.
- platform/gtk/media/video-volume-slider-expected.png:
- platform/gtk/media/video-volume-slider-expected.txt:
- platform/mac/media/video-volume-slider-expected.png:
- platform/mac/media/video-volume-slider-expected.txt: New
baselines.
- 3:33 AM Changeset in webkit [154940] by
-
- 13 edits1 add in trunk/Source/WebCore
Add element ancestor iterator
https://bugs.webkit.org/show_bug.cgi?id=120563
Reviewed by Andreas Kling.
This patch adds ancestor iterators. They iterate over elements parent chain up to the root.
To iterate over Element ancestors:
auto ancestors = elementAncestors(this);
for (auto it = ancestors.begin(), end = ancestors.end(); it != end; ++it) {
Element& element = *it;
...
To iterate over Element ancestors including the current element:
auto lineage = elementLineage(this);
for (auto it = lineage.begin(), end = lineage.end(); it != end; ++it) {
Element& element = *it;
...
To iterate over ancestors of a specific Element subclass:
auto htmlAncestors = ancestorsOfType<HTMLElement>(this);
for (auto it = htmlAncestors.begin(), end = htmlAncestors.end(); it != end; ++it) {
HTMLElement& htmlElement = *it;
...
To iterate over ancestors of a specific Element subclass including the current element:
auto htmlLineage = lineageOfType<HTMLElement>(this);
for (auto it = htmlLineage.begin(), end = htmlLineage.end(); it != end; ++it) {
HTMLElement& htmlElement = *it;
...
The patch also uses the new types in a few places.
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::labelForElement):
- dom/ElementAncestorIterator.h: Added.
(WebCore::::ElementAncestorIterator):
(WebCore::::operator):
(WebCore::::ElementAncestorConstIterator):
(WebCore::::ElementAncestorIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementAncestorConstIteratorAdapter):
(WebCore::elementLineage):
(WebCore::elementAncestors):
(WebCore::ancestorsOfType):
- dom/ElementIterator.h:
(WebCore::findElementAncestorOfType):
(WebCore::::traverseAncestor):
(WebCore::=):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
- html/HTMLFieldSetElement.h:
(WebCore::isHTMLFieldSetElement):
(WebCore::HTMLFieldSetElement):
- html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::findContaining):
- html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement):
- html/HTMLInputElement.h:
(WebCore::isHTMLInputElement):
(WebCore::toHTMLInputElement):
- html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::associatedControl):
Aug 31, 2013:
- 11:26 PM Changeset in webkit [154939] by
-
- 7 edits in trunk/Source/WebCore
Refactor URL and image writing so layer-violating parts are in Editor, not Pasteboard (Mac-only at first)
https://bugs.webkit.org/show_bug.cgi?id=120573
Reviewed by Andreas Kling.
- editing/Editor.cpp:
(WebCore::Editor::copy): Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.
(WebCore::Editor::copyURL): Use writeURLToPasteboard instead of Pasteboard::writeURL on Mac.
(WebCore::innerNonSharedElement): Added. Used in copyImage.
(WebCore::Editor::copyImage): Use innerNonSharedElement instead of innerNonSharedNode.
Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.
- editing/Editor.h: Add new functions, writeURLToPasteboard and writeImageToPasteboard,
both Mac-only for now.
- editing/mac/EditorMac.mm:
(WebCore::Editor::pasteWithPasteboard): Removed unneeded "m_frame.editor()" round trip that
was left behind in this function.
(WebCore::getImage): Added. Helper used by writeImageToPasteboard.
(WebCore::Editor::writeURLToPasteboard): Added. Sets up PasteboardURL and then calls
Pasteboard::write with it.
(WebCore::Editor::writeImageToPasteboard): Added. Sets up PasteboardImage and then calls
Pasteboard::write with it.
- page/DragController.cpp:
(WebCore::DragController::startDrag): Use Editor::writeURLToPasteboard instead of
Pasteboard::writeURL on Mac.
- platform/Pasteboard.h: Added PasteboardURL and PasteboardImage structures.
Declare write functions for PasteboardWebContent, PasteboardURL, and PasteboardImage.
Guard writeURL and writeImage with !PLATFORM(MAC).
- platform/mac/PasteboardMac.mm:
(WebCore::writeURLForTypes): Changed this to take a PasteboardURL.
(WebCore::Pasteboard::write): Renamed writeURL and writeImage to this. Refactor both
to take PasteboardURL and PasteboardImage arguments.
(WebCore::fileWrapper): Renamed from fileWrapperForImage since the fact that this is
for an image is now clear from its argument, a PasteboardImage.
(WebCore::writeFileWrapperAsRTFDAttachment): Changed this function to use early return.
- 10:30 PM Changeset in webkit [154938] by
-
- 69 edits in trunk/Source/WebCore
EditCommand constructors should take Document&.
<https://webkit.org/b/120566>
Reviewed by Darin Adler.
Let EditCommand's and all subclass constructors take Document& instead of Document*.
EditCommand::document() now returns a Document&.
Added Editor::document() which returns Editor::frame().document() after asserting
that it's non-null, to make passing a Document& from Editor functions easier.
- 10:29 PM Changeset in webkit [154937] by
-
- 42 edits in trunk/Source/WebCore
Make more use of toRenderFoo(RenderObject&) cast helpers.
<https://webkit.org/b/120565>
Reviewed by Darin Adler.
To make amends for putting ugly toRenderFoo(&renderer) casts everywhere,
here's a patch that switches a bunch of code over to using reference-based casts.
I removed pointer-based casts altogether for these renderers:
- RenderBR
- RenderCombineText
- RenderListMarker
- RenderVideo
- RenderView
- 10:04 PM Changeset in webkit [154936] by
-
- 2 edits in trunk/Source/WebCore
warning: unused parameter ‘renderingMode' in ImageBufferCairo.cpp:94
https://bugs.webkit.org/show_bug.cgi?id=120543
Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-08-31
Reviewed by Darin Adler.
Fixing warning by adding ASSERT_UNUSED.
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::ImageBuffer):
- 7:02 PM Changeset in webkit [154935] by
-
- 13 edits in trunk/Source/JavaScriptCore
CodeBlock refactoring broke profile dumping
https://bugs.webkit.org/show_bug.cgi?id=120551
Reviewed by Michael Saboff.
Fix the bug, and did a big clean-up of how Executable returns CodeBlocks. A lot
of the problems we have with code like CodeBlock::baselineVersion() is that we
were trying *way too hard* to side-step the fact that Executable can't return a
CodeBlock*. Previously it could only return CodeBlock&, so if it didn't have a
CodeBlock yet, you were screwed. And if you didn't know, or weren't sure, if it
did have a CodeBlock, you were really going to have a bad time. Also it really
bugs me that the methods were called generatedBytecode(). In all other contexts
if you ask for a CodeBlock, then method to call is codeBlock(). So I made all
of those changes.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::baselineVersion):
(JSC::ProgramCodeBlock::replacement):
(JSC::EvalCodeBlock::replacement):
(JSC::FunctionCodeBlock::replacement):
(JSC::CodeBlock::globalObjectFor):
- bytecode/CodeOrigin.cpp:
(JSC::InlineCallFrame::hash):
- dfg/DFGOperations.cpp:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
- jit/JITCode.h:
(JSC::JITCode::isExecutableScript):
(JSC::JITCode::isLowerTier):
- jit/JITStubs.cpp:
(JSC::lazyLinkFor):
(JSC::DEFINE_STUB_FUNCTION):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::traceFunctionPrologue):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):
- runtime/ArrayPrototype.cpp:
(JSC::isNumericCompareFunction):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::arityCheckFor):
- runtime/Executable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/Executable.h:
(JSC::EvalExecutable::codeBlock):
(JSC::ProgramExecutable::codeBlock):
(JSC::FunctionExecutable::eitherCodeBlock):
(JSC::FunctionExecutable::codeBlockForCall):
(JSC::FunctionExecutable::codeBlockForConstruct):
(JSC::FunctionExecutable::codeBlockFor):
- runtime/FunctionExecutableDump.cpp:
(JSC::FunctionExecutableDump::dump):
- 5:21 PM Changeset in webkit [154934] by
-
- 2 edits in trunk/Source/WebKit2
warning: unused parameter point and area in EwkView.cpp:1390
https://bugs.webkit.org/show_bug.cgi?id=120545
Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-08-31
Reviewed by Darin Adler.
- UIProcess/API/efl/EwkView.cpp:
(EwkView::didFindZoomableArea): Added UNUSED_PARAM.
- 2:56 PM Changeset in webkit [154933] by
-
- 2 edits in trunk/Source/WebCore
Fix typo in r154931 that caused assertions in continuation tests.
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
- 2:05 PM Changeset in webkit [154932] by
-
- 4 edits in trunk
XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
https://bugs.webkit.org/show_bug.cgi?id=120490
Reviewed by Ryosuke Niwa.
Source/WebCore:
Retain the key of the namespaces map by using AtomicString as key instead of AtomicStringImpl*.
- editing/MarkupAccumulator.h:
LayoutTests:
Unskip these previously failing tests.
- 11:34 AM Changeset in webkit [154931] by
-
- 42 edits in trunk/Source/WebCore
InlineBox::renderer() and pals should return references.
<https://webkit.org/b/120562>
Reviewed by Antti Koivisto.
Make InlineBox::renderer() and its friends return references instead of pointers.
Every box always has a renderer, so this clears up any ambiguity, and a number of
weird assertions in SVG code.
Made InlineBox::m_renderer private so subclasses have to go through renderer().
The next step will be to replace renderer() with tightly-typed accessors where
applicable (e.g InlineTextBox's renderer is always a RenderText.)
Also added reference versions of these RenderObject casts:
- toRenderBox()
- toRenderBlock()
- toRenderInline()
- toRenderSVGInlineText()
- 8:18 AM Changeset in webkit [154930] by
-
- 2 edits in trunk/Source/WebKit2
Remove unused variable in LayerTreeHost
https://bugs.webkit.org/show_bug.cgi?id=118950
Patch by Jae Hyun Park <jae.park@company100.net> on 2013-08-31
Reviewed by Anders Carlsson.
m_waitingForUIProcess has been renamed to m_isWaitingForRenderer as of
r152183, and it is a private variable in CoordinatedLayerTreeHost. Thus,
we don't need m_waitingForUIProcess in LayerTreeHost.
- WebProcess/WebPage/LayerTreeHost.h:
- 7:14 AM Changeset in webkit [154929] by
-
- 4 edits in trunk/Source/WebCore
PostAttachCallbackDisabler should take a ContainerNode&.
<https://webkit.org/b/120560>
Reviewed by Antti Koivisto.
Let PostAttachCallbackDisabler take a reference and remove an ugly assertion.
- dom/ContainerNode.h:
(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
- dom/Document.cpp:
(WebCore::Document::recalcStyle):
- style/StyleResolveTree.cpp:
(WebCore::Style::attachRenderTree):
- 7:12 AM Changeset in webkit [154928] by
-
- 28 edits2 moves in trunk/Source/WebCore
Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendantIterator
https://bugs.webkit.org/show_bug.cgi?id=120561
Reviewed by Andreas Kling.
New names are more descriptive and consistent. They also put related iterator files close by in file lists.
The types are always used with auto so longer names don't make them any clumsier to use.
For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
to be included by the clients.
- GNUmakefile.list.am:
- Target.pri:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityNodeObject.cpp:
- accessibility/AccessibilityRenderObject.cpp:
- accessibility/AccessibilityTable.cpp:
- css/CSSFontFaceSource.cpp:
- dom/ChildIterator.h: Removed.
- dom/DescendantIterator.h: Removed.
- dom/Document.cpp:
- dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.
(WebCore::::ElementChildIterator):
(WebCore::::operator):
(WebCore::::ElementChildConstIterator):
(WebCore::::ElementChildIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementChildConstIteratorAdapter):
(WebCore::elementChildren):
(WebCore::childrenOfType):
- dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.
(WebCore::::ElementDescendantIterator):
(WebCore::::operator):
(WebCore::::ElementDescendantConstIterator):
(WebCore::::ElementDescendantIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementDescendantConstIteratorAdapter):
(WebCore::elementDescendants):
(WebCore::descendantsOfType):
- dom/ElementIterator.h:
- dom/Node.cpp:
- dom/TreeScope.cpp:
- editing/ApplyStyleCommand.cpp:
- editing/markup.cpp:
- html/HTMLAppletElement.cpp:
- html/HTMLFieldSetElement.cpp:
- html/HTMLLabelElement.cpp:
- html/HTMLMapElement.cpp:
- html/HTMLMediaElement.cpp:
- html/HTMLObjectElement.cpp:
- loader/PlaceholderDocument.cpp:
- rendering/FilterEffectRenderer.cpp:
- style/StyleResolveTree.cpp:
- svg/SVGElement.cpp:
- svg/SVGSVGElement.cpp:
- svg/animation/SMILTimeContainer.cpp:
- svg/graphics/SVGImage.cpp:
- 7:07 AM Changeset in webkit [154927] by
-
- 3 edits in trunk/Source/WebCore
Don't do document style recalc unless there's a RenderView.
<https://webkit.org/b/120558>
Reviewed by Antti Koivisto.
There's no sense in computing style for a Document that has no RenderView.
Checking this before continuing also lets us know that there's a Frame & FrameView
present, simplifying some things later on.
- dom/Document.cpp:
(WebCore::Document::recalcStyle):
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- 6:04 AM Changeset in webkit [154926] by
-
- 7 edits1 move1 add in trunk/Source/WebCore
Add common base for element iterators
https://bugs.webkit.org/show_bug.cgi?id=120557
Reviewed by Andreas Kling.
Add ElementIterator and use it as the base for child and descendant iterators. The only difference is the definition of operator++.
Also renamed DescendantIteratorAssertions to ElementIteratorAssertions.
- GNUmakefile.list.am:
- Target.pri:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
- dom/ChildIterator.h:
(WebCore::::ChildIterator):
(WebCore::::operator):
(WebCore::::ChildConstIterator):
(WebCore::::begin):
(WebCore::::end):
- dom/DescendantIterator.h:
(WebCore::::DescendantIterator):
(WebCore::::operator):
(WebCore::::DescendantConstIterator):
- dom/DescendantIteratorAssertions.h: Removed.
- dom/ElementIterator.h: Added.
(WebCore::::ElementIterator):
(WebCore::::traverseNext):
(WebCore::::traversePrevious):
(WebCore::::traverseNextSibling):
(WebCore::::traversePreviousSibling):
(WebCore::::operator):
(WebCore::=):
(WebCore::::ElementConstIterator):
- dom/ElementIteratorAssertions.h: Copied from Source/WebCore/dom/DescendantIteratorAssertions.h.
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
(WebCore::ElementIteratorAssertions::domTreeHasMutated):
(WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):
Aug 30, 2013:
- 7:16 PM Changeset in webkit [154925] by
-
- 2 edits in trunk/LayoutTests
Fix the Mac results.
- platform/mac/compositing/video/video-object-fit-expected.txt:
- 6:10 PM Changeset in webkit [154924] by
-
- 2 edits in trunk/Source/WebCore
[Windows] Build fix after r154921.
AVFoundationCF uses an internal wrapper object around the C-API. The call point
in the original patch was inside the wrapper, which did not (yet) provide
a method implementation.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::updateVideoLayerGravity):
- 5:24 PM Changeset in webkit [154923] by
-
- 2 edits in trunk/Tools
[Windows] Unreviewed build fix.
- win/AssembleBuildLogs/AssembleLogs.cmd: Make sure WebInspectorUI build output is reported
from the build machines.
- 5:22 PM Changeset in webkit [154922] by
-
- 5 edits1 delete in trunk/Source
Source/WebInspectorUI: [Windows] Correct windows build. Get rid of unnecessary pre-build step. We don't build anything
in this project, just copy some files into the WebKit resource folder. This was fooling the
build system into thinking something failed, resulting in a build error.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove reference to WebInspectorUIPreBuild.cmd
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
- WebInspectorUI.vcxproj/WebInspectorUIPreBuild.cmd: Removed.
Source/WebKit: [Windows] Unreviewed build correction.
Update project dependencies so that build logs on machines will include output from the
WebInspectorUI project.
- WebKit.vcxproj/WebKit.sln:
- 5:14 PM Changeset in webkit [154921] by
-
- 23 edits9 adds in trunk
Video with object-fit: cover can spill outside the box
https://bugs.webkit.org/show_bug.cgi?id=52103
Source/WebCore:
Reviewed by Dean Jackson.
object-fit on renderers which use accelerated compositing needs special
treatment.
For directly composited images, and video, GraphicsLayer needs to know
both the size of the content layer, and also a rectangle at which this
should be clipped (because, for the first time, that content layer can be
larger than the renderer's content box).
AVFoundation would always aspect-ratio fit video by default, so plumb
through MediaPlayer a way to override that when object-fit requires it.
Added a LAYER_TREE_INCLUDES_CONTENT_LAYERS enum to the layerTreeAsText()
flags so we can dump content layers for testing.
Tests: compositing/images/direct-image-object-fit.html
compositing/reflections/direct-image-object-fit-reflected.html
compositing/video/video-object-fit.html
- page/Frame.h: New LayerTreeFlagsIncludeContentLayers flag.
- platform/graphics/GraphicsLayer.h: New flag.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::shouldMaintainAspectRatio):
(WebCore::MediaPlayer::setShouldMaintainAspectRatio):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::shouldMaintainAspectRatio):
(WebCore::MediaPlayerPrivateInterface::setShouldMaintainAspectRatio):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setShouldMaintainAspectRatio):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::platformLayer):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
- platform/graphics/ca/GraphicsLayerCA.cpp: We need a new m_contentsClippingLayer to
clip the contents layer, which only gets created when necessary. It has to be cloned
for reflections.
(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::setContentsRect):
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsMediaLayer):
(WebCore::GraphicsLayerCA::updateContentsCanvasLayer):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
(WebCore::GraphicsLayerCA::ensureCloneLayers):
(WebCore::GraphicsLayerCA::removeCloneLayers):
(WebCore::GraphicsLayerCA::fetchCloneLayers):
- platform/graphics/ca/GraphicsLayerCA.h:
- rendering/RenderLayerBacking.cpp: Need to push both the contentsRect and
the contentsClippingRect down to the GraphicsLayers. Most of the time they
are the same, unless object-fit makes them different.
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::RenderLayerBacking::contentsBox):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
- rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
- testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Reviewed by Dean Jackson.
Test cases for directly composited image with object-fit, the same with
reflections, and one with video.
Tests dump content GraphicsLayers, so have platform-specific results.
- compositing/images/direct-image-object-fit-expected.txt: Added.
- compositing/images/direct-image-object-fit.html: Added.
- compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
- compositing/reflections/direct-image-object-fit-reflected.html: Added.
- compositing/video/video-object-fit-expected.txt: Added.
- compositing/video/video-object-fit.html: Added.
- media/video-object-fit-change.html: Fixed
- platform/mac/TestExpectations: Unskip two tests.
- platform/mac/compositing/images/direct-image-object-fit-expected.txt: Added.
- platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
- platform/mac/compositing/video/video-object-fit-expected.txt: Added.
- 4:57 PM Changeset in webkit [154920] by
-
- 2 edits in trunk/LayoutTests
Fix expected output
- 4:45 PM Changeset in webkit [154919] by
-
- 4 edits in trunk/Source
Source/WebInspectorUI: [Windows] Build correction after dependency change.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove circular dependency on
WebKit, and control this at the solution level. The prior change broke external
builders.
Source/WebKit: [Windows] Unreviewed build fix after r154917
- WebKit.vcxproj/WebKit.sln: Establish build dependency from WebInspectorUI against
WebKit. Remove reverse dependency.
- 4:34 PM Changeset in webkit [154918] by
-
- 2 edits in trunk/LayoutTests
http://webkit.org/b/120490
Skip some XML namespace serialization tests temporarily.
- TestExpectations: Skip these on debug builds:
fast/dom/XMLSerializer-attribute-namespace-prefix-conflicts.html
fast/dom/XMLSerializer-same-prefix-different-namespaces-conflict.html
fast/dom/XMLSerializer-setAttributeNS-namespace-no-prefix.html
svg/custom/xlink-prefix-generation-in-attributes.html
- 4:13 PM Changeset in webkit [154917] by
-
- 2 edits in trunk/Source/WebInspectorUI
[Windows] Unreviewed build gardening.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Adjust build dependencies so
that WebInspectorUI 'builds' after WebKit so that the expected resource directory
structure is always in place.
- 3:55 PM Changeset in webkit [154916] by
-
- 11 edits12 adds in trunk
Implement ES6 Set class
https://bugs.webkit.org/show_bug.cgi?id=120549
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
We simply reuse the MapData type from JSMap making the
it much simpler.
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/CommonIdentifiers.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::setStructure):
- runtime/JSSet.cpp: Added.
(JSC::JSSet::visitChildren):
(JSC::JSSet::finishCreation):
- runtime/JSSet.h: Added.
(JSC::JSSet::createStructure):
(JSC::JSSet::create):
(JSC::JSSet::mapData):
(JSC::JSSet::JSSet):
- runtime/SetConstructor.cpp: Added.
(JSC::SetConstructor::finishCreation):
(JSC::callSet):
(JSC::constructSet):
(JSC::SetConstructor::getConstructData):
(JSC::SetConstructor::getCallData):
- runtime/SetConstructor.h: Added.
(JSC::SetConstructor::create):
(JSC::SetConstructor::createStructure):
(JSC::SetConstructor::SetConstructor):
- runtime/SetPrototype.cpp: Added.
(JSC::SetPrototype::finishCreation):
(JSC::getMapData):
(JSC::setProtoFuncAdd):
(JSC::setProtoFuncClear):
(JSC::setProtoFuncDelete):
(JSC::setProtoFuncForEach):
(JSC::setProtoFuncHas):
(JSC::setProtoFuncSize):
- runtime/SetPrototype.h: Added.
(JSC::SetPrototype::create):
(JSC::SetPrototype::createStructure):
(JSC::SetPrototype::SetPrototype):
LayoutTests:
Add tests
- fast/js/basic-set-expected.txt: Added.
- fast/js/basic-set.html: Added.
- fast/js/script-tests/basic-set.js: Added.
(set new):
(otherString.string_appeared_here.set add):
(try.set forEach):
(set forEach):
(set gc):
- 3:51 PM Changeset in webkit [154915] by
-
- 4 edits in trunk/Source/WebCore
[Windows] Update to incorporate additional suggestions
https://bugs.webkit.org/show_bug.cgi?id=120448
Reviewed by Darin Adler
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Add
notes as to why AVFoundationCF needs this extra method call.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: Use OVERRIDE
- rendering/RenderVideo.cpp: Replace ternary operator with logical &&.
- 3:37 PM Changeset in webkit [154914] by
-
- 9 edits in trunk/Source/WebCore
[Windows] Vide element in page always uses non-hw accelerated mode.
https://bugs.webkit.org/show_bug.cgi?id=120448
Reviewed by Darin Adler
This patch is unfortunately larger than my original idea, but seems to make the
layout system happier. Instead of switching into composited mode when building
the media player, we now build the original layout tree with compositing active
if the underlying media element requires it. The AVFoundationCF player needs to
have the compositor available at construction time so it can attach to the
rendering device. Otherwise it falls back to CPU-only mode.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::requiresImmediateCompositing): Added
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::requiresImmediateCompositing): Added
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Added
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
(WebCore::MediaPlayerPrivateAVFoundationCF::requiresImmediateCompositing):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForVideo): Uses new
'requiresImmediateCompositing' to short-circuit check for whether a
compositor is required.
- rendering/RenderVideo.cpp:
(WebCore::RenderVideo::requiresImmediateCompositing):
- rendering/RenderVideo.h:
- 3:12 PM Changeset in webkit [154913] by
-
- 5 edits in branches/safari-537-branch/Source
Versioning.
- 3:10 PM Changeset in webkit [154912] by
-
- 1 copy in tags/Safari-537.66
New Tag.
- 2:43 PM Changeset in webkit [154911] by
-
- 2 edits in trunk/LayoutTests
Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544
Take 2, remove some more runAfterPendingDispatches which were somehow
causing WebKit 2 tests to fail. This requires us to be a bit more
careful when running the pending handlers as well.
Unreviewed test fix.
- inspector/storage-panel-dom-storage-update.html:
- 2:42 PM Changeset in webkit [154910] by
-
- 18 edits1 copy2 moves9 adds in trunk
Web Inspector: Breakpoints should have Automatically Continue Option
https://bugs.webkit.org/show_bug.cgi?id=120187
Reviewed by Timothy Hatcher.
Source/WebCore:
Tests: inspector-protocol/debugger/removeBreakpoint.html
inspector-protocol/debugger/setBreakpoint-autoContinue.html
inspector-protocol/debugger/setBreakpoint-column.html
inspector-protocol/debugger/setBreakpoint-condition.html
inspector-protocol/debugger/setBreakpoint.html
- inspector/Inspector.json:
Convert the "condition" argument of setBreakpoint and setBreakpointByUrl
to a BreakpointOptions object with optional properties. One of which
is "condition" and a new option "autoContinue".
- bindings/js/ScriptDebugServer.h:
- bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::hasBreakpoint):
(WebCore::ScriptDebugServer::pauseIfNeeded):
Automatically continue if the breakpoint was hit and has autoContinue.
- inspector/InspectorDebuggerAgent.h:
- inspector/InspectorDebuggerAgent.cpp:
(WebCore::buildObjectForBreakpointCookie):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::didParseSource):
- inspector/ScriptBreakpoint.h:
(WebCore::ScriptBreakpoint::ScriptBreakpoint):
Handle the new incoming BreakpointOptions type, and set the
autoContinue state on ScriptBreakpoints.
- inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.setBreakpointByURL):
(WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
Update old front-end to be compatible with the new API.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Breakpoint.css:
(#edit-breakpoint-popoover-auto-continue):
Misc. changes for UI.
- UserInterface/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get autoContinue):
(WebInspector.Breakpoint.prototype.set autoContinue):
(WebInspector.Breakpoint.prototype.get options):
(WebInspector.Breakpoint.prototype.get info):
General maintenance of the autoContinue state.
(WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged):
(WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged):
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
Edit Breakpoint UI for setting autoContinue state.
- UserInterface/InspectorBackend.js:
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._supports):
Extension to check if a BackendCommands method supports a particular param.
- UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
- UserInterface/InspectorBackendCommands.js:
Change to backend agent calls for the new protocol API.
LayoutTests:
- http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.checkForError):
Helper for checking for, and logging, protocol error responses.
- inspector/debugger/set-breakpoint.html:
Update this test for the protocol change.
- inspector-protocol/debugger/removeBreakpoint-expected.txt: Added.
- inspector-protocol/debugger/removeBreakpoint.html: Added.
- inspector-protocol/debugger/resources/breakpoint.js: Added.
- inspector-protocol/debugger/setBreakpoint-autoContinue-expected.txt: Added.
- inspector-protocol/debugger/setBreakpoint-autoContinue.html: Added.
- inspector-protocol/debugger/setBreakpoint-column.html: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint.html.
- inspector-protocol/debugger/setBreakpoint-column.txt: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint-expected.txt.
- inspector-protocol/debugger/setBreakpoint-condition-expected.txt: Added.
- inspector-protocol/debugger/setBreakpoint-condition.html: Added.
- inspector-protocol/debugger/setBreakpoint-expected.txt: Added.
- inspector-protocol/debugger/setBreakpoint.html: Added.
Protocol tests for setting breakpoints. These test different aspects of
the Debugger domain (setBreakpoint variants and removeBreakpoint).
- 2:32 PM Changeset in webkit [154909] by
-
- 7 edits in trunk/Source/WebCore
Animations should use double for key values, not floats
https://bugs.webkit.org/show_bug.cgi?id=120547
Reviewed by Simon Fraser.
Merge https://chromium.googlesource.com/chromium/blink/+/71de046541c77120874b9bff82958ee9e0e20c7c
Some files have been renamed in the Blink port, and they have made some
improvements, but I took what applied to us.
All our existing tests passed.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
- css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::parseKeyString):
- css/WebKitCSSKeyframeRule.h:
(WebCore::StyleKeyframe::getKeys):
- platform/graphics/GraphicsLayer.h:
(WebCore::AnimationValue::keyTime):
(WebCore::AnimationValue::AnimationValue):
(WebCore::FloatAnimationValue::create):
(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::create):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::create):
(WebCore::FilterAnimationValue::FilterAnimationValue):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
- rendering/style/KeyframeList.h:
(WebCore::KeyframeValue::KeyframeValue):
(WebCore::KeyframeValue::key):
(WebCore::KeyframeValue::setKey):
- 1:17 PM Changeset in webkit [154908] by
-
- 22 edits1 copy37 adds in trunk
Source/WebCore: [GStreamer] support in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=103771
Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.
Tests: New tests added because existing tests were too specific.
media/track/in-band/track-in-band-kate-ogg-cues-added-once.html
media/track/in-band/track-in-band-kate-ogg-kind.html
media/track/in-band/track-in-band-kate-ogg-language.html
media/track/in-band/track-in-band-kate-ogg-mode.html
media/track/in-band/track-in-band-kate-ogg-style.html
media/track/in-band/track-in-band-kate-ogg-track-order.html
media/track/in-band/track-in-band-srt-mkv-cues-added-once.html
media/track/in-band/track-in-band-srt-mkv-kind.html
media/track/in-band/track-in-band-srt-mkv-language.html
media/track/in-band/track-in-band-srt-mkv-mode.html
media/track/in-band/track-in-band-srt-mkv-style.html
media/track/in-band/track-in-band-srt-mkv-track-order.html
- CMakeLists.txt: Add InbandTextTrackPrivateGStreamer, InbandGenericTextTrack, InbandWebVTTTextTrack, and TextCombinerGStreamer files.
- GNUmakefile.list.am: Same.
- PlatformEfl.cmake: Same.
- Target.pri: Same.
- WebCore.vcxproj/WebCore.vcxproj: Same.
- WebCore.vcxproj/WebCore.vcxproj.filters: Same.
- WebCore.xcodeproj/project.pbxproj: Same.
- html/track/InbandGenericTextTrack.cpp: Split out code for handling generic cues.
(WebCore::GenericTextTrackCueMap::GenericTextTrackCueMap): Move from InbandTextTrack.
(WebCore::GenericTextTrackCueMap::~GenericTextTrackCueMap): Same.
(WebCore::GenericTextTrackCueMap::add): Same.
(WebCore::GenericTextTrackCueMap::find): Same.
(WebCore::GenericTextTrackCueMap::remove): Same.
(WebCore::InbandGenericTextTrack::create): Same.
(WebCore::InbandGenericTextTrack::updateCueFromCueData): Same.
(WebCore::InbandGenericTextTrack::addGenericCue): Same.
(WebCore::InbandGenericTextTrack::updateGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeCue): Same.
(WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Empty.
(WebCore::InbandGenericTextTrack::~InbandGenericTextTrack): Empty.
- html/track/InbandGenericTextTrack.h: Copied from Source/WebCore/html/track/InbandTextTrack.h.
The only addition is the ASSERT_NOT_REACHED() for WebVTT cues.
- html/track/InbandTextTrack.cpp: Add label and language changed callbacks.
(WebCore::InbandTextTrack::create): Return a generic or WebVTT text track based on the private CueFormat.
(WebCore::InbandTextTrack::labelChanged): Added.
(WebCore::InbandTextTrack::languageChanged): Added.
- html/track/InbandTextTrack.h: Add label and language changed callbacks.
- html/track/InbandWebVTTTextTrack.cpp: Added, based on InbandTextTrack.
(WebCore::InbandWebVTTTextTrack::create): Same.
(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::~InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): Sends data to a WebVTTParser.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Adds cues when WebVTTParser parses them.
(WebCore::InbandWebVTTTextTrack::fileFailedToParse): Prints a warning when WebVTTParser has a problem.
- html/track/InbandWebVTTTextTrack.h: Added.
- platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::cueFormat): For determining if the track will have generic or WebVTT cues.
(WebCore::InbandTextTrackPrivate::InbandTextTrackPrivate): Pass CueFormat in the constructor.
- platform/graphics/InbandTextTrackPrivateClient.h: Same.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Pass CueFormat (Generic) to InbandTextTrackPrivate.
- platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specializations for GstSample and GstEvent.
- platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
- platform/graphics/gstreamer/GStreamerUtilities.h: Add WARN_MEDIA_MESSAGE.
- platform/graphics/gstreamer/GStreamerVersioning.h: Add a function to check GStreamer version at runtime.
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Added.
(WebCore::textTrackPrivateEventCallback): Watches for tag and stream start events.
(WebCore::textTrackPrivateSampleTimeoutCallback): See notifyTrackOfSample();
(WebCore::textTrackPrivateStreamTimeoutCallback): See notifyTrackOfStreamChanged();
(WebCore::textTrackPrivateTagsChangeTimeoutCallback): See notifyTrackOfTagsChanged();
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer): Initializes tags and stream and sets up event callback.
(WebCore::InbandTextTrackPrivateGStreamer::~InbandTextTrackPrivateGStreamer): Calls disconnect:
(WebCore::InbandTextTrackPrivateGStreamer::disconnect): Removes signal handlers and frees some memory.
(WebCore::InbandTextTrackPrivateGStreamer::handleSample): Adds samples to a list and sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::streamChanged): Sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::tagsChanged): Same.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample): Parses all queued samples with WebVTTParser.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged): Keeps track of current stream.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfTagsChanged): Sets label and language from tags.
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: Added.
(WebCore::InbandTextTrackPrivateGStreamer::create): Basic RefPtr create function.
(WebCore::InbandTextTrackPrivateGStreamer::pad): Returns the pad this track is associated with (used
to determine if a playbin text stream has already been associated with a text track).
(WebCore::InbandTextTrackPrivateGStreamer::setIndex): Sets the track index (used for sorting).
(WebCore::InbandTextTrackPrivateGStreamer::streamId): Returns the stream ID (used to handle new samples).
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateTextChangedCallback): Called for playbin "text-changed" event. See textChanged().
(WebCore::mediaPlayerPrivateTextChangeTimeoutCallback): See notifyPlayerOfText().
(WebCore::mediaPlayerPrivateNewTextSampleCallback): See newTextSample().
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Initialize m_textTimerHandler.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Disconnect text tracks (they don't necessarily
get freed here, since a script could hold a reference).
(WebCore::MediaPlayerPrivateGStreamer::textChanged): Setup callback for notifyPlayerOfText.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Create text tracks.
(WebCore::MediaPlayerPrivateGStreamer::newTextSample): Handle new samples by giving them to a text track
with a matching stream. This method is syncryonous because we need to get the stream start sticky event
immediately.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Added. This element forwards buffers from all
of its input pads, but also converts plain text to WebVTT as needed.
(webkit_text_combiner_init): Setup internal funnel.
(webkitTextCombinerPadEvent): If the caps are plain text make sure we have a webvttenv, otherwise connect
directly to the funnel.
(webkitTextCombinerRequestNewPad): Setup ghostpad and event callback.
(webkitTextCombinerReleasePad): Release pad and optional associated webvttenc.
(webkit_text_combiner_class_init): Setup pad templates and request/release pad functions.
(webkitTextCombinerNew): Returns a new WebKitTextCombiner.
- platform/graphics/gstreamer/TextCombinerGStreamer.h: Added.
- platform/graphics/gstreamer/TextSinkGStreamer.cpp: Added.
(webkit_text_sink_init): Set sync=false.
(webkitTextSinkGetProperty): Ignore sync property.
(webkitTextSinkSetProperty): Same.
(webkitTextSinkQuery): Ignore position and duration queries, forward everything else to appsink.
(webkit_text_sink_class_init): Setup property and query functions.
(webkitTextSinkNew): Return a new WebKitTextSink.
- platform/graphics/gstreamer/TextSinkGStreamer.h: Added.
LayoutTests: <https://webkit.org/b/103771> [GStreamer] support in-band text tracks
Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.
- media/content/counting-subtitled-kate.ogv: Added.
- media/content/counting-subtitled-srt.mkv: Added.
- media/in-band-cues.js: Added.
- media/track/in-band/track-in-band-kate-ogg-cues-added-once-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-cues-added-once.html: Added.
- media/track/in-band/track-in-band-kate-ogg-kind-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-kind.html: Added.
- media/track/in-band/track-in-band-kate-ogg-language-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-language.html: Added.
- media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-mode.html: Added.
- media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-style.html: Added.
- media/track/in-band/track-in-band-kate-ogg-track-order-expected.txt: Added.
- media/track/in-band/track-in-band-kate-ogg-track-order.html: Added.
- media/track/in-band/track-in-band-srt-mkv-cues-added-once-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-cues-added-once.html: Added.
- media/track/in-band/track-in-band-srt-mkv-kind-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-kind.html: Added.
- media/track/in-band/track-in-band-srt-mkv-language-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-language.html: Added.
- media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-mode.html: Added.
- media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-style.html: Added.
- media/track/in-band/track-in-band-srt-mkv-track-order-expected.txt: Added.
- media/track/in-band/track-in-band-srt-mkv-track-order.html: Added.
- platform/mac/TestExpectations: Skip MKV and OGG tests.
- 1:01 PM Changeset in webkit [154907] by
-
- 2 edits in trunk/LayoutTests
Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-08-30
Reviewed by Dean Jackson.
Explicitly listen for events instead of running callbacks after a delay.
- inspector/storage-panel-dom-storage-update.html:
- 12:29 PM Changeset in webkit [154906] by
-
- 35 edits3 adds in trunk
Animate CSS Image filter() function
https://bugs.webkit.org/show_bug.cgi?id=119938
Reviewed by Simon Fraser.
Source/WebCore:
With this patch, the new introduced CSS Image function filter() can be
animated. According to the spec, just filter functions can be
interpolated.
The patch also prepares StyleImage blending for interpolation of other
generated images like gradients or cross-fade().
http://dev.w3.org/fxtf/filters/#interpolating-filter-image
Test: fast/filter-image/filter-image-animation.html
- css/CSSComputedStyleDeclaration.cpp: Reuse the code that creates a
CSSValueList from ComputeStyle logic.
(WebCore::valueForPixel):
For StyleRules we want to have not-adjusted length values.
(WebCore::ComputedStyleExtractor::valueForShadow):
Add argument to switch between adjusted and not-adjusted length.
(WebCore::ComputedStyleExtractor::valueForFilter):
Ditto.
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSComputedStyleDeclaration.h:
- css/CSSFilterImageValue.h: Add helper functions
for animating filters. We need to pass the FilterOperations for
the image generation and the CSSValueList for StyleRule.
(WebCore::CSSFilterImageValue::filterOperations):
(WebCore::CSSFilterImageValue::setFilterOperations):
(WebCore::CSSFilterImageValue::cachedImage):
- page/animation/CSSPropertyAnimation.cpp:
Add animation code to support animations between two filter()
function values.
(WebCore::blendFilterOperations):
(WebCore::blendFunc):
(WebCore::filterBlend):
- rendering/style/StyleGeneratedImage.h: Add helper functions.
(WebCore::CSSFilterImageValue::imageValue):
LayoutTests:
Add tests to test animation between two filter() function values.
Furthermore, extended animation-test-helpers.js to parse all kind of CSS
image function where we support animations. CSS Image function can be
deeply nested as well now:
-wekit-filter(-webkit-cross-fade(url(a.png), url(b.png), 50%), sepia(0.5))
Even the 50% can now be checked with a tolerance. If we should ever support
animations on nested CSS Images, the new code in animation-test-helpers.js
is prepared for it.
Fixed a bunch of tests that passed by accident or needed an update to the new
infrastructure.
- animations/resources/animation-test-helpers.js:
(parseCSSImage): For parsing of all kind of supported CSS Image functions.
Currently supported: -webkit-cross-fade, -webkit-filter, url, none
Still missing: linear and radial gradients (can not be animated yet).
CSS Image functions are allowed to be nested as deep JS allows.
(parseCrossFade): Add parsing of input CSS images.
(parseFilterImage): Parse -webkit-filter image function as well as input images.
(parseFilterFunctionList): Parse filter function list. We now parse the
function name as well. Added rudimentary support for drop-shadow and url.
(parseDeprecatedCustomFilterFunction): Special case old syntax of custom
filter function. Shall be removed in the future.
(compareCSSImages): Compares all kind (even deep nested) CSS images.
(compareFilterFunctions): Now compare filter function names as well.
(comparePropertyValue): Use new compareCSSImages function.
- fast/filter-image/filter-image-animation-expected.txt: Added.
- fast/filter-image/filter-image-animation.html: Added.
- 12:21 PM Changeset in webkit [154905] by
-
- 2 edits in trunk/Source/WebCore
Make sure remove CachedResourceClient when destructing IconLoader
https://bugs.webkit.org/show_bug.cgi?id=120541
Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.
It's a good practice to call CachedResource::removeClient(client)
when the client is being destructed. We need to do this for InconLoader
to prevent m_resource from keeping dangling client in case m_resource
is referenced by someone else in the future.
Found by code inspection. Just a defensive enhancement no new tests.
- loader/icon/IconLoader.cpp:
(WebCore::IconLoader::~IconLoader):
- 11:58 AM Changeset in webkit [154904] by
-
- 10 edits1 delete in trunk/Source/WebCore
[CSS Shapes] Redefine the ShapeIntervals class as a template
https://bugs.webkit.org/show_bug.cgi?id=120381
Reviewed by Alexandru Chiculita.
No new tests, this was just an internal refactoring.
The existing ShapeIntervals class has been converted into a template whose
type specifies the type of the interval's x1 and x2 horizontal endpoints
(formerly float). There were several other minor changes, all in the realm
of refactoring:
- The original type was a struct with public x1 and x2 fields. It's now a class
with x1 and x2 accessors. ASSERTS are now used to maintain the x2 >= x1 invariant.
In the original code the invariant was not checked.
- The logical comparison operators have been overloaded for ShapeInterval.
This obviates the IntervalX1Comparator class which has been removed.
- The names of the global ShapeInterval Vector set operation methods have been
changed to reflect the fact that they're now members of the template class,
rather than globals.
PolygonShape.cpp depended on the ShapeInterval class. In the one or two places
where an interval's x1 or x1 fields had been set explicitly, ShapeInterval::set()
is now used to set both fields. This also enables the invariant check mentioned
earlier. The other changes to this class are syntatic, to account for the ShapeInterval
class's changes.
- CMakeLists.txt:
- GNUmakefile.list.am:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.xcodeproj/project.pbxproj:
- rendering/shapes/PolygonShape.cpp:
(WebCore::appendIntervalX):
(WebCore::computeXIntersections):
(WebCore::computeOverlappingEdgeXProjections):
(WebCore::PolygonShape::getExcludedIntervals):
(WebCore::PolygonShape::getIncludedIntervals):
- rendering/shapes/PolygonShape.h:
- rendering/shapes/ShapeInterval.cpp: Removed.
- rendering/shapes/ShapeInterval.h: The entire implementation is now here.
(WebCore::ShapeInterval::ShapeInterval):
(WebCore::ShapeInterval::x1):
(WebCore::ShapeInterval::x2):
(WebCore::ShapeInterval::set):
(WebCore::ShapeInterval::overlaps):
(WebCore::ShapeInterval::intersect):
(WebCore::ShapeInterval::sortVector):
(WebCore::ShapeInterval::uniteVectors):
(WebCore::ShapeInterval::intersectVectors):
(WebCore::ShapeInterval::subtractVectors):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::operator< ):
(WebCore::operator> ):
(WebCore::operator<=):
(WebCore::operator>=):
- 11:43 AM Changeset in webkit [154903] by
-
- 20 edits in trunk/Source/WebCore
Use Element& in StyleResolveTree
https://bugs.webkit.org/show_bug.cgi?id=120540
Reviewed by Andreas Kling.
- dom/ContainerNode.cpp:
(WebCore::attachChild):
(WebCore::detachChild):
- dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::createRenderTree):
(WebCore::Document::detach):
- dom/Element.cpp:
(WebCore::Element::lazyReattach):
(WebCore::Element::updateExistingPseudoElement):
(WebCore::Element::createPseudoElementIfNeeded):
(WebCore::disconnectPseudoElement):
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setResetStyleInheritance):
- html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
- html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):
- html/parser/HTMLConstructionSite.cpp:
(WebCore::executeTask):
- html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
- html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::willAttachRenderers):
(WebCore::InsertionPoint::willDetachRenderers):
- loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
- style/StyleResolveTree.cpp:
(WebCore::Style::attachChildren):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::updateTextStyle):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):
Documents only ever have one child element. Remove the loop.
(WebCore::Style::detachRenderTreeInReattachMode):
(WebCore::Style::reattachRenderTree):
- style/StyleResolveTree.h:
- svg/SVGTests.cpp:
(WebCore::SVGTests::handleAttributeChange):
- xml/XMLErrors.cpp:
(WebCore::XMLErrors::insertErrorMessageBlock):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
- 11:30 AM Changeset in webkit [154902] by
-
- 9 edits in trunk/Source
Make JSValue bool conversion less dangerous
https://bugs.webkit.org/show_bug.cgi?id=120505
Reviewed by Darin Adler.
Source/JavaScriptCore:
Replaces JSValue::operator bool() with a operator UnspecifiedBoolType* as
we do elsewhere. Then fix the places where terrible type coercion was
happening. All of the changes made had no fundamental behavioural impact
as they were coercion results that were ignored (returning undefined
after an exception).
- dfg/DFGOperations.cpp:
- interpreter/CallFrame.h:
(JSC::ExecState::hadException):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::operator UnspecifiedBoolType*):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
- runtime/PropertyDescriptor.cpp:
(JSC::PropertyDescriptor::equalTo)
Source/WTF:
Make LIKELY and UNLIKELY macros coerce to bool before
passing to expect.
- wtf/Compiler.h:
- 11:16 AM Changeset in webkit [154901] by
-
- 7 edits in trunk/Source/WebCore
Document style resolve should take Document&.
<https://webkit.org/b/120534>
Reviewed by Darin Adler.
Tweak Style::resolveTree(Document*) and Style::resolveForDocument(Document*) to take Document& instead.
- dom/Document.cpp:
(WebCore::Document::recalcStyle):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- style/StyleResolveForDocument.h:
- style/StyleResolveTree.cpp:
(WebCore::Style::resolveTree):
- style/StyleResolveTree.h:
- 11:02 AM Changeset in webkit [154900] by
-
- 5 edits in trunk/Source/WebCore
[Mac] No need for Pasteboard::getDataSelection
https://bugs.webkit.org/show_bug.cgi?id=120536
Reviewed by Anders Carlsson.
- editing/Editor.h: Added some Mac-only private member functions.
- editing/mac/EditorMac.mm:
(WebCore::Editor::selectionInWebArchiveFormat): Added.
(WebCore::Editor::adjustedSelectionRange): Added.
(WebCore::attributedStringForRange): Added.
(WebCore::dataInRTFDFormat): Added.
(WebCore::dataInRTFFormat): Added.
(WebCore::Editor::dataSelectionForPasteboard): Moved the implementation
of Pasteboard::getDataSelection here, refactoring to share code with the
writeSelectionToPasteboard function.
(WebCore::Editor::writeSelectionToPasteboard): Refactored to share code
with the new function above.
- platform/Pasteboard.h: Removed getDataSelection. One less layering violation.
- platform/mac/PasteboardMac.mm: Ditto.
- 11:00 AM Changeset in webkit [154899] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404
Patch by Brian Holt <brian.holt@samsung.com> on 2013-08-30
Reviewed by Darin Adler.
Fixed the snapshot test failure caused by GTK no longer allowing
widgets to resize. Instead, resize the WebView by resizing the
window and waiting for the event to complete asynchronously.
- UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::resizeView):
- 10:58 AM Changeset in webkit [154898] by
-
- 1 edit in trunk/Source/WebInspectorUI/ChangeLog
Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.
https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases
Reviewed by Joseph Pecoraro.
- UserInterface/CodeMirrorAdditions.js:
(alterNumber): Remove near zero check.
- 10:58 AM Changeset in webkit [154897] by
-
- 2 edits in trunk/Source/WebInspectorUI
Only modify numbers if they are identified by CodeMirror as a number.
https://bugs.webkit.org/show_bug.cgi?id=120484
<rdar://problem/13877085> REGRESSION: Alt-up and Alt-down don't work when cursor is in unit
<rdar://problem/13058697> PARITY: Option-Up arrow in "translate3d" should not modify number to make" translate4d"
Reviewed by Joseph Pecoraro.
- UserInterface/CodeMirrorAdditions.js:
(CodeMirror.prototype.alterNumberInRange): Correctly preserve the selection, even if it differs from
the range passed in.
(alterNumber): Find number tokens and pass those to alterNumberInRange.
(alterNumber.findNumberToken): Added. Helper.
- 10:51 AM Changeset in webkit [154896] by
-
- 15 edits in trunk
SVG error parsing empty path
https://bugs.webkit.org/show_bug.cgi?id=78980
Reviewed by Darin Adler.
Source/WebCore:
According to the spec (http://www.w3.org/TR/SVG/paths.html#PathData), path 'd' attribute can be empty.
No error should be reported in this case.
- svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parsePathDataFromSource):
- svg/SVGPathUtilities.cpp:
(WebCore::buildPathFromString):
(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildPathFromByteStream):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildStringFromSVGPathSegList):
(WebCore::buildSVGPathByteStreamFromString):
(WebCore::buildAnimatedSVGPathByteStream):
(WebCore::addToSVGPathByteStream):
LayoutTests:
Adapt fuzz-path-parser.html and dynamic-empty-path.svg to also test empty paths.
Adjust expectations to not expect an error message for empty paths.
- platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
- platform/gtk/svg/custom/dynamic-empty-path-expected.txt:
- platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
- platform/qt/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
- platform/qt/svg/custom/dynamic-empty-path-expected.txt:
- svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
- svg/custom/dynamic-empty-path-expected.txt:
- svg/dom/fuzz-path-parser-expected.txt:
- svg/dom/fuzz-path-parser.html: also test empty path
- svg/dom/path-parser-expected.txt:
- svg/dom/script-tests/path-parser.js: also test empty path
- 10:50 AM Changeset in webkit [154895] by
-
- 6 edits in trunk/Source/WebKit2
Add USE(PROTECTION_SPACE_AUTH_CALLBACK) guards to canAuthenticateAgainstProtectionSpace()
https://bugs.webkit.org/show_bug.cgi?id=120351
Reviewed by Darin Adler.
- NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
- NetworkProcess/AsynchronousNetworkLoaderClient.h:
- NetworkProcess/NetworkLoaderClient.h:
- NetworkProcess/SynchronousNetworkLoaderClient.cpp:
- NetworkProcess/SynchronousNetworkLoaderClient.h:
- 10:46 AM Changeset in webkit [154894] by
-
- 2 edits in trunk/Source/WebCore
Try to fix CSS_VARIABLES and CSS_DEVICE_ADAPTATION builds.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::resolveVariables):
- 10:43 AM Changeset in webkit [154893] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r154891.
http://trac.webkit.org/changeset/154891
https://bugs.webkit.org/show_bug.cgi?id=120539
broke the mac build (Requested by Ossy on #webkit).
Patch by Commit Queue <commit-queue@webkit.org> on 2013-08-30
- platform/network/SynchronousLoaderClient.h:
- 10:02 AM Changeset in webkit [154892] by
-
- 2 edits in trunk/Source/JavaScriptCore
Cleaning errorDescriptionForValue after r154839
https://bugs.webkit.org/show_bug.cgi?id=120531
Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-30
Reviewed by Darin Adler.
Changed the assert to ASSERT_NOT_REACHED, now that r154839 has landed. errorDescriptionForValue
can assert again that the parameterized JSValue is !isEmpty().
- runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):
- 9:45 AM Changeset in webkit [154891] by
-
- 2 edits in trunk/Source/WebCore
Add USE(CFNETWORK) guard to SynchronousLoaderClient::didReceiveAuthenticationChallengedidReceiveAuthenticationChallenge()
https://bugs.webkit.org/show_bug.cgi?id=120532
Reviewed by Darin Adler.
- platform/network/SynchronousLoaderClient.h:
- 9:44 AM Changeset in webkit [154890] by
-
- 2 edits in trunk/Source/WebCore
[Windows] Video inside page always uses non-hardware accelerated playback
https://bugs.webkit.org/show_bug.cgi?id=120448
Reviewed by Eric Carlson.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Check for
D3D device. If it doesn't exist, switch to compositing mode and try again.
- 9:40 AM Changeset in webkit [154889] by
-
- 3 edits in trunk/Source/WebCore
Possible dangling CachedResourceClient of StyleRuleImport and XSLImportRule
https://bugs.webkit.org/show_bug.cgi?id=120479
Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.
In StyleRuleImport::requestStyleSheet() and XSLImportRule::loadSheet() we
didn't call removeClient() for m_cachedSheet before assigning m_cachedSheet
a new value. This could leave the client as a client of the old cached
sheet and dangling after the client is deleted. Fix them by calling removeClient()
before assigning m_cacheSheet a new value.
Found by code inspection. Seems no way to test it automatically.
- css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
- xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::loadSheet):
- 9:39 AM Changeset in webkit [154888] by
-
- 2 edits in trunk/Source/WebCore
Fix unused parameter warning in graphics/cairo/GraphicsContextCairo.cpp file.
https://bugs.webkit.org/show_bug.cgi?id=120524
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillRectWithRoundedHole):
- 9:18 AM Changeset in webkit [154887] by
-
- 18 edits in trunk/Source/WebCore
StyleResolver & friends should use Document&.
<https://webkit.org/b/120527>
Reviewed by Antti Koivisto.
Document&-ify StyleResolver, ElementRuleCollector and SelectorChecker.
- 9:07 AM Changeset in webkit [154886] by
-
- 2 edits in trunk/Source/WebCore
[Windows] Unreviewed build correction after r154835. Only seen when doing a
full (clean) rebuild.
- DerivedSources.cpp: Remove reference to deleted JSHTMLDialogElement.cpp
- 8:28 AM Changeset in webkit [154885] by
-
- 2 edits in trunk/Source/WebKit2
Fix, remove unused parameter in UIProcess/WebColorPicker.cpp.
https://bugs.webkit.org/show_bug.cgi?id=120525
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.
- UIProcess/WebColorPicker.cpp:
(WebKit::WebColorPicker::showColorPicker):
- 8:25 AM Changeset in webkit [154884] by
-
- 2 edits in trunk/Source/WebKit2
Resolve unused parameter warning in WebPlatformStrategies.cpp
https://bugs.webkit.org/show_bug.cgi?id=120515
Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.
- WebProcess/WebPage/TapHighlightController.cpp:
(WebKit::TapHighlightController::drawRect):
- 8:25 AM Changeset in webkit [154883] by
-
- 2 edits in trunk/Source/WebKit2
Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120516
Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::drawRect):
- 8:24 AM Changeset in webkit [154882] by
-
- 2 edits in trunk/Source/WebCore
Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120407
Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(wordAtPositionForAtkBoundary):
- 8:21 AM Changeset in webkit [154881] by
-
- 3 edits2 adds in trunk
setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
https://bugs.webkit.org/show_bug.cgi?id=120293
Reviewed by Darin Adler.
Source/WebCore:
setAttributeNode() performs a case-insensitive search for an existing
attribute. If an existing attribute is found, it retrieves the index of
such an attribute. For setting the attribute's new value, we call upon
setAttributeInternal() to which both the index as well as the name of
the attribute is passed.
The name passed to this method is the same as the one passed to the
setAttributeNode() API from the webpage and thus can be in any case.
However, setAttributeInternal() uses this name to get the corresponding
existing attribute node. Since this retrieval is not case-insensitive,
the existing node is not returned and thus the new value is not set on
the existing node.
We should instead use the passed index and use that to retrieve the
existing node.
Note that obtaining the attribute's value using getAttributeNode() would
still return the correct value, i.e. the new one.
Also, this change shall make our behavior similar to that of FF and IE.
Test: fast/dom/Element/setAttributeNode-for-existing-attribute.html
- dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
If the passed index is not equal to attributeNotFound, we use that index
to retrieve the existing attribute.
LayoutTests:
- fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Added.
- fast/dom/Element/setAttributeNode-for-existing-attribute.html: Added.
Layout testcase for verifying that the new attribute value is set properly
if an existing attribute with the same name exists.
- 7:58 AM Changeset in webkit [154880] by
-
- 2 edits in trunk/Source/WebKit/win
Windows build fix for Document& Node::document().
- DOMCoreClasses.cpp:
(DOMNode::createInstance):
- 7:57 AM Changeset in webkit [154879] by
-
- 2 edits in trunk/LayoutTests
[Qt] Skip failing grammar checking test.
Unreviewed gardening.
- platform/qt/TestExpectations:
- 7:31 AM Changeset in webkit [154878] by
-
- 2 edits in trunk/Source/WebCore
SimpleClassVectorTraits shall be used for RuleData
https://bugs.webkit.org/show_bug.cgi?id=120526
Reviewed by Andreas Kling.
Whereas RuleData is POD type and whereas there are quite a lot of Vector<RuleData> occurrences in the code,
it makes sense to use SimpleClassVectorTraits for RuleData and hence to allow using more efficient mem functions
in vectors.
- css/RuleSet.h:
- 7:30 AM Changeset in webkit [154877] by
-
- 350 edits in trunk/Source
Node::document() should return a reference.
<https://webkit.org/b/120496>
Reviewed by Antti Koivisto.
Now that orphan DocumentType nodes also have document pointers, it's no longer
possible to have a null Node::document().
Cement this by making document() return a reference, and remove the various
null checks exposed by this.
- 6:40 AM Changeset in webkit [154876] by
-
- 1 edit18 adds in trunk/LayoutTests
[Qt] Added platform specific expected files after r15470 and r154780.
Unreviewed gardening.
- platform/qt-wk1/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
- platform/qt-wk1/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
- platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.png: Added.
- platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.
- platform/qt-wk2/compositing/columns/ancestor-clipped-in-paginated-expected.txt: Added.
- platform/qt-wk2/compositing/columns/clipped-in-paginated-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-columns-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-columns-vertical-rl-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-nested-columns-expected.txt: Added.
- platform/qt-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
- platform/qt-wk2/compositing/columns/hittest-composited-in-paginated-expected.txt: Added.
- platform/qt-wk2/compositing/columns/rotated-in-paginated-expected.txt: Added.
- platform/qt-wk2/compositing/columns/untransformed-composited-in-paginated-expected.txt: Added.
- platform/qt-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.
- 5:58 AM Changeset in webkit [154875] by
-
- 12 edits13 adds in trunk
Source/WebCore: [CSS Masking] -webkit-mask-repeat: space does not work
Added the space option to background-repeat and -webkit-mask-repeat.
With the property value 'space', the background or mask image gets repeated as often as it fits within the background positioning
area. The repeated images are spaced equally to fill the unused area.
https://bugs.webkit.org/show_bug.cgi?id=119324
Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.
Tests: css3/background/background-repeat-space-border.html
css3/background/background-repeat-space-content.html
css3/background/background-repeat-space-padding.html
css3/masking/mask-repeat-space-border.html
css3/masking/mask-repeat-space-content.html
css3/masking/mask-repeat-space-padding.html
- platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::drawPattern): Passed the space values to the image buffer.
- platform/graphics/Image.cpp:
(WebCore::Image::drawTiled): Added the space values when computing the location of the tile.
- platform/graphics/Image.h: Added the space property.
(WebCore::Image::spaceSize):
(WebCore::Image::setSpaceSize):
- platform/graphics/ImageBuffer.h: Added the space property.
(WebCore::ImageBuffer::spaceSize):
(WebCore::ImageBuffer::setSpaceSize):
- platform/graphics/cg/ImageBufferCG.cpp: Passed the space values when copying an image.
(WebCore::ImageBuffer::copyImage):
- platform/graphics/cg/ImageCG.cpp: Added the space values when creating a platform pattern.
(WebCore::Image::drawPattern):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Computed the space values on x and y axis.
(WebCore::getSpace):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Pass the space values to the Image class.
- rendering/RenderBoxModelObject.h: Added the space property.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize):
- svg/graphics/SVGImage.cpp: Passed the space property to the created image.
(WebCore::SVGImage::drawPatternForContainer):
- svg/graphics/SVGImageForContainer.cpp: Passed the space property to the image property.
(WebCore::SVGImageForContainer::drawPattern):
LayoutTests: [CSS Masking] -webkit-mask-repeat: space does not work
Added tests to verify correct usage of background-repeat: space and mask-repeat: space.
Added one test for each possible mask/background clip: border, padding and content
https://bugs.webkit.org/show_bug.cgi?id=119324
Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.
- css3/background/background-repeat-space-border-expected.html: Added.
- css3/background/background-repeat-space-border.html: Added.
- css3/background/background-repeat-space-content-expected.html: Added.
- css3/background/background-repeat-space-content.html: Added.
- css3/background/background-repeat-space-padding-expected.html: Added.
- css3/background/background-repeat-space-padding.html: Added.
- css3/masking/mask-repeat-space-border-expected.html: Added.
- css3/masking/mask-repeat-space-border.html: Added.
- css3/masking/mask-repeat-space-content-expected.html: Added.
- css3/masking/mask-repeat-space-content.html: Added.
- css3/masking/mask-repeat-space-padding-expected.html: Added.
- css3/masking/mask-repeat-space-padding.html: Added.
- 5:56 AM Changeset in webkit [154874] by
-
- 2 edits in trunk/Source/WebKit2
Resolve unused parameter warning in WKBundlePageOverlay.cpp
https://bugs.webkit.org/show_bug.cgi?id=120521
Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Andreas Kling.
- WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WKBundlePageOverlayFractionFadedIn):
- 5:33 AM Changeset in webkit [154873] by
-
- 4 edits in trunk/Source/WebCore
Remove AttachContext
https://bugs.webkit.org/show_bug.cgi?id=120518
Reviewed by Andreas Kling.
This type is not useful anymore. Just pass the precomputed style to attachRenderTree and reattach-or-not flag to detachRenderTree.
- style/StyleResolveTree.cpp:
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::attachChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachShadowRoot):
(WebCore::Style::detachRenderTree):
(WebCore::Style::reattachRenderTree):
(WebCore::Style::resolveLocal):
- style/StyleResolveTree.h:
- 5:13 AM Changeset in webkit [154872] by
-
- 3 edits in trunk/Tools
[Qt] Remove qt-5.0-wk2 from the baseline search paths because the migration of expectations to qt-wk2 is done.
https://bugs.webkit.org/show_bug.cgi?id=120464
Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Jocelyn Turcotte.
- Scripts/webkitpy/port/qt.py:
(QtPort._search_paths):
- Scripts/webkitpy/port/qt_unittest.py:
(QtPortTest):
- 2:34 AM Changeset in webkit [154871] by
-
- 12 edits5 deletes in trunk
Unreviewed, rolling out r154826.
http://trac.webkit.org/changeset/154826
https://bugs.webkit.org/show_bug.cgi?id=120517
Still breaks icloud.com (Requested by mwenge_ on #webkit).
Source/WebCore:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):
- rendering/RenderBox.h:
(WebCore::RenderBox::intrinsicSize):
- rendering/RenderButton.h:
- rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::RenderListBox):
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::computeLogicalHeight):
- rendering/RenderListBox.h:
- rendering/RenderMenuList.h:
- rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
- rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::computeLogicalHeight):
- rendering/RenderTextControl.h:
LayoutTests:
- fast/replaced/intrinsic-button-and-input-height-expected.txt: Removed.
- fast/replaced/intrinsic-button-and-input-height.html: Removed.
- fast/replaced/width-and-height-of-positioned-replaced-elements.html: Removed.
- platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.png: Removed.
- platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Removed.
- 2:29 AM Changeset in webkit [154870] by
-
- 13 edits in trunk/Source
Remove code behind ENABLE(DIALOG_ELEMENT)
https://bugs.webkit.org/show_bug.cgi?id=120467
Reviewed by Darin Adler.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/blackberry:
- WebCoreSupport/AboutDataEnableFeatures.in:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/FeatureDefines.h: