Timeline



May 20, 2016:

11:15 PM Changeset in webkit [201241] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed USE(APPLE_INTERNAL_SDK) builds.

  • platform/cocoa/ThemeCocoa.mm:

(WebCore::fitContextToBox):

10:22 PM Changeset in webkit [201240] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r201237 exposed an issue.

10:17 PM Changeset in webkit [201239] by Joseph Pecoraro
  • 48 edits
    13 deletes in trunk/Source

Remove LegacyProfiler
https://bugs.webkit.org/show_bug.cgi?id=153565

Reviewed by Mark Lam.

Source/JavaScriptCore:

JavaScriptCore now provides a sampling profiler and it is enabled
by all ports. Web Inspector switched months ago to using the
sampling profiler and displaying its data. Remove the legacy
profiler, as it is no longer being used by anything other then
console.profile and tests. We will update console.profile's
behavior soon to have new behavior and use the sampling data.

  • API/JSProfilerPrivate.cpp: Removed.
  • API/JSProfilerPrivate.h: Removed.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::profileHookRegister): Deleted.
(JSC::BytecodeGenerator::shouldEmitProfileHooks): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::CallArguments::CallArguments): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock): Deleted.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Deleted.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()): Deleted.
(JSC::Interpreter::execute): Deleted.
(JSC::Interpreter::executeCall): Deleted.
(JSC::Interpreter::executeConstruct): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass): Deleted.

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ParserModes.h:
  • profiler/CallIdentifier.h: Removed.
  • profiler/LegacyProfiler.cpp: Removed.
  • profiler/LegacyProfiler.h: Removed.
  • profiler/Profile.cpp: Removed.
  • profiler/Profile.h: Removed.
  • profiler/ProfileGenerator.cpp: Removed.
  • profiler/ProfileGenerator.h: Removed.
  • profiler/ProfileNode.cpp: Removed.
  • profiler/ProfileNode.h: Removed.
  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal): Deleted.

  • profiler/ProfilerJettisonReason.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

  • runtime/CodeCache.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::~JSGlobalObject): Deleted.
(JSC::JSGlobalObject::hasLegacyProfiler): Deleted.

  • runtime/JSGlobalObject.h:
  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.
(JSC::SetEnabledProfilerFunctor::operator()): Deleted.
(JSC::VM::setEnabledProfiler): Deleted.

  • runtime/VM.h:

(JSC::VM::enabledProfiler): Deleted.
(JSC::VM::enabledProfilerAddress): Deleted.

Source/WebCore:

  • ForwardingHeaders/profiler/Profile.h: Removed.
  • ForwardingHeaders/profiler/ProfileNode.h: Removed.
  • testing/js/WebCoreTestSupport.cpp:
  • xml/XSLStyleSheetLibxslt.cpp:
  • xml/XSLTProcessorLibxslt.cpp:
8:57 PM Changeset in webkit [201238] by rniwa@webkit.org
  • 6 edits in trunk

run-benchmark's results should contain Animometer's debug output
https://bugs.webkit.org/show_bug.cgi?id=157941

Reviewed by Stephanie Lewis.

PerformanceTests:

Made developer.html support the JSON generated by run-benchmark which stores everything under debugOutput.

  • Animometer/resources/debug-runner/animometer.js:

(Utilities.initialize): Unwrap debugOutput in the case run-benchmark's result JSON is used.

Tools:

Modified the Animometer patch to store debug output and made benchmark_runner extract them together as a single array.
The result can be dragged and dropped into Animometer's developer.html page.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner._run_one_test): Parse JSON here instead of doing it in multiple call sites.
(BenchmarkRunner._run_benchmark): Strip debugOutput from individual test result, and merge them together separately.

  • Scripts/webkitpy/benchmark_runner/data/patches/Animometer.patch:

Modified the patch to store the debug output.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

(ServerControl.render_POST): Fixed a bug that POST to /report results in 500 because getvalue is not defined
when the request body is larger than a certain size on twisted.

7:00 PM Changeset in webkit [201237] by commit-queue@webkit.org
  • 51 edits
    8 deletes in trunk

Remove LegacyProfiler
https://bugs.webkit.org/show_bug.cgi?id=153565

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-20
Reviewed by Saam Barati.

.:

  • ManualTests/inspector/profiler-test-call.html: Removed.
  • ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html: Removed.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:
  • jsc.cpp:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::hasLegacyProfiler):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::supportsLegacyProfiling): Deleted.

Source/WebCore:

JavaScriptCore now provides a sampling profiler and it is enabled
by all ports. Web Inspector switched months ago to using the
sampling profiler and displaying its data. Remove the legacy
profiler, as it is no longer being used by anything other then
console.profile and tests. We will update console.profile's
behavior soon to have new behavior and use the sampling data.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • ForwardingHeaders/profiler/LegacyProfiler.h: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::supportsLegacyProfiling): Deleted.
(WebCore::JSDOMWindowBase::supportsRichSourceInfo): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::supportsLegacyProfiling): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/ScriptCachedFrameData.cpp:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::clearWindowShell): Deleted.

  • bindings/js/ScriptProfile.h: Removed.
  • bindings/js/ScriptProfileNode.h: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(AddClassForwardIfNeeded): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg): Deleted.
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence): Deleted.

  • bindings/scripts/test/TestObj.idl:
  • css/CSSParser.cpp:
  • dom/Document.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::stopProfiling):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::legacyProfilerEnabled): Deleted.
(WebCore::InspectorController::setLegacyProfilerEnabled): Deleted.

  • inspector/InspectorController.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::stopProfilingImpl):

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/InspectorTimelineAgent.h:
  • inspector/PageDebuggerAgent.cpp:
  • inspector/PageRuntimeAgent.cpp:
  • inspector/ScriptProfile.idl: Removed.
  • inspector/ScriptProfileNode.idl: Removed.
  • inspector/TimelineRecordFactory.cpp:

(WebCore::buildAggregateCallInfoInspectorObject): Deleted.
(WebCore::buildInspectorObject): Deleted.
(WebCore::buildProfileInspectorObject): Deleted.
(WebCore::TimelineRecordFactory::appendProfile): Deleted.

  • inspector/TimelineRecordFactory.h:
  • page/DOMWindow.cpp:
  • page/Page.cpp:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::profileEnd):
(WebCore::PageConsoleClient::clearProfiles): Deleted.

  • page/PageConsoleClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Deleted.
(WebCore::Internals::consoleProfiles): Deleted.
(WebCore::Internals::setLegacyJavaScriptProfilingEnabled): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit/win:

  • Interfaces/IWebInspector.idl:
  • WebCoreStatistics.cpp:
  • WebInspector.cpp:

(WebInspector::isJavaScriptProfilingEnabled): Deleted.
(WebInspector::setJavaScriptProfilingEnabled): Deleted.

LayoutTests:

  • fast/profiler/anonymous-event-handler-expected.txt: Removed.
  • fast/profiler/anonymous-event-handler.html: Removed.
  • fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: Removed.
  • fast/profiler/anonymous-function-called-from-different-contexts.html: Removed.
  • fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: Removed.
  • fast/profiler/anonymous-function-calls-built-in-functions.html: Removed.
  • fast/profiler/anonymous-function-calls-eval-expected.txt: Removed.
  • fast/profiler/anonymous-function-calls-eval.html: Removed.
  • fast/profiler/anonymous-functions-with-display-names-expected.txt: Removed.
  • fast/profiler/anonymous-functions-with-display-names.html: Removed.
  • fast/profiler/apply-expected.txt: Removed.
  • fast/profiler/apply.html: Removed.
  • fast/profiler/built-in-function-calls-anonymous-expected.txt: Removed.
  • fast/profiler/built-in-function-calls-anonymous.html: Removed.
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt: Removed.
  • fast/profiler/built-in-function-calls-user-defined-function.html: Removed.
  • fast/profiler/call-expected.txt: Removed.
  • fast/profiler/call-register-leak-expected.txt: Removed.
  • fast/profiler/call-register-leak.html: Removed.
  • fast/profiler/call.html: Removed.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: Removed.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html: Removed.
  • fast/profiler/compare-multiple-profiles-expected.txt: Removed.
  • fast/profiler/compare-multiple-profiles.html: Removed.
  • fast/profiler/constructor-expected.txt: Removed.
  • fast/profiler/constructor.html: Removed.
  • fast/profiler/dead-time-expected.txt: Removed.
  • fast/profiler/dead-time.html: Removed.
  • fast/profiler/document-dot-write-expected.txt: Removed.
  • fast/profiler/document-dot-write.html: Removed.
  • fast/profiler/event-handler-expected.txt: Removed.
  • fast/profiler/event-handler.html: Removed.
  • fast/profiler/execution-context-and-eval-on-same-line-expected.txt: Removed.
  • fast/profiler/execution-context-and-eval-on-same-line.html: Removed.
  • fast/profiler/inline-event-handler-expected.txt: Removed.
  • fast/profiler/inline-event-handler.html: Removed.
  • fast/profiler/many-calls-in-the-same-scope-expected.txt: Removed.
  • fast/profiler/many-calls-in-the-same-scope.html: Removed.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: Removed.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html: Removed.
  • fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: Removed.
  • fast/profiler/multiple-and-different-scoped-function-calls.html: Removed.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: Removed.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html: Removed.
  • fast/profiler/multiple-frames-expected.txt: Removed.
  • fast/profiler/multiple-frames.html: Removed.
  • fast/profiler/named-functions-with-display-names-expected.txt: Removed.
  • fast/profiler/named-functions-with-display-names.html: Removed.
  • fast/profiler/nested-anonymous-functon-expected.txt: Removed.
  • fast/profiler/nested-anonymous-functon.html: Removed.
  • fast/profiler/nested-start-and-stop-profiler-expected.txt: Removed.
  • fast/profiler/nested-start-and-stop-profiler.html: Removed.
  • fast/profiler/no-execution-context-expected.txt: Removed.
  • fast/profiler/no-execution-context.html: Removed.
  • fast/profiler/one-execution-context-expected.txt: Removed.
  • fast/profiler/one-execution-context.html: Removed.
  • fast/profiler/profile-calls-in-included-file-expected.txt: Removed.
  • fast/profiler/profile-calls-in-included-file.html: Removed.
  • fast/profiler/profile-with-no-title-expected.txt: Removed.
  • fast/profiler/profile-with-no-title.html: Removed.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: Removed.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Removed.
  • fast/profiler/profiling-from-a-nested-location-expected.txt: Removed.
  • fast/profiler/profiling-from-a-nested-location.html: Removed.
  • fast/profiler/resources/other-frame.html: Removed.
  • fast/profiler/resources/other-window.html: Removed.
  • fast/profiler/resources/profiler-test-JS-resources.js: Removed.
  • fast/profiler/simple-event-call-expected.txt: Removed.
  • fast/profiler/simple-event-call.html: Removed.
  • fast/profiler/simple-no-level-change-expected.txt: Removed.
  • fast/profiler/simple-no-level-change.html: Removed.
  • fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: Removed.
  • fast/profiler/start-and-stop-profiler-multiple-times.html: Removed.
  • fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: Removed.
  • fast/profiler/start-and-stop-profiling-in-the-same-function.html: Removed.
  • fast/profiler/start-but-dont-stop-profiling-expected.txt: Removed.
  • fast/profiler/start-but-dont-stop-profiling.html: Removed.
  • fast/profiler/stop-profiling-after-setTimeout-expected.txt: Removed.
  • fast/profiler/stop-profiling-after-setTimeout.html: Removed.
  • fast/profiler/stop-then-function-call-expected.txt: Removed.
  • fast/profiler/stop-then-function-call.html: Removed.
  • fast/profiler/throw-exception-from-eval-expected.txt: Removed.
  • fast/profiler/throw-exception-from-eval.html-disabled: Removed.
  • fast/profiler/two-execution-contexts-expected.txt: Removed.
  • fast/profiler/two-execution-contexts.html: Removed.
  • fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: Removed.
  • fast/profiler/user-defined-function-calls-built-in-functions.html: Removed.
  • fast/profiler/window-dot-eval-expected.txt: Removed.
  • fast/profiler/window-dot-eval.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
6:17 PM Changeset in webkit [201236] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.4

New tag.

5:17 PM Changeset in webkit [201235] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSScope::abstractAccess doesn't need to copy the SymbolTableEntry, it can use it by reference
https://bugs.webkit.org/show_bug.cgi?id=157956

Reviewed by Geoffrey Garen.

A SymbolTableEntry may be a FatEntry. Copying a FatEntry is slow because we have to
malloc memory for it, then free the malloced memory once the entry goes out of
scope. abstractAccess uses a SymbolTableEntry temporarily when performing scope
accesses during bytecode linking. It copies out the SymbolTableEntry every time
it does a SymbolTable lookup. This is not cheap when the entry happens to be a
FatEntry. We should really just be using a reference to the entry because
there is no need to copy it in such a scenario.

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

4:56 PM Changeset in webkit [201234] by Alan Bujtas
  • 12 edits
    4 adds in trunk

width: 1% on nested table cell causes its table to hog horizontal space
https://bugs.webkit.org/show_bug.cgi?id=144696
<rdar://problem/20839572>

Reviewed by David Hyatt and Tim Horton.

This patch is based on https://chromium.googlesource.com/chromium/src/+/9428cfb16993a2329e87c65da096ca295132ef0f

Source/WebCore:

Tests: fast/table/inner-percent-width-affects-outer-floated-div.html

fast/table/inner-percent-width-doesnt-affect-ancestor-columns.html

  • rendering/AutoTableLayout.cpp:

(WebCore::shouldScaleColumnsForParent):
(WebCore::shouldScaleColumnsForSelf):
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::shouldScaleColumns): Deleted.

  • rendering/AutoTableLayout.h:
  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth):

  • rendering/TableLayout.h:

(WebCore::TableLayout::scaledWidthFromPercentColumns):

LayoutTests:

  • fast/table/inner-percent-width-affects-outer-floated-div-expected.html: Added.
  • fast/table/inner-percent-width-affects-outer-floated-div.html: Added.
  • fast/table/inner-percent-width-doesnt-affect-ancestor-columns-expected.html: Added.
  • fast/table/inner-percent-width-doesnt-affect-ancestor-columns.html: Added.
  • platform/mac/fast/table/border-collapsing/cached-change-row-border-width-expected.txt:
  • platform/mac/fast/table/border-collapsing/cached-change-tbody-border-width-expected.txt:
  • platform/mac/fast/table/max-width-integer-overflow-expected.txt:
4:46 PM Changeset in webkit [201233] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Inconsistent state in playback controls
https://bugs.webkit.org/show_bug.cgi?id=157962
<rdar://problem/26397571>

Reviewed by Beth Dakin.

Do not use the playbackSessionManager() as the model, that's what the model is for.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setClient):

4:15 PM Changeset in webkit [201232] by beidson@apple.com
  • 7 edits
    3 adds in trunk

Modern IDB: Properly handle blobs in Workers.
https://bugs.webkit.org/show_bug.cgi?id=157947

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/blob-simple-workers.html

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer): Use writeBlobsToDiskForIndexedDBSynchronously from

background threads instead of the asynchronous form.

Add ability to set an existing empty IDBValue to be an isolated copy of a different IDBValue:

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::setAsIsolatedCopy):
(WebCore::IDBValue::isolatedCopy):

  • Modules/indexeddb/IDBValue.h:

Add a method - only to be called from a non-main thread - that synchronously writes blobs to disk:

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):

  • bindings/js/SerializedScriptValue.h:

LayoutTests:

  • storage/indexeddb/modern/blob-simple-workers-expected.txt: Added.
  • storage/indexeddb/modern/blob-simple-workers.html: Added.
  • storage/indexeddb/modern/resources/blob-simple-workers.js: Added.
3:53 PM Changeset in webkit [201231] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r200740): Web Inspector: TimelineRecordBar class lists not properly cleared, bleeding colors when zooming in and out
https://bugs.webkit.org/show_bug.cgi?id=157959
<rdar://problem/26393067>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-20
Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype.set records):
When records are cleared, clear all classes.

3:31 PM Changeset in webkit [201230] by bshafiei@apple.com
  • 7 edits
    2 adds in branches/safari-602.1.32-branch

Merge r201227. rdar://problem/24577706

3:28 PM Changeset in webkit [201229] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Allow named images on iOS
https://bugs.webkit.org/show_bug.cgi?id=157960
rdar://problem/26396532

Reviewed by Dean Jackson.

USE(NEW_THEME) is false on iOS so force named images to be drawn by checking PLATFORM(IOS) as well.

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):

3:10 PM Changeset in webkit [201228] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

[Cocoa] REGRESSION(r184899): Ascent adjustments are applied to web fonts
https://bugs.webkit.org/show_bug.cgi?id=157954
<rdar://problem/24204349>

Reviewed by Dean Jackson.

Source/WebCore:

There are a few specific fonts which exist on Windows and Cocoa OSes, and we will adjust
the ascents of these fonts to better match their counterparts on Windows. However, in
r184899, we started applying this adjustment to web fonts too.

Test: fast/text/ascent-adjustment-webfont.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

  • svg/SVGToOTFFontConversion.cpp: We were reporting the length of font names wrong, so

it made the test pass without this patch even when it shouldn't have. Previously, we
were recording the number of characters in the font, not the number of bytes (each
character is 2 bytes).

LayoutTests:

  • fast/text/ascent-adjustment-webfont-expected-mismatch.html: Added.
  • fast/text/ascent-adjustment-webfont.html: Added.
  • fast/text/resources/Helvetica-light.svg: Added.
3:05 PM Changeset in webkit [201227] by enrica@apple.com
  • 7 edits
    2 adds in trunk

Drag cannot start if no drag data or custom data is available in the Pasteboard.
https://bugs.webkit.org/show_bug.cgi?id=157911
rdar://problem/24577706

Reviewed by Tim Horton.

Source/WebKit/mac:

We need to make sure there is always one item in common between source and target
of the drag and drop operation.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):

Source/WebKit2:

We need to make sure there is always one item in common between source and target
of the drag and drop operation.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::dragImageForView):

LayoutTests:

  • fast/events/draggable-div-customdata-expected.txt: Added.
  • fast/events/draggable-div-customdata.html: Added.
  • platform/ios-simulator/TestExpectations
  • platform/mac-wk2/TestExpectations
2:47 PM Changeset in webkit [201226] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Web Inspector: retained size for typed arrays does not count native backing store
https://bugs.webkit.org/show_bug.cgi?id=157945
<rdar://problem/26392238>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-20
Reviewed by Geoffrey Garen.

  • runtime/JSArrayBuffer.h:
  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::estimatedSize):
Include an estimatedSize implementation for JSArrayBuffer.
ArrayBuffer has a unique path, different from other data
stored in the Heap.

  • tests/heapProfiler/typed-array-sizes.js: Added.

Test sizes of TypedArray with and without an ArrayBuffer.
When the TypedArray is a view wrapping an ArrayBuffer, the
ArrayBuffer has the size.

2:17 PM Changeset in webkit [201225] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

reifyAllStaticProperties makes two copies of every string
https://bugs.webkit.org/show_bug.cgi?id=157953

Reviewed by Mark Lam.

Let's not do that.

  • runtime/JSObject.cpp:

(JSC::JSObject::reifyAllStaticProperties): Pass our Identifier to
reifyStaticProperty so it doesn't have to make its own.

  • runtime/Lookup.h:

(JSC::reifyStaticProperty): No need to null check because callers never
pass null anymore. No need to make an identifier because callers pass
us one.

(JSC::reifyStaticProperties): Honor new interface.

2:17 PM Changeset in webkit [201224] by commit-queue@webkit.org
  • 19 edits in trunk/Source

Remove unnecessary PageOverlay client function pageOverlayDestroyed
https://bugs.webkit.org/show_bug.cgi?id=157388
<rdar://problem/25471523>

Patch by John Wilander <wilander@apple.com> on 2016-05-20
Reviewed by Tim Horton.

Remove dead PageOverlay code. Almost all of these overrides were empty and
never called. In the case of WebPageOverlay it was never called but had a
function body, causing confusion. There was a fear of dangling pointers in
WebPageOverlay's static hash map between PageOverlays and WebPageOverlays.
Only WebPageOverlay's constructor creates its PageOverlay object and adds it
to the hash map. Its client object is kept in a unique pointer member which
is automatically deleted when the WebPageOverlay object itself is deleted.
This explains why PageOverlayClientImpl::pageOverlayDestroyed in
WKBundlePageOverlay can safely be removed. Finally, WebPageOverlay's
destructor clears the hash map entry for its PageOverlay object. Thus, there
is no need to call WebPageOverlay::pageOverlayDestroyed nor a need for
WebPageOverlay's destructor to call pageOverlayDestroyed on its client.

No new tests. I tried to come up with a WebKit API test for this but I
wasn't able to test presence/absence of WebPageOverlay's map entries since
the map is not exposed.

Source/WebCore:

  • page/DebugPageOverlays.cpp:

(WebCore::RegionOverlay::pageOverlayDestroyed): Deleted.

  • page/PageOverlay.h:

(WebCore::PageOverlay::Client::pageOverlayDestroyed): Deleted.

  • page/ResourceUsageOverlay.h:

(WebCore::ResourceUsageOverlay::pageOverlayDestroyed): Deleted.

  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::pageOverlayDestroyed): Deleted.

  • testing/MockPageOverlayClient.cpp:
  • testing/MockPageOverlayClient.h:

(WebCore::MockPageOverlayClient::pageOverlayDestroyed): Deleted.

Source/WebKit2:

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

(WebKit::PageOverlayClientImpl::pageOverlayDestroyed): Deleted.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::HUD::pageOverlayDestroyed): Deleted.

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:
  • WebProcess/WebCoreSupport/WebInspectorClient.h:

(WebKit::WebInspectorClient::pageOverlayDestroyed): Deleted.

  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/FindController.h:

(WebKit::FindController::pageOverlayDestroyed): Deleted.

  • WebProcess/WebPage/WebPageOverlay.cpp:
  • WebProcess/WebPage/WebPageOverlay.h:

(WebKit::WebPageOverlay::pageOverlayDestroyed): Deleted.

  • WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:

(WebKit::FindIndicatorOverlayClientIOS::pageOverlayDestroyed): Deleted.

1:43 PM Changeset in webkit [201223] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Fix null dereferencing in CSSAnimationTriggerScrollValue::equals
https://bugs.webkit.org/show_bug.cgi?id=157930

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-20
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/css/compare-animation-trigger.html

  • css/CSSAnimationTriggerScrollValue.cpp:

(WebCore::CSSAnimationTriggerScrollValue::equals):

  • css/CSSAnimationTriggerScrollValue.h:

(WebCore::CSSAnimationTriggerScrollValue::create):
(WebCore::CSSAnimationTriggerScrollValue::startValue):
(WebCore::CSSAnimationTriggerScrollValue::endValue):
(WebCore::CSSAnimationTriggerScrollValue::hasEndValue):
(WebCore::CSSAnimationTriggerScrollValue::operator==):
(WebCore::CSSAnimationTriggerScrollValue::CSSAnimationTriggerScrollValue):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTrigger):

  • css/CSSValue.h:

(WebCore::CSSValue::operator==):

LayoutTests:

  • fast/css/compare-animation-trigger-expected.txt: Added.
  • fast/css/compare-animation-trigger.html: Added.
12:36 PM Changeset in webkit [201222] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Split Console is auto opening all the time when using Inspect Element context menu
https://bugs.webkit.org/show_bug.cgi?id=157910
<rdar://problem/26374066>

Reviewed by Timothy Hatcher.

Currently, "synthetic" property is only used to decide whether adding a console message should
open the console or not. Replace it with "shouldRevealConsole".

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype.inspectNodeObject.nodeAvailable):
(WebInspector.DOMTreeManager.prototype.inspectNodeObject):

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):

  • UserInterface/Models/ConsoleCommandResultMessage.js:

(WebInspector.ConsoleCommandResultMessage):
(WebInspector.ConsoleCommandResultMessage.prototype.get shouldRevealConsole):
(WebInspector.ConsoleCommandResultMessage.prototype.get synthetic): Deleted.

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode.node.shortestGCRootPath.):
(WebInspector.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode):

12:13 PM Changeset in webkit [201221] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSBench regression: CodeBlock linking always copies the symbol table
https://bugs.webkit.org/show_bug.cgi?id=157951

Reviewed by Saam Barati.

We always put a SymbolTable into the constant pool, even in simple
functions in which it won't be used -- i.e., there's on eval and there
are no captured variables and so on.

This is costly because linking must copy any provided symbol tables.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitProfileType): Only add the symbol table
as a constant if we will use it at runtime.

12:07 PM Changeset in webkit [201220] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.33.1/Source/WebCore

Merged r201212. rdar://problem/26385907

12:06 PM Changeset in webkit [201219] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.33.1/Source

Versioning.

11:48 AM Changeset in webkit [201218] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

Scrolling broken in iTunes connect pages
https://bugs.webkit.org/show_bug.cgi?id=157678

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/flexbox/nested-columns-min-intrinsic-disabled.html

Turn off minimum intrinsic size adjustment for flexboxes. This violates the spec,
but until we can produce good results that is what we need to do. Blink has also
turned off nested columns intrinsic sizing as well, so we match them with this
change.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

LayoutTests:

  • fast/flexbox/nested-column-intrinsic-min-disabled-expected.html: Added.
  • fast/flexbox/nested-column-intrinsic-min-disabled.html: Added.
11:44 AM Changeset in webkit [201217] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.33.1

New tag.

11:34 AM Changeset in webkit [201216] by jdiggs@igalia.com
  • 60 edits
    1 move
    19 deletes in trunk/LayoutTests

AX: Layout tests related to text alternative computation need to be done differently
https://bugs.webkit.org/show_bug.cgi?id=157187

Create several utility methods to facilitate retrieval of platform-independent
attribute values from platform-specific attributes:

  • platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.)
  • platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself.
  • platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired.

Begin using these methods in the tests related to text alternative computation
which had platform-specific checks, update the expectations files when needed,
and remove now-obsolete platform-specific expectations files.

Reviewed by Chris Fleizach.

  • accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated.
  • accessibility/alt-tag-on-image-with-nonimage-role.html: Updated.
  • accessibility/aria-help-expected.txt: Added.
  • accessibility/aria-help.html: Updated.
  • accessibility/aria-label-expected.txt: Updated.
  • accessibility/aria-label.html: Updated.
  • accessibility/aria-labeled-with-hidden-node-expected.txt: Updated.
  • accessibility/aria-labeled-with-hidden-node.html: Updated.
  • accessibility/aria-labelledby-on-input-expected.txt: Updated.
  • accessibility/aria-labelledby-on-input.html: Updated.
  • accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated.
  • accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated.
  • accessibility/aria-labelledby-overrides-label-expected.txt: Updated.
  • accessibility/aria-labelledby-overrides-label.html: Updated.
  • accessibility/aria-labelledby-stay-within-expected.txt: Updated.
  • accessibility/aria-labelledby-stay-within.html: Updated.
  • accessibility/aria-labelledby-with-descendants-expected.txt: Updated.
  • accessibility/aria-labelledby-with-descendants.html: Updated.
  • accessibility/aria-namefrom-author-expected.txt: Updated.
  • accessibility/aria-namefrom-author.html: Updated.
  • accessibility/aria-text-role-expected.txt: Updated.
  • accessibility/aria-text-role.html: Updated.
  • accessibility/canvas-description-and-role-expected.txt: Updated.
  • accessibility/canvas-description-and-role.html: Updated.
  • accessibility/canvas-fallback-content.html: Updated.
  • accessibility/empty-image-with-title-expected.txt: Updated.
  • accessibility/empty-image-with-title.html: Updated.
  • accessibility/fieldset-element-expected.txt: Updated.
  • accessibility/fieldset-element.html: Updated.
  • accessibility/focusable-div-expected.txt: Updated.
  • accessibility/focusable-div.html: Updated.
  • accessibility/help-text.html: Updated.
  • accessibility/img-alt-tag-only-whitespace-expected.txt: Updated.
  • accessibility/img-alt-tag-only-whitespace.html: Updated.
  • accessibility/img-aria-button-alt-tag-expected.txt: Updated.
  • accessibility/img-aria-button-alt-tag.html: Updated.
  • accessibility/img-fallsback-to-title.html: Updated.
  • accessibility/input-image-alt-expected.txt: Updated.
  • accessibility/input-image-alt.html: Updated.
  • accessibility/loading-iframe-sends-notification.html: Updated.
  • accessibility/self-referencing-aria-labelledby-expected.txt: Updated.
  • accessibility/self-referencing-aria-labelledby.html: Updated.
  • accessibility/svg-bounds.html: Updated.
  • accessibility/svg-group-element-with-title-expected.txt: Updated.
  • accessibility/svg-group-element-with-title.html: Updated.
  • accessibility/svg-image-expected.txt: Updated.
  • accessibility/svg-image.html: Updated.
  • accessibility/svg-labelledby-expected.txt: Updated.
  • accessibility/svg-labelledby.html: Updated.
  • accessibility/svg-remote-element.html: Updated.
  • accessibility/w3c-svg-description-calculation.html: Updated.
  • accessibility/w3c-svg-name-calculation.html: Updated.
  • platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed.
  • platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed.
  • platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed.
  • platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed.
  • platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated.
  • platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed.
  • platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed.
  • platform/gtk/accessibility/aria-text-role-expected.txt: Removed.
  • platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated.
  • platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated.
  • platform/gtk/accessibility/fieldset-element-expected.txt: Removed.
  • platform/gtk/accessibility/focusable-div-expected.txt: Removed.
  • platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed.
  • platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed.
  • platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated.
  • platform/gtk/accessibility/input-image-alt-expected.txt: Removed.
  • platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed.
  • platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed.
  • platform/gtk/accessibility/svg-image-expected.txt: Removed.
  • platform/gtk/accessibility/svg-labelledby-expected.txt: Removed.
  • platform/mac/accessibility/aria-help-expected.txt: Removed.
  • platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed.
  • platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated.
  • platform/mac/accessibility/fieldset-element-expected.txt: Removed.
  • platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated.
  • platform/win/accessibility/canvas-description-and-role-expected.txt: Updated.
  • resources/accessibility-helper.js:

(platformValueForW3CName): Added.
(platformValueForW3CDescription): Added.
(platformTextAlternatives): Added.
(platformRoleForComboBox): Added.
(platformRoleForStaticText): Added.

10:09 AM Changeset in webkit [201215] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use clearer names for JSON output of javascriptcore test results
https://bugs.webkit.org/show_bug.cgi?id=157921

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-20
Reviewed by Alexey Proskuryakov.

"failures" and "apiTestResult" were somewhat ambiguous names.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): "failures" -> "stressFailures", "apiTestResult" -> "allApiTestsPassed".

10:02 AM Changeset in webkit [201214] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix API test introduced in r201213.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST):

7:42 AM Changeset in webkit [201213] by commit-queue@webkit.org
  • 7 edits in trunk

Implement operator== for WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=157883

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-05-20
Reviewed by Chris Dumez.

Implement operator== and operator!= for WeakPtr and update code to use the operators.

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::updateLastScrollbarUnderMouse):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent):

Source/WTF:

  • wtf/WeakPtr.h:

(WTF::operator==):
(WTF::operator!=):

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST):

May 19, 2016:

11:35 PM Changeset in webkit [201212] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r200638): -[DOMHTMLVideoElement play] disappeared from ObjC bindings
https://bugs.webkit.org/show_bug.cgi?id=157940
<rdar://problem/26385907>

Reviewed by Dan Bernstein.

  • html/HTMLMediaElement.idl:

Drop the return value of play from the ObjC bindings, because the bindings
generator doesn't seem to know what to do with a Promise.

11:32 PM Changeset in webkit [201211] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't resume Debugger after breaking on exception in Promise
https://bugs.webkit.org/show_bug.cgi?id=157240
<rdar://problem/26030890>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-19
Reviewed by Timothy Hatcher.

If we pause but have no source code to show we paused in purely internal
code. In such cases we were attempting to resume without actually
telling the backend to resume, so the backend and frontend were out of
sync. The frontend thinking it is "paused" without an activeCallFrame
and the backend actually being paused.

This change more gracefully handles this situation. It actually resumes
both the frontend and the backend.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Resume the backend and the frontend.

(WebInspector.DebuggerManager.prototype._didResumeInternal):
Don't look at the active call frame, look at the paused state.
This may issue a Resumed event without actually triggering a
Paused event if this was the only pause, but that is harmless.

11:31 PM Changeset in webkit [201210] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Main Resource with <scripts> not showing up in debugger sidebar after reload
https://bugs.webkit.org/show_bug.cgi?id=157939
<rdar://problem/26385691>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-19
Reviewed by Timothy Hatcher.

The order of events on a reload are:

  • MainResourceChanged, add main resource
  • ScriptsCleared, remove all elements

This change makes it so ScriptsCleared add the main resource (and
potentially other resources). This also avoids the work in
MainResourceChanged on reloads / navigations that would be wasted if
ScriptsCleared were to just remove it. However, this is still needed
for initial load where ScriptsCleared does not happen.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange):
Only add the main resource tree here when we are first loading.

(WebInspector.DebuggerSidebarPanel.prototype._scriptsCleared):
Add the main resource tree after we remove all children in navigations.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange):
This was not gracefully handling if there was no selected tree element.

9:13 PM Changeset in webkit [201209] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual Style connectors are not always centered properly
https://bugs.webkit.org/show_bug.cgi?id=157932

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStylePropertyEditorLink.css:

(.visual-style-property-editor-link):
Remove the 1px margin on @2x that would cause jitter at different
sidebar widths. It is however needed on @1x.

(.visual-style-property-editor-link:not(.link-all)):
Make the height 20 so these both move closer to the center of the
<select> elements they are next to. They are not perfectly centered
as that would require a half pixel.

(.visual-style-property-editor-link.link-vertical):
Move the top line up a pixel so it is "up 0.5" from center and
the bottom one is already "down 0.5" from the center.

7:44 PM Changeset in webkit [201208] by commit-queue@webkit.org
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Improve int->float conversion in FTL
https://bugs.webkit.org/show_bug.cgi?id=157936

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-19
Reviewed by Filip Pizlo.

The integer -> floating point lowering was very barebone.

For example, converting a constant integer to double
was doing:

mov #const, %eax
xor %xmm0, %xmm0
cvtsi2sd %eax, %xmm0

Conversion from integer to float was also missing.
We were always converting to double then rounding the double
to float.

This patch adds the basics:
-Constant folding.
-Integer to Float opcode.
-Reducing int->double to int->float when used by DoubleToFloat.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::convertInt32ToFloat):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::convertInt64ToDouble):
(JSC::MacroAssemblerX86_64::convertInt64ToFloat):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::cvtsi2ss_rr):
(JSC::X86Assembler::cvtsi2ssq_rr):
(JSC::X86Assembler::cvtsi2sdq_mr):
(JSC::X86Assembler::cvtsi2ssq_mr):
(JSC::X86Assembler::cvtsi2ss_mr):

  • assembler/MacroAssemblerARM64.h:
  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::iToDConstant):
(JSC::B3::Const32Value::iToFConstant):

  • b3/B3Const32Value.h:
  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::iToDConstant):
(JSC::B3::Const64Value::iToFConstant):

  • b3/B3Const64Value.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3ReduceDoubleToFloat.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::iToDConstant):
(JSC::B3::Value::iToFConstant):
(JSC::B3::Value::isRounded):
(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/B3ValueKey.cpp:

(JSC::B3::ValueKey::materialize):

  • b3/air/AirFixPartialRegisterStalls.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::int64Operands):
(JSC::B3::testIToD64Arg):
(JSC::B3::testIToF64Arg):
(JSC::B3::testIToD32Arg):
(JSC::B3::testIToF32Arg):
(JSC::B3::testIToD64Mem):
(JSC::B3::testIToF64Mem):
(JSC::B3::testIToD32Mem):
(JSC::B3::testIToF32Mem):
(JSC::B3::testIToD64Imm):
(JSC::B3::testIToF64Imm):
(JSC::B3::testIToD32Imm):
(JSC::B3::testIToF32Imm):
(JSC::B3::testIToDReducedToIToF64Arg):
(JSC::B3::testIToDReducedToIToF32Arg):
(JSC::B3::run):

7:37 PM Changeset in webkit [201207] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] FTL can crash on stack overflow
https://bugs.webkit.org/show_bug.cgi?id=157881
rdar://problem/24665964

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-19
Reviewed by Michael Saboff.

The VM's m_largestFTLStackSize was never set anywhere (updateFTLLargestStackSize()
was never called). We forgot to change that when implementing B3.

Even when it is set, we still have a problem on OSR Exit.
If the last frame is a FTL frame and it OSR Exits, the space required for
that frame becomes significantly larger. What happens is we crash in the OSR Exit
instead of the FTL frame (this is what happens in rdar://problem/24665964).

This patch changes the stack boundary checks in FTL to be the same as DFG:
we verify that we have enough space for the current optimized function but
also for the baseline version (including inlining) in case of exit.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::didOverflowStack): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.
(JSC::VM::updateStackLimit): Deleted.
(JSC::VM::updateFTLLargestStackSize): Deleted.

  • runtime/VM.h:

(JSC::VM::addressOfFTLStackLimit): Deleted.

7:25 PM Changeset in webkit [201206] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add JSON results to 32-bit and CLoop JSC tests
https://bugs.webkit.org/show_bug.cgi?id=157929

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-19
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunLLINTCLoopTests): Change command-line parameters to run-javascriptcore-tests in order to get JSON output.
(Run32bitJSCTests): Change command-line parameters to run-javascriptcore-tests in order to get JSON output.

6:50 PM Changeset in webkit [201205] by Chris Dumez
  • 58 edits in trunk/Source

Improve compile-time assertions in is<>() / downcast<>()
https://bugs.webkit.org/show_bug.cgi?id=157817

Reviewed by Darin Adler.

Source/WebCore:

Add missing includes and drop unnecessary is<WebVTTElement>() check
in SharingResolver::canShareStyleWithElement() that was identified
by the new assertions. WebVTTElement inherits Element but the check
was done on a StyledElement.

  • accessibility/AccessibilityRenderObject.cpp:
  • accessibility/AccessibilitySVGElement.cpp:
  • css/CSSDefaultStyleSheets.cpp:
  • css/CSSParser.cpp:
  • css/CSSStyleSheet.cpp:
  • css/StyleResolver.cpp:
  • cssjit/SelectorCompiler.cpp:
  • dom/Document.cpp:
  • dom/Element.cpp:
  • dom/Node.cpp:
  • dom/Position.cpp:
  • editing/ApplyStyleCommand.cpp:
  • editing/FrameSelection.cpp:
  • editing/ReplaceSelectionCommand.cpp:
  • editing/TextIterator.cpp:
  • editing/VisiblePosition.cpp:
  • editing/VisibleUnits.cpp:
  • editing/cocoa/HTMLConverter.mm:
  • editing/htmlediting.cpp:
  • editing/markup.cpp:
  • html/GenericCachedHTMLCollection.cpp:
  • html/HTMLBodyElement.cpp:
  • html/HTMLFormElement.cpp:
  • html/HTMLLIElement.cpp:
  • html/HTMLNameCollection.cpp:
  • html/HTMLSelectElement.cpp:
  • html/parser/HTMLTreeBuilder.cpp:
  • inspector/InspectorDOMAgent.cpp:
  • inspector/InspectorStyleSheet.cpp:
  • loader/SubframeLoader.cpp:
  • loader/archive/cf/LegacyWebArchive.cpp:
  • mathml/MathMLElement.cpp:
  • page/EventHandler.cpp:
  • page/FrameView.cpp:
  • page/PageSerializer.cpp:
  • page/SpatialNavigation.cpp:
  • page/mac/EventHandlerMac.mm:
  • rendering/HitTestResult.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBox.cpp:
  • rendering/RenderBoxModelObject.cpp:
  • rendering/RenderElement.cpp:
  • rendering/RenderFieldset.cpp:
  • rendering/RenderLayer.cpp:
  • rendering/svg/RenderSVGTransformableContainer.cpp:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

  • svg/SVGAnimationElement.cpp:
  • svg/SVGFELightElement.cpp:
  • svg/SVGTextPositioningElement.cpp:

Source/WebKit2:

Add missing includes.

  • WebProcess/WebPage/WebFrame.cpp:
  • WebProcess/WebPage/WebPage.cpp:

Source/WTF:

  • wtf/Ref.h:

(WTF::is):
Add is<>() overloads taking a Ref<>() so that is<>() keeps working when
passing a Ref<>(), despite the new static assertions on the input type.
Some call sites were already leveraging this as it was working by
implicitly converting the Ref<T> into a T&.

  • wtf/TypeCasts.h:

(WTF::is):
(WTF::downcast):
Make static assertions stricter in is<>() / downcast<>() to catch more
cases where those are either unnecessary or incorrect.

6:22 PM Changeset in webkit [201204] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening after r201203

Unreviewed.

  • platform/ios-simulator/TestExpectations:
5:59 PM Changeset in webkit [201203] by mmaxfield@apple.com
  • 2 edits
    3 adds in trunk/LayoutTests

Add John Daggett's font variant synthesis test
https://bugs.webkit.org/show_bug.cgi?id=157935
<rdar://problem/24133521>

Reviewed by Dean Jackson.

Make sure that we continue to synthesize correctly.

  • css3/font-variant-synthesis-jdaggett-expected.html: Added.
  • css3/font-variant-synthesis-jdaggett.html: Added.
  • css3/resources/gsubtest-lookup3.otf: Added.
  • platform/mac/TestExpectations:
5:20 PM Changeset in webkit [201202] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Mail crashes under TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate() when the Web process crashes
https://bugs.webkit.org/show_bug.cgi?id=157927
<rdar://problem/24793374>

Reviewed by Dean Jackson.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
With just the right combination of layout mechanisms and Web Content process
crash timing, it is possible to get a frame change underneath WebPageProxy::processDidCrash,
before the DrawingArea has been nulled out but after the Connection has.
This can lead to a null dereference. I had a lot of trouble writing a API
test for this, though I'm certain it's possible.

4:54 PM Changeset in webkit [201201] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

Cleanup RenderObject::container()
https://bugs.webkit.org/show_bug.cgi?id=157914

Reviewed by David Hyatt.

  1. Now we have a dedicated method for the optional, repaintContainerSkipped branch. The container finding

logic is moved to a static inline function so the compiler can optimize out the repaintContainerSkipped branches, when
container() is called instead of container(repaintContainer, isRepaintContainerSkipped).

  1. Use helper functions like canContainAbsolutelyPositionedObjects()
  2. Remove stale comments.

No behaviour change.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::pushMappingToContainer):
(WebCore::RenderBox::computeRectForRepaint):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::mapLocalToContainer):
(WebCore::RenderInline::pushMappingToContainer):

  • rendering/RenderObject.cpp:

(WebCore::containerForElement):
(WebCore::RenderObject::container):

  • rendering/RenderObject.h:
  • rendering/RenderText.h:
4:48 PM Changeset in webkit [201200] by bshafiei@apple.com
  • 19 edits
    2 adds in branches/safari-602.1.32-branch

Merge r201187. rdar://problem/25314776

4:32 PM Changeset in webkit [201199] by enrica@apple.com
  • 6 edits in trunk/Source

No candidate punctuation when typing punctuation in WK2 text field.
https://bugs.webkit.org/show_bug.cgi?id=157773
rdar://problem/23084603

Reviewed by Sam Weinig.

Source/WebCore:

We need to keep the inputManagerHint as part of the platform key event
information. Adding a new initializer for the task and a property to retrieve
the stored hint.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]):
(-[WebEvent dealloc]):
(-[WebEvent inputManagerHint]):

Source/WebKit2:

We need to adopt the new addInputString:withFlags:withInputManagerHint function
for this to work propertly.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]):

3:58 PM Changeset in webkit [201198] by bshafiei@apple.com
  • 11 edits
    2 adds in branches/safari-602.1.32-branch

Merge r201189. rdar://problem/24577706

3:58 PM Changeset in webkit [201197] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r201191. rdar://problem/26377366

3:58 PM Changeset in webkit [201196] by bshafiei@apple.com
  • 12 edits
    2 adds in branches/safari-602.1.32-branch

Merge r201183. rdar://problem/26375866

3:58 PM Changeset in webkit [201195] by beidson@apple.com
  • 8 edits
    3 adds in trunk

Finishing off: Modern IDB: Website data store management.
https://bugs.webkit.org/show_bug.cgi?id=157626

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/new-database-after-user-delete.html

This patch does two primary things:
1 - Implements the actual "delete files on disk" code for unopened databases,

taken from existing WK2 code.

2 - When a UniqueIBDDatabase is told to close immediately for user delete, it also

queues up a "delete backing store unconditionally" operation in the database task queue.

That way, all of the open databases are deleted before the primary "delete all files"
pass, and they are also deleted before any future openDB requests are handled that might
recreate the files.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getOrCreateUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::deleteDatabase):
(WebCore::IDBServer::IDBServer::closeUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):
(WebCore::IDBServer::removeAllDatabasesForOriginPath):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::doneWithHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
(WebKit::removeAllDatabasesForOriginPath): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigins): Deleted.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedSince): Deleted.

  • DatabaseProcess/DatabaseProcess.h:

LayoutTests:

  • storage/indexeddb/modern/new-database-after-user-delete-expected.txt: Added.
  • storage/indexeddb/modern/new-database-after-user-delete.html: Added.
  • storage/indexeddb/modern/resources/new-database-after-user-delete.js: Added.
3:55 PM Changeset in webkit [201194] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

[OS X][WK2] Expand sandbox for new mach endpoints
https://bugs.webkit.org/show_bug.cgi?id=157919
<rdar://problem/25238336>

Reviewed by Alexey Proskuryakov.

Grant the WebContent and Networking processes the mach lookup capability for
various Security-related mach endpoints..

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:41 PM Changeset in webkit [201193] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/JavaScriptCore

Merge r201180. rdar://problem/26129156

3:27 PM Changeset in webkit [201192] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r189385): Web Inspector: CSS properties modified via JS don't update in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=157918

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager):
(WebInspector.DOMTreeManager.prototype._inlineStyleInvalidated):
(WebInspector.DOMTreeManager.prototype._loadNodeAttributes):
Set the initial value of _loadNodeAttributesTimeout to be 0,
as setTimeout always returns a positive integer.

3:25 PM Changeset in webkit [201191] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Heap Snapshots taken before timeline view has a zero time do not get shown
https://bugs.webkit.org/show_bug.cgi?id=157923
<rdar://problem/26377366>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-19
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:

(WebInspector.HeapAllocationsTimelineDataGridNode):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.updateTimestamp):
Show emDash for the timestamp if we don't yet have a zero time.
Update when we get a zero time.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype.layout):
(WebInspector.HeapAllocationsTimelineView.prototype.reset):
Save a list of nodes pre-zero time and update them when we get a zero time.

3:20 PM Changeset in webkit [201190] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Inspector: CRASH when closing a page while element selection mode is enabled via Develop menu
https://bugs.webkit.org/show_bug.cgi?id=157925
<rdar://problem/26259618>

Reviewed by Joseph Pecoraro.

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::elementSelectionChanged):
Null-check m_page->inspector() since it will return nullptr if the page
is closed but not yet destructed. This is triggered by teardown code
in InspectorDOMAgent::willDestroyFrontendAndBackend.

3:19 PM Changeset in webkit [201189] by enrica@apple.com
  • 11 edits
    2 adds in trunk

Drag cannot start if no drag data is available in the Pasteboard.
https://bugs.webkit.org/show_bug.cgi?id=157911
rdar://problem/24577706

Reviewed by Tim Horton.

Source/WebKit/mac:

  • WebView/WebHTMLView.mm:

(+[WebHTMLView _dummyPasteboardType]):
(-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):

  • WebView/WebHTMLViewPrivate.h:
  • WebView/WebView.mm:

(-[WebView _registerDraggedTypes]):

Source/WebKit2:

Setting dummy data to allow drag to start.

  • Shared/mac/PasteboardTypes.h:
  • Shared/mac/PasteboardTypes.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::registerDraggedTypes):
(WebKit::WebViewImpl::dragImageForView):

LayoutTests:

  • fast/events/draggable-div-nodata-expected.txt: Added.
  • fast/events/draggable-div-nodata.html: Added.
  • platform/ios-simulator/TestExpectations
  • platform/mac-wk2/TestExpectations
3:11 PM Changeset in webkit [201188] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(201098) GuardMalloc / ASan crashes in WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply
https://bugs.webkit.org/show_bug.cgi?id=157917

Reviewed by Alex Christensen.

No new tests (Covered by all existing tests in Gmalloc/ASAN configs).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply): Protect this from deletion before executing the task.

2:59 PM Changeset in webkit [201187] by jer.noble@apple.com
  • 19 edits
    2 adds in trunk

[IOS] Add setting to allow playback to continue inline after exiting fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=157912

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-fullscreen-return-to-inline.html

Allow playback to continue when exiting fullscreen via settings.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):

  • page/Settings.in:

Source/WebKit/mac:

Add a preference to control whether media should be allowed to continue playing inline when
exiting fullscreen.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackAfterFullscreen]):
(-[WebPreferences setAllowsInlineMediaPlaybackAfterFullscreen:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a preference and configuration property to control whether media should be allowed to continue
playing inline when exiting fullscreen.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackAfterFullscreen]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackAfterFullscreen:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(disableScreenUpdates):
(enableScreenUpdates):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • media/media-fullscreen-return-to-inline-expected.txt: Added.
  • media/media-fullscreen-return-to-inline.html: Added.
  • media/video-test.js:

(runWithKeyDown.eventName.window.testRunner.eventSender.keyDown.string_appeared_here.string_appeared_here.thunk):
(runWithKeyDown):

2:51 PM Changeset in webkit [201186] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Fix childrenInline() check in markAllDescendantsWithFloatsForLayout()
https://bugs.webkit.org/show_bug.cgi?id=157866

Reviewed by Zalan Bujtas.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):

2:46 PM Changeset in webkit [201185] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix all of the builds. I failed a second time.

  • wtf/BackwardsGraph.h:

(WTF::BackwardsGraph::rootName):

2:44 PM Changeset in webkit [201184] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix all of the builds. I had made an additional change that I did not mean to
commit. This fixes it.

  • wtf/BackwardsGraph.h:

(WTF::BackwardsGraph::rootName):
(WTF::BackwardsGraph::Set::dump):
(WTF::BackwardsGraph::dump):

2:30 PM Changeset in webkit [201183] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

Web Inspector: HeapSnapshot Instances view should remove dead objects
https://bugs.webkit.org/show_bug.cgi?id=157920
<rdar://problem/26375866>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-19
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:

(HeapSnapshotWorker):
(HeapSnapshotWorker.prototype.clearSnapshots):
(HeapSnapshotWorker.prototype.createSnapshot):
Preserve a list of snapshots for this page's session. When
new snapshots come in we can determine which nodes have died
and update previous snapshots. Emit a CollectionEvent
containing the nodes that were deleted and affected snapshots.

  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot):
Stash the largest node identifier.
Create a byte-per-node list to mark it as dead or alive.
All snapshots start with all live nodes.

(HeapSnapshot.prototype.updateDeadNodesAndGatherCollectionData):
(HeapSnapshot.prototype._markDeadNodes):
When we get a new snapshot we can mark dead nodes in previous
snapshots. Determine the nodeIdentifiers of dead nodes, and
mark them as dead if they existed in previous snapshots.

(HeapSnapshot.buildCategories):
(HeapSnapshot.prototype.updateCategories):
(HeapSnapshotDiff.prototype.updateCategories):
Include a "deadCount" in category data. And provide a method
to return an updated category list.

(HeapSnapshot.prototype.serializeNode):
Include a "dead" property on nodes when they are first fetched.

  • UserInterface/Proxies/HeapSnapshotDiffProxy.js:

(WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotDiffProxy.prototype.updateCategories):

  • UserInterface/Proxies/HeapSnapshotNodeProxy.js:

(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):

  • UserInterface/Proxies/HeapSnapshotProxy.js:

(WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotProxy.prototype.updateCategories):
Update snapshot proxies from a collection event by updating properties
and dispatching an event from the model object.

  • UserInterface/Proxies/HeapSnapshotWorkerProxy.js:

(WebInspector.HeapSnapshotWorkerProxy):
(WebInspector.HeapSnapshotWorkerProxy.prototype.clearSnapshots):
(WebInspector.HeapSnapshotWorkerProxy.prototype._mainResourceDidChange):
Clear the session snapshot list when the main resource changes.
However we can't yet clear the HeapSnapshot objects on the worker
because we may still have UI that interact with them.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype.closed):
Register and unregister for HeapSnapshot collection events.

(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent.updateHeapSnapshotForEvent):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent):
Update all the snapshots we know about when a collection event happens.

  • UserInterface/Views/HeapSnapshotClassDataGridNode.js:

(WebInspector.HeapSnapshotClassDataGridNode.prototype.removeCollectedNodes):
(WebInspector.HeapSnapshotClassDataGridNode.prototype.updateCount):
(WebInspector.HeapSnapshotClassDataGridNode.prototype._populate):
(WebInspector.HeapSnapshotClassDataGridNode.prototype._fetchBatch):

  • UserInterface/Views/HeapSnapshotContentView.js:

(WebInspector.HeapSnapshotContentView.prototype._heapSnapshotDataGridTreeDidPopulate):
(WebInspector.HeapSnapshotContentView):

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WebInspector.HeapSnapshotDataGridTree):
(WebInspector.HeapSnapshotDataGridTree.prototype.removeChild):
(WebInspector.HeapSnapshotDataGridTree.prototype.removeCollectedNodes):
(WebInspector.HeapSnapshotDataGridTree.prototype._heapSnapshotCollectedNodes):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.removeCollectedNodes):
(WebInspector.HeapSnapshotInstancesDataGridTree):
Update the Instances DataGridTree UI when a collection event happens.
Remove any top level InstanceDataGridNodes that may be showing for collected nodes.
Update the category counts on the ClassDataGridNodes.
Update FetchMoreDataGridNodes to have updated counts (and replace removed nodes).

LayoutTests:

  • inspector/unit-tests/heap-snapshot-collection-event-expected.txt: Added.
  • inspector/unit-tests/heap-snapshot-collection-event.html: Added.
2:25 PM Changeset in webkit [201182] by fpizlo@apple.com
  • 28 edits
    14 adds in trunk

DFG::LICMPhase shouldn't hoist type checks unless it knows that the check will succeed at the loop pre-header
https://bugs.webkit.org/show_bug.cgi?id=144527

Reviewed by Saam Barati.

Source/JavaScriptCore:

This adds a control flow equivalence analysis (called ControlEquivalenceAnalysis) based on
dominator analysis over the backwards CFG. Two basic blocks are control flow equivalent if
the execution of one implies that the other one must also execute. It means that the two
blocks' forward and backward dominance are reciprocated: (A dom B and B backdom A) or (B dom
A and A backdom B). LICM now uses it to become more conservative about hoisting checks, if
this has caused problems in the past. If we hoist something that may exit from a block that
was not control equivalent to the pre-header then it's possible that the node's speculation
will fail even though it wouldn't have if it wasn't hoisted. So, we flag these nodes'
origins as being "wasHoisted" and we track all of their exits as "HoistingFailed". LICM will
turn off such speculative hoisting if the CodeBlock from which we are hoisting had the
HoistingFailed exit kind.

Note that this deliberately still allows us to hoist things that may exit even if they are
not control equivalent to the pre-header. This is necessary because the profitability of
hoisting is so huge in all of the cases that we're aware of that it's worth giving it a
shot.

This is neutral on macrobenchmarks since none of the benchmarks we track have a hoistable
operation that would exit only if hoisted. I added microbenchmarks to illustrate the problem
and two of them speed up by ~40% while one of them is neutral (Int52 saves us from having
problems on that program even though LICM previously did the wrong thing).

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::operator bool):
(JSC::DFG::AtTailAbstractState::initializeTo):

  • dfg/DFGBackwardsCFG.h: Added.

(JSC::DFG::BackwardsCFG::BackwardsCFG):

  • dfg/DFGBackwardsDominators.h: Added.

(JSC::DFG::BackwardsDominators::BackwardsDominators):

  • dfg/DFGCommon.h:

(JSC::DFG::checkAndSet): Deleted.

  • dfg/DFGControlEquivalenceAnalysis.h: Added.

(JSC::DFG::ControlEquivalenceAnalysis::ControlEquivalenceAnalysis):
(JSC::DFG::ControlEquivalenceAnalysis::dominatesEquivalently):
(JSC::DFG::ControlEquivalenceAnalysis::areEquivalent):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Graph::invalidateCFG):
(JSC::DFG::Graph::substituteGetLocal):
(JSC::DFG::Graph::handleAssertionFailure):
(JSC::DFG::Graph::ensureDominators):
(JSC::DFG::Graph::ensurePrePostNumbering):
(JSC::DFG::Graph::ensureNaturalLoops):
(JSC::DFG::Graph::ensureBackwardsCFG):
(JSC::DFG::Graph::ensureBackwardsDominators):
(JSC::DFG::Graph::ensureControlEquivalenceAnalysis):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::hasDebuggerEnabled):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::operator bool):
(JSC::DFG::InPlaceAbstractState::createValueForNode):
(JSC::DFG::InPlaceAbstractState::forNode):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGMayExit.h:
  • dfg/DFGNode.h:
  • dfg/DFGNodeOrigin.cpp:

(JSC::DFG::NodeOrigin::dump):

  • dfg/DFGNodeOrigin.h:

(JSC::DFG::NodeOrigin::takeValidExit):
(JSC::DFG::NodeOrigin::withWasHoisted):
(JSC::DFG::NodeOrigin::forInsertingAfter):

  • dfg/DFGNullAbstractState.h: Added.

(JSC::DFG::NullAbstractState::NullAbstractState):
(JSC::DFG::NullAbstractState::operator bool):
(JSC::DFG::NullAbstractState::forNode):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::OSRExit):

  • dfg/DFGOSRExitBase.cpp:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::OSRExitBase):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::run):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):

  • ftl/FTLOSRExit.h:

Source/WTF:

This adds an adaptor for graphs called BackwardsGraph. The WTF graph framework is based on
passing around a Graph template argument that follows the protocol shared by DFG::CFG,
B3::CFG, and Air::CFG. These graphs always have a single root node but may have many leaf
nodes. This new BackwardsGraph adaptor reverses the graph by creating a synthetic return
node that it uses as the root in the inverted graph. This currently may resort to some
heuristics in programs that have an infinite loop, but other than that, it'll work well in
the general case.

This allows us to say Dominators<BackwardsGraph<some graph type>> as a way of computing
backwards dominators, which then allows us to easily answer control flow equivalence
queries.

  • CMakeLists.txt:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/BackwardsGraph.h: Added.

