Timeline



Apr 30, 2015:

10:57 PM Changeset in webkit [183668] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Console message repeat count overlapped by icon
https://bugs.webkit.org/show_bug.cgi?id=144344

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message .repeat-count):

10:01 PM Changeset in webkit [183667] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Compile fix when using content extensions debugging code.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::printTransitions):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/DFANode.h:
  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::debugPrintDot):

9:24 PM Changeset in webkit [183666] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the build for <rdar://problem/20758514>

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::destroyMix): Don’t pass nil to
-[AVMutableAudioMix setInputParameters:].

8:42 PM Changeset in webkit [183665] by Joseph Pecoraro
  • 8 edits in trunk/LayoutTests

Unreviewed gardening. Update results of inspector tests.

  • inspector-protocol/debugger/breakpoint-eval-with-exception-expected.txt:
  • inspector-protocol/debugger/regress-133182-expected.txt:
  • inspector-protocol/debugger/regress-133182.html:
  • inspector-protocol/debugger/setBreakpoint-actions-expected.txt:
  • inspector-protocol/debugger/terminate-dedicated-worker-while-paused-expected.txt:
  • inspector-protocol/page/deny-X-FrameOption-expected.txt:
  • inspector/debugger/search-scripts-expected.txt:
8:42 PM Changeset in webkit [183664] by Joseph Pecoraro
  • 6 edits
    1 delete in trunk/LayoutTests

Unreviewed gardening. Remove skipped and broken inspector test.

This is the last test relying on the old model interface.

(InspectorTest.initializeInspectorModels.console.error.window.onerror): Deleted.
(InspectorTest.initializeInspectorModels.console.assert): Deleted.
(InspectorTest.initializeInspectorModels): Deleted.

  • inspector-protocol/indexeddb/basics-expected.txt: Removed.
  • inspector-protocol/indexeddb/basics.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
7:40 PM Changeset in webkit [183663] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up: Remove unnecessary runtime computation of string length
https://bugs.webkit.org/show_bug.cgi?id=144483

Reviewed by Joseph Pecoraro.

Following <http://trac.webkit.org/changeset/183649>, WebCore::fullyQualifiedInfoTableName()
computes strlen() of the first string literal as part of concatenating two string literals.
It is sufficient to use sizeof() - 1 instead of strlen() to compute the length of the first
string literal because the size of the string literal is known at compile time.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName):

6:56 PM Changeset in webkit [183662] by dino@apple.com
  • 17 edits
    1 copy
    1 add in trunk

Expose -apple-system as a font family
https://bugs.webkit.org/show_bug.cgi?id=144484
<rdar://problem/20767330>

Reviewed by Tim Horton.

Source/WebCore:

Accept "-apple-system" for the font-family property, and
rename "-apple-system-font-monospaced-numbers" to
"-apple-system-monospaced-numbers".

Also change the media controls to use the new name.

Covered by existing tests and this new one:

fast/text/system-font-legacy-name.html

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-time-remaining-display):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls):
(audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-status-display):

  • platform/graphics/ios/FontCacheIOS.mm: Add support for the new name.

(WebCore::createCTFontWithFamilyNameAndWeight):

  • platform/graphics/mac/FontCacheMac.mm: Ditto.

(WebCore::fontWithFamily):

LayoutTests:

Change a bunch of tests to use "-apple-system" instead
of "-apple-system-font" for font-family.

Add a test to make sure the old name still works.

  • fast/text/system-font-legacy-name.html
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html:
  • platform/ios-simulator/ios/fast/text/apple-logo-expected.txt:
  • platform/ios-simulator/ios/fast/text/apple-logo.html:
  • platform/ios-simulator/ios/fast/text/opticalFont-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFont.html:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight.html:
  • platform/ios-simulator/ios/fast/text/underline-scaling-expected.txt:
  • platform/ios-simulator/ios/fast/text/underline-scaling.html:
  • platform/mac/fast/text/systemFont-expected.txt:
  • platform/mac/fast/text/systemFont.html:
6:38 PM Changeset in webkit [183661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Decrease minimum Vector size.
https://bugs.webkit.org/show_bug.cgi?id=144453

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-30
Reviewed by Andreas Kling.

  • wtf/Vector.h:

Make the default min size 4 to save memory on small Vectors.

6:14 PM Changeset in webkit [183660] by jfernandez@igalia.com
  • 5 edits
    2 adds in trunk

[CSS Grid Layout] overflow-position keyword for align and justify properties.
https://bugs.webkit.org/show_bug.cgi?id=144235

Reviewed by Sergio Villar Senin.

Source/WebCore:

When the alignment subject is larger than the alignment container,
it will overflow. Some alignment modes, if honored in this
situation, may cause data loss; an overflow alignment mode can be
explicitly specified to avoid this.

This patch implements overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

Test: fast/css-grid-layout/grid-align-justify-overflow.html

  • rendering/RenderGrid.cpp:

(WebCore::computeOverflowAlignmentOffset):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::resolveAlignmentData):
(WebCore::resolveJustificationData):
(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveAlignmentOverflow):
(WebCore::RenderStyle::resolveJustification):
(WebCore::RenderStyle::resolveJustificationOverflow):

  • rendering/style/RenderStyle.h:

LayoutTests:

Implementation of overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

  • fast/css-grid-layout/grid-align-justify-overflow-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-overflow.html: Added.
6:10 PM Changeset in webkit [183659] by Jon Davis
  • 18 edits
    3 adds in trunk

Web Inspector: console should show an icon for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=18530

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageLevelValue):

  • inspector/protocol/Console.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsolePrototype.cpp:

(JSC::ConsolePrototype::finishCreation):
(JSC::consoleProtoFuncInfo):

  • runtime/ConsoleTypes.h:

Source/WebInspectorUI:

Added icons for console.log, console.info and console.debug messages.

Separated console.info from console.log.

  • UserInterface/Images/Debug.svg: Added.
  • UserInterface/Images/Info.svg: Added.
  • UserInterface/Images/Log.svg: Added.

New icon files.

  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Views/ConsoleMessageView.css:

(.console-log-level::before):
(.console-info-level::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level)::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
Include console.info messages in layout adjustments.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageLevel):

  • WebView/WebUIDelegatePrivate.h:

LayoutTests:

  • inspector/console/console-api-expected.txt:
6:04 PM Changeset in webkit [183658] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove long-deprecated unused WKView minimumLayoutWidth properties
https://bugs.webkit.org/show_bug.cgi?id=144480

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView minimumLayoutWidth]): Deleted.
(-[WKView setMinimumLayoutWidth:]): Deleted.
(-[WKView minimumWidthForAutoLayout]): Deleted.
(-[WKView setMinimumWidthForAutoLayout:]): Deleted.
These were replaced with minimumSizeForAutoLayout long ago.

5:34 PM Changeset in webkit [183657] by jhoneycutt@apple.com
  • 9 edits in trunk/Source/WebCore

Rebaseline bindings tests results after r183648.

Unreviewed.

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):

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

(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):

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

(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

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

(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):

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

(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):

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

(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):

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

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):

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

(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

5:06 PM Changeset in webkit [183656] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Move all of the branchIs<type> helpers from SpeculativeJIT into AssemblyHelpers
https://bugs.webkit.org/show_bug.cgi?id=144462

Reviewed by Geoffrey Garen and Mark Lam.

At some point we started adding representation-agnostic helpers for doing common type tests.
We added some in SpeculativeJIT, and then some in AssemblyHelpers. Prior to this change,
they had overlapping powers, though SpeculativeJIT was a bit better.

This removes SpeculativeJIT's helpers and strengthens AssemblyHelpers' helpers. This is
better because now all of these helpers can be used in all of the assembly-based JITs, not
just the DFG. It also settles on what I find to be a slightly better naming convention.
For example where we previously would have said branchIsString, now we say
branchIfString. Similarly, branchNotString becomes branchIfNotString.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::speculateNotCell):
(JSC::DFG::SpeculativeJIT::speculateOther):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsString): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotString): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::writeBarrier):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfCell):
(JSC::AssemblyHelpers::branchIfOther):
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfObject):
(JSC::AssemblyHelpers::branchIfNotObject):
(JSC::AssemblyHelpers::branchIfType):
(JSC::AssemblyHelpers::branchIfNotType):
(JSC::AssemblyHelpers::branchIfString):
(JSC::AssemblyHelpers::branchIfNotString):
(JSC::AssemblyHelpers::branchIfSymbol):
(JSC::AssemblyHelpers::branchIfNotSymbol):
(JSC::AssemblyHelpers::branchIfFunction):
(JSC::AssemblyHelpers::branchIfNotFunction):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIsEmpty): Deleted.
(JSC::AssemblyHelpers::branchIfCellNotObject): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

4:44 PM Changeset in webkit [183655] by Simon Fraser
  • 11 edits in trunk/Source

Fixed elements end up in the middle of the view with pageScale < 1
https://bugs.webkit.org/show_bug.cgi?id=144428
rdar://problem/20404982

Reviewed by Tim Horton.

Source/WebCore:

When pageScale is < 1, we used fixed layout mode, and FrameView::fixedElementsLayoutRelativeToFrame()
returns true. However, the scrolling thread was calling the static scrollOffsetForFixedPosition()
hardcoding 'false' for this parameter.

Fix by sending the value of fixedElementsLayoutRelativeToFrame over to the scrolling thread,
so we can use it when doing scrolling-thread fixed position stuff.

Not testable.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setFixedElementsLayoutRelativeToFrame):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
(WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

(WebCore::ScrollingTreeFrameScrollingNode::fixedElementsLayoutRelativeToFrame):
(WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):

Source/WebKit2:

Encode/decode fixedElementsLayoutRelativeToFrame.

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

4:35 PM Changeset in webkit [183654] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove invalid assertion from MouseEvent::create()
https://bugs.webkit.org/show_bug.cgi?id=144477

Reviewed by Tim Horton.

mouseforcechanged events and mouseforcewillbegin trigger this assertion. The
assertion does not seem valuable, so rather than changing it, just remove it.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):

4:26 PM Changeset in webkit [183653] by dino@apple.com
  • 3 edits
    2 adds in trunk

-apple-system-font-monospaced-numbers doesn't work on iOS
https://bugs.webkit.org/show_bug.cgi?id=144478
<rdar://problem/20544940>

Reviewed by Brent Fulgham.

Source/WebCore:

Make sure to start from the system font descriptor when
asking for a monospaced numeric alternate.

Test: platform/ios-simulator/fast/text/system-monospaced-numbers.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::createCTFontWithFamilyNameAndWeight):

LayoutTests:

A test that draws two lines of different numbers and checks
they are the same width.

  • platform/ios-simulator/fast/text/system-monospaced-numbers-expected.txt: Added.
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html: Added.
4:16 PM Changeset in webkit [183652] by Joseph Pecoraro
  • 4 edits in trunk/LayoutTests

Unreviewed, ios-simulator gardening

  • Address linter warnings.
  • Unskip some tests that pass.
  • More generically skip unsupported iOS features.
  • Address FIXMEs.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
4:13 PM Changeset in webkit [183651] by Brent Fulgham
  • 7 edits in trunk/Tools

Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Reviewed by Dean Jackson.

Add a new flag (--show-webview) that causes DumpRenderTree and WebKitTestRunner to display
their WebViews on-screen. This can be used when running tests via the "--additional-drt-flag"
option:

--additional-drt-flag="--show-webview"

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow): Use an on-screen window rect if the user passed the
'--show-webview' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the "--show-webview" option.

  • WebKitTestRunner/Options.cpp:

(WTR::Options::Options):
(WTR::handleOptionShowWebView):
(WTR::OptionsHandler::OptionsHandler): Recognize the new "--show-webview" option.

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::TestController):
(WTR::TestController::initialize): Use value of 'shouldShowWebView' from the Options bundle.

  • WebKitTestRunner/TestController.h:

(WTR::TestController::shouldShowWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView): Retrieve the value of the 'ShouldShowWebView' key from the
options dictionary. If it is true, display the web view while running the test.

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

js/regress/is-string-fold-tricky.html and js/regress/is-string-fold.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=144463

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Fixup phase was super cleverly folding an IsString(@x) when @x is predicted SpecString
into a Check(String:@x) followed by JSConstant(true). Then in these tests the
ValueAdd(IsString(@x), @stuff) would try to turn this into an integer add by cleverly
converting the boolean into an integer. But as part of doing that, it would try to
short-circuit any profiling by leveraging the fact that the IsString is now a constant,
and it would try to figure out if the addition might overflow. Part of that logic
involved checking if the immediate is either a boolean or a sufficiently small integer.
But: it would check if it's a sufficiently small integer before checking if it was a
boolean, so it would try to call asNumber() on the boolean.

All of this cleverness was very deliberate, but apparently the @stuff + booleanConstant
case was previously never hit until I wrote these tests, and so we never knew that
calling asNumber() on a boolean was wrong.

The fix is super simple: the expression should just check for boolean first.

This bug was benign in release builds. JSValue::asNumber() on a boolean would return
garbage, and that's OK, since we'd take the boolean case anyway.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addImmediateShouldSpeculateInt32):

LayoutTests:

Unskip now that the bug is fixed.

  • TestExpectations:
  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
3:57 PM Changeset in webkit [183649] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r183646 for less enlightened platforms.

Unreviewed.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName): Windows doesn’t have stpcpy :(

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

DOM bindings should not be using a reference type to point to a temporary object
https://bugs.webkit.org/show_bug.cgi?id=144474

Reviewed by Beth Dakin.

The DOM bindings will currently try and use a local reference to point
to a temporary object. This currently works as a by product of the compiler's
stack layout. This patch removes the dependency on undefined behaviour
by ensuring that we use a value rather than reference type.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GetNativeTypeForCallbacks):

3:16 PM Changeset in webkit [183647] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Asynchronous (or timed-out synchronous) resize flashes white instead of page background color
https://bugs.webkit.org/show_bug.cgi?id=144468

Reviewed by Simon Fraser and Dan Bernstein.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _viewBackgroundColor]):
(-[WKView updateLayer]):
Use the pageExtendedBackgroundColor for the background color of the WKView,
if we have one (and aren't using a transparent background). This means
during asynchronous resize or other cases where the Web process isn't keeping
up with the UI process during a resize, we'll see background color instead of white.

3:15 PM Changeset in webkit [183646] by beidson@apple.com
  • 5 edits
    3 adds in trunk

Javascript using WebSQL can create their own WebKit info table.
<rdar://problem/20688792> and https://bugs.webkit.org/show_bug.cgi?id=144466

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/websql/alter-to-info-table.html

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::databaseInfoTableName): Return the info table name.
(WebCore::fullyQualifiedInfoTableName): Append "main." to the info table name.
(WebCore::DatabaseBackendBase::DatabaseBackendBase): Use the fully qualified name.
(WebCore::DatabaseBackendBase::performOpenAndVerify): Ditto.
(WebCore::DatabaseBackendBase::getVersionFromDatabase): Ditto.
(WebCore::DatabaseBackendBase::setVersionInDatabase): Ditto.

LayoutTests:

  • storage/websql/alter-to-info-table-expected.txt: Added.
  • storage/websql/alter-to-info-table.html: Added.
  • storage/websql/alter-to-info-table.js: Added.
3:00 PM Changeset in webkit [183645] by Beth Dakin
  • 4 edits in trunk/Source

Should choose UIScrollView indicatorStyle based on the document background color
https://bugs.webkit.org/show_bug.cgi?id=144473
-and corresponding-
rdar://problem/19897699

Reviewed by Simon Fraser.

Source/WebCore:

Export this function.

  • platform/graphics/Color.h:

Source/WebKit2:

Update the indicator style whenever the background color changes.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateScrollViewBackground]):

2:26 PM Changeset in webkit [183644] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unskip isolated words tests on WebKitGTK+

  • platform/gtk/TestExpectations: Unskip tests. We've been able to run these

since the switch to WebKitTestRunner.

1:55 PM Changeset in webkit [183643] by fpizlo@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing in RJST as well.

  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
1:03 PM Changeset in webkit [183642] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Scope Chain sidebar should be selected immediately when paused
https://bugs.webkit.org/show_bug.cgi?id=144352

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.showDebuggerTab): Added showScopeChainDetailsSidebarPanel argument.
(WebInspector._debuggerDidPause): Pass true for showScopeChainDetailsSidebarPanel.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView): Wire the event to showDetailsSidebarPanels instead of
_contentBrowserRepresentedObjectsDidChange, allowing subclasses to do work during the event.
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels): Moved content of
_contentBrowserRepresentedObjectsDidChange here.
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange): Deleted.

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels): Added. Show the scope sidebar panel
if it is available and it was requested by showScopeChainDetailsSidebarPanel().
(WebInspector.DebuggerTabContentView.prototype.showScopeChainDetailsSidebarPanel): Added.

1:01 PM Changeset in webkit [183641] by ap@apple.com
  • 3 edits in trunk/Tools

r183355 didn't trigger Mac tests
https://bugs.webkit.org/show_bug.cgi?id=144464

Reviewed by Simon Fraser.

Update badly neglected filters and unit tests.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

12:51 PM Changeset in webkit [183640] by Martin Robinson
  • 5 edits
    2 adds in trunk/LayoutTests

Rebaseline some editing tests for WebKitGTK+

Also add some missing baselines.

  • fast/hidpi/broken-image-icon-very-hidpi-expected.png: Added.
  • fast/hidpi/broken-image-icon-very-hidpi-expected.txt: Added.
  • platform/gtk/editing/execCommand/5142012-1-expected.png:
  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
12:04 PM Changeset in webkit [183639] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Allow WebKit to build without ANGLE support
https://bugs.webkit.org/show_bug.cgi?id=144459
<rdar://problem/20707307>

Reviewed by Dean Jackson.

  • platform/graphics/GLContext.cpp: Use the ENABLE(GRAPHICS_CONTEXT_3D)

macro to avoid compiling this code if not using WEBGL/3D contexts.

11:54 AM Changeset in webkit [183638] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing.

11:50 AM Changeset in webkit [183637] by jhoneycutt@apple.com
  • 2 edits in trunk/LayoutTests

Add image failure expectation for
svg/filters/sourceAlpha-input-filter-effect.html on Windows

Unreviewed.

  • platform/win/TestExpectations:
11:36 AM Changeset in webkit [183636] by hyatt@apple.com
  • 7 edits in trunk/Source/WebCore

Avoid containingBlock() calls when no writing mode flipping is needed.
https://bugs.webkit.org/show_bug.cgi?id=144407

Reviewed by Simon Fraser.

Add a bool to RenderView that indicates whether or not any flipped blocks have been
added to the view. Once tainted, the view just stays dirty forever. If no flipped
blocks are ever seen, we can then optimize away calls to containingBlock().

The motivation for this patch is to improve layer position updating, which makes many
calls to topLeftLocationOffset(), one of the functions that can be optimized by this
change.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::updateFromStyle):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::rangeIntersectsRect):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:
11:21 AM Changeset in webkit [183635] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] tapping in the middle of a word in editable content should not select the word.
https://bugs.webkit.org/show_bug.cgi?id=144421
rdar://problem/20710948

Reviewed by Tim Horton.

Reverting to the original behavior.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

11:20 AM Changeset in webkit [183634] by calvaris@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

  • gtk/install-dependencies: Added libhyphen-dev to the WebKitGTK+

build dependencies.

11:00 AM Changeset in webkit [183633] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: New Images for ObjectTreeView - Setter
https://bugs.webkit.org/show_bug.cgi?id=143173

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/Pencil.svg: Added.
10:50 AM Changeset in webkit [183632] by Martin Robinson
  • 2 edits in trunk/Tools

[GTK] Testing dictionaries are not installed automatically
https://bugs.webkit.org/show_bug.cgi?id=144460

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules: Add the testing dictionaries to the main moduleset.
10:44 AM Changeset in webkit [183631] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME comment referencing https://bugs.webkit.org/show_bug.cgi?id=144458.

  • jit/JITOperations.cpp:
10:40 AM Changeset in webkit [183630] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a comment clarifying the behavior and semantics of getCallData/getConstructData, in
particular that they cannot change their minds and may be called from compiler threads.

Rubber stamped by Geoffrey Garen.

  • runtime/JSCell.h:
10:36 AM Changeset in webkit [183629] by fpizlo@apple.com
  • 3 edits
    59 adds in trunk

DFG Is<Blah> versions of TypeOf should fold based on proven input type
https://bugs.webkit.org/show_bug.cgi?id=144409

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


We were missing some obvious folding opportunities here. I don't know how this affects real
code, but in general, we like to ensure that our constant folding is comprehensive. So this
is more about placating my static analysis OCD than anything else.

I added a bunch of speed/correctness tests for this in LayoutTests/js/regress.

  • dfg/DFGAbstractInterpreterInlines.h:

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

LayoutTests:

  • js/regress/is-boolean-fold-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky.html: Added.
  • js/regress/is-boolean-fold.html: Added.
  • js/regress/is-function-fold-expected.txt: Added.
  • js/regress/is-function-fold-tricky-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function.html: Added.
  • js/regress/is-function-fold-tricky.html: Added.
  • js/regress/is-function-fold.html: Added.
  • js/regress/is-number-fold-expected.txt: Added.
  • js/regress/is-number-fold-tricky-expected.txt: Added.
  • js/regress/is-number-fold-tricky.html: Added.
  • js/regress/is-number-fold.html: Added.
  • js/regress/is-object-or-null-fold-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions.html: Added.
  • js/regress/is-object-or-null-fold-less-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-less-tricky.html: Added.
  • js/regress/is-object-or-null-fold-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-tricky.html: Added.
  • js/regress/is-object-or-null-fold.html: Added.
  • js/regress/is-object-or-null-trickier-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-function.html: Added.
  • js/regress/is-object-or-null-trickier-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-internal-function.html: Added.
  • js/regress/is-object-or-null-tricky-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-function.html: Added.
  • js/regress/is-object-or-null-tricky-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-internal-function.html: Added.
  • js/regress/is-string-fold-expected.txt: Added.
  • js/regress/is-string-fold-tricky-expected.txt: Added.
  • js/regress/is-string-fold-tricky.html: Added.
  • js/regress/is-string-fold.html: Added.
  • js/regress/is-undefined-fold-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky.html: Added.
  • js/regress/is-undefined-fold.html: Added.
  • js/regress/script-tests/is-boolean-fold-tricky.js: Added.
  • js/regress/script-tests/is-boolean-fold.js: Added.
  • js/regress/script-tests/is-function-fold-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-function-fold-tricky.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-function-fold.js: Added.

(value1):

  • js/regress/script-tests/is-number-fold-tricky.js: Added.
  • js/regress/script-tests/is-number-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-functions.js: Added.

(value2):

  • js/regress/script-tests/is-object-or-null-fold-less-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-trickier-function.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-object-or-null-trickier-internal-function.js: Added.
  • js/regress/script-tests/is-object-or-null-tricky-function.js: Added.

(func):

  • js/regress/script-tests/is-object-or-null-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-string-fold-tricky.js: Added.
  • js/regress/script-tests/is-string-fold.js: Added.
  • js/regress/script-tests/is-undefined-fold-tricky.js: Added.
  • js/regress/script-tests/is-undefined-fold.js: Added.
  • js/regress/sink-function-expected.txt: Added.
  • js/regress/sink-function.html: Added.
10:21 AM Changeset in webkit [183628] by Brent Fulgham
  • 27 edits in trunk/LayoutTests

[Mac] Expand test infrastructure to support scrolling tests (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=144131

Reviewed by Eric Carlson.

Update the WK2 scrolling tests to use the new scroll trigger infrastructure to reduce the use of
timeouts.

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • platform/mac-wk2/tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
10:17 AM Changeset in webkit [183627] by Andres Gomez
  • 1 edit
    18 deletes in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144445

Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/BottomUpTree.svg: Removed.
  • UserInterface/Images/gtk/Log.png: Removed.
  • UserInterface/Images/gtk/Log@2x.png: Removed.
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBug.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemFile.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLayers.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLog.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemProbes.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStorage.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemVariable.svg: Removed.
  • UserInterface/Images/gtk/Percent.svg: Removed.
  • UserInterface/Images/gtk/Reload.svg: Removed.
  • UserInterface/Images/gtk/SplitToggleDown.svg: Removed.
  • UserInterface/Images/gtk/Time.svg: Removed.
  • UserInterface/Images/gtk/Weight.svg: Removed.
9:17 AM Changeset in webkit [183626] by Martin Robinson
  • 3 edits in trunk

[CMake] Automatically expose WTF_USE_FOO to the build when USE_FOO is exposed
https://bugs.webkit.org/show_bug.cgi?id=144394

Reviewed by Carlos Garcia Campos.

Automatically expose WTF_USE_FOO when USE_FOO is exposed. A side-effect of this change
is that it fixes the redirected XComposite window for GTK+, which was accidentally
disabled in previous reworking of the CMake configuration.

  • Source/cmake/OptionsGTK.cmake: We no longer need to expose the WTF_ prefixed

version of USE variables.

  • Source/cmake/WebKitFeatures.cmake: Automatically expose WTF_USE_FOO when USE_FOO

is exposed to the build.

2:19 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:09 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:06 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:02 AM EFLWebKit edited by Gyuyoung Kim
(diff)
1:54 AM Changeset in webkit [183625] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy not working in Console
https://bugs.webkit.org/show_bug.cgi?id=144354

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-30
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector._focusedContentView):
Select the inner most content view to check if handleCopyEvent exists.
Previously we were stopping at the top level TabContentView.

1:37 AM Changeset in webkit [183624] by Yusuke Suzuki
  • 9 edits in trunk/Source

Use the default hash value for Symbolized StringImpl
https://bugs.webkit.org/show_bug.cgi?id=144347

Reviewed by Darin Adler.

Source/JavaScriptCore:

Before this patch, symbolized StringImpl* has a special hash value
to avoid the hash collision with the other normal StringImpl*.
I guess that it is introduced when private symbols are introduced.
However, it prevents using symbolized StringImpl* in the other place
For example, using it as WTFString cause a problem because of its special hash value.

When only using private symbols, they are not exposed to the outside of JSC,
so we can handle it carefully. But now, it's extended to symbols.
So I think storing a special hash value in StringImpl* causes an error.

To avoid this, I propose using the usual hash value in symbolized StringImpl*.
And to provide significantly different hash value when using it as symbol,
store the additional hash value in symbolized StringImpl*. It is used when
the hash value is required by IdentifierRepHash.

  • runtime/Identifier.h:

(JSC::IdentifierRepHash::hash):

  • runtime/Lookup.h:

(JSC::HashTable::entry):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::find):
(JSC::PropertyTable::get):

  • runtime/Structure.cpp:

(JSC::PropertyTable::checkConsistency):

Source/WTF:

Use a default hash value calculation for symbolized StringImpl.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createSymbol):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl):
(WTF::StringImpl::symbolAwareHash):
(WTF::StringImpl::existingSymbolAwareHash):
(WTF::StringImpl::hashForSymbol):

  • wtf/text/StringStatics.cpp:

(WTF::StringImpl::nextHashForSymbol):
(WTF::StringImpl::hashAndFlagsForSymbol): Deleted.

12:39 AM Changeset in webkit [183623] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

These should be saying HTTP/1.1 not HTTP/1.0

  • http/tests/cache/resources/iframe304.php:
  • http/tests/cache/resources/iframe304body.php:
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:29 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:25 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:13 AM Changeset in webkit [183622] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK+ version numbers.

  • Source/cmake/OptionsGTK.cmake:
12:08 AM Changeset in webkit [183621] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Fix return code issue, check return code of safari process and dump results to log
https://bugs.webkit.org/show_bug.cgi?id=144436

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-30
Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.dump): Correct typo.
(BenchmarkRunner.wrap): Add results to console.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Check return code to detect Safari crashes.

(OSXSafariDriver.prepareEnv):
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

Apr 29, 2015:

11:43 PM Changeset in webkit [183620] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Should no longer need to worry about very old versions of Xcode
https://bugs.webkit.org/show_bug.cgi?id=144437

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Dan Bernstein.

  • Scripts/check-for-exit-time-destructors:
  • Scripts/check-for-global-initializers:
  • Scripts/check-for-weak-vtables-and-externals:
11:37 PM Changeset in webkit [183619] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] CMake should be failed if openwebrtc package does not exist but ENABLE_MEDIA_STREAM is ON
https://bugs.webkit.org/show_bug.cgi?id=144435

Reviewed by Gyuyoung Kim.

This patch adds REQUIRED option for OpenWebRTC when ENABLE_MEDIA_STREAM is ON.
In addition, this adds DEFAULT_PORT_VALUE for ENABLE_MEDIA_STREAM to match with FeatureList.pm

  • Source/cmake/OptionsEfl.cmake:
11:29 PM Changeset in webkit [183618] by jer.noble@apple.com
  • 6 edits
    1 move
    1 delete in trunk/Source/WebCore

Make GenericTaskQueue even more generic (and usable inside platform/)
https://bugs.webkit.org/show_bug.cgi?id=144414

Reviewed by Eric Carlson.

Templatize GenericTaskQueue so that it can be used from within platform/.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/GenericTaskQueue.cpp: Removed.
  • html/HTMLMediaElement.h:
  • platform/GenericTaskQueue.h: Renamed from Source/WebCore/dom/GenericTaskQueue.h.

(WebCore::TaskDispatcher::TaskDispatcher): Added default templatized class which just calls the parameter's postTask().
(WebCore::TaskDispatcher::postTask): Call context's postTask().
(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Add a timer version which does not require a context.
(WebCore::TaskDispatcher<Timer>::postTask): Set the timer.
(WebCore::TaskDispatcher<Timer>::timerFired): Call the task.
(WebCore::GenericTaskQueue::GenericTaskQueue): Moved from .cpp.
(WebCore::GenericTaskQueue::enqueueTask): Ditto.
(WebCore::GenericTaskQueue::close): Ditto.
(WebCore::GenericTaskQueue::cancelAllTasks): Ditto.
(WebCore::GenericTaskQueue::hasPendingTasks): Ditto.

10:53 PM Changeset in webkit [183617] by Joseph Pecoraro
  • 1 edit
    1 add in trunk/LayoutTests

[Win] Update baselines after r183610.

Unreviewed Gardening.

  • platform/win/fast/css/apple-system-colors-expected.txt: Added.
9:43 PM Changeset in webkit [183616] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix. WebCore has a weak symbol.

WebCore has a weak external symbol in it. A common cause of weak external
symbols is when an inline function is listed in the linker export file.
ERROR: symbol ZNK7WebCore4Page25expectsWheelEventTriggersEv

  • page/Page.cpp:

(WebCore::Page::expectsWheelEventTriggers):

  • page/Page.h:

(WebCore::Page::expectsWheelEventTriggers): Deleted.

9:40 PM Changeset in webkit [183615] by benjamin@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Remove RageConvert array conversion
https://bugs.webkit.org/show_bug.cgi?id=144433

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-29
Reviewed by Filip Pizlo.

RageConvert was causing a subtle bug that was hitting the Kraken crypto tests
pretty hard:
-The indexing types shows that the array access varies between Int32 and DoubleArray.
-ArrayMode::fromObserved() decided to use the most generic type: DoubleArray.

An Arrayify node would convert the Int32 to that type.

-Somewhere, a GetByVal or PutByVal would have the flag NodeBytecodeUsesAsInt. That

node would use RageConvert instead of Convert.

-The Arrayify for that GetByVal with RageConvert would not convert the array to

Contiguous.

-All the following array access that do not have the flag NodeBytecodeUsesAsInt would

now expect a DoubleArray and always get a Contiguous Array. The CheckStructure
fail systematically and we never get to run the later code.

Getting rid of RageConvert fixes the problem and does not seems to have any
negative side effect on other benchmarks.

The improvments on Kraken are:

-stanford-crypto-aes: definitely 1.0915x faster.
-stanford-crypto-pbkdf2: definitely 1.2446x faster.
-stanford-crypto-sha256-iterative: definitely 1.0544x faster.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine):
(JSC::DFG::arrayConversionToString):

  • dfg/DFGArrayMode.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):

  • runtime/JSObject.cpp:

(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::ensureContiguousSlow):
(JSC::JSObject::genericConvertDoubleToContiguous): Deleted.
(JSC::JSObject::rageConvertDoubleToContiguous): Deleted.
(JSC::JSObject::rageEnsureContiguousSlow): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::rageEnsureContiguous): Deleted.

9:15 PM Changeset in webkit [183614] by Simon Fraser
  • 3 edits
    5 adds in trunk

Crash at WebCore::Document::absoluteRegionForEventTargets
https://bugs.webkit.org/show_bug.cgi?id=144426
rdar://problem/20502166

Reviewed by Tim Horton.

Source/WebCore:

When a frame had wheel event handlers, we would register the document itself
as a handler in its parent document. This is problematic, because there's not
code path that removes it when the frame is destroyed.

It turns out we don't need to do this at all; the non-fast scrollable region
already takes handlers in subframes into account.

Tests: fast/events/wheelevent-in-frame.html

fast/events/wheelevent-in-reattached-frame.html

  • dom/Document.cpp:

(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):

LayoutTests:

Test that disconnects a frame with a wheel event handler then GCs, and one that
disconnects are reconnects. In both case, the parent document should have zero
wheel event handlers registered on it.

  • fast/events/wheelevent-in-frame-expected.txt: Added.
  • fast/events/wheelevent-in-frame.html: Added.
  • fast/events/wheelevent-in-reattached-frame-expected.txt: Added.
  • fast/events/wheelevent-in-reattached-frame.html: Added.
8:40 PM Changeset in webkit [183613] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Not all videos should automatically play to playback target
https://bugs.webkit.org/show_bug.cgi?id=144430
<rdar://problem/20718523>

