⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Oct 6, 2013:

11:56 PM Changeset in webkit [157025] by Carlos Garcia Campos
  • 90 edits in releases/WebKitGTK/webkit-2.2

Merge r154797 - Source/JavaScriptCore: https://bugs.webkit.org/show_bug.cgi?id=119548
Refactoring Exception throws.

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-28
Reviewed by Geoffrey Garen.

Gardening of exception throws. The act of throwing an exception was being handled in
different ways depending on whether the code was running in the LLint, Baseline JIT,
or the DFG Jit. This made development in the vm exception and error objects difficult.

  • runtime/VM.cpp:

(JSC::appendSourceToError):
This function moved from the interpreter into the VM. It views the developers code
(if there is a codeBlock) to extract what was trying to be evaluated when the error
occurred.

(JSC::VM::throwException):
This function takes in the error object and sets the following:

1: The VM's exception stack
2: The VM's exception
3: Appends extra information on the error message(via appendSourceToError)
4: The error object's line number
5: The error object's column number
6: The error object's sourceURL
7: The error object's stack trace (unless it already exists because the developer

created the error object).

(JSC::VM::getExceptionInfo):
(JSC::VM::setExceptionInfo):
(JSC::VM::clearException):
(JSC::clearExceptionStack):

  • runtime/VM.h:

(JSC::VM::exceptionOffset):
(JSC::VM::exception):
(JSC::VM::addressOfException):
(JSC::VM::exceptionStack):
VM exception and exceptionStack are now private data members.

  • interpreter/Interpreter.h:

(JSC::ClearExceptionScope::ClearExceptionScope):
Created this structure to temporarily clear the exception within the VM. This
needed to see if addition errors occur when setting the debugger as we are
unwinding the stack.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::unwind):
Removed the code that would try to add error information if it did not exist.
All of this functionality has moved into the VM and all error information is set
at the time the error occurs.

The rest of these functions reference the new calling convention to throw an error.

  • API/APICallbackFunction.h:

(JSC::APICallbackFunction::call):

  • API/JSCallbackConstructor.cpp:

(JSC::constructJSCallback):

  • API/JSCallbackObjectFunctions.h:

(JSC::::getOwnPropertySlot):
(JSC::::defaultValue):
(JSC::::put):
(JSC::::putByIndex):
(JSC::::deleteProperty):
(JSC::::construct):
(JSC::::customHasInstance):
(JSC::::call):
(JSC::::getStaticValue):
(JSC::::staticFunctionGetter):
(JSC::::callbackGetter):

  • debugger/Debugger.cpp:

(JSC::evaluateInGlobalCallFrame):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • dfg/DFGAssemblyHelpers.h:

(JSC::DFG::AssemblyHelpers::emitExceptionCheck):

  • dfg/DFGOperations.cpp:

(JSC::DFG::operationPutByValInternal):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::callCheck):

  • heap/Heap.cpp:

(JSC::Heap::markRoots):

  • interpreter/CallFrame.h:

(JSC::ExecState::clearException):
(JSC::ExecState::exception):
(JSC::ExecState::hadException):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::loadVarargs):
(JSC::stackTraceAsString):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • interpreter/Interpreter.h:

(JSC::ClearExceptionScope::ClearExceptionScope):

  • jit/JITCode.cpp:

(JSC::JITCode::execute):

  • jit/JITExceptions.cpp:

(JSC::genericThrow):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_catch):

  • jit/JITStubs.cpp:

(JSC::returnToThrowTrampoline):
(JSC::throwExceptionFromOpCall):
(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):
(JSC::putByVal):
(JSC::cti_vm_handle_exception):

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • jsc.cpp:

(functionRun):
(functionLoad):
(functionCheckSyntax):

  • llint/LLIntExceptions.cpp:

(JSC::LLInt::doThrow):
(JSC::LLInt::returnToThrow):
(JSC::LLInt::callToThrow):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayConstructor.cpp:

(JSC::constructArrayWithSizeQuirk):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opIn):

  • runtime/CommonSlowPathsExceptions.cpp:

(JSC::CommonSlowPaths::interpreterThrowInCaller):

  • runtime/Completion.cpp:

(JSC::evaluate):

  • runtime/Error.cpp:

(JSC::addErrorInfo):
(JSC::throwTypeError):
(JSC::throwSyntaxError):

  • runtime/Error.h:

(JSC::throwVMError):

  • runtime/ExceptionHelpers.cpp:

(JSC::throwOutOfMemoryError):
(JSC::throwStackOverflowError):
(JSC::throwTerminatedExecutionException):

  • runtime/Executable.cpp:

(JSC::EvalExecutable::create):
(JSC::FunctionExecutable::produceCodeBlockFor):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::put):
(JSC::JSArray::push):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toObjectSlowCase):
(JSC::JSValue::synthesizePrototype):
(JSC::JSValue::putToPrimitive):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::::create):
(JSC::::createUninitialized):
(JSC::::validateRange):
(JSC::::setWithSpecificType):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::decode):
(JSC::globalFuncProtoSetter):

  • runtime/JSNameScope.cpp:

(JSC::JSNameScope::put):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::defaultValue):
(JSC::JSObject::hasInstance):
(JSC::JSObject::defaultHasInstance):
(JSC::JSObject::defineOwnNonIndexProperty):
(JSC::throwTypeError):

  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/RegExpConstructor.cpp:

(JSC::constructRegExp):

  • runtime/StringObject.cpp:

(JSC::StringObject::defineOwnProperty):

  • runtime/StringRecursionChecker.cpp:

(JSC::StringRecursionChecker::throwStackOverflowError):

Source/WebCore: https://bugs.webkit.org/show_bug.cgi?id=119548
Refactoring Exception throws.

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-28
Reviewed by Geoffrey Garen.

Gets column information from the error object for reporting exceptions.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • bindings/js/ScriptCallStackFactory.cpp:

(WebCore::createScriptCallStackFromException):

Moved setting an exception into the vm, These functions changed to use the new functionality.

  • bindings/js/JSAudioBufferSourceNodeCustom.cpp:

(WebCore::JSAudioBufferSourceNode::setBuffer):

  • bindings/js/JSBiquadFilterNodeCustom.cpp:

(WebCore::JSBiquadFilterNode::setType):

  • bindings/js/JSCryptoCustom.cpp:

(WebCore::JSCrypto::getRandomValues):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::setDOMException):

  • bindings/js/JSInjectedScriptHostCustom.cpp:

(WebCore::JSInjectedScriptHost::setFunctionVariableValue):

  • bindings/js/JSJavaScriptCallFrameCustom.cpp:

(WebCore::JSJavaScriptCallFrame::evaluate):
(WebCore::JSJavaScriptCallFrame::setVariableValue):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::acceptNode):

  • bindings/js/JSOscillatorNodeCustom.cpp:

(WebCore::JSOscillatorNode::setType):

  • bindings/js/JSPannerNodeCustom.cpp:

(WebCore::JSPannerNode::setPanningModel):
(WebCore::JSPannerNode::setDistanceModel):

  • bindings/js/JSSVGLengthCustom.cpp:

(WebCore::JSSVGLength::convertToSpecifiedUnits):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
(WebCore::JSWebGLRenderingContext::getExtension):
(WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContext::getParameter):
(WebCore::JSWebGLRenderingContext::getProgramParameter):
(WebCore::JSWebGLRenderingContext::getShaderParameter):
(WebCore::JSWebGLRenderingContext::getUniform):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::open):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneBase::throwStackOverflow):
(WebCore::CloneDeserializer::throwValidationError):
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):

  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::toJSPrimitive):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::invokeMethod):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcArray::setValueAt):
(JSC::Bindings::ObjcArray::valueAt):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::throwError):

  • bridge/qt/qt_instance.cpp:

(JSC::Bindings::QtField::valueFromInstance):
(JSC::Bindings::QtField::setValueToInstance):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::put):
(JSC::RuntimeArray::putByIndex):

  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::throwInvalidAccessError):

Source/WebKit/mac: https://bugs.webkit.org/show_bug.cgi?id=119548
Refactoring Exception throws.

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-28
Reviewed by Geoffrey Garen.

Moved setting an exception into the vm, These functions changed to use the new functionality.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):

  • Plugins/Hosted/ProxyInstance.mm:

(WebKit::ProxyInstance::invokeMethod):

Source/WebKit2: https://bugs.webkit.org/show_bug.cgi?id=119548
Refactoring Exception throws.

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-28
Reviewed by Geoffrey Garen.

Moved setting an exception into the vm, These functions changed to use the new functionality.

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::throwInvalidAccessError):

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):

LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=119548
Refactoring Exception throws.

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-28
Reviewed by Geoffrey Garen.

Column/line information was added into these results.

  • fast/events/window-onerror4-expected.txt:
  • fast/js/global-recursion-on-full-stack-expected.txt:

fixed a variable name in a case when shouldThrowType failed.

  • fast/js/mozilla/resources/js-test-pre.js:

(shouldThrowType):

Sorted the properties to allow the results always show in the same order.

  • fast/js/script-tests/exception-properties.js:
  • fast/js/exception-properties-expected.txt:

This test needed to be modified to have the line numbers match on the output across
wk and wk2. This test is inherently flaky because is relies on size of the available
native stack. To account for the flakiness an additional call was made to force the
results to match.
This patch now records and outputs the line number where the errors were occurring.
This was causing the test results to no longer match because of the line numbers.
By changing how to account for the flakiness, the results match again.

  • fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html:
11:39 PM Changeset in webkit [157024] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source/WebCore

Generate toCSSFooValue() for CSSCursorImageValue, CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue
https://bugs.webkit.org/show_bug.cgi?id=122408

Reviewed by Andreas Kling.

As a step to use toCSSFooValue, this patch generates toCSSFooValue() for CSSCursorImageValue,
CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue.
This will help to detect bad type cast.

No new tests, no behavior changes.

  • css/CSSCursorImageValue.h:
  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSUnicodeRangeValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::destroy):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyCursor::applyValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::styleShader):

  • rendering/style/StylePendingImage.h:

(WebCore::StylePendingImage::cssCursorImageValue):

9:48 PM Changeset in webkit [157023] by akling@apple.com
  • 2 edits in trunk/Source/WebKit

No? Okay, let's try that again..

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
9:35 PM Changeset in webkit [157022] by akling@apple.com
  • 2 edits in trunk/Source/WebKit

Attempt to fix the Windows build.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
9:34 PM Changeset in webkit [157021] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Remove an unnecessary test expectation, as the test was removed
along with the code it tested.

  • platform/mac/TestExpectations:
9:00 PM Changeset in webkit [157020] by timothy_horton@apple.com
  • 3 edits in trunk/LayoutTests

results.html doesn't support non-HTML reference tests or references with external resources
https://bugs.webkit.org/show_bug.cgi?id=122426

Reviewed by Ryosuke Niwa.

  • fast/harness/results.html:

Factor splitExtension() out of stripExtension(), so we can retrieve
the extension as well as strip it.

Factor layoutTestsBasePath() out of testLink(), so we can use it for
ref test expectation files as well.

Use layoutTestsBasePath() to link to ref test expectation files, and
use the extension of the test for the expectation, instead of hardcoding
HTML reference files.

This will work on the bots because we already use the same mechanism for
the link to the test itself.

  • fast/harness/resources/results-test.js:

Update the harness result viewer test results.

8:46 PM Changeset in webkit [157019] by mitz@apple.com
  • 2 edits in trunk/Source/ThirdParty

Build against the Xcode default toolchain when targeting OS X 10.8.

This fixes the build after r156632 in configurations that use another toolchain
by default.

  • gtest/xcode/Config/General.xcconfig:
8:39 PM Changeset in webkit [157018] by akling@apple.com
  • 38 edits in trunk/Source

Range constructors should take a Document&.
<https://webkit.org/b/122435>

Reviewed by Sam Weinig.

Source/WebCore:

Make all Range constructors take Document& instead of a PassRefPtr.
This removes one null check at every call site.

Also use a Ref<Document> for storage in Range.

Source/WTF:

Give Ref an assignment operator.

8:37 PM Changeset in webkit [157017] by fpizlo@apple.com
  • 4 edits in trunk/LayoutTests

jsc-layout-tests.yaml/js/script-tests/dfg-arguments-osr-exit.js.layout-dfg-eager-no-cjit fails in release mode on the bots
https://bugs.webkit.org/show_bug.cgi?id=122436

Unreviewed, green the bots by not running the eager variants of these tests.

Will unskip when I land the fix for https://bugs.webkit.org/show_bug.cgi?id=122418.

  • js/script-tests/dfg-arguments-osr-exit-multiple-blocks-before-exit.js:
  • js/script-tests/dfg-arguments-osr-exit-multiple-blocks.js:
  • js/script-tests/dfg-arguments-osr-exit.js:
7:37 PM Changeset in webkit [157016] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix build on old Rubies.

  • Scripts/run-jsc-stress-tests:
7:17 PM Changeset in webkit [157015] by Antti Koivisto
  • 7 edits
    2 adds in trunk/Source/WebCore

Factor text paint style computation out from InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=122433

Reviewed by Andreas Kling.

Move it to TextPaintStyle.h/cpp. Other parts of the code may use it in the future.

7:14 PM Changeset in webkit [157014] by fpizlo@apple.com
  • 11 edits
    3 adds
    1 delete in trunk

Unified test infrastructure via the jsc shell
https://bugs.webkit.org/show_bug.cgi?id=120696

Source/JavaScriptCore:

Reviewed by Oliver Hunt.

Add a mozilla-tests.yaml list. This is autogenerated by create-mozilla-js-test-list.
I think it's better to leave this checked in; we may even just edit it directly in
the future. Also generating it is not cheap.

Fix some low-hanging fruit bugs that I caught by introducing more test coverage.

  • We were not emitting labels for CFA-unreachable blocks, which caused link errors. It's possible for a CFA-unreachable block to be jumped to, if the thing that causes it to be unreachable is a speculation in a Branch or peephole compare.


  • The register allocation assertions didn't handle peephole branches correctly. Since the peephole branch handling returns early from compile(), the clearBlahbittyBlah() method wasn't being called.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • tests/mozilla/mozilla-tests.yaml: Added.

Tools:

Reviewed by Oliver Hunt.

Make run-jsc-stress-tests smart enough to be able to handle different styles of test
output (silent or noisy) and different styles of test failure (just bad exit code,
text diff, filtering for some magical text, etc.). This allows me to get rid of the
layout-test-helper. It also allows me to switch all of the old Mozilla tests to
running in run-jsc-stress-tests.

Also removes all of the code paths that defended against not having shellwords. Just
install the shellwords gem if you want to run tests.

Also removes the non-parallel test running code. No reason for it to exist anymore.

This is a massive increase in test coverage. It uncovered bugs. I fixed two of them
as part of this patch, and left three more as new bugzillas.

  • Scripts/create-mozilla-js-test-list: Added.
  • Scripts/jsc-stress-test-helpers/check-mozilla-failure: Added.
  • Scripts/jsc-stress-test-helpers/layout-test-helper: Removed.
  • Scripts/run-javascriptcore-tests:
  • Scripts/run-jsc-stress-tests:

LayoutTests:

Reviewed by Oliver Hunt.

Suppress running the no-cjit and dfg-eager variants of these tests because there are
still some hard bugs to fix; they were revealed by the increase in test coverage.

  • js/script-tests/dfg-inline-arguments-capture-throw-exception.js:
  • js/script-tests/dfg-uint32-to-number-in-middle-of-copy-propagation.js:
  • js/script-tests/integer-division-neg2tothe32-by-neg1.js:
5:43 PM Changeset in webkit [157013] by Darin Adler
  • 3 edits in trunk/Source/WebCore

[GTK] Get rid of use of deleteAllValues in GtkDragAndDropHelper
https://bugs.webkit.org/show_bug.cgi?id=122417

Reviewed by Andreas Kling.

  • platform/gtk/GtkDragAndDropHelper.cpp: Removed unneeded typedefs.

(WebCore::GtkDragAndDropHelper::~GtkDragAndDropHelper): Removed call to
deleteAllValues.
(WebCore::GtkDragAndDropHelper::handleDragEnd): Use remove directly instead
of using find then remove. I believe this fixes a storage leak.
(WebCore::GtkDragAndDropHelper::handleGetDragData): Use get instead of find.
(WebCore::GtkDragAndDropHelper::handleDragLeaveLater): Remove the explicit
delete since remove will automatically delete.
(WebCore::GtkDragAndDropHelper::handleDragLeave): Use get instead of find.
(WebCore::GtkDragAndDropHelper::handleDragMotion): Use add instead of a
combination of find and set. Also user nullptr instead of 0.
(WebCore::GtkDragAndDropHelper::handleDragDataReceived): Use get instead of find.
(WebCore::GtkDragAndDropHelper::handleDragDrop): Use get instead of find.

  • platform/gtk/GtkDragAndDropHelper.h: Use nullptr instead of 0. Change value

type of m_droppingContexts to be a std::unique_ptr.