(WTF::BackwardsGraph::Node::Node):
(WTF::BackwardsGraph::Node::root):
(WTF::BackwardsGraph::Node::operator==):
(WTF::BackwardsGraph::Node::operator!=):
(WTF::BackwardsGraph::Node::operator bool):
(WTF::BackwardsGraph::Node::isRoot):
(WTF::BackwardsGraph::Node::node):
(WTF::BackwardsGraph::Set::Set):
(WTF::BackwardsGraph::Set::add):
(WTF::BackwardsGraph::Set::remove):
(WTF::BackwardsGraph::Set::contains):
(WTF::BackwardsGraph::Set::dump):
(WTF::BackwardsGraph::Map::Map):
(WTF::BackwardsGraph::Map::clear):
(WTF::BackwardsGraph::Map::size):
(WTF::BackwardsGraph::Map::operator[]):
(WTF::BackwardsGraph::BackwardsGraph):
(WTF::BackwardsGraph::root):
(WTF::BackwardsGraph::newMap):
(WTF::BackwardsGraph::successors):
(WTF::BackwardsGraph::predecessors):
(WTF::BackwardsGraph::index):
(WTF::BackwardsGraph::node):
(WTF::BackwardsGraph::numNodes):
(WTF::BackwardsGraph::dump):

  • wtf/Dominators.h:

(WTF::Dominators::Dominators):
(WTF::Dominators::dump):
(WTF::Dominators::LengauerTarjan::computeDepthFirstPreNumbering):

  • wtf/GraphNodeWorklist.h:

(WTF::GraphNodeWith::GraphNodeWith):
(WTF::GraphNodeWith::operator bool):

  • wtf/StdLibExtras.h:

(WTF::callStatelessLambda):
(WTF::checkAndSet):

LayoutTests:

Add tests for LICM hoisting things that would only exit if hoisted.

  • js/regress/licm-dragons-expected.txt: Added.
  • js/regress/licm-dragons-out-of-bounds-expected.txt: Added.
  • js/regress/licm-dragons-out-of-bounds.html: Added.
  • js/regress/licm-dragons-overflow-expected.txt: Added.
  • js/regress/licm-dragons-overflow.html: Added.
  • js/regress/licm-dragons.html: Added.
  • js/regress/script-tests/licm-dragons-out-of-bounds.js: Added.

(foo):

  • js/regress/script-tests/licm-dragons-overflow.js: Added.

(foo):

  • js/regress/script-tests/licm-dragons.js: Added.

(foo):

2:11 PM Changeset in webkit [201181] by BJ Burg
  • 2 edits in trunk/LayoutTests

Web Inspector: use a consistent prefix for injected scripts
https://bugs.webkit.org/show_bug.cgi?id=157715
<rdar://problem/26287188>

Reviewed by Alexey Proskuryakov.

Follow-up fix to an affected test.

  • inspector/debugger/scriptParsed.html:

Check whether the script is for CommandLineAPIModuleSource before
checking whether it is an InjectedScript. With the new naming scheme,
the latter is a subset of the former, so do the more specific check first.

2:02 PM Changeset in webkit [201180] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Code that null checks the VM pointer before any use should ref the VM.
https://bugs.webkit.org/show_bug.cgi?id=157864

Reviewed by Filip Pizlo and Keith Miller.

JSLock::willReleaseLock() and HeapTimer::timerDidFire() need to reference the VM
through a RefPtr. Otherwise, there's no guarantee that the VM won't be deleted
after their null checks.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::vm):
(JSC::CodeBlock::setVM): Deleted.

  • Not used, and suggests that it can be changed during the lifetime of the CodeBlock (which should not be).
  • heap/HeapTimer.cpp:

(JSC::HeapTimer::timerDidFire):

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

  • Store the VM pointer in a RefPtr first, and null check the RefPtr instead of the raw VM pointer. This makes the null check a strong guarantee that the VM pointer is valid while these functions are using it.
1:40 PM Changeset in webkit [201179] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r201177. rdar://problem/26373969

1:23 PM Changeset in webkit [201178] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Search magnifying glass shifted in Search tab input field
https://bugs.webkit.org/show_bug.cgi?id=157913
rdar://problem/26374424

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]): Removed padding-left.
(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]::-webkit-search-results-button):
Added. Add margin-right here instead.

1:22 PM Changeset in webkit [201177] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines "Edit" button should be right-aligned
https://bugs.webkit.org/show_bug.cgi?id=157909
rdar://problem/26373969

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button.text-only): Deleted height: auto. Now inherited.

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar .item): Change height to auto to support any NavigationBar height.
This is needed since the Timelines tab has a shorter NavigationBar height, and
flexible items were overflowing.

  • UserInterface/Views/TextNavigationItem.css:

(.navigation-bar .item.text): Deleted height: auto. Now inherited.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview): Add a FlexibleSpaceNavigationItem before the Edit button.

1:09 PM Changeset in webkit [201176] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

arrow function lexical environment should reuse the same environment as the function's lexical environment where possible
https://bugs.webkit.org/show_bug.cgi?id=157908

Reviewed by Filip Pizlo.

We can safely combine these two environment when we have
a simple parameter list (no default parameters, no destructring parameters).

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):

  • bytecompiler/BytecodeGenerator.h:
12:15 PM Changeset in webkit [201175] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Typo fix in import-test262-tests
https://bugs.webkit.org/show_bug.cgi?id=157902

Reviewed by Keith Miller.

  • Scripts/import-test262-tests:
12:09 PM Changeset in webkit [201174] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Update RenderBlockFlow::adjustComputedFontSizes() to use RenderObjectTraversal
https://bugs.webkit.org/show_bug.cgi?id=157784

Reviewed by Zalan Bujtas.

Update RenderBlockFlow::adjustComputedFontSizes() to use RenderObjectTraversal
instead of having its own Renderer tree traversal API, specifically for iOS
text autosizing.

  • rendering/RenderBlockFlow.cpp:

(WebCore::isVisibleRenderText):
(WebCore::resizeTextPermitted):
(WebCore::isNonBlocksOrNonFixedHeightListItems):
(WebCore::RenderBlockFlow::adjustComputedFontSizes):

  • rendering/RenderIterator.h:

(WebCore::RenderObjectTraversal::nextSkippingChildren):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::traverseNext): Deleted.
(WebCore::RenderObject::enclosingBox): Deleted.
(WebCore::RenderObject::enclosingBoxModelObject): Deleted.
(WebCore::RenderObject::fixedPositionedWithNamedFlowContainingBlock): Deleted.
(WebCore::hasFixedPosInNamedFlowContainingBlock): Deleted.
(WebCore::RenderObject::firstLineBlock): Deleted.
(WebCore::objectIsRelayoutBoundary): Deleted.

  • rendering/RenderObject.h:
11:50 AM Changeset in webkit [201173] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix the build with GCC 4.9 in CSSParser.cpp
https://bugs.webkit.org/show_bug.cgi?id=157887

Reviewed by Chris Dumez.

  • css/CSSParser.cpp:

(WebCore::CSSParser::createViewportRule):

  • css/CSSParser.h:
11:39 AM Changeset in webkit [201172] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix.

Skipping this new test as it times out on the bots.

Issue tracked in https://bugs.webkit.org/show_bug.cgi?id=157903

  • tests/stress/regress-157595.js:

(MyRegExp):

10:58 AM Changeset in webkit [201171] by BJ Burg
  • 11 edits in trunk/Source

Web Inspector: timelines should not update via requestAnimationFrame unless Web Inspector is visible
https://bugs.webkit.org/show_bug.cgi?id=157897
<rdar://problem/26330802>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

The timelines overview tries to animate using requestAnimationFrame, even if the
inspector frontend is not really visible. When it does this, requestAnimationFrame
simply stalls out until the inspector becomes visible. If a recording is started
while the inspector is not visible, then when it is shown again, the timeline will
start to animate from 0s instead of the current time. This happens because the
requestAnimationFrame was requested when the current time actually was 0, and it
finally executes some time later, when the current time is no longer accurate.
Since the timelines animate by calculating time elapsed since the previous frame
rather than using event timestamps, there is no way for the timelines to skip forward
in their animations in scenarios where the current time becomes arbitrarily skewed.

To fix this, consider the visibility state of the frontend as reported by the UIProcess.
Fire a global notification when visibility state changes, and start or stop updating
the current time as the frontend becomes visible or not shown.

This does not affect most other uses of requestAnimationFrame, which are used as
timers to call updateLayout at an appropriate time. The timelines case is different
because the current time is fixed prior to requesting an animation frame, and
later animation frames are only triggered by earlier requests, so there's nothing to
coalesce.

  • UserInterface/Base/Main.js:

(WebInspector.loaded): Initialize WebInspector.visible.

  • UserInterface/Base/Object.js: Add new event.
  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setIsVisible): Added.

  • UserInterface/Test/Test.js:

(WebInspector.updateVisibilityState): Add a stub.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._inspectorVisibilityStateChanged):
If visibility state changes while capturing, then start or stop updating the
current time as appropriate. Otherwise, refresh the timelines with updated
times so that they know about the recording's updated start/current/end time.

(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
Bail out if the Web Inspector frontend is not visible to the user and won't be
able to service requestAnimationFrames immediately.

Source/WebKit2:

The UIProcess needs to notify the Inspector frontend when it is truly visible.
The frontend can't use document.visibilityState because it doesn't seem to work
if the inspector frontend's WKWebView is created but not attached to a window.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::didClose):
Send visibility updates to the inspector process when the inspector becomes
"visible" or "not visible". It becomes visible if it is attached to the
inspected page's window, or gets its own native window.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::frontendLoaded):
(WebKit::WebInspectorUI::setDockingUnavailable):
(WebKit::WebInspectorUI::setIsVisible):
Call InspectorFrontendAPI.updateVisibilityState to let the frontend know.

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.messages.in:

Add new message.

10:27 AM Changeset in webkit [201170] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSC: DFG::SpeculativeJIT::compile special case for MIPS for PutByValWithThis
https://bugs.webkit.org/show_bug.cgi?id=157741

Patch by Guillaume Emont <guijemont@igalia.com> on 2016-05-19
Reviewed by Saam Barati.

The PutByValWithThis case needs a special case for MIPS because we
don't have enough registers. The special case needs to be different
from the x86 one because we have a different ABI.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

10:11 AM Changeset in webkit [201169] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Fix the gst-libav build on ARM Thumb2 after r199649
https://bugs.webkit.org/show_bug.cgi?id=157893

Reviewed by Antonio Gomes.

  • efl/patches/gst-libav.patch:
9:48 AM Changeset in webkit [201168] by BJ Burg
  • 16 edits in trunk

Web Inspector: use a consistent prefix for injected scripts
https://bugs.webkit.org/show_bug.cgi?id=157715
<rdar://problem/26287188>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • inspector/InjectedScriptSource.js:

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • inspector/CommandLineAPIModuleSource.js:

Source/WebKit2:

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebProcess/Automation/WebAutomationSessionProxy.js:

LayoutTests:

Update how inspector tests check sourceURLs for internal scripts.

  • inspector/debugger/scriptParsed.html:
  • inspector/debugger/sourceURLs.html:
9:22 AM Changeset in webkit [201167] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Playback controls should not be active for muted media elements.
https://bugs.webkit.org/show_bug.cgi?id=157876
<rdar://problem/26007525>

Reviewed by Eric Carlson.

Consolidate calls to setUpPlaybackControlsManager() and clearUpPlaybackControlsManager()
into a new method, updatePlaybackControlsManager(), which checks with the MediaElementSession
whether the media element can currently control the playback controls manager, and call
one or the other method conditionally.

That means more logic needs to be moved into MediaElementSession::canControlControlsManager(),
such as whether the element is muted(), has ended(), or whether the element's document has
been suspended.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::updatePlaybackControlsManager):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

9:11 AM Changeset in webkit [201166] by Chris Dumez
  • 26 edits in trunk/Source/WebCore

Kill JSDOMBindings' createNewWrapper()
https://bugs.webkit.org/show_bug.cgi?id=157842

Reviewed by Youenn Fablet.

Kill JSDOMBindings' createNewWrapper() as it is identical to createWrapper().

  • bindings/js/JSDOMBinding.h:

(WebCore::createNewWrapper): Deleted.

  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::createWrapper):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::toJSNewlyCreated):

9:07 AM Changeset in webkit [201165] by jer.noble@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r200951): VideoControlsManager API tests time out
https://bugs.webkit.org/show_bug.cgi?id=157896
<rdar://problem/26326293>

Reviewed by Eric Carlson.

Explicitly disable user gesture requirements for playback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

9:03 AM Changeset in webkit [201164] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Playback controls still valid after navigating back after watching YouTube video.
https://bugs.webkit.org/show_bug.cgi?id=157874
<rdar://problem/25993063>

Reviewed by Eric Carlson.

YouTube uses window.onpopstate to "navigate" backwards from a video page to the main page
(or other video page). This causes the playback controls to not be cleared (since no
navigation actually occured). Instead, clear the playback controls when we clear our
MediaPlayer due to load() being called, when the src= attribute is changed, or when a
<source> element is added to the <video>.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::createMediaPlayer):

7:33 AM Changeset in webkit [201163] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer] unrelated codecs required to play videos
https://bugs.webkit.org/show_bug.cgi?id=135972

Reviewed by Michael Catanzaro.

Instead of hard-coding the list of supported mime-types, check the
decoder and demuxer GStreamer elements available and dynamically
build the list of mime-types accordingly. This patch also removes
support for under-used and exotic mime-types.

Based on a patch by Mario Sanchez Prada.

No new tests, existing media tests cover this change.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::gstRegistryHasElementForMediaType): New function
checking the elements registered in the factories have a sink pad
matching the caps specified as second argument of the function.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::mimeTypeSet): Hard-coded list of mime-types replaced by
runtime-built list of mime-types that can be supported by the
GStreamer decoders and demuxers available on the host machine.
(WebCore::MediaPlayerPrivateGStreamer::getSupportedTypes):
mimeTypeCache renamed to mimeTypeSet.
(WebCore::MediaPlayerPrivateGStreamer::supportsType): Ditto.

7:19 AM Changeset in webkit [201162] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

[ARM] Fix Wformat warning in MemoryPressureHandler.cpp
https://bugs.webkit.org/show_bug.cgi?id=157892

Reviewed by Michael Saboff.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):

7:19 AM Changeset in webkit [201161] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore

[ARM] Remove redefined macro after r200606
https://bugs.webkit.org/show_bug.cgi?id=157890

Reviewed by Michael Saboff.

  • bytecode/PolymorphicAccess.cpp:
  • jit/CCallHelpers.h:
7:15 AM Changeset in webkit [201160] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Remove castDOMMobjectForWrapperCreation(T&)
https://bugs.webkit.org/show_bug.cgi?id=157886

Reviewed by Andreas Kling.

No change of behavior.

  • bindings/js/JSDOMBinding.h:

(WebCore::castDOMObjectForWrapperCreation): Deleted.

6:22 AM Changeset in webkit [201159] by Antti Koivisto
  • 7 edits in trunk

Style resolution for explicitly inherited properties is inefficient
https://bugs.webkit.org/show_bug.cgi?id=157860

Reviewed by Andreas Kling.

Source/WebCore:

We mark the parent style with hasExplicitlyInheritedProperties bit rather than the style that is actually
affected by inherited properties. This leads to various inefficiencies including unnecessarily wide style recalcs.

  • css/StyleResolver.cpp:

(WebCore::isCacheableInMatchedPropertiesCache):

Check the style itself rather than the parent. This allows more caching.

(WebCore::StyleResolver::applyProperty):

Mark the style rather than the parent.

  • style/StyleChange.cpp:

(WebCore::Style::determineChange):

Remove hasExplicitlyInheritedProperties test and just return NoInherit. Having explicitly inherited
properties doesn't make the children inherit them automatically.

This allows smaller style recalcs.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

This patch exposed a bug with appearance property in meter and progress elements.
They may construct different renderer based on appearance so we need to force
render tree reconstruction when it changes.

(WebCore::Style::TreeResolver::popParentsToDepth):
(WebCore::Style::shouldResolvePseudoElement):

Don't clear the style recalc bits here.

(WebCore::Style::shouldResolveElement):

Add a helper.
If the parent had a NoInherit style change, test if the element has existing style with
hasExplicitlyInheritedProperties bit. If so we need to re-resolve this element.

(WebCore::Style::clearNeedsStyleResolution):

Also clear pseudo elements.

(WebCore::Style::TreeResolver::resolveComposedTree):

LayoutTests:

  • platform/ios-simulator/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:

This is a progression.

5:03 AM Changeset in webkit [201158] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Slow JSC stress tests times out in 32 bit debug mode
https://bugs.webkit.org/show_bug.cgi?id=154964

Reviewed by Michael Catanzaro.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Pass through the --debug option.

  • Scripts/run-jsc-stress-tests: Increase the timeout for debug builds.
2:36 AM Changeset in webkit [201157] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r201110. rdar://problem/25730174

2:36 AM Changeset in webkit [201156] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r201016. rdar://problem/25584201

2:36 AM Changeset in webkit [201155] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Tools

Merge r200978. rdar://problem/25584201

2:35 AM Changeset in webkit [201154] by bshafiei@apple.com
  • 10 edits in branches/safari-602.1.32-branch

Merge r200951. rdar://problem/25584201

1:41 AM Changeset in webkit [201153] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r201119. rdar://problem/26225793

1:41 AM Changeset in webkit [201152] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r201103. rdar://problem/26339922

1:41 AM Changeset in webkit [201151] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r201102. rdar://problem/26339922

1:41 AM Changeset in webkit [201150] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r201092. rdar://problem/26349229

1:41 AM Changeset in webkit [201149] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200661.

1:41 AM Changeset in webkit [201148] by bshafiei@apple.com
  • 11 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200651. rdar://problem/26188642

1:40 AM Changeset in webkit [201147] by bshafiei@apple.com
  • 14 edits
    3 adds in branches/safari-602.1.32-branch

Merge r201090. rdar://problem/26334636

1:40 AM Changeset in webkit [201146] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r201079. rdar://problem/26334648

1:40 AM Changeset in webkit [201145] by bshafiei@apple.com
  • 12 edits in branches/safari-602.1.32-branch

Merge r201065. rdar://problem/26333137

1:40 AM Changeset in webkit [201144] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r201043. rdar://problem/25835802

1:40 AM Changeset in webkit [201143] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200961. rdar://problem/25984480

1:40 AM Changeset in webkit [201142] by bshafiei@apple.com
  • 6 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200959. rdar://problem/26298247

1:40 AM Changeset in webkit [201141] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200950. rdar://problem/26287306

1:40 AM Changeset in webkit [201140] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200949. rdar://problem/26262219

1:40 AM Changeset in webkit [201139] by bshafiei@apple.com
  • 11 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200947. rdar://problem/26286090

1:40 AM Changeset in webkit [201138] by bshafiei@apple.com
  • 8 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200873. rdar://problem/26228605

1:40 AM Changeset in webkit [201137] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200809. rdar://problem/26260709

1:40 AM Changeset in webkit [201136] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200805. rdar://problem/26252938

1:40 AM Changeset in webkit [201135] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200779. rdar://problem/26239051

1:40 AM Changeset in webkit [201134] by bshafiei@apple.com
  • 7 edits
    1 add in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200767. rdar://problem/26231245

1:39 AM Changeset in webkit [201133] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200716. rdar://problem/26232856

1:39 AM Changeset in webkit [201132] by bshafiei@apple.com
  • 9 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200702. rdar://problem/26190121

1:39 AM Changeset in webkit [201131] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200656. rdar://problem/25898256

1:08 AM Changeset in webkit [201130] by yoav@yoav.ws
  • 4 edits in trunk/LayoutTests

REGRESSION (r200887): LayoutTest http/tests/performance/performance-resource-timing-cached-entries.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=157816

Reviewed by Alexey Proskuryakov.

Mark the test as flaky, and add console logs to try to figure out the cause for flakiness.

  • TestExpectations: Mark the test as flaky.
  • http/tests/performance/performance-resource-timing-cached-entries.html: Add prints to better identify the flakiness root cause.
12:32 AM Changeset in webkit [201129] by youenn.fablet@crf.canon.fr
  • 46 edits in trunk/Source/WebCore

Refactor toJS functions to use toJSNewlyCreated
https://bugs.webkit.org/show_bug.cgi?id=157835

Reviewed by Chris Dumez.

Moving checks generated by binding generator from toJS to toJSNewlyCreated.
Changing wrap template function to use toJSNewlyCreated function.
This allows DOMClass toJS() to be equivalent to wrap template function.

Refactored custom binding code to take benefit of this.

Covered by existing tests.

  • bindings/js/JSAnimationTimelineCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSCSSValueCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSCanvasRenderingContextCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSDOMBinding.h:

(WebCore::wrap):
(WebCore::toJS):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::toJS):
(WebCore::cachedDocumentWrapper): Deleted.

  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSHTMLTemplateElementCustom.cpp:

(WebCore::JSHTMLTemplateElement::content):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSMediaStreamCapabilitiesCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSNodeListCustom.h:

(WebCore::toJS):

  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSSVGPathSegCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSStyleSheetCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSTextCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSTrackCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSXMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:
12:14 AM Changeset in webkit [201128] by youenn.fablet@crf.canon.fr
  • 11 edits in trunk/Source/WebCore

Make binding DOM constructor use toJSNewlyCreated instead of toJS
https://bugs.webkit.org/show_bug.cgi?id=157832

Reviewed by Chris Dumez.

Using toJSNewlyCreated in generated constructors instead of toJS.
Enabling generation of toJS and toJSNewlyCreated for constructable DOM objects.
This ensures that toJSNewlyCreated call in constructor will compile properly.

Updating some custom code to implement toJSNewlyCreated.

Covered by existing tests.

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestNode.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):

May 18, 2016:

10:20 PM Changeset in webkit [201127] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard "Add pane" should list first by test, then by machine
https://bugs.webkit.org/show_bug.cgi?id=157880

Reviewed by Stephanie Lewis.

Reversed the order which tests and platforms are selected. Also split .pane-selector-container into #tests and
#platform for the ease of DOM node manipulations.

  • public/v3/components/pane-selector.js:

(PaneSelector):
(PaneSelector.prototype._renderPlatformList): Renamed from _renderPlatformLists since there is a single list
for platforms. This list now disappears while a non-metric item is selected in the collection of test lists.
e.g. "Speedometer" instead of its "Score" metric. Remember the last metric we rendered to avoid churning.
(PaneSelector.prototype._renderTestLists): Render the top level tests once. The index of lists have been
decreased by one since test lists are now inside #tests instead of appearing after the platform list.
(PaneSelector.prototype._buildTestList): Don't filter tests since platform is chosen after tests now.
(PaneSelector.prototype._replaceList):
(PaneSelector.prototype._selectedItem): Don't reset the test path (specifies which subtest or metric is picked)
when a platform is selected since it happens after a test metric is chosen now.
(PaneSelector.prototype._clickedItem): Add a pane when a platform is clicked, not when a metric is clicked.
(PaneSelector.cssTemplate):

9:57 PM Changeset in webkit [201126] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Classes toggle wraps in some localizations
https://bugs.webkit.org/show_bug.cgi?id=157878
rdar://problem/26108859

Reviewed by Brian Burg.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
Add white-space: nowrap.

8:21 PM Changeset in webkit [201125] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: unable to switch between navigation tree outlines using up/down arrow keys
https://bugs.webkit.org/show_bug.cgi?id=157713
<rdar://problem/26287086>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Listen for TreeOutline focus changes, and associate trees and their DOM
elements for quick lookup when handling focus events.

(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineDidFocus):
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange):
When selecting a tree element causes an element in a different tree outline
to be deselected, remember the old selection so that it can be restored
the next time the tree outline get the focus.

8:11 PM Changeset in webkit [201124] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Make LayoutUnit::operator bool() explicit.
https://bugs.webkit.org/show_bug.cgi?id=157871

Reviewed by Simon Fraser.

This is in preparation for getting LayoutUnit::operator int() removed.

No behaviour change.

  • platform/LayoutUnit.h:

(WebCore::LayoutUnit::operator bool):

  • rendering/RenderView.cpp:

(WebCore::RenderView::initializeLayoutState): Negative page height is invalid.

7:39 PM Changeset in webkit [201123] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Analysis task should look for a git commit based on abridged hashes
https://bugs.webkit.org/show_bug.cgi?id=157877
<rdar://problem/26254374>

Reviewed by Chris Dumez.

Made /privileged-api/associate-commit look for commits using LIKE instead of an exact match.
Associate the commit when there is exactly one match.

  • public/include/commit-log-fetcher.php:

(CommitLogFetcher::fetch_between):

  • public/include/db.php:

(Database::escape_for_like): Extracted from CommitLogFetcher::fetch_between.

  • public/privileged-api/associate-commit.php:

(main): Look for the commits using LIKE. Reject whenever there are multiple commits. We limit the number of
matches to two for performance when the user specifies something that almost thousands of commits: e.g. "1".

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage.prototype._associateCommit): Added human friendly error messages for mismatching commits.

6:27 PM Changeset in webkit [201122] by sbarati@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Function with default parameter values that are arrow functions that capture this isn't working
https://bugs.webkit.org/show_bug.cgi?id=157786
<rdar://problem/26327329>

Reviewed by Geoffrey Garen.

To make the scopes ordered properly, I needed to initialize the arrow
function lexical environment before initializing default parameter values.
I also made the code easier to reason about by never reusing the function's
var lexical environment for the arrow function lexical environment. The
reason for this is that that code was wrong, and we just didn't have code to
that properly tested it. It was easy for that code to be wrong because
sometimes the function's lexical environment isn't the top-most scope
(namely, when a function's parameter list is non-simple) and sometimes
it is (when the function's parameter list is simple).

Also, because a function's default parameter values may capture the
'arguments' variable inside an arrow function, I needed to take care
to initialize the 'arguments' variable as part of whichever scope
is the top-most scope. It's either the function's var environment
if the parameter list is simple, or it's the function's parameter
environment if the parameter list is non-simple.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::initializeParameters):
(JSC::BytecodeGenerator::initializeVarLexicalEnvironment):
(JSC::BytecodeGenerator::visibleNameForParameter):

  • bytecompiler/BytecodeGenerator.h:
  • tests/stress/arrow-functions-as-default-parameter-values.js: Added.

(assert):
(test):
(test.foo):

  • tests/stress/op-push-name-scope-crashes-profiler.js:

(test):

6:01 PM Changeset in webkit [201121] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

StringBuilder::appendQuotedJSONString doesn't properly protect against the math it's doing. Make the math fit the assertion.
https://bugs.webkit.org/show_bug.cgi?id=157868

Reviewed by Benjamin Poulain.

appendQuotedJSONString was rounding up to the next power of two when resizing
its buffer. Lets call the allocation size X. If X > 231, then
roundUpToPowerOfTwo(X) == 0. This patch fixes this by making the
assertion reflect what the code is doing. We now allocate to a size
of X = std::max(maximumCapacityRequired , roundUpToPowerOfTwo(maximumCapacityRequired))

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendQuotedJSONString):

5:45 PM Changeset in webkit [201120] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Use --date-order so that every child commit appears after its parent.
Otherwise we'll hit a FailedToFindParentCommit error while submitting a commit that appears before its parent.

  • tools/sync-commits.py:

(GitRepository._fetch_all_hashes):

5:20 PM Changeset in webkit [201119] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Fullscreen video playback broken in WK1 apps
https://bugs.webkit.org/show_bug.cgi?id=157847
<rdar://problem/25879521>

Reviewed by Jer Noble.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:

(WebCore::WebVideoFullscreenModelVideoElement::playbackSessionModel): New, model accessor.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface): Set model's playback interface.
(WebVideoFullscreenModelVideoElement::setVideoElement): Set model's video element.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::didCleanupFullscreen): Clear m_sessionModel.
(WebVideoFullscreenControllerContext::setVideoDimensions): This is called from both the UI and

Web threads, so dispatch to the UI thread when necessary.

(WebVideoFullscreenControllerContext::play): Call the model's playback session on the Web thread.
(WebVideoFullscreenControllerContext::pause): Ditto.
(WebVideoFullscreenControllerContext::togglePlayState): Ditto.
(WebVideoFullscreenControllerContext::beginScrubbing): Ditto.
(WebVideoFullscreenControllerContext::endScrubbing): Ditto.
(WebVideoFullscreenControllerContext::seekToTime): Ditto.
(WebVideoFullscreenControllerContext::fastSeek): Ditto.
(WebVideoFullscreenControllerContext::beginScanningForward): Ditto.
(WebVideoFullscreenControllerContext::beginScanningBackward): Ditto.
(WebVideoFullscreenControllerContext::endScanning): Ditto.
(WebVideoFullscreenControllerContext::selectAudioMediaOption): Ditto.
(WebVideoFullscreenControllerContext::selectLegibleMediaOption): Ditto.
(WebVideoFullscreenControllerContext::setUpFullscreen): Create and configure a session model.
(WebVideoFullscreenSessionModel::play): Pass call back to the controller.
(WebVideoFullscreenSessionModel::pause): Ditto.
(WebVideoFullscreenSessionModel::togglePlayState): Ditto.
(WebVideoFullscreenSessionModel::beginScrubbing): Ditto.
(WebVideoFullscreenSessionModel::endScrubbing): Ditto.
(WebVideoFullscreenSessionModel::seekToTime): Ditto.
(WebVideoFullscreenSessionModel::fastSeek): Ditto.
(WebVideoFullscreenSessionModel::beginScanningForward): Ditto.
(WebVideoFullscreenSessionModel::beginScanningBackward): Ditto.
(WebVideoFullscreenSessionModel::endScanning): Ditto.
(WebVideoFullscreenSessionModel::selectAudioMediaOption): Ditto.
(WebVideoFullscreenSessionModel::selectLegibleMediaOption): Ditto.