Reviewed by Darin Adler.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::clientStateDidChange): Consider ExternalDeviceAutoPlayCandidate.
Minor cleanup.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set ExternalDeviceAutoPlayCandidate when a <video>
has a file with an audio track that does not loop.

  • page/MediaProducer.h: Add ExternalDeviceAutoPlayCandidate.
8:27 PM Changeset in webkit [183612] by Joseph Pecoraro
  • 5 edits in trunk

LiveNodeList may unexpectedly return an element for empty string
https://bugs.webkit.org/show_bug.cgi?id=144429

Reviewed by Darin Adler.

Source/WebCore:

  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::namedItem):
Never return a result for an empty string.

LayoutTests:

  • fast/dom/named-items-with-empty-name-expected.txt:
  • fast/dom/named-items-with-empty-name.html:
8:21 PM Changeset in webkit [183611] by Gyuyoung Kim
  • 15 edits in trunk/Source/WebCore

Remove PassRefPtr in SVGFEFooElement classes
https://bugs.webkit.org/show_bug.cgi?id=144425

Reviewed by Darin Adler.

As a step to use Ref instead of PassRefPtr, this patch purges PassRefPtr
in SVGFEFooElement.

No new tests, no behavior changes.

  • css/RGBColor.cpp:

(WebCore::RGBColor::create):

  • css/RGBColor.h:
  • platform/graphics/filters/PointLightSource.h:

(WebCore::PointLightSource::create):

  • platform/graphics/filters/SpotLightSource.h:

(WebCore::SpotLightSource::create):

  • svg/SVGColor.cpp:

(WebCore::SVGColor::rgbColor):

  • svg/SVGColor.h:
  • svg/SVGFEDistantLightElement.cpp:

(WebCore::SVGFEDistantLightElement::lightSource):

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::findLightSource):

  • svg/SVGFELightElement.h:
  • svg/SVGFEPointLightElement.cpp:

(WebCore::SVGFEPointLightElement::lightSource):

  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpotLightElement.cpp:

(WebCore::SVGFESpotLightElement::lightSource):

  • svg/SVGFESpotLightElement.h:
8:15 PM Changeset in webkit [183610] by dino@apple.com
  • 10 edits
    7 adds in trunk

Create a named CSS property for system colors
https://bugs.webkit.org/show_bug.cgi?id=144423
<rdar://problem/20491011>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/css/apple-system-colors.html

Expose the following values to CSS color properties:

-apple-system-blue
-apple-system-brown
-apple-system-gray
-apple-system-green
-apple-system-orange
-apple-system-pink
-apple-system-purple
-apple-system-red
-apple-system-yellow

On platforms other than OS X Yosemite and iOS, the
actual color values are undefined and become transparent
black. (In fact, not all are defined on iOS either.)

  • WebCore.xcodeproj/project.pbxproj: Two new SPI header files.
  • css/CSSParser.cpp:

(WebCore::CSSParser::validSystemColorValue): New helper function that
checks if a CSSValueID is between the two system color values. This
was being tested everywhere, which meant adding a new system color was
at risk of being ignored. It's a static method so it can be used
from the SVG CSS parser too.
(WebCore::validPrimitiveValueColor): Use the new helper.
(WebCore::CSSParser::parseValue): Ditto.
(WebCore::CSSParser::parseBackgroundColor): Ditto.
(WebCore::CSSParser::parseShadow): Ditto.
(WebCore::parseDeprecatedGradientColorStop): Ditto.
(WebCore::parseGradientColorOrKeyword): Ditto.

  • css/CSSParser.h: New static helper function.
  • css/CSSValueKeywords.in: Add the new CSS value keywords.
  • css/SVGCSSParser.cpp:

(WebCore::validSystemControlColorValue): SVG has a restricted
set of system colors, so use the helper from CSSParser but with
an extra condition.
(WebCore::CSSParser::parseSVGValue): Use the helper.

  • platform/spi/ios/UIColorSPI.h: Added.
  • platform/spi/cocoa/NSColorSPI.h: Added.
  • rendering/RenderThemeIOS.h: New systemColor override. Also add a cache for system colors.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor): Ask UIColor to provide the color values for the new CSS values.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor): Ditto.

LayoutTests:

Expose the following values to CSS color properties:

-apple-system-blue
-apple-system-brown
-apple-system-gray
-apple-system-green
-apple-system-orange
-apple-system-pink
-apple-system-purple
-apple-system-red
-apple-system-yellow

The new test shows the computed value for each of these colors. It
includes generic results (no special value) and platform results for
Mac (other than Mavericks) and iOS.

  • fast/css/apple-system-colors-expected.txt: Generic results.
  • fast/css/apple-system-colors.html: Added - the new test.
  • platform/mac/fast/css/apple-system-colors-expected.txt: Added OS X results.
  • platform/ios-simulator/fast/css/apple-system-colors-expected.txt: Added iOS results.
  • platform/mac-mavericks/fast/css/apple-system-colors-expected.txt: Generic results for Mavericks.
8:08 PM Changeset in webkit [183609] by commit-queue@webkit.org
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r183600.
https://bugs.webkit.org/show_bug.cgi?id=144432

New tests time out everywhere (Requested by ap on #webkit).

Reverted changeset:

"Crash at WebCore::Document::absoluteRegionForEventTargets"
https://bugs.webkit.org/show_bug.cgi?id=144426
http://trac.webkit.org/changeset/183600

8:05 PM Changeset in webkit [183608] by ap@apple.com
  • 2 edits in trunk/Source/WTF

LazyNeverDestroyed is not thread safe in debug builds, causing assertions
https://bugs.webkit.org/show_bug.cgi?id=144378

Reviewed by Darin Adler.

  • wtf/NeverDestroyed.h:
8:03 PM Changeset in webkit [183607] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

  • fast/frames/flattening/resources/iframe-to-resize.html: Added more logging to the test.
7:46 PM Changeset in webkit [183606] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix. Unused parameter no longer exists.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):

7:44 PM Changeset in webkit [183605] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Fix the EFL build after r183595
https://bugs.webkit.org/show_bug.cgi?id=144427

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-29
Reviewed by Gyuyoung Kim.

updateWheelEventTestTriggersIfNeeded() is guarded by #if ENABLE(CSS_SCROLL_SNAP)
ENABLE(RUBBER_BANDING).
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::updateWheelEventTestTriggersIfNeeded):

7:39 PM Changeset in webkit [183604] by Joseph Pecoraro
  • 5 edits in trunk

REGRESSION(183583): [Mac] make without SDKROOT has issues
https://bugs.webkit.org/show_bug.cgi?id=144431

Reviewed by Dan Bernstein.

.:

  • Source/Makefile:

Assume an empty SDKROOT means an macosx variant, so only
enable settings if the SDKROOT is not empty and does not
contain "macosx".

Tools:

  • Makefile:
  • WebKitTestRunner/Makefile:

Assume an empty SDKROOT means an macosx variant, so only
enable settings if the SDKROOT is not empty and does not
contain "macosx".

7:10 PM Changeset in webkit [183603] by Martin Robinson
  • 2 edits
    16 adds in trunk/LayoutTests

Unskip 3D transformation tests for WebKitGTK+

Unreviewed. This is gardening.

These tests should run reasonably well on the testing bots, now that
they use llvmpipe to run OpenGL.

  • platform/gtk/TestExpectations:
  • platform/gtk/transforms/3d/general/background-visibility-layers-expected.png: Added.
  • platform/gtk/transforms/3d/general/cssmatrix-3d-zoom-expected.png: Added.
  • platform/gtk/transforms/3d/general/matrix-with-zoom-3d-expected.png: Added.
  • platform/gtk/transforms/3d/general/perspective-non-layer-expected.png: Added.
  • platform/gtk/transforms/3d/general/perspective-units-expected.png: Added.
  • platform/gtk/transforms/3d/general/transform-origin-z-change-expected.png: Added.
  • platform/gtk/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
  • platform/gtk/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-2-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png: Added.
6:42 PM Changeset in webkit [183602] by Martin Robinson
  • 2 edits in trunk

Fix the GTK+ build after r183584

  • Source/cmake/OptionsGTK.cmake: Properly use the USE_LIBHYPHEN and HYPHEN_FOUND variables.
6:41 PM Changeset in webkit [183601] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Rebaseline after r183597.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/handlers-in-iframes-expected.txt:
6:38 PM Changeset in webkit [183600] by Simon Fraser
  • 3 edits
    4 adds in trunk

Crash at WebCore::Document::absoluteRegionForEventTargets
https://bugs.webkit.org/show_bug.cgi?id=144426
rdar://problem/20502166

Reviewed by Tim Horton.

Source/WebCore:

When a frame had wheel event handlers, we would register the document itself
as a handler in its parent document. This is problematic, because there's not
code path that removes it when the frame is destroyed.

It turns out we don't need to do this at all; the non-fast scrollable region
already takes handlers in subframes into account.

Tests: fast/events/wheelevent-in-frame.html

fast/events/wheelevent-in-reattached-frame.html

  • dom/Document.cpp:

(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):

LayoutTests:

Test that disconnects a frame with a wheel event handler then GCs, and one that
disconnects are reconnects. In both case, the parent document should have zero
wheel event handlers registered on it.

  • fast/events/wheelevent-in-frame-expected.txt: Added.
  • fast/events/wheelevent-in-frame.html: Added.
  • fast/events/wheelevent-in-reattached-frame-expected.txt: Added.
  • fast/events/wheelevent-in-reattached-frame.html: Added.
6:21 PM Changeset in webkit [183599] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.2

New tag.

6:18 PM Changeset in webkit [183598] by ddkilzer@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Attempt #2: Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
<http://webkit.org/b/144362>

Reviewed by Andy Estes.

This patch switches soft-linking of QuickLook.framework to
QuickLookSoftLink.{h,mm} so that we stop exporting unintended
symbols.

No new tests since no change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • Add QuickLookSoftLinking.{h,mm} to the project.
  • platform/ios/QuickLookSoftLink.h: Added.
  • platform/ios/QuickLookSoftLink.mm: Added.
  • platform/mac/SoftLinking.h:

(SOFT_LINK_CLASS_FOR_HEADER): Add macro.
(SOFT_LINK_CLASS_FOR_SOURCE): Add macro.
(SOFT_LINK_POINTER_FOR_HEADER): Add macro.
(SOFT_LINK_POINTER_FOR_SOURCE): Add macro.

  • platform/network/ios/QuickLook.h:
  • Remove unused declarations.
  • platform/network/ios/QuickLook.mm:

(WebCore::QLPreviewConverterClass): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
(WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.

  • Remove SOFT_LINK macros and unused methods after switching to new QuickLookSoftLink.{h,mm}.

(WebCore::QLPreviewGetSupportedMIMETypesSet):

  • Switch to use NeverDestroyed<>.

(WebCore::registerQLPreviewConverterIfNeeded):
(createQLPreviewProtocol):
(WebCore::QLPreviewProtocol):
(WebCore::QuickLookHandle::QuickLookHandle):
(WebCore::QuickLookHandle::create):
(WebCore::QuickLookHandle::shouldCreateForMIMEType):

  • Simplify code when using QuickLookSoftLink.h.
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • Include QuickLookSoftLink.h header.
5:46 PM Changeset in webkit [183597] by Simon Fraser
  • 17 edits in trunk

Compute the non-fast-scrollable region in main-document coordinates
https://bugs.webkit.org/show_bug.cgi?id=144420

Reviewed by Tim Horton.

Source/WebCore:

Compute the non-fast-scrollable region in document coordinates, to make it easier
to reason about. Previously, it was document coordinates offset by top content inset.

  • page/DebugPageOverlays.cpp:

(WebCore::MouseWheelRegionOverlay::updateRegion): Traverse all frames to compute the wheel
event handler region, mapping each to root view coords, and then mapping back into document
coords at the end.
(WebCore::NonFastScrollableRegionOverlay::updateRegion): No offset needed here; the
overlay and region are both document coordinates.

  • page/FrameView.h: Make some mapping function overrides public, and expose widgetsInRenderTree().
  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRects): Remove frame argument.

  • page/Page.h:
  • page/PageOverlay.cpp:

(WebCore::PageOverlay::bounds):
(WebCore::PageOverlay::viewToOverlayOffset): Convenience function to map between
view and overlay coordinates.

  • page/PageOverlay.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp: New computeNonFastScrollableRegion() signature.

(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame): This function
recurses on frames, computing an absolute (document-relative) region per frame. This
removes the confusing offsetting through top content inset.
Change how we get to plugins that want wheel events; we can't get from PluginViewBase
to renderers, so use FrameView's list of Widgets, and their RenderWidgets. This fixes
regions for transformed plugin-ins.
For subframes, we get a region in the subframe's document coords. Map to that sub-frame,
then to our frame, then to our document.
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegion): Wrapper that hides
the recursive function.
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Deleted.

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Map the event point
from view coordinates to document coordinates for testing against the non-fast region.
We previously assert that the root note is a FrameScrolling node.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::viewToContentsOffset): Similar to ScrollView::viewToContents()
for the scrolling tree.

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • testing/Internals.cpp:

(WebCore::Internals::nonFastScrollableRects): No need for frame arg.

LayoutTests:

We now report the non-fast region in document coordinates, so these two results change.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header-expected.txt:
5:40 PM Changeset in webkit [183596] by aestes@apple.com
  • 23 edits
    6 copies
    67 adds in branches/safari-600.7-branch

Merged r183106, r183108, r183135, r183137, r183171, r183437, r183444, r183445, r183464, r183470, r183471, r183474, r183484, and r183549.

5:29 PM Changeset in webkit [183595] by Brent Fulgham
  • 33 edits in trunk

Expand test infrastructure to support scrolling tests
https://bugs.webkit.org/show_bug.cgi?id=143684
<rdar://problem/20375516>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by various fast/scrolling and platform/mac-wk2/tiled-drawing/scrolling tests.

This series of changes adds a new singleton class, 'WheelEventTestTrigger', which encapsulates a
function object to be fired when scroll events are finished. The object also keeps track of reasons
why the test should not yet fire (e.g., 'rubberbanding' is active) so that tests do not incorrectly
check rendering state in the middle of an animation.

Switch from the original WeakPtr design to ThreadSafeRefPtr, because WeakPtr cannot be shared
across multiple threads.

  • page/FrameView.cpp:

(WebCore::FrameView::layout): Make sure ScrollAnimator knows about any active test trigger.
(WebCore::FrameView::setScrollPosition): Ditto.
(WebCore::FrameView::didAddScrollbar): Ditto.

  • page/MainFrame.cpp:

(WebCore::MainFrame::testTrigger): Moved to Page.
(WebCore::MainFrame::ensureTestTrigger): Ditto.

  • page/MainFrame.h:
  • page/Page.cpp:

(WebCore::Page::testTrigger): Moved from MainFrame, and converted to use RefPtr.
(WebCore::Page::ensureTestTrigger): Ditto.

  • page/Page.h:
  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::WheelEventTestTrigger): Remove WeakPtr code.
(WebCore::WheelEventTestTrigger::createWeakPtr): Deleted.

  • page/WheelEventTestTrigger.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformPrepareForWheelEvents): Make sure the scroll animator knows about
any active test trigger object.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Notify WheelEventTestTrigger
that the scrolling thread is synced with the main thread.

  • platform/ScrollAnimator.h: Hold a RefPtr to the WheelEventTestTrigger.

(WebCore::ScrollAnimator::ScrollAnimator::setWheelEventTestTrigger):

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::startSnapRubberbandTimer): Notify test trigger to hold tests until rubber band
snapping is complete.
(WebCore::ScrollController::stopSnapRubberbandTimer): Notify test trigger that rubber band snapping is done.
(WebCore::ScrollController::startScrollSnapTimer): Notify test trigger to hold tests until scroll snapping
is complete.
(WebCore::ScrollController::stopScrollSnapTimer): Notify test trigger that scroll snapping is done.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::didBeginScrollGesture): Notify test trigger that a content scroll is in progress.
(WebCore::ScrollAnimatorMac::didEndScrollGesture): Notify test trigger that a content scroll is finished.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon): Notify test trigger to hold tests until the content
scrolling is complete.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired): Notify test trigger that content scrolling is done.

  • rendering/RenderBox.cpp:

(WebCore::connectScrollAnimatorToTestTrigger): Helper function.
(WebCore::RenderBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
(WebCore::RenderBox::setScrollTop): Ditto.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar): Make sure the ScrollAnimator knows about any active test triggers.

  • rendering/RenderListBox.cpp:

(WebCore::connectScrollAnimatorToTestTrigger): Helper function.
(WebCore::RenderListBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
(WebCore::RenderListBox::setScrollTop): Ditto.
(WebCore::RenderListBox::createScrollbar): Ditto.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::monitorWheelEvents): Look for WheelEventTestTrigger in Page, rather than MainFrame.
(WebCoreTestSupport::setTestCallbackAndStartNotificationTimer): Ditto.

Source/WebKit2:

Update test programs to activate (and deactivate) the new WheelEventTestTrigger logic.

  • UIProcess/API/C/WKPage.cpp:

(WKPageClearWheelEventTestTriggers): Added.

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::clearWheelEventTestTrigger): Added.

  • UIProcess/WebPageProxy.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageStartMonitoringScrollOperations): Interact with WheelEventTestTrigger through
the Page, rather than MainFrame.
(WKBundlePageRegisterScrollOperationCompletionCallback): Ditto.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar): Make sure scroll animator knows about any
active test triggers.

  • WebPage/EventDispatcher.mm:

(WebKit::EventDispatcher::wheelEvent): If the wheel event was passed to the scrolling thread,
defer tests until a Scrolling Thread Sync has occurred.

  • WebPage/WebPage.cpp:

(WebKit::WebPage::clearWheelEventTestTrigger): Added.

  • WebPage/WebPage.h:
  • WebPage/WebPage.message.in: Added ClearWheelEventTestTrigger message.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting): Make sure the WheelEventTestTrigger state is
reset before the next test run.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Ditto."

5:28 PM Changeset in webkit [183594] by timothy@apple.com
  • 1 edit
    23 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144412

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/BottomUpTree.svg: Removed.
  • UserInterface/Images/Log.png: Removed.
  • UserInterface/Images/Log@2x.png: Removed.
  • UserInterface/Images/NavigationItemAngleBrackets.svg: Removed.
  • UserInterface/Images/NavigationItemBrushAndRuler.svg: Removed.
  • UserInterface/Images/NavigationItemBug.svg: Removed.
  • UserInterface/Images/NavigationItemDoughnutChart.svg: Removed.
  • UserInterface/Images/NavigationItemFile.svg: Removed.
  • UserInterface/Images/NavigationItemLayers.svg: Removed.
  • UserInterface/Images/NavigationItemLog.svg: Removed.
  • UserInterface/Images/NavigationItemProbes.svg: Removed.
  • UserInterface/Images/NavigationItemStopwatch.svg: Removed.
  • UserInterface/Images/NavigationItemStorage.svg: Removed.
  • UserInterface/Images/NavigationItemVariable.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutLeft.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutRight.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutWhiteRight.svg: Removed.
  • UserInterface/Images/Percent.svg: Removed.
  • UserInterface/Images/Reload.svg: Removed.
  • UserInterface/Images/SplitToggleDown.svg: Removed.
  • UserInterface/Images/Time.svg: Removed.
  • UserInterface/Images/Weight.svg: Removed.
5:23 PM Changeset in webkit [183593] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Run javascriptcore tests on Windows without cygwin
https://bugs.webkit.org/show_bug.cgi?id=144419

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-29
Reviewed by Brent Fulgham.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):
Just call ruby, not /usr/bin/env ruby.

5:21 PM Changeset in webkit [183592] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

Adding the ability to move selection by granularity on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144410
rdar://problem/19213337

Reviewed by Benjamin Poulain.

This patch also correctly sets _usingGestureForSelection for all
the functions that change the selection with a gesture.
This way we make sure that the selection drawing is not delayed
until the next time we paint.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):

5:12 PM Changeset in webkit [183591] by jfernandez@igalia.com
  • 17 edits
    1 add in trunk/Source/WebCore

[CSS Box Alignment] Unifying alignment data in a single class
https://bugs.webkit.org/show_bug.cgi?id=144384

Reviewed by David Hyatt.

The new CSS Box Alignment specification introduces more complex
values and syntax for defining alignment properties. Most of the
alignment values were just keyword identifiers, but the new syntax
allows different combinations of identifiers to determine the
alignment behavior (eg. overflow-alignment keyword).

This patch wll help to implement later overflow handling and
specially Content Dstribution alignment, the most complex case by
far. It will be more consistent against style changes and repaint,
snce we will have just one field to monitoring for value
modfications.

No new tests, because no new functionality was added; it's just a
code refactoring which is just expected to pass current tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveSelfAlignmentAuto):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPropertyNames.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::StyleBuilderConverter::convertSVGColor): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
(WebCore::StyleBuilderCustom::applyInheritLineHeight): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::createElementRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::styleDidChange):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::updateStyle):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveJustification):

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::contentDataEquivalent): Deleted.

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/StyleSelfAlignmentData.h: Added.

(WebCore::StyleSelfAlignmentData::StyleSelfAlignmentData):
(WebCore::StyleSelfAlignmentData::setPosition):
(WebCore::StyleSelfAlignmentData::setPositionType):
(WebCore::StyleSelfAlignmentData::setOverflow):
(WebCore::StyleSelfAlignmentData::position):
(WebCore::StyleSelfAlignmentData::positionType):
(WebCore::StyleSelfAlignmentData::overflow):
(WebCore::StyleSelfAlignmentData::operator==):
(WebCore::StyleSelfAlignmentData::operator!=):

4:46 PM Changeset in webkit [183590] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Gracefully handle missing auto pause key on remote inspector setup
https://bugs.webkit.org/show_bug.cgi?id=144411

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedSetupMessage):

4:22 PM Changeset in webkit [183589] by Joseph Pecoraro
  • 9 edits
    10 adds in trunk

NodeList has issues with Symbol and empty string
https://bugs.webkit.org/show_bug.cgi?id=144310

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/PropertyName.h:

(JSC::PropertyName::isSymbol):
Helper to check if the PropertyName is a string or symbol property.

Source/WebCore:

Tests: fast/dom/StyleSheet/stylesheet-symbol-names.html

fast/dom/dataset-name-getter-symbols.html
fast/dom/named-items-with-empty-name.html
fast/dom/named-items-with-symbol-name.html
storage/domstorage/localstorage/named-items.html

Test different bindings objects with custom named setter
and getter handlers. Ensure that they handle Symbol properties
gracefully. Often times avoiding the string path.

  • dom/StaticNodeList.cpp:

(WebCore::StaticNodeList::namedItem):
(WebCore::StaticElementList::namedItem):
Better handle the empty string. It should not match an item.

  • bindings/js/JSDOMBinding.h:

(WebCore::propertyNameToString):
In cases where we would use this, we should have handled
Symbol properties.

(WebCore::propertyNameToAtomicString):
For Symbols, use the unique string. This should result
in no matches for a Symbol property.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
(WebCore::JSDOMStringMap::deleteProperty):
(WebCore::JSDOMStringMap::putDelegate):

  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::canGetItemsForName):
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):

  • bindings/js/JSStyleSheetListCustom.cpp:

(WebCore::JSStyleSheetList::canGetItemsForName):
Treat Symbol properties as private properties. They just
go directly through to the Object, and avoid the string
getter/setter property path.

LayoutTests:

  • fast/dom/StyleSheet/stylesheet-symbol-names-expected.txt: Added.
  • fast/dom/StyleSheet/stylesheet-symbol-names.html: Added.
  • fast/dom/dataset-name-getter-symbols-expected.txt: Added.
  • fast/dom/dataset-name-getter-symbols.html: Added.
  • fast/dom/named-items-with-empty-name-expected.txt: Added.
  • fast/dom/named-items-with-empty-name.html: Added.
  • fast/dom/named-items-with-symbol-name-expected.txt: Added.
  • fast/dom/named-items-with-symbol-name.html: Added.
  • storage/domstorage/localstorage/named-items-expected.txt: Added.
  • storage/domstorage/localstorage/named-items.html: Added.
4:19 PM Changeset in webkit [183588] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

UI process sometimes crashes under _takeViewSnapshot when the window is off-screen
https://bugs.webkit.org/show_bug.cgi?id=144418
<rdar://problem/20740278>

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Null-check the array before checking if it has any items.
If the window is off-screen, we can't snapshot it.

4:03 PM Changeset in webkit [183587] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Register with device picker whenever a page has <video>
https://bugs.webkit.org/show_bug.cgi?id=144408

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::setPlaybackTarget): Drive-by fix: don't tell a client to play
to the target when it has not routes.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set RequiresPlaybackTargetMonitoring whenever the
element is <video> with a video track that does not block wireless playback.

4:02 PM Changeset in webkit [183586] by Simon Fraser
  • 3 edits
    6 adds in trunk

Allow testing of plug-ins that handle wheel events.
https://bugs.webkit.org/show_bug.cgi?id=144413

Reviewed by Tim Horton.

Source/WebKit2:

Allow the Test Netscape Plug-in to pretend to handle wheel events,
so layout tests can use it.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::NetscapePluginModule::determineQuirks):

LayoutTests:

Test the non-fast scrollable region with top content inset and header height, and with a plug-in.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/wheel-event-plugin-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html: Added.
3:56 PM Changeset in webkit [183585] by Yusuke Suzuki
  • 2 edits in trunk/Tools

[GTK] Add --enable-shared option to LLVM to build mesa
https://bugs.webkit.org/show_bug.cgi?id=144393

Reviewed by Martin Robinson.

The updated mesa requires the shared LLVM libraries.
To build mesa with LLVM in FTL build, this patch added --enable-shared option
to LLVM configure script. It will provide shared libraries in addition to static libraries.

  • gtk/jhbuild-optional.modules:
3:46 PM Changeset in webkit [183584] by Martin Robinson
  • 20 edits
    6 adds in trunk

[GTK] Add support for automatic hyphenation
https://bugs.webkit.org/show_bug.cgi?id=44478

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindHyphen.cmake: Added. A CMake module for finding libhyphen.
  • Source/cmake/OptionsGTK.cmake: Look for libhyphen and enable hyphenation if found.
  • Source/cmakeconfig.h.cmake: Pass through the whether libhyphen is enabled.

Source/WebCore:

No new tests. This patch unskips and updates results for existing hyphenation tests.

  • PlatformGTK.cmake: Add the libhypen implementation to the source list.
  • platform/gtk/GtkUtilities.cpp:

(WebCore::topLevelPath): Add this helper function taken from the test harness.
(WebCore::getWebKitBuildDirectory): Ditto.

  • platform/gtk/GtkUtilities.h: Add function declarations for the helper functions.
  • platform/text/Hyphenation.cpp: Surround this implementation with !USE(LIBHYPHEN), so that it can still be shared.
  • platform/text/gtk/HyphenationLibHyphen.cpp: Added.

(WebCore::extractLocaleFromDictionaryFilePath): Take in a dictionary filename and
determine the locale that it covers.
(WebCore::scanDirectoryForDicionaries): Look for all installed dictionaries as well
as ones in the JHBuild root for testing.
(WebCore::scanTestDictionariesDirectoryIfNecessary): Try to scan the dictionaries installed
in the JHBuild root.
(WebCore::availableLocales): Getter for global hash of installed dictionaries.
(WebCore::canHyphenate): Added libhyphen implementation.
(WebCore::HyphenationDictionary): Helper class that properly manages the memory of
an open libhyphen dictionary. This is useful so that they can be stored in an MRU
cache. This is a similar approach to the CoreFoundation implementation.
(WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForNullKey): MRU cache
helper.
(WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForKey): Ditto.
(WebCore::hyphenDictionaryCache): A cache for opened hyphenation dictionaries.
(WebCore::countLeadingSpaces): Count leading spaces, since WebCore often passes words with them.
(WebCore::lastHyphenLocation): Added libhyphen implementation.

Tools:

  • gtk/jhbuild.modules: Add a module for testing dictionaries, so that

all systems will use the same dictionaries for testing purposes.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip most hyphenation tests.
  • platform/gtk/fast/text/hyphenate-character-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-character-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphenate-locale-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-locale-expected.txt:
  • platform/gtk/fast/text/hyphens-expected.png: Added.
  • platform/gtk/fast/text/hyphens-expected.txt:
  • platform/gtk/fast/text/word-break-soft-hyphen-expected.png:
3:41 PM Changeset in webkit [183583] by jacob_nielsen@apple.com
  • 5 edits in trunk

Failure when building WebKit for appletvsimulator.
https://bugs.webkit.org/show_bug.cgi?id=144356

Reviewed by Alexey Proskuryakov.

Changes Makefile logic to check for "not OS X" rather than "is iOS" to
make TVOS and WatchOS behave correctly.

.:

  • Source/Makefile:

Tools:

  • Makefile:
  • WebKitTestRunner/Makefile:
3:32 PM Changeset in webkit [183582] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWithFamily):

3:12 PM Changeset in webkit [183581] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix non-cygwin incremental builds on Windows.
https://bugs.webkit.org/show_bug.cgi?id=143264

Reviewed by Brent Fulgham.

  • generate-js-builtins:

Remove stale headers before calling os.rename to replace them.

3:00 PM Changeset in webkit [183580] by timothy@apple.com
  • 10 edits
    1 copy
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Split Storage from Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144404

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._updateNewTabButtonState):
(WebInspector.showStorageTab):
(WebInspector._storageWasInspected):

  • UserInterface/Controllers/ApplicationCacheManager.js:

(WebInspector.ApplicationCacheManager.prototype.initialize):
(WebInspector.ApplicationCacheManager.prototype.get applicationCacheObjects):

  • UserInterface/Controllers/StorageManager.js:

(WebInspector.StorageManager.prototype.get domStorageObjects):
(WebInspector.StorageManager.prototype.get databases):
(WebInspector.StorageManager.prototype.get indexedDatabases):
(WebInspector.StorageManager.prototype.get cookieStorageObjects):

  • UserInterface/Images/Storage.svg: Added.
  • UserInterface/Main.html:
  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView.prototype._queryFinished): Clear _dataGrid,
since it might have been allocated but still be empty. This avoids an exception in
updateLayout next time layout is updated.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._cookieStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestRemoved): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._addStorageChild): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._storageCleared): Deleted.

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView):
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/StorageSidebarPanel.js: Added.

(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype.showDefaultContentView):
(WebInspector.StorageSidebarPanel.prototype.closed):
(WebInspector.StorageSidebarPanel.prototype._treeElementSelected):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDOMStorageObject):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasInspected):
(WebInspector.StorageSidebarPanel.prototype._databaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDatabase):
(WebInspector.StorageSidebarPanel.prototype._databaseWasInspected):
(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addIndexedDatabase):
(WebInspector.StorageSidebarPanel.prototype._cookieStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addCookieStorageObject):
(WebInspector.StorageSidebarPanel.prototype._frameManifestAdded):
(WebInspector.StorageSidebarPanel.prototype._addFrameManifest):
(WebInspector.StorageSidebarPanel.prototype._frameManifestRemoved):
(WebInspector.StorageSidebarPanel.prototype._compareTreeElements):
(WebInspector.StorageSidebarPanel.prototype._addStorageChild):
(WebInspector.StorageSidebarPanel.prototype._storageCleared):

  • UserInterface/Views/StorageTabContentView.js: Copied from Source/WebInspectorUI/UserInterface/Views/ResourcesTabContentView.js.

(WebInspector.StorageTabContentView):
(WebInspector.StorageTabContentView.prototype.get type):
(WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):

2:59 PM Changeset in webkit [183579] by timothy@apple.com
  • 60 edits
    50 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove Legacy images and styles
https://bugs.webkit.org/show_bug.cgi?id=144390

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/ImageUtilities.js:

(.generateImage):
(.generateImage.generateLegacyImage): Deleted.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._updateToolbarHeight):

  • UserInterface/Base/Platform.js:
  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):

  • UserInterface/Images/Legacy/BackArrow.svg: Removed.
  • UserInterface/Images/Legacy/Breakpoints.svg: Removed.
  • UserInterface/Images/Legacy/Close.svg: Removed.
  • UserInterface/Images/Legacy/CloseLarge.svg: Removed.
  • UserInterface/Images/Legacy/Colors.png: Removed.
  • UserInterface/Images/Legacy/Colors@2x.png: Removed.
  • UserInterface/Images/Legacy/ColorsLarge.png: Removed.
  • UserInterface/Images/Legacy/ColorsLarge@2x.png: Removed.
  • UserInterface/Images/Legacy/DockBottom.svg: Removed.
  • UserInterface/Images/Legacy/DockRight.svg: Removed.
  • UserInterface/Images/Legacy/DownloadArrow.svg: Removed.
  • UserInterface/Images/Legacy/Errors.svg: Removed.
  • UserInterface/Images/Legacy/ErrorsEnabled.svg: Removed.
  • UserInterface/Images/Legacy/FilterFieldGlyph.svg: Removed.
  • UserInterface/Images/Legacy/FolderGeneric.png: Removed.
  • UserInterface/Images/Legacy/FolderGeneric@2x.png: Removed.
  • UserInterface/Images/Legacy/ForwardArrow.svg: Removed.
  • UserInterface/Images/Legacy/Issues.svg: Removed.
  • UserInterface/Images/Legacy/IssuesEnabled.svg: Removed.
  • UserInterface/Images/Legacy/LayerBorders.svg: Removed.
  • UserInterface/Images/Legacy/Logs.svg: Removed.
  • UserInterface/Images/Legacy/NavigationItemCurleyBraces.svg: Removed.
  • UserInterface/Images/Legacy/NavigationItemTrash.svg: Removed.
  • UserInterface/Images/Legacy/Network.png: Removed.
  • UserInterface/Images/Legacy/Network@2x.png: Removed.
  • UserInterface/Images/Legacy/NetworkLarge.png: Removed.
  • UserInterface/Images/Legacy/NetworkLarge@2x.png: Removed.
  • UserInterface/Images/Legacy/Pause.svg: Removed.
  • UserInterface/Images/Legacy/Plus.svg: Removed.
  • UserInterface/Images/Legacy/Recording.png: Removed.
  • UserInterface/Images/Legacy/Recording@2x.png: Removed.
  • UserInterface/Images/Legacy/RecordingHovered.png: Removed.
  • UserInterface/Images/Legacy/RecordingHovered@2x.png: Removed.
  • UserInterface/Images/Legacy/RecordingStopped.png: Removed.
  • UserInterface/Images/Legacy/RecordingStopped@2x.png: Removed.
  • UserInterface/Images/Legacy/Reload.svg: Removed.
  • UserInterface/Images/Legacy/Resources.svg: Removed.
  • UserInterface/Images/Legacy/Resume.svg: Removed.
  • UserInterface/Images/Legacy/ShadowDOM.svg: Removed.
  • UserInterface/Images/Legacy/SortIndicatorDownArrow.svg: Removed.
  • UserInterface/Images/Legacy/SortIndicatorUpArrow.svg: Removed.
  • UserInterface/Images/Legacy/SplitToggleDown.svg: Removed.
  • UserInterface/Images/Legacy/SplitToggleUp.svg: Removed.
  • UserInterface/Images/Legacy/StepInto.svg: Removed.
  • UserInterface/Images/Legacy/StepOut.svg: Removed.
  • UserInterface/Images/Legacy/StepOver.svg: Removed.
  • UserInterface/Images/Legacy/Time.svg: Removed.
  • UserInterface/Images/Legacy/Undock.svg: Removed.
  • UserInterface/Images/Legacy/UpDownArrows.svg: Removed.
  • UserInterface/Images/Legacy/Weight.svg: Removed.
  • UserInterface/Views/ButtonNavigationItem.css:

(body.mac-platform.legacy .navigation-bar .item.button.text-only): Deleted.

  • UserInterface/Views/ButtonToolbarItem.css:

(body.mac-platform.legacy .toolbar .item.button > .label): Deleted.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(body.mac-platform.legacy .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)): Deleted.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.css-style > .content): Deleted.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):

  • UserInterface/Views/ControlToolbarItem.css:

(body.mac-platform.legacy .toolbar .item.control): Deleted.
(body.mac-platform.legacy .toolbar .item.control:hover): Deleted.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView):

  • UserInterface/Views/DOMTreeOutline.css:

(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection): Deleted.

  • UserInterface/Views/DashboardContainerView.css:

(body.mac-platform.legacy .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard): Deleted.
(body.mac-platform.legacy .dashboard-container .advance-arrow): Deleted.

  • UserInterface/Views/DataGrid.css:

(body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)): Deleted.
(body.mac-platform.legacy .data-grid:focus tr.selected): Deleted.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):

  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView):

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView):

  • UserInterface/Views/DebuggerSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/DefaultDashboardView.css:

(body.mac-platform.legacy .toolbar .dashboard.default > .item): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .logs > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img): Deleted.

  • UserInterface/Views/DetailsSection.css:

(body.mac-platform.legacy .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section:first-child): Deleted.
(body.mac-platform.legacy .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section.collapsed > .header): Deleted.
(body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline): Deleted.
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
(body.mac-platform.legacy .details-section > .content > .group): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *): Deleted.
(body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)): Deleted.

  • UserInterface/Views/DividerNavigationItem.css:

(.navigation-bar .item.divider):
(body.mac-platform.legacy .navigation-bar .item.divider): Deleted.

  • UserInterface/Views/FilterBar.css:

(.filter-bar > input[type="search"]::-webkit-search-decoration):
(body.mac-platform.legacy .filter-bar): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration): Deleted.

  • UserInterface/Views/FindBanner.css:

(body.mac-platform.legacy .find-banner > input[type="search"]): Deleted.
(body.mac-platform.legacy .find-banner > button > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented): Deleted.

  • UserInterface/Views/FindBanner.js:

(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
(WebInspector.FindBanner):

  • UserInterface/Views/FolderIcon.css:

(.folder-icon .icon):
(body.mac-platform.legacy .folder-icon .icon): Deleted.

  • UserInterface/Views/HierarchicalPathComponent.css:

(body.mac-platform.legacy .hierarchical-path-component > .selector-arrows): Deleted.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.layer-tree > .content): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar > div): Deleted.
(body.mac-platform.legacy .layer-tree-popover): Deleted.

  • UserInterface/Views/LogContentView.css:

(body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):

  • UserInterface/Views/Main.css:

(body.mac-platform.legacy:not(.docked)): Deleted.
(body.docked.bottom.mac-platform.legacy): Deleted.
(body.docked.right.mac-platform.legacy): Deleted.
(body.mac-platform.legacy #split-content-browser > .navigation-bar): Deleted.

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar .item):
(body.mac-platform.legacy .navigation-bar): Deleted.
(body.mac-platform.legacy .navigation-bar .item): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.navigation > .content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected): Deleted.
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):

  • UserInterface/Views/Popover.js:
  • UserInterface/Views/ProbeDetailsSidebarPanel.css:

(body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-remove): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-add): Deleted.

  • UserInterface/Views/QuickConsole.css:

(body.mac-platform.legacy .quick-console): Deleted.

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only.selected:active):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active): Deleted.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img): Deleted.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li.selected:active):
(body.mac-platform.legacy .scope-bar > li): Deleted.
(body.mac-platform.legacy .scope-bar > li:hover): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected): Deleted.
(body.mac-platform.legacy .scope-bar > li:active): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected:active): Deleted.

  • UserInterface/Views/ScriptContentView.js:

(WebInspector.ScriptContentView):

  • UserInterface/Views/SearchBar.css:

(body.mac-platform.legacy .search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/Sidebar.css:

(body.window-inactive .sidebar.right):
(body.mac-platform.legacy .sidebar): Deleted.
(body.mac-platform.legacy.window-inactive .sidebar): Deleted.
(body.mac-platform.legacy .sidebar.right): Deleted.

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView):

  • UserInterface/Views/TimelineDataGrid.css:

(body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.

  • UserInterface/Views/TimelineIcons.css:

(body.mac-platform.legacy .network-icon .icon): Deleted.
(body.mac-platform.legacy .network-icon.large .icon): Deleted.
(body.mac-platform.legacy .colors-icon .icon): Deleted.
(body.mac-platform.legacy .colors-icon.large .icon): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):

  • UserInterface/Views/TimelineRuler.css:

(body.mac-platform.legacy .timeline-ruler > .header): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-drag): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-handle): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):

  • UserInterface/Views/Toolbar.css:

(body.mac-platform:not(.docked) .toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar): Deleted.
(body.mac-platform.legacy .toolbar): Deleted.
(body.mac-platform.legacy.docked .toolbar): Deleted.
(body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar): Deleted.

  • UserInterface/Views/TreeElementStatusButton.css:

(body.mac-platform.legacy .item > .status > .status-button > svg .filled): Deleted.
(body.mac-platform.legacy .item > .status > .status-button > svg .stroked): Deleted.

2:44 PM Changeset in webkit [183578] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Some media tests assert after r183096
https://bugs.webkit.org/show_bug.cgi?id=144098

Reviewed by Brent Fulgham.

Never assert when a MediaPlaybackTargetClient client calls one of the methods on Document
after it has been unregistered. A media element unregisters itself when it is removed from the
document, but scripts can still run and modify state that results in a call to
playbackTargetPickerClientStateDidChange. Remove the asserts instead of adding checks to
the various call sites.

  • dom/Document.cpp:

(WebCore::Document::showPlaybackTargetPicker): Don't assert if the client has already
been unregistered.
(WebCore::Document::playbackTargetPickerClientStateDidChange): Ditto.

2:43 PM Changeset in webkit [183577] by Andres Gomez
  • 133 edits in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=143476

SVG images optimized with a combination of sed replacements and
the usage of the scour tool (http://www.codedread.com/scour/).

Also, modified the spelling of the license word to use the US one
in the copyright files.

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/BackArrow.svg:
  • UserInterface/Images/gtk/BottomUpTree.svg:
  • UserInterface/Images/gtk/BreakpointActionAdd.svg:
  • UserInterface/Images/gtk/BreakpointActionRemove.svg:
  • UserInterface/Images/gtk/BreakpointButton.svg:
  • UserInterface/Images/gtk/BreakpointInactiveButton.svg:
  • UserInterface/Images/gtk/Breakpoints.svg:
  • UserInterface/Images/gtk/COPYING:
  • UserInterface/Images/gtk/COPYING_CCBYSA3:
  • UserInterface/Images/gtk/Checkers.svg:
  • UserInterface/Images/gtk/Circle.svg:
  • UserInterface/Images/gtk/Close.svg:
  • UserInterface/Images/gtk/CloseLarge.svg:
  • UserInterface/Images/gtk/CloseWhite.svg:
  • UserInterface/Images/gtk/ContentFlow.svg:
  • UserInterface/Images/gtk/Crosshair.svg:
  • UserInterface/Images/gtk/DOMCharacterData.svg:
  • UserInterface/Images/gtk/DOMComment.svg:
  • UserInterface/Images/gtk/DOMDocument.svg:
  • UserInterface/Images/gtk/DOMDocumentType.svg:
  • UserInterface/Images/gtk/DOMElement.svg:
  • UserInterface/Images/gtk/DOMNode.svg:
  • UserInterface/Images/gtk/DOMTextNode.svg:
  • UserInterface/Images/gtk/DOMTree.svg:
  • UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg:
  • UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg:
  • UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg:
  • UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg:
  • UserInterface/Images/gtk/DockBottom.svg:
  • UserInterface/Images/gtk/DockRight.svg:
  • UserInterface/Images/gtk/DownloadArrow.svg:
  • UserInterface/Images/gtk/Error.svg:
  • UserInterface/Images/gtk/Errors.svg:
  • UserInterface/Images/gtk/ErrorsEnabled.svg:
  • UserInterface/Images/gtk/EventListener.svg:
  • UserInterface/Images/gtk/Exception.svg:
  • UserInterface/Images/gtk/Eye.svg:
  • UserInterface/Images/gtk/FilterFieldGlyph.svg:
  • UserInterface/Images/gtk/ForwardArrow.svg:
  • UserInterface/Images/gtk/Function.svg:
  • UserInterface/Images/gtk/GoToArrow.svg:
  • UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg:
  • UserInterface/Images/gtk/Issues.svg:
  • UserInterface/Images/gtk/IssuesEnabled.svg:
  • UserInterface/Images/gtk/LayerBorders.svg:
  • UserInterface/Images/gtk/Locked.svg:
  • UserInterface/Images/gtk/Logs.svg:
  • UserInterface/Images/gtk/Native.svg:
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
  • UserInterface/Images/gtk/NavigationItemBug.svg:
  • UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
  • UserInterface/Images/gtk/NavigationItemFile.svg:
  • UserInterface/Images/gtk/NavigationItemLayers.svg:
  • UserInterface/Images/gtk/NavigationItemLog.svg:
  • UserInterface/Images/gtk/NavigationItemProbes.svg:
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg:
  • UserInterface/Images/gtk/NavigationItemStorage.svg:
  • UserInterface/Images/gtk/NavigationItemTrash.svg:
  • UserInterface/Images/gtk/NavigationItemTypes.svg:
  • UserInterface/Images/gtk/NavigationItemVariable.svg:
  • UserInterface/Images/gtk/PaintFlashing.svg:
  • UserInterface/Images/gtk/Pause.svg:
  • UserInterface/Images/gtk/PausedBreakpoint.svg:
  • UserInterface/Images/gtk/Percent.svg:
  • UserInterface/Images/gtk/Plus.svg:
  • UserInterface/Images/gtk/PseudoElement.svg:
  • UserInterface/Images/gtk/Record.svg:
  • UserInterface/Images/gtk/Reflection.svg:
  • UserInterface/Images/gtk/Reload.svg:
  • UserInterface/Images/gtk/ReloadFull.svg:
  • UserInterface/Images/gtk/ReplayPauseButton.svg:
  • UserInterface/Images/gtk/ReplayPlayButton.svg:
  • UserInterface/Images/gtk/ReplayRecordingButton.svg:
  • UserInterface/Images/gtk/Request.svg:
  • UserInterface/Images/gtk/Resources.svg:
  • UserInterface/Images/gtk/Response.svg:
  • UserInterface/Images/gtk/ResultLine.svg:
  • UserInterface/Images/gtk/Resume.svg:
  • UserInterface/Images/gtk/ShadowDOM.svg:
  • UserInterface/Images/gtk/SortIndicatorDownArrow.svg:
  • UserInterface/Images/gtk/SortIndicatorUpArrow.svg:
  • UserInterface/Images/gtk/SourceCode.svg:
  • UserInterface/Images/gtk/SplitToggleDown.svg:
  • UserInterface/Images/gtk/SplitToggleUp.svg:
  • UserInterface/Images/gtk/StepInto.svg:
  • UserInterface/Images/gtk/StepOut.svg:
  • UserInterface/Images/gtk/StepOver.svg:
  • UserInterface/Images/gtk/Stop.svg:
  • UserInterface/Images/gtk/StyleRuleAuthor.svg:
  • UserInterface/Images/gtk/StyleRuleInherited.svg:
  • UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
  • UserInterface/Images/gtk/StyleRuleInspector.svg:
  • UserInterface/Images/gtk/StyleRuleUser.svg:
  • UserInterface/Images/gtk/StyleRuleUserAgent.svg:
  • UserInterface/Images/gtk/Time.svg:
  • UserInterface/Images/gtk/TimelineRecordAnimation.svg:
  • UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg:
  • UserInterface/Images/gtk/TimelineRecordEvent.svg:
  • UserInterface/Images/gtk/TimelineRecordLayout.svg:
  • UserInterface/Images/gtk/TimelineRecordPaint.svg:
  • UserInterface/Images/gtk/TimelineRecordProbeSampled.svg:
  • UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
  • UserInterface/Images/gtk/TimelineRecordStyle.svg:
  • UserInterface/Images/gtk/TimelineRecordTimer.svg:
  • UserInterface/Images/gtk/TypeBoolean.svg:
  • UserInterface/Images/gtk/TypeNull.svg:
  • UserInterface/Images/gtk/TypeNumber.svg:
  • UserInterface/Images/gtk/TypeObject.svg:
  • UserInterface/Images/gtk/TypeRegex.svg:
  • UserInterface/Images/gtk/TypeString.svg:
  • UserInterface/Images/gtk/TypeSymbol.svg:
  • UserInterface/Images/gtk/TypeUndefined.svg:
  • UserInterface/Images/gtk/Undock.svg:
  • UserInterface/Images/gtk/UpDownArrows.svg:
  • UserInterface/Images/gtk/UserInputPrompt.svg:
  • UserInterface/Images/gtk/UserInputPromptPrevious.svg:
  • UserInterface/Images/gtk/UserInputResult.svg:
  • UserInterface/Images/gtk/Warning.svg:
  • UserInterface/Images/gtk/Weight.svg:
2:32 PM Changeset in webkit [183576] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Simple line layout: Web process spins endlessly below layoutSimpleLines.
https://bugs.webkit.org/show_bug.cgi?id=144403
rdar://problem/20742783

Reviewed by Antti Koivisto.

When a text fragment overlaps multiple renderes and it does not fit the current line,
we revert the text fragment iterator position so that the overlapping content
gets processed again for the next line.
However, TextFragmentIterator::revertToFragment() was reverting too much and
we started processing old content all over again -> infinite loop.

This patch ensures that text fragment iterator is reverted to the right position.

Source/WebCore:

Test: fast/text/simple-line-layout-wrapping-multiple-renderers-hang.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::revertToEndOfFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment): Deleted.

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

LayoutTests:

  • fast/text/simple-line-layout-wrapping-multiple-renderers-hang-expected.html: Added.
  • fast/text/simple-line-layout-wrapping-multiple-renderers-hang.html: Added.
2:27 PM Changeset in webkit [183575] by fpizlo@apple.com
  • 12 edits
    1 add in trunk/Source

Source/JavaScriptCore:
JSTypeInfo should have an inline type flag to indicate of getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

Add the flag to JSTypeInfo. It's an inline flag so that it's fast to query. Slap the flag on
callback objects and internal functions. Modify the TypeOf operation to use this flag to avoid
making a getCallData() call if it isn't necessary.

  • API/JSCallbackObject.h:
  • runtime/InternalFunction.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::typeOfShouldCallGetCallData):

  • runtime/Operations.cpp:

(JSC::jsTypeStringForValue):

  • tests/stress/type-of-functions-and-objects.js: Added.

(foo):
(bar):
(baz):
(fuzz):
(expect):
(test):

Source/WebCore:
JSTypeInfo should have an inline type flag to indicate of getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

If you override getCallData() and you want to be called a "function", then you need to use the
new TypeOfShouldCallGetCallData flag.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bridge/objc/objc_runtime.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:

Source/WebKit2:
JSTypeInfo should have an inline type flag to indicate if getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

If you override getCallData() and you want to be called a "function", then you need to use the
new TypeOfShouldCallGetCallData flag.

  • WebProcess/Plugins/Netscape/JSNPObject.h:
1:50 PM Changeset in webkit [183574] by bshafiei@apple.com
  • 6 edits
    2 deletes in tags/Safari-601.1.31/Source/WebCore

Merged r183568.

1:27 PM Changeset in webkit [183573] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

Mark newly added http/tests/cache/main-resource-304-reload.html failing on Windows.

  • platform/win/TestExpectations:
12:55 PM Changeset in webkit [183572] by ap@apple.com
  • 3 edits in trunk/Tools

Use-after-free when invalidating WKPageForceRepaint callback
https://bugs.webkit.org/show_bug.cgi?id=144401
rdar://problem/20741111

Reviewed by Tim Horton.

  • WebKitTestRunner/TestController.h: (WTR::TestController::isCurrentInvocation): Added.
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::forceRepaintDoneCallback):

Don't do anything on error, because the context may be a stale pointer now.

12:53 PM Changeset in webkit [183571] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.31/Source/WebCore

Merged r183561.

12:48 PM Changeset in webkit [183570] by ggaren@apple.com
  • 31 edits
    1 delete in trunk

It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array.
https://bugs.webkit.org/show_bug.cgi?id=144013

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch implements Array.prototype.sort in JavaScript, removing the
C++ implementations. It is simpler and less error-prone to express our
operations in JavaScript, which provides memory safety, exception safety,
and recursion safety.

The performance result is mixed, but net positive in my opinion. It's
difficult to enumerate all the results, since we used to have so many
different sorting modes, and there are lots of different data patterns
across which you might want to measure sorting. Suffice it to say:

(*) The benchmarks we track are faster or unchanged.

(*) Sorting random input using a comparator -- which we think is
common -- is 3X faster.

(*) Sorting random input in a non-array object -- which jQuery does
-- is 4X faster.

(*) Sorting random input in a compact array of integers using a
trivial pattern-matchable comparator is 2X *slower*.

  • builtins/Array.prototype.js:

(sort.min):
(sort.stringComparator):
(sort.compactSparse): Special case compaction for sparse arrays because
we don't want to hang when sorting new Array(BIG).

(sort.compact):
(sort.merge):
(sort.mergeSort): Use merge sort because it's a reasonably efficient
stable sort. We have evidence that some sites depend on stable sort,
even though the ES6 spec does not mandate it. (See
<http://trac.webkit.org/changeset/33967>.)

This is a textbook implementation of merge sort with three optimizations:

(1) Use iteration instead of recursion;

(2) Use array subscripting instead of array copying in order to
create logical sub-lists without creating physical sub-lists;

(3) Swap src and dst at each iteration instead of copying src into
dst, and only copy src into the subject array at the end if src is
not the subject array.

(sort.inflate):
(sort.comparatorSort):
(sort): Sort in JavaScript for the win.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal): Allow non-private
names so we can use helper functions.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isNumericCompareFunction): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::setIsNumericCompareFunction): Deleted.
(JSC::UnlinkedCodeBlock::isNumericCompareFunction): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::setIsNumericCompareFunction): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode): We don't do this special casing based
on pattern matching anymore. This was mainly an optimization to avoid
the overhead of calling from C++ to JS, which we now avoid by
sorting in JS.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::pushTempSortVector): Deleted.
(JSC::Heap::popTempSortVector): Deleted.
(JSC::Heap::visitTempSortVectors): Deleted.

  • heap/Heap.h: We don't have temp sort vectors anymore because we sort

in JavaScript using a normal JavaScript array for our temporary storage.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner): Allow capturing so we can use
helper functions.

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction): Deleted.
(JSC::attemptFastSort): Deleted.
(JSC::performSlowSort): Deleted.
(JSC::arrayProtoFuncSort): Deleted.

  • runtime/CommonIdentifiers.h: New strings used by sort.
  • runtime/JSArray.cpp:

(JSC::compareNumbersForQSortWithInt32): Deleted.
(JSC::compareNumbersForQSortWithDouble): Deleted.
(JSC::compareNumbersForQSort): Deleted.
(JSC::compareByStringPairForQSort): Deleted.
(JSC::JSArray::sortNumericVector): Deleted.
(JSC::JSArray::sortNumeric): Deleted.
(JSC::ContiguousTypeAccessor::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor::replaceDataReference): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::replaceDataReference): Deleted.
(JSC::JSArray::sortCompactedVector): Deleted.
(JSC::JSArray::sort): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_key): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_node_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::null): Deleted.
(JSC::JSArray::sortVector): Deleted.
(JSC::JSArray::compactForSorting): Deleted.

  • runtime/JSArray.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation): Provide some builtins used
by sort.

Source/WTF:

Remove this custom tree implementation because it is unused. (It was
previously used to achieve a stable array sort in certain cases.)

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/AVLTree.h: Removed.
  • wtf/CMakeLists.txt:

LayoutTests:

  • js/script-tests/array-holes.js:
  • js/array-holes-expected.txt: This result now matches Firefox. We see

'peekaboo', which is a prototype property, rather than a hole, because
sorting uses Get?, which sees prototype properties.

The ES6 spec says that sorting should use Get?, so this new result
matches the spec a little better -- although the spec also says that the
result of sorting is undefined in this case because of the presence of
an indexed property in the prototype chain.

  • js/dom/array-prototype-properties-expected.txt: Updated error message

to match other array prototype error messages.

  • js/comparefn-sort-stability-expected.txt:
  • js/script-tests/comparefn-sort-stability.js: Made this test bigger in

order to demonstrate that Firefox and Safari use a stable sort, and
Chrome does not.

  • js/script-tests/array-sort-sparse.js:
  • js/array-sort-sparse-expected.txt: Added some tests for things I got

wrong in this patch.

  • script-tests/sort-with-side-effecting-comparisons.js: Made this test

shorter so that it wouldn't hang debug builds. This test is O(N2). It
used to terminate sooner because our sort implementation would (sometimes)
terminate sooner if you shrank the array. Our new sort does not accept
intermediate updates to the array's length, matching Firefox. I spoke
to Gavin and Alexey about this, and we think that going out of our way
to honor length changes mid-sort doesn't make much sense because it's
not possible to honor the general case of value changes in a predictable
way.

12:45 PM Changeset in webkit [183569] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.31/Source/JavaScriptCore

Merged r183526. rdar://problem/20717863

12:42 PM Changeset in webkit [183568] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, rolling out r183553 and r183561.
https://bugs.webkit.org/show_bug.cgi?id=144406

broke the iOS build (Requested by thorton on #webkit).

Reverted changesets:

"Switch QuickLook soft-linking to use
QuickLookSoftLink.{h,mm}"
https://bugs.webkit.org/show_bug.cgi?id=144362
http://trac.webkit.org/changeset/183553

"Unreviewed iOS build fix after r183553: fix declaration of
QLPreviewScheme"
http://trac.webkit.org/changeset/183561

12:32 PM Changeset in webkit [183567] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: Don't complain about returning value from Objective-C method call in header
<http://webkit.org/b/144395>

Reviewed by Andy Estes.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing): Update regex so 'return' is ignored if it
precedes the whitespace and bracket. Change category name to
'whitespace/brackets'. Add period to error message.
(CppChecker): Add 'whitespace/brackets' as a category.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(ErrorCollector.call): Replace 'STYLE_CATEGORIES' with
'CppChecker.categories' since that's where the list lives now.
(CppStyleTest.test_spacing_before_brackets): Add tests for
'whitespace/brackets' issues and non-issues.

12:23 PM Changeset in webkit [183566] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix WinCairo bot.

  • Scripts/webkitdirs.pm:

(determinePassedConfiguration):
WinCairo bot doesn't use cygwin, but it needs Release_WinCairo for its configuration.

12:19 PM Changeset in webkit [183565] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Navigation bar often looses last button when full
https://bugs.webkit.org/show_bug.cgi?id=144385

Added helpers to get the subpixel width and height of an element.
Adopt them in the NavigationBar layout methods to get precise widths
that don't accumulate rounding errors which lead to items overflowing.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Utilities.js:

(Element.prototype.realOffsetWidth): Added.
(Element.prototype.realOffsetHeight): Added.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar.prototype.updateLayout):
(WebInspector.NavigationBar.prototype._calculateMinimumWidth):

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype._handleMouseMoved):

  • UserInterface/Views/Toolbar.js:

(WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout):

12:00 PM Changeset in webkit [183564] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Safari WebKit crash when loading Google Spreadsheet.
https://bugs.webkit.org/show_bug.cgi?id=144020

Reviewed by Filip Pizlo.

The bug is that the object allocation sinking phase did not account for a case
where a property of a sunken object is only initialized on one path and not
another. As a result, on the path where the property is not initialized, we'll
encounter an Upsilon with a BottomValue (which is not allowed by definition).

The fix is to use a JSConstant(undefined) as the bottom value instead (of
BottomValue). If the property is uninitialized, it should still be accessible
and have the value undefined.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):

  • tests/stress/object-allocation-sinking-with-uninitialized-property-on-one-path.js: Added.

(foo):
(foo2):

11:51 AM Changeset in webkit [183563] by Antti Koivisto
  • 26 edits in trunk/Source

ResourceLoadPriority should be enum class
https://bugs.webkit.org/show_bug.cgi?id=144326

Reviewed by Darin Adler.

Source/WebCore:

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::scheduleLoad):
(WebCore::ResourceLoadScheduler::servePendingRequests):
(WebCore::ResourceLoadScheduler::HostInformation::~HostInformation):
(WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex):
(WebCore::ResourceLoadScheduler::HostInformation::schedule):
(WebCore::ResourceLoadScheduler::HostInformation::remove):
(WebCore::ResourceLoadScheduler::HostInformation::hasRequests):
(WebCore::ResourceLoadScheduler::HostInformation::limitRequests):

  • loader/ResourceLoadScheduler.h:

(WebCore::ResourceLoadScheduler::HostInformation::requestsPending):

Modernize ResourceLoadScheduler code a bit while switching to enum class.

  • loader/cache/CachedResource.cpp:

(WebCore::defaultPriorityForResourceType):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

  • platform/network/ResourceLoadPriority.h:

(WebCore::operator++):
(WebCore::operator--):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):
(WebCore::ResourceRequestBase::cachePolicy):
(WebCore::ResourceRequestBase::priority):
(WebCore::ResourceRequestBase::setPriority):

  • platform/network/ResourceRequestBase.h:

Remove bitfields. ResourceRequests are not present in large enough numbers to require this kind of optimization.
Use modern initialization syntax.

(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::CrossThreadResourceRequestDataBase::CrossThreadResourceRequestDataBase): Deleted.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

  • platform/network/soup/ResourceRequest.h:

(WebCore::toSoupMessagePriority):

  • testing/Internals.cpp:

(WebCore::stringToResourceLoadPriority):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::servePendingRequests): Deleted.

Remove this unused message.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:

(WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::servePendingRequests):

  • WebProcess/Network/WebResourceLoadScheduler.h:
11:31 AM Changeset in webkit [183562] by mmaxfield@apple.com
  • 22 edits in trunk

[OS X] Use CTFontCreateForCSS instead of doing font search ourselves
https://bugs.webkit.org/show_bug.cgi?id=132159

Reviewed by Darin Adler.

Source/WebCore:

On platforms that support it, delegate font selection logic to the platform. Currently, this is
only supported on Mac, using CTFontCreateForCSS().

This also changes the mechanism that enforces our font whitelist in our tests. We used to
swizzle the implementations of NSFontManager methods. This patch migrates to using a whitelist of
font family names instead.

Note that this patch is a work in progress, because it makes the following tests fail:
fast/css/font-weight-1.html
fast/forms/validation-message-appearance.html
fast/forms/select/optgroup-rendering.html

No new tests, because there is no behavior change.

  • platform/graphics/FontCache.h: Add a function to set the whitlist.
  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWhitelist):
(WebCore::FontCache::setFontWhitelist):
(WebCore::toAppKitFontWeight):
(WebCore::toCoreTextFontWeight):
(WebCore::fontWithFamily): If ENABLE(PLATFORM_FONT_LOOKUP), use CTFontCreateForCSS().
(WebCore::FontCache::createFontPlatformData):

  • platform/spi/cocoa/CoreTextSPI.h: Add signature for CTFontCreateForCSS().

Source/WebKit/mac:

Add SPI to set the font whitelist.

  • WebView/WebView.mm:

(+[WebView _setFontWhitelist:]):

  • WebView/WebViewPrivate.h:

Source/WebKit2:

Add SPI to set the font whitelist.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetFontWhitelist):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setFontWhitelist):

  • UIProcess/WebProcessPool.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/Platform.h:

Opt-in using ENABLE(PLATFORM_FONT_LOOKUP)

Tools:

Make DumpRenderTree and WebKitTestRunner use the new font whitelist instead of
swizzling NSFontManager methods. This is predicated on ENABLE(PLATFORM_FONT_LOOKUP).

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontWhitelist):
(adjustFonts):
(createWebViewAndOffscreenWindow):

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::activateFonts):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):
(WTR::systemHiddenFontFamilySet):
(WTR::generateWhitelist):
(WTR::TestController::platformInitializeContext):

11:13 AM Changeset in webkit [183561] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix after r183553: fix declaration of QLPreviewScheme

  • platform/ios/QuickLookSoftLink.mm:
11:05 AM Changeset in webkit [183560] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[Mac] Use new device picker menu API
https://bugs.webkit.org/show_bug.cgi?id=144392

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the route state to the picker.

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac): m_deviceChangeTimer -> m_pendingActionTimer.
(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Renamed from
outputeDeviceAvailabilityChangedTimerFired.
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesDidChange): Use addPendingAction.
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Call new picker API if it is
available. New API returns true if a target is chosen, so call currentDeviceDidChange in that case.
(WebCore::MediaPlaybackTargetPickerMac::addPendingAction): New.
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Make asynchronous because it
can now be called from showPlaybackTargetPicker.
(WebCore::MediaPlaybackTargetPickerMac::outputeDeviceAvailabilityChangedTimerFired): Renamed
pendingActionTimerFired.

  • platform/spi/cocoa/AVKitSPI.h: Add new SPI.
10:44 AM Changeset in webkit [183559] by Yusuke Suzuki
  • 6 edits
    1 add in trunk/Source

REGRESSION (r183373): ASSERT failed in wtf/SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=144257

Reviewed by Darin Adler.

Source/JavaScriptCore:

SHA1 is used to calculate CodeBlockHash.
To calculate hash value, we pass the source code UTF-8 CString to SHA1::addBytes.
However, the source code can contain null character.
So when performing strlen on the source code's CString, it returns the incorrect length.
In SHA1::addBytes, there's assertion input.length() == strlen(string) and it fails.

In the template-literal-syntax.js, we perform eval with the script contains "\0".
As the result, strlen(string) accidentally shortened by the contained "\0", and assertion fails.

CString will be changed not to contain a null-character[1]. However, inserting the assertion here
is not correct. Because

  1. If CString should not contain a null character, this should be asserted in CString side instead of SHA1::addBytes.
  2. If CString can contain a null character, this assertion becomes incorrect.

So this patch just drops the assertion.

In the current implementation, we once convert the entire source code to the newly allocated
UTF-8 string and pass it to the SHA1 processing. However, this is memory consuming.
Ideally, we should stream the decoded bytes into the SHA1 processing iteratively.
We'll implement it in the separate patch[2].

[1]: https://bugs.webkit.org/show_bug.cgi?id=144339
[2]: https://bugs.webkit.org/show_bug.cgi?id=144263

  • tests/stress/eval-script-contains-null-character.js: Added.

(shouldBe):
(test):

  • tests/stress/template-literal-line-terminators.js:
  • tests/stress/template-literal-syntax.js:
  • tests/stress/template-literal.js:

Source/WTF:

  • wtf/SHA1.h:

(WTF::SHA1::addBytes):

10:42 AM Changeset in webkit [183558] by ap@apple.com
  • 2 edits in trunk/Tools

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Reviewed by Andreas Kling.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues):

Make sure that test window is "visible" before each test. While there is no concrete
evidence that this is the problem indeed, the behavior is consistent with what would
happen for an invisible window. Also, WKTR obviously needs to do this to protect
against potential buggy tests that hide the window and don't show it.

10:38 AM Changeset in webkit [183557] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Evict IsEnvironmentRecord from inline type flags
https://bugs.webkit.org/show_bug.cgi?id=144398

Reviewed by Mark Lam and Michael Saboff.

In https://bugs.webkit.org/show_bug.cgi?id=144397, we'll need an extra bit in the inline
type flags. This change picks the least important inline type flag - IsEnvironmentRecord -
and evicts it into the out-of-line type flags. This change has no performance implications
because we never even accessed IsEnvironmentRecord via the StructureIDBlob. The only place
where we access it at all is in String.prototype.repeat, and there we already load the
structure anyway.

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::implementsHasInstance):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::isEnvironmentRecord):

10:31 AM Changeset in webkit [183556] by bshafiei@apple.com
  • 6 edits
    2 copies in tags/Safari-601.1.31/Source/WebCore