4:26 PM Changeset in webkit [157012] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Windows build fix attempt.

  • page/win/DragControllerWin.cpp:

(WebCore::DragController::declareAndWriteDragImage):

3:55 PM Changeset in webkit [157011] by Antti Koivisto
  • 34 edits in trunk/Source/WebCore

Move paint() to RenderElement
https://bugs.webkit.org/show_bug.cgi?id=122371

Reviewed by Darin Adler.

RenderText does not paint itself (text is painted by line boxes). We can move paint() down
to RenderElement.

This also requires some type tightening elsewhere in the code.

3:28 PM Changeset in webkit [157010] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Don't try to dispatch resize events for SVG images
https://bugs.webkit.org/show_bug.cgi?id=122410

Reviewed by Darin Adler.

Tested by avoiding assertion in svg/custom/large-image-pattern-crash.html

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

Bail out for SVG images. They have scripting disabled so the event wouldn't do anything anyway.
Use of FrameView mechanisms is just an implementation detail for SVG images, they are not
meant to act like real frames.

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage):

Switch to Element iterator. This will take NoEventDispatchAssertion verifying the change.

3:07 PM Changeset in webkit [157009] by rniwa@webkit.org
  • 2 edits in trunk/PerformanceTests

DoYouEvenBench: Make it work on Internet Explorer 11 Release Preview
https://bugs.webkit.org/show_bug.cgi?id=122406

Reviewed by Darin Adler.

On Internet Explorer 11, $(elem).closest('li').data('id') fails to find the containig li of elem once
the first item is marked complete or deleted until we get back to the event loop in the jQuery/TodoMVC.
Worked around this limitation by overriding app.getTodo to use each item's id computed in advance.

Also use $.text instead of execCommand('InsertText') in FlightJS/MailClient since Internet Explorer
doesn't support execCommand('InsertText'). Also select the recipient to avoid exceptions.

  • DoYouEvenBench/benchmark.html:
2:29 PM Changeset in webkit [157008] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Element ancestor iterator should have a first() for convenience.
<https://webkit.org/b/122425>

Reviewed by Antti Koivisto.

Added an easy way to get the first element ancestor of a certain type
and put it to use in a few places.

2:07 PM Changeset in webkit [157007] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

CTTE: FrameLoader::notifier() should return a reference.
<https://webkit.org/b/122424>

Reviewed by Anders Carlsson.

It was just returning the address of an inline member, so we should
use a reference instead. Also made the backpointer to Frame in
ResourceLoadNotifier a reference.

1:53 PM Changeset in webkit [157006] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Avoid layout in window.scroll{Y,X} when at topmost/leftmost position.
<https://webkit.org/b/122423>

Reviewed by Antti Koivisto.

Add a fast path for these properties to skip synchronous layout when
we are just going to return 0 anyway.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):

1:11 PM Changeset in webkit [157005] by andersca@apple.com
  • 7 edits in trunk/Source/WebCore

Clean up ContentData
https://bugs.webkit.org/show_bug.cgi?id=122421

Reviewed by Andreas Kling.

Replace uses of OwnPtr with std::unique_ptr and get rid of the ContentData::create overloads.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • rendering/style/ContentData.cpp:

(WebCore::ContentData::clone):

  • rendering/style/ContentData.h:

(WebCore::ContentData::setNext):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::appendContent):
(WebCore::RenderStyle::setContent):

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareNonInheritedData.h:
12:48 PM Changeset in webkit [157004] by weinig@apple.com
  • 7 edits in trunk/Source/WebCore

Be a bit shouty about final classes while we look into why the bots don't like it.

  • dom/Comment.h:
  • dom/ProcessingInstruction.h:
  • editing/markup.cpp:
  • page/PageSerializer.cpp:
  • workers/SharedWorker.h:
  • workers/Worker.h:
12:35 PM Changeset in webkit [157003] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Fix windows build.

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::fragmentFromCFHTML):
(WebCore::fragmentFromHTML):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeRangeToDataObject):
(WebCore::Pasteboard::writeSelection):

12:18 PM Changeset in webkit [157002] by weinig@apple.com
  • 47 edits in trunk/Source

CTTE: Thread references through markup.h
https://bugs.webkit.org/show_bug.cgi?id=122403

Reviewed by Darin Adler and Andreas Kling.

Source/WebCore:

Highlights:

  • Removed createFragmentFromMarkupWithContext(), it was unused.
  • Moved createFragmentFromNodes() into its one caller (in WebKit/mac)
  • Add a bunch more toFoo() overloads.

Source/WebKit/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMNode markupString]):
(-[DOMRange markupString]):

  • WebView/WebFrame.mm:

(-[WebFrame _documentFragmentWithMarkupString:baseURLString:]):
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):

12:01 PM Changeset in webkit [157001] by zandobersek@gmail.com
  • 55 edits in trunk/Source/WebCore

[WebIDL] Annotate IDL interfaces under Source/WebCore/Modules/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122281

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/Modules/.

  • Modules/battery/BatteryManager.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/gamepad/GamepadList.idl:
  • Modules/geolocation/Geolocation.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediasource/WebKitMediaSource.idl:
  • Modules/mediasource/WebKitSourceBuffer.idl:
  • Modules/mediasource/WebKitSourceBufferList.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/RTCStatsResponse.idl:
  • Modules/networkinfo/NetworkInfoConnection.idl:
  • Modules/notifications/Notification.idl:
  • Modules/notifications/NotificationCenter.idl:
  • Modules/proximity/DeviceProximityEvent.idl:
  • Modules/quota/StorageInfo.idl:
  • Modules/quota/StorageQuota.idl:
  • Modules/speech/SpeechGrammarList.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechRecognitionResult.idl:
  • Modules/speech/SpeechRecognitionResultList.idl:
  • Modules/speech/SpeechSynthesis.idl:
  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/DatabaseSync.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • Modules/webdatabase/SQLTransactionSync.idl:
  • Modules/websockets/WebSocket.idl:
11:47 AM Changeset in webkit [157000] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

Tighten AbstractWorker and subclasses a bit.
<https://webkit.org/b/122402>

Reviewed by Darin Adler.

  • Make the Worker and SharedWorker classes final.
  • Have constructors take ScriptExecutionContext by reference.
  • Remove unnecessary AbstractWorker::contextDestroyed() override.
  • Make eventTargetInterface() inline.

Inlining eventTargetInterface() is quite neat - since we only ever
call this on tightly typed pointers from generated code, combining
final and inline turns the virtual call into a compile-time constant.

11:18 AM Changeset in webkit [156999] by zandobersek@gmail.com
  • 49 edits in trunk/Source/WebCore

[WebIDL] Annotate IDL interfaces under Source/WebCore/html/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122280

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/html/.

  • html/DOMFormData.idl:
  • html/DOMSettableTokenList.idl:
  • html/DOMTokenList.idl:
  • html/DOMURL.idl:
  • html/HTMLAllCollection.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLCollection.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormControlsCollection.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLMarqueeElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/HTMLVideoElement.idl:
  • html/MediaController.idl:
  • html/RadioNodeList.idl:
  • html/TimeRanges.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.idl:
  • html/canvas/EXTDrawBuffers.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLLoseContext.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TextTrackCueList.idl:
  • html/track/TextTrackList.idl:
  • html/track/TextTrackRegionList.idl:
  • html/track/VideoTrackList.idl:
11:16 AM Changeset in webkit [156998] by akling@apple.com
  • 7 edits in trunk/Source

Pass VM instead of ExecState to StringObject constructor.
<https://webkit.org/b/122395>

Reviewed by Sam Weinig.

StringObject() only uses the ExecState to find the VM.

11:10 AM Changeset in webkit [156997] by zandobersek@gmail.com
  • 32 edits in trunk/Source/WebCore

[WebIIDL] Annotate IDL interfaces under Source/WebCore/svg/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122279

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/svg/.

  • svg/SVGAngle.idl:
  • svg/SVGAnimationElement.idl:
  • svg/SVGColor.idl:
  • svg/SVGCursorElement.idl:
  • svg/SVGDocument.idl:
  • svg/SVGElement.idl:
  • svg/SVGElementInstanceList.idl:
  • svg/SVGException.idl:
  • svg/SVGFEDropShadowElement.idl:
  • svg/SVGFEGaussianBlurElement.idl:
  • svg/SVGFEMorphologyElement.idl:
  • svg/SVGFilterElement.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMarkerElement.idl:
  • svg/SVGMaskElement.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPaint.idl:
  • svg/SVGPathElement.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPatternElement.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPointList.idl:
  • svg/SVGSVGElement.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTests.idl:
  • svg/SVGTextContentElement.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