5:04 PM Changeset in webkit [201118] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add WKPreferencesRef getter/setter pair to set RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157873
rdar://problem/26329970

Reviewed by Tim Horton.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetUserInterfaceDirectionPolicy):
(WKPreferencesGetUserInterfaceDirectionPolicy):

  • UIProcess/API/C/WKPreferencesRef.h:
4:55 PM Changeset in webkit [201117] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Remove underline from Status Bubbles on dashboard
https://bugs.webkit.org/show_bug.cgi?id=157870
rdar://problem/26332321

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: Reverted style

change made in http://trac.webkit.org/r200880

4:49 PM Changeset in webkit [201116] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Removed the erroneously committed debug code.

  • tools/sync-commits.py:

(GitRepository.fetch_commit):

4:42 PM Changeset in webkit [201115] by rniwa@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/Websites/perf.webkit.org

Perf dashboard should have a script to sync git commits
https://bugs.webkit.org/show_bug.cgi?id=157867

Reviewed by Chris Dumez.

Added the support to pull from a Git repo to pull-svn.py and renamed it to sync-commits.py.

Added two classes SVNRepository and GitRepository which inherits from an abstract class, Repository.
The code that fetches commit and format revision number / git hash is specialized in each.

  • Install.md:
  • tools/pull-svn.py: Removed.
  • tools/sync-commits.py: Renamed from Websites/perf.webkit.org/tools/pull-svn.py.

(main): Renamed --svn-config-json to --repository-config-json. Also made it robust against exceptions
inside fetch_commits_and_submit of each Repository class.
(load_repository): A factory function for SVNRepository and GitRepository.
(Repository): Added.
(Repository.init): Added.
(Repository.fetch_commits_and_submit): Extracted from standalone fetch_commits_and_submit.
(Repository.fetch_commit): Added. Implemented by a subclass.
(Repository.format_revision): Ditto.
(Repository.determine_last_reported_revision): Extracted from alonealone
determine_first_revision_to_fetch. The fallback to use "oldest" has been moved to SVNRepository's
fetch_commit since it doesn't work in Git.
(Repository.fetch_revision_from_dasbhoard): Extracted from fetch_revision_from_dasbhoard.
(SVNRepository): Added.
(SVNRepository.init): Added.
(SVNRepository.fetch_commit): Extracted from standalone fetch_commit_and_resolve_author and fetch_commit.
(SVNRepository._resolve_author_name): Renamed from resolve_author_name_from_account.
(SVNRepository.format_revision): Added.
(GitRepository): Added.
(GitRepository.init):
(GitRepository.fetch_commit): Added. Fetches the list of all git hashes if needed, and finds the next hash.
(GitRepository._find_next_hash): Added. Finds the first commit that appears after the specified hash.
(GitRepository._fetch_all_hashes): Added. Gets the list of all git hashs chronologically (old to new).
(GitRepository._run_git_command): Added.
(GitRepository.format_revision): Added. Use the first 8 characters of the hash.

4:25 PM Changeset in webkit [201114] by Alan Bujtas
  • 6 edits in trunk/Source

Remove LayoutUnit::operator unsigned().
https://bugs.webkit.org/show_bug.cgi?id=157856

Reviewed by Simon Fraser.

Converting LayoutUnit values to unsigned is lossy. We should avoid
such implicit conversions.

No behaviour change.

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint):

  • platform/LayoutUnit.h:

(WebCore::LayoutUnit::operator unsigned): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeColumnCountAndWidth):

4:09 PM Changeset in webkit [201113] by achristensen@apple.com
  • 49 edits in trunk/Source

Clean up CSS code
https://bugs.webkit.org/show_bug.cgi?id=157808

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. Just cleaning up and modernizing code.

  • css/BasicShapeFunctions.cpp:

(WebCore::convertToCenterCoordinate):
(WebCore::cssValueToBasicShapeRadius):
(WebCore::basicShapeForValue):

  • css/BasicShapeFunctions.h:
  • css/CSSAnimationTriggerScrollValue.h:

(WebCore::CSSAnimationTriggerScrollValue::create):
(WebCore::CSSAnimationTriggerScrollValue::startValue):
(WebCore::CSSAnimationTriggerScrollValue::CSSAnimationTriggerScrollValue):

  • css/CSSAspectRatioValue.h:
  • css/CSSBasicShapes.h:
  • css/CSSBorderImage.cpp:

(WebCore::createBorderImageValue):

  • css/CSSBorderImage.h:
  • css/CSSBorderImageSliceValue.h:

(WebCore::CSSBorderImageSliceValue::create):

  • css/CSSCalculationValue.h:
  • css/CSSCanvasValue.h:

(WebCore::CSSCanvasValue::CSSCanvasValue):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
(WebCore::valueForNinePieceImage):
(WebCore::zoomAdjustedPixelValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSFontFaceLoadEvent.cpp:

(WebCore::CSSFontFaceLoadEvent::CSSFontFaceLoadEvent):

  • css/CSSFontFaceLoadEvent.h:
  • css/CSSFontValue.h:
  • css/CSSFunctionValue.h:
  • css/CSSGradientValue.h:

(WebCore::CSSGradientValue::setFirstX):
(WebCore::CSSGradientValue::setFirstY):
(WebCore::CSSGradientValue::setSecondX):
(WebCore::CSSGradientValue::setSecondY):
(WebCore::CSSGradientValue::addStop):
(WebCore::CSSLinearGradientValue::create):
(WebCore::CSSLinearGradientValue::setAngle):
(WebCore::CSSRadialGradientValue::setFirstRadius):
(WebCore::CSSRadialGradientValue::setSecondRadius):
(WebCore::CSSRadialGradientValue::setShape):
(WebCore::CSSRadialGradientValue::setSizingBehavior):
(WebCore::CSSRadialGradientValue::setEndHorizontalSize):
(WebCore::CSSRadialGradientValue::setEndVerticalSize):

  • css/CSSGroupingRule.cpp:

(WebCore::CSSGroupingRule::item):
(WebCore::CSSGroupingRule::cssRules):

  • css/CSSKeyframesRule.cpp:

(WebCore::CSSKeyframesRule::cssRules):

  • css/CSSParser.cpp:

(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::rollbackLastProperties):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::BorderImageParseContext::commitWebKitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImage):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseRadialGradient):

  • css/CSSParser.h:

(WebCore::cssyylex):

  • css/CSSPrimitiveValue.h:
  • css/CSSProperty.cpp:
  • css/CSSProperty.h:

(WebCore::CSSProperty::CSSProperty):

  • css/CSSRule.h:
  • css/CSSRuleList.h:
  • css/CSSSegmentedFontFace.h:
  • css/Counter.h:

(WebCore::Counter::create):
(WebCore::Counter::identifier):
(WebCore::Counter::listStyleIdent):
(WebCore::Counter::setIdentifier):
(WebCore::Counter::setListStyle):
(WebCore::Counter::setSeparator):
(WebCore::Counter::equals):
(WebCore::Counter::cloneForCSSOM):
(WebCore::Counter::Counter):

  • css/Pair.h:
  • css/Rect.h:

(WebCore::RectBase::bottom):
(WebCore::RectBase::left):
(WebCore::RectBase::setTop):
(WebCore::RectBase::setRight):
(WebCore::RectBase::setBottom):
(WebCore::RectBase::setLeft):
(WebCore::RectBase::equals):

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertClipPath):
(WebCore::StyleBuilderConverter::convertShapeValue):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::borderPropertyValue):
(WebCore::StyleProperties::getPropertyCSSValue):
(WebCore::StyleProperties::getPropertyCSSValueInternal):
(WebCore::MutableStyleProperties::setCustomProperty):
(WebCore::MutableStyleProperties::setProperty):

  • css/StyleProperties.h:

(WebCore::StyleProperties::isEmpty):
(isType):

  • css/StylePropertyShorthand.cpp:
  • css/StylePropertyShorthand.h:

(WebCore::StylePropertyShorthand::StylePropertyShorthand):
(WebCore::StylePropertyShorthand::id):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::addKeyframeStyle):
(WebCore::StyleResolver::~StyleResolver):
(WebCore::StyleResolver::resolvedVariableValue):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):

  • css/StyleResolver.h:

(WebCore::StyleResolver::hasViewportDependentMediaQueries):
(WebCore::StyleResolver::state):
(WebCore::checkRegionSelector):

  • css/StyleSheetList.h:
  • css/WebKitCSSFilterValue.cpp:
  • css/WebKitCSSFilterValue.h:
  • css/WebKitCSSTransformValue.cpp:
  • css/WebKitCSSTransformValue.h:
  • rendering/shapes/Shape.cpp:

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:
4:08 PM Changeset in webkit [201112] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.143

New tag.

4:01 PM Changeset in webkit [201111] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Checkbox disappears when unchecking CSS property with value containing a semicolon
https://bugs.webkit.org/show_bug.cgi?id=157862
<rdar://problem/16214480>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createCommentedCheckboxMarker):
Modify regex to match CSS properties with url() and quoted values,
which can contain semicolons.

3:52 PM Changeset in webkit [201110] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit2

Disable default user gesture requirement for audio playback on Mac
https://bugs.webkit.org/show_bug.cgi?id=157820

Reviewed by Sam Weinig.

Disable the WebPreferences and matching WKWebViewConfiguration.mediaTypesRequiringUserActionForPlayback
settings on Mac (and other non-iOS ports).

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

3:49 PM Changeset in webkit [201109] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

webkitEnterFullscreen() does not require a user gesture when RequireUserGestureForAudioRateChange is set.
https://bugs.webkit.org/show_bug.cgi?id=157803

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-play-audio-require-user-gesture.html

Refactor the setting of restrictions in the HTMLMediaElement constructor, and in so doing, only
relax the RequireUserGestureForFullscreen restriction if both videoPlaybackRequiresUserGesture()
and audioPlaybackRequiresUserGesture() settings are not set.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

LayoutTests:

  • media/video-play-audio-require-user-gesture-expected.txt: Added.
  • media/video-play-audio-require-user-gesture.html: Added.
3:45 PM Changeset in webkit [201108] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix when not using CredentialStorage with NetworkSession.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSession::clearCredentials):

3:40 PM Changeset in webkit [201107] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix null-deref crash sporadically seen after http://trac.webkit.org/changeset/201098

No review.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteData): Don't access m_idbServer directly, as calling

the idbServer() accessor is how you actually get your IDBServer created for you.

3:40 PM Changeset in webkit [201106] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Playback session sends audio and text track lists when media does not have audio or text tracks.
https://bugs.webkit.org/show_bug.cgi?id=157865
<rdar://problem/25992750>

Reviewed by Beth Dakin.

Only send across the CaptionUserPreferences-generated list of audio and text tracks if those
text tracks exist in the first place. This matches the behavior of the built-in controls.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::updateLegibleOptions):

3:36 PM Changeset in webkit [201105] by msaboff@apple.com
  • 4 edits
    1 add in trunk

r199812 broke test262
https://bugs.webkit.org/show_bug.cgi?id=157595

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Added a reasonable limit to the size of the match result array to catch possible
infinite loops when matching.
Added a new tests that creates an infinite loop in RegExp.prototype.[Symbol.match]
by creating a subclass of RegExp where the base RegExp's global flag is false and
the subclass overrides .global with a getter that always returns true.

  • builtins/RegExpPrototype.js:

(match):

  • tests/stress/regress-157595.js: Added.

(MyRegExp):
(MyRegExp.prototype.get global):
(test):
(catch):

Tools:

Added a new run type, runOneLargeHeap, for tests that use a large amount of memory.
This run type will not run with the --memory-limited option. Without that option,
we'll only the default test variant.

  • Scripts/run-jsc-stress-tests:
3:27 PM Changeset in webkit [201104] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Clean up / Modernize TextAutoSizingValue::adjustNodeSizes()
https://bugs.webkit.org/show_bug.cgi?id=157861

Reviewed by Alex Christensen.

Clean up / Modernize TextAutoSizingValue::adjustNodeSizes(), and
use tighter typing for autosizing nodes.

  • dom/Document.cpp:

(WebCore::Document::addAutoSizingNode):

  • dom/Document.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustComputedFontSizes):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::addNode):
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):

  • rendering/TextAutoSizing.h:
3:25 PM Changeset in webkit [201103] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Remove logging inadvertently committed in r201090.

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext): Deleted.

3:16 PM Changeset in webkit [201102] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: ugly gaps in Call Trees data grid when expanding more than one level
https://bugs.webkit.org/show_bug.cgi?id=157829
<rdar://problem/26339922>

Reviewed by Timothy Hatcher.

Make a more specific CSS selector to avoid style conflicts.

  • UserInterface/Views/DataGrid.css:

(.data-grid:not(.variable-height-rows) > .data-container > table.data > tbody > tr > td > div): Deleted.
(.data-grid:not(.variable-height-rows) > .data-container > table.data > tbody > tr > td > .cell-content):

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.createCell):

2:50 PM Changeset in webkit [201101] by BJ Burg
  • 13 edits in trunk/Source

Web Inspector: InspectorFrontendAPI.setTimelineProfilingEnabled should not implicitly show Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=157846

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Currently, if the Web Inspector opens for an in-progress or finished automation session,
it will always show the Timelines tab, disregarding any previous user view state. This
is annoying and is a bad user experience when trying to debug the same test repeatedly.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled): Don't implicitly show Timelines tab.
(InspectorFrontendAPI.showTimelines): Added. This is called explicitly when desired.

Source/WebKit2:

Add a separate ShowTimelines message to WebInspector and WebInspectorUI. Have the
start/stop profiling methods in public APIs explicitly call showTimelines() rather than
relying on InspectorFrontendAPI to do it.

  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorTogglePageProfiling):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::showTimelines):

  • UIProcess/WebInspectorProxy.h:
  • WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:

(WKBundleInspectorSetPageProfilingEnabled):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::showTimelines):

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.messages.in:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::showTimelines):

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.messages.in:
2:36 PM Changeset in webkit [201100] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION (r186569): media/restore-from-page-cache.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=147254

Unreviewed. Removing the flaky test expectation since the test is almost always passing now.

  • platform/mac/TestExpectations:
2:04 PM Changeset in webkit [201099] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: DebuggerSidebarPanel doesn't need to help manage temporarily disabling breakpoints while capturing
https://bugs.webkit.org/show_bug.cgi?id=157854

Reviewed by Timothy Hatcher.

Duplicate the event listeners in DebuggerManager and move non-view-related
state updates out of DebuggerSidebarPanel's listeners into DebuggerManager's listeners.
This allows a test to exercise the temporary-disablement code paths during capturing.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get breakpointsDisabledTemporarily):
Use this to make the code a bit more readable.

(WebInspector.DebuggerManager.prototype._startDisablingBreakpointsTemporarily):
(WebInspector.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily):
(WebInspector.DebuggerManager.prototype.startDisablingBreakpointsTemporarily): Deleted.
(WebInspector.DebuggerManager.prototype.stopDisablingBreakpointsTemporarily): Deleted.
Make this private since it's not used by other classes anymore.

(WebInspector.DebuggerManager.prototype._timelineCapturingWillStart): Added.
(WebInspector.DebuggerManager.prototype._timelineCapturingStopped): Added.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._timelineRecordingWillStart): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._timelineRecordingStopped): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): Added.
(WebInspector.DebuggerSidebarPanel.prototype._timelineCapturingStopped): Added.
Make the listener names consistent with TimelineManager: timelineCapturing{WillStart,Stopped}.

1:42 PM Changeset in webkit [201098] by beidson@apple.com
  • 35 edits
    3 adds in trunk

Modern IDB: Add support for server side closing of open database connections.
https://bugs.webkit.org/show_bug.cgi?id=157843

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/handle-user-delete.html

In order to support deleting IndexedDB databases, the IDB server needs the ability to
"immediately" close a currently open IDB connection.

To do so cleanly, the server has to:

  • Error out all requests it knows about
  • Abort all transactions it knows about
  • Tell the connection that it is being closed
  • Wait for the connection to acknowledge that it was closed on the server

And then the client has to:

  • Error out all requests it hasn't sent to the server
  • Abort all transactions that haven't already been aborted by the server
  • Send acknowledgement to the server that it has been closed.

Finally, because the status of a given request might be "in flight" somewhere between the
server and the client, some design assumptions change. This requires reworking some ASSERTS,
null checks, etc.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::didCloseFromServer): Do the heavy lifting for the immediate close on

the client side.

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::isRelatedToOrigin):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::connectionClosedFromServer): Error out all outstanding operations

and fire the abort error on itself.

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
(WebCore::IDBClient::IDBConnectionProxy::didCloseFromServer):
(WebCore::IDBClient::IDBConnectionProxy::confirmDidCloseFromServer):
(WebCore::IDBClient::IDBConnectionProxy::forgetActiveOperations):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::didCloseFromServer):
(WebCore::IDBClient::IDBConnectionToServer::confirmDidCloseFromServer):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didCloseFromServer):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::confirmDidCloseFromServer):
(WebCore::IDBServer::generateDeleteCallbackID):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::didPerformCloseAndDeleteDatabases):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromServer):
(WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer):
(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::isCurrentlyInUse):
(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::doneWithHardClose):
(WebCore::IDBServer::errorOpenDBRequestForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): Do the heavy lifting

for the immediate close on the server side.

(WebCore::IDBServer::UniqueIDBDatabase::performErrorCallback):
(WebCore::IDBServer::UniqueIDBDatabase::performKeyDataCallback):
(WebCore::IDBServer::UniqueIDBDatabase::performGetResultCallback):
(WebCore::IDBServer::UniqueIDBDatabase::performCountCallback):
(WebCore::IDBServer::UniqueIDBDatabase::storeCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::storeCallbackOrFireError): If the database has been

hard stopped, immediately fire and error for the callback and return a 0-identifier to
reflect this.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/shared/IDBError.cpp:

(WebCore::IDBError::toDOMError):

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::userDeleteError):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • platform/CrossThreadCopier.cpp:

(WebCore::std::chrono::system_clock::time_point>::copy):

  • platform/CrossThreadCopier.h:

Source/WebKit2:

  • Implement the required IDB delegate code.
  • Make DatabaseProcess::deleteWebsiteData call the right method in IDB server.
  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteData):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didCloseFromServer):
(WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer):
(WebKit::WebIDBConnectionToServer::didStartTransaction):
(WebKit::WebIDBConnectionToServer::didCloseFromServer):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

LayoutTests:

  • storage/indexeddb/modern/handle-user-delete-expected.txt: Added.
  • storage/indexeddb/modern/handle-user-delete.html: Added.
  • storage/indexeddb/modern/resources/handle-user-delete.js: Added.
1:25 PM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
1:21 PM Changeset in webkit [201097] by ddkilzer@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

CVE-2016-2803: [SECURITY] XSS vulnerability in dependency graphs via bug summary
<https://bugzilla.mozilla.org/show_bug.cgi?id=1253263>

Merge Bugzilla upstream master dd61903154fd363fb4e763d60aa155a507c2c3fc.

  • showdependencygraph.cgi:

(CreateImagemap): Fix XSS vulnerability.

1:20 PM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
1:01 PM Changeset in webkit [201096] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve console.takeHeapSnapshot documentation in console
https://bugs.webkit.org/show_bug.cgi?id=157853

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-18
Reviewed by Timothy Hatcher.

  • UserInterface/Models/NativeFunctionParameters.js:

Mention optional label argument.

12:35 PM Changeset in webkit [201095] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:34 PM Changeset in webkit [201094] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.33

New tag.

12:32 PM Changeset in webkit [201093] by timothy@apple.com
  • 2 edits in trunk/PerformanceTests

Make Animometer work in all browsers
https://bugs.webkit.org/show_bug.cgi?id=157855
rdar://problem/26338521

Reviewed by Jon Lee.

  • Animometer/resources/runner/logo.svg: Use a symbol instead

of putting the id on the root svg. This works in all browsers.

12:29 PM Changeset in webkit [201092] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: race between frontend and backend both starting timeline recordings causes console assert
https://bugs.webkit.org/show_bug.cgi?id=157850
<rdar://problem/26349229>

Reviewed by Joseph Pecoraro.

If TimelineManager has created a fresh recording and the Timeline.autoCaptureStarted
event comes before Timeline.recordingStarted, then the manager will try to start the
same recording twice. In this scenario, the manager should just wait until the
Timeline.recordingStarted event comes, since it causes TimelineMangare to set up
the isCapturing flag and other state.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.autoCaptureStarted):
Add a new flag, this._waitingForCapturingStartedEvent. If true, don't start the
recording in response to this event.

12:10 PM Changeset in webkit [201091] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

[OS X] Update platform/mac/fast/text/sticky-typesetting-features.html
https://bugs.webkit.org/show_bug.cgi?id=157851

Reviewed by Simon Fraser.

Kerning and ligatures are enabled by default now.

  • platform/mac/fast/text/sticky-typesetting-features-expected.png:
  • platform/mac/fast/text/sticky-typesetting-features-expected.txt:
  • platform/mac/fast/text/sticky-typesetting-features.html:
12:06 PM Changeset in webkit [201090] by Simon Fraser
  • 14 edits
    3 adds in trunk

REGRESSION (r200534) Command-+ no longer zooms pages
https://bugs.webkit.org/show_bug.cgi?id=157826
rdar://problem/26334636

Reviewed by Dean Jackson.

Source/WebCore:

When text autosizing was enabled on Mac, we started to parse and respect
-webkit-text-size-adjust. Fix by cutting this off in CSSParser if the feature
is disabled.

Also fix InternalSettings to reset page and text zoom, since WebKit1 aliases
the zoom levels causing DRT to fail to reset them between tests.

Test: fast/text-autosizing/mac/text-size-adjust-text-zoom.html

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::isTextAutosizingEnabled):

  • css/CSSParser.h:
  • css/CSSParserMode.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::resetToConsistentState):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues): Remove ENABLE() #ifdefs that do nothing (see http://webkit.org/b/157828).

LayoutTests:

Need to call internals.settings.setTextAutosizingEnabled(true) earlier in some tests.

  • fast/text-autosizing/ios/line-height-text-autosizing.html:
  • fast/text-autosizing/ios/percent-adjust-length-line-height.html:
  • fast/text-autosizing/ios/percent-adjust-number-line-height.html:
  • fast/text-autosizing/ios/percent-adjust-percent-line-height.html:
  • fast/text-autosizing/mac/text-size-adjust-text-zoom-expected.html: Added.
  • fast/text-autosizing/mac/text-size-adjust-text-zoom.html: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:03 PM Changeset in webkit [201089] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge patch for rdar://problem/26350121.

11:59 AM Changeset in webkit [201088] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

markAllDescendantsWithFloatsForLayout should not drill into blocks with
inline children. It was sufficient to mark ourselves as needing layout.

https://bugs.webkit.org/show_bug.cgi?id=157845

Reviewed by Simon Fraser.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):

11:57 AM Changeset in webkit [201087] by jdiggs@igalia.com
  • 16 edits in trunk

[GTK] accessibility/meter-element.html is failing
https://bugs.webkit.org/show_bug.cgi?id=115633

Reviewed by Chris Fleizach.

Source/WebCore:

The meter's value description should be exposed in the same fashion
as (we should have been exposing) aria-valuetext, namely through the
"valuetext" AtkObject attribute. This exposure is now in place. Also
implement AccessibilityProgressIndicator::valueDescription() so that
the ports do not have to special-case meter in the platform wrappers.
Map the meter element to the correct role (ATK_ROLE_LEVEL_BAR), and
ignore a previously-included accessible object resulting from the
use of the title attribute on a meter. Finally, do not expose the
meter's title as the accessible name because the HTML spec suggests
authors can supply the numeric unit as the value of title.

No new test file as the failure was identified by meter-element.html.
Seven new test cases were added for additional coverage. Also updated
the ATK expectations for spinbutton-value.html to reflect that we are now
exposing the value of aria-valuetext.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::accessibilityDescriptionForChildren):
(WebCore::AccessibilityNodeObject::visibleText):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityProgressIndicator.cpp:

(WebCore::AccessibilityProgressIndicator::valueDescription):

  • accessibility/AccessibilityProgressIndicator.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):
(atkRole):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Implement AccessibilityUIElement::valueDescription() and add mapping
from ATK_ROLE_LEVEL_BAR to AXProgressIndicator.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::valueDescription):

LayoutTests:

Seven new test cases were added to meter-element.html for additional
coverage. Also updated the ATK expectations for spinbutton-value.html
to reflect that we are now exposing the value of aria-valuetext.

  • accessibility/meter-element.html: New test cases added.
  • platform/gtk/TestExpectations: Unskip the previously-failing test.
  • platform/gtk/accessibility/meter-element-expected.txt: Updated.
  • platform/gtk/accessibility/spinbutton-value-expected.txt: Updated.
  • platform/mac/accessibility/meter-element-expected.txt: Updated.
11:32 AM Changeset in webkit [201086] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Allow RenderStyles marked unique in matched properties cache
https://bugs.webkit.org/show_bug.cgi?id=157844

Reviewed by Andreas Kling.

Depending on content this can improve matched properties cache hit rate quite a bit and so reduce
time spent building styles.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueContent):

Set the attr bit on render style.

  • css/StyleResolver.cpp:

(WebCore::isCacheableInMatchedPropertiesCache):

Allow caching of styles marked "unique". It only means that they are not shareable by style
sharing code because there were some complex selectors in the rules used for building them. It
doesn't affect matched properties cache the cache how the properties were resolved.

We still need to test against "content: attr()" as that makes the style depend on the element
being matched. It now has a separate bit in RenderStyle.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setHasAttrContent):

Bit for "content: attr()". It also sets unique() to keep style sharing code happy.

(WebCore::requireTransformOrigin):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasAttrContent):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:
10:46 AM Changeset in webkit [201085] by Yusuke Suzuki
  • 5 edits
    4 adds in trunk/Source/JavaScriptCore

[ES6] Namespace object re-export should be handled as local export
https://bugs.webkit.org/show_bug.cgi?id=157806

Reviewed by Mark Lam.

We align the implementation of ExportEntry to the spec; remove Type::Namespace.
This Type::Namespace is used for re-exported namespace object binding. For example,

import * as namespace from "namespace.js"
export { namespace }

In the above case, we used ExportEntry(Type::Namespace). In this patch, we drop this
and use normal local export (Type::Local) instead because namespace object actually has
the local binding in the above module environment. And this handling strictly meets the
spec (Sec 15.2.1.16.1 step 11-a-ii-2-b).

And we also clean up the ExportEntry implementation; dropping unnecessary information.
This change fixes the test262/test/language/module-code/instn-star-equality.js crash.

  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::exportVariable):

  • runtime/JSModuleRecord.cpp:

(JSC::getExportedNames):
(JSC::JSModuleRecord::dump): Deleted.

  • runtime/JSModuleRecord.h:
  • tests/modules/namespace-re-export.js: Added.
  • tests/modules/namespace-re-export/namespace-re-export-fixture.js: Added.
  • tests/modules/namespace-re-export/namespace-re-export.js: Added.
  • tests/modules/resources/assert.js:

(export.shouldNotBe):

10:25 AM Changeset in webkit [201084] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the allinone-build on Linux in Source/WebCore/html/HTMLElementsAllInOne.cpp
https://bugs.webkit.org/show_bug.cgi?id=157800

Reviewed by Alex Christensen.

  • html/HTMLElementsAllInOne.cpp:
10:19 AM Changeset in webkit [201083] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/debugger/command-line-api-exception.html after r201080

Unreviewed test gardening.

  • inspector/debugger/command-line-api-exception-expected.txt:
9:33 AM Changeset in webkit [201082] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r197488): Incorrect start time in Rendering Frames timeline grid
https://bugs.webkit.org/show_bug.cgi?id=157840
<rdar://problem/26344937>

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
The Rendering Frames timeline view needs a valid zero time.
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
Adjust ruler selection path component values by the zero time unless
the current view is the Rendering Frames timeline view.

9:30 AM Changeset in webkit [201081] by beidson@apple.com
  • 18 edits in trunk

Modern IDB: Make TestRunner.clearAllDatabases also delete IndexedDB databases (once doing so is supported).
https://bugs.webkit.org/show_bug.cgi?id=157823

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No current behavior change, will be tested with b/157626's resolution).

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): Stub this out for now.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit:

  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::deleteAllDatabases):

  • Storage/WebDatabaseProvider.h:

Source/WebKit/mac:

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager deleteAllIndexedDatabases]):

  • Storage/WebDatabaseManagerPrivate.h:

Source/WebKit2:

  • CMakeLists.txt:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveAllIndexedDatabases):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::clearAllDatabases):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::clearAllDatabases):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

8:22 AM Changeset in webkit [201080] by youenn.fablet@crf.canon.fr
  • 51 edits
    3 deletes in trunk

Sync DOM exception types with WebIDL and update promise rejections
https://bugs.webkit.org/show_bug.cgi?id=157792

Reviewed by Eric Carlson.

Source/WebCore:

Updating ExceptionCode with WebIDL latest exception types.
Updating promise rejection code to use those types as per the latest specifications.

Updating getUserMedia error handling by removing NavigatorUserMediaError which no long exists.

Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createAnswer):
(WebCore::MediaEndpointPeerConnection::setLocalDescription):
(WebCore::MediaEndpointPeerConnection::setRemoteDescription):
(WebCore::MediaEndpointPeerConnection::addIceCandidate):
(WebCore::MediaEndpointPeerConnection::getStats):
(WebCore::MediaEndpointPeerConnection::replaceTrack):

  • Modules/mediastream/NavigatorUserMediaError.cpp: Removed.
  • Modules/mediastream/NavigatorUserMediaError.h: Removed.
  • Modules/mediastream/NavigatorUserMediaError.idl: Removed.
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedCreateOffer):
(WebCore::RTCPeerConnection::queuedCreateAnswer):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::reject):

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::reject):

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::faceFinished):

  • dom/DOMCoreException.cpp:
  • dom/ExceptionCode.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::play):