Merged r183553. rdar://problem/20625299

10:09 AM Changeset in webkit [183555] by Antti Koivisto
  • 3 edits
    3 adds in trunk

Main resource loaded via 304 response becomes empty if reloaded by user
https://bugs.webkit.org/show_bug.cgi?id=144386

Reviewed by Darin Adler.

Source/WebCore:

Memory cache layer may make a main resource request conditional (add If-modified-since/If-none-match header).
DocumentLoader stores the final ResourceRequest associated with document. If user triggered reload for
conditionally loaded document DocumentLoader would include the same conditionals to the new request as well.
Since these were not added by the memory cache it would pass any 304 response back to the DocumentLoader.
However DocumentLoader has no code to handle 304 so we would end up with an empty document.

Test: http/tests/cache/main-resource-304-reload.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Ensure DocumentLoader doesn't issue conditional requests.

LayoutTests:

  • http/tests/cache/main-resource-304-reload-expected.txt: Added.
  • http/tests/cache/main-resource-304-reload.html: Added.
  • http/tests/cache/resources/iframe304body.php: Added.
9:50 AM Changeset in webkit [183554] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

Replace HTMLMediaElement's seek timer with a task queue.
https://bugs.webkit.org/show_bug.cgi?id=144353

Reviewed by Eric Carlson.

No change in functionality, so no new tests added.

Replace a zero-length timer with an explicit task queue, backed by Document's postTask(). To
make enqueued tasks cancellable, add a new GenericTaskQueue class modelled on
GenericEventQueue which can cancel enqueued but not-yet-executed tasks.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/GenericTaskQueue.cpp: Added.

(WebCore::GenericTaskQueue::GenericTaskQueue): Initialize ivars.
(WebCore::GenericTaskQueue::enqueueTask): Wrap the task and pass it to the ScriptExecutionContext.
(WebCore::GenericTaskQueue::close): Assert that the task queue will not accept any additional tasks.
(WebCore::GenericTaskQueue::cancelAllTasks): Revoke outstanding weak pointers, thereby cancelling tasks.

  • dom/GenericTaskQueue.h: Added.

(WebCore::GenericTaskQueue::hasPendingTasks):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the task queue.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Close the task queue.
(WebCore::HTMLMediaElement::seekWithTolerance): Post a task, rather than start a timer.
(WebCore::HTMLMediaElement::seekTask): Renamed from seekTimerFired().
(WebCore::HTMLMediaElement::seekTimerFired): Deleted.

  • html/HTMLMediaElement.h:
9:39 AM Changeset in webkit [183553] by ddkilzer@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
<http://webkit.org/b/144362>

Reviewed by Andy Estes.

This patch switches soft-linking of QuickLook.framework to
QuickLookSoftLink.{h,mm} so that we stop exporting unintended
symbols.

No new tests since no change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • Add QuickLookSoftLinking.{h,mm} to the project.
  • platform/ios/QuickLookSoftLink.h: Added.
  • platform/ios/QuickLookSoftLink.mm: Added.
  • platform/mac/SoftLinking.h:

(SOFT_LINK_CLASS_FOR_HEADER): Add macro.
(SOFT_LINK_CLASS_FOR_SOURCE): Add macro.

  • platform/network/ios/QuickLook.h:
  • Remove unused declarations.
  • platform/network/ios/QuickLook.mm:

(WebCore::QLPreviewConverterClass): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
(WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.

  • Remove SOFT_LINK macros and unused methods after switching to new QuickLookSoftLink.{h,mm}.

(WebCore::QLPreviewGetSupportedMIMETypesSet):

  • Switch to use NeverDestroyed<>.

(WebCore::registerQLPreviewConverterIfNeeded):
(createQLPreviewProtocol):
(WebCore::QLPreviewProtocol):
(WebCore::QuickLookHandle::QuickLookHandle):
(WebCore::QuickLookHandle::create):
(WebCore::QuickLookHandle::shouldCreateForMIMEType):

  • Simplify code when using QuickLookSoftLink.h.
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • Include QuickLookSoftLink.h header.
9:33 AM Changeset in webkit [183552] by Darin Adler
  • 10 edits
    3 adds in trunk

[ES6] Implement Unicode code point escapes
https://bugs.webkit.org/show_bug.cgi?id=144377

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • parser/Lexer.cpp: Moved the UnicodeHexValue class in here from

the header. Made it a non-member class so it doesn't need to be part
of a template. Made it use UChar32 instead of int for the value to
make it clearer what goes into this class.
(JSC::ParsedUnicodeEscapeValue::isIncomplete): Added. Replaces the
old type() function.
(JSC::Lexer<CharacterType>::parseUnicodeEscape): Renamed from
parseFourDigitUnicodeHex and added support for code point escapes.
(JSC::isLatin1): Added an overload for UChar32.
(JSC::isIdentStart): Changed this to take UChar32; no caller tries
to call it with a UChar, so no need to overload for that type for now.
(JSC::isNonLatin1IdentPart): Changed argument type to UChar32 for clarity.
Also added FIXME about a subtle ES6 change that we might want to make later.
(JSC::isIdentPart): Changed this to take UChar32; no caller tries
to call it with a UChar, so no need to overload for that type for now.
(JSC::isIdentPartIncludingEscapeTemplate): Made this a template so that we
don't need to repeat the code twice. Added code to handle code point escapes.
(JSC::isIdentPartIncludingEscape): Call the template instead of having the
code in line.
(JSC::Lexer<CharacterType>::recordUnicodeCodePoint): Added.
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase): Made small tweaks and
updated to call parseUnicodeEscape instead of parseFourDigitUnicodeHex.
(JSC::Lexer<CharacterType>::parseComplexEscape): Call parseUnicodeEscape
instead of parseFourDigitUnicodeHex. Move the code to handle "\u" before
the code that handles the escapes, since the code point escape code now
consumes characters while parsing rather than peeking ahead. Test case
covers this: Symptom would be that "\u{" would evaluate to "u" instead of
giving a syntax error.

  • parser/Lexer.h: Updated for above changes.
  • runtime/StringConstructor.cpp:

(JSC::stringFromCodePoint): Use ICU's UCHAR_MAX_VALUE instead of writing
out 0x10FFFF; clearer this way.

Source/WebCore:

Test: js/unicode-escape-sequences.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseEscape): Use ICU's UCHAR_MAX_VALUE instead of writing
out 0x10FFFF; clearer this way. Also use our replacementCharacter instead of
writing out 0xFFFD.

  • html/parser/HTMLEntityParser.cpp:

(WebCore::isAlphaNumeric): Deleted.
(WebCore::HTMLEntityParser::legalEntityFor): Use ICU's UCHAR_MAX_VALUE and
U_IS_SURROGATE instead of writing the code out. Didn't use U_IS_UNICODE_CHAR
because that also includes U_IS_UNICODE_NONCHAR and thus would change behavior,
but maye it's something we want to do in the future.
(WebCore::HTMLEntityParser::consumeNamedEntity): Use isASCIIAlphanumeric instead
of a the function in this file that does the same thing less efficiently.

  • html/parser/InputStreamPreprocessor.h:

(WebCore::InputStreamPreprocessor::processNextInputCharacter): Use
replacementCharacter from CharacterNames.h instead of writing out 0xFFFd.

  • xml/parser/CharacterReferenceParserInlines.h:

(WebCore::consumeCharacterReference): Use ICU's UCHAR_MAX_VALUE instead of
defining our own local highestValidCharacter constant.

LayoutTests:

  • js/script-tests/unicode-escape-sequences.js: Added.
  • js/unicode-escape-sequences-expected.txt: Added.
  • js/unicode-escape-sequences.html: Added. Generated with make-script-test-wrappers.
9:32 AM Changeset in webkit [183551] by peavo@outlook.com
  • 2 edits in trunk/WebKitLibraries

[WinCairo] Turn on WebGL.
https://bugs.webkit.org/show_bug.cgi?id=144389

Reviewed by Brent Fulgham.

  • win/tools/vsprops/FeatureDefinesCairo.props:
9:20 AM Changeset in webkit [183550] by Martin Robinson
  • 12 edits in trunk

[CMake] [GTK] Organize and clean up unused CMake variables
https://bugs.webkit.org/show_bug.cgi?id=144364

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsGTK.cmake: Remove unused variables and move variables

specific to certain projects into their PlatformGTK.cmake files.

Source/JavaScriptCore:

  • PlatformGTK.cmake: Add variables specific to this project.

Source/WebCore:

  • PlatformGTK.cmake: Add variables specific to this project.

Source/WebKit2:

  • PlatformGTK.cmake: Add variables specific to this project.
  • webkit2gtk-web-extension.pc.in: Hardcode the GTK+ API version. It rarely changes.
  • webkit2gtk.pc.in: Ditto.

Source/WTF:

  • wtf/PlatformGTK.cmake: Add variables specific to this project.
9:15 AM Changeset in webkit [183549] by mmaxfield@apple.com
  • 3 edits in branches/safari-600.6-branch/LayoutTests

fast/text/ruby-justification-flush.html fails on safari-600.6-branch
https://bugs.webkit.org/show_bug.cgi?id=144294

Reviewed by Andy Estes.

Simply adjust the numbers to make floating point math divide easier.

  • fast/text/ruby-justification-flush-expected.html:
  • fast/text/ruby-justification-flush.html:
8:55 AM Changeset in webkit [183548] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk/Source/JavaScriptCore

TypeOf should return SpecStringIdent and the DFG should know this
https://bugs.webkit.org/show_bug.cgi?id=144376

Reviewed by Andreas Kling.

Make TypeOf return atomic strings. That's a simple change in SmallStrings.

Make the DFG know this and use it for optimization. This makes Switch(TypeOf) a bit less
bad.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::setType):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::setType):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initialize):

  • tests/stress/switch-typeof-indirect.js: Added.

(bar):
(foo):
(test):

  • tests/stress/switch-typeof-slightly-indirect.js: Added.

(foo):
(test):

  • tests/stress/switch-typeof.js: Added.

(foo):
(test):

8:49 AM Changeset in webkit [183547] by Carlos Garcia Campos
  • 7 edits in trunk/Source

REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573
https://bugs.webkit.org/show_bug.cgi?id=144388

Reviewed by Brady Eidson.

Source/WebCore:

There used to be a method in ContextMenuItem to check if share
menu item was supported or not, but since r182573, there's a
method to get the share menu item. If the returned menu item is
null, it's not added to the menu, but we are not returning a null
ContextMenu item even though we don't support share menu item.

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::shareMenuItem): Return a null ContextMenuItem.

Source/WebKit2:

Move the WebContextMenuClient::shareMenuItem() implementation to
platform files, since platforms not supporting share menu item
should return a null ContextMenuIem instead.

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::shareMenuItem): Deleted.

  • WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp:

(WebKit::WebContextMenuClient::shareMenuItem):

  • WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:

(WebKit::WebContextMenuClient::shareMenuItem):

  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareMenuItem):

8:47 AM Changeset in webkit [183546] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r183467): [SOUP] isMainResource is no longer passed as resource load parameters to the network process
https://bugs.webkit.org/show_bug.cgi?id=144381

Reviewed by Darin Adler.

A requester enum value is passed now as part of the
ResourceRequest, but it's not encoded/decoded for soup.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): Encode requester.
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): Decode requester.

7:34 AM Changeset in webkit [183545] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] Build failure to find gio-unix
https://bugs.webkit.org/show_bug.cgi?id=144083

Reviewed by Gyuyoung Kim.

Original patch by Doug Newgard <scimma22@outlook.com>

  • Source/cmake/OptionsEfl.cmake: Moved geoclue block before find_package(GLIB...)
6:13 AM Changeset in webkit [183544] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

Switch to std::function<>, std::bind() in MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=144232

Reviewed by Darin Adler.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
Replace uses of WTF::Function<> and WTF::bind() with the STL alternatives.

5:43 AM Changeset in webkit [183543] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix /webkit2/WebKitWebInspectorServer/test-open-debugging-session.

Latest changes in the inspector UI made this test fail. We were
relying that the sidebar was always visible and the first 'li'
element of the inspector was the one containing the title. This is
no longer true, so better use document title that is not likely
to change.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:

(openRemoteDebuggingSession):

5:10 AM Changeset in webkit [183542] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Re-sorted my contributor's mails to help bugzilla on showing the proper one.

Patch by Andres Gomez <Andres Gomez> on 2015-04-29

  • Scripts/webkitpy/common/config/contributors.json:
5:05 AM Changeset in webkit [183541] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Created a new watchlist for changes in WebInspectorUI images and added myself to it.

Patch by Andres Gomez <Andres Gomez> on 2015-04-29

  • Scripts/webkitpy/common/config/watchlist:
4:14 AM Changeset in webkit [183540] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Allow to run the tests on the native X display
https://bugs.webkit.org/show_bug.cgi?id=144247

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-29
Reviewed by Gyuyoung Kim.

Added the USE_NATIVE_XDISPLAY option for the WTR.
We can select the Xorg driver if environment variable is set up before running the tests.

  • Scripts/webkitpy/port/efl.py:

(EflPort._driver_class):

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

[GTK] Add libnotify-dev in gtk install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=144379

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-29
Reviewed by Žan Doberšek.

  • gtk/install-dependencies:
1:23 AM Changeset in webkit [183538] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix crash in WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock().
https://bugs.webkit.org/show_bug.cgi?id=140261

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-04-29
Reviewed by Darin Adler.

Source/WebCore:

We need to check whether RenderObject is valid in RenderView::fooSubtreeSelection functions
because invalid object has caused a crash. This patch adds isValidObjectForNewSelection(), and use it.

  • rendering/RenderView.cpp:

(WebCore::isValidObjectForNewSelection):
(WebCore::RenderView::clearSubtreeSelection):
(WebCore::RenderView::applySubtreeSelection):

LayoutTests:

  • editing/execCommand/crash-140261-expected.txt: Added.
  • editing/execCommand/crash-140261.html: Added.
1:18 AM Changeset in webkit [183537] by youenn.fablet@crf.canon.fr
  • 10 edits
    4 adds in trunk

Synchronous XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=143711

Reviewed by Darin Adler.

Source/WebCore:

This patch checks whether a substitute resource data is stored in memory or in file for synchronous loads.
If data is stored in file, it reads the data through SharedBuffer::createWithContentsOfFile.
This patch refactors some routines to replace Vector<char> by SharedBuffer to transmit response data.

Test: http/tests/appcache/simple-video-sync.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/FrameLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::createFileURL):
(WebCore::ApplicationCacheHost::maybeLoadSynchronously):
(WebCore::ApplicationCacheHost::maybeLoadFallbackSynchronously):

  • loader/appcache/ApplicationCacheHost.h:
  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

LayoutTests:

  • http/tests/appcache/resources/fake-video.mp4: Added.
  • http/tests/appcache/resources/simple-video-sync.manifest: Added.
  • http/tests/appcache/simple-video-sync-expected.txt: Added.
  • http/tests/appcache/simple-video-sync.html: Added.
1:17 AM Changeset in webkit [183536] by Gyuyoung Kim
  • 34 edits in trunk/Source/WebCore

Purge PassRefPtr from createSVGPathSegFoo factory functions
https://bugs.webkit.org/show_bug.cgi?id=144374

Reviewed by Darin Adler.

Use Ref instead of PassRefPtr in createSVGPathSegFoo functions because
those factory functions can't return null. Additionally let's remove unnecessary
#include<PassRefPtr.h> there.

No new tests, no behavior changes.

  • svg/SVGColor.cpp:

(WebCore::SVGColor::cloneForCSSOM):

  • svg/SVGColor.h:
  • svg/SVGGlyphMap.h:

(WebCore::GlyphMapNode::create):

  • svg/SVGPaint.cpp:

(WebCore::SVGPaint::cloneForCSSOM):

  • svg/SVGPaint.h:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::createSVGPathSegClosePath):
(WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
(WebCore::SVGPathElement::createSVGPathSegMovetoRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
(WebCore::SVGPathElement::createSVGPathSegArcAbs):
(WebCore::SVGPathElement::createSVGPathSegArcRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):

  • svg/SVGPathElement.h:
  • svg/SVGPathSegArcAbs.h:

(WebCore::SVGPathSegArcAbs::create):

  • svg/SVGPathSegArcRel.h:

(WebCore::SVGPathSegArcRel::create):

  • svg/SVGPathSegClosePath.h:

(WebCore::SVGPathSegClosePath::create):

  • svg/SVGPathSegCurvetoCubicAbs.h:

(WebCore::SVGPathSegCurvetoCubicAbs::create):

  • svg/SVGPathSegCurvetoCubicRel.h:

(WebCore::SVGPathSegCurvetoCubicRel::create):

  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:

(WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):

  • svg/SVGPathSegCurvetoCubicSmoothRel.h:

(WebCore::SVGPathSegCurvetoCubicSmoothRel::create):

  • svg/SVGPathSegCurvetoQuadraticAbs.h:

(WebCore::SVGPathSegCurvetoQuadraticAbs::create):

  • svg/SVGPathSegCurvetoQuadraticRel.h:

(WebCore::SVGPathSegCurvetoQuadraticRel::create):

  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:

(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):

  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:

(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):

  • svg/SVGPathSegLinetoAbs.h:

(WebCore::SVGPathSegLinetoAbs::create):

  • svg/SVGPathSegLinetoHorizontalAbs.h:

(WebCore::SVGPathSegLinetoHorizontalAbs::create):

  • svg/SVGPathSegLinetoHorizontalRel.h:

(WebCore::SVGPathSegLinetoHorizontalRel::create):

  • svg/SVGPathSegLinetoRel.h:

(WebCore::SVGPathSegLinetoRel::create):

  • svg/SVGPathSegLinetoVerticalAbs.h:

(WebCore::SVGPathSegLinetoVerticalAbs::create):

  • svg/SVGPathSegLinetoVerticalRel.h:

(WebCore::SVGPathSegLinetoVerticalRel::create):

  • svg/SVGPathSegMovetoAbs.h:

(WebCore::SVGPathSegMovetoAbs::create):

  • svg/SVGPathSegMovetoRel.h:

(WebCore::SVGPathSegMovetoRel::create):

  • svg/SVGViewSpec.h:

(WebCore::SVGViewSpec::create):

  • svg/animation/SMILTimeContainer.h:

(WebCore::SMILTimeContainer::create):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::ConditionEventListener::create):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.h:
  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

  • svg/graphics/filters/SVGFilter.h:
12:53 AM Changeset in webkit [183535] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(181868): Windows Live SkyDrive cannot open an excel file
https://bugs.webkit.org/show_bug.cgi?id=144373

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Darin Adler.

Source/JavaScriptCore:

Revert r181868 as it caused a failure on live.com. We can try
re-enabling this exception after we make idl attributes configurable,
which may have prevented this particular failure.

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):

LayoutTests:

  • js/property-getters-and-setters-expected.txt:
  • js/script-tests/property-getters-and-setters.js:

Apr 28, 2015:

11:20 PM Changeset in webkit [183534] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:18 PM Changeset in webkit [183533] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.31

New tag.

11:18 PM Changeset in webkit [183532] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[SOUP] Use xattrs to get/set the creation time of disk cache files
https://bugs.webkit.org/show_bug.cgi?id=144251

Reviewed by Martin Robinson.

The network process disk cache uses the creation time to compute a
worth value used to determine the order in which cached resources
are deleted when the cache is shrunk. In some operating systems
like Linux there's no st_birthtime in struct stat, but since cache
files are always created and deleted by us, we could use a custom
xattr to store and retrieve the creation time of cached resources.

  • NetworkProcess/cache/NetworkCacheFileSystemPosix.h:

(WebKit::NetworkCache::fileTimes):

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel):

11:14 PM Changeset in webkit [183531] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested
https://bugs.webkit.org/show_bug.cgi?id=144337

Reviewed by Antti Koivisto.

We send a buffer or a memory mapped handler to the web process
depending on whether the resource body is mapped or not, but we
are always creating a shared buffer even for mapped resources.
Split initializeBufferFromStorageRecord() moving the mapped memory
handler initialization to its own method.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
Initialize the mapped memory handler if the body data is mapped.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
Initialize the buffer by wrapping the mapped memory if the body
data is mapped, or using the body data directly otherwise.
(WebKit::NetworkCache::Entry::shareableResourceHandle): Call
initializeShareableResourceHandleFromStorageRecord() if the
handler is null.

  • NetworkProcess/cache/NetworkCacheEntry.h:
10:51 PM Changeset in webkit [183530] by Simon Fraser
  • 6 edits in trunk/Source

Make a non-static version of FrameView::yPositionForRootContentLayer()
https://bugs.webkit.org/show_bug.cgi?id=144375

Reviewed by Andy Estes.

There were two calls to the static FrameView::yPositionForRootContentLayer()
which passed in all the arguments for the same FrameView. Make a member
function for convenience.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::yPositionForRootContentLayer):

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateRootLayerPosition):

Source/WebKit2:

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::shadowLayerPositionForFrame):

10:05 PM Changeset in webkit [183529] by ryuan.choi@navercorp.com
  • 31 edits
    5 moves
    1 delete in trunk

[CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
https://bugs.webkit.org/show_bug.cgi?id=143001

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake: Removed TILED_BACKING_STORE definition.
  • Source/cmake/OptionsGTK.cmake: Ditto.

Source/WebCore:

TiledBackingStore has only been used by Coordinated Graphics since Qt and WebKit1/Efl were dropped.
So, this patch replaces USE(TILED_BACKING_STORE) with USE(COORDINATED_GRAPHICS) to merge the features.

In addition, this moves TiledBackingStore and related files from platform to platform/texmap/coordinated
where other coordinated graphics files are located.

  • CMakeLists.txt: Move TiledBackingStore.cpp because this is not common file.
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.vcxproj/WebCore.vcxproj: Follow new location of TiledBackingStore* files.
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • loader/EmptyClients.h:
  • page/Chrome.cpp:
  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/Frame.cpp:

(WebCore::Frame::createView):

  • page/FrameView.cpp:

(WebCore::FrameView::requestScrollPositionUpdate):

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):

  • platform/HostWindow.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
(WebCore::ScrollView::visibleContentRectInternal):
(WebCore::ScrollView::scrollTo):

  • platform/ScrollView.h:
  • platform/graphics/cairo/TileCairo.h: Removed because it is dead code since r169328
  • platform/graphics/texmap/coordinated/Tile.h: Renamed from Source/WebCore/platform/graphics/Tile.h.
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.cpp.
  • platform/graphics/texmap/coordinated/TiledBackingStore.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.h.
  • platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreBackend.h.
  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreClient.h.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::delegatedScrollRequested):
Deleted because WIN does not use Coordinated Graphics.

Source/WebKit2:

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSize):
(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::canHandleUserEvents):

  • WebProcess/WebPage/WebPage.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::shouldUseFixedLayout):

9:39 PM Changeset in webkit [183528] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.30.2.1/Source

Versioning.

9:37 PM Changeset in webkit [183527] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30.2.1

New tag.

8:56 PM Changeset in webkit [183526] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Deadlock on applications using JSContext on non-main thread
https://bugs.webkit.org/show_bug.cgi?id=144370

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::singleton):
Prevent a possible deadlock by assuming we can synchronously
run something on the main queue at this time.

8:34 PM Changeset in webkit [183525] by fpizlo@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

FTL should fully support Switch (it currently lacks the SwitchString variant)
https://bugs.webkit.org/show_bug.cgi?id=144348

Reviewed by Benjamin Poulain.

This adds SwitchString support to the FTL. This is already tested by switch microbenchmarks
in LayoutTests/js/regress.

  • dfg/DFGCommon.cpp:

(JSC::DFG::stringLessThan):

  • dfg/DFGCommon.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::switchString):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::StringSwitchCase):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::operator<):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::CharacterCase):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::operator<):
(JSC::FTL::LowerDFGToLLVM::switchStringRecurse):
(JSC::FTL::LowerDFGToLLVM::switchStringSlow):
(JSC::FTL::LowerDFGToLLVM::appendOSRExit):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::check):

  • ftl/FTLOutput.h:
  • ftl/FTLWeight.h:

(JSC::FTL::Weight::inverse):

  • jit/JITOperations.h:
7:26 PM Changeset in webkit [183524] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION(180076): [Mac, iOS] Correct possible null dereference in printing code
https://bugs.webkit.org/show_bug.cgi?id=144366
<rdar://problem/20533513>

Reviewed by Dean Jackson.

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk): Check if the document settings is a nullptr
before attempting to dereference it.

7:12 PM Changeset in webkit [183523] by akling@apple.com
  • 35 edits in trunk/Source/WebCore

Simplify DOM wrapper destruction, don't deref() in finalizers.
<https://webkit.org/b/144183>

Reviewed by Darin Adler.

DOM JS bindings had two mechanisms to call deref() on the WebCore object,
once through a weak finalizer, and once through the JSCell's regular destructor.

That was once believed to be an optimization, but these days the finalizer will
run just moments before the destructor anyway, all in the same call stack.
And more importantly, the finalizer is not guaranteed to run, for instance in the
case where a Weak is assigned to after going dead, but before the WeakBlock
has been swept by the incremental sweeper.

Simplify this by just removing the deref() from the generated finalizers.
This makes it easier to reason about DOM wrapper destruction, and eliminates
the awkward time window where a DOM wrapper could have a null impl().

We could spend more time on figuring out a way to have finalizers manage the
destruction of these wrappers, but that would require fundamental changes to
our implementation of JSC::Weak pointers. It would allow us to make JSDOMWrapper
destructor-less, and shrink each wrapper object by 1 pointer (the ClassInfo*.)
However the risk:reward ratio does not seem justified at this point in time.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

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

(WebCore::JSTestActiveDOMObject::~JSTestActiveDOMObject):
(WebCore::JSTestActiveDOMObjectOwner::finalize):

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

(WebCore::JSTestCustomNamedGetter::~JSTestCustomNamedGetter):
(WebCore::JSTestCustomNamedGetterOwner::finalize):

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

(WebCore::JSTestEventConstructor::~JSTestEventConstructor):
(WebCore::JSTestEventConstructorOwner::finalize):

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

(WebCore::JSTestEventTarget::~JSTestEventTarget):
(WebCore::JSTestEventTargetOwner::finalize):

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

(WebCore::JSTestException::~JSTestException):
(WebCore::JSTestExceptionOwner::finalize):

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

(WebCore::JSTestGenerateIsReachable::~JSTestGenerateIsReachable):
(WebCore::JSTestGenerateIsReachableOwner::finalize):

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

(WebCore::JSTestInterface::~JSTestInterface):
(WebCore::JSTestInterfaceOwner::finalize):

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

(WebCore::JSTestMediaQueryListListener::~JSTestMediaQueryListListener):
(WebCore::JSTestMediaQueryListListenerOwner::finalize):

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

(WebCore::JSTestNamedConstructor::~JSTestNamedConstructor):
(WebCore::JSTestNamedConstructorOwner::finalize):

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

(WebCore::JSTestNondeterministic::~JSTestNondeterministic):
(WebCore::JSTestNondeterministicOwner::finalize):

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

(WebCore::JSTestObj::~JSTestObj):
(WebCore::JSTestObjOwner::finalize):

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

(WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructorsOwner::finalize):

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

(WebCore::JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):

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

(WebCore::JSTestTypedefs::~JSTestTypedefs):
(WebCore::JSTestTypedefsOwner::finalize):

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

(WebCore::JSattribute::~JSattribute):
(WebCore::JSattributeOwner::finalize):

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

(WebCore::JSreadonly::~JSreadonly):
(WebCore::JSreadonlyOwner::finalize):

  • bindings/scripts/test/JS/JSreadonly.h:
6:24 PM Changeset in webkit [183522] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.4

New tag.

5:57 PM Changeset in webkit [183521] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Build WinCairo without cygwin.
https://bugs.webkit.org/show_bug.cgi?id=144365

Reviewed by Myles Maxfield.

  • WebCore.vcxproj/WebCoreGeneratedWinCairo.make:

Pass the CC executable to build-generated-files.pl like r182164.

  • WebCore.vcxproj/build-generated-files.pl:

Default to 8 CPUs unless otherwise specified.

5:51 PM Changeset in webkit [183520] by commit-queue@webkit.org
  • 13 edits in trunk/Tools

Increase stablility of run-benchmark script
https://bugs.webkit.org/show_bug.cgi?id=144361

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-28
Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:

(main):

  • Scripts/webkitpy/benchmark_runner/README.md: Update readme due to changes.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Improve error handling and remove an unnecessary loop.

(BenchmarkRunner.init):
(BenchmarkRunner.execute):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.prepareEnv): Remove saved sessions of Safari.

  • Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Upload 'results' rather than 'time'.
  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Update formate.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Update formate.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

(ServerControl.render_POST): Flush the buffer to make sure we can pass the result to stdout.

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

(HTTPServerDriver.fetchResult):
(HTTPServerDriver):
(HTTPServerDriver.killServer): Add kill server interface.
(HTTPServerDriver.getReturnCode): Add get return code interface.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Adjust to support new interfaces.

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(forceRemove): Provide python version of 'rm -rf'.

5:32 PM Changeset in webkit [183519] by bshafiei@apple.com
  • 4 edits
    9 copies in branches/safari-600.1.4.16-branch

Merged r183280. rdar://problem/20700030

5:22 PM Changeset in webkit [183518] by weinig@apple.com
  • 7 edits in trunk

[Content Extensions] Process NFAs individually to avoid having all NFAs live at the same time
https://bugs.webkit.org/show_bug.cgi?id=144363

Reviewed by Alex Christensen.

Source/WebCore:

This brings dirty memory use when compiling our test content extension down from ~300MB to ~100MB.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs): Deleted.

  • contentextensions/CombinedURLFilters.h:

Replace function that creates a Vector of all the NFAs with one that allows incremental processing
as they are created.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::addUniversalActionsToDFA):
Extract code to add universal actions into a helper, since we need to call it in two places now.

(WebCore::ContentExtensions::compileRuleList):
Adopt CombinedURLFilters::processNFAs. Now that we don't have a Vector of NFAs, we need to keep track
of whether or not any NFAs were processed and if we are currently processing the first NFA so we can
ensure that we have some bytecode generated event for empty rule sets, and that universal actions are
placed on the first DFA.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):
Update tests to use a hand rolled createNFAs function on top of CombinedURLFilters::processNFAs.

4:27 PM Changeset in webkit [183517] by timothy_horton@apple.com
  • 29 edits in trunk/Source

[TextIndicator] Yellow highlight takes too long to fade out on scroll
https://bugs.webkit.org/show_bug.cgi?id=144358
<rdar://problem/19451011>

Reviewed by Beth Dakin.

  • page/TextIndicator.h:

Add Lifetime and DismissalAnimation enums.

(WebCore::TextIndicator::contentImageWithHighlight):
(WebCore::TextIndicator::contentImage):
Fix style.

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

(WebCore::TextIndicatorWindow::TextIndicatorWindow):
(WebCore::TextIndicatorWindow::~TextIndicatorWindow):
(WebCore::TextIndicatorWindow::clearTextIndicator):
(WebCore::TextIndicatorWindow::setTextIndicator):
(WebCore::TextIndicatorWindow::closeWindow):
(WebCore::TextIndicatorWindow::startFadeOut):
Rename m_startFadeOutTimer to m_temporaryTextIndicatorTimer (and related).
This is just about temporary-lifetime TextIndicators, like the ones
you get when the find-in-page UI is hidden but you hit Cmd-G.

Add clearTextIndicator, which takes a DismissalAnimation, providing
clients an opportunity to avoid the normal fade-out animation, if it
was going to happen.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _showTextIndicator]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView quickLookWithEvent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
Pull _clearTextIndicatorWithAnimation out, make it avoid using a dismissal animation
if we're called from didHandleScrollWheel.

  • WebView/WebView.mm:

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _setTextIndicator:]):
(-[WebView _setTextIndicator:withLifetime:]):
(-[WebView _clearTextIndicator]):
(-[WebView _showDictionaryLookupPopup:]):
(-[WebView _dictionaryLookupPopoverWillClose:]):
(-[WebView _setTextIndicator:fadeOut:]): Deleted.

  • WebView/WebViewInternal.h:

Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView renewGState]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:]):
(-[WKView _setTextIndicator:withLifetime:]):
(-[WKView _clearTextIndicatorWithAnimation:]):
(-[WKView magnifyWithEvent:]):
(-[WKView smartMagnifyWithEvent:]):
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):
(-[WKView _setTextIndicator:fadeOut:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::setTextIndicator):
(WebKit::WebPageProxy::clearTextIndicator):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):
Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
Make dismissContentRelativeChildWindows take a parameter indicating
whether the dismissal should include animation or not (currently
only applies to TextIndicator).
Don't animate when dismissal occurs because of scrolling, zooming,
or other things in which the content will have changed significantly
underneath the indicator and shouldn't have a slowly-fading-out yellow highlight.

4:16 PM Changeset in webkit [183516] by Michael Catanzaro
  • 14 edits in trunk

Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of

ENABLE_LLINT_C_LOOP, disabled by default.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.

Source/WebCore:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.

  • wtf/Platform.h:

Tools:

  • Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Always explicitly

set the value of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.

  • Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
4:04 PM Changeset in webkit [183515] by commit-queue@webkit.org
  • 14 edits in trunk

Unreviewed, rolling out r183514.
https://bugs.webkit.org/show_bug.cgi?id=144359