11:07 AM Changeset in webkit [156996] by zandobersek@gmail.com
  • 15 edits in trunk/Source/WebCore

[WebIDL] Annotate IDL interfaces under Source/WebCore/page/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122278

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/page/.

  • page/Console.idl:
  • page/Crypto.idl:
  • page/DOMSecurityPolicy.idl:
  • page/DOMSelection.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/History.idl:
  • page/Location.idl:
  • page/Navigator.idl:
  • page/Performance.idl:
  • page/PerformanceEntryList.idl:
  • page/SpeechInputResultList.idl:
  • page/WindowBase64.idl:
  • page/WindowTimers.idl:
10:58 AM Changeset in webkit [156995] by mihnea@adobe.com
  • 1 edit
    6 moves in trunk/LayoutTests

[CSSRegions] Rename parsing tests to match current css properties
https://bugs.webkit.org/show_bug.cgi?id=122413

Reviewed by Sam Weinig.

Simple renaming of files, inline with the current stable version of properties.

  • fast/regions/script-tests/webkit-flow-from-parsing.js: Renamed from LayoutTests/fast/regions/script-tests/content-webkit-from-flow-parsing.js.
  • fast/regions/script-tests/webkit-flow-into-parsing.js: Renamed from LayoutTests/fast/regions/script-tests/webkit-flow-parsing.js.
  • fast/regions/webkit-flow-from-parsing-expected.txt: Renamed from LayoutTests/fast/regions/content-webkit-from-flow-parsing-expected.txt.
  • fast/regions/webkit-flow-from-parsing.html: Renamed from LayoutTests/fast/regions/content-webkit-from-flow-parsing.html.
  • fast/regions/webkit-flow-into-parsing-expected.txt: Renamed from LayoutTests/fast/regions/webkit-flow-parsing-expected.txt.
  • fast/regions/webkit-flow-into-parsing.html: Renamed from LayoutTests/fast/regions/webkit-flow-parsing.html.
10:52 AM Changeset in webkit [156994] by Darin Adler
  • 2 edits in trunk/Source/WebCore
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setupInnerStyle): Added a comment possibly relevant
to current failures seen on Windows bot.

10:44 AM Changeset in webkit [156993] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Unreviewed, rolling out r156988.
http://trac.webkit.org/changeset/156988
https://bugs.webkit.org/show_bug.cgi?id=122415

Broke debug build (Requested by ap on #webkit).

  • css/CSSCursorImageValue.h:
  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSUnicodeRangeValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::destroy):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyCursor::applyValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::styleShader):

  • rendering/style/StylePendingImage.h:

(WebCore::StylePendingImage::cssCursorImageValue):

10:41 AM Changeset in webkit [156992] by Darin Adler
  • 2 edits in trunk/Source/WebKit

Try to fix the Windows build.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Removed export of non-existent Node::treeScope function returning
a TreeScope*. Probably will have to add an export to fix the next failure.

10:37 AM Changeset in webkit [156991] by gyuyoung.kim@samsung.com
  • 11 edits
    2 moves in trunk/Source/WebCore

Add *CSS* prefix to ShadowValue to generate toCSSShadowValue
https://bugs.webkit.org/show_bug.cgi?id=122409

Reviewed by Darin Adler.

To generate toCSSShadowValue(), we need to add *CSS* prefix to ShadowValue.
It is also to be sync with a naming rule of CSS child value.

No new tests, no behavior changes.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForShadow):

  • css/CSSParser.cpp:

(WebCore::ShadowParseContext::commitValue):

  • css/CSSShadowValue.cpp: Renamed from Source/WebCore/css/ShadowValue.cpp.

(WebCore::CSSShadowValue::CSSShadowValue):
(WebCore::CSSShadowValue::customCSSText):
(WebCore::CSSShadowValue::equals):

  • css/CSSShadowValue.h: Renamed from Source/WebCore/css/ShadowValue.h.

(WebCore::CSSShadowValue::create):

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/SVGCSSStyleSelector.cpp:

(WebCore::StyleResolver::applySVGProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::createFilterOperations):

10:29 AM Changeset in webkit [156990] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test editing/spelling/context-menu-suggestions-multiword-selection.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=122414

  • platform/mac/TestExpectations: Marked as such.
10:15 AM Changeset in webkit [156989] by Darin Adler
  • 16 edits
    3 deletes in trunk/Source

Remove unneeded ScriptGCEvent class
https://bugs.webkit.org/show_bug.cgi?id=122390

Reviewed by Anders Carlsson.

Source/ThirdParty:

  • gtest/xcode/gtest.xcodeproj/project.pbxproj: Let Xcode update this file.

Not really part of this bug fix, but good to land anyway.

Source/WebCore:

  • GNUmakefile.list.am: Removed ScriptGCEvent files.
  • Target.pri: Ditto.
  • UseJSC.cmake: Ditto.
  • WebCore.exp.in: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSBindingsAllInOne.cpp: Ditto.
  • bindings/js/ScriptGCEvent.cpp: Removed.
  • bindings/js/ScriptGCEvent.h: Removed.
  • inspector/InspectorMemoryAgent.cpp: Removed include.
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::start): Removed GC event listening.
Some day we might add it back, but for now it is dead code.
(WebCore::InspectorTimelineAgent::stop): Ditto.
(WebCore::usedHeapSize): Renamed from getUsedHeapSize and put the
implementation here instead of indirecting through ScriptGCEvent.
(WebCore::InspectorTimelineAgent::setDOMCounters): Updated for above changes.
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord): Ditto.
(WebCore::InspectorTimelineAgent::pushCurrentRecord): Ditto.

  • inspector/InspectorTimelineAgent.h: Removed include.
  • inspector/ScriptGCEventListener.h: Removed.
  • testing/MemoryInfo.h: Updated to get heap capacity and size directly

instead of going through ScriptGCEvent.

Source/WebKit:

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Replaced symbol from ScriptGCEvent with symbol from JSDOMWindowBase.

10:03 AM Changeset in webkit [156988] by gyuyoung.kim@samsung.com
  • 9 edits in trunk/Source/WebCore

Generate toCSSFooValue() for CSSCursorImageValue, CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue
https://bugs.webkit.org/show_bug.cgi?id=122408

Reviewed by Darin Adler.

As a step to use toCSSFooValue, this patch generates toCSSFooValue() for CSSCursorImageValue,
CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue.
This will help to detect bad type cast.

No new tests, no behavior changes.

  • css/CSSCursorImageValue.h:
  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):

  • css/CSSUnicodeRangeValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::destroy):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyCursor::applyValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::styleShader):

  • rendering/style/StylePendingImage.h:

(WebCore::StylePendingImage::cssCursorImageValue):

1:37 AM Changeset in webkit [156987] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

CTTE: Teach CompositeEditCommand that link Nodes are always Elements.
<https://webkit.org/b/122400>

Reviewed by Sam Weinig.

Make pushAnchorElementDown() take an Element& instead of a Node* and
tweak the surrounding code a tiny bit.

1:37 AM Changeset in webkit [156986] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

CTTE: Node::enclosingLinkEventParentOrSelf() should return an Element.
<https://webkit.org/b/122401>

Reviewed by Sam Weinig.

Only Elements are ever linked, so make enclosingLinkEventParentOrSelf()
return an Element* instead of a Node*. The only call site was already
doing toElement() on the return value without checking, so this makes
things look a bit nicer.

12:33 AM Changeset in webkit [156985] by gyuyoung.kim@samsung.com
  • 10 edits
    2 moves in trunk/Source/WebCore

Add *CSS* prefix to FontFeatureValue to generate toCSSFontFeatureValue(), and use it
https://bugs.webkit.org/show_bug.cgi?id=122204

Reviewed by Darin Adler.

*CSS* prefix needs to be added to FontFeatureValue class in order to generate toCSSFontFeatureValue().
static_cast<FontFeatureValue*> is changed with toCSSFontFeatureValue() by using this change.

No new tests, no behavior changes.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSFontFeatureValue.cpp: Renamed from Source/WebCore/css/FontFeatureValue.cpp.

(WebCore::CSSFontFeatureValue::CSSFontFeatureValue):
(WebCore::CSSFontFeatureValue::customCSSText):
(WebCore::CSSFontFeatureValue::equals):

  • css/CSSFontFeatureValue.h: Renamed from Source/WebCore/css/FontFeatureValue.h.

(WebCore::CSSFontFeatureValue::create):
(WebCore::CSSFontFeatureValue::tag):
(WebCore::CSSFontFeatureValue::value):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFontFeatureTag):

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

Oct 5, 2013:

9:22 PM Changeset in webkit [156984] by fpizlo@apple.com
  • 51 edits
    4 adds in trunk/Source/JavaScriptCore

Compress DFG stack layout
https://bugs.webkit.org/show_bug.cgi?id=122024

Reviewed by Oliver Hunt.

The DFG needs to be able to store things at a known offset from frame pointer so that
the runtime can read those things. Prior to this patch, the DFG would use the exact
offsets that the bytecode asked for, even in the case of inlining, where it would use
the callsite stack offset to shift all of the inlined function's variables over just as
they would have been if a bytecode interpreter had really made the call.

But this won't work once WebKit-LLVM integration is complete. LLVM has no notion of
storing things at a fixed offset from the frame pointer. We could try to hack LLVM to do
that, but it would seriously complicate LLVM's stack layout. But what we might be able
to do is have LLVM tell us (via an addressof intrinsic and a side-channel) where some
alloca landed relative to the frame pointer. Hence if the DFG can put all of its flushed
variables in a contiguous range that can be expressed to LLVM as a struct that we
alloca, then all of this can still work just fine.

Previously the flushed variables didn't fit in a contiguous range, but this patch makes
them contiguous by allowing the stack layout to be compressed.

What this really means is that there is now a distinction between where the DFG saw a
variable stored in bytecode and where it will actually store it in the resulting machine
code. Henceforth when the DFG says "local" or "virtual register" it means the variable
according to bytecode (with the stack offsetting for inlined code as before), but when
it says "machine local" or "machine virtual register" it means the actual place where it
will store things in the resulting machine code. All of the OSR exit, inlined arguments,
captured variables, and various stack unwinding machine now knows about all of this.

Note that the DFG's abstract interpretation still uses bytecode variables rather than
machine variables. Same for CSE and abstract heaps. This makes sense since it means that
we don't have to decide on machine variable allocation just to do those optimizations.

The decision of what a local's machine location becomes is deferred to very late in
compilation. We only need to assign machine locations to variables that must be stored
to the stack. It's now mandatory to run some kind of "stack layout phase" that makes the
decision and updates all data structures.

So far the way that this is being used is just to compress the DFG stack layout, which
is something that we should have done anyway, a long time ago. And the compression isn't
even that good - the current StackLayoutPhase just identifies local indices that are
unused in machine code and slides all other variables towards zero. This doesn't achieve
particularly good compression but it is better than nothing. Note that this phase makes
it seem like the bytecode-machine mapping is based on bytecode local indices; for
example if bytecode local 4 is mapped to machine local 3 then it always will be. That's
true for the current StackLayoutPhase but it _will not_ be true for all possible stack
layout phases and it would be incorrect to assume that it should be true. This is why
the current data structures have each VariableAccessData hold its own copy of the
machine virtual register, and also have each InlineCallFrame report their own machine
virtual registers for the various things. The DFG backend is likely to always use the
dumb StackLayoutPhase since it is very cheap to run, but the FTL backend is likely to
eventually get a better one, where we do some kind of constraint-based coloring: we
institute constraints where some VariableAccessData's must have the same indices as some
other ones, and also must be right next to some other ones; then we process all
VariableAccessData's and attempt to assign them machine locals while preserving those
constraints. This could lead to two VariableAccessDatas for the same bytecode local
ending up with different machine locals.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::isCaptured):
(JSC::CodeBlock::framePointerOffsetToGetActivationRegisters):
(JSC::CodeBlock::machineSlowArguments):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasSlowArguments):

  • bytecode/CodeOrigin.cpp:

(JSC::CodeOrigin::dump):
(JSC::InlineCallFrame::calleeForCallFrame):
(JSC::InlineCallFrame::dumpInContext):

  • bytecode/CodeOrigin.h:

(JSC::InlineCallFrame::InlineCallFrame):
(JSC::InlineCallFrame::calleeConstant):

  • bytecode/Operands.h:

(JSC::Operands::indexForOperand):

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::SSAData::SSAData):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::ByteCodeParser):
(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::getLocal):
(JSC::DFG::ByteCodeParser::flushDirect):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGCommon.h:
  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::CommonData):

  • dfg/DFGDesiredWriteBarriers.cpp:

(JSC::DFG::DesiredWriteBarrier::trigger):

  • dfg/DFGDesiredWriteBarriers.h:
  • dfg/DFGFlushLivenessAnalysisPhase.cpp:

(JSC::DFG::FlushLivenessAnalysisPhase::run):
(JSC::DFG::FlushLivenessAnalysisPhase::process):
(JSC::DFG::FlushLivenessAnalysisPhase::reportError):

  • dfg/DFGFlushedAt.cpp: Added.

(JSC::DFG::FlushedAt::dump):
(JSC::DFG::FlushedAt::dumpInContext):

  • dfg/DFGFlushedAt.h: Added.

(JSC::DFG::FlushedAt::FlushedAt):
(JSC::DFG::FlushedAt::operator!):
(JSC::DFG::FlushedAt::format):
(JSC::DFG::FlushedAt::virtualRegister):
(JSC::DFG::FlushedAt::operator==):
(JSC::DFG::FlushedAt::operator!=):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::dump):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::bytecodeRegisterForArgument):
(JSC::DFG::Graph::argumentsRegisterFor):
(JSC::DFG::Graph::machineArgumentsRegisterFor):
(JSC::DFG::Graph::uncheckedArgumentsRegisterFor):
(JSC::DFG::Graph::activationRegister):
(JSC::DFG::Graph::uncheckedActivationRegister):
(JSC::DFG::Graph::machineActivationRegister):
(JSC::DFG::Graph::uncheckedMachineActivationRegister):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetLocalUnlinked):
(JSC::DFG::Node::convertToGetLocal):
(JSC::DFG::Node::machineLocal):
(JSC::DFG::Node::hasUnlinkedMachineLocal):
(JSC::DFG::Node::setUnlinkedMachineLocal):
(JSC::DFG::Node::unlinkedMachineLocal):
(JSC::DFG::Node::hasInlineStartData):
(JSC::DFG::Node::inlineStartData):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:

(JSC::DFG::OSREntryReshuffling::OSREntryReshuffling):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::ScoreBoard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileInlineStart):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::createOSREntries):
(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::calleeFrameOffset):
(JSC::DFG::SpeculativeJIT::callFrameSlot):
(JSC::DFG::SpeculativeJIT::argumentSlot):
(JSC::DFG::SpeculativeJIT::callFrameTagSlot):
(JSC::DFG::SpeculativeJIT::callFramePayloadSlot):
(JSC::DFG::SpeculativeJIT::argumentTagSlot):
(JSC::DFG::SpeculativeJIT::argumentPayloadSlot):
(JSC::DFG::SpeculativeJIT::framePointerOffsetToGetActivationRegisters):
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::recordSetLocal):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp: Added.

(JSC::DFG::StackLayoutPhase::StackLayoutPhase):
(JSC::DFG::StackLayoutPhase::run):
(JSC::DFG::performStackLayout):

  • dfg/DFGStackLayoutPhase.h: Added.
  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • dfg/DFGVariableAccessData.h:

(JSC::DFG::VariableAccessData::machineLocal):
(JSC::DFG::VariableAccessData::flushedAt):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLExitValue.h:

(JSC::FTL::ExitValue::inJSStack):
(JSC::FTL::ExitValue::inJSStackAsInt32):
(JSC::FTL::ExitValue::inJSStackAsInt52):
(JSC::FTL::ExitValue::inJSStackAsDouble):
(JSC::FTL::ExitValue::virtualRegister):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetArgument):
(JSC::FTL::LowerDFGToLLVM::compileGetLocal):
(JSC::FTL::LowerDFGToLLVM::compileSetLocal):
(JSC::FTL::LowerDFGToLLVM::initializeOSRExitStateForBlock):
(JSC::FTL::LowerDFGToLLVM::emitOSRExitCall):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLValueSource.cpp:

(JSC::FTL::ValueSource::dump):

  • ftl/FTLValueSource.h:

(JSC::FTL::ValueSource::ValueSource):
(JSC::FTL::ValueSource::kind):
(JSC::FTL::ValueSource::operator!):
(JSC::FTL::ValueSource::node):
(JSC::FTL::ValueSource::virtualRegister):

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::readInlinedFrame):
(JSC::StackVisitor::Frame::createArguments):
(JSC::StackVisitor::Frame::existingArguments):

  • interpreter/StackVisitor.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::addressFor):
(JSC::AssemblyHelpers::tagFor):
(JSC::AssemblyHelpers::payloadFor):
(JSC::AssemblyHelpers::offsetOfArgumentsIncludingThis):

  • runtime/Arguments.cpp:

(JSC::Arguments::tearOff):

  • runtime/Arguments.h:

(JSC::Arguments::allocateSlowArguments):
(JSC::Arguments::tryDeleteArgument):
(JSC::Arguments::isDeletedArgument):
(JSC::Arguments::isArgument):
(JSC::Arguments::argument):
(JSC::Arguments::finishCreation):

  • runtime/JSActivation.h:

(JSC::JSActivation::create):
(JSC::JSActivation::JSActivation):

  • runtime/JSFunction.cpp:

(JSC::RetrieveArgumentsFunctor::operator()):

8:16 PM Changeset in webkit [156983] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-jsc-stress-tests should be less verbose
https://bugs.webkit.org/show_bug.cgi?id=122397

Reviewed by Sam Weinig.

It now just prints something like:

965/1831 ....


Where the first number is the number of tests that completed, the second number is the
number of tests total, and the dots are the number of tests running right now - which is
useful towards the end when you're waiting for the last slow tests to finish.

It will also print out the output from failing tests and it will print a line for skipped
tests (to annoy you into getting them into a shape where they can be unskipped). For
example, for LayoutTests, it will print just the diff, if the test fails. It's cool.

  • Scripts/run-jsc-stress-tests:
7:32 PM Changeset in webkit [156982] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

FrameSelection: Remove two unused member functions.

Rubber-stamped by Anders Carlsson.

  • rootEditableElementOrTreeScopeRootNode()
  • rootEditableElementRespectingShadowTree()
7:30 PM Changeset in webkit [156981] by akling@apple.com
  • 45 edits in trunk/Source/WebCore

CTTE: Node::treeScope() should return a reference.
<https://webkit.org/b/122399>

Reviewed by Superlative Sam.

Every Node belongs to a TreeScope. To enforce this, I've made
treeScope() return a TreeScope&, and setTreeScope() now takes a
TreeScope& so there is no way to clear it.

6:08 PM Changeset in webkit [156980] by weinig@apple.com
  • 45 edits in trunk/Source/WebCore

CTTE: Use references more for the Document parser
https://bugs.webkit.org/show_bug.cgi?id=122398

Reviewed by Andreas Kling.

Clarify the construction semantics of Document parsers.

5:34 PM Changeset in webkit [156979] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

[iOS] Default initialize Settings::setFixedPositionCreatesStackingContext() to true
https://bugs.webkit.org/show_bug.cgi?id=122338
<rdar://problem/14908151>

Reviewed by Darin Adler.

On iOS we always want an element with a fixed position to create a stacking context.
See <rdar://problem/9813262> for more details.

  • page/Settings.cpp: Define constant defaultFixedPositionCreatesStackingContext to

be true when building for iOS and false otherwise.

  • page/Settings.in: Initialize the setting fixedPositionCreatesStackingContext with

the value of the constant defaultFixedPositionCreatesStackingContext.

4:59 PM Changeset in webkit [156978] by weinig@apple.com
  • 17 edits in trunk/Source

CTTE: Pass DocumentWriter around as a reference
https://bugs.webkit.org/show_bug.cgi?id=122396

Reviewed by Andreas Kling.

../WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

  • dom/DecodedDataDocumentParser.cpp:

(WebCore::DecodedDataDocumentParser::appendBytes):
(WebCore::DecodedDataDocumentParser::flush):

  • dom/DecodedDataDocumentParser.h:
  • dom/DocumentParser.h:
  • dom/RawDataDocumentParser.h:

(WebCore::RawDataDocumentParser::flush):

  • html/ImageDocument.cpp:

(WebCore::ImageDocumentParser::appendBytes):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::appendBytes):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocumentParser::appendBytes):

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::writer):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::addData):
(WebCore::DocumentWriter::end):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted):

  • loader/SinkDocument.cpp:

(WebCore::SinkDocumentParser::appendBytes):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

../WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _canProvideDocumentSource]):

4:56 PM Changeset in webkit [156977] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

FrameView: Remove code for disabling repaints.
<https://webkit.org/b/122393>

Reviewed by Sam Weinig.

Nobody uses this mode for anything so let's just remove it.

It was added back in r110469 to fix an issue with SVGImageCache
and its only user disappeard in the cache overhaul in r142765.

4:53 PM Changeset in webkit [156976] by fpizlo@apple.com
  • 6 edits in trunk

Allow skipping of run-jsc-stress-tests that are configured using yaml files
https://bugs.webkit.org/show_bug.cgi?id=122385

Tools:

Reviewed by Sam Wieinig.

Make tests run via YAML be able to do the parse-for-commands trick that allows
us to skip tests and do other custom per-test stuff.

  • Scripts/jsc-stress-test-helpers/layout-test-helper:
  • Scripts/run-jsc-stress-tests:

LayoutTests:

Reviewed by Sam Weinig.

The way that we "skip" tests is by having a custom command at the top using @ notation,
and then use "
@ skip". But the machinery to do that also allows us to do things like
run tests in a no-concurrent-JIT mode - so I've also implemented that in this patch.

Use the skip machinery to skip large-expressions.js.

  • js/script-tests/large-expressions.js:
  • jsc-layout-tests.yaml:
4:02 PM Changeset in webkit [156975] by akling@apple.com
  • 1 edit
    2 deletes in trunk/Source/WebCore

Remove IFrameShimSupport, it was only used by dead ports.

Rubber-stamped by Anders Carlsson.

  • plugins/IFrameShimSupport.cpp: Removed.
  • plugins/IFrameShimSupport.h: Removed.
3:57 PM Changeset in webkit [156974] by akling@apple.com
  • 34 deletes in trunk

Remove remaining Qt files.

Rubber-stamped by Anders Carlsson.

2:57 PM Changeset in webkit [156973] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the GTK+ build.

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::platformInitialize):

2:53 PM Changeset in webkit [156972] by andersca@apple.com
  • 19 edits in trunk/Source

Clean up MessageQueue.h
https://bugs.webkit.org/show_bug.cgi?id=122392

Reviewed by Andreas Kling.

Source/WebCore:

Update for changes to MessageQueue, mostly changing create functions to return std::unique_ptr.
I intentionally avoided using std::make_unique in a couple of places because I didn't want to make nested classes
public, and I believe that we can change some of this code to use std::function.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::runLoop):
(WebCore::AsyncAudioDecoder::DecodingTask::create):

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::tableNames):

  • Modules/webdatabase/DatabaseBackend.cpp:

(WebCore::DatabaseBackend::openAndVerifyVersion):
(WebCore::DatabaseBackend::scheduleTransaction):
(WebCore::DatabaseBackend::scheduleTransactionStep):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseBackend::DatabaseOpenTask::create):
(WebCore::DatabaseBackend::DatabaseCloseTask::create):
(WebCore::DatabaseBackend::DatabaseTransactionTask::create):
(WebCore::DatabaseBackend::DatabaseTableNamesTask::create):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::scheduleTask):
(WebCore::DatabaseThread::scheduleImmediateTask):
(WebCore::SameDatabasePredicate::operator()):

  • Modules/webdatabase/DatabaseThread.h:
  • dom/default/PlatformMessagePortChannel.cpp:

(WebCore::PlatformMessagePortChannel::EventData::create):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):

  • dom/default/PlatformMessagePortChannel.h:

(WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):

  • fileapi/FileThread.cpp:

(WebCore::FileThread::postTask):
(WebCore::SameInstancePredicate::operator()):
(WebCore::FileThread::runLoop):

  • fileapi/FileThread.h:
  • fileapi/FileThreadTask.h:

(WebCore::createFileThreadTask):

  • storage/StorageThread.cpp:

(WebCore::StorageThread::threadEntryPoint):
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):

  • workers/WorkerRunLoop.cpp:

(WebCore::ModePredicate::operator()):
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):
(WebCore::WorkerRunLoop::Task::create):

  • workers/WorkerRunLoop.h:

Source/WTF:

Make MessageQueue use std::unique_ptr and change findIf and removeIf to take const references.

  • wtf/Deque.h:

Change findIf to take an rvalue reference.

  • wtf/MessageQueue.h:

(WTF::::append):
(WTF::::appendAndKill):
(WTF::::appendAndCheckEmpty):
(WTF::::prepend):
(WTF::::removeIf):

12:27 PM Changeset in webkit [156971] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

[WebGL] program should not be able to link if a bad shader is attached
https://bugs.webkit.org/show_bug.cgi?id=94036

Reviewed by Darin Adler.

If you attempt to link a program when bad shaders are attached, the
link should fail. WebGL also requires that the previously linked
program should remain intact. We were doing the former, but not
the latter.