LayoutTests:

  • fast/dom/insertAdjacentHTML-DocumentFragment-crash-expected.txt:
  • fast/inspector-support/uncaught-dom1-exception-expected.txt:
  • fast/inspector-support/uncaught-dom3-exception-expected.txt:
  • fast/inspector-support/uncaught-dom8-exception-expected.txt:
  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
  • fast/mediastream/MediaDevices-getUserMedia.html:
  • fast/mediastream/delayed-permission-denied-expected.txt:
  • fast/mediastream/delayed-permission-denied.html:
  • fast/mediastream/error-expected.txt:
  • fast/mediastream/error.html:
  • fast/mediastream/getusermedia-expected.txt:
  • fast/mediastream/mock-media-source-expected.txt:
  • fast/regions/selection/crash-deselect-expected.txt:
  • http/tests/media/media-stream/disconnected-frame-permission-denied-expected.txt:
  • http/tests/media/media-stream/disconnected-frame-permission-denied.html:
  • inspector/debugger/regress-133182-expected.txt:
  • inspector/debugger/setPauseOnExceptions-all-expected.txt:
  • inspector/debugger/setPauseOnExceptions-none-expected.txt:
  • inspector/debugger/setPauseOnExceptions-uncaught-expected.txt:
  • platform/efl/fast/dynamic/015-expected.txt:
  • platform/gtk/fast/dynamic/015-expected.txt:
  • platform/ios-simulator/fast/dynamic/015-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-right-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-right-expected.txt:
  • platform/mac/fast/dynamic/015-expected.txt:
  • platform/win/fast/dynamic/015-expected.txt:
7:52 AM Changeset in webkit [201079] by BJ Burg
  • 4 edits in trunk/Source/WebKit2

REGRESSION(r200959): "Start Timeline Recording" menu item doesn't start recording
https://bugs.webkit.org/show_bug.cgi?id=157821
<rdar://problem/26335429>

Reviewed by Timothy Hatcher.

In r200959, WebInspectorProxy started sending start/stop profiling
messages directly to the frontend process to avoid the inspected page
process from implicitly showing the frontend. To compensate, the WebKit
API layer was changed to call show() in togglePageProfiling().

Unfortunately, this fix was not quite right, because the ordering of
the Show and StartPageProfiling messages is undefined. The latter has to bounce
from UI to inspected to inspector processes, so the frontend may try
to start profiling before the frontend is shown, causing it to be ignored.

This patch takes a different approach: just remove all implicit show()
calls in the inspected page processes, and bounce both the Show and
StartPageProfiling messages through the inspected page process to ensure
they are handled in order by the frontend process.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::togglePageProfiling):
Revert to sending to the inspected page process.

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

(WKBundleInspectorSetPageProfilingEnabled):
Add a call to show() now that the implementation doesn't do it implicitly.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
Don't implicitly show the inspector. These methods are only called
through the WKBundleInspector API and via IPC from WebInspectorProxy.

7:48 AM Changeset in webkit [201078] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] webaudio crash on ARM platforms
https://bugs.webkit.org/show_bug.cgi?id=157838

Reviewed by Michael Catanzaro.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed): Explicitely cast the integer value
of the max-bytes property to guint64 which is the expected type of
this property. The compiler can't guess this on its own.

7:39 AM Changeset in webkit [201077] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] webaudio playback improvements
https://bugs.webkit.org/show_bug.cgi?id=155228

Reviewed by Michael Catanzaro.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::autoAudioSinkChildAddedCallback): Fix sink buffer-time
to 100ms to reduce playback latency.
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Connect to child-added signal of autoaudiosink to be notified when
a real sink is added into the bin.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed): Fine-tune blocksize of appsrc
according to the buffer size already configured on the src element.

7:30 AM Changeset in webkit [201076] by yoon@igalia.com
  • 5 edits in trunk

[GStreamer] Use FakeSink to get a decoded texture from a pipeline
https://bugs.webkit.org/show_bug.cgi?id=153641

Reviewed by Philippe Normand.

.:

  • Source/cmake/FindGStreamer.cmake: Bump gst-gl version to 1.8.0

Source/WebCore:

Relying on GstGLImageSink to use GStreamerGL brings a lot of overheads such as
window handling, context switching and overlay handling which are not needed in
our case.

This patch replaces GstGLImageSink with a custom GstBin which has a
GstGLUpload, GstGLColorConvert, and GstFakeSink.

GstFakeSink sends decoded frames via handoff signal from the vqueue thread of
GStreamer. Previously, GstGLImageSink passes frames through GStreamer's GL
thread, which adds additional overhead.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder): Modified to
unmap GstVideoFrame without async call. GstGLMemory will unmap itself
in gl-thread.
(WebCore::MediaPlayerPrivateGStreamerBase::drawCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL): Split
out creating of the gst-gl video sink into the separte method.
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Remove assertion
for the threaded compositor. It can be called by focusing event.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
7:21 AM Changeset in webkit [201075] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Resolve !important properties from different shadow trees in a single pass.
https://bugs.webkit.org/show_bug.cgi?id=157836

Reviewed by Andreas Kling.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::CascadedProperties::addImportantMatches):

Instead of doing multiple passes over increasing tree context ordinals collect matches with
non-zero ordinals to a vector and sort it to ascending order.

6:30 AM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
2:15 AM Changeset in webkit [201074] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the allinone-build after r198669
https://bugs.webkit.org/show_bug.cgi?id=157798

Reviewed by Michael Catanzaro.

  • CMakeLists.txt: Use DerivedSources.cpp only on Windows, it's broken everywhere else.
1:41 AM Changeset in webkit [201073] by Antti Koivisto
  • 7 edits in trunk

Cascading order for !important properties in ::slotted and ::host rules is incorrect
https://bugs.webkit.org/show_bug.cgi?id=157789
<rdar://problem/26318781>

Reviewed by Andreas Kling.

LayoutTests/imported/w3c:

  • csswg-test/css-scoping-1/shadow-cascade-order-001-expected.txt: This now passes.

Source/WebCore:

https://drafts.csswg.org/css-scoping-1/#shadow-cascading

"When comparing two declarations that have different tree contexts, then for normal rules the declaration earlier
in the shadow-including tree order wins, and for important rules the declaration coming later in the shadow-including
tree order wins."

  • css/ElementRuleCollector.cpp:

(WebCore::MatchRequest::MatchRequest):
(WebCore::ElementRuleCollector::ElementRuleCollector):
(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::clearMatchedRules):
(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):

Pass the tree context ordinal onwards so we can implement the order reversal semantics for !important properties.

(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchHostPseudoClassRules):
(WebCore::ElementRuleCollector::matchSlottedPseudoElementRules):

Don't flush the matched rules immediately to get the right ordering. Instead compute tree context ordinal
that is then used as a sorting criteria.

(WebCore::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::compareRules):

Sort regular rules so that earlier shadow trees win.

(WebCore::ElementRuleCollector::sortMatchedRules):

  • css/ElementRuleCollector.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::CascadedProperties::addMatch): Added.

Add a helper.

(WebCore::StyleResolver::CascadedProperties::addNormalMatches):

Split normal and important to different functions for clarity.

(WebCore::StyleResolver::CascadedProperties::addImportantMatches):

For !important properties a later shadow tree wins. Do multiple passes to apply in correct order if needed.

  • css/StyleResolver.h:

(WebCore::StyleResolver::MatchResult::matchedProperties):

12:12 AM Changeset in webkit [201072] by jdiggs@igalia.com
  • 45 edits
    1 copy
    19 adds in trunk

AX: [ATK] Use WebCore Accessibility's AccessibilityText for AtkObject name and description
https://bugs.webkit.org/show_bug.cgi?id=157822

Reviewed by Chris Fleizach.

Source/WebCore:

Remove the old code which was overriding WebCore Accessibility and always use
AccessibilityText.

If the AccessibilityText's textSource is HelpText or SummaryText, it should be exposed
as the AtkObject description. If the textSource is TitleTagText and there is no other
text alternative, the value should also be exposed in this fashion. Note that AtkObject's
description property is equivalent to AXAPI's AXHelp property.

If the AccessibilityText's textSource is anything other than the above, the first
non-empty value should be exposed as the AtkObject name. Depending on the source of
the name content, AtkObject's name property can be the equivalent of AXAPI's AXTitle.
However, most of the time, AtkObject's name property is equivalent to AXAPI's
AXDescription property.

By making these changes, what WebKit exposes for ATK is now extremely similar to what
WebKit exposes on the Mac (modulo the property names) and also with what is defined in
the HTML Accessibility and Accessible Name and Description Computation API mappings specs.

Now that the exposure is correct, the Layout Tests needed to be adjusted accordingly because
asking for the "AXDescription" gives you the AXDescription on the Mac and the AtkObject
description in GNU/Linux. But as indicated above, what ATK calls a "description" is what
the Mac calls "help."

Ultimately our Layout Tests and/or our platform TestRunner API should be modified to deal
with these differences more gracefully. (Bug https://bugs.webkit.org/show_bug.cgi?id=157187
has been opened for that task.) In the meantime, the existing tests have been given platform
checks to ask for the right property on each platform. This was done in such a way as to not
require other (non-ATK) platforms change their current expectations files.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetName):
(webkitAccessibleGetDescription):

Tools:

Fix AccessibilityUIElement::helpText() so that it returns an empty string rather than
nullptr upon failure.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::helpText):

LayoutTests:

Now that the exposure is correct, the Layout Tests needed to be adjusted accordingly because asking
for the "AXDescription" gives you the AXDescription on the Mac and the AtkObject description in
GNU/Linux. But what the Mac calls a "description" is what ATK calls a "name." What ATK calls a
"description" is what the Mac calls "help."

Ultimately our Layout Tests and/or our platform TestRunner API should be modified to deal with
with these differences more gracefully. (Bug https://bugs.webkit.org/show_bug.cgi?id=157187 has
been opened for that task.) In the meantime, the existing tests have been given platform checks
to ask for the right property on each platform. This was done in such a way as to not require
other (non-ATK) platforms change their current expectations files.

In addition to the above, three previously-failing tests were corrected and are now passing.

  • accessibility/alt-tag-on-image-with-nonimage-role.html:
  • accessibility/aria-help.html:
  • accessibility/aria-label.html:
  • accessibility/aria-labeled-with-hidden-node.html:
  • accessibility/aria-labelledby-on-input.html:
  • accessibility/aria-labelledby-overrides-aria-labeledby.html:
  • accessibility/aria-labelledby-overrides-label.html:
  • accessibility/aria-labelledby-stay-within.html:
  • accessibility/aria-labelledby-with-descendants.html:
  • accessibility/aria-namefrom-author.html:
  • accessibility/aria-option-role.html:
  • accessibility/canvas-description-and-role.html:
  • accessibility/empty-image-with-title.html:
  • accessibility/fieldset-element.html:
  • accessibility/focusable-div.html:
  • accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt:
  • accessibility/gtk/no-notification-for-unrendered-iframe-children.html:
  • accessibility/gtk/title-and-alt-expected.txt:
  • accessibility/gtk/title-and-alt.html:
  • accessibility/help-text.html:
  • accessibility/img-alt-tag-only-whitespace-expected.txt:
  • accessibility/img-alt-tag-only-whitespace.html:
  • accessibility/img-aria-button-alt-tag.html:
  • accessibility/img-fallsback-to-title.html:
  • accessibility/input-image-alt.html:
  • accessibility/loading-iframe-sends-notification.html:
  • accessibility/media-element.html:
  • accessibility/radio-button-title-label.html:
  • accessibility/self-referencing-aria-labelledby.html:
  • accessibility/svg-bounds.html:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Added.
  • platform/gtk/accessibility/aria-help-expected.txt:
  • platform/gtk/accessibility/aria-hidden-negates-no-visibility-expected.txt: Added.
  • platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Added.
  • platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Added.
  • platform/gtk/accessibility/aria-labelledby-overrides-aria-label-expected.txt: Added.
  • platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Added.
  • platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Added.
  • platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Added.
  • platform/gtk/accessibility/aria-namefrom-author-expected.txt: Added.
  • platform/gtk/accessibility/aria-option-role-expected.txt: Added.
  • platform/gtk/accessibility/aria-switch-text-expected.txt:
  • platform/gtk/accessibility/canvas-description-and-role-expected.txt: Added.
  • platform/gtk/accessibility/empty-image-with-title-expected.txt: Added.
  • platform/gtk/accessibility/fieldset-element-expected.txt: Added.
  • platform/gtk/accessibility/focusable-div-expected.txt: Added.
  • platform/gtk/accessibility/help-text-expected.txt: Added.
  • platform/gtk/accessibility/image-link-expected.txt:
  • platform/gtk/accessibility/image-map1-expected.txt:
  • platform/gtk/accessibility/image-map2-expected.txt:
  • platform/gtk/accessibility/image-with-alt-and-map-expected.txt:
  • platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Added.
  • platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Added.
  • platform/gtk/accessibility/img-fallsback-to-title-expected.txt:
  • platform/gtk/accessibility/input-image-alt-expected.txt: Added.
  • platform/gtk/accessibility/media-element-expected.txt:
  • platform/gtk/accessibility/radio-button-title-label-expected.txt:
  • platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Added.
  • platform/gtk/accessibility/svg-bounds-expected.txt: Added.

May 17, 2016:

8:39 PM Changeset in webkit [201071] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Add LayerListMutationDetector to hittesting.
https://bugs.webkit.org/show_bug.cgi?id=157758

Reviewed by Simon Fraser.

Hittesting is supposed to be readonly.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestLayer):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::clearZOrderLists):

8:29 PM Changeset in webkit [201070] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source/WebCore

Remove toJS template methods taking const Ref and const RefPtr
https://bugs.webkit.org/show_bug.cgi?id=157791

Reviewed by Chris Dumez.

Updating toJS template method taking a const Ref<T>& to take a Ref<T>&&.
Updating toJS template method taking a const RefPtr<T>& to take a RefPtr<T>&&.
Updating binding generator to generate rvalue references.

Covered by existing tests.

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::construct):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

7:53 PM Changeset in webkit [201069] by sbarati@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest inspector/debugger/tail-recursion.html failing on WK2 debug
https://bugs.webkit.org/show_bug.cgi?id=157801

Rubber-stamped by Joseph Pecoraro.

  • inspector/debugger/tail-recursion.html:
7:26 PM Changeset in webkit [201068] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationSidebarPanel should coordinate item selection between its tree outlines
https://bugs.webkit.org/show_bug.cgi?id=157813
<rdar://problem/26331779>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Deselecting elements in other tree outlines is now done in the base class.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Listen for selection changed events on all content tree outlines.
(WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
Moved stub from the public section to the protected section.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange):
Deselect tree elements in any content tree outline that is not the
parent of the selected element.

(WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange): Deleted.
Rename _contentTreeOutlineTreeSelectionDidChange, to prevent being
shadowed by subclasses with _treeSelectionDidChange event handlers.

7:14 PM Changeset in webkit [201067] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Adding children incorrectly when there are nested inline continuations
https://bugs.webkit.org/show_bug.cgi?id=157818

Reviewed by Chris Fleizach.

Source/WebCore:

When getting the inline element continuation's next sibling, if we fall back on to the parent
case, we might end up adding the same node repeatedly. Fixed it by skipping this case.

Test: accessibility/mac/nested-inline-elements-children.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::nextSibling):

LayoutTests:

  • accessibility/mac/nested-inline-elements-children-expected.txt: Added.
  • accessibility/mac/nested-inline-elements-children.html: Added.
7:11 PM Changeset in webkit [201066] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC should detect the right default locale even when it's not embedded in WebCore
https://bugs.webkit.org/show_bug.cgi?id=157755
rdar://problem/24665424

Reviewed by Keith Miller.

This makes JSC try to use WTF's platform user preferred language detection if the DOM did
not register a defaultLanguage callback. The result is that when JSC runs standalone it
will detect the platform user preferred language almost the same way as when it's embedded
in WebCore. The only difference is that WebCore may have its own additional overrides via
the WK API. But in the absence of overrides, WebCore uses the same WTF logic that JSC falls
back to.

We first found this bug because on iOS, the intl tests would fail because ICU would report
a somewhat bogus locale on that platform. Prior to this change, standalone JSC would fall
back to ICU's locale detection. It turns out that the ICU default locale is also bogus on
OS X, just less so. For example, setting things to Poland did not result in the jsc shell
printing dates Polish-style. Now it will print them Polish-style if your system preferences
say so. Also, the tests don't fail on iOS anymore.

  • runtime/IntlObject.cpp:

(JSC::defaultLocale):

7:07 PM Changeset in webkit [201065] by dino@apple.com
  • 12 edits in trunk

Add media query support for wide gamut displays on Mac
https://bugs.webkit.org/show_bug.cgi?id=157824
<rdar://problem/26333137>

Reviewed by Simon Fraser.

Source/WebCore:

Implement the Mac version of the color-gamut media query
by filling out the screenSupportsExtendedColor function.

On Yosemite, we always return false. On El Capitan, we
can check the ColorProfile via ColorSync to see if the
screen is wide gamut.

There is already a test in fast/media/mq-color-gamut.html

  • css/MediaQueryEvaluator.cpp:

(WebCore::color_gamutMediaFeatureEval): Pass the mainFrame's view
to screenSupportsExtendedColor, so that it can fetch the NSScreen.

  • platform/PlatformScreen.h: screenSupportsExtendedColor now takes

an optional Widget parameter.

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenSupportsExtendedColor): Add empty parameter.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor): Get the NSWindow, then the
NSScreen, then the ColorSpace, then the ColorSyncProfile, and
check if it is a wide gamut profile.

  • platform/spi/cg/CoreGraphicsSPI.h: Add the SPI declarations.

LayoutTests:

Remove the check for sRGB, since it is confusingly false
on browsers that don't implement this query, and is likely
to be dropped from the specification.

Also, make the text readable.

  • fast/media/mq-color-gamut-expected.html:
  • fast/media/mq-color-gamut.html:
6:26 PM Changeset in webkit [201064] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix Darin's post-mortem review comments for r201052.

  • rendering/RenderFieldset.cpp:

(WebCore::RenderFieldset::findLegend):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::layoutChildren):

6:05 PM Changeset in webkit [201063] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

6:04 PM Changeset in webkit [201062] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

6:04 PM Changeset in webkit [201061] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:44 PM Changeset in webkit [201060] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.3

New tag.

5:43 PM Changeset in webkit [201059] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.142

New tag.

5:14 PM Changeset in webkit [201058] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.3

New tag.

5:13 PM Changeset in webkit [201057] by Matt Baker
  • 1 edit
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Remove TimelineSidebarPanel.js as it's no longer referenced anywhere
https://bugs.webkit.org/show_bug.cgi?id=157819

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineSidebarPanel.js: Removed.

Removed unused file.

4:24 PM Changeset in webkit [201056] by Beth Dakin
  • 12 edits
    2 adds in trunk

Make handleAcceptedCandidate a public function
https://bugs.webkit.org/show_bug.cgi?id=157763
-and corresponding-
rdar://problem/26206397

Reviewed by Tim Horton.

Source/WebCore:

Define handleAcceptedCandidateWithSoftSpaces on EditorClient so that it can
be invoked on any EditorClient.

  • loader/EmptyClients.h:
  • page/EditorClient.h:

(WebCore::EditorClient::handleAcceptedCandidateWithSoftSpaces):

Source/WebKit/mac:

This patch re-names handleAcceptedCandidate to
handleAcceptedCandidateWithSoftSpaces. The function now takes a
WebCore::TextCheckingResult instead of an NSTextCheckingResult and it can be
called from outside of WebEditorClient.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::handleRequestedCandidates):
(WebEditorClient::handleAcceptedCandidateWithSoftSpaces):
(textCheckingResultFromNSTextCheckingResult): Deleted.
(WebEditorClient::handleAcceptedCandidate): Deleted.

Move showCandidates to WebViewPrivate so that it can be overridden by a test.

  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Source/WebKit2:

This patch makes handleAcceptedCandidate a public member of WebViewImpl
instead of a private member.

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::createWeakPtr):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/autofocused-text-input.html: Added.
  • TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm: Added.

(-[DoNotLeakWebView dealloc]):
(-[DoNotLeakWebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[DoNotLeakFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

4:22 PM Changeset in webkit [201055] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed debug build fix after r201052.

  • rendering/svg/RenderSVGText.cpp:

(WebCore::findPreviousAndNextAttributes): Deleted.

4:14 PM Changeset in webkit [201054] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit/mac

Merge r200867. rdar://problem/26253396

3:52 PM Changeset in webkit [201053] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

REGRESSION(r192855): Math.random() always produces the same first 7 decimal points the first two invocations
https://bugs.webkit.org/show_bug.cgi?id=157805
<rdar://problem/26327851>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-17
Reviewed by Geoffrey Garen.

Source/WTF:

  • wtf/WeakRandom.h:

(WTF::WeakRandom::setSeed):
Advance once to randomize the 32bit seed across the 128bit state
and avoid re-using 64bits of state in the second advance.

LayoutTests:

  • js/dom/math-random-initial-values-expected.txt: Added.
  • js/dom/math-random-initial-values.html: Added.
  • js/resources/math-random-initial-values-iframe.html: Added.

Test that less then 5% of the time, early Math.random invocations
produce very similiar values. Before this change we were failing
100%, but after we see similiar values mostly around 0-3%.

3:39 PM Changeset in webkit [201052] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

Use RenderChildIterator more for traversing a renderer's children
https://bugs.webkit.org/show_bug.cgi?id=157811

Reviewed by Antti Koivisto.

Use RenderChildIterator more for traversing a renderer's children.

  • inspector/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):

  • inspector/InspectorLayerTreeAgent.h:
  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::recalcColumn):

  • rendering/InlineIterator.h:

(WebCore::isEmptyInline):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addFocusRingRects):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionForPoint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::updateOutlineAutoAncestor):

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

(WebCore::RenderFieldset::findLegend):

  • rendering/RenderFieldset.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::generateCulledLineBoxRects):
(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
(WebCore::RenderInline::dirtyLineBoxes):

  • rendering/RenderListItem.cpp:

(WebCore::getParentOfFirstLineBox):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setFlowThreadStateIncludingDescendants):
(WebCore::RenderObject::addAbsoluteRectForLayer):
(WebCore::RenderObject::paintingRootRect):
(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):
(WebCore::RenderObject::invalidateFlowThreadContainingBlockIncludingDescendants):
(WebCore::RenderObject::updateDragState):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::firstColumn):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::clearPreferredLogicalWidthsDirtyBits):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::findPreviousAndNextAttributes):
(WebCore::RenderSVGText::subtreeChildWasAdded):
(WebCore::RenderSVGText::subtreeChildWillBeRemoved):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::updateObjectBoundingBox):
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
(WebCore::SVGRenderSupport::layoutChildren):

  • rendering/svg/SVGTextLayoutAttributesBuilder.cpp:

(WebCore::SVGTextLayoutAttributesBuilder::collectTextPositioningElements):

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::walkTree):

3:34 PM Changeset in webkit [201051] by dino@apple.com
  • 17 edits in trunk

Remove ES6_GENERATORS flag
https://bugs.webkit.org/show_bug.cgi?id=157815
<rdar://problem/26332894>

Reviewed by Geoffrey Garen.

This flag isn't needed. Generators are enabled everywhere and
part of a stable specification.

.:

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionDeclaration): Deleted.
(JSC::Parser<LexerType>::parseClass): Deleted.
(JSC::Parser<LexerType>::parseExportDeclaration): Deleted.
(JSC::Parser<LexerType>::parseAssignmentExpression): Deleted.
(JSC::Parser<LexerType>::parseProperty): Deleted.
(JSC::Parser<LexerType>::parseFunctionExpression): Deleted.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
3:27 PM Changeset in webkit [201050] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

REGRESSION: JetStream crashes on some iPhones
https://bugs.webkit.org/show_bug.cgi?id=157814

Reviewed by Michael Saboff.

  • bmalloc/Sizes.h: Reduce smallMax to 32kB.

Previous justification for 64kB was:

  • bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty reasonable, since sizes between 16kB and 32kB share page sizes. I went all the way up to 64kB because the GC uses 64kB blocks, and also just for extra padding to ensure that large allocations are indeed rare.

It turns out that the bump to 64kB substantially increases our memory
high water mark on JetStream, leading to jetsam crashes. Also, there
doesn't seem to be a practical performance problem to putting objects in
the (32kB - 64kB) range in the large allocator.

3:19 PM Changeset in webkit [201049] by keith_miller@apple.com
  • 40 edits
    5 deletes in trunk

Rollout r200426 since it causes PLT regressions.
https://bugs.webkit.org/show_bug.cgi?id=157812

Unreviewed rollout of r200426 since the bots see a ~.6% PLT regression from the patch.

3:04 PM Changeset in webkit [201048] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: inspector tests should redirect and log console.trace() calls in test output
https://bugs.webkit.org/show_bug.cgi?id=157802
<rdar://problem/26325671>

Reviewed by Timothy Hatcher.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
Remove bind() that is now unnecessary. Also redirect console.warn.

(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
For console.trace(), throw and catch a dummy Error to get a stack trace.
Do some post processing on it to remove useless frames and sanitize file paths.

2:38 PM Changeset in webkit [201047] by BJ Burg
  • 5 edits
    3 adds in trunk

Web Inspector: Filtering huge data grids should yield occasionally so the UI remains responsive
https://bugs.webkit.org/show_bug.cgi?id=157702
<rdar://problem/26282898>

Based on a patch by Matt Baker <Matt Baker> on 2016-05-16
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

This patch adds a new class, YieldableTask, for processing large
data sets without starving the runloop. A yieldable task takes a delegate,
an iterator that produces the items to be processed by the delegate, and
the "work interval" time slice and "idle interval" to wait between time slices.
It works by using yield to suspend processing when the current time
slice is exceeded, and setting a timeout to wait out the idle interval.

The iterator is responsible for deciding a good traversal order for items,
and the delegate is responsible for processing each item in turn. Tasks
cannot be reused once cancelled or processing completes.

Change DataGrid to use a yieldable task for filtering data grid nodes.
When the filtering criteria changes, cancel the task and run a new task.

  • UserInterface/Base/YieldableTask.js: Added.

(WebInspector.YieldableTask.prototype.get processing):
(WebInspector.YieldableTask.prototype.get cancelled):
(WebInspector.YieldableTask.prototype.get idleInterval):
(WebInspector.YieldableTask.prototype.get workInterval):
Add getters.

(WebInspector.YieldableTask.prototype.start.createIteratorForProcessingItems):
(WebInspector.YieldableTask.prototype.start):
Set up an iterator that cranks through items to be processed until the
time slice is exceeded. Check to see if the task is cancelled before and
after calling out to the delegate to perform processing on the item.

(WebInspector.YieldableTask.prototype.cancel):
Set the cancel flag. Tell the delegate the task is finished soon.

(WebInspector.YieldableTask.prototype._processPendingItems):
Request the next item from the cranking iterator so it tries to process
more items. If it yields but still has more items to process, set a timeout
and continue processing more items after the idle interval.

(WebInspector.YieldableTask.prototype._willYield): Notify the delegate.
(WebInspector.YieldableTask.prototype._didFinish): Clear state and notify.
(WebInspector.YieldableTask):

  • UserInterface/Main.html:
  • UserInterface/Test.html: Add new file.
  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.filterDidChange):
Cancel the currently running filter task, if any exists.

(WebInspector.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered):
(WebInspector.DataGrid.prototype._updateFilter):
Set up and start a new filtering task when the filter updates.

(WebInspector.DataGrid.prototype.yieldableTaskWillProcessItem):
(WebInspector.DataGrid.prototype.yieldableTaskDidYield):
(WebInspector.DataGrid.prototype.yieldableTaskDidFinish):
Batch up notifications about filtered nodes changing since this can
cause a lot of unnecessary work by event listeners.

LayoutTests:

Add tests for new Inspector utility class YieldableTask.

  • inspector/unit-tests/yieldable-task-expected.txt: Added.
  • inspector/unit-tests/yieldable-task.html: Added.
2:35 PM Changeset in webkit [201046] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200631.

2:35 PM Changeset in webkit [201045] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200628.

2:35 PM Changeset in webkit [201044] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit/mac

Merge r200800.

2:28 PM Changeset in webkit [201043] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

BitmapImage::destroyDecodedDataIfNecessary() should only count frames with image data
https://bugs.webkit.org/show_bug.cgi?id=157779

Reviewed by Tim Horton.

BitmapImage::destroyDecodedDataIfNecessary() throws away all frames of an image if the
decoded frame size exceeds a threshold. However, it counts all frames, whether or not
they have an image (some frames may only have metadata, but m_frameBytes still returns
height*width*4).

Fix by only count m_frameBytes for frames that have an image.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):

  • platform/graphics/BitmapImage.h:

(WebCore::FrameData::FrameData):
(WebCore::FrameData::usedFrameBytes):

2:24 PM Changeset in webkit [201042] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Temporarily enable Experimental Features
https://bugs.webkit.org/show_bug.cgi?id=157810
<rdar://problem/26330804>

Reviewed by Anders Carlsson.

We currently don't have good UI for enabling these features,
which would mean Safari Technology Preview users would
never be able to turn them on… unless we enable them by
default temporarily.

  • Shared/WebPreferencesDefinitions.h:
2:17 PM Changeset in webkit [201041] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Add a subtitle under platform name in the summary page
https://bugs.webkit.org/show_bug.cgi?id=157809

Reviewed by Chris Dumez.