It broke cloop test bots (Requested by mcatanzaro on #webkit).

Reverted changeset:

"Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
https://bugs.webkit.org/show_bug.cgi?id=144304
http://trac.webkit.org/changeset/183514

3:50 PM Changeset in webkit [183514] by Michael Catanzaro
  • 14 edits in trunk

Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of

ENABLE_LLINT_C_LOOP, disabled by default.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.

Source/WebCore:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.

  • wtf/Platform.h:

Tools:

  • Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Perform sanity-

checking to ensure --cloop and --ftl-jit cannot be combined. Always explicitly set the value
of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.

  • Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
3:38 PM Changeset in webkit [183513] by ap@apple.com
  • 2 edits in trunk/LayoutTests

[WK2] fast/forms/input-search-press-escape-key.html crashes
https://bugs.webkit.org/show_bug.cgi?id=87168
rdar://problem/11508829

  • platform/wk2/TestExpectations: This doesn't crash for me any more, unskipping.
3:35 PM Changeset in webkit [183512] by Gyuyoung Kim
  • 3 edits in trunk/Tools

[CMake] Remove unnecessary include paths in TestWebKitAPI cmake files
https://bugs.webkit.org/show_bug.cgi?id=144319

Reviewed by Csaba Osztrogonác.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
3:21 PM Changeset in webkit [183511] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Checkboxes on bugs.webkit.org are painted with stripes at some zoom levels.
https://bugs.webkit.org/show_bug.cgi?id=144351

Reviewed by Simon Fraser.

This patch ensures that CG context is properly restored after painting dashed/dotted lines.

Source/WebCore:

Test: fast/forms/checkbox-painting-with-hr.html

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLine):

LayoutTests:

  • fast/forms/checkbox-painting-with-hr-expected.html: Added.
  • fast/forms/checkbox-painting-with-hr.html: Added.
2:51 PM Changeset in webkit [183510] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Provide contentsToView() and viewToContents() functions on ScrollView, and use them
https://bugs.webkit.org/show_bug.cgi?id=144357

Reviewed by Tim Horton.

Too much code was consulting topContentInset() and headerHeight() directly. Replace
with calls to new contentsToView() and viewToContents() functions, which wrap the
exisiting documentScrollOffsetRelativeToViewOrigin().

Use the new functions in FrameView and ScrollView coordinate mapping functions.

No behavior change.

  • page/FrameView.cpp:

(WebCore::FrameView::convertFromRendererToContainingView):
(WebCore::FrameView::convertFromContainingViewToRenderer):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::viewToContents):
(WebCore::ScrollView::contentsToView):
(WebCore::ScrollView::rootViewToContents):
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::rootViewToTotalContents):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):

  • platform/ScrollView.h:
2:40 PM Changeset in webkit [183509] by eric.carlson@apple.com
  • 15 edits in trunk/Source/WebCore

[Mac] Simplify code to support media engines which do not support target playback
https://bugs.webkit.org/show_bug.cgi?id=144332

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): Always make client
callback, let them decide if it is significant or not.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Handle CheckPlaybackTargetCompatablity.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::loadTimerFired): Renamed pendingActionTimerFired.
(WebCore::HTMLMediaElement::prepareForLoad): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::setDefaultPlaybackRate): Add logging.
(WebCore::HTMLMediaElement::clearMediaPlayer): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsSupported): Removed.
(WebCore::HTMLMediaElement::dispatchEvent): If a 'webkitcurrentplaybacktargetiswirelesschanged'
event is dispatched when the current target is wireless but the media engine does not support
wireless playback, tell the media engine not to play to the target.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::showPlaybackTargetPicker): Drive-by fix to disallow audio-only files.
(WebCore::HTMLMediaSession::currentPlaybackTargetIsSupported): Deleted.

  • html/HTMLMediaSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::isCurrentPlaybackTargetSupported): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Use a RetainPtr
to explicitly manage the lifetime of the temporary object.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): Ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetSupported): Deleted.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetSupported): Deleted.

2:19 PM Changeset in webkit [183508] by matthew_hanson@apple.com
  • 4 edits
    9 adds in branches/safari-600.7-branch

Merge r183280. rdar://problem/20694404

1:45 PM Changeset in webkit [183507] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix typo in previous commit

libsecretr -> libsecret in the error message.

  • Source/cmake/OptionsGTK.cmake:
1:45 PM Changeset in webkit [183506] by commit-queue@webkit.org
  • 10 edits in trunk

Fix common typo "targetting" => "targeting"
https://bugs.webkit.org/show_bug.cgi?id=144349

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Daniel Bates.

Source/JavaScriptCore:

  • bytecode/ExecutionCounter.h:

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::loadRequest):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):

  • WebView/WebPolicyDelegate.h:

Source/WebKit/win:

  • Interfaces/IWebPolicyDelegate.idl:

Tools:

  • Scripts/webkitdirs.pm:

(execMacWebKitAppForDebugging):

1:39 PM Changeset in webkit [183505] by Michael Catanzaro
  • 2 edits in trunk

[GTK] Clean up feature detection and make it hard to accidentally build without optional features
https://bugs.webkit.org/show_bug.cgi?id=143546

Reviewed by Martin Robinson.

Add USE_GSTREAMER_MPEGTS option and turn it off by default. Turn off ENABLE_SUBTLE_CRYPTO
by default. Turn on ENABLE_GEOLOCATION by default. Add USE_LIBNOTIFY and turn it on by
default. Fail the build with an informative error message if an optional dependency required
for an enabled feature is not present. Perform find_package commands only when necessary.
Make ENABLE_API_TESTS private. Alphabetize the feature checks (yes, this is actually
possible now!).

  • Source/cmake/OptionsGTK.cmake:
1:23 PM Changeset in webkit [183504] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Properly reset deleted count when clearing HashTables.
https://bugs.webkit.org/show_bug.cgi?id=144343

Reviewed by Andreas Kling.

  • wtf/HashTable.h:

(WTF::KeyTraits>::clear):
Reset m_deletedCount, which appears to have been forgotten.

1:18 PM Changeset in webkit [183503] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

Add support for lookup on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144342
rdar://problem/19994090

Reviewed by Tim Horton.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _lookup:]):
(-[WKContentView canPerformAction:withSender:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::getLookupContextAtPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getLookupContextAtPoint):

1:01 PM Changeset in webkit [183502] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.30.2/Source

Versioning.

12:59 PM Changeset in webkit [183501] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30.2

New tag.

12:58 PM Changeset in webkit [183500] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Update the features.json for WeakSet, WeakMap, Template literals, Tagged templates
https://bugs.webkit.org/show_bug.cgi?id=144328

Reviewed by Andreas Kling.

Update the status of ES6 features.

  • features.json:
12:40 PM Changeset in webkit [183499] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[Content Extensions] Use less memory for CombinedURLFilters.
https://bugs.webkit.org/show_bug.cgi?id=144290

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-28
Reviewed by Andreas Kling.

Source/WebCore:

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs):

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::setActions):

  • contentextensions/NFA.h:
  • contentextensions/NFANode.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::Term::generateGraph):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Use Vectors instead of HashTables in PrefixTreeVertex because the sets stay small and need to be more memory efficient.

Source/WTF:

  • wtf/Forward.h:
  • wtf/Vector.h:

Added a minCapacity template parameter to allow changing the minimum size of an
allocated buffer. The default minCapacity is kept at 16 unless otherwise specified
to have no change on existing code, but this could be changed later. A smaller
default minCapacity would use less memory with small Vectors but spend more time
copying when expanding to large Vectors.

12:38 PM Changeset in webkit [183498] by beidson@apple.com
  • 20 edits in trunk/Source

Consolidate most "frame load" arguments into FrameLoadRequest.
https://bugs.webkit.org/show_bug.cgi?id=144276

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

This patch starts the long overdue process of wrangling the insane load methods in FrameLoader.

Humble beginnings of this long process:

  • Put most of the various "frame load" arguments that are passed around within FrameLoader on FrameLoadRequest.
  • Get rid of the "easy" constructors of FrameLoadRequest, forcing users to actually think about what they're doing.
  • Change a private FrameLoader load method (urlSelected) to take a FrameLoadRequest instead of argument gobbledygook.
  • Change a public FrameLoader load methods (changeLocation) to take a FrameLoadRequest instead of gobbledygook.

These cover the straightforward changes where it was easy to figure out what the values of the FrameLoadRequest
arguments were from these various call sites.

Further refactoring can be done in much smaller patches, handling fewer cases at a time. Little by little we will be
able to reduce the number of "load" methods on FrameLoader and make sure that they mainly only take a FrameLoadRequest
as an argument.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::lockHistory):
(WebCore::FrameLoadRequest::lockBackForwardList):
(WebCore::FrameLoadRequest::shouldSendReferrer):
(WebCore::FrameLoadRequest::allowNavigationToInvalidURL):
(WebCore::FrameLoadRequest::newFrameOpenerPolicy):
(WebCore::FrameLoadRequest::shouldReplaceDocumentIfJavaScriptURL):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

12:27 PM Changeset in webkit [183497] by fpizlo@apple.com
  • 34 edits
    2 adds
    6 deletes in trunk/Source/JavaScriptCore

DFG should not use or preserve Phantoms during transformations
https://bugs.webkit.org/show_bug.cgi?id=143736

Reviewed by Geoffrey Garen.

Since http://trac.webkit.org/changeset/183207 and http://trac.webkit.org/changeset/183406, it is
no longer necessary to preserve Phantoms during transformations. They are still useful just
before FixupPhase to support backwards propagation analyses. They are still inserted late in the
game in the DFG backend. But transformations don't need to worry about them. Inside a basic
block, we can be sure that so long as the IR pinpoints the place where the value becomes
available in a bytecode register (using MovHint) and so long as there is a SetLocal anytime some
other block would need the value (either for OSR or for DFG execution), then we don't need any
liveness markers.

So, this removes any places where we inserted Phantoms just for liveness during transformation
and it replaces convertToPhantom() with remove(), which just converts the node to a Check. A
Check node only keeps its children so long as those children have checks.

The fact that we no longer convertToPhantom() means that we have to be more careful when
constant-folding GetLocal. Previously we would convertToPhantom() and use the fact that
Phantom(Phi) was a valid construct. It's not valid anymore. So, when constant folding encounters
a GetLocal it needs to insert a PhantomLocal directly. This allows us to simplify
Graph::convertToConstant() a bit. Luckily, none of the other users of this method would see
GetLocals.

The only Phantom-like cruft left over after this patch is:

  • Phantoms before FixupPhase. I kind of like these. It means that before FixupPhase, we can do backwards analyses and rely on the fact that the users of a node in DFG IR are a superset of the users of the original local's live range in bytecode. This is essential for supporting our BackwardsPropagationPhase, which is an important optimization for things like asm.js.


  • PhantomLocals and GetLocals being NodeMustGenerate. See discussion in https://bugs.webkit.org/show_bug.cgi?id=144086. It appears that this is not as evil as the alternatives. The best long-term plan is to simply ditch the ThreadedCPS IR entirely and have the DFG use SSA. For now, so long as any new DFG optimizations we add are block-local and treat GetLocal/SetLocal conservatively, this should all be sound.


This change should be perf-neutral although it does reduce the total work that the compiler
does.

(JSC::DFG::AdjacencyList::justChecks):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::replaceTerminal):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::findTerminal):

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::CPSRethreadingPhase):
(JSC::DFG::CPSRethreadingPhase::clearVariables):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGCleanUpPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.cpp.

(JSC::DFG::CleanUpPhase::CleanUpPhase):
(JSC::DFG::CleanUpPhase::run):
(JSC::DFG::performCleanUp):
(JSC::DFG::PhantomRemovalPhase::PhantomRemovalPhase): Deleted.
(JSC::DFG::PhantomRemovalPhase::run): Deleted.
(JSC::DFG::performPhantomRemoval): Deleted.

  • dfg/DFGCleanUpPhase.h: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.h.
  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::addBaseCheck):
(JSC::DFG::ConstantFoldingPhase::fixUpsilons):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):
(JSC::DFG::DCEPhase::cleanVariables):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertStringAddUse):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::checkArray):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixIntOrBooleanEdge):
(JSC::DFG::FixupPhase::fixDoubleOrBooleanEdge):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom): Deleted.
(JSC::DFG::FixupPhase::addPhantomsIfNecessary): Deleted.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::convertToConstant):
(JSC::DFG::Graph::mergeRelevantToOSR): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertCheck):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGLICMPhase.cpp:

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

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::remove):

  • dfg/DFGNode.h:

(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::convertToPhantom): Deleted.
(JSC::DFG::Node::convertToCheck): Deleted.
(JSC::DFG::Node::willHaveCodeGenOrOSR): Deleted.

  • dfg/DFGNodeFlags.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPhantomCanonicalizationPhase.cpp: Removed.
  • dfg/DFGPhantomCanonicalizationPhase.h: Removed.
  • dfg/DFGPhantomRemovalPhase.cpp: Removed.
  • dfg/DFGPhantomRemovalPhase.h: Removed.
  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGResurrectionForValidationPhase.cpp: Removed.
  • dfg/DFGResurrectionForValidationPhase.h: Removed.
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):

  • dfg/DFGStoreBarrierElisionPhase.cpp:

(JSC::DFG::StoreBarrierElisionPhase::elideBarrier):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::convertToIdentityOverChild):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileNoOp):
(JSC::FTL::LowerDFGToLLVM::compilePhantom): Deleted.

11:56 AM Changeset in webkit [183496] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250

Reviewed by Žan Doberšek.

Bump the version of Mesa to 10.5.4

  • gtk/jhbuild.modules:
11:54 AM Changeset in webkit [183495] by akling@apple.com
  • 7 edits
    3 adds in trunk

Source/JavaScriptCore:
DFG+FTL should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>

Reviewed by Geoff Garen & Filip Pizlo

Teach Branch nodes about StringUse and have them generate an efficient zero-length string check
instead of dropping out to C++ whenever we branch on a string.

The FTL JIT already handled Branch nodes with StringUse through its use of boolify(), so only
the DFG JIT gets some new codegen logic in this patch.

Test: js/regress/branch-on-string-as-boolean.js (~4.5x speedup)

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitStringBranch):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitBranch):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitBranch):

LayoutTests:
DFG should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>

Reviewed by Geoff Garen & Filip Pizlo.

  • js/regress/branch-on-string-as-boolean-expected.txt: Added.
  • js/regress/branch-on-string-as-boolean.html: Added.
  • js/regress/script-tests/branch-on-string-as-boolean.js: Added.
11:36 AM Changeset in webkit [183494] by mmaxfield@apple.com
  • 18 edits
    2 adds in trunk

Source/WebCore:
[Mac] [iOS] Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305

Reviewed by Andreas Kling.

This patch is fairly straightforward, though there are some particular pieces to the patch listed below.

The implementation of this font-synthesis CSS property lives inside FontCacheIOS and FontCacheMac. We already
determine if we should synthesize bold and italics, this CSS property simply guards that decision.

Because FontCache interacts with FontDescriptions and not RenderStyles, this patch moves the source of truth
regarding font-synthesis into FontDescription (from RenderStyle).

Test: fast/css3-text/font-synthesis.html

  • css/CSSPropertyNames.in: Mark font-synthesis as a FontProperty, which means that the relevant state is kept

inside FontDescription. This also means that the property must be marked as a "high priority" property, which
is enforced by it existing at the top of CSSPropertyNames.in. The move to FontDescription must be done so that
FontCacheIOS and FontCacheMac have access to the saved state.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle): Update to look for state in FontDescription instead of RenderStyle.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges): Guard the synthetic bold and synthic italic decision on the new
FontSynthesis state inside FontDescription.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertFontSynthesis): Moved from
StyleBuilderCustom::applyValueFontSynthesis(). This is because of the updated options inside of
CSSPropertyNames.in

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontSynthesis): Deleted.

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::FontDescription): Moved from RenderStyle.
(WebCore::FontDescription::fontSynthesis): Ditto.
(WebCore::FontDescription::setFontSynthesis): Ditto.
(WebCore::FontDescription::initialFontSynthesis): Ditto.
(WebCore::FontDescription::operator==): Update to include new state.

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionFontDataCacheKey::makeFlagKey): Make FontDescription hashes sensitive to the new
state inside FontDescription.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::createFontPlatformData): Guard the synthetic bold and synthetic italic decision on the
new FontSynthesis state inside FontDescription.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/text/TextFlags.h: Move FontSynthesis type from RenderStyleConstants.
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontSynthesis): Moved to FontDescription.
(WebCore::RenderStyle::setFontSynthesis): Ditto.
(WebCore::RenderStyle::initialFontSynthesis): Ditto.

  • rendering/style/RenderStyleConstants.h: Moved FontSynthesis type to TextFlags.
  • rendering/style/StyleRareInheritedData.h: Remove state regarding font synthesis (moved to FontDescription)

LayoutTests:
Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305

Reviewed by Andreas Kling.

Test all combinations of font-weight, font-style, and font-synthesis.

  • fast/css3-text/font-synthesis-expected.html: Added.
  • fast/css3-text/font-synthesis.html: Added.
11:04 AM Changeset in webkit [183493] by Brent Fulgham
  • 3 edits
    1 add in trunk/LayoutTests

[Win] Temporarily disable WebGL support
https://bugs.webkit.org/show_bug.cgi?id=144291

  • platform/win/TestExpectations:
  • platform/win/js/dom/constructor-length-expected.txt: Added.
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
11:04 AM Changeset in webkit [183492] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

VarargsForwardingPhase should only consider MovHints that have the candidate as a child
https://bugs.webkit.org/show_bug.cgi?id=144340

Reviewed by Michael Saboff and Mark Lam.

Since we were considering all MovHints, we'd assume that the CreateDirectArguments or
CreateClosedArguments node was live so long as any MovHinted bytecode variable was alive.
Basically, we'd keep it alive until the end of the block. This maximized the chances of
there being an interfering operation, which would prevent elimination.

The fix is to only consider MovHints that have the arguments candidate as a child. We only
care to track the liveness of those bytecode locals that would need an arguments object
recovery on OSR exit.

This is a speed-up on V8Spider/raytrace and Octane/raytrace because it undoes the regression
introduced in http://trac.webkit.org/changeset/183406.

  • dfg/DFGVarargsForwardingPhase.cpp:
11:04 AM WebKitGTK/StartHacking edited by Andres Gomez
Added link to icecc usage instructions (diff)
11:01 AM Changeset in webkit [183491] by Michael Catanzaro
  • 2 edits in trunk

[GTK] Make all options actually options
https://bugs.webkit.org/show_bug.cgi?id=144106

Reviewed by Martin Robinson.

Use WEBKIT_OPTION_DEFINE to set ENABLE_GTKDOC, ENABLE_INTROSPECTION, ENABLE_X11_TARGET, and
ENABLE_WAYLAND_TARGET.

  • Source/cmake/OptionsGTK.cmake:
10:57 AM Changeset in webkit [183490] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

10:45 AM Changeset in webkit [183489] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

SharedBuffer::copy is not computing the buffer size correctly when having m_dataArray
https://bugs.webkit.org/show_bug.cgi?id=144321

Reviewed by Darin Adler.

Patch correctness covered by existing tests.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::copy): Direct appending to m_dataArray and not using append method as this method updates the SharedBuffer size.

10:44 AM Changeset in webkit [183488] by ap@apple.com
  • 2 edits in trunk/Tools

Disable App Nap in WebKitTestRunner UI process
https://bugs.webkit.org/show_bug.cgi?id=144308

Reviewed by Daniel Bates.

  • WebKitTestRunner/mac/main.mm:

(disableAppNapInUIProcess):
(main):

10:38 AM Changeset in webkit [183487] by jer.noble@apple.com
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed gardening; add results for new tests.

  • media/audio-playback-restriction-autoplay-expected.txt: Added.
  • media/audio-playback-restriction-play-expected.txt: Added.
10:36 AM Changeset in webkit [183486] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Update JHBuild Mesa download directory
https://bugs.webkit.org/show_bug.cgi?id=144318

Update the download directory of Mesa module since the previous one
doesn't exist any more.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-04-28
Reviewed by Žan Doberšek.

  • gtk/jhbuild.modules:
10:28 AM Changeset in webkit [183485] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Curl] Memory leak.
https://bugs.webkit.org/show_bug.cgi?id=144327

Reviewed by Brent Fulgham.

When a data url is loaded, the ResourceHandle is not released.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::startJob):

10:14 AM Changeset in webkit [183484] by aestes@apple.com
  • 1 edit
    5 adds in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • platform/mac-mavericks/media/controls-after-reload-expected.png: Added.
  • platform/mac-mavericks/media/controls-after-reload-expected.txt: Added.
  • platform/mac-wk2/media/controls-after-reload-expected.png: Added.
  • platform/mac-wk2/media/controls-after-reload-expected.txt: Added.
10:05 AM Changeset in webkit [183483] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] PHP scripts fail if HTTP_ORIGIN is not set.
https://bugs.webkit.org/show_bug.cgi?id=144333

Rubberstamped by Brady Eidson.

  • http/tests/security/resources/cors-post-redirect-target.php: Check

that HTTP_ORIGIN key exists before using it to avoid PHP error.

10:05 AM Changeset in webkit [183482] by Yusuke Suzuki
  • 2 edits in trunk/Websites/webkit.org

Fix the link noted 'contribute to features' in status.html
https://bugs.webkit.org/show_bug.cgi?id=144331

Reviewed by Csaba Osztrogonác.

Fix the href of the link to http://www.webkit.org/coding/contributing.html.

  • status.html:
9:41 AM Changeset in webkit [183481] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Unreviewed, rolling out r183477.
https://bugs.webkit.org/show_bug.cgi?id=144334

Roll back the Mesa dependency bump in fear of uncaught
regressions while the testing bots are no-op. (Requested by
zdobersek on #webkit).

Reverted changeset:

"[GTK][jhbuild] Mesa build failure with llvm 3.6"
https://bugs.webkit.org/show_bug.cgi?id=144250
http://trac.webkit.org/changeset/183477

Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-28

9:39 AM Changeset in webkit [183480] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][Mac] Update WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=144315
<rdar://problem/20719293>

Reviewed by Alexey Proskuryakov.

Update sandbox profile for AWD similarly to what was done for iOS in
r182278.

  • WebProcess/com.apple.WebProcess.sb.in:
8:56 AM Changeset in webkit [183479] by Brent Fulgham
  • 8 edits
    1 add in trunk

[Win] Deactivate WebGL until Windows tests work properly
https://bugs.webkit.org/show_bug.cgi?id=144291
<rdar://problem/20707307>

Reviewed by Zalan Bujtas.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKitANGLE.props: Added.
  • WebKit.vcxproj/WebKit/WebKitCommon.props: Remove ANGLE link

libraries from common property sheet.

  • WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Reference

the WebKitANGLE property sheet.

  • WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Ditto.

Source/WTF:

  • wtf/FeatureDefines.h: Force WebGL off for Windows builds.

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: Turn off the WEB_GL

feature for the Apple Windows port.

8:52 AM Changeset in webkit [183478] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Mavericks Debug build after r183467.

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::requester): Removed WEBCORE_EXPORT.
(WebCore::ResourceRequestBase::setRequester): Ditto.

8:47 AM Changeset in webkit [183477] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250

Reviewed by Žan Doberšek.

Bump the version of Mesa to 10.5.4

  • gtk/jhbuild.modules:
8:19 AM Changeset in webkit [183476] by Csaba Osztrogonác
  • 2 edits
    1 delete in trunk/Source/JavaScriptCore

Remove WinCE cruft from cmake build system
https://bugs.webkit.org/show_bug.cgi?id=144325

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • create_jit_stubs: Removed.
8:11 AM Changeset in webkit [183475] by Csaba Osztrogonác
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove make-file-arrays.py
https://bugs.webkit.org/show_bug.cgi?id=144324

Reviewed by Gyuyoung Kim.

  • make-file-arrays.py: Removed.
8:03 AM Changeset in webkit [183474] by aestes@apple.com
  • 3 edits in branches/safari-600.6-branch/Tools

Fix webkitpy tests after r183471.

  • Scripts/webkitpy/port/mac_unittest.py:

(test_baseline_search_path): Taught about mac-mavericks.

  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:

(TestRebaselineTest.test_baseline_directory): Ditto.

7:37 AM Changeset in webkit [183473] by aestes@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

Add expectations for tests added in r183428 and r183450.

  • js/regress/typed-array-get-set-by-val-profiling-expected.txt: Added.
  • media/audio-playback-restriction-autoplay-expected.txt: Added.
  • media/audio-playback-restriction-play-expected.txt: Added.
7:19 AM Changeset in webkit [183472] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/network/ios/ResourceRequestIOS.mm:

(WebCore::ResourceRequest::ResourceRequest):

7:19 AM Changeset in webkit [183471] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/Tools

Tell mac.py about 'mac-yosemite' so that fallback to 'mac-mavericks' works properly.

  • Scripts/webkitpy/port/mac.py:

(MacPort):

6:35 AM Changeset in webkit [183470] by aestes@apple.com
  • 1 edit
    53 adds in branches/safari-600.6-branch/LayoutTests

Add results to platform/mac-mavericks/ that were previously in a separate repository.

  • platform/mac-mavericks/TestExpectations: Added.
  • platform/mac-mavericks/accessibility/aria-readonly-expected.txt: Added.
  • platform/mac-mavericks/canvas/philip/tests/2d.line.join.parallel-expected.txt: Added.
  • platform/mac-mavericks/css2.1/t0905-c5525-flthw-00-c-g-expected.txt: Added.
  • platform/mac-mavericks/css2.1/t0905-c5526-flthw-00-c-g-expected.txt: Added.
  • platform/mac-mavericks/fast/js/global-constructors-attributes-expected.txt: Added.
  • platform/mac-mavericks/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Added.
  • platform/mac-mavericks/fast/text/hyphenate-locale-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/bold-bengali-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/cjk-segmentation-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/hindi-spacing-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/khmer-selection-expected.txt: Added.
  • platform/mac-mavericks/fast/writing-mode/text-orientation-basic-expected.txt: Added.
  • platform/mac-mavericks/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt: Added.
  • platform/mac-mavericks/fonts/cursive-expected.txt: Added.
  • platform/mac-mavericks/http/tests/cache/partitioned-cache-expected.txt: Added.
  • platform/mac-mavericks/http/tests/cache/partitioned-cache-iframe-expected.txt: Added.
  • platform/mac-mavericks/http/tests/xmlhttprequest/head-redirection-expected.txt: Added.
  • platform/mac-mavericks/media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Added.
  • platform/mac-mavericks/platform/mac-wk2/TestExpectations: Added.
  • platform/mac-mavericks/platform/mac/accessibility/form-control-value-settable-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/accessibility/press-action-is-first-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/editing/spelling/removing-underline-after-accepting-autocorrection-using-punctuation-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/loader/file-url-mimetypes-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.png: Added.
  • platform/mac-mavericks/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt: Added.
  • platform/mac-mavericks/svg/custom/use-on-symbol-inside-pattern-expected.txt: Added.
  • platform/mac-mavericks/svg/hixie/intrinsic/003-expected.txt: Added.
  • platform/mac-mavericks/transitions/default-timing-function-expected.txt: Added.
6:30 AM Changeset in webkit [183469] by commit-queue@webkit.org
  • 20 edits
    2 copies in trunk/Source/WebInspectorUI

Web Inspector: add a separate overview for the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=144245

Patch by Matt Baker <Matt Baker> on 2015-04-28
Reviewed by Timothy Hatcher.

The Timelines tab now supports two view modes, labeled "Timelines" and "Rendering Frames", with each mode
having a seperate timeline overview and selected range. The Timelines mode displays the original time-based
graphs (Network, Layout, and Script), and switching to the Rendering Frames mode displays a frames graph
with a timeline ruler which shows frame indices.

If the rendering frames timeline is supported by the backend, a navigation bar is added to the timelines
sidebar with controls for switching between view modes. In addition to user-triggered view mode changes, the
timelines sidebar will automatically change the current view mode in response to content view changes that
are triggered elsewhere in the UI (for example, when a timeline that does not belong to the current view
mode is selected via the navigation path).

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.get activeRecording): Deleted.
(WebInspector.TimelineManager.prototype.get recordings): Deleted.
Removed unused code.

  • UserInterface/Main.html:

New files.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.reset):
Frame number is now derived from frame index.

  • UserInterface/Views/LinearTimelineOverview.js:

(WebInspector.LinearTimelineOverview):
(WebInspector.LinearTimelineOverview.prototype.canShowTimeline):
New overview class for time-based timeline graphs.

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:

(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
Changed type of selected range from time to frame indices.

  • UserInterface/Views/RenderingFrameTimelineOverview.js:

(WebInspector.RenderingFrameTimelineOverview.this.timelineRuler.formatLabelCallback):
(WebInspector.RenderingFrameTimelineOverview):
(WebInspector.RenderingFrameTimelineOverview.prototype.canShowTimeline):
New overview class for frame-based timeline graphs.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview > .graphs-container > .timeline-overview-graph.rendering-frame):

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
Updated to use frame index ruler and removed frame combining logic.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):
Increased column widths.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .graphs-container):
(body.mac-platform.legacy .timeline-overview > .graphs-container):
Updated for new ruler height.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype.set currentTime): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
Converted to base class. Derived classes provide settings and permitted timeline types.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame):
(.timeline-record-frame > .frame):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration.timeline-record-type-network):
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
(.timeline-record-frame > .frame > .duration.timeline-record-type-script):
(.timeline-record-frame > .frame > .duration:last-child): Deleted.
New graph frames styles.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame):
(WebInspector.TimelineRecordFrame.prototype.get record):
(WebInspector.TimelineRecordFrame.prototype.set record):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
(WebInspector.TimelineRecordFrame.prototype.get element): Deleted.
Updated to use frame index ruler.
Removed dropped frames and frame combining logic.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._getRenderingFrameTimeline):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.goForward): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._update): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated): Deleted.
Maintains two timeline overviews, switching between them based on the current content view.
Updated tree element filtering to support both overview rulers.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .header):
(body.mac-platform.legacy .timeline-ruler > .header):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .selection-drag):
(body.mac-platform.legacy .timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-handle):
(body.mac-platform.legacy .timeline-ruler > .selection-handle):
(.timeline-ruler > .header > .divider): Deleted.
(.timeline-ruler > .selection-drag:active): Deleted.
Updated for new ruler height.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set formatLabelCallback):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._formatDividerLabelText):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels): Deleted.
(WebInspector.TimelineRuler.prototype._updateSelection): Deleted.
Added ability to customize label formatting.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.panel.timeline .navigation-bar.timelines-view):
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container > .navigation-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
Updated for new navigation bar and ruler height.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.get viewMode):
(WebInspector.TimelineSidebarPanel.prototype.canShowTimeline):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get this):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Added support for two view modes: Timelines and Rendering Frames.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

New files.

6:04 AM Changeset in webkit [183468] by timothy@apple.com
  • 9 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add new tab button to make it easy to bring a closed tab back
https://bugs.webkit.org/show_bug.cgi?id=144297

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._updateNewTabButtonState):
(WebInspector._newTabItemClicked):
(WebInspector.isNewTabWithTypeAllowed):
(WebInspector.createNewTab):
(WebInspector.activateExtraDomains):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._isTabTypeAllowed): Deleted.

  • UserInterface/Images/NewTab.svg: Added.
  • UserInterface/Images/NewTabPlus.svg:
  • UserInterface/Main.html:
  • UserInterface/Views/NewTabContentView.css: Added.

(.new-tab.tab.content-view):
(.new-tab.tab.content-view > .tab-item):
(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
(.new-tab.tab.content-view > .tab-item > .box > img):
(.new-tab.tab.content-view > .tab-item > label):

  • UserInterface/Views/NewTabContentView.js: Added.

(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.prototype.get type):
(WebInspector.NewTabContentView.prototype._createNewTab):

  • UserInterface/Views/TabBar.css:

(.tab-bar > .item:not(.disabled).selected):
(.tab-bar > .item.new-tab-button:not(.disabled):hover):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):
(.tab-bar > .item.disabled > .icon):
(.tab-bar > .item.new-tab-button:not(.disabled):hover > .icon):
(.tab-bar > .item.selected): Deleted.
(.tab-bar > .item.new-tab-button:hover): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item): Deleted.
(.tab-bar > .item.new-tab-button:hover > .icon): Deleted.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype._handleMouseDown):

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem.prototype.get disabled):
(WebInspector.TabBarItem.prototype.set disabled):

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):

5:49 AM Changeset in webkit [183467] by Antti Koivisto
  • 22 edits
    2 adds in trunk

Network Cache: Disk cache getting filled by YouTube video data
https://bugs.webkit.org/show_bug.cgi?id=144259

Reviewed by Darin Adler.

Source/WebCore:

MSE media is loaded via XHR and tends to eventually fill the cache.

YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them

Test: http/tests/cache/disk-cache/disk-cache-media.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Set the requester.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::CachedRawResource):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::streamingMedia):

  • page/DiagnosticLoggingKeys.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):
(WebCore::equalIgnoringHeaderFields):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):

Add requester type to the request object. Currently this is main resource, xhr or unspecified.

(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::deprecatedSetMainResourceRequest): Deleted.
(WebCore::ResourceRequest::deprecatedIsMainResourceRequest): Deleted.

Replace this iOS only field with shared mechanism.

  • platform/network/ios/QuickLook.mm:

(WebCore::QuickLookHandle::create):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Set the requester.

Source/WebKit2:

MSE media is loaded via XHR and tends to eventually fill the cache.

YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):

Don't store if the requester is XHR and response has video or audio content type.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::storeDecisionToDiagnosticKey):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):

  • Shared/Network/NetworkResourceLoadParameters.h:

The requester type is now part of the ResourceRequest, no need for separate parameter.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-media-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-media.html: Added.
  • http/tests/cache/disk-cache/resources/cache-test.js:

(generateTestURL):

4:36 AM Changeset in webkit [183466] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix windows build error in WebCore related to bulk build.
https://bugs.webkit.org/show_bug.cgi?id=144313

Patch by Namhoon Kim <nakim@ea.com> on 2015-04-28
Reviewed by Csaba Osztrogonác.

No new tests because there is no behavior change.

  • css/CSSAllInOne.cpp:
  • dom/DOMAllInOne.cpp:
3:45 AM Changeset in webkit [183465] by peavo@outlook.com
  • 3 edits in trunk/WebKitLibraries

[Win] Enable ES6 template literals
https://bugs.webkit.org/show_bug.cgi?id=144316

Reviewed by Csaba Osztrogonác.

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
1:27 AM Changeset in webkit [183464] by aestes@apple.com
  • 1 edit
    15 adds in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • platform/mac-mavericks/media/audio-controls-rendering-expected.txt: Added.
  • platform/mac-mavericks/media/controls-strict-expected.txt: Added.
  • platform/mac-mavericks/media/video-no-audio-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/vertical-no-sideways-expected.txt: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv420-expected.png: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv420-expected.txt: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv422-expected.png: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv422-expected.txt: Added.
1:09 AM Changeset in webkit [183463] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2] API::UserContentURLPattern creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144225

Reviewed by Darin Adler.

Have API::UserContentURLPattern creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<>
object where possible.

  • Shared/API/APIUserContentURLPattern.h:

(API::UserContentURLPattern::create):

  • Shared/API/c/WKUserContentURLPattern.cpp:

(WKUserContentURLPatternCreate):

1:06 AM Changeset in webkit [183462] by zandobersek@gmail.com
  • 14 edits in trunk/Source/WebKit2

[WK2] API::URLRequest, API::URLResponse creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144224

Reviewed by Darin Adler.

Have API::URLRequest and API::URLResponse creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned Ref<> object
where possible.

  • Shared/API/APIURLRequest.h:

(API::URLRequest::create):

  • Shared/API/APIURLResponse.h:

(API::URLResponse::create):

  • Shared/API/c/WKURLRequest.cpp:

(WKURLRequestCreateWithWKURL):

  • Shared/API/c/mac/WKURLRequestNS.mm:

(WKURLRequestCreateWithNSURLRequest):

  • Shared/API/c/mac/WKURLResponseNS.mm:

(WKURLResponseCreateWithNSURLResponse):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDownloadClient):

  • UIProcess/API/C/WKDownload.cpp:

(WKDownloadCopyRequest):

  • UIProcess/API/C/WKNavigationDataRef.cpp:

(WKNavigationDataCopyOriginalRequest):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:

(WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(willSendRequestForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:

(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse):

Apr 27, 2015:

11:52 PM Changeset in webkit [183461] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Eliminate styleDidChange with StyleDifferenceEqual when updates are actually necessary
https://bugs.webkit.org/show_bug.cgi?id=144198

Followup: fix assertions seen in fullscreen and pseudo-element tests. These code
paths set the style to the existing pointer, but with a SyntheticStyleChange.
We have to avoid an early return in this case.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::setStyle):

11:35 PM Changeset in webkit [183460] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2] API::Point, API::Size, API::Rect creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144223

Reviewed by Darin Adler.

Have API::Point, API::Size and API::Rect creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<> object
where possible.

  • Shared/API/APIGeometry.h:

(API::Size::create):
(API::Point::create):
(API::Rect::create):

  • Shared/API/c/WKGeometry.cpp:

(WKPointCreate):
(WKSizeCreate):
(WKRectCreate):

11:31 PM Changeset in webkit [183459] by zandobersek@gmail.com
  • 8 edits in trunk/Source/WebKit2

[WK2] API::Error creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144222

Reviewed by Darin Adler.

Have API::Error creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.

  • Shared/API/APIError.h:

(API::Error::create):

  • Shared/API/c/cf/WKErrorCF.cpp:

(WKErrorCreateWithCFError):

  • UIProcess/API/C/WKOriginDataManager.cpp:

(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates):
(WKOriginDataManagerDeleteAllEntries):

  • UIProcess/API/C/WKPage.cpp:

(toGenericCallbackFunction):
(WKPageForceRepaint):
(WKPageValidateCommand):
(WKPageComputePagesForPrinting):

  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):

  • UIProcess/GenericCallback.h:

(WebKit::toGenericCallbackFunction):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFinishedCallback):

10:54 PM Changeset in webkit [183458] by akling@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

RegExp matches arrays should use contiguous indexing.
<https://webkit.org/b/144286>

Reviewed by Geoffrey Garen.

We had a custom Structure being used for RegExp matches arrays that would
put the arrays into SlowPutArrayStorageShape mode. This was just left
from when matches arrays were custom, lazily initialized objects.

This change removes that Structure and switches the matches arrays to
using the default ContiguousShape Structure. This allows the FTL JIT
to compile the inner loop of the Octane/regexp benchmark.

Also made a version of initializeIndex() [inline] that takes the indexing
type in an argument, allowing createRegExpMatchesArray() to initialize
the entire array without branching on the indexing type for each entry.

~3% progression on Octane/regexp.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::mapStructure):
(JSC::JSGlobalObject::regExpMatchesArrayStructure): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::initializeIndex):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createRegExpMatchesArray):

10:33 PM Changeset in webkit [183457] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove unnecessary semicolon from WebKitNotificationProvider.h.
https://bugs.webkit.org/show_bug.cgi?id=144312

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-27
Reviewed by Martin Robinson.

No new tests, no behavior change.

  • UIProcess/API/gtk/WebKitNotificationProvider.h:
10:24 PM Changeset in webkit [183456] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix GTK build after r183452

  • Source/cmake/OptionsGTK.cmake:
10:13 PM Changeset in webkit [183455] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cannot scroll Timeline Overview horizontally, scrollbar cannot be interacted with
https://bugs.webkit.org/show_bug.cgi?id=144302

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-27
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .scroll-container):
Increase the z-index of the scroll container over anything in the
overview so that it can be interacted with.

9:59 PM Changeset in webkit [183454] by Simon Fraser
  • 20 edits in trunk

Eliminate styleDidChange with StyleDifferenceEqual when updates are actually necessary
https://bugs.webkit.org/show_bug.cgi?id=144198

Reviewed by Darin Adler, Antti Koivisto.

Source/WebCore:

SyntheticStyleChange style recalcs are triggered for cases where behavior depends
on state which is outside of RenderStyle; this includes triggering compositing for
animations, for video and canvas, and for iframes with composited content.

In these cases, we'd run through RenderElement::setStyle() and its fan-out, but
with diff == StyleDifferenceEqual, and so be unable to determine if there
is actual work to be done.

This patch enforces the contract that the diff is never StyleDifferenceEqual if
compositing or other work has to happen from setStyle(). This is achieved by
passing in a 'hasSideEffects' flag, which causes the diff to become at least
StyleDifferenceRecompositeLayer.

RenderLayerCompositor::layerStyleChanged() can now safely early return
if the diff is equal. Future patches will reduce redundant work even more.

Test: compositing/animation/no-style-recalc-during-accelerated-animation.html

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::animate): Returns a bool now if the state changed.
(WebCore::AnimationBase::state):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationController::updateAnimations): bool out param which indicates
whether any animations changed state.

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

(WebCore::CompositeAnimation::animate): If any transitions or animations changed
state, set the animationStateChanged out param to true.

  • page/animation/CompositeAnimation.h:
  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::animate): Return true if the state changed.

  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate): Return true if the state changed.

  • page/animation/KeyframeAnimation.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustStyleDifference): We may enter here now with diff
!= StyleDifferenceEqual, but still need to do the check to see if layers changed.
(WebCore::RenderElement::initializeStyle): When setting style for the first time,
don't use StyleDifferenceEqual.
(WebCore::RenderElement::setStyle): Additional flag to indicate whether this style
change involves side effects. If the diff is equal but the flag is set, change
the diff to StyleDifferenceRecompositeLayer (the "lowest" non-zero diff).

  • rendering/RenderElement.h:

(WebCore::RenderElement::setAnimatableStyle): Pass true to setStyle() if hasSideEffects
is true, or if animation state changed.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::styleChanged): Pass the diff down.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerStyleChanged): Return if the diff is equal.

  • rendering/RenderLayerCompositor.h:
  • rendering/style/RenderStyleConstants.h: StyleDifferenceNewStyle is used when

setting style for the first time.

  • style/StyleResolveTree.cpp:

(WebCore::Style::createRendererIfNeeded): Provide animationsChanged bool (which is unused).
(WebCore::Style::resolveLocal): If the style change is synthetic, set the flag that
says there are side-effects.

LayoutTests:

New test that detects whether a "hardware" animation is firing the style recalc
timer on every frame, which happened during development of this patch.

  • compositing/animation/no-style-recalc-during-accelerated-animation-expected.txt: Added.
  • compositing/animation/no-style-recalc-during-accelerated-animation.html: Added.
9:44 PM Changeset in webkit [183453] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

FTL failed to initialize arguments.callee on the slow path as well as the fast path
https://bugs.webkit.org/show_bug.cgi?id=144293

Reviewed by Mark Lam.

The slow path doesn't fully initialize DirectArguments - it leaves callee blank. So, we need
to initialize the callee on the common path after the fast and slow path.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCreateDirectArguments):

  • tests/stress/arguments-callee-uninitialized.js: Added.

(foo):

9:35 PM Changeset in webkit [183452] by Michael Catanzaro
  • 4 edits in trunk

[GTK] Add one single option to control all OpenGL-related options
https://bugs.webkit.org/show_bug.cgi?id=144105

Reviewed by Martin Robinson.

.:

Add public ENABLE_OPENGL option, which is mandatory for ENABLE_3D_TRANSFORMS,
ENABLE_ACCELERATED_2D_CANVAS, ENABLE_GLES2, ENABLE_THREADED_COMPOSITOR, ENABLE_WEBGL,
USE_REDIRECTED_XCOMPOSITE_WINDOW, and USE_GSTREAMER_GL. Make ENABLE_GLES2 a proper WebKit
option and move code around accordingly. Use WEBKIT_OPTION_DEPEND and rely on it. Add a
large comment to explain why default value of ENABLE_ACCELERATED_2D_CANVAS is based on the
presence of CairoGL.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Test WTF_USE_TEXTURE_MAPPER since USE_TEXTURE_MAPPER has been removed.

  • PlatformGTK.cmake:
9:28 PM Changeset in webkit [183451] by Michael Catanzaro
  • 2 edits in trunk

[GTK] ENABLE_SMOOTH_SCROLLING should be private
https://bugs.webkit.org/show_bug.cgi?id=144306

Reviewed by Martin Robinson.

Make ENABLE_SMOOTH_SCROLLING private instead of public.

  • Source/cmake/OptionsGTK.cmake:
9:16 PM Changeset in webkit [183450] by benjamin@webkit.org
  • 6 edits
    4 adds in trunk

[JSC] Add support for typed arrays to the Array profiling
https://bugs.webkit.org/show_bug.cgi?id=143913

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-27
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds ArrayModes for every typed arrays. Having that information
let us generate better GetByVal and PutByVal when the type speculation
are not good enough.

A typical case where this is useful is any basic block for which the type
of the object is always more restrictive than the speculation (for example,
a basic block gated by a branch only taken for on type).

  • bytecode/ArrayProfile.cpp:

(JSC::dumpArrayModes):

  • bytecode/ArrayProfile.h:

(JSC::arrayModeFromStructure):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::fromObserved):
(JSC::DFG::ArrayMode::refine):
Maintain the refine() semantic. We do not support OutOfBounds access
for GetByVal on typed array.

  • runtime/IndexingType.h:
  • tests/stress/typed-array-get-by-val-profiling.js: Added.

(testArray.testCode):
(testArray):

  • tests/stress/typed-array-put-by-val-profiling.js: Added.

(testArray.testCode):
(testArray):

LayoutTests:

  • js/regress/script-tests/typed-array-get-set-by-val-profiling.js: Added.
  • js/regress/typed-array-get-set-by-val-profiling.html: Added.
8:43 PM Changeset in webkit [183449] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

<rdar://problem/20721931> REGRESSION (r178753): All legacy framework headers are missing availability annotations
https://bugs.webkit.org/show_bug.cgi?id=144311

Reviewed by Adele Peterson.

  • postprocess-headers.sh: Changed “macsox” to “macosx”.
8:05 PM Changeset in webkit [183448] by commit-queue@webkit.org
  • 2 edits
    23 adds
    2 deletes in trunk/LayoutTests

Break up select text into multiple tests
https://bugs.webkit.org/show_bug.cgi?id=144301

Patch by Doug Russell <d_russell@apple.com> on 2015-04-27
Reviewed by Alexey Proskuryakov.

  • platform/mac/TestExpectations:
  • platform/mac/accessibility/select-text-expected.txt: Removed.
  • platform/mac/accessibility/select-text.html: Removed.
  • platform/mac/accessibility/select-text/select-text-1-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-1.html: Added.
  • platform/mac/accessibility/select-text/select-text-135546-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-135546.html: Added.
  • platform/mac/accessibility/select-text/select-text-135575-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-135575.html: Added.
  • platform/mac/accessibility/select-text/select-text-2-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-2.html: Added.
  • platform/mac/accessibility/select-text/select-text-3-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-3.html: Added.
  • platform/mac/accessibility/select-text/select-text-4-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-4.html: Added.
  • platform/mac/accessibility/select-text/select-text-5-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-5.html: Added.
  • platform/mac/accessibility/select-text/select-text-6-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-6.html: Added.
  • platform/mac/accessibility/select-text/select-text-7-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-7.html: Added.
  • platform/mac/accessibility/select-text/select-text-8-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-8.html: Added.
  • platform/mac/accessibility/select-text/select-text-9-expected.txt: Added.
  • platform/mac/accessibility/select-text/select-text-9.html: Added.
7:43 PM Changeset in webkit [183447] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

PDF action menu fixes
https://bugs.webkit.org/show_bug.cgi?id=144299
<rdar://problem/20702215>

Reviewed by Tim Horton.

Make two corrections to how PDFs are handled:

  1. When calculating the view rect for the user's selection, make sure

that we get coordinates for the correct PDF page. The existing code assumed
that the current PDFLayerControler's current page was correct, but this will
not be true if you zoom the PDF out so that several pages are displayed at
once. Each selection keeps track of the page it is referenced against.

  1. Revise the offsets calculated for the TextIndicator to take into account

the font descender (as well as the ascender), and to adjust by the scaled
amount of margin around the selected text.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::viewRectForSelection): Use correct page for calculating
the coordinates.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): Include font 'descendant'
and (scaled) margin when adjusting the hit target for the TextIndicator to draw.

7:14 PM Changeset in webkit [183446] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, roll out r183438 "RegExp matches arrays should use contiguous indexing". It
causes many debug test failures.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayStructure):

  • runtime/JSObject.h:

(JSC::JSObject::initializeIndex):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createRegExpMatchesArray):

6:25 PM Changeset in webkit [183445] by aestes@apple.com
  • 3 edits in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
  • fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
6:16 PM Changeset in webkit [183444] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Marked platform/mac/fast/text/multiple-codeunit-vertical-upright.html as ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=144303

  • platform/mac/TestExpectations:
6:06 PM Changeset in webkit [183443] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/Tools

Add 'init.py' and fix known bug in benchmark runner.
https://bugs.webkit.org/show_bug.cgi?id=144296

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-27
Reviewed by Ryosuke Niwa

  • Scripts/webkitpy/benchmark_runner/init.py: Make python to recognize this module.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/init.py: Make python to recognize this module.
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute): Fix logic bug that '--output-file' option doesn't work, and empty output file bug.

  • Scripts/webkitpy/benchmark_runner/browser_driver/init.py: Make python to recognize this module.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/init.py: Make python to recognize this module.
5:59 PM Changeset in webkit [183442] by mmaxfield@apple.com
  • 19 edits
    7 deletes in trunk/Source/WebCore

Consolidate one-line flag-related header files into TextFlags.h
https://bugs.webkit.org/show_bug.cgi?id=144295

Reviewed by Tim Horton.

There were a collection of single-line header files throughout platform/ which contain
single-line type declaractions of flags related to text layout & rendering. This patch
consolidates all these single-line headers into TextFlags.h

No new tests because there is no behavior change.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFontFace.h:
  • css/CSSPrimitiveValueMappings.h:
  • loader/cache/CachedFont.h:
  • loader/cache/CachedTextTrack.h:
  • page/Settings.h:
  • platform/DragImage.h:
  • platform/graphics/FontDescription.h:
  • platform/graphics/FontOrientation.h: Removed.
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/FontRenderingMode.h: Removed.
  • platform/graphics/FontSmoothingMode.h: Removed.
  • platform/graphics/FontTraitsMask.h: Removed.
  • platform/graphics/FontWidthVariant.h: Removed.
  • platform/graphics/TextRenderingMode.h: Removed.
  • platform/graphics/cairo/FontCustomPlatformData.h:
  • platform/graphics/freetype/FontPlatformData.h:
  • platform/graphics/mac/FontCustomPlatformData.h:
  • platform/graphics/win/FontCustomPlatformData.h:
  • platform/text/NonCJKGlyphOrientation.h: Removed.
  • platform/text/TextFlags.h:
  • rendering/TextPainter.h:
  • style/StyleFontSizeFunctions.h:
5:46 PM Changeset in webkit [183441] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Websites/webkit.org

Add naver to team.html
https://bugs.webkit.org/show_bug.cgi?id=144298

Reviewed by Gyuyoung Kim.

  • team.html:
5:31 PM Changeset in webkit [183440] by benjamin@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Status page: fix the email links

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-27

  • status.html:
5:22 PM Changeset in webkit [183439] by ap@apple.com
  • 2 edits in trunk/Tools

More build fix.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler _notificationReceived:]):
Use -objectForKey:, not array subscript.

5:14 PM Changeset in webkit [183438] by akling@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

RegExp matches arrays should use contiguous indexing.
<https://webkit.org/b/144286>

Reviewed by Geoffrey Garen.

We had a custom Structure being used for RegExp matches arrays that would
put the arrays into SlowPutArrayStorageShape mode. This was just left
from when matches arrays were custom, lazily initialized objects.

This change removes that Structure and switches the matches arrays to
using the default ContiguousShape Structure. This allows the FTL JIT
to compile the inner loop of the Octane/regexp benchmark.

Also made a version of initializeIndex() [inline] that takes the indexing
type in an argument, allowing createRegExpMatchesArray() to initialize
the entire array without branching on the indexing type for each entry.

~3% progression on Octane/regexp.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::mapStructure):
(JSC::JSGlobalObject::regExpMatchesArrayStructure): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::initializeIndex):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createRegExpMatchesArray):

5:08 PM Changeset in webkit [183437] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/LayoutTests

Mark fast/text/ruby-justification-flush.html as ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=144294

5:03 PM Changeset in webkit [183436] by dbates@webkit.org
  • 6 edits
    4 adds in trunk

Form control may be associated with the wrong HTML Form element after form id change
https://bugs.webkit.org/show_bug.cgi?id=133456
<rdar://problem/17095055>

Reviewed by Andy Estes.

Source/WebCore:

Fixes an issue where a form control may be associated with the wrong HTML Form element
after the id of the HTML Form element associated with the form control is changed when
there is more than one HTML Form element with the same id in the document. Specifically,
a form control that has an HTML form attribute value X will always be associated with
some HTML Form element f where f.id = X regardless of whether f.id is subsequently
changed.

Tests: fast/forms/change-form-id-to-be-unique-then-submit-form.html

fast/forms/change-form-id-to-be-unique.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged): Notify observers when the id of an element changed.
(WebCore::Element::updateId): Added parameter NotifyObservers (defaults to NotifyObservers::Yes),
as to whether we should notify observers of the id change.
(WebCore::Element::updateIdForTreeScope): Ditto.
(WebCore::Element::willModifyAttribute): Do not notify observers of the id change immediately. As
indicated by the name of this method, we plan to modify the DOM attribute id of the element, but
we have not actually modified it when this method is called. Instead we will notify observers
in Element::attributeChanged(), which is called after the DOM attribute id is modified.
(WebCore::Element::cloneAttributesFromElement): Ditto.

  • dom/Element.h: Defined enum class NotifyObservers.
  • dom/TreeScope.cpp:

(WebCore::TreeScope::addElementById): Added boolean parameter notifyObservers (defaults to true)
as to whether we should dispatch a notification to all observers.
(WebCore::TreeScope::removeElementById): Ditto.

  • dom/TreeScope.h:

LayoutTests:

Add tests to ensure that we associate the correct HTML Form element with a
<select> after changing the id of its associated HTML form element.

  • fast/forms/change-form-id-to-be-unique-expected.txt: Added.
  • fast/forms/change-form-id-to-be-unique-then-submit-form-expected.txt: Added.
  • fast/forms/change-form-id-to-be-unique-then-submit-form.html: Added.
  • fast/forms/change-form-id-to-be-unique.html: Added.
4:34 PM Changeset in webkit [183435] by ap@apple.com
  • 2 edits in trunk/Tools

Catch unexpected exits in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=144288

Reviewed by Tim Horton.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(atexitFunction):
(DumpRenderTreeMain):

4:18 PM Changeset in webkit [183434] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix

  • DumpRenderTree/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler _notificationReceived:]):
Use -objectForKey:, not array subscript.

3:34 PM Changeset in webkit [183433] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Reduce allocations and memory usage when compiling content extensions.
https://bugs.webkit.org/show_bug.cgi?id=144277

Reviewed by Benjamin Poulain.

Covered by existing tests.

  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::CharacterSet::set):
(WebCore::ContentExtensions::Term::CharacterSet::get):
(WebCore::ContentExtensions::Term::CharacterSet::invert):
(WebCore::ContentExtensions::Term::CharacterSet::inverted):
(WebCore::ContentExtensions::Term::CharacterSet::bitCount):
(WebCore::ContentExtensions::Term::CharacterSet::operator==):
(WebCore::ContentExtensions::Term::CharacterSet::hash):
(WebCore::ContentExtensions::Term::Term):
(WebCore::ContentExtensions::Term::addCharacter):
(WebCore::ContentExtensions::Term::isEndOfLineAssertion):
(WebCore::ContentExtensions::Term::isUniversalTransition):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Use two uint64_t's instead of a BitVector with a capacity of 128 bits.

3:30 PM Changeset in webkit [183432] by Michael Catanzaro
  • 35 edits in trunk

Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D
https://bugs.webkit.org/show_bug.cgi?id=144193

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • platform/graphics/ANGLEWebKitBridge.cpp:
  • platform/graphics/FormatConverter.cpp:
  • platform/graphics/FormatConverter.h:
  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext3D.cpp:
  • platform/graphics/GraphicsContext3DPrivate.cpp:
  • platform/graphics/OpenGLShims.cpp:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:
  • platform/graphics/cg/GraphicsContext3DCG.cpp:
  • platform/graphics/egl/GLContextEGL.cpp:
  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/glx/GLContextGLX.cpp:
  • platform/graphics/glx/GLContextGLX.h:
  • platform/graphics/mac/GraphicsContext3DMac.mm:
  • platform/graphics/opengl/Extensions3DOpenGL.cpp:
  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:
  • platform/graphics/opengl/GLPlatformContext.cpp:
  • platform/graphics/opengl/GLPlatformSurface.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
  • platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
  • platform/graphics/win/GraphicsContext3DWin.cpp:

Source/WebKit2:

  • CMakeLists.txt:

Source/WTF:

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
3:24 PM Changeset in webkit [183431] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Video not centered in element on retina devices
https://bugs.webkit.org/show_bug.cgi?id=144274

Reviewed by Simon Fraser.

In r173702, a transform was added to the video layer (and a matching, inverse transform
in the UIProcess), but this transform affects the position property of the video layer
used to position the video content within the element bounds when their aspect ratios
do not match.

To work around this problem, pre-apply the transform during -setPosition:.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(-[WebVideoContainerLayer setPosition:]):

3:12 PM Changeset in webkit [183430] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.30.1/Source

Versioning.

3:10 PM Changeset in webkit [183429] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30.1

New tag.

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

Add a setting & restriction which prevents non-interactivte playback of audible media elements.
https://bugs.webkit.org/show_bug.cgi?id=143486

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/audio-playback-restriction-autoplay.html

media/audio-playback-restriction-play.html

To allow clients who want to allow non-user-interactive video-only playback, but still
restrict playback of audible media elements, add a new setting and matching restriction
which disallows playback of media elements containing audible characteristics.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Set the RequireUserGestureForAudioRateChange

restriction if the audioPlaybackRequiresUserGesture() setting is set.

(WebCore::HTMLMediaElement::parseAttribute): Drive-by fix. Move the opening brace

out of the #if, as this confuses the heck out of diff and makes all subsequent
changes appear to be within HTMLMediaElement::parseAttribute.

(WebCore::HTMLMediaElement::autoplay): Remove the restriction check from within autoplay().

It is checked again immediately after every autoplay() call site.

(WebCore::HTMLMediaElement::pauseInternal): Remove the iOS-only #if.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Check whether playback

is permitted, and if not, pause.

(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Ditto.

  • html/HTMLMediaSession.cpp:

(WebCore::restrictionName): Since BehaviorRestrictions is a bitfield, check each bit

individually.

(WebCore::HTMLMediaSession::removeBehaviorRestriction): Handle RequireUserGestureForAudioRateChange.
(WebCore::HTMLMediaSession::playbackPermitted): Check whether the element has audio and

audio playback is restricted, and return false if so.

  • html/HTMLMediaSession.h:
  • page/Settings.cpp:
  • page/Settings.in:
  • testing/Internals.cpp:

(WebCore::Internals::setMediaSessionRestrictions): Added.
(WebCore::Internals::setMediaElementRestrictions): Added.

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

LayoutTests:

  • media/audio-playback-restriction-autoplay.html: Added.
  • media/audio-playback-restriction-play.html: Added.
  • media/video-test.js:

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

3:04 PM Changeset in webkit [183427] by Michael Catanzaro
  • 2 edits in trunk

[CMake] Should be possible for an option to conflict with other options
https://bugs.webkit.org/show_bug.cgi?id=143956

Reviewed by Martin Robinson.

Add WEBKIT_OPTION_CONFLICT macro, which fails the build if conflicting options are on.

  • Source/cmake/WebKitFeatures.cmake:
2:57 PM Changeset in webkit [183426] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

Context menus are not reshown after an orientation change

<https://bugs.webkit.org/show_bug.cgi?id=144143>
<rdar://problem/20679931>

Reviewed by Darin Adler.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet updateSheetPosition]):
Return early if we're still in a rotation, not if the rotation is
complete.

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

Web Inspector: Attempt to workaround exception in TimelineRuler
https://bugs.webkit.org/show_bug.cgi?id=144228

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.updateLayout):
Use firstChild instead of a custom _labelElement property on the dividerElement.

2:35 PM Changeset in webkit [183424] by jer.noble@apple.com
  • 11 edits
    4 adds in trunk

[WebAudio] AudioContext does not remove user-gesture restriction during resume()
https://bugs.webkit.org/show_bug.cgi?id=144211

Reviewed by Eric Carlson.

Source/WebCore:

Tests: webaudio/audiocontext-restriction-audiobuffersourcenode-start.html

webaudio/audiocontext-restriction.html

Before the introduction of resume(), suspend(), and stop(), AudioContexts which required
a user-gesture would start normally, but would effectively mute their outputs. Now that
the AudioContext's state property is exposed to JavaScript, the AudioContext should stay
in the "suspended" state until the user-gesture restriction is lifted.

Add a new method, willBeginPlayback() which checks and potentially clears the context's
behavior restrictions before checking with the MediaSession. Call this new willBeginPlayback()
method when the state would transition to "running".

Because they may be called before any nodes are created, make sure to call lazyInitialize()
from within the JS-exposed resumePlayback(), suspendPlayback(), and stopPlayback() methods.

Instead of clearing the behavior restrictions directly, scheduled AudioNodes should instead
call a new method nodeWillBeginPlayback(). Because existing sites will call AudioNode.start()
inside a user-gesture handler to clear the user-gesture restriction, call startRendering()
from nodeWillBeginPlayback(). But because we don't want AudioNode.start() to resume playback
unconditionally, only do so when the user-gesture restriction is set.

Now that an AudioContext will not transition to "running" state without a user-gesture (if
that restriction is set), there's no reason to check for that restriction from inside
AudioDestinationNode.

Add some internal methods to set and clear AudioContext BehaviorRestrictions for testing purposes.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::startPlaying):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::nodeWillBeginPlayback):
(WebCore::AudioContext::willBeginPlayback):
(WebCore::AudioContext::willPausePlayback):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::suspendContext):
(WebCore::AudioContext::resumeContext):
(WebCore::AudioContext::closeContext):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::behaviorRestrictions):
(WebCore::AudioContext::userGestureRequiredForAudioStart):
(WebCore::AudioContext::pageConsentRequiredForAudioStart):

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::start):

  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

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

LayoutTests:

  • webaudio/audiocontext-restriction-audiobuffersourcenode-start-expected.txt: Added.
  • webaudio/audiocontext-restriction-audiobuffersourcenode-start.html: Added.
  • webaudio/audiocontext-restriction-expected.txt: Added.
  • webaudio/audiocontext-restriction.html: Added.
  • webaudio/resources/audio-testing.js:

(runWithKeyDown):

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

Web Inspector: Elements tab details sidebar becomes non-expandable after using Console tab
https://bugs.webkit.org/show_bug.cgi?id=144212

Show the DOM tree content view again on main resource change. This better matches what we did
in the pre tab user interface with the DOM being off the main resource tree element.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ElementsTabContentView.js:

(WebInspector.ElementsTabContentView): Listen for main resource change. Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype.closed): Fix a leak and exception.
The removeEventListener was wrong. Add a new removeEventListener for WebInspector.Frame.
(WebInspector.ElementsTabContentView.prototype._showDOMTreeContentView): Added.
(WebInspector.ElementsTabContentView.prototype._mainFrameDidChange): Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype._mainResourceDidChange): Added.

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

Web Inspector: TabContentView closed() isn't being called when a tab is closed / removed
https://bugs.webkit.org/show_bug.cgi?id=144229

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
TabContentViews don't have a representedObject, so returning early and not
calling closed() was not correct.

2:08 PM Changeset in webkit [183421] by rniwa@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

REGRESSION (r183373): ASSERT failed in wtf/SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=144257

Temporarily disable skip these tests.

  • tests/stress/template-literal-line-terminators.js:
  • tests/stress/template-literal-syntax.js:
  • tests/stress/template-literal.js:
2:02 PM Changeset in webkit [183420] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postTextReplacementPlatformNotification):

Use -setObject:forKey:, not array subscript.

1:42 PM Changeset in webkit [183419] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Function allocations shouldn't sink through Put operations
https://bugs.webkit.org/show_bug.cgi?id=144176

Patch by Basile Clement <basile_clement@apple.com> on 2015-04-27
Reviewed by Filip Pizlo.

By design, we don't support function allocation sinking through any
related operation ; however object allocation can sink through PutByOffset et
al.

Currently, the checks to prevent function allocation to sink through
these are misguided and do not prevent anything ; function allocation sinking
through these operations is prevented as a side effect of requiring an
AllocatePropertyStorage through which the function allocation is seen as
escaping.

This changes it so that ObjectAllocationSinkingPhase::handleNode()
checks properly that only object allocations sink through related write
operations.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

1:34 PM Changeset in webkit [183418] by ap@apple.com
  • 2 edits in trunk/Tools

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Reviewed by Tim Horton.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues):

Disable App Nap. I don't have positive evidence that it's the culprit, but it could be,
and we clearly don't want App Nap while testing.

1:33 PM Changeset in webkit [183417] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

WirelessTargetPicker should not be visible unless a file is playable
https://bugs.webkit.org/show_bug.cgi?id=144271
<rdar://problem/20712003>

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.isPlayable): New.
(Controller.prototype.setStatusHidden): Call updateWirelessTargetAvailable.
(Controller.prototype.updateWirelessTargetAvailable): Don't show the button until the

status message has been hidden.

1:30 PM Changeset in webkit [183416] by Martin Robinson
  • 13 edits
    1 delete in trunk

[CMake] Autogenerate cmakeconfig.h.cmake
https://bugs.webkit.org/show_bug.cgi?id=143997

Reviewed by Csaba Osztrogonác.

.:

  • CMakeLists.txt: Create the configuration header as the last part of the cmake run.
  • Source/CMakeLists.txt: No longer use configure_file to create cmakeconfig.h.
  • Source/cmake/OptionsCommon.cmake: Expose WTF_CPU_ARM64_CORTEXA53 to the build explicitly.
  • Source/cmake/OptionsGTK.cmake: Expose variables to the build using SET_AND_EXPOSE_TO_BUILD.

Do some other miscellaneous related cleanup.

  • Source/cmake/OptionsEFL.cmake: Expose HAVE_LLVM to the build.
  • Source/cmake/WebKitFeatures.cmake: Expose all WebKit features to the build. Add support for

build exposed variables. Add a macro to generate a configuration from them.

  • Source/cmakeconfig.h.cmake: Removed.

Source/WebCore:

  • PlatformGTK.cmake: Use the WTF_USE style variables, because those are the same

as the ones exposed to the build.

Source/WTF:

  • wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Add XP_UNIX to the command-line

definitions since TestNetscapePlugIn does not use cmakeconfig.h.

1:28 PM Changeset in webkit [183415] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit/win

Unreviewed build fix after r183405

  • WebActionPropertyBag.cpp:

(WebActionPropertyBag::Read): Cast the enum class to a LONG.

1:23 PM Changeset in webkit [183414] by ap@apple.com
  • 2 edits in trunk/LayoutTests

rdar://problem/16678392 Page visibility tests are broken in Yosemite

  • platform/mac-wk2/TestExpectations: They don't seem to be broken any more, unskipping.

Maybe <http://trac.webkit.org/changeset/181866> fixed them?
Also updated the next line (media/video-background-tab-playback.html), as it didn't match what bots see now.

1:19 PM Changeset in webkit [183413] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Simple line layout: Wrong text offsetting when range does not start from the first renderer.
https://bugs.webkit.org/show_bug.cgi?id=144167
rdar://problem/20639857

Reviewed by Simon Fraser.