Fix this by not calling glLinkProgram if we know we have bad
shaders, and synthesize a bad link status instead.

Test: WebGL conformance test conformance/programs/program-test.html
(found in LayoutTests/webgl)

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::compileShader): Mark a shader as valid
if it compiled ok.
(WebCore::WebGLRenderingContext::linkProgram): Don't call into GraphicsContext3D::linkProgram
if we know that we don't have valid shaders.

  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::WebGLShader): Initialize m_isValid.

  • html/canvas/WebGLShader.h:

(WebCore::WebGLShader::isValid): New member variable getter and setter.
(WebCore::WebGLShader::setValid):

12:21 PM Changeset in webkit [156970] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Undo texture unit code refactoring - it is ok to bind a texture to multiple locations
https://bugs.webkit.org/show_bug.cgi?id=122369
<rdar://problem/15158465>

Reviewed by Darin Adler.

The optimisation in r152351 (http://webkit.org/b/117868) incorrectly
assumes that a texture cannot be bound to more than one location.
That's true only within the same program object. It's legal to
address TEXTURE_BINDING_2D and TEXTURE_BINDING_CUBE_MAP with the
same texture in different programs.

See https://github.com/KhronosGroup/WebGL/pull/391 for more information.

This change reverts the optimisation, but also does some minor
cleanup (0 -> nullptr, class -> struct).

Covered by the following Khronos WebGL 1.0.1 tests, which
now pass:

  • conformance/more/functions/texImage2DHTML.html
  • conformance/more/functions/texSubImage2D.html
  • conformance/more/functions/texSubImage2DHTML.html
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::~WebGLRenderingContext):
(WebCore::WebGLRenderingContext::reshape):
(WebCore::WebGLRenderingContext::bindTexture):
(WebCore::WebGLRenderingContext::deleteTexture):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::handleNPOTTextures):
(WebCore::WebGLRenderingContext::validateTextureBinding):
(WebCore::WebGLRenderingContext::restoreCurrentTexture2D):

  • html/canvas/WebGLRenderingContext.h:
12:02 PM Changeset in webkit [156969] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

Try to #define final to sealed when building with MSVC
https://bugs.webkit.org/show_bug.cgi?id=122386

Reviewed by Darin Adler.

  • wtf/Compiler.h:
11:59 AM Changeset in webkit [156968] by andersca@apple.com
  • 34 edits in trunk/Source

Remove createOwned
https://bugs.webkit.org/show_bug.cgi?id=122388

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::save):

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::createRenderTree):
(WebCore::Document::destroyRenderTree):

  • dom/Document.h:
  • page/Frame.cpp:

(WebCore::Frame::Frame):

  • page/Frame.h:
  • page/animation/AnimationController.cpp:

(WebCore::AnimationController::AnimationController):

  • page/animation/AnimationController.h:
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:

(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::setPlayerItemTrack):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:

(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::setPlayerItemTrack):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourceMasker.h:

Source/WebKit2:

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setFindIndicator:fadeOut:animate:]):

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayCreate):

Source/WTF:

Since we're going with std::unique_ptr instead of OwnPtr, there's no need for makeOwned to exist.
Get rid of it and replace it with calls to std::make_unique.

  • wtf/FilePrintStream.cpp:

(WTF::FilePrintStream::open):

  • wtf/FilePrintStream.h:
  • wtf/HashTable.h:

(WTF::::HashTable):

  • wtf/ListHashSet.h:

(WTF::::ListHashSet):

  • wtf/OwnPtr.h:
  • wtf/Threading.cpp:

(WTF::compatEntryPoint):
(WTF::createThread):

  • wtf/ThreadingPthreads.cpp:

(WTF::wtfThreadEntryPoint):
(WTF::createThreadInternal):

  • wtf/unicode/Collator.h:
  • wtf/unicode/CollatorDefault.cpp:

(WTF::Collator::userDefault):

  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::userDefault):

11:32 AM Changeset in webkit [156967] by Darin Adler
  • 10 edits in trunk/Source

Remove COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES) since it's required now
https://bugs.webkit.org/show_bug.cgi?id=122387

Reviewed by Anders Carlsson.

Source/WebCore:

  • html/canvas/CanvasStyle.h: Take out conditionals.

Source/WebKit2:

  • UIProcess/API/cpp/WKRetainPtr.h: Take out conditionals.

Source/WTF:

  • wtf/RefPtr.h:
  • wtf/RetainPtr.h:
  • wtf/Vector.h:
  • wtf/text/AtomicString.h:
  • wtf/text/WTFString.h:

Take out conditionals.

11:31 AM Changeset in webkit [156966] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit/gtk

Unreviewed GTK build fix after r156946. The framePolicyFunction is an attribute
on the WebKitWebPolicyDecisionPrivate object.

  • webkit/webkitwebpolicydecision.cpp:

(webkit_web_policy_decision_use):
(webkit_web_policy_decision_ignore):
(webkit_web_policy_decision_download):

11:22 AM Changeset in webkit [156965] by Darin Adler
  • 22 edits in trunk/Source

Add AtomicString::number and use it
https://bugs.webkit.org/show_bug.cgi?id=122384

Reviewed by Anders Carlsson.

Source/WebCore:

  • css/CSSGrammar.y.in: Use AtomicString::number instead of String::number since

we are creating an AtomicString. This can save a memory allocation if the string
happens to already be in the atomic string table.

  • dom/Element.cpp:

(WebCore::Element::setIntegralAttribute): Ditto.
(WebCore::Element::setUnsignedIntegralAttribute): Ditto.

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply): Ditto.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedInto): Use setIntegralAttribute instead of
a local homegrown equivalent.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::setHeight): Ditto.
(WebCore::HTMLCanvasElement::setWidth): Ditto.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setTabIndex): Ditto.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setHeight): Ditto.
(WebCore::HTMLImageElement::setWidth): Ditto.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setMaxLength): Ditto.
(WebCore::HTMLInputElement::setSize): Same, but setUnsignedIntegralAttribute.
(WebCore::HTMLInputElement::setHeight): Ditto.
(WebCore::HTMLInputElement::setWidth): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerSetSize): Ditto.

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::setMin): More of the same.
(WebCore::HTMLMeterElement::setMax): Ditto.
(WebCore::HTMLMeterElement::setValue): Ditto.
(WebCore::HTMLMeterElement::setLow): Ditto.
(WebCore::HTMLMeterElement::setHigh): Ditto.
(WebCore::HTMLMeterElement::setOptimum): Ditto.

  • html/HTMLOListElement.cpp:

(WebCore::HTMLOListElement::setStart): Ditto.

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::setValue): Ditto.
(WebCore::HTMLProgressElement::setMax): Ditto.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute): Ditto.
(WebCore::HTMLSelectElement::setSize): Ditto.

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::setColSpan): Ditto.
(WebCore::HTMLTableCellElement::setRowSpan): Ditto.

  • html/HTMLTableColElement.cpp:

(WebCore::HTMLTableColElement::setSpan): Ditto.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::setMaxLength): Ditto.
(WebCore::HTMLTextAreaElement::setCols): Ditto.
(WebCore::HTMLTextAreaElement::setRows): Ditto.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTimelineElement::setDuration): Ditto.

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number): Added.

  • wtf/text/AtomicString.h: Ditto.
  • wtf/text/IntegerToStringConversion.h: Simplify includes, renamed ConversionTrait to

IntegerToStringConversionTrait. Changed String version to use String since we no longer
need to use PassRefPtr to efficiently handle return values. Replaced UnsignedIntegerTrait
with std::make_unsigned. Added AtomicString support. Use nullptr instead of 0.

11:04 AM Changeset in webkit [156964] by Darin Adler
  • 16 edits in trunk/Source

Cut down on use of String::number
https://bugs.webkit.org/show_bug.cgi?id=122382

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject::putByIndex): Use Identifier::from instead of calling
String::number and creating an identifier from that. Can save creating and then
destroying a string if an identifier already exists.

  • runtime/Arguments.cpp:

(JSC::Arguments::getOwnPropertySlotByIndex): Ditto.
(JSC::Arguments::getOwnPropertyNames): Ditto.
(JSC::Arguments::putByIndex): Ditto.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::::getOwnPropertyNames): Ditto.

  • runtime/StringObject.cpp:

(JSC::StringObject::getOwnPropertyNames): Ditto.

Source/WebCore:

  • css/CSSGradientValue.cpp:

(WebCore::CSSLinearGradientValue::customCSSText): Use StringBuilder::appendNumber,
instead of creating a string and then appending it.
(WebCore::CSSRadialGradientValue::customCSSText): Ditto.

  • css/CSSParser.cpp:

(WebCore::CSSParser::createKeyframe): Ditto.

  • editing/DeleteButtonController.cpp:

(WebCore::DeleteButtonController::createDeletionUI): Use ASCII literals instead of
converting numeric constants to strings at runtime with String::number.
(WebCore::DeleteButtonController::show): Ditto.

  • svg/SVGNumberList.cpp:

(WebCore::SVGNumberList::valueAsString): Use StringBuilder::appendNumber.

  • svg/SVGPointList.cpp:

(WebCore::SVGPointList::valueAsString): Ditto.

  • svg/SVGRect.h: Ditto.

Source/WebKit2:

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::dumpChangedLayers): Use StringBuilder::appendNumber.

Source/WTF:

  • wtf/DateMath.cpp:

(WTF::appendTwoDigitNumber): Added. Replaces twoDigitStringFromNumber, which returned a
String and also allocated a temporary string for any number 10 or higher.
(WTF::makeRFC2822DateString): Updated to use the new function.

10:45 AM Changeset in webkit [156963] by andersca@apple.com
  • 6 edits in trunk/Source

Test the waters and begin using lambdas
https://bugs.webkit.org/show_bug.cgi?id=121809

Reviewed by Andreas Kling.

Source/WebCore:

Use lambdas instead of static functions and function objects.

  • css/MediaQuery.cpp:

(WebCore::MediaQuery::MediaQuery):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::deliverAllMutations):

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::sortedTrackListForMenu):

Source/WTF:

  • wtf/ListDump.h:

(WTF::sortedListDump):
Use std::less instead of a custom lessThan function.

10:07 AM Changeset in webkit [156962] by Manuel Rego Casasnovas
  • 2 edits
    8 adds in trunk/LayoutTests

[CSS Regions] Layout Test for selecting text ignoring region content
https://bugs.webkit.org/show_bug.cgi?id=122353

Reviewed by Darin Adler.

Add new reftests for selecting text in texts wrapping a region, where
the region content is ignored. It compares the behavior (highlighted
text and selected content) in regions and absolute positions.

Absolute positioned elements do not fill the gaps on the right during
the selection, unlike regular elements. This is the reason why some
regular elements are floated in order to avoid such problems in the
reftests.

Provided layout tests for different writing models.

  • fast/regions/resources/region-style.css: New CSS classes required for these tests.
  • fast/regions/selection/selecting-text-ignoring-region-expected.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-horiz-bt-expected.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-horiz-bt.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-vert-lr-expected.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-vert-lr.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-vert-rl-expected.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region-vert-rl.html: Added.
  • fast/regions/selection/selecting-text-ignoring-region.html: Added.
10:06 AM Changeset in webkit [156961] by gyuyoung.kim@samsung.com
  • 11 edits
    2 moves in trunk/Source/WebCore

Add *CSS* prefix to FontValue to generate toCSSFontValue()
https://bugs.webkit.org/show_bug.cgi?id=122201

Reviewed by Darin Adler.

*CSS* prefix needs to be added to FontValue class in order to generate toCSSFontValue().
static_cast<FontValue*> is changed with toCSSFontValue() by this change.

No new tests, no behavior changes.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSFontValue.cpp: Renamed from Source/WebCore/css/FontValue.cpp.

(WebCore::CSSFontValue::customCSSText):
(WebCore::CSSFontValue::equals):

  • css/CSSFontValue.h: Renamed from Source/WebCore/css/FontValue.h.

(WebCore::CSSFontValue::create):
(WebCore::CSSFontValue::CSSFontValue):

  • css/CSSParser.cpp:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

10:02 AM Changeset in webkit [156960] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix cut and paste errors.

  • Configurations/WebKit2.xcconfig:
9:55 AM Changeset in webkit [156959] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Add the rest of the std::function weak symbols in an attempt to fix the Lion build.

  • Configurations/WebKit2.xcconfig:
9:48 AM Changeset in webkit [156958] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix tests on older Rubies.

  • Scripts/run-jsc-stress-tests:
9:46 AM Changeset in webkit [156957] by andersca@apple.com
  • 4 edits in trunk

Source/WebKit2: Another attempt at fixing the Lion build.

  • Configurations/WebKit2.xcconfig:

Tools: Don't filter the weak symbols.

  • Scripts/check-for-weak-vtables-and-externals:
9:32 AM Changeset in webkit [156956] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the Lion build.

  • Configurations/WebKit2.xcconfig:

Try unexporting one of the weak symbols for now. If this succeeds, I'll add the rest.

9:27 AM Changeset in webkit [156955] by fpizlo@apple.com
  • 4 edits
    2 adds in trunk

Have run-javascriptcore-tests run JS LayoutTests using run-jsc-stress-tests so that it runs in parallel
https://bugs.webkit.org/show_bug.cgi?id=122376

Tools:

Reviewed by Mark Hahnenberg.

  • Scripts/jsc-stress-test-helpers/layout-test-helper: Added.
  • Scripts/run-javascriptcore-tests:

(printThingsFound):

  • Scripts/run-jsc-stress-tests:

LayoutTests:

Reviewed by Mark Hahnenberg.

Add a yaml file describing which directories contain JS LayoutTests. run-jsc-stress-tests
will use this file.

  • jsc-layout-tests.yaml: Added.
8:55 AM Changeset in webkit [156954] by commit-queue@webkit.org
  • 34 edits in trunk/Source/WebCore

Unreviewed, rolling out r156952.
http://trac.webkit.org/changeset/156952
https://bugs.webkit.org/show_bug.cgi?id=122381

Made svg/custom/large-image-pattern-crash.html assert
(Requested by ap on #webkit).

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::paint):

  • rendering/InlineBox.h:
  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/PaintInfo.h:

(WebCore::PaintInfo::shouldPaintWithinRoot):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paint):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMask):

  • rendering/RenderBox.h:
  • rendering/RenderElement.h:
  • rendering/RenderFieldset.cpp:

(WebCore::RenderFieldset::paintBoxDecorations):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::paint):

  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::paint):

  • rendering/RenderObject.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):
(WebCore::RenderReplaced::shouldPaint):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::paintBoxDecorations):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintCollapsedBorders):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):

  • rendering/RenderTableCol.h:
  • rendering/RenderText.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::paint):
(WebCore::RenderView::paintBoxDecorations):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::paintEllipsisBox):
(WebCore::RootInlineBox::paintCustomHighlight):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::paint):

  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::paintReplaced):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):

  • rendering/svg/SVGRenderingContext.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::rendererClipChild):

  • svg/SVGUseElement.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

8:01 AM Changeset in webkit [156953] by Darin Adler
  • 5 edits
    2 adds in trunk

Need to check if some HTML child elements are HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=120297

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/media/media-disable-crash.html

  • dom/make_names.pl:

(printConstructorInterior): Added additional comments about the
wrapperOnlyIfMediaIsAvailable feature.
(printTypeHelpers): Added an isHTMLUnknownElement check to the check helper
functions for tags with the wrapperOnlyIfMediaIsAvailable feature.
(printWrapperFunctions): Instead of redoing the media player check and the
settings check, and possibly making a wrapper of the wrong type, call
isHTMUnknownElement, guaranteeing that the wrapper will match the element
it is wrapping.

  • html/HTMLElement.h: Move HTMLElementTypeHelpers.h to the bottom of the

file so that functions from that file can be use the HTMLElement class and
other things defined in this file.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::paused): Added an assertion that made the regression
test reliably assert, rather than intermittently (for me, non-reproducibly) crash.

LayoutTests:

Based on a test written by Zan Dobersek <zdobersek@igalia.com>.

  • fast/media/media-disable-crash-expected.txt: Added.
  • fast/media/media-disable-crash.html: Added.
4:58 AM Changeset in webkit [156952] by Antti Koivisto
  • 34 edits in trunk/Source/WebCore

Move paint() to RenderElement
https://bugs.webkit.org/show_bug.cgi?id=122371

Reviewed by Darin Adler.

RenderText does not paint itself (text is painted by line boxes). We can move paint() down
to RenderElement.

This also requires some type tightening elsewhere in the code.

2:41 AM Changeset in webkit [156951] by rniwa@webkit.org
  • 2 edits
    28 adds in trunk/PerformanceTests

DoYouEvenBench: Add Facebook's React TodoMVC test case
https://bugs.webkit.org/show_bug.cgi?id=122379

Reviewed by Andreas Kling.

Add React/TodoMVC as a new test case. Somehow we beat Firefox on this one as well.

  • DoYouEvenBench/benchmark.html:
  • DoYouEvenBench/todomvc/labs: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
  • DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Added.
Note: See TracTimeline for information about the timeline view.