Add a description beneath the platform names.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype._constructTable): Add a br and a span if subtitle is present.
(SummaryPage.cssTemplate): Added CSS rules for .subtitle.

2:02 PM Changeset in webkit [201040] by hyatt@apple.com
  • 23 edits in trunk/Source/WebCore

Optimize layer repaint rect computation and painting.
https://bugs.webkit.org/show_bug.cgi?id=157631

Reviewed by Zalan Bujtas.

This patch changes the computation of repaint rects to be for self-painting layers
only. In addition, hasBoxDecorations() has been changed to hasVisibleBoxDecorations(),
and it will no longer be set for transparent borders.

For scrolling layer position updating, visually empty layers have their repaint rects
cleared, and we don't compute repaint rects during the scroll. We would like to do this
all the time, but computeRepaintRects can be called at times when the visually empty
state is stale/unknown. For now we limit it to scrolling, since we know that the layer's
visually empty state is correct.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::willBeDestroyed):
(WebCore::RenderBoxModelObject::hasVisibleBoxDecorationStyle):
(WebCore::RenderBoxModelObject::updateFromStyle):
(WebCore::RenderBoxModelObject::hasBoxDecorationStyle): Deleted.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::mustRepaintBackgroundOrBorder):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::repaintRectIncludingNonCompositingDescendants):
(WebCore::RenderLayer::computeRepaintRects):
(WebCore::RenderLayer::clearRepaintRects):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::compositingOpacity):
(WebCore::hasVisibleBoxDecorations):
(WebCore::canCreateTiledImage):
(WebCore::hasVisibleBoxDecorationsOrBackgroundImage):
(WebCore::supportsDirectBoxDecorationsComposition):
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
(WebCore::RenderLayerBacking::containsPaintedContent):
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
(WebCore::hasBoxDecorations): Deleted.
(WebCore::hasBoxDecorationsOrBackgroundImage): Deleted.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderNamedFlowFragment.cpp:

(WebCore::RenderNamedFlowFragment::setObjectStyleInRegion):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasVisibleBoxDecorations):
(WebCore::RenderObject::setFloating):
(WebCore::RenderObject::setInline):
(WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
(WebCore::RenderObject::setSelectionStateIfNeeded):
(WebCore::RenderObject::setHasVisibleBoxDecorations):
(WebCore::RenderObject::invalidateBackgroundObscurationStatus):
(WebCore::RenderObject::hasBoxDecorations): Deleted.
(WebCore::RenderObject::setHasBoxDecorations): Deleted.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

  • rendering/RenderTable.cpp:

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

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleDidChange):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasBorder):
(WebCore::BorderData::hasVisibleBorder):
(WebCore::BorderData::hasFill):
(WebCore::BorderData::hasBorderRadius):

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):
(WebCore::RenderSVGRoot::styleDidChange):

1:38 PM Changeset in webkit [201039] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

Add test262 harness support code
https://bugs.webkit.org/show_bug.cgi?id=157797

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds some new tooling needed to run Test262 with the jsc
CLI. There were three options that needed to be added for Test262:

1) "--test262-async" This option overrides the print function in the test runner to look for
'Test262:AsyncTestComplete' instead of printing the passed text. If test262-async mode is on
and that string is not passed then the test is marked as failing.

2) "--strict-file=<file>" This option appends "use strict";\n to the beginning of the
passed file before passing the source code to the VM. This option can, in theory, be passed
multiple times.

3) "--exception=<name>" This option asserts that at the end of the last script file passed
the VM has an uncaught exception with its name property equal to the passed name.

  • jsc.cpp:

(Script::Script):
(fillBufferWithContentsOfFile):
(functionPrint):
(checkUncaughtException):
(runWithScripts):
(printUsageStatement):
(CommandLine::parseArguments):
(runJSC):

Tools:

The import-test262-tests script is used to generate the yaml file used to run test262. It
takes a path to the local copy of the Test262 repository as well as an optional path to file
containing a list of failures. This script currently just creates the yaml file used to run
the script. It does not relocate the test files into our tests directory. In the future I
plan to add that feature but it didn't seem essential for the first iteration. Since many
test262 tests need to be run in both strict and non-strict mode, import-test262-tests
creates two separate runs for those tests. This enables us to distinguish between failures
in only one of the two modes.

This patch also updates the run-jsc-stress-tests Script to run tests from Test262. In order
to do so two new run commands were needed runTest262 and prepareTest262Fixture. runTest262
takes an actual test file along with the metadata associated with it. prepareTest262Fixture
takes a fixture file (used by module tests for importing) and makes sure that file is
properly relocated to the test runner directory.

The proccess I used to import the tests was to first run import-test262-tests to create a
yaml for all the tests (import-test262-tests assumes all tests pass if to failures file is
passed). Then I ran the generated yaml file with "run-jsc-stress-tests -v -c 1" piping the
output to a file and collected all the lines with "FAIL" in it. Finally, I reran
import-test262-tests with the new failure file to create the final yaml.

  • Scripts/import-test262-tests: Added.
  • Scripts/run-jsc-stress-tests:
12:38 PM Changeset in webkit [201038] by fpizlo@apple.com
  • 64 edits
    1 copy
    6 moves
    1 add in trunk/Source

WTF should know about Language
https://bugs.webkit.org/show_bug.cgi?id=157756

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

Teach our scripts that a ObjC class beginning with WTF is totally cool.

Source/WebCore:

Reviewed by Geoffrey Garen.

No new tests because this does not change behavior.

This change is all about moving some language functionality to WTF. Quoting the WTF
ChangeLog, this contains two changes:

  • Move everything that WebCore's logic for getting the platform user preferred language depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
  • Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages(). This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC use this to detect the platform user preferred language when running standalone.

The changes in WebCore are mostly about rewiring #includes and #imports and removing the
code that we moved to WTF. But there is one logic change: previously,
platformUserPreferredLanguages() would call WebCore::languageDidChange(). It can't do that
directly anymore, but WTF gives WebCore some API for registering the callback. So in
Language.cpp we now register languageDidChange anytime we do something that would
necessitate it, like calling platformUserPreferredLanguages(). This also registers the
callback inside addLanguageChangeObserver(), since it's possible for that to be called
after JSC had called platformUserPreferredLanguages() but before WebCore does so.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCustomXPathNSResolver.mm:
  • editing/ios/EditorIOS.mm:
  • editing/mac/DictionaryLookup.mm:
  • editing/mac/EditorMac.mm:
  • page/CaptionUserPreferencesMediaAF.cpp:
  • page/ios/EventHandlerIOS.mm:
  • page/ios/FrameIOS.mm:
  • page/mac/ChromeMac.mm:
  • page/mac/EventHandlerMac.mm:
  • platform/Language.cpp:

(WebCore::registerLanguageDidChangeCallbackIfNecessary):
(WebCore::observerMap):
(WebCore::addLanguageChangeObserver):
(WebCore::overrideUserPreferredLanguages):
(WebCore::userPreferredLanguages):

  • platform/Language.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/cocoa/FontCocoa.mm:
  • platform/graphics/mac/ColorMac.mm:
  • platform/graphics/mac/GraphicsContext3DMac.mm:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
  • platform/ios/PlatformSpeechSynthesizerIOS.mm:
  • platform/ios/ScrollViewIOS.mm:
  • platform/ios/WidgetIOS.mm:
  • platform/mac/BlockExceptions.h: Removed.
  • platform/mac/BlockExceptions.mm: Removed.
  • platform/mac/CursorMac.mm:
  • platform/mac/Language.mm: Removed.
  • platform/mac/ScrollAnimatorMac.mm:
  • platform/mac/ScrollViewMac.mm:
  • platform/mac/ScrollbarThemeMac.mm:
  • platform/mac/ThemeMac.mm:
  • platform/mac/WidgetMac.mm:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/network/mac/CookieJarMac.mm:
  • platform/network/mac/ResourceErrorMac.mm:
  • platform/network/mac/ResourceHandleMac.mm:
  • platform/spi/cf/CFBundleSPI.h: Removed.
  • platform/unix/LanguageUnix.cpp: Removed.
  • platform/win/LanguageWin.cpp: Removed.

Source/WebKit/mac:

Reviewed by Geoffrey Garen.

Rewires a bunch of includes/imports.

  • WebCoreSupport/PopupMenuMac.mm:
  • WebCoreSupport/WebChromeClient.mm:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebCoreSupport/WebGeolocationClient.mm:
  • WebCoreSupport/WebNotificationClient.mm:
  • WebCoreSupport/WebPlatformStrategies.mm:
  • WebCoreSupport/WebUserMediaClient.mm:
  • WebCoreSupport/WebVisitedLinkStore.mm:
  • WebView/WebHTMLView.mm:

Source/WebKit2:

Reviewed by Geoffrey Garen and Alexey Proskuryakov.

Rewires a bunch of includes/imports.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

Source/WTF:

Reviewed by Geoffrey Garen.

This contains two changes:

  • Move everything that WebCore's logic for getting the platform user preferred language depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
  • Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages(). This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC use this to detect the platform user preferred language when running standalone.

Moving the dependencies accounts for a huge chunk of this change, since we have to rewire
all of the references to those headers in all of WebKit.

Moving platformUserPreferredLanguages() is mostly easy except for the weird callback.
That function would call languageDidChange(), which needs to stay in WebCore. So, this
gives WebCore the ability to register a languageDidChange callback. Other than this new
logic, the code being added to WTF is just being lifted out of WebCore.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BlockObjCExceptions.h: Added.
  • wtf/BlockObjCExceptions.mm: Added.

(ReportBlockedObjCException):

  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformMac.cmake:
  • wtf/PlatformUserPreferredLanguages.h: Added.
  • wtf/PlatformUserPreferredLanguagesMac.mm: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::preferredLanguages):
(+[WTFLanguageChangeObserver languagePreferencesDidChange:]):
(WTF::httpStyleLanguageCode):
(WTF::isValidICUCountryCode):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformUserPreferredLanguagesUnix.cpp: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformUserPreferredLanguagesWin.cpp: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::localeInfo):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformWin.cmake:
  • wtf/spi/cf: Added.
  • wtf/spi/cf/CFBundleSPI.h: Added.
12:12 PM Changeset in webkit [201037] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200975. rdar://problem/24529203

12:04 PM Changeset in webkit [201036] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Tidy unused parameters with build flags in isValidKeywordPropertyAndValue
https://bugs.webkit.org/show_bug.cgi?id=157780
<rdar://problem/26327312>

Reviewed by Alex Christensen.

CSS_COMPOSITING and CSS_REGIONS aren't runtime flags any more, so
don't need a parser context. Meanwhile CSS_GRID_LAYOUT does, even
though it wasn't in the condition for the UNUSED_PARAM.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

11:57 AM WebInspectorDebugging edited by BJ Burg
How to disable combining test resources. (diff)
11:49 AM Changeset in webkit [201035] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200974. rdar://problem/26304845

11:49 AM Changeset in webkit [201034] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200976. rdar://problem/26231897

11:49 AM Changeset in webkit [201033] by bshafiei@apple.com
  • 10 edits
    1 move
    3 adds in branches/safari-602.1.32-branch

Merge r200939. rdar://problem/26180740

11:49 AM Changeset in webkit [201032] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200918. rdar://problem/26230168

11:49 AM Changeset in webkit [201031] by bshafiei@apple.com
  • 8 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200908. rdar://problem/26273173

11:49 AM Changeset in webkit [201030] by bshafiei@apple.com
  • 13 edits in branches/safari-602.1.32-branch

Merge r200876. rdar://problem/26180300

11:49 AM Changeset in webkit [201029] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200891. rdar://problem/26269611

11:49 AM Changeset in webkit [201028] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200877. rdar://problem/26269611

11:49 AM Changeset in webkit [201027] by bshafiei@apple.com
  • 9 edits in branches/safari-602.1.32-branch/Source

Merge r200874. rdar://problem/26269611

11:48 AM Changeset in webkit [201026] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Tools

Merge r200670.

11:48 AM Changeset in webkit [201025] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Tools

Merge r200669.

11:48 AM Changeset in webkit [201024] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200668.

11:31 AM Changeset in webkit [201023] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r177786): GlyphMetricsMap<T>::locatePageSlowCase() fills existing pages with unknown metrics
https://bugs.webkit.org/show_bug.cgi?id=157749

Reviewed by Antti Koivisto.

After r177786, GlyphMetricsMap<T>::locatePageSlowCase() would unconditionally fill
pages with unknown metrics. This patch updates the code to do so only if the page
is new, thus restoring the pre-r177786 behavior.

  • platform/graphics/GlyphMetricsMap.h:

(WebCore::GlyphMetricsMap::metricsForGlyph):
(WebCore::GlyphMetricsMap::setMetricsForGlyph):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::GlyphMetricsPage):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::fill):
(WebCore::GlyphMetricsMap::locatePage):
(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::metricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForIndex): Deleted.
(WebCore::GlyphMetricsMap<float>::unknownMetrics): Deleted.
(WebCore::GlyphMetricsMap<FloatRect>::unknownMetrics): Deleted.

11:20 AM Changeset in webkit [201022] by Joseph Pecoraro
  • 5 edits in trunk

console namespace breaks putting properties on console.proto
https://bugs.webkit.org/show_bug.cgi?id=157782
<rdar://problem/26250526>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Some websites currently depend on console.proto existing and being
a separate object from Object.prototype. This patch adds back a basic
console.proto object, but all the console functions are left on
the ConsoleObject itself.

  • runtime/JSGlobalObject.cpp:

(JSC::createConsoleProperty):

LayoutTests:

  • js/console-expected.txt:
  • js/console.html:
11:00 AM WebInspectorDebugging edited by BJ Burg
(diff)
10:58 AM Changeset in webkit [201021] by bshafiei@apple.com
  • 17 edits in branches/safari-602.1.32-branch/Source

Merge r200819. rdar://problem/26235373

10:49 AM WebInspectorDebugging edited by BJ Burg
Instructions about debug logging for WKTR (diff)
10:36 AM Changeset in webkit [201020] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r201017.
https://bugs.webkit.org/show_bug.cgi?id=157799

Rebaselining the test was not the right solution. (Requested
by ryanhaddad on #webkit).

Reverted changeset:

"Rebaseline inspector/debugger/tail-recursion.html"
http://trac.webkit.org/changeset/201017

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-17

10:33 AM Changeset in webkit [201019] by BJ Burg
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: breakpoints in sourceURL named scripts are not persisted
https://bugs.webkit.org/show_bug.cgi?id=157714
<rdar://problem/26287099>

Reviewed by Joseph Pecoraro.

The Inspector frontend doesn't try to persist a breakpoint that
lacks a URL, even if the breakpoint has a sourceURL. Similarly, for
breakpoints without a URL, the frontend asks the backend to create
the breakpoint for a specific script identifier rather than a
URL-based breakpoint. This prevents breakpoints in injected scripts
from being resolved if the page is reloaded.

The Inspector backend knows how to resolve URL-based breakpoints
by matching against the script's URL or sourceURL, so we just need
to teach the frontend when either is appropriate to use.

This patch adds SourceCode.contentIdentifier, which is roughly
url || sourceURL for content that is not emphemeral, such as
console evaluations. Change breakpoint and debugger code to use
contentIdentifier rather than url, and pass contentIdentifier
to the backend when setting a breakpoint by URL.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get searchableScripts):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._saveBreakpoints):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get contentIdentifier):
(WebInspector.Breakpoint.prototype.get info):
(WebInspector.Breakpoint.prototype.saveIdentityToCookie):
(WebInspector.Breakpoint.prototype.get url): Deleted.
Replace uses of Breakpoint.prototype.get url with
contentIdentifier inside the class and at all callsites.

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.get contentIdentifier):
Added. Use the URL, or the sourceURL unless the script is
ephemeral and only run once, like as a console evaluation.

  • UserInterface/Models/SourceCode.js:

(WebInspector.SourceCode.prototype.get url): Added.
All subclasses already override this getter. Add it here so that
the default implementation of contentIdentifier can use it.

(WebInspector.SourceCode.prototype.get contentIdentifier): Added.

  • UserInterface/Views/BreakpointTreeElement.js:

(WebInspector.BreakpointTreeElement.prototype.get filterableData):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._matchesBreakpoint):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):

10:07 AM Changeset in webkit [201018] by Csaba Osztrogonác
  • 5 edits in trunk/Source/WebCore

Fix the !ENABLE(WEB_TIMING) build after r200887
https://bugs.webkit.org/show_bug.cgi?id=157796

Reviewed by Chris Dumez.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):

  • loader/cache/CachedResourceLoader.h:
10:03 AM Changeset in webkit [201017] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/debugger/tail-recursion.html

Unreviewed test gardening.

  • inspector/debugger/tail-recursion-expected.txt:
9:40 AM Changeset in webkit [201016] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK+ and EFL bulid fix; make the audio playback user gesture requirement
Cocoa-only.

  • Shared/WebPreferencesDefinitions.h:
9:21 AM Changeset in webkit [201015] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION(r54729): Line breaking in complex mixed-direction text is inconsistent across page refreshes
https://bugs.webkit.org/show_bug.cgi?id=157783
<rdar://problem/22908924>

Reviewed by Zalan Bujtas.

Source/WebCore:

mappedIndices is uninitialized.

Test: fast/text/complex-mixed-direction-line-breaking.html

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):

LayoutTests:

  • fast/text/complex-mixed-direction-line-breaking-expected.html: Added.
  • fast/text/complex-mixed-direction-line-breaking.html: Added.
  • fast/text/resources/Gulf-regular.ttf: Added.
6:43 AM Changeset in webkit [201014] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, dump more information when math-pow-stable-results.js failed
https://bugs.webkit.org/show_bug.cgi?id=157168

  • tests/stress/math-pow-stable-results.js:
4:54 AM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
3:20 AM Changeset in webkit [201013] by youenn.fablet@crf.canon.fr
  • 21 edits in trunk/Source

DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Source/WebCore:

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Relanding without touching JSDOMBinding.h as this seemed to be impacting performances.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::formData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse):

  • Modules/fetch/FetchResponse.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • Modules/streams/ReadableStreamSource.h:
  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSDOMPromise.cpp:

(WebCore::fulfillPromiseWithJSON):

  • bindings/js/JSDOMPromise.h:

(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):

  • css/FontFaceSet.h:
  • html/HTMLMediaElement.h:

Source/WTF:

  • wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates.
  • wtf/RefPtr.h: Ditto.
1:47 AM Changeset in webkit [201012] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200872. rdar://problem/25993225

1:47 AM Changeset in webkit [201011] by bshafiei@apple.com
  • 15 edits
    1 add
    1 delete in branches/safari-602.1.32-branch/Source

Merge r200866. rdar://problem/26253396

1:47 AM Changeset in webkit [201010] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200793. rdar://problem/26251756

1:47 AM Changeset in webkit [201009] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200792. rdar://problem/26253394

1:47 AM Changeset in webkit [201008] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r200788. rdar://problem/26143008

1:47 AM Changeset in webkit [201007] by bshafiei@apple.com
  • 7 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200708. rdar://problem/26228913

1:47 AM Changeset in webkit [201006] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200688. rdar://problem/26013966

1:47 AM Changeset in webkit [201005] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200803. rdar://problem/17779042

1:47 AM Changeset in webkit [201004] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/LayoutTests

Merge r200674. rdar://problem/17779042

1:46 AM Changeset in webkit [201003] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/LayoutTests

Merge r200646. rdar://problem/17779042

1:46 AM Changeset in webkit [201002] by bshafiei@apple.com
  • 8 edits
    6 adds in branches/safari-602.1.32-branch

Merge r200601. rdar://problem/17779042

1:46 AM Changeset in webkit [201001] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200778. rdar://problem/25840861

May 16, 2016:

11:36 PM Changeset in webkit [201000] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Modernize CSS Parser
https://bugs.webkit.org/show_bug.cgi?id=157772

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-16
Reviewed by Brady Eidson.

No new tests. This patch just replaces PassRefPtr with RefPtr&&.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseDeclaration):
(WebCore::CSSParser::SourceSize::SourceSize):
(WebCore::CSSParser::createStyleProperties):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::addExpandedPropertyForValue):
(WebCore::CSSParser::parseVariableDependentValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColumnsShorthand):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::CSSParser::parseBasicShapeInset):
(WebCore::ShadowParseContext::commitLength):
(WebCore::ShadowParseContext::commitColor):
(WebCore::BorderImageParseContext::requireWidth):
(WebCore::BorderImageParseContext::requireOutset):
(WebCore::BorderImageParseContext::commitImage):
(WebCore::BorderImageParseContext::commitImageSlice):
(WebCore::BorderImageParseContext::commitForwardSlashOperator):
(WebCore::BorderImageParseContext::commitBorderWidth):
(WebCore::BorderImageParseContext::commitBorderOutset):
(WebCore::BorderImageParseContext::commitRepeat):
(WebCore::BorderImageParseContext::commitWebKitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImageProperty):
(WebCore::BorderImageSliceParseContext::commitFill):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitNumber):
(WebCore::BorderImageQuadParseContext::setAllowFinalCommit):
(WebCore::BorderImageQuadParseContext::setTop):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
(WebCore::CSSParser::parseCounter):
(WebCore::parseDeprecatedGradientPoint):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::valueFromSideKeyword):
(WebCore::parseGradientColorOrKeyword):
(WebCore::CSSParser::parsePerspectiveOrigin):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::parseTextDecoration):
(WebCore::CSSParser::realLex):
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::processAndAddNewRuleToSourceTreeIfNeeded):
(WebCore::CSSParser::addNewRuleToSourceTree):

  • css/CSSParser.h:

(WebCore::CSSParser::hasProperties):
(WebCore::CSSParser::resetPropertyRange):
(WebCore::CSSParser::isExtractingSourceData):

10:37 PM Changeset in webkit [200999] by bshafiei@apple.com
  • 3 edits
    4 copies in branches/safari-601.1.46-branch

Merged r200986. rdar://problem/26300489

10:35 PM Changeset in webkit [200998] by bshafiei@apple.com
  • 3 edits
    4 copies in branches/safari-601-branch

Merged r200986. rdar://problem/26300514

10:31 PM Changeset in webkit [200997] by sbarati@apple.com
  • 4 edits
    3 adds in trunk

ShadowChicken crashes when reading a scope from the frame during a stack overflow exception
https://bugs.webkit.org/show_bug.cgi?id=157770

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

ShadowChicken was reading the scope from a half formed
frame as it threw a stack overflow exception. The frame had
a valid CodeBlock pointer, but it did not have a valid scope.
The code in ShadowChicken's throw packet logging mechanism didn't
account for this. The fix is to respect whether genericUnwind wants
to unwind from the current frame or the caller's frame. For stack
overflow errors, we always unwind the caller's frame.

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

LayoutTests:

  • inspector/debugger/debugger-stack-overflow-expected.txt: Added.
  • inspector/debugger/debugger-stack-overflow.html: Added.
  • inspector/debugger/resources/stack-overflow.js: Added.

(foo):
(start):

9:36 PM Changeset in webkit [200996] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION(r200208): It made 2 JSC stress tests fail on x86
https://bugs.webkit.org/show_bug.cgi?id=157168

Reviewed by Benjamin Poulain.

The fast path in operationMathPow produces different results between x87 and the other environments.
This is because x87 calculates the double value in 80bit precision.
The situation is the following: in x86 32bit environment, floating point operations are compiled to
x87 operations by default even if we can use SSE2. But in DFG environment, we aggressively use SSE2
if the cpuid reports SSE2 is available. As a result, the implementations differ between C runtime
and DFG JIT code. The C runtime uses x87 while DFG JIT code uses SSE2. This causes a precision
problem since x87 has 80bit precision while SSE2 has 64bit precision.

In this patch, in x86 32bit environment, we use volatile double if the -mfpmath=sse and -msse2 (or later)
is not specified. This will round the x87 value into 64bit per multiplying. Note that this problem does not
occur in OS X clang 32bit environment. This is because -mfpmath=sse is enabled by default in OS X clang 32bit.

  • b3/B3MathExtras.cpp:

(JSC::B3::powDoubleInt32):

  • runtime/MathCommon.cpp:

(JSC::operationMathPow):

9:11 PM Changeset in webkit [200995] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'event.data.pathComponent.domTreeElement')
https://bugs.webkit.org/show_bug.cgi?id=157759
<rdar://problem/26309427>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-16
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype._pathComponentSelected):
Handle possible null path components.

  • UserInterface/Views/HierarchicalPathComponent.js:

(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
When there is a list of just one that is triggered, the Clicked
event should produce that one, to be consistent with clicking
on a list of multiple elements and selecting the same value.

9:11 PM Changeset in webkit [200994] by Chris Dumez
  • 3 edits
    1 add in trunk/Source/WebCore

Add RenderDescendantIterator to traverse a RenderObject's descendants
https://bugs.webkit.org/show_bug.cgi?id=157785

Reviewed by Zalan Bujtas.

Add RenderDescendantIterator to traverse a RenderObject's descendants. I
am planning to use it in the iOS Text Autosizing code (See Bug 157784).

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderDescendantIterator.h: Added.

(WebCore::RenderDescendantIterator<T>::RenderDescendantIterator):
(WebCore::RenderDescendantIterator<T>::operator):
(WebCore::RenderDescendantConstIterator<T>::RenderDescendantConstIterator):
(WebCore::RenderDescendantConstIterator<T>::operator):
(WebCore::RenderDescendantIteratorAdapter<T>::RenderDescendantIteratorAdapter):
(WebCore::RenderDescendantIteratorAdapter<T>::begin):
(WebCore::RenderDescendantIteratorAdapter<T>::end):
(WebCore::RenderDescendantConstIteratorAdapter<T>::RenderDescendantConstIteratorAdapter):
(WebCore::RenderDescendantConstIteratorAdapter<T>::begin):
(WebCore::RenderDescendantConstIteratorAdapter<T>::end):
(WebCore::descendantsOfType):

  • rendering/RenderIterator.h:

(WebCore::RenderObjectTraversal::firstChild):
(WebCore::RenderObjectTraversal::nextAncestorSibling):
(WebCore::RenderObjectTraversal::next):
(WebCore::RenderTraversal::firstChild):
(WebCore::RenderTraversal::lastChild):
(WebCore::RenderTraversal::nextSibling):
(WebCore::RenderTraversal::previousSibling):
(WebCore::RenderTraversal::findAncestorOfType):
(WebCore::RenderTraversal::firstWithin):
(WebCore::RenderTraversal::next):
(WebCore::RenderIterator<T>::traverseNext):
(WebCore::RenderConstIterator<T>::traverseNext):

9:02 PM Changeset in webkit [200993] by msaboff@apple.com
  • 3 edits in trunk/Source/WTF

ARMV7K: Crash at JavaScriptCore: WTF::ScopedLambdaFunctor<bool
https://bugs.webkit.org/show_bug.cgi?id=157781

Reviewed by Filip Pizlo.

Replaced use of ScopedLambda in locking code with std::function much as it was
before change set 199760 to work around what appears to be a clang compiler issue.

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkAll):
(WTF::ParkingLot::forEach):
(WTF::ParkingLot::unparkOneImpl): Deleted.
(WTF::ParkingLot::forEachImpl): Deleted.

  • wtf/ParkingLot.h:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne): Deleted.
(WTF::ParkingLot::forEach): Deleted.

8:36 PM Changeset in webkit [200992] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] "return this" in a constructor does not need a branch on isObject(this)
https://bugs.webkit.org/show_bug.cgi?id=157775

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-16
Reviewed by Saam Barati and Ryosuke Niwa.

When returning "this" in a constructor, the bytecode generator was generating:

is_object locX, this
jtrue locX, 5(->second ret)
ret this
ret this

That code is eliminated in DFG but it is pretty costly lower tiers.

This patch changes bytecode generation to avoid the is_object test
when possible and not generate two ret if they encode the same thing.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitReturn):

8:31 PM Changeset in webkit [200991] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove the index check from op_get_by_val/op_put_by_val when the index is constant
https://bugs.webkit.org/show_bug.cgi?id=157766

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-16
Reviewed by Geoffrey Garen.

If the index is an integer constant, do not generate the index check.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

8:28 PM Changeset in webkit [200990] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][DFG] Fill spilled Int32 as Int32 instead of JSInt32
https://bugs.webkit.org/show_bug.cgi?id=157700

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-16
Reviewed by Michael Saboff.

In general, fillSpeculateInt32() originate from SpeculateInt32
and the user does not care about the tag.

This is particularily obvious on Sunspider's math-spectral-norm.js.
In that test, registers are frequently spilled because of x86's DIV.

When they are re-filled, they were always tagged.
Since the loops are small, all the tagging adds up.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):

7:34 PM Changeset in webkit [200989] by dino@apple.com
  • 11 edits in branches/safari-602.1.32-branch/Source

Disable some features on safari-602.1.32-branch.
<rdar://problem/26080754>

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
6:30 PM Changeset in webkit [200988] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove YouTube site-specific hack
https://bugs.webkit.org/show_bug.cgi?id=157776

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-16
Reviewed by Eric Carlson.

No new tests. Youtube fullscreen seems to work without
http://trac.webkit.org/changeset/173533 now.

  • dom/Document.cpp:

(WebCore::unwrapFullScreenRenderer):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidEnterFullScreenForElement):
(WebCore::Document::webkitWillExitFullScreenForElement):
(WebCore::Document::webkitDidExitFullScreenForElement):
(WebCore::Document::setFullScreenRenderer):
(WebCore::hostIsYouTube): Deleted.

6:17 PM Changeset in webkit [200987] by dino@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r200985. <rdar://problem/26312967>

6:09 PM Changeset in webkit [200986] by Brent Fulgham
  • 3 edits
    4 adds in trunk