This patch ensures that TextIterator returns the right text when the input range starts
from a sibling node.

TextIterator::m_previousTextLengthInFlow keeps track of the current node offset from the parent.
Source/WebCore:

It is required to map simple line layout runs to RenderText positions.
This patch sets the offset value when the iteration start with a sibling node.

Test: fast/text/range-text-with-simple-line-layout.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleTextNode):

LayoutTests:

it is required to map simple line layout runs to RenderText positions.
This patch sets the offset value when the iteration start with a sibling node.

  • fast/text/range-text-with-simple-line-layout-expected.txt: Added.
  • fast/text/range-text-with-simple-line-layout.html: Added.
1:15 PM Changeset in webkit [183412] by zandobersek@gmail.com
  • 19 edits in trunk/Source/WebKit2

[WK2] API::Dictionary creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144221

Reviewed by Darin Adler.

Have API::Dictionary creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.

  • Shared/API/APIDictionary.cpp:

(API::Dictionary::create):

  • Shared/API/APIDictionary.h:
  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(createEncodedObject):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):

  • Shared/API/c/WKDictionary.cpp:

(WKDictionaryCreate):

  • Shared/API/c/WKMutableDictionary.cpp:

(WKMutableDictionaryCreate):

  • Shared/Plugins/Netscape/PluginInformation.cpp:

(WebKit::createPluginInformationDictionary):

  • Shared/Plugins/Netscape/PluginInformation.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_prefetch_dns):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_get_snapshot):

  • UIProcess/Plugins/PlugInAutoStartProvider.cpp:

(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):

  • UIProcess/Plugins/PlugInAutoStartProvider.h:
  • UIProcess/StatisticsRequest.cpp:

(WebKit::createDictionaryFromHashMap):
(WebKit::StatisticsRequest::completedRequest):

  • UIProcess/WebFormClient.cpp:

(WebKit::WebFormClient::willSubmitForm):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailToInitializePlugin):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(didInitiateLoadForResource):
(willSendRequestForFrame):
(didReceiveResponseForResource):
(didReceiveContentLengthForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(webkitWebPageDidReceiveMessage):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
(WebKit::InjectedBundlePageFormClient::willSubmitForm):

1:13 PM Changeset in webkit [183411] by zandobersek@gmail.com
  • 15 edits in trunk/Source/WebKit2

[WK2] API::Data creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144220

Reviewed by Darin Adler.

Have API::Data creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.

  • Shared/API/APIData.h:

(API::Data::createWithoutCopying):
(API::Data::create):

  • Shared/API/c/WKData.cpp:

(WKDataCreate):

  • Shared/API/c/mac/WKWebArchive.cpp:

(WKWebArchiveCopyData):

  • Shared/API/c/mac/WKWebArchiveResource.cpp:

(WKWebArchiveResourceCopyData):

  • Shared/APIWebArchive.h:
  • Shared/APIWebArchive.mm:

(API::WebArchive::data):

  • Shared/APIWebArchiveResource.h:
  • Shared/APIWebArchiveResource.mm:

(API::WebArchiveResource::data):

  • Shared/Cocoa/APIDataCocoa.mm:

(API::Data::createWithoutCopying):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):

  • UIProcess/API/gtk/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_load_bytes):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::createData):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dataCallback):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):

1:09 PM Changeset in webkit [183410] by zandobersek@gmail.com
  • 7 edits in trunk/Source/WebKit2

[WK2] API::URL creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144219

Reviewed by Darin Adler.

Have API::URL creation functions return Ref<>.
The call-sites are also updated, using and operating in the
returned Ref<> object, where possible.

  • Shared/API/APIURL.h:

(API::URL::create):

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toCopiedURLAPI):

  • Shared/API/c/WKURL.cpp:

(WKURLCreateWithUTF8CString):
(WKURLCreateWithBaseURL):

  • UIProcess/API/gtk/WebKitWebResource.cpp:

(webkit_web_resource_get_data):

  • UIProcess/WebIconDatabase.cpp:

(WebKit::WebIconDatabase::didChangeIconForPageURL):
(WebKit::WebIconDatabase::notifyIconDataReadyForPageURL):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userAgent):

1:05 PM Changeset in webkit [183409] by zandobersek@gmail.com
  • 9 edits in trunk/Source/WebKit2

[WK2] API::String creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144218

Reviewed by Darin Adler.

Have API::String creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned
Ref<> object, where possible.

  • Shared/API/APIString.h:
  • Shared/API/c/WKPluginInformation.cpp:

(WKPluginInformationBundleIdentifierKey):
(WKPluginInformationBundleVersionKey):
(WKPluginInformationBundleShortVersionKey):
(WKPluginInformationPathKey):
(WKPluginInformationDisplayNameKey):
(WKPluginInformationDefaultLoadPolicyKey):
(WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey):
(WKPluginInformationHasSandboxProfileKey):
(WKPluginInformationFrameURLKey):
(WKPluginInformationMIMETypeKey):
(WKPluginInformationPageURLKey):
(WKPluginInformationPluginspageAttributeURLKey):
(WKPluginInformationPluginURLKey):
(WKPlugInInformationReplacementObscuredKey):

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::ProxyingRefPtr::ProxyingRefPtr):
(WebKit::toCopiedAPI):

  • Shared/API/c/WKString.cpp:

(WKStringCreateWithUTF8CString):
(WKStringCreateWithJSString):

  • UIProcess/API/C/WKDatabaseManager.cpp:

(WKDatabaseManagerGetOriginKey):
(WKDatabaseManagerGetOriginQuotaKey):
(WKDatabaseManagerGetOriginUsageKey):
(WKDatabaseManagerGetDatabaseDetailsKey):
(WKDatabaseManagerGetDatabaseDetailsNameKey):
(WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
(WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
(WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetSessionHistoryURLValueType):
(WKPageGetSessionBackForwardListItemValueType):
(toGenericCallbackFunction):
(WKPageValidateCommand):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::didReceiveInvalidMessage):

12:36 PM Changeset in webkit [183408] by commit-queue@webkit.org
  • 10 edits
    4 deletes in trunk

Unreviewed, rolling out r183393.
https://bugs.webkit.org/show_bug.cgi?id=144272

Caused memory corruption detected by GuardMalloc (Requested by
ap on #webkit).

Reverted changeset:

"Synchronous XMLHttpRequest should get access to AppCache
resources stored as flat files"
https://bugs.webkit.org/show_bug.cgi?id=143711
http://trac.webkit.org/changeset/183393

11:57 AM Changeset in webkit [183407] by peavo@outlook.com
  • 4 edits in trunk/Source/WebCore

[Curl] Favicons loaded from disc cache are ignored.
https://bugs.webkit.org/show_bug.cgi?id=143953

Reviewed by Alex Christensen.

When a favicon is loaded from the Curl disc cache, the icon data is thrown away.
This happens because we give a 304 response, which makes the icon loader ignore
the response. We can solve this by responding with 200 OK.

  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::didReceiveResponse):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::headerCallback):
(WebCore::ResourceHandleManager::initializeHandle):

11:49 AM Changeset in webkit [183406] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

VarargsForwardingPhase should use bytecode liveness in addition to other uses to determine the last point that a candidate is used
https://bugs.webkit.org/show_bug.cgi?id=143843

Reviewed by Geoffrey Garen.

It will soon come to pass that Phantom isn't available at the time that
VarargsForwardingPhase runs. So, it needs to use some other mechanism for discovering when
a value dies for OSR.

This is simplified by two things:

1) The bytecode kill analysis is now reusable. This patch makes it even more reusable than

before by polishing the API.


2) This phase already operates on one node at a time and allows itself to do a full search

of the enclosing basic block for that node. This is fine because CreateDirectArguments
and friends is a rarely occurring node. The fact that it operates on one node at a time
makes it even easier to reason about OSR liveness - we just track the list of locals in
which it is live.


This change has no effect right now but it is a necessary prerequisite to implementing
https://bugs.webkit.org/show_bug.cgi?id=143736.

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::tryAt):

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGPhantomInsertionPhase.cpp:
  • dfg/DFGVarargsForwardingPhase.cpp:
11:46 AM Changeset in webkit [183405] by beidson@apple.com
  • 15 edits in trunk/Source

Make 'enum NavigationType' be an enum class
https://bugs.webkit.org/show_bug.cgi?id=144270

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior).

I’ll be adding a new NavigationType for bug 144269 so it makes sense to make this
an enum class first.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoaderTypes.h:
  • loader/NavigationAction.cpp:

(WebCore::navigationType):
(WebCore::NavigationAction::NavigationAction):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • page/PerformanceNavigation.cpp:

(WebCore::PerformanceNavigation::type):

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::actionDictionary):

Source/WebKit2:

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::NavigationActionData):

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(toWKNavigationType):

  • UIProcess/API/gtk/WebKitPrivate.cpp:

(toWebKitNavigationType):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

11:42 AM Changeset in webkit [183404] by yoav@yoav.ws
  • 4 edits
    2 adds in trunk

Fix viewport units in Media Queries
https://bugs.webkit.org/show_bug.cgi?id=144260

Reviewed by Darin Adler.

Source/WebCore:

This patch makes sure that viewport units are considered "length units"
in the context of Media Queries, by having MediaQueryExp use the unit logic
that is in CSSPrimitiveValue.
It does that by turning the relevant methods in CSSPrimitiveValue into static.

It also makes sure that the logic for "resolution units" is not maintained separately
in MediaQueryExp, to avoid similiar issues in the future with resolution units.

Test: fast/media/mq-viewport-units.html

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isViewportPercentageLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isResolution): Added a static variant.

  • css/MediaQueryExp.cpp:

(WebCore::featureWithValidPositiveLenghtOrNumber): Call CSSPrimitiveValue's length unit logic.
(WebCore::featureWithValidDensity): Call CSSPrimitiveValue's resolution unit logic.

LayoutTests:

These tests make sure that viewport units are working as expected inside of Media Queries.

  • fast/media/mq-viewport-units-expected.txt: Added.
  • fast/media/mq-viewport-units.html: Added.
11:38 AM Changeset in webkit [183403] by Brent Fulgham
  • 6 edits in trunk

REGRESSION(r182879): Images and video can no longer be downloaded
https://bugs.webkit.org/show_bug.cgi?id=144267
<rdar://problem/20702844>

Reviewed by Simon Fraser.

Source/WebKit/mac:

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _createActionMenuItemForTag:]): Check for
"!WebCore::protocolIs(..., "file")" for image and media downloads.

Source/WebKit2:

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createActionMenuItemForTag:]): Check for
"!WebCore::protocolIs(..., "file")" for image and media downloads.

Tools:

Revise tests to check for proper download menu state.

  1. Downloading a loal image should be disabled.
  2. Downloading a local media file should be disabled.
  3. Downloading non-downloadable media should be disabled.
  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:

(TestWebKitAPI::TEST):

11:36 AM Changeset in webkit [183402] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Map#entries and Map#keys error for non-Maps is swapped
https://bugs.webkit.org/show_bug.cgi?id=144253

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-27
Reviewed by Simon Fraser.

Correcting error messages on Set/Map methods when called on
incompatible objects.

  • runtime/MapPrototype.cpp:

(JSC::mapProtoFuncEntries):
(JSC::mapProtoFuncKeys):

  • runtime/SetPrototype.cpp:

(JSC::setProtoFuncEntries):

11:31 AM Changeset in webkit [183401] by fpizlo@apple.com
  • 23 edits
    4 adds in trunk/Source/JavaScriptCore

Rationalize DFG DCE handling of nodes that perform checks that propagate through AI
https://bugs.webkit.org/show_bug.cgi?id=144186

Reviewed by Geoffrey Garen.

If I do ArithAdd(Int32Use, Int32Use, CheckOverflow) then AI will prove that this returns
Int32. We may later perform code simplifications based on the proof that this is Int32, and
we may kill all DFG users of this ArithAdd. Then we may prove that there is no exit site at
which the ArithAdd is live. This seems like it is sufficient to then kill the ArithAdd,
except that we still need the overflow check!

Previously we mishandled this:

  • In places where we want the overflow check we need to use MustGenerate(@ArithAdd) as a hack to keep it alive. That's dirty and it's just indicative of a deeper issue.
  • Our MovHint removal doesn't do Phantom canonicalization which essentially makes it powerless. This was sort of hiding the bug.
  • Nodes that have checks that AI leverages should always be NodeMustGenerate. You can't kill something that you are relying on for subsequent simplifications.


This fixes MovHint removal to also canonicalize Phantoms. This also adds ModeMustGenerate to
nodes that may perform checks that are used by AI to guarantee the result type. As a result,
we no longer need the weird MustGenerate node.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd): Deleted.

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.h:

(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPhantomCanonicalizationPhase.cpp:

(JSC::DFG::PhantomCanonicalizationPhase::run):

  • dfg/DFGPhantomRemovalPhase.cpp:

(JSC::DFG::PhantomRemovalPhase::run):

  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • tests/stress/fold-based-on-int32-proof-mul-branch.js: Added.

(foo):

  • tests/stress/fold-based-on-int32-proof-mul.js: Added.

(foo):

  • tests/stress/fold-based-on-int32-proof-or-zero.js: Added.

(foo):

  • tests/stress/fold-based-on-int32-proof.js: Added.

(foo):

11:19 AM Changeset in webkit [183400] by Csaba Osztrogonác
  • 8 edits
    1 delete in trunk/Tools

Merge run-launcher into run-minibrowser
https://bugs.webkit.org/show_bug.cgi?id=141928

Reviewed by Darin Adler.

  • Scripts/run-iexploder-tests:

(runSafariWithIExploder):

  • Scripts/run-launcher: Removed.
  • Scripts/run-minibrowser:
  • Scripts/webkitdirs.pm:

(launcherPath):

  • Scripts/webkitpy/port/efl.py:

(EflPort.show_results_html_file):

  • Scripts/webkitpy/port/efl_unittest.py:

(EflPortTest.test_show_results_html_file):

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.print_leaks_summary):
(GtkPort.show_results_html_file):
(GtkPort): Deleted.

  • Scripts/webkitpy/port/gtk_unittest.py:

(GtkPortTest.test_show_results_html_file):

10:24 AM Changeset in webkit [183399] by jfernandez@igalia.com
  • 7 edits
    8 adds in trunk

[CSS Grid Layout] Support for the justify-self and justify-items in grid layout
https://bugs.webkit.org/show_bug.cgi?id=133280

Source/WebCore:

Reviewed by David Hyatt.

Implementation of justify-self and justify-items properties for grid. It supports
different writing-modes and direction. Margins, borders and paddings are also
considered when computing the final position and stretched size.

This patch applies also a quite important refactoring of the alignment logic in
order to share code between the two alignment dimensions, row-axis and column-axis.

Overflow handling is still missing and will be added later in a follow-up bug.

Tests: fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html

fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html
fast/css-grid-layout/grid-align-justify-margin-border-padding.html
fast/css-grid-layout/justify-self-cell.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):
(WebCore::RenderGrid::findChildLogicalPosition):
(WebCore::RenderGrid::allowedToStretchLogicalHeightForChild): Deleted.
(WebCore::RenderGrid::needToStretchChildLogicalHeight): Deleted.
(WebCore::RenderGrid::marginLogicalHeightForChild): Deleted.
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching): Deleted.
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded): Deleted.

  • rendering/RenderGrid.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::resolveJustification):

  • rendering/style/RenderStyle.h:

LayoutTests:

Implementation of justify-self and justify-items properties for grid.
Added additional testing for ensuring margin, padding and border are considered when
computing grid item's position.

Reviewed by David Hyatt.

  • fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html: Added.
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html: Added.
  • fast/css-grid-layout/grid-align-justify-margin-border-padding.html: Added.
  • fast/css-grid-layout/justify-self-cell-expected.txt: Added.
  • fast/css-grid-layout/justify-self-cell.html: Added.
  • fast/css-grid-layout/resources/grid.css:

(.directionLTR): Added. Useful for defining orthogonal flows.

10:07 AM Changeset in webkit [183398] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Crashes under IDBDatabase::closeConnection
https://bugs.webkit.org/show_bug.cgi?id=141745

Reviewed by Alexey Proskuryakov.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::~IDBDatabase): Do the work of close/closeConnection without
actually calling those functions.
(WebCore::IDBDatabase::closeConnection): Protect the database so it's not destroyed
in the middle of this function's execution.

7:56 AM Changeset in webkit [183397] by calvaris@igalia.com
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed.

Fixed timeout expectation of "closed should fulfill with
undefined" test. This doesn't time out anymore.

  • streams/reference-implementation/readable-stream-templated.html:
7:54 AM Changeset in webkit [183396] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

Fixed timeout expectation of "closed should fulfill with
undefined" test. This doesn't time out anymore.

  • streams/reference-implementation/readable-stream-templated.html:
6:31 AM Changeset in webkit [183395] by youenn.fablet@crf.canon.fr
  • 12 edits in trunk

[Streams API] ReadableStream constructor start function should be able to close the stream
https://bugs.webkit.org/show_bug.cgi?id=143363

Reviewed by Benjamin Poulain.

Source/WebCore:

Implements https://streams.spec.whatwg.org/#close-readable-stream.
When the "close" JS function is called, the stream is getting closed.
The stream state is changed to close and if it has a reader, the reader gets closed as well:
The reader resolves the closed promise and releases the stream.

Enabled the possibility to resolve a promise with any JS value.
This is used to resolve closed promise with jsUndefined and will be used for read promises in
the future as well, though of course it is not restricted to Streams.

Covered by reference tests that are now passing.

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToClosed): Called by the JS function 'close'.

  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::ReadableStreamReader): Initialized stream.
(WebCore::ReadableStreamReader::initialize): Added to handle state change at constructor time
in particular closed/errored state.
(WebCore::ReadableStreamReader::releaseStream): Releases the stream.
(WebCore::ReadableStreamReader::closed): Stores the promise callbacks and invokes success
immediately if the stream is already closed.
(WebCore::ReadableStreamReader::changeStateToClosed): Changes the internal state to closed,
resolves the promise and releases the stream.

  • Modules/streams/ReadableStreamReader.h:

(WebCore::ReadableStreamReader::State): Added.

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve<JSC::JSValue>): Adds the ability to resolve a promise with
a custom JS value.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::close): Not "notImplemented" anymore. Now it closes the
stream.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed): Resolves the promise with undefined.

LayoutTests:

Updated expectations with new passes.

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
4:10 AM Changeset in webkit [183394] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_GRID_LAYOUT) build after r183370
https://bugs.webkit.org/show_bug.cgi?id=144255

Reviewed by Carlos Garcia Campos.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight):

4:03 AM Changeset in webkit [183393] by youenn.fablet@crf.canon.fr
  • 10 edits
    4 adds in trunk

Synchronous XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=143711

Reviewed by Darin Adler.

Source/WebCore:

This patch checks whether a substitute resource data is stored in memory or in file for synchronous loads.
If data is stored in file, it reads the data through SharedBuffer::createWithContentsOfFile.
This patch refactors some routines to replace Vector<char> by SharedBuffer to transmit response data.

Test: http/tests/appcache/simple-video-sync.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/FrameLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::createFileURL):
(WebCore::ApplicationCacheHost::maybeLoadSynchronously):
(WebCore::ApplicationCacheHost::maybeLoadFallbackSynchronously):

  • loader/appcache/ApplicationCacheHost.h:
  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

LayoutTests:

  • http/tests/appcache/resources/fake-video.mp4: Added.
  • http/tests/appcache/resources/simple-video-sync.manifest: Added.
  • http/tests/appcache/simple-video-sync-expected.txt: Added.
  • http/tests/appcache/simple-video-sync.html: Added.
3:23 AM Changeset in webkit [183392] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Also skip it in run-javascriptcore-tests.

  • js/script-tests/class-syntax-semicolon.js:
3:13 AM Changeset in webkit [183391] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Temporarily skip the test added in r183384 as it's hitting an assertion per an existing bug.

The newly uncovered bug is tracked by webkit.org/b/144258.

3:05 AM Changeset in webkit [183390] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[buildbot] Fix the output of perf-test buildstep on timeout
https://bugs.webkit.org/show_bug.cgi?id=144097

Reviewed by Ryosuke Niwa.

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

(RunAndUploadPerfTests.getText2):

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:

(RunAndUploadPerfTestsTest.test_buildbot_timeout):
(RunAndUploadPerfTestsTest.test_build_bad_preparation): Deleted.

3:02 AM Changeset in webkit [183389] by Csaba Osztrogonác
  • 5 edits in trunk

[EFL] TestWebKitAPI's forwarding header generator should depend on WebKit2's generator
https://bugs.webkit.org/show_bug.cgi?id=143874

Reviewed by Gyuyoung Kim.

Source/WebKit2:

  • PlatformEfl.cmake: Rename the generator to have consistent name with other generators.
  • Scripts/generate-forwarding-headers.pl: Removed the unnecessary multiple include-path support.

Tools:

  • TestWebKitAPI/PlatformEfl.cmake: Add the new dependency.

Apr 26, 2015:

11:47 PM Changeset in webkit [183388] by Philippe Normand
  • 7 edits
    2 adds in trunk

[JHBuild] Move to upstream OpenWebRTC
https://bugs.webkit.org/show_bug.cgi?id=144145

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindOpenWebRTC.cmake: Check the presence of the

owr-gst library.

Source/WebCore:

  • platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp:

(WebCore::initializeOpenWebRTC): Update with new owr_init API.

Tools:

  • efl/jhbuild.modules: Switch to upstream OpenWebRTC repository

and add a new simple patch to gst-plugins-base, required for
OpenWebRTC build.

  • efl/patches/gst-plugins-base-rtp-rtcpbuffer-fix-typo-in-enum.patch: Added.
  • gtk/jhbuild.modules: Ditto.
  • gtk/patches/gst-plugins-base-rtp-rtcpbuffer-fix-typo-in-enum.patch: Added.
11:17 PM Changeset in webkit [183387] by Carlos Garcia Campos
  • 11 edits
    4 adds
    1 delete in trunk/Source

[SOUP] Add initial implementation of NetworkProcess disk cache
https://bugs.webkit.org/show_bug.cgi?id=143872

Reviewed by Martin Robinson.

Source/WebCore:

Allow to create a GRefPtr for SoupBuffer. Even though SoupBuffer
is not a GObject and has copy/free functions instead of ref/unref,
it's internally refcounted, so we could use copy/free as
ref/unref.

  • PlatformGTK.cmake:
  • platform/network/soup/GRefPtrSoup.cpp: Added.

(WTF::refGPtr):
(WTF::derefGPtr):

  • platform/network/soup/GRefPtrSoup.h: Added.

Source/WebKit2:

Implement the platform specific parts of the disk cache
implementation for Soup. It's mainly NetworkCache::Data and
NetworkCache::IOChannel.

  • CMakeLists.txt:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::dumpFileChanged):
(WebKit::NetworkCache::Cache::initialize):

  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
  • NetworkProcess/cache/NetworkCacheData.h:

(WebKit::NetworkCache::Data::soupBuffer):

  • NetworkProcess/cache/NetworkCacheDataSoup.cpp: Added.

(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::data):
(WebKit::NetworkCache::Data::isNull):
(WebKit::NetworkCache::Data::apply):
(WebKit::NetworkCache::Data::subrange):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::MapWrapper::~MapWrapper):
(WebKit::NetworkCache::deleteMapWrapper):
(WebKit::NetworkCache::mapFile):
(WebKit::NetworkCache::Data::adoptMap):
(WebKit::NetworkCache::computeSHA1):
(WebKit::NetworkCache::bytesEqual):

  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: Added.

(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):
(WebKit::NetworkCache::fillDataFromReadBuffer):
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):

  • NetworkProcess/cache/NetworkCacheStorageSoup.cpp: Removed.
  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::platformSetCacheModel):
(WebKit::NetworkProcess::clearDiskCache):

  • PlatformGTK.cmake:
10:58 PM Changeset in webkit [183386] by ap@apple.com
  • 2 edits in trunk/LayoutTests

editing/selection/programmatic-selection-on-mac-is-directionless.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141122

  • platform/wk2/TestExpectations: Mark the test as such. Unfortunately, there are

almost certainly other tests affected by this.

10:39 PM Changeset in webkit [183385] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] LayoutBox::hasDefiniteLogicalHeight() should consider abspos boxes as definite
https://bugs.webkit.org/show_bug.cgi?id=144144

Reviewed by Darin Adler.

Source/WebCore:

Change order in hasDefiniteLogicalHeight() ifs to consider definite
absolutely positioned elements.

Test: fast/css-grid-layout/percent-track-breadths-regarding-container-size.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasDefiniteLogicalHeight):

LayoutTests:

Add new test case to check absolutely positioned elements.

  • fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
10:02 PM Changeset in webkit [183384] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Class body ending with a semicolon throws a SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=144244

Patch by Ryosuke Niwa <rniwa@webkit.org> on 2015-04-26
Reviewed by Darin Adler.

Added a regression test for having a semicolon inside the class definition.

  • js/class-syntax-semicolon-expected.txt: Added.
  • js/class-syntax-semicolon.html: Added.
  • js/script-tests/class-syntax-semicolon.js: Added.
9:20 PM Changeset in webkit [183383] by rniwa@webkit.org
  • 3 edits
    3 adds in trunk

Class body ending with a semicolon throws a SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=144244

Reviewed by Darin Adler.

Source/JavaScriptCore:

The bug was caused by parseClass's inner loop for method definitions not moving onto the next iteration
it encounters a semicolon. As a result, we always expected a method to appear after a semicolon. Fixed
it by continue'ing when it encounters a semicolon.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):

LayoutTests:

Added a regression test for having a semicolon inside the class definition.

  • js/class-syntax-semicolon-expected.txt: Added.
  • js/class-syntax-semicolon.html: Added.
  • js/script-tests/class-syntax-semicolon.js: Added.
9:18 PM Changeset in webkit [183382] by rniwa@webkit.org
  • 7 edits in trunk

Getter or setter method named "prototype" or "constrcutor" should throw SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=144243

Reviewed by Darin Adler.

Source/JavaScriptCore:

Fixed the bug by adding explicit checks in parseGetterSetter when we're parsing class methods.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseGetterSetter):

LayoutTests:

Added tests cases to both tests. Also added test cases missing from expression tests.

  • js/class-syntax-declaration-expected.txt:
  • js/class-syntax-expression-expected.txt:
  • js/script-tests/class-syntax-declaration.js:
  • js/script-tests/class-syntax-expression.js:
8:51 PM Changeset in webkit [183381] by commit-queue@webkit.org
  • 86 edits
    2 adds in trunk

SVGFilterBuilder should drive the builtin sourceAlpha from the passed sourceGraphic
https://bugs.webkit.org/show_bug.cgi?id=144137

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-04-26
Reviewed by Darin Adler.

Source/WebCore:

The SourceAlpha should be driven from the last applied FilterEffect. This
will require the SourceAlpha FilterEffect to wrap a FilterEffect rather
than just getting the SourceGraphic reference from FilterEffectRenderer.

This is based on the Blink patch:
https://src.chromium.org/viewvc/blink?revision=194115&view=revision.

Test: svg/filters/sourceAlpha-input-filter-effect.html

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::create): Make SourceAlpha wraps a FilterEffect
rather than a Filter.

(WebCore::SourceAlpha::determineAbsolutePaintRect): Determine the paint
rect from the wrapped FilterEffect.

(WebCore::SourceAlpha::platformApplySoftware): Extract the alpha channel
from the wrapped FilterEffect.

(WebCore::SourceAlpha::SourceAlpha):

  • platform/graphics/filters/SourceAlpha.h:

(WebCore::SourceAlpha::SourceAlpha): Deleted.
Reimplement the constructor of the SourceAlpha such that it wraps the
sourceEffect in its inputEffects.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::buildReferenceFilter): Delete the FIXME
comment and do exactly what it said. This matches the implementation of
Gecko and Blink.

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives):
Delete the extra argument.

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::SVGFilterBuilder):

  • svg/graphics/filters/SVGFilterBuilder.h: Drive the SourceAlpha from the

passed source FilterEffect.

  • platform/graphics/filters/FEBlend.cpp:
  • platform/graphics/filters/FEBlend.h:
  • platform/graphics/filters/FEColorMatrix.cpp:
  • platform/graphics/filters/FEColorMatrix.h:
  • platform/graphics/filters/FEComponentTransfer.cpp:
  • platform/graphics/filters/FEComponentTransfer.h:
  • platform/graphics/filters/FEComposite.cpp:
  • platform/graphics/filters/FEComposite.h:
  • platform/graphics/filters/FEConvolveMatrix.cpp:
  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FEDiffuseLighting.cpp:
  • platform/graphics/filters/FEDiffuseLighting.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:
  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:
  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEFlood.cpp:
  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:
  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FELighting.cpp:
  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:
  • platform/graphics/filters/FEMerge.h:
  • platform/graphics/filters/FEMorphology.cpp:
  • platform/graphics/filters/FEMorphology.h:
  • platform/graphics/filters/FEOffset.cpp:
  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/FESpecularLighting.cpp:
  • platform/graphics/filters/FESpecularLighting.h:
  • platform/graphics/filters/FETile.cpp:
  • platform/graphics/filters/FETile.h:
  • platform/graphics/filters/FETurbulence.cpp:
  • platform/graphics/filters/FETurbulence.h:
  • platform/graphics/filters/Filter.h:
  • platform/graphics/filters/FilterEffect.cpp:
  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/filters/SourceGraphic.cpp:
  • platform/graphics/filters/SourceGraphic.h:
  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:

Code clean up: Pointer to reference conversion. It starts by converting
FilterEffect::m_filter from pointer to reference and it kept expanding.
All the creations of FilterEffect were happening by passing "this" so
passing "*this" did not require to check whether the pointer is nil.

  • svg/SVGFEBlendElement.cpp:
  • svg/SVGFEBlendElement.h:
  • svg/SVGFEColorMatrixElement.cpp:
  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFEComponentTransferElement.cpp:
  • svg/SVGFEComponentTransferElement.h:
  • svg/SVGFECompositeElement.cpp:
  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:
  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDiffuseLightingElement.cpp:
  • svg/SVGFEDiffuseLightingElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:
  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEDropShadowElement.cpp:
  • svg/SVGFEDropShadowElement.h:
  • svg/SVGFEFloodElement.cpp:
  • svg/SVGFEFloodElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:
  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEImageElement.cpp:
  • svg/SVGFEImageElement.h:
  • svg/SVGFEMergeElement.cpp:
  • svg/SVGFEMergeElement.h:
  • svg/SVGFEMorphologyElement.cpp:
  • svg/SVGFEMorphologyElement.h:
  • svg/SVGFEOffsetElement.cpp:
  • svg/SVGFEOffsetElement.h:
  • svg/SVGFESpecularLightingElement.cpp:
  • svg/SVGFESpecularLightingElement.h:
  • svg/SVGFETileElement.cpp:
  • svg/SVGFETileElement.h:
  • svg/SVGFETurbulenceElement.cpp:
  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/graphics/filters/SVGFEImage.cpp:
  • svg/graphics/filters/SVGFEImage.h:

Code clean up: Pointer to reference and PassRefPtr<> to RefPtr<> or Ref<>
conversion.

LayoutTests:

Ensure the SourceAlpha is driven from last applied FilterEffect.

  • svg/filters/sourceAlpha-input-filter-effect-expected.html: Added.
  • svg/filters/sourceAlpha-input-filter-effect.html: Added.
8:38 PM Changeset in webkit [183380] by benjamin@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Improve the status page
https://bugs.webkit.org/show_bug.cgi?id=144248

Reviewed by Darin Adler.

  • status.html:

Lots of minor changes:
-Add a page title.
-Do not use sync XHR. That was nice for testing but that's eveil

and it breaks Firefox.

-Start fetching the json files as soon as possible during page load,

that server takes forever to respond.

-Remove some useless CSS.
-Get rid of mustache. That template thing was awesome but it took

up to 600ms to fetch the file (plus it is not exactly efficient).

-Put both the specifications and the features in the list.

They are referencing each other with links. That seems to work pretty well.

-Use the keywords for filtering.

7:30 PM Changeset in webkit [183379] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening on 27th April.

Unskip 2 tests which have been passed since r183368.

Mark editing/selection/extend-by-character-007.html to missing.
This needs to have new baseline for EFL port.

  • platform/efl/TestExpectations:
7:04 PM Changeset in webkit [183378] by Darin Adler
  • 3 edits in trunk/Source/WebCore

REGRESSION (r174283): disabled default buttons use impossible-to-read white text on Mac
https://bugs.webkit.org/show_bug.cgi?id=144237

Reviewed by Simon Fraser.

No test because DumpRenderTree and WebKitTestRunner don't have a good method
for testing behaviors that are specific to active windows. That's the same reason
that the change that caused this bug didn't come with a regression test.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle): Renamed "e" to "element". Added a comment to
clarify the meaning of the setInsideDefaultButton function, and added an
isDisabledFormControl check so it won't trigger on a disabled button.
(WebCore::RenderTheme::systemColor): Moved CSSValueActivebuttontext into
alphabetical order to match the rest of the switch statement ordering.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor): Moved CSSValueActivebuttontext into
alphabetical order to match the rest of the switch statement ordering. Also
fixed its behavior on older versions of OS X; it should just return the same
thing that CSSValueButtontext would return in that context.

6:52 PM Changeset in webkit [183377] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cannot make Timeline time range selection clicking inside Frames Overview
https://bugs.webkit.org/show_bug.cgi?id=143744

Patch by Matt Baker <Matt Baker> on 2015-04-26
Reviewed by Timothy Hatcher.

Fixed frame rate divider element style so that it is no longer a mouse event target.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview-graph.rendering-frame > .divider):

6:25 PM Changeset in webkit [183376] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow Timeline tab to show resource when a go-to arrow is clicked in a recording
https://bugs.webkit.org/show_bug.cgi?id=144240

Only support showing a resource or script if we have that represented object in the Timeline sidebar.

Reviewed by Darin Adler.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.prototype.canShowRepresentedObject):

6:24 PM Changeset in webkit [183375] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't use treeElement.revealAndSelect when showing a default content view
https://bugs.webkit.org/show_bug.cgi?id=144239

Using revealAndSelect will end up calling WebInspector.showRepresentedObject. That is not bad
is most cases, but if the select tab supports the same represented object, it can end up showing
the content view in the wrong tab.

Reviewed by Darin Adler.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.showContentViewForCurrentSelection): Deleted.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):

5:33 PM Changeset in webkit [183374] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk

Map#forEach does not pass "map" argument to callback.
https://bugs.webkit.org/show_bug.cgi?id=144187

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-26
Reviewed by Darin Adler.

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-map.prototype.foreach
step 7.a.i., the callback should be called with three arguments.

  • runtime/MapPrototype.cpp:

(JSC::mapProtoFuncForEach):

5:27 PM Changeset in webkit [183373] by Yusuke Suzuki
  • 37 edits
    3 adds in trunk

[ES6] Implement ES6 template literals
https://bugs.webkit.org/show_bug.cgi?id=142691

Reviewed by Darin Adler.

.:

Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

This patch implements TemplateLiteral.
Since TaggedTemplate requires some global states and
primitive operations like GetTemplateObject,
we separate the patch. It will be implemented in a subsequent patch.

Template Literal Syntax is guarded by ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.
By disabling it, we can disable Template Literal support.

To implement template literals, in this patch,
we newly introduces bytecode op_to_string.
In template literals, we alternately evaluate the expression and
perform ToString onto the result of evaluation.
For example,

${f1()} ${f2()}

In this template literal, execution order is the following,

  1. calling f1()
  2. ToString(the result of f1())
  3. calling f2()
  4. ToString(the result of f2())

op_strcat also performs ToString. However, performing ToString
onto expressions are batched in op_strcat, it's not the same to the
template literal spec. In the above example,
ToString(f1()) should be called before calling f2().

  • Configurations/FeatureDefines.xcconfig:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitToString):
(JSC::BytecodeGenerator::emitToNumber): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::TemplateStringNode::emitBytecode):
(JSC::TemplateLiteralNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

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

(JSC::JIT::emit_op_to_string):
(JSC::JIT::emitSlow_op_to_string):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_string):
(JSC::JIT::emitSlow_op_to_string):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createTemplateString):
(JSC::ASTBuilder::createTemplateStringList):
(JSC::ASTBuilder::createTemplateExpressionList):
(JSC::ASTBuilder::createTemplateLiteral):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::parseIdentifierSlowCase):
(JSC::Lexer<T>::parseString):
(JSC::LineNumberAdder::LineNumberAdder):
(JSC::LineNumberAdder::clear):
(JSC::LineNumberAdder::add):
(JSC::Lexer<T>::parseTemplateLiteral):
(JSC::Lexer<T>::lex):
(JSC::Lexer<T>::scanRegExp):
(JSC::Lexer<T>::scanTrailingTemplateString):
(JSC::Lexer<T>::parseStringSlowCase): Deleted.

  • parser/Lexer.h:
  • parser/NodeConstructors.h:

(JSC::TemplateExpressionListNode::TemplateExpressionListNode):
(JSC::TemplateStringNode::TemplateStringNode):
(JSC::TemplateStringListNode::TemplateStringListNode):
(JSC::TemplateLiteralNode::TemplateLiteralNode):

  • parser/Nodes.h:

(JSC::TemplateExpressionListNode::value):
(JSC::TemplateExpressionListNode::next):
(JSC::TemplateStringNode::cooked):
(JSC::TemplateStringNode::raw):
(JSC::TemplateStringListNode::value):
(JSC::TemplateStringListNode::next):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseTemplateString):
(JSC::Parser<LexerType>::parseTemplateLiteral):
(JSC::Parser<LexerType>::parsePrimaryExpression):

  • parser/Parser.h:
  • parser/ParserTokens.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createTemplateString):
(JSC::SyntaxChecker::createTemplateStringList):
(JSC::SyntaxChecker::createTemplateExpressionList):
(JSC::SyntaxChecker::createTemplateLiteral):
(JSC::SyntaxChecker::createSpreadExpression): Deleted.

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/stress/template-literal-line-terminators.js: Added.

(test):
(testEval):
(testEvalLineNumber):

  • tests/stress/template-literal-syntax.js: Added.

(testSyntax):
(testSyntaxError):

  • tests/stress/template-literal.js: Added.

(test):
(testEval):
(testEmbedded):

Source/WebCore:

Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.

  • Configurations/FeatureDefines.xcconfig:

Tools:

Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.

  • Scripts/webkitperl/FeatureList.pm:
4:41 PM Changeset in webkit [183372] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Remove PluginView::renderer().
https://bugs.webkit.org/show_bug.cgi?id=144216

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-26
Reviewed by Darin Adler.

Nobody should have to know about the plug-in view's renderer except the plug-in view itself.

No new tests, no behavior change.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::convertFromScrollbarToContainingView):
(WebKit::PDFPlugin::convertFromContainingViewToScrollbar):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::renderer): Deleted.

  • WebProcess/Plugins/PluginView.h:
3:54 PM Changeset in webkit [183371] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk

Set#forEach does not pass "key" or "set" arguments to callback.
https://bugs.webkit.org/show_bug.cgi?id=144188

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-26
Reviewed by Darin Adler.

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set.prototype.foreach
Set#forEach should pass 3 arguments to the callback.

  • runtime/SetPrototype.cpp:

(JSC::setProtoFuncForEach):

3:44 PM Changeset in webkit [183370] by jfernandez@igalia.com
  • 11 edits
    2 adds in trunk

[CSS Grid Layout] Support for align-self and align-items in grid layout
https://bugs.webkit.org/show_bug.cgi?id=133225

Reviewed by Darin Adler.

Source/WebCore:

Implementation of align-self and align-items properties for grid. It supports
different writing-modes and direction. Margins, borders and paddings are also
considered when computing the final position and stretched size.

Overflow handling is still missing and will be added when implemented row-axis
alignment support.

Test: fast/css-grid-layout/grid-align.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::computeOverflowAlignmentOffset):
(WebCore::RenderGrid::endOfRowForChild):
(WebCore::RenderGrid::startOfRowForChild):
(WebCore::RenderGrid::centeredRowPositionForChild):
(WebCore::marginWidthForChild):
(WebCore::marginHeightForChild):
(WebCore::RenderGrid::allowedToStretchLogicalHeightForChild):
(WebCore::RenderGrid::needToStretchChildLogicalHeight):
(WebCore::RenderGrid::marginLogicalHeightForChild):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::findChildLogicalPosition):
(WebCore::RenderGrid::populateGridPositions): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Implementation of align-self and align-items properties ifor grid.

Several layout tests were touched for adapting them to the new grid item's
column-axis position when using RTL direction.

  • fast/css-grid-layout/grid-align-expected.txt: Added.
  • fast/css-grid-layout/grid-align.html: Added.
  • fast/css-grid-layout/grid-element-border-grid-item.html:
  • fast/css-grid-layout/grid-element-border-padding-grid-item.html:
  • fast/css-grid-layout/grid-element-padding-grid-item.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html:
  • fast/css-grid-layout/grid-item-margin-resolution.html:
3:31 PM Changeset in webkit [183369] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[CMake][EFL] Remove unnecessary include, library path in WebKitTestRunner/PlatformEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=144217

Reviewed by Darin Adler.

  • WebKitTestRunner/PlatformEfl.cmake:
3:17 PM Changeset in webkit [183368] by commit-queue@webkit.org
  • 74 edits
    3 copies
    8 adds in trunk

AX: richer text change notifications (142719)
https://bugs.webkit.org/show_bug.cgi?id=142719

Patch by Doug Russell <d_russell@apple.com> on 2015-04-26
Reviewed by Darin Adler.

Richer accessibility value change notifications. Introduce AXTextEditType,
postTextStateChangeNotification and postTextReplacementNotification to give assistive
tech apps more reliable context for responding to changes in web content. Also implement
a mechanism to post value changes in password form fields in coalesced ticks to thwart
analyzing the cadence of changes.

Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent,
and an overload of postTextReplacementNotification to give assistive tech apps more
reliable context for responding to changes in web content selection. Also block posting
selection changes on password fields.

Source/WebCore:

Tests: platform/mac/accessibility/input-replacevalue-userinfo.html

platform/mac/accessibility/selection-change-userinfo.html
platform/mac/accessibility/value-change-userinfo.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::passwordNotificationPostTimerFired):
(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::setTextSelectionIntent):
(WebCore::isPasswordFieldOrContainedByPasswordField):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::enqueuePasswordValueChangeNotification):
(WebCore::AXObjectCache::rootWebArea):
(WebCore::AXObjectCache::textChangeForEditType):
(WebCore::AXObjectCache::selectedChildrenChanged): Deleted.
(WebCore::AXObjectCache::frameLoadingEventNotification): Deleted.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::textChangeForEditType):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::computedObjectAttributeCache): Deleted.
(WebCore::AXObjectCache::getOrCreate): Deleted.
(WebCore::AXObjectCache::attachWrapper): Deleted.

  • accessibility/AXTextStateChangeIntent.h: Added.

(WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::passwordFieldOrContainingPasswordField):

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

(WebCore::AccessibilityObject::isContainedByPasswordField):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::passwordFieldOrContainingPasswordField):
(WebCore::AccessibilityObject::isPasswordField): Deleted.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification):

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::setShouldRepostNotificationsForTests):
(WebCore::AXPostNotificationWithUserInfo):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::textReplacementChangeDictionary):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(+[WebAccessibilityObjectWrapperBase accessibilitySetShouldRepostNotifications:]):
(-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:]):
(arrayRemovingNonJSONTypes):
(dictionaryRemovingNonJSONTypes):
(-[WebAccessibilityObjectWrapperBase accessibilityPostedNotification:userInfo:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(textMarkerRangeFromVisiblePositions):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::AppendNodeCommand):
(WebCore::sendAXTextChangedIgnoringLineBreaks):
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):

  • editing/AppendNodeCommand.h:

(WebCore::AppendNodeCommand::create):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::ApplyStyleCommand):
(WebCore::ApplyStyleCommand::applyBlockStyle): Deleted.

  • editing/ApplyStyleCommand.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapplyEditType):
(WebCore::CompositeEditCommand::CompositeEditCommand):
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::insertParagraphSeparator):
(WebCore::CompositeEditCommand::insertNodeBefore):
(WebCore::CompositeEditCommand::appendNode):
(WebCore::CompositeEditCommand::removeNodePreservingChildren):
(WebCore::CompositeEditCommand::insertTextIntoNode):
(WebCore::CompositeEditCommand::deleteTextFromNode):
(WebCore::CompositeEditCommand::replaceTextInNode):
(WebCore::CompositeEditCommand::moveParagraphs):
(WebCore::EditCommandComposition::getNodesInCommand): Deleted.
(WebCore::CompositeEditCommand::applyStyle): Deleted.
(WebCore::CompositeEditCommand::insertLineBreak): Deleted.
(WebCore::CompositeEditCommand::insertNodeAt): Deleted.
(WebCore::CompositeEditCommand::removeChildrenInRange): Deleted.
(WebCore::CompositeEditCommand::inputText): Deleted.

  • editing/CompositeEditCommand.h:
  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand):
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):

  • editing/DeleteFromTextNodeCommand.h:

(WebCore::DeleteFromTextNodeCommand::create):
(WebCore::DeleteFromTextNodeCommand::deletedText):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::DeleteSelectionCommand):
(WebCore::DeleteSelectionCommand::preservesTypingStyle): Deleted.

  • editing/DeleteSelectionCommand.h:

(WebCore::DeleteSelectionCommand::create):

  • editing/DictationCommand.cpp:

(WebCore::DictationCommand::insertTextRunWithoutNewlines):
(WebCore::DictationCommand::insertParagraphSeparator):

  • editing/EditAction.h:
  • editing/EditCommand.cpp:

(WebCore::EditCommand::EditCommand):
(WebCore::EditCommand::editingAction):
(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):
(WebCore::SimpleEditCommand::SimpleEditCommand):
(WebCore::SimpleEditCommand::notifyAccessibilityForTextChange):
(WebCore::EditCommand::setParent): Deleted.

  • editing/EditCommand.h:
  • editing/EditingAllInOne.cpp:
  • editing/Editor.cpp:

(WebCore::Editor::handleTextEvent):
(WebCore::Editor::deleteSelectionWithSmartDelete):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::replaceSelectionWithText):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::transpose):
(WebCore::Editor::changeSelectionAfterCommand):

  • editing/Editor.h:
  • editing/EditorCommand.cpp:

(WebCore::executeInsertFragment):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveTo):
(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::isBoundary):
(WebCore::FrameSelection::textSelectionIntent):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::wordSelectionContainingCaretSelection):
(WebCore::FrameSelection::modifyMovingBackward): Deleted.
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Deleted.
(WebCore::FrameSelection::selectionAtWordStart): Deleted.

  • editing/FrameSelection.h:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
(WebCore::FrameSelection::selection): Deleted.

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):

  • editing/InsertIntoTextNodeCommand.h:

(WebCore::InsertIntoTextNodeCommand::create):
(WebCore::InsertIntoTextNodeCommand::insertedText):

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand):
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):

  • editing/InsertNodeBeforeCommand.h:

(WebCore::InsertNodeBeforeCommand::create):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand):

  • editing/InsertParagraphSeparatorCommand.h:

(WebCore::InsertParagraphSeparatorCommand::create):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::InsertTextCommand):

  • editing/InsertTextCommand.h:

(WebCore::InsertTextCommand::create):
(WebCore::InsertTextCommand::createWithMarkerSupplier):

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::doApply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):

  • editing/RemoveNodePreservingChildrenCommand.h:

(WebCore::RemoveNodePreservingChildrenCommand::create):

  • editing/ReplaceDeleteFromTextNodeCommand.cpp: Copied from Source/WebCore/editing/AppendNodeCommand.h.

(WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand):
(WebCore::ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange):

  • editing/ReplaceDeleteFromTextNodeCommand.h: Copied from Source/WebCore/editing/AppendNodeCommand.h.
  • editing/ReplaceInsertIntoTextNodeCommand.cpp: Added.

(WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand):
(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

  • editing/ReplaceInsertIntoTextNodeCommand.h: Copied from Source/WebCore/editing/RemoveNodePreservingChildrenCommand.h.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
(WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Deleted.
(WebCore::ReplaceSelectionCommand::insertAsListItems): Deleted.

  • editing/ReplaceSelectionCommand.h:

(WebCore::ReplaceSelectionCommand::create):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertParagraphSeparator):

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • editing/ios/DictationCommandIOS.cpp:

(WebCore::DictationCommandIOS::DictationCommandIOS):

  • editing/ios/DictationCommandIOS.h:
  • editing/mac/FrameSelectionMac.mm:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

  • page/EventHandler.cpp:

(WebCore::setInitialKeyboardSelection):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction):

Source/WebKit2:

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction):

Tools:

  • DumpRenderTree/mac/AccessibilityNotificationHandler.h:
  • DumpRenderTree/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler stopObserving]):
(-[AccessibilityNotificationHandler _notificationReceived:]):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::removeNotificationListener):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:

(-[AccessibilityNotificationHandler _notificationReceived:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::removeNotificationListener):

LayoutTests:

  • platform/mac/accessibility/input-replacevalue-userinfo-expected.txt: Added.
  • platform/mac/accessibility/input-replacevalue-userinfo.html: Added.
  • platform/mac/accessibility/selection-change-userinfo-expected.txt: Added.
  • platform/mac/accessibility/selection-change-userinfo.html: Added.
  • platform/mac/accessibility/value-change-userinfo-expected.txt: Added.
  • platform/mac/accessibility/value-change-userinfo.html: Added.
2:26 PM Changeset in webkit [183367] by Darin Adler
  • 1 edit in trunk/Source/WebCore/ChangeLog

refine

2:25 PM Changeset in webkit [183366] by Darin Adler
  • 6 edits
    2 adds in trunk

REGRESSION (r176751): line-height ignored in <button> elements
https://bugs.webkit.org/show_bug.cgi?id=144234

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/forms/button-line-height.html

  • platform/Theme.h: Changed controlFont to return an Optional so we can tell

when the theme is overriding the font. Otherwise if the font from the user-agent
style sheet and the font from the theme are the same, we will think we are not
overriding the font when we actually are.

  • platform/mac/ThemeMac.h: Updated controlFont to return Optional.
  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::controlFont): Ditto.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle): Set line height only if the font is
overriden by the theme, all the time for PushButtonPart on Mac, and not at all
for other parts. Also tightened up the logic a little since RenderStyle's
setFontDescription already does an "==" comparison; we don't have to do
that twice.

LayoutTests:

  • fast/forms/button-line-height-expected.html: Added.
  • fast/forms/button-line-height.html: Added.
2:18 PM Changeset in webkit [183365] by Darin Adler
  • 4 edits
    2 adds in trunk

REGRESSION (r173801): Use after free in WebCore::NotificationCenter::~NotificationCenter
https://bugs.webkit.org/show_bug.cgi?id=137163

Reviewed by Andy Estes.

Source/WebCore:

Test: fast/notifications/request-notification-permission-while-reloading.html

The test doesn't crash under WebKit2, but that's still OK for our purposes.

  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::NotificationCenter): Initialize m_timer.
(WebCore::NotificationCenter::createNotification): Moved here from the header.
(WebCore::NotificationCenter::requestPermission): Start the timer and ref the notification
center when we need to defer a callback. Also use a lambda for the callback and changed
the argument to match what the bindings actually pass. Before we said PassRefPtr, but the
bindings were not transferring ownership of the VoidCallback. The new type is a little
strange but it's consistent with how the bindings work right now.
(WebCore::NotificationCenter::timerFired): Added. Calls all the callbacks, then does a deref
to match the ref we did above.
(WebCore::NotificationCenter::requestTimedOut): Deleted.
(WebCore::NotificationCenter::NotificationRequestCallback::createAndStartTimer): Deleted.
(WebCore::NotificationCenter::NotificationRequestCallback::NotificationRequestCallback): Deleted.
(WebCore::NotificationCenter::NotificationRequestCallback::startTimer): Deleted.
(WebCore::NotificationCenter::NotificationRequestCallback::timerFired): Deleted.

  • Modules/notifications/NotificationCenter.h: Reorganized the header to be a bit more tidy.

Changed the argument type for requestPermission to match the reality of what's passed by the
bindings. Removed NotificationRequestCallback and replaced the m_callbacks HashSet with a
vector of std::function.

LayoutTests:

  • fast/notifications/request-notification-permission-while-reloading-expected.txt: Added.
  • fast/notifications/request-notification-permission-while-reloading.html: Added.
1:38 PM Changeset in webkit [183364] by Simon Fraser
  • 15 edits in trunk/Source/WebCore

Modernize animations code
https://bugs.webkit.org/show_bug.cgi?id=144196

Reviewed by Darin Adler.

General cleanup in animation-related code.

Use C++ references where possible. Use modern loops. Make classes fast-allocated.
Use C++11 member initialization. Order member variables to optimize packing.

This removes some null checks in CompositeAnimation, but the values in m_transitions
and m_keyframeAnimations can never be null.

No behavior change.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::AnimationBase):
(WebCore::AnimationBase::animationsMatch):
(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::beginAnimationUpdateTime):
(WebCore::AnimationBase::getElapsedTime):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::animation):
(WebCore::AnimationBase::setAnimation):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::ensureCompositeAnimation):
(WebCore::AnimationControllerPrivate::addToAnimationsWaitingForStartTimeResponse):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::CompositeAnimation):
(WebCore::CompositeAnimation::clearRenderer):
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
(WebCore::CompositeAnimation::getAnimatedStyle):
(WebCore::CompositeAnimation::timeToNextService):
(WebCore::CompositeAnimation::getAnimationForProperty):
(WebCore::CompositeAnimation::computeExtentOfTransformAnimation):
(WebCore::CompositeAnimation::suspendAnimations):
(WebCore::CompositeAnimation::resumeAnimations):
(WebCore::CompositeAnimation::overrideImplicitAnimations):
(WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
(WebCore::CompositeAnimation::isAnimatingProperty):
(WebCore::CompositeAnimation::pauseTransitionAtTime):
(WebCore::CompositeAnimation::numberOfActiveAnimations):

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::create):
(WebCore::CompositeAnimation::animationController):

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::sendTransitionEvent):

  • page/animation/ImplicitAnimation.h:

(WebCore::ImplicitAnimation::create):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle):
(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation):
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::sendAnimationEvent):
(WebCore::KeyframeAnimation::overrideAnimations):
(WebCore::KeyframeAnimation::resumeOverriddenAnimations):
(WebCore::KeyframeAnimation::timeToNextService):

  • page/animation/KeyframeAnimation.h:
  • platform/animation/Animation.cpp:

(WebCore::Animation::animationsMatch):

  • platform/animation/Animation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paint):
(WebCore::performOverlapTests):

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeList::properties):
(WebCore::KeyframeList::keyframes):
(WebCore::KeyframeList::beginProperties): Deleted.
(WebCore::KeyframeList::endProperties): Deleted.
(WebCore::KeyframeList::operator[]): Deleted.

  • rendering/style/RenderStyle.h:
1:36 PM Changeset in webkit [183363] by bshafiei@apple.com
  • 4 edits in tags/Safari-601.1.30/Source/WebKit2

Merged r183360. rdar://problem/20702337

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

Versioning.

1:20 PM Changeset in webkit [183361] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30

New tag.

1:20 PM Changeset in webkit [183360] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

<rdar://problem/20702337> REGRESSION (r182952): Plug-in service fails to load because it links against WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144233

Reviewed by Simon Fraser.

Have the plug-in service link against WebKit.framework rather than WebKit2.framework.

  • Configurations/PluginService.32.xcconfig: Removed linker flags for linking against WebKit2

and Foundation from the definition of OTHER_LDFLAGS. Since linking is no longer conditional,
we can just do it in the target’s Link Binary With Libraries build phase.

  • Configurations/PluginService.64.xcconfig: Ditto.
  • WebKit2.xcodeproj/project.pbxproj: Have Foundation and WebKit listed in the services’ Link

Binariy With Libraries build phases (one service already had WebKit).

12:57 PM Changeset in webkit [183359] by benjamin@webkit.org
  • 1 edit
    1 add in trunk/Websites/webkit.org

Start a basic status page on webkit.org
https://bugs.webkit.org/show_bug.cgi?id=143940

Patch by Benjamin Poulain <benjamin@webkit.org>, Chris Bateman <chrisb808@gmail.com> on 2015-04-26
Reviewed by Darin Adler.

  • status.html: Added.

Nothing fancy, for now just show the "features" list of the two features.json

12:55 PM Changeset in webkit [183358] by benjamin@webkit.org
  • 30 edits
    4 adds
    3 deletes in trunk

[JSC] Implement Math.clz32(), remove Number.clz()
https://bugs.webkit.org/show_bug.cgi?id=144205

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This patch adds the ES6 function Math.clz32(), and remove the non-standard
Number.clz(). Number.clz() probably came from an older draft.

The new function has a corresponding instrinsic: Clz32Intrinsic,
and a corresponding DFG node: ArithClz32, optimized all the way to LLVM.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::countLeadingZeros32):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::bsr_rr):
The x86 assembler did not have countLeadingZeros32() because there is
no native CLZ instruction on that architecture.

I have added the version with bsr + branches for the case of zero.
An other popular version uses cmov to handle the case of zero. I kept
it simple since the Assembler has no support for cmov.

It is unlikely to matter much. If the code is hot enough, LLVM picks
something good based on the surrounding code.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
Constant handling + effect propagation. The node only produces integer (between 0 and 32).

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):
Thanks to the definition of toUint32(), we can ignore plenty of details
from doubles.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • 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:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithClz32):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileArithClz32):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::ctlz32):

  • jit/ThunkGenerators.cpp:

(JSC::clz32ThunkGenerator):

  • jit/ThunkGenerators.h:
  • runtime/Intrinsic.h:
  • runtime/MathCommon.h:

(JSC::clz32):
Fun fact: InstCombine does not recognize this pattern to eliminate
the branch which makes our FTL version better than the C version.

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):
(JSC::mathProtoFuncClz32):

  • runtime/NumberPrototype.cpp:

(JSC::clz): Deleted.
(JSC::numberProtoFuncClz): Deleted.

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):

  • tests/stress/math-clz32-basics.js: Added.

(mathClz32OnInteger):
(testMathClz32OnIntegers):
(verifyMathClz32OnIntegerWithOtherTypes):
(mathClz32OnDouble):
(testMathClz32OnDoubles):
(verifyMathClz32OnDoublesWithOtherTypes):
(mathClz32NoArguments):
(mathClz32TooManyArguments):
(testMathClz32OnConstants):
(mathClz32StructTransition):
(Math.clz32):

LayoutTests:

Basic conformance tests.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/math-clz32-expected.txt: Added.
  • js/math-clz32.html: Renamed from LayoutTests/js/number-clz.html.
  • js/number-clz-expected.txt: Removed.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/math-clz32.js: Added.

(objectConvertToString.toString):
(objectRecordToStringCall.toString):
(objectThrowOnToString.toString):
(objectWithValueOf.valueOf):
(objectThrowOnValueOf.valueOf):
(objectThrowOnValueOf.toString):
(objectRecordValueOfCall.valueOf):
(objectRecordConversionCalls.toString):
(objectRecordConversionCalls.valueOf):

  • js/script-tests/number-clz.js: Removed.
12:52 PM Changeset in webkit [183357] by Yusuke Suzuki
  • 7 edits
    2 adds in trunk

[ES6] Array.from need to accept iterables
https://bugs.webkit.org/show_bug.cgi?id=141055

Reviewed by Darin Adler.

Source/JavaScriptCore:

ES6 spec requires that Array.from accepts iterable objects.
This patch introduces this functionality, Array.from accepting iterable objects.

Currently, isConstructor is not used. Instead of it, typeof thiObj === "function" is used.
However, it doesn't conform to the spec. While isConstructor queries the given object has [[Construct]],
typeof thisObj === "function" queries the given object has [[Call]].
This will be fixed in the subsequent patch[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=144093

  • builtins/ArrayConstructor.js:

(from):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • tests/stress/array-from-with-iterable.js: Added.

(shouldBe):
(.set for):
(.set var):
(.get var):
(argumentsGenerators):
(.set shouldBe):
(.set new):

  • tests/stress/array-from-with-iterator.js: Added.

(shouldBe):
(shouldThrow):
(createIterator.iterator.return):
(createIterator):
(.):

LayoutTests:

Array.from now accepts iterables.

  • js/array-from-expected.txt:
11:45 AM Changeset in webkit [183356] by Simon Fraser
  • 17 edits in trunk/LayoutTests

New baselines for iOS.

  • platform/ios-simulator-wk2/compositing/contents-scale/rounded-contents-scale-expected.txt:
  • platform/ios-simulator-wk2/compositing/contents-scale/scaled-ancestor-expected.txt:
  • platform/ios-simulator-wk2/compositing/contents-scale/simple-scale-expected.txt:
  • platform/ios-simulator-wk2/compositing/contents-scale/z-translate-expected.txt:
  • platform/ios-simulator-wk2/compositing/repaint/invalidations-on-composited-layers-expected.txt:
  • platform/ios-simulator-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/2d-transformed-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/clipped-by-viewport-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/clipped-visible-rect-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-clipped-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/coverage-scrolling-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/flipped-preserve-3d-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/iframe-and-layers-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/nested-transform-expected.txt:
  • platform/ios-simulator-wk2/compositing/visible-rect/scrolled-expected.txt:
11:25 AM Changeset in webkit [183355] by Simon Fraser
  • 1 edit
    2 adds in trunk/LayoutTests

New WK1 results for this test.

  • platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt: Added.
10:24 AM Changeset in webkit [183354] by Simon Fraser
  • 49 edits
    1 copy
    1 add in trunk

Expand compositing coverage rect when scrolling and animating
https://bugs.webkit.org/show_bug.cgi?id=144214
rdar://problem/20695926

Reviewed by Darin Adler.

Source/WebCore:

r183300 added a secondary rect that gets mapped through graphics layers during
layer flushing, which represents a rect, in layer coordinates, that represents
the portion of this layer that's visible in the viewport.

This patch extends that rect based on scrolling and animating, with the extended
coverage rect being mapped into descendants (where it's used to determine whether
they should detach their backing store). This required moving the responsibility for
extending the coverage rect from TileController (where it was used to compute
tiled extent), to GraphicsLayerCA. Thus, GraphicsLayerCA now owns the concept
of coverage rect, and pushes it onto TileControllers.

Test: compositing/tiling/transform-origin-tiled.html

  • platform/graphics/TiledBacking.h: Coverage rect is now pushed onto

TiledBacking from outside; new functions reflect that.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): No need to pass
old visible rect to commitLayerChangesBeforeSublayers.
(WebCore::accumulatesTransform):
(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush): Now calls computeVisibleAndCoverageRect(),
then adjustCoverageRect() which adjusts for scrolling and animations.
(WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect): Fetch the coverage rect from the
TransformState, but we can only use this if mapping it through various transforms didn't clamp
it (which can happen with severe rotations in perspective).
(WebCore::GraphicsLayerCA::adjustCoverageRect): If this layer represents the page tiled backing,
ask the TileController to do coverage adjustment (code which should move into here eventually).
For other tiled layers, do motion-based adjustment. This should really be done for all layers
(an animating non-tiled layer may contain a tiled layer).
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): The VisibleRectChanged wasn't needed
any more; layers only react to changed in coverage rect now.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): If adjustCoverageRect() changed the
coverage rect, here we push the new rect back into the TransformState so it will affect
descendants.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateCoverage): Coverage and backing store attachment go
hand-in-hand now.
(WebCore::GraphicsLayerCA::changeLayerTypeTo):
(WebCore::GraphicsLayerCA::computeVisibleRect): Deleted.
(WebCore::GraphicsLayerCA::updateBackingStoreAttachment): Deleted.
(WebCore::GraphicsLayerCA::updateVisibleRect): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setVisibleRect): Visible rect is only used for scroll performance
logging now.
(WebCore::TileController::setCoverageRect):
(WebCore::TileController::tilesWouldChangeForCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::boundsForSize): This is required because when computeTileCoverageRect()
is called at the top of committing the owning layer, we haven't yet pushed a new size to the
underlying platform layer (which TileController::bounds() consults).
(WebCore::TileController::bounds):
(WebCore::TileController::computeTileCoverageRect): Have to push the new size in, since the
underlying layer hasn't been updated yet.
(WebCore::TileController::didRevalidateTiles):
(WebCore::TileController::tilesWouldChangeForVisibleRect): Deleted.

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap): Add a layer to the tile map that shows
a dark blue outline for the coverage rect.
(WebCore::TileCoverageMap::update): Fix some minor issues with map position when top
content inset is non-zero.

  • platform/graphics/ca/TileCoverageMap.h:
  • platform/graphics/ca/TileGrid.cpp: Everything is in terms of coverage rect now.

(WebCore::TileGrid::tilesWouldChangeForCoverageRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::tilesWouldChangeForVisibleRect): Deleted.

  • platform/graphics/ca/TileGrid.h:
  • platform/graphics/transforms/TransformState.cpp:

(WebCore::TransformState::operator=):
(WebCore::TransformState::mappedQuad): Pass direction into mapQuad().
(WebCore::TransformState::mappedSecondaryQuad): Ditto.
(WebCore::TransformState::setLastPlanarSecondaryQuad): This function allows a caller
to pass in a secondary quad, and get it mapped into the coordinate space of the last
"flattening" state (since the TransformState may have in-flight XY offset, or transform).
This mapping is achieved by re-using mapQuad(), but in the inverse direction.
(WebCore::TransformState::mapQuad): Make direction a parameter.
(WebCore::TransformState::flattenWithTransform): This code omitted to map the secondary
quad. Failure was detected by tests.

  • platform/graphics/transforms/TransformState.h:

(WebCore::TransformState::isMappingSecondaryQuad):
(WebCore::TransformState::direction):
(WebCore::TransformState::inverseDirection):
(WebCore::TransformState::lastPlanarSecondaryQuad): Deleted.

LayoutTests:

New baselines for tests dumping layer output, with coverage rect being affected
by this changeset. One new test for tiling a layer inside overflow:hidden with transform-origin.

  • compositing/contents-scale/animating-expected.txt:
  • compositing/contents-scale/rounded-contents-scale-expected.txt:
  • compositing/contents-scale/scaled-ancestor-expected.txt:
  • compositing/contents-scale/simple-scale-expected.txt:
  • compositing/tiling/transform-origin-tiled.html: Added.
  • platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac-wk2/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
  • platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles-expected.txt:
  • platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
  • platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
  • platform/mac/compositing/visible-rect/2d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-by-viewport-expected.txt:
  • platform/mac/compositing/visible-rect/clipped-visible-rect-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
  • platform/mac/compositing/visible-rect/iframe-no-layers-expected.txt:
  • platform/mac/compositing/visible-rect/scrolled-expected.txt:
8:47 AM Changeset in webkit [183353] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showDocumentPickerMenu]): Suppressed deprecation warnings around use
of -[UIDocumentMenuViewController _setIgnoreApplicationEntitlementForImport:].

6:00 AM Changeset in webkit [183352] by jonowells@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Vertically misaligned text in Object Trees
https://bugs.webkit.org/show_bug.cgi?id=144029

Reviewed by Timothy Hatcher.

Remove top offset for object tree property titles to fix alignment issue since applying -webkit-system-font
font family to these (http://trac.webkit.org/changeset/182982).

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property > .titles):

Note: See TracTimeline for information about the timeline view.