heap use-after-free at WebCore::TimerBase::heapPopMin()
https://bugs.webkit.org/show_bug.cgi?id=157742
<rdar://problem/26236778>

Source/WebCore:

Reviewed by David Kilzer.

Tested by fast/frames/resources/crash-during-iframe-load-stop.html.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForUserCancel): Protect m_frame from destruction while it is still
being used by the current stack frame.
(WebCore::FrameLoader::frameDetached): Ditto.
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Ditto.

LayoutTests:

Reviewed by Simon Fraser.

  • fast/frames/crash-during-iframe-load-stop-expected.txt: Added.
  • fast/frames/crash-during-iframe-load-stop.html: Added.
  • fast/frames/resources/crash-during-iframe-load-stop-inner.html: Added.
  • fast/frames/resources/crash-during-iframe-load-stop.html: Added.
6:05 PM Changeset in webkit [200985] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

WebCoreJSBuiltinInternals won't compile if some build flags are off
https://bugs.webkit.org/show_bug.cgi?id=157777
<rdar://problem/26312967>

Reviewed by Simon Fraser.

Allow this file to compile when some build flags are disabled.

  • bindings/js/WebCoreJSBuiltinInternals.cpp:

(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):

5:29 PM Changeset in webkit [200984] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed Cloop build fix.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

5:15 PM Changeset in webkit [200983] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

REGRESSION (200035): changes in "WebKit Malloc" VM regions are causing 'leaks' to spew "Failed to map remote region" messages
https://bugs.webkit.org/show_bug.cgi?id=157764

Reviewed by Gavin Barraclough.

We need to allow for guard pages and only report unguarded pages to the
leaks tool -- otherwise, it will try to remote map our guarded pages,
and crash.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk): Adopt the new API for reporting
a range instead of a Chunk*, and report the unguarded range.

This also fixes a separate bug -- very large allocations would not
fully participate in pointer scanning because they would only report 2MB
(chunkSize) in size. This could cause false-positive leak reports.

  • bmalloc/Zone.cpp:

(bmalloc::enumerator): Updated to scan ranges instead of fixed-sized
Chunk pointers.

  • bmalloc/Zone.h:

(bmalloc::Zone::ranges):
(bmalloc::Zone::addRange): Store ranges instead of fixed-sized Chunk
pointers because our VM ranges have variable sizes -- both due to guard
pages and due to large allocations.

(bmalloc::Zone::chunks): Deleted.
(bmalloc::Zone::addChunk): Deleted.

4:49 PM Changeset in webkit [200982] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Give each UniqueIDBDatabase its own task queues.
https://bugs.webkit.org/show_bug.cgi?id=157757

Reviewed by Alex Christensen.

No new tests (Refactor, no behavior change).

Each UniqueIDBDatabase now maintains its own databaseTask and databaseTaskReply queues.

Instead of posting the specific task(reply) with the IDBServer, it merely posts a task(reply) that says
"Handle your next task(reply)".

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performOpenCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
4:31 PM Changeset in webkit [200981] by sbarati@apple.com
  • 53 edits
    12 adds in trunk

Hook up ShadowChicken to the debugger to show tail deleted frames
https://bugs.webkit.org/show_bug.cgi?id=156685
<rdar://problem/25770521>

Reviewed by Filip Pizlo and Mark Lam and Joseph Pecoraro.

Source/JavaScriptCore:

The heart of this patch hooks up ShadowChicken to DebuggerCallFrame to
allow the Web Inspector to display the ShadowChicken's shadow stack.
This means the Web Inspector can now display tail deleted frames.
To make this work, I made the necessary changes to ShadowChicken and
DebuggerCallFrame to allow DebuggerCallFrame to keep the same API
when representing both machine frames and tail deleted frames.

  • ShadowChicken prologue packets now log the current scope. Tail packets log the current scope, the 'this' value, the CodeBlock, and the CallSiteIndex. This allows the inspector to not only show the tail deleted frame, but also show exactly where the tail call happened (line and column numbers), with which scope it executed, and with which 'this' value. This patch also allows DebuggerCallFrame to execute console statements in a tail deleted frame.
  • I changed ShadowChicken's stack resizing algorithm. ShadowChicken now only keeps a maximum number of tail deleted frames in its shadow stack. It will happily represent all machine frames without limit. Right now, the maximum number of tail deleted frames I chose to keep alive is 128. We will keep frames alive starting from the top of the stack. This allows us to have a strong defense against runaway memory usage. We will only keep around at most 128 "shadow" frames that wouldn't have naturally been kept alive by the executing program. We can play around with this number if we find that 128 is either too many or too few frames.
  • DebuggerCallFrame is no longer a cheap class to create. When it is created, we will eagerly create the entire virtual debugger stack. So I modified the existing code to lazily create DebuggerCallFrames only when necessary. We used to eagerly create them at each op_debug statement even though we would just throw them away if we didn't hit a breakpoint.
  • A valid DebuggerCallFrame will always have a valid CallFrame* pointer into the stack. This pointer won't always refer to the logical frame that the DebuggerCallFrame represents because a DebuggerCallFrame can now represent a tail deleted frame. To do this, DebuggerCallFrame now has a ShadowChicken::Frame member variable. This allows DebuggerCallFrame to know when it represents a tail deleted frame and gives DebuggerCallFrame a mechanism to ask the tail deleted frame for interesting information (like its 'this' value, scope, CodeBlock, etc). A tail deleted frame's machine frame pointer will be the machine caller of the tail deleted frame (or the machine caller of the first of a series of consecutive tail calls).
  • I added a new flag to UnlinkedCodeBlock to indicate when it is compiled with debugging opcodes. I did this because ShadowChicken may read a JSScope from the machine stack. This is only safe if the machine CodeBlock was compiled with debugging opcodes. This is safer than asking if the CodeBlock's global object has an interactive debugger enabled because it's theoretically possible for the debugger to be enabled while code compiled without a debugger is still live on the stack. This field is also now used to indicate to the DFGGraph that the interactive debugger is enabled.
  • Finally, this patch adds a new field to the Inspector's CallFrame protocol object called 'isTailDeleted' to allow the Inspector to know when a CallFrame represents a tail deleted frame.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::clearDebuggerRequests):
(JSC::CodeBlock::wasCompiledWithDebuggingOpcodes):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::wasCompiledWithDebuggingOpcodes):
(JSC::UnlinkedCodeBlock::finishCreation):
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitEnter):
(JSC::BytecodeGenerator::emitLogShadowChickenPrologueIfNecessary):
(JSC::BytecodeGenerator::emitLogShadowChickenTailIfNecessary):
(JSC::BytecodeGenerator::emitCallDefineProperty):

  • debugger/Debugger.cpp:

(JSC::DebuggerPausedScope::DebuggerPausedScope):
(JSC::DebuggerPausedScope::~DebuggerPausedScope):
(JSC::Debugger::didReachBreakpoint):
(JSC::Debugger::currentDebuggerCallFrame):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::LineAndColumnFunctor::operator()):
(JSC::DebuggerCallFrame::create):
(JSC::DebuggerCallFrame::DebuggerCallFrame):
(JSC::DebuggerCallFrame::callerFrame):
(JSC::DebuggerCallFrame::globalExec):
(JSC::DebuggerCallFrame::vmEntryGlobalObject):
(JSC::DebuggerCallFrame::sourceID):
(JSC::DebuggerCallFrame::functionName):
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::type):
(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
(JSC::DebuggerCallFrame::invalidate):
(JSC::DebuggerCallFrame::currentPosition):
(JSC::DebuggerCallFrame::positionForCallFrame):
(JSC::DebuggerCallFrame::sourceIDForCallFrame):
(JSC::FindCallerMidStackFunctor::FindCallerMidStackFunctor): Deleted.
(JSC::FindCallerMidStackFunctor::operator()): Deleted.
(JSC::FindCallerMidStackFunctor::getCallerFrame): Deleted.
(JSC::DebuggerCallFrame::thisValueForCallFrame): Deleted.

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):
(JSC::DebuggerCallFrame::isTailDeleted):
(JSC::DebuggerCallFrame::create): Deleted.
(JSC::DebuggerCallFrame::exec): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addCallSite):
(JSC::DFG::JITCompiler::emitStoreCodeOrigin):
(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenTail):
(JSC::FTL::DFG::LowerDFGToB3::compileRecordRegExpCachedResult):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::setupShadowChickenPacket): Deleted.

  • inspector/InjectedScriptSource.js:

(InjectedScript.CallFrameProxy):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::thisObject):
(Inspector::JSJavaScriptCallFrame::isTailDeleted):
(Inspector::JSJavaScriptCallFrame::type):

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
(Inspector::jsJavaScriptCallFrameAttributeType):
(Inspector::jsJavaScriptCallFrameIsTailDeleted):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::type):
(Inspector::JavaScriptCallFrame::scopeChain):
(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::isTailDeleted):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):

  • inspector/protocol/Debugger.json:
  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::update):
(JSC::ShadowChicken::visitChildren):
(JSC::ShadowChicken::reset):

  • interpreter/ShadowChicken.h:

(JSC::ShadowChicken::Packet::throwMarker):
(JSC::ShadowChicken::Packet::prologue):
(JSC::ShadowChicken::Packet::tail):
(JSC::ShadowChicken::Frame::Frame):
(JSC::ShadowChicken::Frame::operator==):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::logShadowChickenProloguePacket):
(JSC::CCallHelpers::logShadowChickenTailPacket):
(JSC::CCallHelpers::ensureShadowChickenPacket):
(JSC::CCallHelpers::setupShadowChickenPacket): Deleted.

  • jit/CCallHelpers.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):
(JSC::JIT::emit_op_get_enumerable_length):
(JSC::JIT::emit_op_resume):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::webAssemblyCalleeSaveRegisters):
(JSC::RegisterSet::argumentGPRS):
(JSC::RegisterSet::registersToNotSaveForJSCall):

  • jit/RegisterSet.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):

  • runtime/Options.h:
  • tests/stress/shadow-chicken-enabled.js:

(test5a.foo):
(test5a):
(test5b.foo):
(test5b):
(test6.foo):
(test6):

Source/WebCore:

Tests: inspector/debugger/tail-deleted-frames-this-value.html

inspector/debugger/tail-deleted-frames.html
inspector/debugger/tail-recursion.html

  • ForwardingHeaders/interpreter/ShadowChicken.h: Added.

Source/WebInspectorUI:

This patch makes the WebInspector display tail deleted frames.
We show tail deleted frames with a gray [f] instead of a green
[f]. We also put text in the tooltip to indicate that the frame
is tail deleted. Other than that, tail deleted frames behave like
normal frames. You can evaluate in them, inspect their scope, etc.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/TailDeletedFunction.svg: Added.
  • UserInterface/Images/gtk/TailDeletedFunction.svg: Added.
  • UserInterface/Models/CallFrame.js:
  • UserInterface/Views/CallFrameIcons.css:
  • UserInterface/Views/CallFrameTreeElement.js:
  • UserInterface/Views/CallFrameView.js:

LayoutTests:

  • inspector/debugger/resources/tail-deleted-frames-this-value.js: Added.

(a):
(b):

  • inspector/debugger/resources/tail-deleted-frames.js: Added.

(a):
(b):
(c):
(startABC):

  • inspector/debugger/resources/tail-recursion.js: Added.

(recurse):
(startRecurse):

  • inspector/debugger/tail-deleted-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames-this-value-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames-this-value.html: Added.
  • inspector/debugger/tail-deleted-frames.html: Added.
  • inspector/debugger/tail-recursion-expected.txt: Added.
  • inspector/debugger/tail-recursion.html: Added.
4:27 PM Changeset in webkit [200980] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

TypeSet/StructureShape have a flawed sense of JS prototype chains
https://bugs.webkit.org/show_bug.cgi?id=157760

Reviewed by Joseph Pecoraro.

There was an assumption that we would bottom out in "Object". This is
not true for many reasons. JS objects may not end in Object.prototype.
Also, our mechanism of grabbing an Object's class name may also not
bottom out in "Object". We were seeing this in the JS objects we use
in the InjectedScriptSource.js inspector script.

  • runtime/TypeSet.cpp:

(JSC::StructureShape::leastCommonAncestor):

  • tests/typeProfiler/weird-prototype-chain.js: Added.

(wrapper.foo):
(wrapper.let.o2):
(wrapper):

4:21 PM Changeset in webkit [200979] by enrica@apple.com
  • 2 edits in trunk/Tools

build fix after r200968 and r200969

Unreviewed.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]):

4:19 PM Changeset in webkit [200978] by jer.noble@apple.com
  • 2 edits in trunk/Tools

API test WebKit2.MSEIsPlayingAudio timing out after r200951
https://bugs.webkit.org/show_bug.cgi?id=157748

Reviewed by Eric Carlson.

The file-with-mse.html testcase only calls play() once it's own XHR loading is complete; the
"user gesture" check fails at that point. Call play() up front; playback will begin as soon
as enough data is loaded.

  • TestWebKitAPI/Tests/WebKit2/file-with-mse.html:
4:11 PM Changeset in webkit [200977] by achristensen@apple.com
  • 10 edits in trunk/Source/WebCore

Don't include CSSParser.h from other headers
https://bugs.webkit.org/show_bug.cgi?id=157765

Reviewed by Zalan Bujtas.

No change in behavior. This just makes it so touching CSSParser.h doesn't rebuild as many files.

  • css/CSSCalculationValue.cpp:
  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize):
(WebCore::filterProperties):

  • css/CSSParser.h:

(WebCore::CSSParser::ValueWithCalculation::ValueWithCalculation):

  • css/CSSProperty.h:

(WebCore::prefixingVariantForPropertyId):

  • css/FontFace.cpp:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::parseDeclaration):
(WebCore::MutableStyleProperties::addParsedProperties):

  • css/StyleProperties.h:
  • css/StyleResolver.h:
  • rendering/style/RenderStyle.cpp:
4:08 PM Changeset in webkit [200976] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r200441): Yahoo sports, finance and news pages automatically scroll
https://bugs.webkit.org/show_bug.cgi?id=157692
<rdar://problem/26231897>

Patch by Aaron Chu <aaron_chu@apple.com> on 2016-05-16
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-controls-to-not-scroll-page-on-load.html

This bug was due to the fact that showControls button was shown and focused
when the video controls are hidden. The showControls button is used by FKA or
screen readers to make the video controls reappear after they have faded out.
When the showControls button is shown, a focus() is called on it to ensure that
the screen reader is focusing on the button instead of <body> or the video chrome.
To fix this bug, I added the shouldHaveControls() check before calling focus() on
the showControls button.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.showShowControlsButton):

LayoutTests:

Added Layout test to make sure that the page does not scroll automatically because
of the focus() on showControlsButton in the video shadow DOM.

  • media/video-controls-to-not-scroll-page-on-load-expected.txt: Added.
  • media/video-controls-to-not-scroll-page-on-load.html: Added.
3:53 PM Changeset in webkit [200975] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Add a WKA extension point for WKPreferences SPI
https://bugs.webkit.org/show_bug.cgi?id=157762
rdar://problem/24529203

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKPreferences.mm:
3:44 PM Changeset in webkit [200974] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

Action sheets don’t work in presented view controllers
<https://webkit.org/b/157754>
<rdar://problem/26304845>

Reviewed by Anders Carlsson.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet willRotate]):

  • Call SPI to get the presenting view controller, since it may not always be the root view controller.
3:31 PM Changeset in webkit [200973] by Joseph Pecoraro
  • 95 edits
    7 copies
    104 adds in trunk

Unreviewed rollout r200924. Caused js/regress/string-replace-generic.html to fail.

.:

  • ManualTests/inspector/profiler-test-call.html: Added.
  • ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.

Source/JavaScriptCore:

  • API/JSProfilerPrivate.cpp: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.

(JSStartProfiling):
(JSEndProfiling):

  • API/JSProfilerPrivate.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::profileHookRegister):
(JSC::BytecodeGenerator::shouldEmitProfileHooks):

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallArguments::CallArguments):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):

  • inspector/protocol/Timeline.json:
  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_will_call):
(JSC::JIT::emit_op_profile_did_call):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_will_call):
(JSC::JIT::emit_op_profile_did_call):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jsc.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ParserModes.h:
  • profiler/CallIdentifier.h: Added.

(JSC::CallIdentifier::CallIdentifier):
(JSC::CallIdentifier::functionName):
(JSC::CallIdentifier::url):
(JSC::CallIdentifier::lineNumber):
(JSC::CallIdentifier::columnNumber):
(JSC::CallIdentifier::operator==):
(JSC::CallIdentifier::operator!=):
(JSC::CallIdentifier::Hash::hash):
(JSC::CallIdentifier::Hash::equal):
(JSC::CallIdentifier::hash):
(JSC::CallIdentifier::operator const char*):
(JSC::CallIdentifier::c_str):
(WTF::HashTraits<JSC::CallIdentifier>::constructDeletedValue):
(WTF::HashTraits<JSC::CallIdentifier>::isDeletedValue):

  • profiler/LegacyProfiler.cpp: Added.

(JSC::LegacyProfiler::profiler):
(JSC::LegacyProfiler::startProfiling):
(JSC::LegacyProfiler::stopProfiling):
(JSC::callFunctionForProfilesWithGroup):
(JSC::LegacyProfiler::suspendProfiling):
(JSC::LegacyProfiler::unsuspendProfiling):
(JSC::LegacyProfiler::willExecute):
(JSC::LegacyProfiler::didExecute):
(JSC::LegacyProfiler::exceptionUnwind):
(JSC::LegacyProfiler::createCallIdentifier):
(JSC::createCallIdentifierFromFunctionImp):

  • profiler/LegacyProfiler.h: Added.

(JSC::LegacyProfiler::currentProfiles):

  • profiler/Profile.cpp: Added.

(JSC::Profile::create):
(JSC::Profile::Profile):
(JSC::Profile::~Profile):
(JSC::Profile::debugPrint):
(JSC::functionNameCountPairComparator):
(JSC::Profile::debugPrintSampleStyle):

  • profiler/Profile.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • profiler/ProfileGenerator.cpp: Added.

(JSC::ProfileGenerator::create):
(JSC::ProfileGenerator::ProfileGenerator):
(JSC::AddParentForConsoleStartFunctor::AddParentForConsoleStartFunctor):
(JSC::AddParentForConsoleStartFunctor::foundParent):
(JSC::AddParentForConsoleStartFunctor::operator()):
(JSC::ProfileGenerator::addParentForConsoleStart):
(JSC::ProfileGenerator::title):
(JSC::ProfileGenerator::beginCallEntry):
(JSC::ProfileGenerator::endCallEntry):
(JSC::ProfileGenerator::willExecute):
(JSC::ProfileGenerator::didExecute):
(JSC::ProfileGenerator::exceptionUnwind):
(JSC::ProfileGenerator::stopProfiling):
(JSC::ProfileGenerator::removeProfileStart):
(JSC::ProfileGenerator::removeProfileEnd):

  • profiler/ProfileGenerator.h: Added.

(JSC::ProfileGenerator::profile):
(JSC::ProfileGenerator::origin):
(JSC::ProfileGenerator::profileGroup):
(JSC::ProfileGenerator::setIsSuspended):

  • profiler/ProfileNode.cpp: Added.

(JSC::ProfileNode::ProfileNode):
(JSC::ProfileNode::addChild):
(JSC::ProfileNode::removeChild):
(JSC::ProfileNode::spliceNode):
(JSC::ProfileNode::traverseNextNodePostOrder):
(JSC::ProfileNode::debugPrint):
(JSC::ProfileNode::debugPrintSampleStyle):
(JSC::ProfileNode::debugPrintRecursively):
(JSC::ProfileNode::debugPrintSampleStyleRecursively):

  • profiler/ProfileNode.h: Added.

(JSC::ProfileNode::create):
(JSC::ProfileNode::Call::Call):
(JSC::ProfileNode::Call::startTime):
(JSC::ProfileNode::Call::setStartTime):
(JSC::ProfileNode::Call::elapsedTime):
(JSC::ProfileNode::Call::setElapsedTime):
(JSC::ProfileNode::operator==):
(JSC::ProfileNode::callerCallFrame):
(JSC::ProfileNode::callIdentifier):
(JSC::ProfileNode::id):
(JSC::ProfileNode::functionName):
(JSC::ProfileNode::url):
(JSC::ProfileNode::lineNumber):
(JSC::ProfileNode::columnNumber):
(JSC::ProfileNode::parent):
(JSC::ProfileNode::setParent):
(JSC::ProfileNode::calls):
(JSC::ProfileNode::lastCall):
(JSC::ProfileNode::appendCall):
(JSC::ProfileNode::children):
(JSC::ProfileNode::firstChild):
(JSC::ProfileNode::lastChild):
(JSC::ProfileNode::nextSibling):
(JSC::ProfileNode::setNextSibling):
(JSC::ProfileNode::forEachNodePostorder):
(JSC::CalculateProfileSubtreeDataFunctor::operator()):
(JSC::CalculateProfileSubtreeDataFunctor::returnValue):

  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal):

  • profiler/ProfilerJettisonReason.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

  • runtime/CodeCache.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::hasLegacyProfiler):
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::supportsLegacyProfiling):

  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::SetEnabledProfilerFunctor::operator()):
(JSC::VM::setEnabledProfiler):

  • runtime/VM.h:

(JSC::VM::enabledProfiler):
(JSC::VM::enabledProfilerAddress):

Source/WebCore:

Tests: fast/profiler/*

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • ForwardingHeaders/profiler/LegacyProfiler.h: Added.
  • ForwardingHeaders/profiler/Profile.h: Added.
  • ForwardingHeaders/profiler/ProfileNode.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::supportsLegacyProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::supportsLegacyProfiling):

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/ScriptCachedFrameData.cpp:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::clearWindowShell):

  • bindings/js/ScriptProfile.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • bindings/js/ScriptProfileNode.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • bindings/scripts/CodeGeneratorJS.pm:

(AddClassForwardIfNeeded):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):

  • bindings/scripts/test/TestObj.idl:
  • css/CSSParser.cpp:
  • dom/Document.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::stopProfiling):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::legacyProfilerEnabled):
(WebCore::InspectorController::setLegacyProfilerEnabled):

  • inspector/InspectorController.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::stopProfilingImpl):

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/InspectorTimelineAgent.h:
  • inspector/PageDebuggerAgent.cpp:
  • inspector/PageRuntimeAgent.cpp:
  • inspector/ScriptProfile.idl: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • inspector/ScriptProfileNode.idl: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • inspector/TimelineRecordFactory.cpp:

(WebCore::buildAggregateCallInfoInspectorObject):
(WebCore::buildInspectorObject):
(WebCore::buildProfileInspectorObject):
(WebCore::TimelineRecordFactory::appendProfile):

  • inspector/TimelineRecordFactory.h:
  • page/DOMWindow.cpp:
  • page/Page.cpp:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::profileEnd):
(WebCore::PageConsoleClient::clearProfiles):

  • page/PageConsoleClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::consoleProfiles):
(WebCore::Internals::setLegacyJavaScriptProfilingEnabled):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/js/WebCoreTestSupport.cpp:
  • xml/XSLStyleSheetLibxslt.cpp:
  • xml/XSLTProcessorLibxslt.cpp:

Source/WebKit/win:

  • Interfaces/IWebInspector.idl:
  • WebCoreStatistics.cpp:
  • WebInspector.cpp:

(WebInspector::isJavaScriptProfilingEnabled):
(WebInspector::setJavaScriptProfilingEnabled):

LayoutTests:

  • fast/profiler/anonymous-event-handler-expected.txt: Added.
  • fast/profiler/anonymous-event-handler.html: Added.
  • fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: Added.
  • fast/profiler/anonymous-function-called-from-different-contexts.html: Added.
  • fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: Added.
  • fast/profiler/anonymous-function-calls-built-in-functions.html: Added.
  • fast/profiler/anonymous-function-calls-eval-expected.txt: Added.
  • fast/profiler/anonymous-function-calls-eval.html: Added.
  • fast/profiler/anonymous-functions-with-display-names-expected.txt: Added.
  • fast/profiler/anonymous-functions-with-display-names.html: Added.
  • fast/profiler/apply-expected.txt: Added.
  • fast/profiler/apply.html: Added.
  • fast/profiler/built-in-function-calls-anonymous-expected.txt: Added.
  • fast/profiler/built-in-function-calls-anonymous.html: Added.
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt: Added.
  • fast/profiler/built-in-function-calls-user-defined-function.html: Added.
  • fast/profiler/call-expected.txt: Added.
  • fast/profiler/call-register-leak-expected.txt: Added.
  • fast/profiler/call-register-leak.html: Added.
  • fast/profiler/call.html: Added.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: Added.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html: Added.
  • fast/profiler/compare-multiple-profiles-expected.txt: Added.
  • fast/profiler/compare-multiple-profiles.html: Added.
  • fast/profiler/constructor-expected.txt: Added.
  • fast/profiler/constructor.html: Added.
  • fast/profiler/dead-time-expected.txt: Added.
  • fast/profiler/dead-time.html: Added.
  • fast/profiler/document-dot-write-expected.txt: Added.
  • fast/profiler/document-dot-write.html: Added.
  • fast/profiler/event-handler-expected.txt: Added.
  • fast/profiler/event-handler.html: Added.
  • fast/profiler/execution-context-and-eval-on-same-line-expected.txt: Added.
  • fast/profiler/execution-context-and-eval-on-same-line.html: Added.
  • fast/profiler/inline-event-handler-expected.txt: Added.
  • fast/profiler/inline-event-handler.html: Added.
  • fast/profiler/many-calls-in-the-same-scope-expected.txt: Added.
  • fast/profiler/many-calls-in-the-same-scope.html: Added.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: Added.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html: Added.
  • fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: Added.
  • fast/profiler/multiple-and-different-scoped-function-calls.html: Added.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: Added.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html: Added.
  • fast/profiler/multiple-frames-expected.txt: Added.
  • fast/profiler/multiple-frames.html: Added.
  • fast/profiler/named-functions-with-display-names-expected.txt: Added.
  • fast/profiler/named-functions-with-display-names.html: Added.
  • fast/profiler/nested-anonymous-functon-expected.txt: Added.
  • fast/profiler/nested-anonymous-functon.html: Added.
  • fast/profiler/nested-start-and-stop-profiler-expected.txt: Added.
  • fast/profiler/nested-start-and-stop-profiler.html: Added.
  • fast/profiler/no-execution-context-expected.txt: Added.
  • fast/profiler/no-execution-context.html: Added.
  • fast/profiler/one-execution-context-expected.txt: Added.
  • fast/profiler/one-execution-context.html: Added.
  • fast/profiler/profile-calls-in-included-file-expected.txt: Added.
  • fast/profiler/profile-calls-in-included-file.html: Added.
  • fast/profiler/profile-with-no-title-expected.txt: Added.
  • fast/profiler/profile-with-no-title.html: Added.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: Added.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
  • fast/profiler/profiling-from-a-nested-location-expected.txt: Added.
  • fast/profiler/profiling-from-a-nested-location.html: Added.
  • fast/profiler/resources/other-frame.html: Added.
  • fast/profiler/resources/other-window.html: Added.
  • fast/profiler/resources/profiler-test-JS-resources.js: Added.

(endTest):
(insertGivenText):
(insertNewText):
(arrayOperatorFunction):
(anonymousFunction):
(anotherAnonymousFunction):
(intermediaryFunction):
(isEqualToFive):
(startProfile):
(printHeavyProfilesDataWithoutTime):
(printProfilesDataWithoutTime):
(printProfileNodeWithoutTime):

  • fast/profiler/simple-event-call-expected.txt: Added.
  • fast/profiler/simple-event-call.html: Added.
  • fast/profiler/simple-no-level-change-expected.txt: Added.
  • fast/profiler/simple-no-level-change.html: Added.
  • fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: Added.
  • fast/profiler/start-and-stop-profiler-multiple-times.html: Added.
  • fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: Added.
  • fast/profiler/start-and-stop-profiling-in-the-same-function.html: Added.
  • fast/profiler/start-but-dont-stop-profiling-expected.txt: Added.
  • fast/profiler/start-but-dont-stop-profiling.html: Added.
  • fast/profiler/stop-profiling-after-setTimeout-expected.txt: Added.
  • fast/profiler/stop-profiling-after-setTimeout.html: Added.
  • fast/profiler/stop-then-function-call-expected.txt: Added.
  • fast/profiler/stop-then-function-call.html: Added.
  • fast/profiler/throw-exception-from-eval-expected.txt: Added.
  • fast/profiler/throw-exception-from-eval.html-disabled: Added.
  • fast/profiler/two-execution-contexts-expected.txt: Added.
  • fast/profiler/two-execution-contexts.html: Added.
  • fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: Added.
  • fast/profiler/user-defined-function-calls-built-in-functions.html: Added.
  • fast/profiler/window-dot-eval-expected.txt: Added.
  • fast/profiler/window-dot-eval.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:20 PM Changeset in webkit [200972] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Text selection is basically impossible on plain text pages.
https://bugs.webkit.org/show_bug.cgi?id=157681
rdar://problem/26065660

Reviewed by Darin Adler.

When dealing with a plain text file, the rules for deciding whether
a position is selectable should be different and we should never
switch to block selection.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::rectIsTooBigForSelection): Added helper function.
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::getPositionInformation):

3:00 PM Changeset in webkit [200971] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderLayer::hitTestList could mutate the list of candidate layers.
https://bugs.webkit.org/show_bug.cgi?id=157718
<rdar://problem/22556046>

Reviewed by Simon Fraser.

This patch ensures that we always start hittesting a clean render tree at EventHandler::hitTestResultAtPoint.

Speculative fix.

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint):

2:53 PM Changeset in webkit [200970] by Konstantin Tokarev
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fixed typo in a comment.

2:42 PM Changeset in webkit [200969] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Removing use of characterSet property.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

2:39 PM Changeset in webkit [200968] by enrica@apple.com
  • 5 edits in trunk

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Source/WebCore:

This is no longer used and can be removed.
The logic tied to isPopupVariant has been incorporated
in keyboard flags. The characterSet property is no longer needed too.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:isPopupVariant:keyCode:isTabKey:characterSet:]): Deleted.
(-[WebEvent _characterSetDescription]): Deleted.
(-[WebEvent isPopupVariant]): Deleted.
(-[WebEvent characterSet]): Deleted.

Tools:

Adopting different initializer for WebEvent to fix the build.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]):

2:36 PM Changeset in webkit [200967] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Add a WebCore logging channel for images
https://bugs.webkit.org/show_bug.cgi?id=157752

Reviewed by Zalan Bujtas.

Create an Images log channel, and log various things related to decoding and drawing
images.

  • platform/Logging.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
(WebCore::BitmapImage::cacheFrame):
(WebCore::BitmapImage::startAnimation):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex):

1:52 PM Changeset in webkit [200966] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Remove dispatch_after in -[WKFormInputSession setSuggestions:]
https://bugs.webkit.org/show_bug.cgi?id=157745

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-05-16
Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession setSuggestions:]): Remove the dispatch_after since
there is no longer a chance of keyboard suggestions replacing the
suggestions set here.

1:46 PM Changeset in webkit [200965] by adachan@apple.com
  • 3 edits in trunk/Source/WebCore

Don't execute JavaScript within HTMLMediaElement::stop()
https://bugs.webkit.org/show_bug.cgi?id=157655

Reviewed by Chris Dumez.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
Move the setting of m_activeDOMObjectsAreSuspended to true earlier so we won't execute
any JS while suspending the objects.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
Bail early if the controls script hasn't been injected yet or the DOM object has been
stopped or suspended.

1:26 PM Changeset in webkit [200964] by rniwa@webkit.org
  • 9 edits
    4 adds in trunk

Focus ordering should respect slot elements
https://bugs.webkit.org/show_bug.cgi?id=151379

Reviewed by Antti Koivisto.

Source/WebCore:

Implemented the sequential focus navigation ordering as discussed on
https://github.com/w3c/webcomponents/issues/375

New behavior treats each shadow root and slot as a "focus scope". The focus navigation ordering
is defined within each "focus scope" using tabindex, treating any "focus scope owner"
(e.g. shadow host or a slot) as if it was having tabindex=0 if it wasn't itself focusable.

This patch modifies FocusNavigationScope to support a focus scope defined for a slot element in
addition to the one defined for a shadow tree and a document as previously supported.

Tests: fast/shadow-dom/focus-across-details-element.html

fast/shadow-dom/focus-navigation-across-slots.html

  • dom/Node.cpp:

(WebCore::parentShadowRoot): Extracted from assignedSlot.
(WebCore::Node::assignedSlot):
(WebCore::Node::assignedSlotForBindings): Added.

  • dom/Node.h:
  • dom/NonDocumentTypeChildNode.idl:
  • html/HTMLDetailsElement.h:

(HTMLDetailsElement::hasCustomFocusLogic): Added. Don't treat details element as a "focus scope".

  • html/HTMLSummaryElement.h:

(HTMLSummaryElement::hasCustomFocusLogic): Ditto for summary element.

  • page/FocusController.cpp:

(WebCore::hasCustomFocusLogic): Moved.
(WebCore::isFocusScopeOwner): Added. Returns true on a shadow host without a custom focus logic or
on a slot inside a shadow tree whose shadow host doesn't have a custom focus logic.
(WebCore::FocusNavigationScope::firstChildInScope): Now takes a reference. Call isFocusScopeOwner
to check for both slots and shadow roots instead of just the latter. This fixes a subtle bug that
focus may never get out of textarea in some cases due to its failure to check hasCustomFocusLogic.
(WebCore::FocusNavigationScope::lastChildInScope): Ditto.
(WebCore::FocusNavigationScope::parentInScope): Made this a member function since it needs to check
against m_slotElement inside the focus scope of a slot.
(WebCore::FocusNavigationScope::nextSiblingInScope): Added. Finds the next assigned node in a slot
in the focus scope defined for a slot. Just calls nextSibling() in the focus scope for shadow tree
and document.
(WebCore::FocusNavigationScope::previousSiblingInScope): Ditto for finding the previous sibling.
(WebCore::FocusNavigationScope::firstNodeInScope): Added. This function replaces rootNode() which
doesn't exist for the focus scope of a slot element.
(WebCore::FocusNavigationScope::lastNodeInScope): Ditto for the last node.
(WebCore::FocusNavigationScope::nextInScope):
(WebCore::FocusNavigationScope::previousInScope):
(WebCore::FocusNavigationScope::FocusNavigationScope): Added a variant that takes HTMLSlotElement.
(WebCore::FocusNavigationScope::owner): Added the support for slot elements.
(WebCore::FocusNavigationScope::scopeOf): Ditto.
(WebCore::FocusNavigationScope::scopeOwnedByScopeOwner): Ditto.
(WebCore::isFocusableElementOrScopeOwner): Added the support for slot elements and renamed from
isFocusableOrHasShadowTreeWithoutCustomFocusLogic.
(WebCore::isNonFocusableScopeOwner): Ditto. Renamed from isNonFocusableShadowHost.
(WebCore::isFocusableScopeOwner): Ditto. Renamed from isFocusableShadowHost.
(WebCore::shadowAdjustedTabIndex): Added the support for slot elements.
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::nextFocusableElementWithinScope):
(WebCore::FocusController::previousFocusableElementWithinScope):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::nextElementWithGreaterTabIndex): Call firstNodeInScope() instead of rootNode() here since
there is no root node for the focus scope defined for a slot element.
(WebCore::previousElementWithLowerTabIndex): Ditto for scope.lastNodeInScope().
(WebCore::FocusController::nextFocusableElementOrScopeOwner):
(WebCore::FocusController::previousFocusableElementOrScopeOwner):
(WebCore::parentInScope): Deleted.
(WebCore::FocusNavigationScope::rootNode): Deleted.
(WebCore::FocusNavigationScope::scopeOwnedByShadowHost): Deleted.
(WebCore::isNonFocusableShadowHost): Deleted.
(WebCore::isFocusableShadowHost): Deleted.
(WebCore::isFocusableOrHasShadowTreeWithoutCustomFocusLogic): Deleted.

LayoutTests:

Added regression tests for moving focus by tab and shift+tab across
user-defined shadow trees with slots and details element.

  • fast/shadow-dom/focus-across-details-element-expected.txt: Added.
  • fast/shadow-dom/focus-across-details-element.html: Added.
  • fast/shadow-dom/focus-navigation-across-slots-expected.txt: Added.
  • fast/shadow-dom/focus-navigation-across-slots.html: Added.
1:24 PM Changeset in webkit [200963] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
https://bugs.webkit.org/show_bug.cgi?id=157747

Reviewed by Zalan Bujtas.

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
instead of std::unique_ptr as it is more suited for this purpose.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::scrollOffsetChangedViaPlatformWidget):
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
(WebCore::ScrollView::scrollTo):

  • platform/ScrollView.h:
1:19 PM Changeset in webkit [200962] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Contents of Duration column are covered by always on (legacy) scroll bars
https://bugs.webkit.org/show_bug.cgi?id=157590

Reviewed by Timothy Hatcher.

Set the right padding of the DataGrid header to match the scrollbar width.

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):
(.data-grid.inline .data-container):
Don't show scrollbars for inline data grids.

(.data-grid > .header-wrapper):
(.data-grid.no-header > .header-wrapper > table.header):
(.data-grid.no-header > table.header): Deleted.
(.data-grid th): Deleted.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
We can't add padding-rigth to a table. Wrap the table in div.header-wrapper.

(WebInspector.DataGrid.prototype._updateScrollbarPadding):
(WebInspector.DataGrid.prototype.layout):

1:01 PM Changeset in webkit [200961] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Crash simulating keystrokes at WebKit::WebAutomationSession::platformSimulateKeyStroke
https://bugs.webkit.org/show_bug.cgi?id=157737
<rdar://problem/26292946>

Reviewed by Timothy Hatcher.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateKeyStroke):
AppKit expects characters passed to [NSEvent keyEventWithType:...]
to be non-nil even if there are no characters. Initialize characters
to the empty string @"". It will be overwritten if the keystroke should
produce any unicode characters.

12:57 PM Changeset in webkit [200960] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline tests for ios-simulator

Unreviewed test gardening.

  • fast/events/touch/document-create-touch-list-ios-expected.txt:
  • platform/ios-simulator/ios/touch/construct-TouchList-expected.txt:
12:53 PM Changeset in webkit [200959] by BJ Burg
  • 6 edits in trunk/Source/WebKit2

Web Automation: Automation.inspectBrowsingContext should automatically start page profiling
https://bugs.webkit.org/show_bug.cgi?id=157739

Reviewed by Timothy Hatcher.

  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorTogglePageProfiling):
Implicitly show the Web Inspector in the C API command to preserve existing behavior.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::inspectorFrontendLoaded):
If the frontend loaded, it was either because the user opened Web Inspector (and
turning on page profiling is harmless), or it was loaded but not shown by the
inspectBrowsingContext command. For the latter, we want to start page profiling
before processing any additional commands so subsequent execution is captured.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::togglePageProfiling):
Send the start/stop profiling messages directly to the WebInspectorUI process instead of
bouncing through the inspected page's process, which does an implicit show() we don't want.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::inspector): Make it const.

  • UIProcess/WebPageProxy.h:
12:41 PM Changeset in webkit [200958] by fpizlo@apple.com
  • 3 edits
    21 adds in trunk

FixupPhase should be more eager to demote bit math to untyped
https://bugs.webkit.org/show_bug.cgi?id=157746

Reviewed by Mark Lam.
Source/JavaScriptCore:


This just makes the logic for how we fixup bit math match the way we do it in other places.
This doesn't affect performance on any major benchmark but it's a big win on new
microbenchmarks added in this change.

Details:

object-and 11.1610+-0.7602 4.8105+-0.1690 definitely 2.3201x faster
object-or 11.0845+-0.2487 4.7146+-0.0374 definitely 2.3511x faster
object-xor 10.2946+-0.9946 4.7278+-0.0814 definitely 2.1775x faster
object-lshift 10.4896+-1.0867 4.7699+-0.0721 definitely 2.1991x faster
object-rshift 11.1239+-0.5010 4.7194+-0.0445 definitely 2.3570x faster
object-urshift 10.9745+-0.1315 4.7848+-0.0479 definitely 2.2936x faster

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

LayoutTests:

  • js/regress/object-and-expected.txt: Added.
  • js/regress/object-and.html: Added.
  • js/regress/object-int-and-array-expected.txt: Added.
  • js/regress/object-int-and-array.html: Added.
  • js/regress/object-lshift-expected.txt: Added.
  • js/regress/object-lshift.html: Added.
  • js/regress/object-or-expected.txt: Added.
  • js/regress/object-or.html: Added.
  • js/regress/object-rshift-expected.txt: Added.
  • js/regress/object-rshift.html: Added.
  • js/regress/object-urshift-expected.txt: Added.
  • js/regress/object-urshift.html: Added.
  • js/regress/object-xor-expected.txt: Added.
  • js/regress/object-xor.html: Added.
  • js/regress/script-tests/object-and.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-int-and-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-lshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-or.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-rshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-urshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-xor.js: Added.

(o.valueOf):

12:20 PM Changeset in webkit [200957] by Conrad Shultz
  • 8 edits in trunk/Source/WebKit2

Fix some deprecation warnings.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::setActiveAnnotation):
(WebKit::PDFPlugin::lookupTextAtLocation):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::createAnnotationElement):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage):

11:57 AM Changeset in webkit [200956] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add machine-readable results for JSC API tests to the Buildbot json log
https://bugs.webkit.org/show_bug.cgi?id=157642

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-16
Reviewed by Geoffrey Garen.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunJavaScriptCoreTests): Use --no-fail-fast option on run-javascriptcore-tests

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Abstracted out writing JSON to file (new function below)
(writeJsonDataIfApplicable): Added

11:54 AM Changeset in webkit [200955] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Background stripes don't span the width of Network sidebar
https://bugs.webkit.org/show_bug.cgi?id=157744

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkSidebarPanel.css:

(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content):

11:47 AM Changeset in webkit [200954] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/JavaScriptCore

Merged r200693. rdar://problem/25682844

11:44 AM Changeset in webkit [200953] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

containingBlockFor*Position functions should take the renderer instead of the parent.
https://bugs.webkit.org/show_bug.cgi?id=157659

Reviewed by Simon Fraser.

containingBlockForFixedPosition, containingBlockForAbsolutePosition and containingBlockForObjectInFlow functions
expect the renderer's parent to be passed in (unless it is a RenderInline!). It is rather misleading and highly error-prone.
We should call them with the renderer itself instead.

  • dom/Element.cpp:

(WebCore::layoutOverflowRectContainsAllDescendants): This expects ancestor containing block.

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):

  • rendering/RenderElement.cpp:

(WebCore::containingBlockForFixedPosition):
(WebCore::containingBlockForAbsolutePosition):
(WebCore::containingBlockForObjectInFlow):

  • rendering/RenderElement.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionRects): Not a behaviour change.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock): RenderScrollbarPart renderer now returns
the containing block based on its owning renderer's style.

11:26 AM Changeset in webkit [200952] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Computed style shows both prefixed and unprefixed variants of properties
https://bugs.webkit.org/show_bug.cgi?id=157674
<rdar://problem/24339756>

Patch by Antoine Quint <Antoine Quint> on 2016-05-16
Reviewed by Timothy Hatcher.

We make the CSSProperty implicit property read-write, and in the case where a computed style
has a property marked as explicit, we also check that it's found in matching rules to consider
it non-implicit. This correctly filters out variants of properties set explicitly.

  • UserInterface/Models/CSSProperty.js:

(WebInspector.CSSProperty.prototype.set implicit):

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
(WebInspector.DOMNodeStyles.prototype.refresh):
(WebInspector.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules):
(WebInspector.DOMNodeStyles):

11:23 AM Changeset in webkit [200951] by jer.noble@apple.com
  • 10 edits in trunk

[WK2] Add API to WKWebViewConfiguration to control autoplay policy.
https://bugs.webkit.org/show_bug.cgi?id=156312

Reviewed by Dan Bernstein.

Source/WebKit2:

Add a new API to WKWebViewConfiguration to allow fine-grained control over when media is allowed
to play without a user gesture, and simultaneously deprecate the existing, all-or-nothing API,
and deprecated the equivalent SPIs.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForVideoPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForVideoPlayback:]):
(-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]):
(-[WKWebViewConfiguration requiresUserActionForMediaPlayback]):
(-[WKWebViewConfiguration setRequiresUserActionForMediaPlayback:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Tools:

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(TEST_F):

11:09 AM Changeset in webkit [200950] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSessionProxy.js gets injected more than once sometimes
https://bugs.webkit.org/show_bug.cgi?id=157716
<rdar://problem/26287306>

Reviewed by Timothy Hatcher.

Whenever a script was injected into a non-normal world by a WebKit client,
the WebProcess's WebAutomationSessionProxy singleton would get a
notification that the window was cleared from the relevant frame.
This notification happens when creating the world's window shell for
the first time.

This code should ignore such notifications that originate from non-main world
contexts. Web Inspector's instrumentation already ignored this, but
the automation session notification comes in via a different WebKit2 layer.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):

11:04 AM Changeset in webkit [200949] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid _updateVisibleRows dominates profiles of timeline recordings when data grid (Overview or TimelineDataGrids) is showing
https://bugs.webkit.org/show_bug.cgi?id=157664
rdar://problem/26262219

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid): Added new members.
(WebInspector.DataGrid.prototype.layout): Reset _cachedScrollTop and _cachedScrollHeight on resize.
(WebInspector.DataGrid.prototype._noteScrollPositionChanged): Added.
(WebInspector.DataGrid.prototype._updateVisibleRows): Cache sizes and positions when possible.
(WebInspector.DataGridNode.prototype.set hidden): Added call to _noteRowsChanged.
(WebInspector.DataGridNode.prototype.collapse): Call _noteRowsChanged instead of needsLayout.
(WebInspector.DataGridNode.prototype.expand): Call _noteRowsChanged instead of needsLayout.
(WebInspector.DataGrid.prototype._updateFilter): Removed direct call to _updateVisibleRows, this is
better handled by DataGridNode's hidden setter.

10:47 AM Changeset in webkit [200948] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/JavaScriptCore

Merged r200666. rdar://problem/26279421

10:41 AM Changeset in webkit [200947] by timothy@apple.com
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Many DataGrid instances do not save/restore their scroll position
https://bugs.webkit.org/show_bug.cgi?id=157709
rdar://problem/26286090

Reviewed by Brian Burg.

  • UserInterface/Models/BackForwardEntry.js:

(WebInspector.BackForwardEntry.prototype.makeCopy): Added.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView): Copy the last entry for the view.

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/HeapSnapshotContentView.js:

(WebInspector.HeapSnapshotContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/MemoryTimelineView.js:

(WebInspector.MemoryTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype.get scrollableElements): Added.
(WebInspector.ProfileView.prototype._repopulateDataGridFromTree): Removed unused skipRefresh argument.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get scrollableElements): Added.

10:40 AM Changeset in webkit [200946] by msaboff@apple.com
  • 5 edits in trunk

RegExp /y flag incorrect handling of mixed-length alternation
https://bugs.webkit.org/show_bug.cgi?id=157723

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Previously for sticky patterns, we were bailing out and exiting when backtracking
alternatives with dissimilar match lengths. Deleted that code. Instead, for
sticky patterns we need to process the backtracking except for advancing to the
next input index.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::backtrack):

LayoutTests:

Added tests for alternatives with shorter to longer lengths.

  • js/regexp-sticky-expected.txt:
  • js/script-tests/regexp-sticky.js:
10:35 AM Changeset in webkit [200945] by Brent Fulgham
  • 21 edits
    21 adds in trunk

REGRESSION (r192098): Content missing after copy and paste to Notes App on retina displays
https://bugs.webkit.org/show_bug.cgi?id=157630
<rdar://problem/25277577>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by http/tests/images/hidpi-srcset-copy.html

The code to create a WebArchive (or other representation) of a webpage was using the 'src' attribute of
the image element, which might be changed to reflect the optimal image dimensions for a specific
display. Instead, we should use the 'imageSourceURL' method of the Element class so we get the correct
'original' image URL in our cached resources.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_processElement): Use 'imageSourceURL', rather than getting the raw 'src' attribute.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.

Tools:

Update test infrastructure to support checking the number of images in the pasteboard.

  • DumpRenderTree/TestRunner.cpp:

(imageCountInGeneralPasteboardCallback): Added.
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::imageCountInGeneralPasteboard): Added.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::imageCountInGeneralPasteboard): Added stub method.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::imageCountInGeneralPasteboard): Added.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::imageCountInGeneralPasteboard): Added.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::imageCountInGeneralPasteboard): Added stub implementation.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): Handle copy message.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::imageCountInGeneralPasteboard): Added.

LayoutTests:

  • http/tests/images/hidpi-srcset-copy-expected.txt: Added.
  • http/tests/images/hidpi-srcset-copy.html: Added.
  • http/tests/resources/img-srcset: Added.
  • http/tests/resources/img-srcset/image1-620x442.jpg: Added.
  • http/tests/resources/img-srcset/image2-1024x731.jpg: Added.
  • http/tests/resources/img-srcset/image2-1400x1000.jpg: Added.
  • http/tests/resources/img-srcset/image2-300x214.jpg: Added.
  • http/tests/resources/img-srcset/image2-620x442.jpg: Added.
  • http/tests/resources/img-srcset/image2-840x600.jpg: Added.
  • http/tests/resources/img-srcset/image3-250x178.jpg: Added.
  • http/tests/resources/img-srcset/image3-615x438.jpg: Added.
  • http/tests/resources/img-srcset/image3-620x440.jpg: Added.
  • http/tests/resources/img-srcset/image3-700x498.jpg: Added.
  • http/tests/resources/img-srcset/image3-840x598.jpg: Added.
  • http/tests/resources/img-srcset/image3.jpg: Added.
  • http/tests/resources/img-srcset/image4-1024x612.jpg: Added.
  • http/tests/resources/img-srcset/image4-300x179.jpg: Added.
  • http/tests/resources/img-srcset/image4-620x370.jpg: Added.
  • http/tests/resources/img-srcset/image4-768x459.jpg: Added.
  • http/tests/resources/img-srcset/image4-840x502.jpg: Added.
  • http/tests/resources/img-srcset/image4-940x560.jpg: Added.
  • platform/efl/TestExpectations: No pasteboard implementation. Skip.
  • platform/gtk/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
10:22 AM Changeset in webkit [200944] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Random CachedFont.cpp cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157740

Reviewed by Myles C. Maxfield.

No new tests (Refactor/cleanup, no behavior change)

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData): Remove unneeded local RefPtr<>
(WebCore::CachedFont::createCustomFontData): Refactor to not require unnecessary Ref-churn in the common case.

9:37 AM Changeset in webkit [200943] by Chris Dumez
  • 26 edits in trunk/Source/WebCore

Modernize Track classes' code
https://bugs.webkit.org/show_bug.cgi?id=157735

Reviewed by Eric Carlson.

Modernize Track classes' code a bit.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::removeSourceBuffer):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

  • bindings/js/JSTrackCustom.cpp:

(WebCore::toTrack):
(WebCore::toJS):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::audioTrackEnabledChanged):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::videoTrackSelectedChanged):
(WebCore::HTMLMediaElement::textTrackRemoveCues):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::addVideoTrack):
(WebCore::HTMLMediaElement::removeAudioTrack):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::removeVideoTrack):
(WebCore::HTMLMediaElement::forgetResourceSpecificTracks):
(WebCore::HTMLMediaElement::audioTracks):
(WebCore::HTMLMediaElement::textTracks):
(WebCore::HTMLMediaElement::videoTracks):
(WebCore::HTMLMediaElement::didAddTextTrack):
(WebCore::HTMLMediaElement::didRemoveTextTrack):
(WebCore::HTMLMediaElement::setSelectedTextTrack):
(WebCore::HTMLMediaElement::textTrackAddCues): Deleted.
(WebCore::HTMLMediaElement::closeCaptionTracksChanged): Deleted.

  • html/HTMLMediaElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::~AudioTrack):
(WebCore::AudioTrack::setPrivate):
(WebCore::AudioTrack::isValidKind):
(WebCore::AudioTrack::willRemove):
(WebCore::AudioTrack::setEnabled): Deleted.
(WebCore::AudioTrack::updateKindFromPrivate): Deleted.

  • html/track/AudioTrack.h:

(isType):

  • html/track/AudioTrackList.cpp:

(AudioTrackList::append):
(AudioTrackList::item):
(AudioTrackList::getTrackById):
(AudioTrackList::eventTargetInterface): Deleted.

  • html/track/AudioTrackList.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::willRemove):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::setKind):
(WebCore::TextTrack::trackIndex):
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks):
(WebCore::TextTrack::setLanguage):

  • html/track/TextTrack.h:

(isType):

  • html/track/TextTrackList.cpp:

(TextTrackList::getTrackIndex):
(TextTrackList::getTrackIndexRelativeToRenderedTracks):
(TextTrackList::item):
(TextTrackList::getTrackById):
(TextTrackList::invalidateTrackIndexesAfterTrack):
(TextTrackList::append):
(TextTrackList::remove):
(TextTrackList::contains):

  • html/track/TextTrackList.h:
  • html/track/TrackBase.h:
  • html/track/TrackEvent.cpp:

(WebCore::TrackEvent::TrackEvent):

  • html/track/TrackEvent.h:
  • html/track/TrackListBase.cpp:

(TrackListBase::remove):
(TrackListBase::contains):
(TrackListBase::scheduleTrackEvent):
(TrackListBase::scheduleAddTrackEvent):
(TrackListBase::scheduleRemoveTrackEvent):

  • html/track/TrackListBase.h:
  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::willRemove):
(WebCore::VideoTrack::setKind):
(WebCore::VideoTrack::setLanguage):

  • html/track/VideoTrack.h:

(isType):

  • html/track/VideoTrackList.cpp:

(VideoTrackList::append):
(VideoTrackList::item):
(VideoTrackList::getTrackById):
(VideoTrackList::selectedIndex):

  • html/track/VideoTrackList.h:
9:04 AM WebKitGTK/2.12.x edited by Michael Catanzaro
Badly propose a couple merges (diff)
7:50 AM Changeset in webkit [200942] by jdiggs@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening

Re-mark a failing test as failing. Update the expectations file so
that it fails rather than passes unexpectedly.

  • accessibility/gtk/title-and-alt-expected.txt:
  • platform/gtk/TestExpectations:
7:40 AM Changeset in webkit [200941] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

CSSParser.cpp triggers -Wunused-parameter
https://bugs.webkit.org/show_bug.cgi?id=157734

Reviewed by Csaba Osztrogonác.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

3:28 AM Changeset in webkit [200940] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] GraphicsContext3D::ImageExtractor should use the correct size for copying non-image surfaces
https://bugs.webkit.org/show_bug.cgi?id=157580

Reviewed by Darin Adler.

GraphicsContext3D::ImageExtractor::extractImage() shouldn't use m_imageWidth
and m_imageHeight members when copying the non-image-backed Cairo surface into
the image-based replacement simply because these two are not initialized until
later in this method.

Instead, the size of the to-be-copied image should be queried via the
cairoSurfaceSize() utility function which properly handles Cairo surfaces of
different types.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

1:05 AM Changeset in webkit [200939] by commit-queue@webkit.org
  • 10 edits
    1 move
    3 adds in trunk

REGRESSION (r199821): Large animated GIFs with slow network do not animate till the last frame
https://bugs.webkit.org/show_bug.cgi?id=157500
Source/WebCore:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-05-16
Reviewed by Darin Adler.

r199821 relies on the assumption that the image frameCount can be retrieved
only once when the image size is available and it is not going to change. It
turned out this assumption is wrong for some animated GIFs. The frameCount
can change every time a new data block is decoded.

The fix is to invalidate the image cached metadata every time a new data
block is decoded.

Test: http/tests/misc/slow-loading-animated-image.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage): Move the "fromImage" BitmapImage constructor
to BitmapImage.cpp. The ImageSource needs to be initialized differently for
this case from the decoder image case. Also get rid of the template constructor.
Most of the flags of the BitmapImage will be deleted with the asynchronous image
decoding work.

(WebCore::BitmapImage::cacheFrame): Delete unused flag m_hasUniformFrameSize.
It was added in r35761 and was mainly used by BitmapImage::currentFrameSize().
But this function itself was deleted in r172348.

(WebCore::BitmapImage::dataChanged): Invalidate the image metadata cache.

  • platform/graphics/BitmapImage.h:

(WebCore::BitmapImage::BitmapImage): Deleted.
Delete unused flag m_hasUniformFrameSize. Also define new static functions in
FrameData to calculate platform dependent properties of an image.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource): Add a new constructor for the "fromImage"
BitmapImage case. The purpose of this constructor is to keep m_needsUpdateMetadata
and m_maximumSubsamplingLevel be initialized as they are in the class definition.
This constructor will be used with the asynchronous image decoding work where the
ImageSource needs to cache the FrameData.

(WebCore::ImageSource::updateMetadata): If needsUpdateMetaData() is true, cache new metadata.

(WebCore::ImageSource::subsamplingLevelForScale): Call updateMetadata() with its new name.
(WebCore::ImageSource::frameCount): Ditto
(WebCore::ImageSource::cacheMetadata): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::setNeedsUpdateMetadata): Invalidate the image cached metadata.

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::NativeImage::size):
(WebCore::NativeImage::hasAlpha):
(WebCore::BitmapImage::BitmapImage): Deleted.
Delete the "fromImage" BitmapImage constructor from this file since it is now platform
independent and has been moved to BitmapImage.cpp. Also add the new NativeImage platform
dependent functions which are used by the new "fromImage" BitmapImage constructor.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::NativeImage::size):
(WebCore::NativeImage::hasAlpha):
(WebCore::BitmapImage::BitmapImage): Deleted.
Ditto.

LayoutTests:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-05-16
Reviewed by Darin Adler.

Ensure the large animated gif will get the correct frameCount even if it
is loaded through a slow network.

  • http/tests/misc/resources/large-animated.gif: Added.

This is a large animated GIF with 48 frames. The frameCount keeps changing
every time a new data block is decoded. Each frame except the last one lasts
for 20 ms. The last one lasts for 10 seconds which is similar to setting no-
loop to true. I created all the images myself. All the images except the last
one are rectangles filled with gradient color so their sizes can be large and
get the bug to repro.

  • http/tests/misc/resources/slow-image-load.pl: Added.
  • http/tests/misc/resources/slow-png-load.pl: Removed.

I wanted to use the slow-png-load.pl but only changing the image mimetype.
So I changed its name and I added a new query paramater called 'mimetype'.

  • http/tests/misc/slow-loading-animated-image-expected.html: Added.
  • http/tests/misc/slow-loading-animated-image.html: Added.

This test loads the animated image in 1 second. It waits for another 1 second
to ensure that all the frames are displayed. All we need is to capture the
last frame which is distinctly filled with solid green color.

  • http/tests/misc/slow-loading-image-in-pattern.html:
  • http/tests/misc/slow-loading-mask.html:

Use slow-image-load.pl and pass the image mime type.

12:03 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
Note: See TracTimeline for information about the timeline view.