Timeline



Jan 8, 2016:

10:32 PM Changeset in webkit [194818] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Test Resources should not be included in Production builds unless FORCE_TOOL_INSTALL
https://bugs.webkit.org/show_bug.cgi?id=152941
<rdar://problem/24119013>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-08
Reviewed by Dan Bernstein.

  • Configurations/Base.xcconfig:

Combine inspector resources in production, but not test resources.

  • Configurations/DebugRelease.xcconfig:

Do not combine inspector resources in Release/Debug. Combine test resources.

  • Configurations/WebInspectorUIFramework.xcconfig:

Simplify by moving to other config files.

  • Scripts/copy-user-interface-resources.pl:

Have FORCE_TOOL_INSTALL combine test resources as well.

  • WebInspectorUI.vcxproj/build-webinspectorui.pl:

Only combine test resources in non-Production.

10:27 PM Changeset in webkit [194817] by Alan Bujtas
  • 11 edits
    2 adds in trunk

Absolute positioning -webkit-search-cancel-button crashes Safari.
https://bugs.webkit.org/show_bug.cgi?id=152847
<rdar://problem/24112087>

Reviewed by Simon Fraser.

Do not call offsetFromContainer while resolving the painting position for the search/cancel button renderer.
It skips the static positioned parent input renderer, when the search/cancel renderer is absolute positioned.
This patch also fixes a rendering glitch when the margin-right is > 0.

Source/WebCore:

Test: fast/forms/absolute-positioned-custom-search-cancel-crash.html

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintSearchFieldCancelButton):
(WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsButton):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::convertToPaintingPosition):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
(WebCore::RenderThemeMac::convertToPaintingRect): Deleted.

LayoutTests:

  • fast/forms/absolute-positioned-custom-search-cancel-crash-expected.txt: Added.
  • fast/forms/absolute-positioned-custom-search-cancel-crash.html: Added.
10:07 PM Changeset in webkit [194816] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Add display-list drawing hooks to platform-specific GraphicsContext files
https://bugs.webkit.org/show_bug.cgi?id=152940

Reviewed by Zalan Bujtas.

Call into the display list recorder for top-level entrypoints implemented in platform-specific
files.

The convention is that if a function begins with "platform", it's not a top-level
entry point, and should only be called when there's a platform context (i.e. not
recording, and not paintingDisabled).

A few instances are stubbed out until we have a more complete display list implementation.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawText):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::getCTM):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::clipConvexPolygon):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
(WebCore::GraphicsContext::isAcceleratedContext):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::clipConvexPolygon):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::getCTM):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext):
(WebCore::GraphicsContext::setPlatformTextDrawingMode):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts):
(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor):
(WebCore::GraphicsContext::platformFillEllipse):
(WebCore::GraphicsContext::platformStrokeEllipse):

5:57 PM Changeset in webkit [194815] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

Modern IDB: storage/indexeddb/setversion-blocked-by-versionchange-close.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152936

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/resources/setversion-blocked-by-versionchange-close.js:
  • storage/indexeddb/setversion-blocked-by-versionchange-close-expected.txt:
5:41 PM Changeset in webkit [194814] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Add DisplayList hooks into GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=152932

Reviewed by Zalan Bujtas.

Add the hooks into GraphicsContext that call into the DisplayListRecorder if there
is one.

Rename size() to something less ambiguous.

Out-of-line some DisplayList functions so that the header doesn't need to see
DisplayListItems.h.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::setLegacyShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::setShouldSmoothFonts):
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContext::setImageInterpolationQuality):
(WebCore::GraphicsContext::setAntialiasedFontDilationEnabled):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::drawGlyphs):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::setTextDrawingMode):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::setDrawLuminanceMask):
(WebCore::GraphicsContext::applyDeviceScaleFactor):
(WebCore::GraphicsContext::applyState):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::setDisplayListRecorder):
(WebCore::GraphicsContext::isRecording):
(WebCore::GraphicsContext::setFillRule): Deleted.
(WebCore::GraphicsContext::setShadowsIgnoreTransforms): Deleted.
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts): Deleted.
(WebCore::GraphicsContext::setDrawLuminanceMask): Deleted.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::clear):
(WebCore::DisplayList::DisplayList::removeItemsFromIndex):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::itemCount):
(WebCore::DisplayList::DisplayList::clear): Deleted.
(WebCore::DisplayList::DisplayList::size): Deleted.
(WebCore::DisplayList::DisplayList::removeItemsFromIndex): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::save):
(WebCore::DisplayList::Recorder::restore):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::itemCount):
(WebCore::DisplayList::Recorder::size): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

5:36 PM Changeset in webkit [194813] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.15.0.1

Merged r194809. rdar://problem/24116804

5:35 PM Changeset in webkit [194812] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.15.0.1/Source

Versioning.

5:33 PM Changeset in webkit [194811] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.15.0.1

New tag.

5:21 PM Changeset in webkit [194810] by achristensen@apple.com
  • 14 edits
    2 adds in trunk/Source/WebKit2

Implement download authentication with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152878

Reviewed by Brady Eidson.

  • DerivedSources.make:
  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/PendingDownload.cpp: Added.

(WebKit::PendingDownload::PendingDownload):
(WebKit::PendingDownload::willSendRedirectedRequest):
(WebKit::PendingDownload::continueWillSendRequest):
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::PendingDownload::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::PendingDownload::didConvertToDownload):
(WebKit::PendingDownload::messageSenderConnection):
(WebKit::PendingDownload::messageSenderDestinationID):

  • NetworkProcess/Downloads/PendingDownload.h:

(WebKit::PendingDownload::PendingDownload): Deleted.

  • NetworkProcess/Downloads/PendingDownload.messages.in: Added.
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueWillSendRequest):
The completion handler should always be called. If m_currentRequest is null, then the request will not proceed, which is the same as canceling it.
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::setPendingDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
If this load is going to become a download, then call the PendingDownload version of didReceiveAuthenticationChallenge to communicate with the
UI process directly because there wasn't necessarily a web process associated with this request that will become a download.

  • NetworkProcess/NetworkLoad.h:

(WebKit::NetworkLoad::pendingDownloadID):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkDataTask::client):
(WebKit::NetworkDataTask::pendingDownloadID):
(WebKit::NetworkDataTask::pendingDownload):
(WebKit::NetworkDataTask::setPendingDownloadID):
(WebKit::NetworkDataTask::setPendingDownload):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:
  • PlatformMac.cmake:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace):
Removed unnecessary protection and move null check to before using the pointer it checks.

4:59 PM Changeset in webkit [194809] by achristensen@apple.com
  • 2 edits in trunk

Fix internal Windows build
https://bugs.webkit.org/show_bug.cgi?id=152937

Reviewed by Brent Fulgham.

  • Source/cmake/WebKitCommon.cmake:

Try looking in the default cygwin installation directory for executables like bison, flex, gperf, and ruby.
This is needed on Windows builds that are not driven by cygwin, but need to use the cygwin installations of these tools.
This is the effective equivalent of this line in WebKitLibraries/win/tools/vsprops/common.props in the old build system:
set PATH=%SystemDrive%\cygwin\bin;%PATH%

4:50 PM Changeset in webkit [194808] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:42 PM Changeset in webkit [194807] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/scrolling/scroll-position-on-reload-rtl.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152935

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:41 PM Changeset in webkit [194806] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping two unsupported mouse event tests on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:37 PM Changeset in webkit [194805] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 should do varargs tail calls and stack overflows
https://bugs.webkit.org/show_bug.cgi?id=152934

Reviewed by Saam Barati.

I was trying to get tail-call-varargs-no-stack-overflow.js.ftl-no-cjit-validate to work and
at first I hit the stack overflow issue and then I hit the varargs tail call issue. That's
why I have two fixes in one change. Now the test passes.

This reduces the number of failures from 13 to 0.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower): Implement stack overflow handling.
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs): Varargs tail calls need to
append an Oops (i.e. "unreachable").

4:36 PM Changeset in webkit [194804] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:24 PM Changeset in webkit [194803] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:01 PM Changeset in webkit [194802] by fpizlo@apple.com
  • 12 edits
    1 add in trunk/Source/JavaScriptCore

B3 needs Neg()
https://bugs.webkit.org/show_bug.cgi?id=152925

Reviewed by Mark Lam.

Previously we said that negation should be represented as Sub(0, x). That's wrong, since
for floats, Sub(0, 0) == 0 while Neg(0) == -0.

One way to solve this would be to say that anyone trying to say Neg(x) where x is a float
should instead say BitXor(x, -0). That's actually correct, but I think that it would be odd
to use bitops to represent floating point operations. Whatever cuteness this would have
bought us would be outweighed by the annoyance of having to write code that matches
Sub(0, x) for integer negation and BitXor(x, -0) for double negation. For example, this
would mean strictly more code for anyone implementing a Neg(Neg(x))=>x strength reduction.
Also, I suspect that the omission of Neg would cause others to make the mistake of using
Sub to represent floating point negation.

So, this introduces a proper Neg() opcode to B3. It's now the canonical way of saying
negation for both ints and floats. For ints, we canonicalize Sub(0, x) to Neg(x). For
floats, we lower it to BitXor(x, -0) on x86.

This reduces the number of failures from 13 to 12.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::andFloat):
(JSC::MacroAssemblerX86Common::xorDouble):
(JSC::MacroAssemblerX86Common::xorFloat):
(JSC::MacroAssemblerX86Common::convertInt32ToDouble):

  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

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

(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

  • b3/air/AirOpcode.opcodes:
  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::lockedStackSlot):
(JSC::FTL::Output::neg):
(JSC::FTL::Output::bitNot):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::chillDiv):
(JSC::FTL::Output::mod):
(JSC::FTL::Output::chillMod):
(JSC::FTL::Output::doubleAdd):
(JSC::FTL::Output::doubleSub):
(JSC::FTL::Output::doubleMul):
(JSC::FTL::Output::doubleDiv):
(JSC::FTL::Output::doubleMod):
(JSC::FTL::Output::doubleNeg):
(JSC::FTL::Output::bitAnd):
(JSC::FTL::Output::bitOr):
(JSC::FTL::Output::neg): Deleted.

  • tests/stress/ftl-negate-zero.js: Added. This was already covered by op_negate but since

it's such a glaring bug, I thought having a test for it specifically would be good.

3:50 PM Changeset in webkit [194801] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking js/intl-collator.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152448

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:41 PM Changeset in webkit [194800] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: imported/w3c/indexeddb/keyorder.htm times out.
https://bugs.webkit.org/show_bug.cgi?id=152929

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Existing test now runs in the test harness).

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::setGetResult):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:36 PM Changeset in webkit [194799] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two css3/filters/composited-during-* tests as failing on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152282

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:26 PM Changeset in webkit [194798] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Consider painting to be disabled on a GraphicsContext with no platform data, and make updatingControlTints() immutable state
https://bugs.webkit.org/show_bug.cgi?id=152927

Reviewed by Tim Horton.

GraphicsContext had setters for paintingDisabled and updatingControlTints, but neither
were changed dynamically.

We can eliminate paintingDisabled by simply considering a GraphicsContext that was
created with no platform context to be paint-disabled.

We make updatingControlTints immutable state by providing a constructor that takes
a "NonPaintingReasons" enum, and doesn't create platform data.

More functions in platform code were protected by if (paintingDisabled())...

  • page/FrameView.cpp:

(WebCore::FrameView::paintControlTints):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::setUpdatingControlTints): Deleted.
(WebCore::GraphicsContext::clip): Deleted.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::updatingControlTints):
(WebCore::GraphicsContextState::GraphicsContextState): Deleted.
(WebCore::GraphicsContext::setPaintingDisabled): Deleted.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipBounds):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality):
(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext):
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::GraphicsContext): Deleted.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::GraphicsContext): Deleted.

3:25 PM Changeset in webkit [194797] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark compositing/overflow/dynamic-composited-scrolling-status.html as failing on ios-simulator, remove duplicate
expectation added by previous commit.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:19 PM Changeset in webkit [194796] by andersca@apple.com
  • 8 edits in trunk/Source/WebCore

InputType::findClosestTickMarkValue should return an Optional<Decimal>
https://bugs.webkit.org/show_bug.cgi?id=152931

Reviewed by Andreas Kling.

This will make it possible to get rid of the notion of infinity from Decimal, allowing for more code simplification.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::findClosestTickMarkValue):

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::findClosestTickMarkValue):

  • html/InputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::findClosestTickMarkValue):

  • html/RangeInputType.h:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::setPositionFromPoint):

3:19 PM Changeset in webkit [194795] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:18 PM Changeset in webkit [194794] by beidson@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Removing WK2 specific results for this test.

Legacy IDB passes just the same as Modern IDB.

  • platform/wk2/imported/w3c/indexeddb/keypath-expected.txt: Removed.
3:16 PM Changeset in webkit [194793] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two ios/scolling tests as failing on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152276

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:12 PM Changeset in webkit [194792] by Ryan Haddad
  • 2 edits
    1 add in trunk/LayoutTests

Rebaselining two compositing tests for ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152138

Unreviewed test gardening.

  • platform/ios-simulator-wk2/compositing/contents-opaque/body-background-painted-expected.txt:
  • platform/ios-simulator/compositing/contents-opaque/table-parts-expected.txt: Added.
2:51 PM Changeset in webkit [194791] by Ryan Haddad
  • 1 edit
    1717 deletes in trunk/LayoutTests

Removing ios-simulator-wk1/ and ios-simulator-wk2/ expected.* files that are identical to the ones in ios-simulator/
https://bugs.webkit.org/show_bug.cgi?id=152130

Unreviewed test gardening.

  • platform/ios-simulator-wk1/editing/deleting/delete-block-merge-contents-011-expected.txt: Removed.
  • platform/ios-simulator-wk1/editing/deleting/delete-first-list-item-expected.txt: Removed.
  • platform/ios-simulator-wk1/editing/deleting/merge-different-styles-expected.txt: Removed.
  • +1714 more
2:29 PM Changeset in webkit [194790] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing deleted test fast/mediastream/RTCPeerConnection-state.html from mac TestExpectations file

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:21 PM Changeset in webkit [194789] by beidson@apple.com
  • 9 edits in trunk

Modern IDB: IDBBindingUtilities chokes on unicode strings for get/set.
https://bugs.webkit.org/show_bug.cgi?id=152921

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • indexeddb/keypath-expected.txt:

Source/WebCore:

No new tests (Covered by existing tests).

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::get): Don't do a potentially lossy utf8() conversion on the string.
(WebCore::set): Ditto.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/objectstore-autoincrement-expected.txt:
  • storage/indexeddb/objectstore-autoincrement.html:
  • storage/indexeddb/resources/objectstore-autoincrement.js:
1:57 PM Changeset in webkit [194788] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

Make v3 UI analysis task page is hard to understand
https://bugs.webkit.org/show_bug.cgi?id=152917

Reviewed by Antti Koivisto.

Add a dark gray border around the selected block in the analysis results viewer instead of using darker
shades since that looks as if they were bigger regression/progression.

Explicitly show "Failed" as the label instead of omitting with "-" when all build requests in an A/B
testing group fails.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer.cssTemplate): Tweaked the style to underline text in the hovered blocks and the
selected blocks and show a dark gray border around the selected blocks.
(AnalysisResultsViewer.TestGroupStackingBlock):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.createStackingCell): Use this._title for title.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._valuesForRootSet): Deleted.

  • public/v3/components/results-table.js:

(ResultsTable.prototype.render):
(ResultsTable.prototype._createRevisionListCells): Extracted from ResultsTable.prototype.render.
(ResultsTable.cssTemplate): Tweaked the style.
(ResultsTableRow):
(ResultsTableRow.prototype.constructor): Added _labelForWholeRow to store the label for the entire row.
This is used to show the comparison result of two root sets (e.g. A vs B).
(ResultsTableRow.prototype.setLabelForWholeRow): Added.
(ResultsTableRow.prototype.labelForWholeRow): Added.
(ResultsTableRow.prototype.resultContent): Extracted from buildHeading. Creates a hyperlinked bar graph
used for each A/B testing result.
(ResultsTableRow.prototype.buildHeading): Deleted since we need to set colspan on the second table cell
when we're creating a row with _labelForWholeRow.

  • public/v3/components/test-group-results-table.js:

(TestGroupResultsTable.prototype.buildRowGroups): Added rows to show relative differences and statistical
significance between root sets (e.g. A vs B).

  • public/v3/models/build-request.js:

(BuildRequest.prototype.hasCompleted): Added.

  • public/v3/models/test-group.js:

(TestGroup.prototype.compareTestResults): Extracted from AnalysisResultsViewer.TestGroupStackingBlock's
_computeTestGroupStatus and generalized to be reused in TestGroupResultsTable.
(TestGroup.prototype._valuesForRootSet): Moved from AnalysisResultsViewer.TestGroupStackingBlock.

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

(AnalysisTaskPage.cssTemplate): Tweaked the style.

1:42 PM Changeset in webkit [194787] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Support more video formats.
https://bugs.webkit.org/show_bug.cgi?id=152890

Reviewed by Alex Christensen.

Use MediaFoundation api to detect all supported video/audio formats.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaFoundation::supportsType):

1:42 PM Changeset in webkit [194786] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

FTL B3 compile() doesn't clear exception handlers before we add FTL-specific ones
https://bugs.webkit.org/show_bug.cgi?id=152922

Reviewed by Saam Barati.

FTL B3 was generating a handler table that first contained the old baseline handlers keyed
by baseline's bytecode indices and then the FTL handlers keyed by FTL callsite index. That's
wrong, since the FTL code block should not contain any baseline handlers. The fix is to
clear the handlers before generation, sort of like FTL LLVM does.

Also added some stuff to make it easier to inspect the handler table.

This reduces the numbe rof failures from 25 to 13.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::dumpExceptionHandlers):
(JSC::CodeBlock::beginDumpProfiling):

  • bytecode/CodeBlock.h:
  • ftl/FTLB3Compile.cpp:

(JSC::FTL::compile):

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

Web Inspector: Initiated section of Resource Details Sidebar should not display as empty and should update as the list changes
https://bugs.webkit.org/show_bug.cgi?id=152907
<rdar://problem/24109927>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-08
Reviewed by Timothy Hatcher.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.addInitiatedResource):
Dispatch an event when the list of initiated resources changes.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
Add/remove event listeners for initiated resources changes to refresh
the related resources section.

(WebInspector.ResourceDetailsSidebarPanel.prototype.refresh):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
Show/hide the related resources section depending on if we have something or not.

1:32 PM Changeset in webkit [194784] by andersca@apple.com
  • 5 edits in trunk/Source/WTF

Nullopt and InPlace should be structs, not enum values
https://bugs.webkit.org/show_bug.cgi?id=152915

Reviewed by Andreas Kling.

Without this,

Optional<int> o = flag ? 1 : Nullopt;

would cause Nullopt to be treated as an integer, causing o to be initialized to 0,
instead of Nullopt. With this change, the above code now causes a compile error.

Also, get rid of the CONSTEXPR macro since all compilers support constexpr properly,
and add a WTF::makeOptional to match the current iteration of std::experimental::optional.

  • wtf/Compiler.h:
  • wtf/Forward.h:
  • wtf/Optional.h:

(WTF::NulloptTag::NulloptTag):
(WTF::makeOptional):

  • wtf/StdLibExtras.h:

(std::literals::chrono_literals::operator _s):
(std::literals::chrono_literals::operator _ms):
(std::move):

1:28 PM Changeset in webkit [194783] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

<rdar://problem/24094651> REGRESSION (193350): CrashTracer: [USER] com.apple.WebKit.WebContent at …: Inspector::CSSFrontendDispatcher::styleSheetRemoved + 768

Reviewed by Joseph Pecoraro.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setActiveStyleSheetsForDocument):
Add null check before using m_frontendDispatcher.

1:23 PM Changeset in webkit [194782] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

<rdar://problem/24094651> REGRESSION (193350): CrashTracer: [USER] com.apple.WebKit.WebContent at …: Inspector::CSSFrontendDispatcher::styleSheetRemoved + 768

Reviewed by Joseph Pecoraro.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::setActiveStyleSheetsForDocument):
Add null check before using m_frontendDispatcher.

1:12 PM Changeset in webkit [194781] by beidson@apple.com
  • 18 edits
    2 copies in trunk

Modern IDB: Blocked event can fire on a delete request even after the last open connection has closed.
https://bugs.webkit.org/show_bug.cgi?id=152896

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • indexeddb/idbfactory_open12-expected.txt:
  • indexeddb/idbversionchangeevent-expected.txt:
  • indexeddb/transaction-lifetime-expected.txt:

Source/WebCore:

No new tests (Progression in many tests).

  • Modules/indexeddb/client/IDBFactoryImpl.cpp:

(WebCore::IDBClient::IDBFactory::deleteDatabase):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation): Allow for handling 2+ delete operations in a row.
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore): Ditto.
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): Call "notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent"

after the connection is actually removed from the set of open connections.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/imported/w3c/indexeddb/idbfactory_open12-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_open12-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbversionchangeevent-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbversionchangeevent-expected.txt.
  • storage/indexeddb/database-wrapper-expected.txt:
  • storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt:
  • storage/indexeddb/deletedatabase-not-blocked-expected.txt:
  • storage/indexeddb/intversion-upgrades-expected.txt:
  • storage/indexeddb/resources/delete-in-upgradeneeded-close-in-versionchange.js:
  • storage/indexeddb/resources/deletedatabase-not-blocked.js:
  • storage/indexeddb/resources/setversion-not-blocked.js:
  • storage/indexeddb/setversion-not-blocked-expected.txt:
1:05 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
1:01 PM Changeset in webkit [194780] by Brent Fulgham
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Correct UNREACHABLE runtime assertion for void constructors
https://bugs.webkit.org/show_bug.cgi?id=152900
<rdar://problem/24107501>

Reviewed by Alex Christensen.

Tested by Khronos WebGL 1.0.4 suite.

Merge a small part of ANGLE upstream commit r284735:

commit 01971113492d9aca386f2bca021b1f4b134fc277
author Dmitry Skiba <dskiba@google.com> Fri Jul 10 18:54:00 2015
committer Jamie Madill <jmadill@chromium.org> Fri Jul 10 19:03:34 2015
tree 47e42eac00f7d64cddb14b3cc21a4e605c189d20

This issue was found by <https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/bugs/angle-constructor-invalid-parameters.html?webglVersion=1&quiet=0>

  • src/compiler/translator/Types.cpp:

(TType::buildMangledName): Don't assert with UNREACHABLE here.

1:01 PM Changeset in webkit [194779] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Several animation tests fail with accelerated compositing enabled

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:47 PM Changeset in webkit [194778] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] pageoverlay tests are failing

Unreviewed gardening.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2016-01-08

  • platform/gtk/TestExpectations:
12:14 PM Changeset in webkit [194777] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

B3 incorrectly turns NotEqual(bool, 1) into Equal(bool, 1) instead of Equal(bool, 0)
https://bugs.webkit.org/show_bug.cgi?id=152916

Reviewed by Mark Lam.

This was causing a failure in an ancient DFG layout test. Thanks, ftl-eager-no-cjit!

This reduces the number of failures from 27 to 25.

  • b3/B3ReduceStrength.cpp:
12:14 PM Changeset in webkit [194776] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception: TypeError: this._initiatorSourceCodeLocation.sourceCode.addInitiatedResource is not a function
https://bugs.webkit.org/show_bug.cgi?id=152905
<rdar://problem/24109809>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-08
Reviewed by Brian Burg.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource):
(WebInspector.Resource.prototype.addInitiatedResource):
Only Resource has addInitiatedResource, so only call it if the
SourceCode in the SourceCodeLocation is a Resource.

12:05 PM Changeset in webkit [194775] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Hovering link on http://help.apple.com/appletv/#/ does not show text underline.
https://bugs.webkit.org/show_bug.cgi?id=152906
<rdar://problem/23339617>

Reviewed by Simon Fraser.

GraphicsContext::computeLineBoundsAndAntialiasingModeForText() always integral ceils the origin y position to offset underline text.
This additional visual overflow offset is not taken into account by visualOverflowForDecorations().
Unfortunately we can't compute the exact same offset value while collecting repaint rects, because
computeLineBoundsAndAntialiasingModeForText() uses CTM scaling before adjusting the offset position.
Use 1px (css) bottom offset to cover this underling overflow.

Source/WebCore:

Test: fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText):

  • rendering/SimpleLineLayoutResolver.cpp: Add visual overflow to simple line layout.

(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):

  • rendering/SimpleLineLayoutResolver.h:
  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

LayoutTests:

  • fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position-expected.txt: Added.
  • fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html: Added.
11:37 AM Changeset in webkit [194774] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 allocateCell() should not crash
https://bugs.webkit.org/show_bug.cgi?id=152909

Reviewed by Mark Lam.

This code was crashing in some tests that forced GC slow paths because it was stubbed out
due to the use of undef. B3 doesn't have undef. In this case, there's no good reason to use
undef. We can just use zero. Since the path is dead anyway in that case, we weren't gaining
any LLVM optimizations by using undef.

This reduces the number of failures from 35 to 27.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):

11:02 AM Changeset in webkit [194773] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 fails to realize that binary snippets might choose to omit their fast path
https://bugs.webkit.org/show_bug.cgi?id=152901

Reviewed by Mark Lam.

This reduces the number of failures from 99 to 35.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::emitBinarySnippet):

10:49 AM Changeset in webkit [194772] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

restoreCalleeSavesFromVMCalleeSavesBuffer should use the scratch register
https://bugs.webkit.org/show_bug.cgi?id=152879

Reviewed by Filip Pizlo.

We were clobbering a register we needed when picking
a scratch register inside an FTL OSR Exit.

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMCalleeSavesBuffer):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMCalleeSavesBuffer): Deleted.

  • tests/stress/ftl-put-by-id-setter-exception-interesting-live-state.js:

(foo):

10:48 AM Changeset in webkit [194771] by beidson@apple.com
  • 7 edits
    2 copies in trunk

Modern IDB: imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order.htm fails.
https://bugs.webkit.org/show_bug.cgi?id=152891

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • indexeddb/idbobjectstore_createIndex6-event_order-expected.txt:
  • indexeddb/idbobjectstore_createIndex7-event_order-expected.txt:

Source/WebCore:

No new tests (At least two failing tests now pass).

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::dispatchEvent): Whenever we add the IDBTransaction as an event target,

also add the IDBDatabase.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-expected.txt.
10:44 AM Changeset in webkit [194770] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Rolling out: Rename StringFromCharCode to StringFromSingleCharCode.
https://bugs.webkit.org/show_bug.cgi?id=152897

Not reviewed.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileFromCharCode):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromSingleCharCode): Deleted.

  • runtime/StringConstructor.h:
10:20 AM Changeset in webkit [194769] by peavo@outlook.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use std::call_once instead of pthread_once when initializing LLVM.
https://bugs.webkit.org/show_bug.cgi?id=152893

Reviewed by Mark Lam.

Use std::call_once since pthreads is not present on all platforms.

  • llvm/InitializeLLVM.cpp:

(JSC::initializeLLVMImpl):
(JSC::initializeLLVM):

10:20 AM Changeset in webkit [194768] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

run-webkit-tests mis-counts totals when there are other crashes
https://bugs.webkit.org/show_bug.cgi?id=152894
<rdar://problem/24098697>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(TestRunResults.add): Do not update result counters for other crashes.

10:10 AM Changeset in webkit [194767] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Rename StringFromCharCode to StringFromSingleCharCode.
https://bugs.webkit.org/show_bug.cgi?id=152897

Reviewed by Daniel Bates.

StringFromSingleCharCode is a better name because the intrinsic it represents
only applies when we are converting from a single char code. This is purely
a refactoring patch. There is no semantic change.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileFromCharCode):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromSingleCharCode):

  • runtime/StringConstructor.h:
8:55 AM Changeset in webkit [194766] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Fixed unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=152885

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-08
Reviewed by Mark Lam.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

8:51 AM Changeset in webkit [194765] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB: storage/indexeddb/dont-wedge.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=152892

Unreviewed.

  • platform/mac-wk1/TestExpectations: Skip it for now.
8:37 AM Changeset in webkit [194764] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Max value of immediate arg of logical ops is 0xffff
https://bugs.webkit.org/show_bug.cgi?id=152884

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-08
Reviewed by Michael Saboff.

Replaced imm.m_value < 65535 checks with imm.m_value <= 65535

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::and32):
(JSC::MacroAssemblerMIPS::or32):

8:28 AM Changeset in webkit [194763] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Add new or32 implementation after r194613
https://bugs.webkit.org/show_bug.cgi?id=152865

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-08
Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or32):

4:17 AM WebKitGTK/Gardening/Howto edited by tpopela@redhat.com
(diff)
1:06 AM Changeset in webkit [194762] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Enable selector filtering for shadow trees
https://bugs.webkit.org/show_bug.cgi?id=152831

Reviewed by Simon Fraser.

Selector filtering doesn't currently work in shadow trees making style resolve for them slow.
This is because SelectorFilter is not in "consistent" state.

This patch moves SelectorFilter ownership from StyleResolver to TreeResolver and guarantees
it is always upadated consistently. It eliminates a bunch of now unnecessary consistency checks
and special cases.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ElementRuleCollector):

Assert for consistency instead of testing for it.

(WebCore::ElementRuleCollector::matchedResult):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):

Selector filter can now be used if it exists.

  • css/ElementRuleCollector.h:

(WebCore::ElementRuleCollector::ElementRuleCollector): Deleted.

  • css/RuleSet.cpp:

(WebCore::RuleSet::addRule):

Disable selector filtering for custom shadow pseudo rules. They are resolved by shadow DOM resolver
but may contain components matching the normal DOM.

  • css/RuleSet.h:

(WebCore::RuleData::descendantSelectorIdentifierHashes):
(WebCore::RuleData::disableSelectorFiltering):
(WebCore::RuleData::compilationStatus):
(WebCore::RuleData::compiledSelectorCodeRef):

  • css/SelectorFilter.cpp:

(WebCore::collectElementIdentifierHashes):
(WebCore::SelectorFilter::parentStackIsConsistent):

New consistency conditions. This is now used for asserts only.

(WebCore::SelectorFilter::pushParentStackFrame):
(WebCore::SelectorFilter::popParentStackFrame):

Selector filter only filters the current tree context, replace parentOrShadowHostElement with parentElement.

(WebCore::SelectorFilter::setupParentStack): Deleted.

No longer needed.

(WebCore::SelectorFilter::pushParent):

Remove consistency check. These cases no longer happen.

  • css/SelectorFilter.h:

(WebCore::SelectorFilter::popParent):
(WebCore::SelectorFilter::parentStackIsEmpty):
(WebCore::SelectorFilter::fastRejectSelector):
(WebCore::SelectorFilter::parentStackIsConsistent): Deleted.

  • css/StyleInvalidationAnalysis.cpp:

(WebCore::StyleInvalidationAnalysis::invalidateIfNeeded):
(WebCore::StyleInvalidationAnalysis::invalidateStyle):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::addKeyframeStyle):
(WebCore::StyleResolver::initElement):
(WebCore::StyleResolver::State::initForStyleResolve):

We no longer owner the selector filter. Move it to State.

(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::pushParentElement): Deleted.
(WebCore::StyleResolver::popParentElement): Deleted.

No need for this logic.

  • css/StyleResolver.h:

(WebCore::StyleResolver::ruleSets):
(WebCore::StyleResolver::mediaQueryEvaluator):
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::setAuthorRollback):
(WebCore::StyleResolver::State::setUserRollback):
(WebCore::StyleResolver::State::selectorFilter):
(WebCore::StyleResolver::state):
(WebCore::checkRegionSelector):
(WebCore::StyleResolver::selectorFilter): Deleted.
(WebCore::StyleResolverParentPusher::StyleResolverParentPusher): Deleted.
(WebCore::StyleResolverParentPusher::push): Deleted.
(WebCore::StyleResolverParentPusher::~StyleResolverParentPusher): Deleted.

  • style/StyleTreeResolver.cpp:

This now owns the selector filter for a tree context.

(WebCore::Style::SelectorFilterPusher::SelectorFilterPusher):
(WebCore::Style::SelectorFilterPusher::push):
(WebCore::Style::SelectorFilterPusher::~SelectorFilterPusher):
(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
(WebCore::Style::TreeResolver::createRenderTreeRecursively):
(WebCore::Style::TreeResolver::resolveChildren):
(WebCore::Style::TreeResolver::resolveRecursively):

Push the filter in a few more places to keep it consistent in shadow trees.

  • style/StyleTreeResolver.h:
12:36 AM Changeset in webkit [194761] by youenn.fablet@crf.canon.fr
  • 8 edits
    1 add in trunk/Tools

webkit-patch build-and-test should have an option to iterate over new tests
https://bugs.webkit.org/show_bug.cgi?id=143093

Reviewed by Michael Catanzaro.

This patch introduces the --iterate-on-new-tests option to webkit-patch build-and-test.
It allows running run-webkit-tests on modified or new paths in LayoutTests.
Computation of new or modified tests is done by LayoutTestFinder.find_touched_tests
It implements the translation of -expected.* paths to their related tests.
It also implements the removal of skipped tests.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder.find_touched_tests):

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py: Added.

(MockPort):
(MockPort.init):
(MockPort.tests):
(LayoutTestFinderTests):
(LayoutTestFinderTests.touched_files):
(LayoutTestFinderTests.test_touched_test):
(LayoutTestFinderTests.test_expected_touched_test):
(LayoutTestFinderTests.test_platform_expected_touched_test):
(LayoutTestFinderTests.test_platform_duplicate_touched_test):
(LayoutTestFinderTests.test_touched_but_skipped_test):

  • Scripts/webkitpy/port/base.py:

(Port.potential_test_names_from_expected_file):

  • Scripts/webkitpy/tool/commands/download_unittest.py:

(DownloadCommandsTest._default_options):

  • Scripts/webkitpy/tool/steps/options.py:

(Options):

  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.options):
(RunTests.run):
(RunTests):
(RunTests._new_or_modified_tests):
(RunTests._run_webkit_tests):

  • Scripts/webkitpy/tool/steps/runtests_unittest.py:

(RunTestsTest.test_webkit_run_unit_tests):

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest._step_options):

Jan 7, 2016:

10:17 PM Changeset in webkit [194760] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

10:17 PM Changeset in webkit [194759] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

9:33 PM Changeset in webkit [194758] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed IndexedDB test gardening.

  • platform/mac-wk1/TestExpectations:
8:56 PM Changeset in webkit [194757] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

Move computeLineBoundsForText from GraphicsContext* to GraphicsContext.
https://bugs.webkit.org/show_bug.cgi?id=152882

Reviewed by Simon Fraser.

There is nothing platform specific about it.

No change in functionality.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::computeUnderlineBoundsForText): Rename to reflect its usage.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::computeLineBoundsForText): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::computeLineBoundsForText): Deleted.

  • rendering/TextDecorationPainter.cpp:

(WebCore::drawSkipInkUnderline):

8:29 PM Changeset in webkit [194756] by jonlee@apple.com
  • 5 edits in trunk/PerformanceTests

Fix new test.

  • Animometer/resources/runner/tests.js: Wrong URL from an

old patch.

  • Animometer/tests/master/particles.html:
  • Animometer/tests/master/resources/dom-particles.js:

(Particle.call.reset): Figured out a simpler way to set up
the particles.
(this.move.reset): Deleted.
(this.move._applyAttributes): Deleted.

  • Animometer/tests/master/resources/particles.js:

(Particle): Call move() after reset().

8:28 PM Changeset in webkit [194755] by jonlee@apple.com
  • 3 edits
    4 adds in trunk/PerformanceTests

Update benchmark test suite
https://bugs.webkit.org/show_bug.cgi?id=152679

Reviewed by Simon Fraser.

Add a new test. The test has a rotating background
gradient, and does a better job physically simulating
particles.

  • Animometer/resources/extensions.js: Teach Point to take constants as well as other Points.

(Point.prototype.length): Added.
(Point.prototype.normalize): Added.

  • Animometer/resources/runner/tests.js: Add the test to the master suite.
  • Animometer/tests/master/particles.html: Added.
  • Animometer/tests/master/resources/particles.js: Added. Parent class for different kinds of particles.

(Particle):
(Particle.prototype.reset): If the particle starts slowing down in terms of its animation,
reset it.
(Particle.prototype.animate): Bounce off the walls elastically, and include gravity.
(Particle.prototype.move): Subclasses should override.
(ParticlesStage): Stage includes a rotating gradient background.

  • Animometer/tests/master/resources/dom-particles.js: Added. Creates a <div> and adds it to

the stage.

  • Animometer/tests/resources/star.svg: Added.
8:08 PM Changeset in webkit [194754] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: Success-after-open event should only have the IDBOpenDBRequest as its target.
https://bugs.webkit.org/show_bug.cgi?id=152875

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least 2 failing tests now pass).

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::dispatchEvent): Only add the transaction and database as potential

targets for this event if it is *not* the success-after-open event.

  • Modules/indexeddb/client/IDBRequestImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
7:58 PM Changeset in webkit [194753] by jonlee@apple.com
  • 20 edits
    3 moves in trunk/PerformanceTests

Update benchmark test suite
https://bugs.webkit.org/show_bug.cgi?id=152679

Reviewed by Simon Fraser.

Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.

Needed by both harnesses.

  • Animometer/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/benchmark-runner.js.
  • Animometer/developer.html:
  • Animometer/index.html:

Needed only by the tests. Move to tests/. Statistics, in sampler.js, is used by ResultsDashboard, so move that
into extensions.js.

  • Animometer/resources/extensions.js:
  • Animometer/tests/resources/algorithm.js: Renamed from PerformanceTests/Animometer/resources/algorithm.js.
  • Animometer/tests/resources/sampler.js: Renamed from PerformanceTests/Animometer/resources/sampler.js.
  • Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
  • Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
  • Animometer/tests/bouncing-particles/bouncing-css-images.html:
  • Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
  • Animometer/tests/bouncing-particles/bouncing-svg-images.html:
  • Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
  • Animometer/tests/master/canvas-stage.html:
  • Animometer/tests/misc/canvas-electrons.html:
  • Animometer/tests/misc/canvas-stars.html:
  • Animometer/tests/misc/compositing-transforms.html:
  • Animometer/tests/simple/simple-canvas-paths.html:
  • Animometer/tests/template/template-canvas.html:
  • Animometer/tests/template/template-css.html:
  • Animometer/tests/template/template-svg.html:
  • Animometer/tests/text/layering-text.html:
  • Animometer/tests/text/text-boxes.html:
7:54 PM Changeset in webkit [194752] by jonlee@apple.com
  • 3 edits in trunk/PerformanceTests

Update benchmark test suite
https://bugs.webkit.org/show_bug.cgi?id=152679

Reviewed by Simon Fraser.

Fix tests for other browsers.

  • Animometer/resources/extensions.js:

(Point.elementClientSize): Some browsers return 0 for SVG clientWidth and clientHeight.
Use getBoundingClientRect() instead.

  • Animometer/tests/misc/resources/canvas-electrons.js:

(CanvasElectron.prototype._draw): Some browsers don't support ellipse.

6:51 PM Changeset in webkit [194751] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Correct missing EXT_sRGB Format Handling
https://bugs.webkit.org/show_bug.cgi?id=152876
<rdar://problem/23284389>

Reviewed by Alex Christensen.

Tested by WebGL 1.0.4 suite.

  • platform/graphics/GraphicsContext3D.cpp:

(getDataFormat): Handle missing SRGB and SRGB_ALPHA cases.

  • platform/graphics/GraphicsContext3D.h: Add missing SRGB_ALPHA value from the Khronos standard.
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::texImage2D): Add an assertion that we are not being handed
an internal format to a method that works with normal formats.

6:33 PM Changeset in webkit [194750] by Simon Fraser
  • 5 edits in trunk/Source

Use an appropriate buffer format for swipe snapshots
https://bugs.webkit.org/show_bug.cgi?id=152880
rdar://problem/23728299

Reviewed by Tim Horton.
Source/WebCore:

Choose an appropriate buffer format for swipe snapshots, and avoid converting
them to YUV422.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::allowConversionFromFormatToFormat):

Source/WebKit2:

Choose an appropriate buffer format for swipe snapshots, and avoid converting
them to YUV422.

  • UIProcess/API/Cocoa/WKWebView.mm:

(WebKit::bufferFormat):
(-[WKWebView _takeViewSnapshot]):

6:18 PM Changeset in webkit [194749] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

prepare-ChangeLog should include radar number
https://bugs.webkit.org/show_bug.cgi?id=152839
<rdar://problem/24093563>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-07
Reviewed by Daniel Bates.

When running prepare-ChangeLog -b ###, check for a bugzilla comment that
starts with a "<rdar://problem/####>" URL. If found, include that radar URL
in the ChangeLog description after the bug URL.

  • Scripts/prepare-ChangeLog:

(main): Update signatures.
(fetchBugXMLData): XML Data is now used for multiple reasons. Extract this to just get the data.
(fetchBugDescriptionFromBugXMLData): Search data for <short_desc>.
(fetchRadarURLFromBugXMLData): Search comment text for radar URL.
(generateNewChangeLogs): Include radar URL if we found one.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/fetchRadarURLFromBugXMLData.pl: Added.

Tests for the radar URL extraction.

5:52 PM Changeset in webkit [194748] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

FTL B3 lazy slow paths should do exceptions
https://bugs.webkit.org/show_bug.cgi?id=152853

Reviewed by Saam Barati.

This reduces the number of JSC test failures to 97.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):

  • tests/stress/ftl-new-negative-array-size.js: Added.

(foo):

5:38 PM Changeset in webkit [194747] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, skip more tests that fail.

  • tests/stress/ftl-shr-exception.js:

(foo):

  • tests/stress/ftl-xor-exception.js:

(foo):

5:10 PM Changeset in webkit [194746] by fpizlo@apple.com
  • 2 edits
    3 adds in trunk/Source/JavaScriptCore

FTL B3 binary snippets should do exceptions
https://bugs.webkit.org/show_bug.cgi?id=152852

Reviewed by Saam Barati.

This reduces the number of JSC test failures to 110.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitRightShiftSnippet):

  • tests/stress/ftl-shr-exception.js: Added.

(foo):
(result.foo.valueOf):

  • tests/stress/ftl-sub-exception.js: Added.

(foo):
(result.foo.valueOf):

  • tests/stress/ftl-xor-exception.js: Added.

(foo):
(result.foo.valueOf):

5:05 PM Changeset in webkit [194745] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[EME] Secure stop information not written to disk
https://bugs.webkit.org/show_bug.cgi?id=152855

Reviewed by Eric Carlson.

Two separate bugs for the two APIs provided by AVFoundation. For the AVStreamSession path,
we were not calling the lazy-creation function which creates the AVStreamSession, and were
rather accessing the ivar directly. For the AVContentKeySession, we were not creating the
intermediate paths containing the secure stop database.

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

(WebCore::CDMSessionAVContentKeySession::contentKeySession):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):

4:34 PM Changeset in webkit [194744] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, skipping this test. Looks like LLVM can't handle this one, either.

  • tests/stress/ftl-call-varargs-bad-args-exception-interesting-live-state.js:

(foo):

4:10 PM Changeset in webkit [194743] by jonlee@apple.com
  • 4 edits in trunk/PerformanceTests

Add a waitUntilReady() step
https://bugs.webkit.org/show_bug.cgi?id=152862

Reviewed by Simon Fraser.

Add a waitUntilReady() callback that lets the benchmark complete
its setup before running the benchmark.

  • Animometer/tests/resources/main.js:

(Benchmark.prototype.run): First call waitUntilReady, which returns
a promise. When the promise resolves, run everything that was in this
function.
(Benchmark.prototype.waitUntilReady): Default implementation returns
a resolved promise.
(Benchmark.prototype.resolveWhenFinished): Deleted.

  • Animometer/tests/template/resources/template-canvas.js:

(new.TemplateCanvasStage.waitUntilReady): Example on how to override.

4:08 PM Changeset in webkit [194742] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.91

New Tag.

4:07 PM Changeset in webkit [194741] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.5.9

New Tag.

4:00 PM Changeset in webkit [194740] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, skipping this test. Looks like LLVM can't handle it.

  • tests/stress/ftl-put-by-id-setter-exception-interesting-live-state.js:

(foo):

3:47 PM Changeset in webkit [194739] by fpizlo@apple.com
  • 3 edits
    9 adds in trunk/Source/JavaScriptCore

FTL B3 JS calls should do exceptions
https://bugs.webkit.org/show_bug.cgi?id=152851

Reviewed by Geoffrey Garen.

This reduces the number of JSC test failures with FTL B3 to 111.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):

  • tests/stress/ftl-call-bad-args-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-call-bad-callee-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-call-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-call-exception-no-catch.js: Added.
  • tests/stress/ftl-call-exception.js: Added.
  • tests/stress/ftl-call-varargs-bad-callee-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-call-varargs-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-call-varargs-exception-no-catch.js: Added.
  • tests/stress/ftl-call-varargs-exception.js: Added.
3:47 PM Changeset in webkit [194738] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Perf dashboard should automatically add aggregators
https://bugs.webkit.org/show_bug.cgi?id=152818

Reviewed by Chris Dumez.

When an aggregator entry is missing in aggregators table, automatically insert it in /api/report.

In a very early version of the perf dashboard, we had the ability to define a custom aggregator
in an admin page. In practice, nobody used or needed this feature so we got rid of it even before
the dashboard was landed into WebKit repository. This patch cleans up that mess.

  • run-tests.js:

(main): Added the filtering capability.
(TestEnvironment): Expose the config JSON in the test environment.

  • public/include/report-processor.php:

(ReportProcessor): Renamed name_to_aggregator now that it only contains ID.
(ReportProcessor::construct): No longer fetches the aggregator table. An equivalent work is done
in newly added ensure_aggregators.
(ReportProcessor::process): Calls ensure_aggregators which populates name_to_aggregator_id.
(ReportProcessor::ensure_aggregators): Added. Add the builtin aggregators: Arithmetic, Geometric,
Harmonic, and Total.
(TestRunsGenerator): Renamed name_to_aggregator now that it only contains ID.
(TestRunsGenerator::
construct):
(TestRunsGenerator::add_aggregated_metric): Don't include aggregator_definition here since it's
never used now that all the aggregations are done natively in PHP.
(TestRunsGenerator::$aggregators): Added. We don't include SquareSum since it's only used for
computing run_square_sum_cache in test_runs table and it's useless elsewhere.
(TestRunsGenerator::aggregate_values): Add a comment about that.

  • tests/api-report.js: Updated a test case to reflect the change.
3:44 PM Changeset in webkit [194737] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Add warnings to section that require specific values of other properties
https://bugs.webkit.org/show_bug.cgi?id=148254

Patch by Devin Rousso <Devin Rousso> on 2016-01-07
Reviewed by Timothy Hatcher.

Added a function to VisualStylePropertyEditor to allow dependencies to be set which,
whenever the editor is updated or changed, will be checked against the computed styles
of the element to see if all the necessary property values are set.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype.refresh):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
Added dependencies to relevant property editors.

(WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange): Deleted.
No longer needed as the sidebar panel will refresh whenever triggered.

  • UserInterface/Views/VisualStylePropertyEditor.css:

(.visual-style-property-container.layout-reversed > .visual-style-property-title):
(.visual-style-property-container > .visual-style-property-title > .property-reference-info):
(.visual-style-property-container > .visual-style-property-editor-warning):
(.visual-style-property-container.layout-reversed > .visual-style-property-editor-warning):
(.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency):
(.visual-style-property-container > .visual-style-property-value-container):
(.visual-style-property-container.layout-reversed > .visual-style-property-value-container):

  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype.addDependency):
(WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
(WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
Looks at the computed style for the node to see if any dependent properties do not
have one of the required values.

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype._styleTextReset): Deleted.

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):

3:33 PM Changeset in webkit [194736] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Use wavy offset for decoration painting when line style is TextDecorationStyleWavy.
https://bugs.webkit.org/show_bug.cgi?id=152856

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

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

Web Inspector: Allow error items on Exception page to be selected
https://bugs.webkit.org/show_bug.cgi?id=152861

Patch by Devin Rousso <Devin Rousso> on 2016-01-07
Reviewed by Brian Burg.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.uncaught-exception-sheet li):
Allowed user-select on text.

3:32 PM Changeset in webkit [194734] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Better test gardening. Only skip those tests that use touch events, not the whole
directory.

  • platform/ios-simulator-wk2/TestExpectations:
3:30 PM Changeset in webkit [194733] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Various imported/w3c/indexeddb tests fail due to expecting the wrong exception.
https://bugs.webkit.org/show_bug.cgi?id=152866

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (5 skipped tests now pass).

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putOrAdd): Reorder the exceptions, violating the spec but matching

a vast majority of browsers.

(WebCore::IDBClient::IDBObjectStore::deleteFunction): Ditto.
(WebCore::IDBClient::IDBObjectStore::clear): Ditto.
(WebCore::IDBClient::IDBObjectStore::doCount): Ditto.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:26 PM Changeset in webkit [194732] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:15 PM Changeset in webkit [194731] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Remove unused shouldAntialias parameter from GraphicsContext::computeLineBoundsAndAntialiasingModeForText()
https://bugs.webkit.org/show_bug.cgi?id=152859

Reviewed by Simon Fraser.

No change in functionality.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::computeLineBoundsForText):
(WebCore::GraphicsContext::drawLinesForText):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::computeLineBoundsForText):
(WebCore::GraphicsContext::drawLinesForText):

2:59 PM Changeset in webkit [194730] by fpizlo@apple.com
  • 2 edits
    6 adds in trunk/Source/JavaScriptCore

FTL B3 PutById should do exceptions
https://bugs.webkit.org/show_bug.cgi?id=152850

Reviewed by Saam Barati.

Implemented PutById exception handling by following the idiom used in GetById. Reduces the
number of JSC test failures to 128.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):

  • tests/stress/ftl-put-by-id-setter-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-put-by-id-setter-exception-no-catch.js: Added.
  • tests/stress/ftl-put-by-id-setter-exception.js: Added.
  • tests/stress/ftl-put-by-id-slow-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-put-by-id-slow-exception-no-catch.js: Added.
  • tests/stress/ftl-put-by-id-slow-exception.js: Added.
2:42 PM Changeset in webkit [194729] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

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

it broke many JSC tests when FTL B3 is enabled (Requested by
pizlo on #webkit).

Reverted changeset:

"[JSC] When resolving Stack arguments, use addressing from SP
when addressing from FP is invalid"
https://bugs.webkit.org/show_bug.cgi?id=152840
http://trac.webkit.org/changeset/194714

2:36 PM Changeset in webkit [194728] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Add border-image properties to Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=152755

Patch by Devin Rousso <Devin Rousso> on 2016-01-07
Reviewed by Timothy Hatcher.

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

Switched the order of VisualStyleURLInput and VisualStyleUnitSlider
to be ordered alphabetically.

  • UserInterface/Views/VisualStyleBackgroundPicker.js:

(WebInspector.VisualStyleBackgroundPicker.prototype._keywordSelectMouseDown):

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content > .group + .group > .row:first-child):
(.sidebar > .panel.details.css-style .visual > .details-section.background .details-section.border .visual-style-property-container.keyword-checkbox.border-image-slice):
Since the checkbox is so small, give it less room.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection.generateBorderImagePropertyEditors):
The three properties "border-image-width", "border-image-outset", and
"border-image-slice" all have the same syntax, so one function to generate
the layout for all three is much simpler.

(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
Added the border image properties to a seperate group under Background > Border.

  • UserInterface/Views/VisualStyleKeywordPicker.js:

(WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
Reordered logic to allow a value of ""/null to set the units to the "Number"
value if it is allowed for that editor.

(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
Instead of relying upon whether the editor has any units, just check to see if
the selected units are "Number" and, if not, add them to the value.

(WebInspector.VisualStyleNumberInputBox.prototype._unitsElementTextContent):

  • UserInterface/Views/VisualStylePropertyCombiner.js:

(WebInspector.VisualStylePropertyCombiner):
Now has another argument that, when true, assumes the combiner has at least 4
numerical values and is of the form (can have units):

property-name: value1 [value2 [value3 [value4 [...]]]];

(WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateEditor):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
If the new argument is true, assigns the existing values in the following way:

  • If there is 1 value, assign it to all of the editors.
  • If there are 2 values, assign the 1st one to editors 1 and 3 and the 2nd one

to editors 2 and 4.

  • If there are 3 values, assign the 1st one to editor 1, the 2nd one to editors

2 and 4, and the 3rd one to editor 3.

  • If there are 4 or more values, assign them normally.
  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
Removed call to this.value to prevent recursion from VisualStyleNumberInputBox.

(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
Removed call to this.units to prevent recursion from VisualStyleNumberInputBox.

2:31 PM Changeset in webkit [194727] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Can't play inline video in a stock WK1 WebView on Mac
https://bugs.webkit.org/show_bug.cgi?id=152860

Rubber-stamped by Jer Noble.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
The default for this preference is supposed to be NO on Mac. It is in
Settings.in, and in WebKit2, but this one place got it wrong.

2:17 PM Changeset in webkit [194726] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: imported/w3c/indexeddb/idbcursor-continue.htm fails.
https://bugs.webkit.org/show_bug.cgi?id=152849

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::iterate): Don't allow returning an iterator outside of

the cursor's assigned range.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:13 PM Changeset in webkit [194725] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Lower immediates of logical operations.
https://bugs.webkit.org/show_bug.cgi?id=152693

On MIPS immediate operands of andi, ori, and xori are required to be 16-bit
non-negative numbers.

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Michael Saboff.

  • offlineasm/mips.rb:
2:13 PM Changeset in webkit [194724] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.15

New tag.

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

Web Inspector: Add indicator that element has pseudo-class in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=152680

Patch by Devin Rousso <Devin Rousso> on 2016-01-07
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
Added an event listener to the node for when pseudo-classes change.

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline li.pseudo-class-enabled > .selection::before):
(.dom-tree-outline:focus li.selected.pseudo-class-enabled > .selection::before):
Used the hover/selected background style element to ensure that the indicator
is always positioned evenly with the first line of the opening tag.

(.dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li .selection):
(.dom-tree-outline li.selected .selection):
(.dom-tree-outline li.elements-drag-over .selection):
Removed "display: none;" (as well as the "block" declarations) to allow
the ::before pseudo-element to display.

2:10 PM Changeset in webkit [194722] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

2:09 PM Changeset in webkit [194721] by ap@apple.com
  • 11 edits in trunk

testRunner.runUIScript crashes while running multiple tests in a row that invokes the same UIScript
https://bugs.webkit.org/show_bug.cgi?id=152390
<rdar://problem/23948321>

Reviewed by Simon Fraser.

Tools:

Fix two use-after-frees.

  1. WKPageCallAfterNextPresentationUpdate's callback has a pointer to TestInvocation,

but we may have already progressed to another test by the time the callback fires,
having destroyed the TestInvocation.

  1. UIScriptController is a RefCounted object, but it has a raw pointer to

UIScriptContext which has the same lifetime as a TestInvocation.
As a result, completion blocks of UIScriptController actions would use a destroyed
TestInvocation.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::~TestInvocation):
(WTR::TestInvocation::url):
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::runUISideScriptAfterUpdateCallback):
(WTR::TestInvocation::runUISideScript):

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/UIScriptContext/UIScriptContext.cpp:

(UIScriptContext::UIScriptContext):
(UIScriptContext::~UIScriptContext):
(UIScriptContext::runUIScript):

  • WebKitTestRunner/UIScriptContext/UIScriptContext.h:
  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::UIScriptController):
(WTR::UIScriptController::contextDestroyed):
(WTR::UIScriptController::makeWindowObject):
(WTR::UIScriptController::setWillBeginZoomingCallback):
(WTR::UIScriptController::willBeginZoomingCallback):
(WTR::UIScriptController::setDidEndZoomingCallback):
(WTR::UIScriptController::didEndZoomingCallback):
(WTR::UIScriptController::setDidEndScrollingCallback):
(WTR::UIScriptController::didEndScrollingCallback):
(WTR::UIScriptController::setDidShowKeyboardCallback):
(WTR::UIScriptController::didShowKeyboardCallback):
(WTR::UIScriptController::setDidHideKeyboardCallback):
(WTR::UIScriptController::didHideKeyboardCallback):
(WTR::UIScriptController::uiScriptComplete):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::create):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::doAsyncTask):
(WTR::UIScriptController::zoomToScale):
(WTR::UIScriptController::singleTapAtPoint):
(WTR::UIScriptController::doubleTapAtPoint):
(WTR::UIScriptController::typeCharacterUsingHardwareKeyboard):
(WTR::UIScriptController::contentVisibleRect):
(WTR::UIScriptController::platformSetWillBeginZoomingCallback):
(WTR::UIScriptController::platformSetDidEndZoomingCallback):
(WTR::UIScriptController::platformSetDidShowKeyboardCallback):
(WTR::UIScriptController::platformSetDidHideKeyboardCallback):
(WTR::UIScriptController::platformSetDidEndScrollingCallback):

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::doAsyncTask):

LayoutTests:

  • platform/ios-simulator/TestExpectations: Unskipped tests that used to be affected.
2:02 PM Changeset in webkit [194720] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Update testCheckSubBadImm() for ARM64
https://bugs.webkit.org/show_bug.cgi?id=152846

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-07
Reviewed by Mark Lam.

  • b3/testb3.cpp:

(JSC::B3::testCheckSubBadImm):
The test was assuming the constant can always be used
as immediate. That's obviously not the case on ARM64.

1:56 PM Changeset in webkit [194719] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebCore

Fix the Mavericks build after r194287. rdar://problem/23769758

1:28 PM Changeset in webkit [194718] by achristensen@apple.com
  • 10 edits
    1 add in trunk/Source/WebKit2

Progress towards implementing downloads with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152760

Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
There's no need to store the unused NetworkSession&.
(WebKit::Download::didStart):
(WebKit::Download::didReceiveAuthenticationChallenge):
Downloads with NetworkSession are NetworkLoads until the response is received, which is after authentication
challenges are handled by NetworkLoad's code.
(WebKit::Download::didReceiveResponse):

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):
Create a PendingDownload, which is basically a NetworkLoad that knows that it will become a Download
when the response is received, regardless of whether or not there is a Content-Disposition header.
(WebKit::DownloadManager::dataTaskBecameDownloadTask):

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/Downloads/PendingDownload.h: Added.

(WebKit::PendingDownload::PendingDownload):
Added a new NetworkLoadClient for requests that will become downloads.
A PendingDownload contains a NetworkLoad so we can always keep them together
and so it can handle setting its pending download id.

  • WebKit2.xcodeproj/project.pbxproj:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
Avoid dereferencing a pointer if the NetworkSession hadn't been created when a NetworkLoad starts.
This shouldn't be possible, but it's good to not assume that all pointers are non-null.
(WebKit::NetworkLoad::cancel):
Add a null check in case the constructor doesn't make m_task.
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
Added for downloads that start with startDownload. The pending DownloadID is used to indicate that
this request should always become a download, regardless of whether or not the response has a
Content-Disposition header.
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveResponse):

  • NetworkProcess/NetworkLoad.h:

There's no need to store a DownloadID here. It's stored in the NetworkDataTask (m_task).

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkDataTask::client):
(WebKit::NetworkDataTask::pendingDownloadID):
(WebKit::NetworkDataTask::setPendingDownloadID):
(WebKit::NetworkDataTask::downloadID): Deleted.
(WebKit::NetworkDataTask::setDownloadID): Deleted.
Renamed downloadID and setDownloadID to pendingDownloadID and setPendingDownloadID, respectively,
to indicate their use. They are not the current downloadID, but they are the downloadID of the download
that will happen once the response is received and PolicyDownload will be returned in the completion handler.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
Call dataTaskBecameDownloadTask after didBecomeDownload because the networkDataTask is deleted by removing it
from m_pendingDownloads in dataTaskBecameDownloadTask.

1:27 PM Changeset in webkit [194717] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Make creating new rules in the Styles sidebar simpler
https://bugs.webkit.org/show_bug.cgi?id=152726

Patch by Devin Rousso <Devin Rousso> on 2016-01-07
Reviewed by Timothy Hatcher.

When creating a new rules of any kind, first look to see if it already exists in
another rule that has no properties. If found, focus/select it instead of creating
a new rule. Otherwise, create the new rule like normal.

Also changed the way in which previously-focused sections/tree-items are saved
to rely upon the selector of the new rule and whether the section for that rule
is empty and an inspector rule.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.isInspectorRule):
Returns true if the style is an inspector rule.

(WebInspector.CSSStyleDeclaration.prototype.hasProperties):
Returns true if the style has CSS properties.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.rulesForSelector.ruleHasSelector):
(WebInspector.DOMNodeStyles.prototype.rulesForSelector):
Returns a list of CSSRule that match the given selector and are not
in media queries.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.cssStyleDeclarationSectionEditorFocused):
Now saves the newly focused section as the previously-focused section.

(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector):
Renamed from cssStyleDeclarationSectionFocusNextNewInspectorRule. Now needs
a selector argument.

(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.sectionForStyle):
Returns the first section that has a style with matching selector.

(WebInspector.RulesStyleDetailsPanel.prototype.focusEmptySectionWithStyle):
Finds the section corresponding to the given style and, if empty, focuses it.

(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
No longer clears the previously-focused section.

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection):
(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype.update):
(WebInspector.VisualStyleSelectorSection.prototype.treeItemForStyle):
Returns the first tree item that has a style with matching selector.

(WebInspector.VisualStyleSelectorSection.prototype.selectEmptyStyleTreeItem):
Finds the tree item corresponding to the given style and, if empty, selects it.

(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem):
Now requires a delegate object.

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):

1:20 PM Changeset in webkit [194716] by fpizlo@apple.com
  • 12 edits
    12 adds in trunk/Source/JavaScriptCore

FTL B3 getById() should do exceptions
https://bugs.webkit.org/show_bug.cgi?id=152810

Reviewed by Saam Barati.

This adds abstractions for doing exceptions from patchpoints, and uses them to implement
exceptions from GetById. This covers all of the following ways that a GetById might throw an
exceptions:

  • Throw without try/catch from the vmCall() in a GetById(Untyped:)
  • Throw with try/catch from the vmCall() in a GetById(Untyped:)
  • Throw without try/catch from the callOperation() in the patchpoint of a GetById
  • Throw with try/catch from the callOperation() in the patchpoint of a GetById
  • Throw without try/catch from the Call IC generated in the patchpoint of a GetById
  • Throw with try/catch from the Call IC generated in the patchpoint of a GetById

This requires having a default exception target in FTL-generated code, and ensuring that this
target is generated regardless of whether we have branches to the B3 basic block of the
default exception target. This also requires adding some extra arguments to a
PatchpointValue, and then knowing that the arguments are used for OSR exit and not anything
else. This also requires associating the CallSiteIndex of the patchpoint with the register
set used for exit and with the OSR exit label for the unwind exit.

All of the stuff that you have to worry about when wiring a patchpoint to exception handling
is covered by the new PatchpointExceptionHandle object. You create one by calling
preparePatchpointForExceptions(). This sets up the B3 IR representation of the patchpoint
with stackmap arguments for the exceptional exit, and creates a PatchpointExceptionHandle
object that can be used to create zero or more actual OSR exits. It can create both OSR exits
for operation calls and OSR exits for unwind. You call the
PatchpointExceptionHandle::scheduleExitCreationXXX() methods from the generator callback to
actually get OSR exits.

This API makes heavy use of Box<>, late paths, and link tasks. For example, you can use the
PatchpointExceptionHandle to get a Box<JumpList> that you can append exception jumps to. When
you use this API, it automatically registers a link task that will link the JumpList to the
actual OSR exit label.

This API is very flexible about how you get to the label of the OSR exit. You are encouraged
to use the Box<JumpList> approach, but if you really just need the label, you can also get
a RefPtr<ExceptionTarget> and rely on the fact that the ExceptionTarget object will be able
to vend you the OSR exit label at link-time.

This reduces the number of JSC test failures with FTL B3 from 186 to 133. It also adds a
bunch of new tests specifically for all of the ways you might throw from GetById, and B3
passes all of these new tests. Note that I'm not counting the new tests as part of the
previous 186 test failures (FTL B3 failed all of the new tests prior to this change).

After this change, it should be easy to make all of the other patchpoints also handle
exceptions by just following the preparePatchpointForExceptions() idiom.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3StackmapValue.h:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::usedRegisters):
(JSC::B3::ValueRep::dump):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::doubleValue):
(JSC::B3::ValueRep::withOffset):
(JSC::B3::ValueRep::usedRegisters):

  • ftl/FTLB3Compile.cpp:

(JSC::FTL::compile):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):

  • ftl/FTLExceptionTarget.cpp: Added.

(JSC::FTL::ExceptionTarget::~ExceptionTarget):
(JSC::FTL::ExceptionTarget::label):
(JSC::FTL::ExceptionTarget::jumps):
(JSC::FTL::ExceptionTarget::ExceptionTarget):

  • ftl/FTLExceptionTarget.h: Added.
  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitRightShiftSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::preparePatchpointForExceptions):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):

  • ftl/FTLPatchpointExceptionHandle.cpp: Added.

(JSC::FTL::PatchpointExceptionHandle::create):
(JSC::FTL::PatchpointExceptionHandle::defaultHandle):
(JSC::FTL::PatchpointExceptionHandle::~PatchpointExceptionHandle):
(JSC::FTL::PatchpointExceptionHandle::scheduleExitCreation):
(JSC::FTL::PatchpointExceptionHandle::scheduleExitCreationForUnwind):
(JSC::FTL::PatchpointExceptionHandle::PatchpointExceptionHandle):
(JSC::FTL::PatchpointExceptionHandle::createHandle):

  • ftl/FTLPatchpointExceptionHandle.h: Added.
  • ftl/FTLState.cpp:
  • ftl/FTLState.h:

(JSC::FTL::verboseCompilationEnabled):

  • tests/stress/ftl-get-by-id-getter-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-get-by-id-getter-exception-no-catch.js: Added.
  • tests/stress/ftl-get-by-id-getter-exception.js: Added.
  • tests/stress/ftl-get-by-id-slow-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-get-by-id-slow-exception-no-catch.js: Added.
  • tests/stress/ftl-get-by-id-slow-exception.js: Added.
  • tests/stress/ftl-operation-exception-interesting-live-state.js: Added.
  • tests/stress/ftl-operation-exception-no-catch.js: Added.
1:17 PM Changeset in webkit [194715] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Implemented missing branch patching methods.
https://bugs.webkit.org/show_bug.cgi?id=152845

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerMIPS::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerMIPS::revertJumpReplacementToPatchableBranch32WithPatch):

1:16 PM Changeset in webkit [194714] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] When resolving Stack arguments, use addressing from SP when addressing from FP is invalid
https://bugs.webkit.org/show_bug.cgi?id=152840

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-07
Reviewed by Mark Lam.

ARM64 has two kinds of addressing with immediates:
-Signed 9bits direct (really only -256 to 255).
-Unsigned 12bits scaled by the load/store size.

When resolving the stack addresses, we easily run
past -256 bytes from FP. Addressing from SP gives us more
room to address the stack efficiently because we can
use unsigned immediates.

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::repForArg):

  • b3/air/AirAllocateStack.cpp:

(JSC::B3::Air::allocateStack):

1:13 PM Changeset in webkit [194713] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Make repatchCall public to fix compilation.
https://bugs.webkit.org/show_bug.cgi?id=152843

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::repatchCall):
(JSC::MacroAssemblerMIPS::linkCall): Deleted.

12:43 PM Changeset in webkit [194712] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Replaced subi with addi in getHostCallReturnValue
https://bugs.webkit.org/show_bug.cgi?id=152841

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Michael Saboff.

MIPS architecture does not have subi instruction, addi with negative
number should be used instead.

  • jit/JITOperations.cpp:
12:21 PM Changeset in webkit [194711] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ARMv7 or32(TrustedImm32, AbsoluteAddress) may have a bug with its use of dataTempRegister.
https://bugs.webkit.org/show_bug.cgi?id=152833

Reviewed by Michael Saboff.

Follow-up patch to fix illegal use of memoryTempRegister as the src for ARM64's
store32.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::or32):
(JSC::MacroAssemblerARM64::store):

12:01 PM Changeset in webkit [194710] by Alan Bujtas
  • 3 edits
    4 adds in trunk

Incorrect position: fixed; rendering when child of position:relative/sticky.
https://bugs.webkit.org/show_bug.cgi?id=147284

Reviewed by Simon Fraser and David Hyatt.

Computing logical left for positioned objects should take the relative positioned ancestors' offset
into account.

Source/WebCore:

Tests: fast/block/positioning/fixed-container-with-relative-parent.html

fast/block/positioning/fixed-container-with-sticky-parent.html

  • rendering/RenderBox.cpp:

(WebCore::computeInlineStaticDistance):

LayoutTests:

  • fast/block/positioning/fixed-container-with-relative-parent-expected.html: Added.
  • fast/block/positioning/fixed-container-with-relative-parent.html: Added.
  • fast/block/positioning/fixed-container-with-sticky-parent-expected.html: Added.
  • fast/block/positioning/fixed-container-with-sticky-parent.html: Added.
12:00 PM Changeset in webkit [194709] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] GPRInfo::toArgumentRegister missing
https://bugs.webkit.org/show_bug.cgi?id=152838

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Michael Saboff.

  • jit/GPRInfo.h:

(JSC::GPRInfo::toArgumentRegister):

11:53 AM Changeset in webkit [194708] by Simon Fraser
  • 6 edits
    9 adds in trunk/Source/WebCore

Initial implementation files for display-list recording and playback
https://bugs.webkit.org/show_bug.cgi?id=152816

Reviewed by Zalan Bujtas.

Add files for:

  • DisplayList, a class that holds a vector of display items, and in the future will hold metadata on the list for optimizations etc.
  • DisplayList::Recorder, the outward-facing recording API which GraphicsContext will call into.
  • DisplayList::Replayer, which plays back a DisplayList, possibly applying optimizations.
  • Various DisplayList::Items, one type for each display list operation. They cover most of the GraphicsContext functionality, other than clipping to an image buffer. Text drawing is stubbed out for now.

Added a "DisplayLists" log channel.

Added GraphicsContextState functions for tracking state deltas with change bits. It may
make sense to combine GraphicsContextStateChange and GraphicsContextState, and use the
dirty bits in non-display-list drawing as well.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/displaylists/DisplayList.cpp: Added.

(WebCore::DisplayList::DisplayList::description):
(WebCore::DisplayList::DisplayList::dump):
(WebCore::operator<<):

  • platform/graphics/displaylists/DisplayListItems.cpp: Added.
  • platform/graphics/displaylists/DisplayListItems.h: Added.
  • platform/graphics/displaylists/DisplayListRecorder.cpp: Added.
  • platform/graphics/displaylists/DisplayListRecorder.h: Added.
  • platform/graphics/displaylists/DisplayListReplayer.cpp: Added.

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::Replayer::~Replayer):
(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/displaylists/DisplayListReplayer.h: Added.
11:42 AM Changeset in webkit [194707] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

ARMv7 or32(TrustedImm32, AbsoluteAddress) may have a bug with its use of dataTempRegister.
https://bugs.webkit.org/show_bug.cgi?id=152833

Reviewed by Benjamin Poulain.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::or32):

  • Added some assertions to make sure it is safe to use ARMRegisters::S0 as a temp.
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::or32):

  • Implement an optimization that avoids reloading the memoryTempRegister when the immediate is encodable as an instruction immediate.
  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or32):

  • Added an assertion to make sure it is safe to use the dataTempRegister as a temp.
  • Implement an optimization that avoids reloading the memoryTempRegister when the immediate is encodable as an instruction immediate. In the event that we cannot encode the immediate, we'll use the addressTempRegister as a temp, and reload it later.
11:40 AM Changeset in webkit [194706] by Chris Dumez
  • 7 edits
    2 adds in trunk

Directly-composited animated GIFs never resume once scrolled offscreen
https://bugs.webkit.org/show_bug.cgi?id=152817
<rdar://problem/19982020>

Reviewed by Daniel Bates.

Source/WebCore:

Directly-composited animated GIFs would never resume once scrolled
offscreen. This is because calling repaint() in this case would not
cause BitmapImage::draw() to be called and the animation would thus
not be resumed. To address the problem,
repaintForPausedImageAnimationsIfNeeded() now calls
RenderBoxModelObject::contentChanged(ImageChanged) in addition to
repaint() to make sure the animation actually gets resumed, even in
the directly-composited animated GIF case.

Test: fast/images/composited-animated-gif-outside-viewport.html

  • platform/graphics/BitmapImage.h:

Make currentFrame() public so it can be exposed via Internals for the
purpose of testing.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
Call RenderBoxModelObject::contentChanged(ImageChanged) in addition to
calling repaint() to make sure the animation actually gets resumed in
the directly-composited animated GIFs case.

  • testing/Internals.cpp:

(WebCore::Internals::imageFrameIndex):

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

Expose new "unsigned long imageFrameIndex(Element)" operation on
Internals so layout tests can better check if an image is actually
animating. Previously, we would rely on the output of
internals.hasPausedImageAnimations(Element) but this is not sufficient
to cover this bug as our rendering code believed it has resumed the
animations but the GIF was not actually animating due to it being
directly-composited.

LayoutTests:

Add a layout test to check that directly-composited animated GIFs are
properly suspended / resumed based on visibility inside the viewport.

  • fast/images/composited-animated-gif-outside-viewport-expected.txt: Added.
  • fast/images/composited-animated-gif-outside-viewport.html: Added.
11:29 AM Changeset in webkit [194705] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[CMake] JSC shell sources should include JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
https://bugs.webkit.org/show_bug.cgi?id=152664

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-07
Reviewed by Alex Christensen.

  • shell/CMakeLists.txt:
11:06 AM Changeset in webkit [194704] by Joseph Pecoraro
  • 8 edits
    3 adds in trunk

Web Inspector: CRASH Attempting to pause on CSP violation not inside of script
https://bugs.webkit.org/show_bug.cgi?id=152825
<rdar://problem/24021276>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • debugger/Debugger.cpp:

(JSC::Debugger::breakProgram):
We cannot pause if we are not evaluating JavaScript, so bail.

Source/WebInspectorUI:

  • UserInterface/Test/TestHarness.js:

(TestHarness.prototype.expectThat):
(TestHarness.prototype.pass):
(TestHarness.prototype.fail):
Add a simple way to output a standard pass/fail message. These are
often nicer than expectThat(true, ...) or assert(false, ...).

LayoutTests:

  • http/tests/inspector/resources/inspector-test.js:

(TestPage.reportUncaughtException):
Allow a test to continue after uncaught exceptions.

  • inspector/debugger/csp-exceptions-expected.txt: Added.
  • inspector/debugger/csp-exceptions.html: Added.
  • inspector/debugger/resources/csp-exception-iframe.html: Added.

Test a CSP exception that causes a pause and one outside of
script that does not pause (and does not crash).

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

[JSC] Re-enable lea() in Air on ARM64
https://bugs.webkit.org/show_bug.cgi?id=152832

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

Lea() on the MacroAssembler is not the full x86 Lea (the real one being
x86Lea32()). Instead, it is a addPtr() with SP and a constant.

The instruction is required to implement B3's StackSlot. It is not
safe for big offsets but none of the stack operations are at the moment.

  • b3/air/AirOpcode.opcodes:
10:21 AM Changeset in webkit [194702] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed IndexedDB test gardening.

  • platform/mac-wk1/TestExpectations:
10:13 AM Changeset in webkit [194701] by beidson@apple.com
  • 3 edits
    2 adds in trunk/LayoutTests

Modern IDB: Add expectations for W3C tests that were missing them.
https://bugs.webkit.org/show_bug.cgi?id=152835

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • indexeddb/idbfactory_open10-expected.txt: Added.
  • indexeddb/key_valid-expected.txt: Added.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
10:07 AM Changeset in webkit [194700] by beidson@apple.com
  • 28 edits
    22 copies in trunk/LayoutTests

Modern IDB: Update results for W3C tests marked as failures that actually pass.
https://bugs.webkit.org/show_bug.cgi?id=152827

Reviewed by Daniel Bates.
LayoutTests/imported/w3c:

Modern IDB passes the following tests with PASS results where we previous expected FAIL.

Let's update those, shall we?

  • indexeddb/abort-in-initial-upgradeneeded-expected.txt:
  • indexeddb/idbcursor-advance-expected.txt:
  • indexeddb/idbcursor_advance_index5-expected.txt:
  • indexeddb/idbcursor_advance_index9-expected.txt:
  • indexeddb/idbcursor_advance_objectstore5-expected.txt:
  • indexeddb/idbcursor_continue_index5-expected.txt:
  • indexeddb/idbcursor_continue_index6-expected.txt:
  • indexeddb/idbcursor_continue_index8-expected.txt:
  • indexeddb/idbcursor_continue_invalid-expected.txt:
  • indexeddb/idbcursor_continue_objectstore6-expected.txt:
  • indexeddb/idbcursor_delete_index4-expected.txt:
  • indexeddb/idbcursor_delete_objectstore4-expected.txt:
  • indexeddb/idbdatabase_close2-expected.txt:
  • indexeddb/idbdatabase_deleteObjectStore4-not_reused-expected.txt:
  • indexeddb/idbfactory_deleteDatabase3-expected.txt:
  • indexeddb/idbindex-multientry-big-expected.txt:
  • indexeddb/idbindex_get3-expected.txt:
  • indexeddb/idbobjectstore_add4-expected.txt:
  • indexeddb/idbobjectstore_createIndex2-expected.txt:
  • indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-expected.txt:
  • indexeddb/idbobjectstore_put4-expected.txt:
  • indexeddb/idbtransaction_abort-expected.txt:
  • indexeddb/keygenerator-constrainterror-expected.txt:
  • indexeddb/keygenerator-expected.txt:
  • indexeddb/transaction-requestqueue-expected.txt:

LayoutTests:

  • Update FAIL expectations to PASS expectations for Modern IDB.
  • Copy the FAIL expectations over to platform/wk2 to keep testing Legacy IDB.
  • platform/mac-wk1/TestExpectations:
  • platform/wk2/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor-advance-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor-advance-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_advance_index5-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_advance_index9-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_advance_objectstore5-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index8-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_continue_objectstore6-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_delete_index4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_delete_objectstore4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore4-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbdatabase_close2-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbdatabase_close2-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbfactory_deleteDatabase3-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase3-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbindex-multientry-big-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbindex-multientry-big-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbindex_get3-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbindex_get3-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_add4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_add4-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex2-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex2-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbobjectstore_put4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_put4-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/idbtransaction_abort-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbtransaction_abort-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/keygenerator-constrainterror-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/keygenerator-constrainterror-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/keygenerator-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/keygenerator-expected.txt.
  • platform/wk2/imported/w3c/indexeddb/transaction-requestqueue-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/transaction-requestqueue-expected.txt.
9:06 AM Changeset in webkit [194699] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Add two missing abortWithReason implementations
https://bugs.webkit.org/show_bug.cgi?id=136753

Patch by Julien Brianceau <jbriance@cisco.com> on 2016-01-07
Reviewed by Benjamin Poulain.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::memoryFence):
(JSC::MacroAssemblerMIPS::abortWithReason):
(JSC::MacroAssemblerMIPS::readCallTarget):

7:31 AM Changeset in webkit [194698] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Add new or32 implementation to MacroAssemblerARM after r194613
https://bugs.webkit.org/show_bug.cgi?id=152784

Reviewed by Benjamin Poulain.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::or32):

7:00 AM Changeset in webkit [194697] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[SOUP] Consider reducing max simultaneous connections
https://bugs.webkit.org/show_bug.cgi?id=137282

Reviewed by Carlos Garcia Campos.

Reduce max simultaneous connections from 35 to 17, because (a) all major browsers except
Chrome use 17, and (b) Chrome uses 10. The only reason we previously used 35 was that other
browsers were using 35 at the time.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

6:00 AM Changeset in webkit [194696] by youenn.fablet@crf.canon.fr
  • 4 edits
    1 add in trunk/Tools

[buildbot] clean-build script should remove untracked files and revert local changes too
https://bugs.webkit.org/show_bug.cgi?id=142400

Reviewed by Ryosuke Niwa.

This patch cleans the WebKit folder by reverting tracked files changes and deleting SCM untracked files, including SCM ignored files.
A helper routine SCM.discard_untracked_files is added for that purpose.

  • BuildSlaveSupport/clean-build:

(main): Making call to Scripts/clean-webkit

  • Scripts/clean-webkit: Added.

(main): Revert changes and delete untracked files.

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.discard_untracked_files): Helper function to discard untracked files or folders found by SCM.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SCMTest._shared_test_discard_untracked_files):
(test_discard_untracked_files): Tests that untracked file and untracked folder get discarded correctly.

3:25 AM WebKitGTK/Gardening/Calendar edited by mario@webkit.org
(diff)
12:17 AM Changeset in webkit [194695] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r194557. rdar://problem/24042908

12:17 AM Changeset in webkit [194694] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r194624. rdar://problem/24074336

12:16 AM Changeset in webkit [194693] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r194485. rdar://problem/23978916

12:16 AM Changeset in webkit [194692] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r194662. rdar://problem/24043055

12:16 AM Changeset in webkit [194691] by Antti Koivisto
  • 12 edits
    2 moves in trunk/Source/WebCore

Factor free standing tree style resolve functions into a class
https://bugs.webkit.org/show_bug.cgi?id=152786

Reviewed by Simon Fraser.

Factor the free standing tree style resolve functions into a class that can keep state.
Style::TreeResolver instances resolve a single tree scope. It is instantiated for resolving
the document style and then recursively for each encountered shadow tree.

This will enable new features and optimizations later.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

Move the root style computation code back to Document. It fits better here and avoid some
awkwardness with style resolver construction order.

  • style/StyleResolveTree.cpp:

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

TreeResolver knows the current tree context and the StyleResolver to use for it.
Switch the functions to use these instead of recomputing them repeatedly.

(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::moveToFlowThreadIfNeeded):
(WebCore::Style::TreeResolver::createRenderer):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::TreeResolver::createRenderTreeForChildren):
(WebCore::Style::TreeResolver::createRenderTreeForShadowRoot):
(WebCore::Style::needsPseudoElement):
(WebCore::Style::TreeResolver::createRenderTreeForBeforeOrAfterPseudoElement):
(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
(WebCore::Style::TreeResolver::createRenderTreeRecursively):

Rename to reduce the use of confusing "attach" terminology.

(WebCore::Style::pseudoStyleCacheIsInvalid):
(WebCore::Style::TreeResolver::resolveLocally):
(WebCore::Style::resolveTextNode):
(WebCore::Style::TreeResolver::resolveChildAtShadowBoundary):
(WebCore::Style::TreeResolver::resolveShadowTree):
(WebCore::Style::TreeResolver::resolveBeforeOrAfterPseudoElement):
(WebCore::Style::TreeResolver::resolveChildren):
(WebCore::Style::TreeResolver::resolveSlotAssignees):
(WebCore::Style::TreeResolver::resolveRecursively):
(WebCore::Style::TreeResolver::resolve):
(WebCore::Style::detachRenderTree):
(WebCore::Style::styleForElement): Deleted.
(WebCore::Style::createRendererIfNeeded): Deleted.
(WebCore::Style::attachChildren): Deleted.
(WebCore::Style::attachShadowRoot): Deleted.
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Deleted.
(WebCore::Style::attachSlotAssignees): Deleted.
(WebCore::Style::attachRenderTree): Deleted.
(WebCore::Style::resolveLocal): Deleted.
(WebCore::Style::resolveChildAtShadowBoundary): Deleted.
(WebCore::Style::resolveShadowTree): Deleted.
(WebCore::Style::updateBeforeOrAfterPseudoElement): Deleted.
(WebCore::Style::resolveChildren): Deleted.
(WebCore::Style::resolveSlotAssignees): Deleted.
(WebCore::Style::resolveTree): Deleted.

  • style/StyleResolveTree.h:
12:14 AM Changeset in webkit [194690] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

AX: AXObjectCacheMac is passing WebCore enum values directly to VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=151755

Patch by Doug Russell <d_russell@apple.com> on 2016-01-07
Reviewed by Chris Fleizach.

No new tests, covered by existing tests.

  • accessibility/mac/AXObjectCacheMac.mm:

(platformChangeTypeForWebCoreChangeType):
(platformEditTypeForWebCoreEditType):
(platformDirectionForWebCoreDirection):
(platformGranularityForWebCoreGranularity):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::textReplacementChangeDictionary):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):

Jan 6, 2016:

11:53 PM Changeset in webkit [194689] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB: Initial enabling of imported W3C IDB tests.
https://bugs.webkit.org/show_bug.cgi?id=152824

Reviewed by Daniel Bates.

  • platform/mac-wk1/TestExpectations: Unskip the entire W3C IDB test directory, but add appropriate results for all the tests that don't yet pass.
6:41 PM Changeset in webkit [194688] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Web Inspector: Add test for Color.canBeSerializedAsShortHex
https://bugs.webkit.org/show_bug.cgi?id=152809

Patch by Devin Rousso <Devin Rousso> on 2016-01-06
Reviewed by Brian Burg.

Added more specific tests for the canBeSerializedAsShortHex
method of Web Inspector model class Color.

  • inspector/model/color-expected.txt:
  • inspector/model/color.html:
6:09 PM Changeset in webkit [194687] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Fix up IDBDatabaseIdentifier hash issues.
https://bugs.webkit.org/show_bug.cgi?id=152822

Reviewed by Alex Christensen.

No new tests (No explicitly testable behavior change, existing tests pass, flakiness will be reduced).

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isEmpty):
(WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):

  • page/SecurityOriginData.h:
5:44 PM Changeset in webkit [194686] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMContentLoaded label in the Timeline tab should be "DOM Content Loaded"
https://bugs.webkit.org/show_bug.cgi?id=152746

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.addMarker):

5:44 PM Changeset in webkit [194685] by Joseph Pecoraro
  • 9 edits in trunk

Web Inspector: Scope chain shows too many scopes for functions (let and var in the same function are two scopes)
https://bugs.webkit.org/show_bug.cgi?id=152349

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:

New "Closure Variables (%s)" string for including the function name alongside
the closure scope section.

  • UserInterface/Models/ScopeChainNode.js:

(WebInspector.ScopeChainNode):
(WebInspector.ScopeChainNode.prototype.get objects):
(WebInspector.ScopeChainNode.prototype.get object): Deleted.
Allow a ScopeChainNode to hold onto multiple RemoteObjects (for multiple JSScopes).

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
Simplify the legacy case and convert "Local" to "Closure". The UI will now
determine and display "Local" where appropriate in a backwards compatible way.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
Associate ScopeChain nodes with CallFrame frames so that we can better combine
variable sections and better label closure sections.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(.scope-chain .details-section > .content > .group > .row.properties:not(.empty)):
(.scope-chain .details-section > .content > .group > .row.properties:not(.empty):last-child):
Styles for two object trees property sections next to eachother.

LayoutTests:

  • inspector/debugger/breakpoint-scope.html:
  • inspector/model/scope-chain-node.html:

The ScopeChainNode model object changed, so update tests.

5:43 PM Changeset in webkit [194684] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Sort the project file.

  • WebCore.xcodeproj/project.pbxproj:
5:43 PM Changeset in webkit [194683] by Simon Fraser
  • 16 edits in trunk

Add a setting and preferences to enable display-list drawing. Does nothing yet.
https://bugs.webkit.org/show_bug.cgi?id=152807

Reviewed by Zalan Bujtas.
Source/WebCore:

Setting for display-list drawing.

  • page/Settings.in:

Source/WebKit/mac:

WK1 pref for display-list drawing, defaults to off.

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

(+[WebPreferences initialize]):
(-[WebPreferences displayListDrawingEnabled]):
(-[WebPreferences setDisplayListDrawingEnabled:]):

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

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _preferencesChanged:]):

Source/WebKit2:

WK2 debug pref for display-list drawing, defaults to off.

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

(-[WKPreferences _displayListDrawingEnabled]):
(-[WKPreferences _setDisplayListDrawingEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Add an item to the Settings menu to toggle display-list drawing.

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleDisplayListDrawingEnabled:]):
(-[SettingsController displayListDrawingEnabled]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

5:39 PM Changeset in webkit [194682] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] css-multicol-1 tests are failing

Unreviewed gardening.

  • platform/gtk/TestExpectations:
5:37 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
5:33 PM Changeset in webkit [194681] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining media/airplay-target-availability.html
hhttps://bugs.webkit.org/show_bug.cgi?id=152815

Unreviewed test gardening.

  • media/airplay-target-availability-expected.txt:
5:17 PM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:00 PM Changeset in webkit [194680] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard JSON API should fail gracefully when postgres is down
https://bugs.webkit.org/show_bug.cgi?id=152812

Reviewed by Chris Dumez.

Even though all JSON APIs returned DatabaseConnectionFailure as the status when Database::connect
returned a falsy value, PHP was spitting out warnings and producing HTTP responses that cannot be
parsed as a JSON when pg_connect failed.

Fixed the bug by suppressing warning messages in pg_connect.

  • public/include/db.php:

(Database::connect): Use '@' prefix to suppress warning messages.

4:57 PM Changeset in webkit [194679] by rniwa@webkit.org
  • 3 edits
    1 add in trunk/Websites/perf.webkit.org

Perf dashboard should auto-generate manifest file when one is missing
https://bugs.webkit.org/show_bug.cgi?id=152813

Reviewed by Chris Dumez.

When /data/manifest.json is missing, fall back to newly added /api/manifest instead of
silently failing to show the UI. This will make the initial setup easier.

  • public/api/manifest.php: Added.

(main):

  • public/include/manifest.php:

(Manifest::manifest): Added.

  • public/v3/main.js:

(fetchManifest):
(didFetchManifest): Extracted from fetchManifest.

3:54 PM Changeset in webkit [194678] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Remove Debug Logging from some Inspector Tests
https://bugs.webkit.org/show_bug.cgi?id=152806

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-06
Reviewed by Brian Burg.

  • inspector/debugger/scriptParsed.html:
  • inspector/model/scope-chain-node.html:
3:50 PM Changeset in webkit [194677] by matthew_hanson@apple.com
  • 13 edits
    2 adds in branches/safari-601-branch

Merge r194405. rdar://problem/23982006

3:50 PM Changeset in webkit [194676] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601-branch

Merge r194404. rdar://problem/23982006

3:50 PM Changeset in webkit [194675] by matthew_hanson@apple.com
  • 11 edits in branches/safari-601-branch

Merge r194114. rdar://problem/23982010

3:50 PM Changeset in webkit [194674] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r188802. rdar://problem/23982009

3:46 PM Changeset in webkit [194673] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add basic Animation section to Visual Sidebar
https://bugs.webkit.org/show_bug.cgi?id=152692

Patch by Devin Rousso <Devin Rousso> on 2016-01-06
Reviewed by Timothy Hatcher.

Adds a non-autocompleting section to the "Effects" section (renamed from
"Animations") of the Visual sidebar for setting CSS Animation values.

  • Scripts/copy-user-interface-resources.pl:
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/AnimationPlayStatePaused.svg: Added.
  • UserInterface/Images/AnimationPlayStateRunning.svg: Added.
  • UserInterface/Main.html:
  • UserInterface/Views/VisualStyleBasicInput.js: Added.

(WebInspector.VisualStyleBasicInput):
(WebInspector.VisualStyleBasicInput.prototype.get value):
(WebInspector.VisualStyleBasicInput.prototype.set value):
(WebInspector.VisualStyleBasicInput.prototype.get synthesizedValue):
(WebInspector.VisualStyleBasicInput.prototype._handleInputElementInput):
Very basic editor that is just an input box with a given placeholder.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
Creates the necessary property editors and adds them to their respective rows.

3:37 PM Changeset in webkit [194672] by eric.carlson@apple.com
  • 15 edits
    2 adds in trunk

AirPlay route availability event not always sent
https://bugs.webkit.org/show_bug.cgi?id=152802

Reviewed by Jer Noble.

Source/WebCore:

Test: media/airplay-target-availability.html

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::mediaProducerStateString): Log the new flags.
(WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a client reconfiguration if

the 'requires monitoring', 'has listener', or 'has audio or video' flags have changed.

(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Start monitoring if

at least one client has a listener and at least one has audio/video.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set new flags.

  • html/HTMLMediaElement.h:
  • page/MediaProducer.h: Define new flags. Add new state enum.
  • platform/graphics/MediaPlaybackTargetContext.h: Initial state is "Unknown".
  • platform/mock/MediaPlaybackTargetMock.h:
  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable): Enums not bitfields.
(WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets): Ditto. Don't make

device change callback if the device state is "Unknown".

(WebCore::MediaPlaybackTargetPickerMock::setState): Ditto.

  • platform/mock/MediaPlaybackTargetPickerMock.h:
  • testing/Internals.cpp:

(WebCore::Internals::setMockMediaPlaybackTargetPickerState): Support new state.

LayoutTests:

  • media/airplay-target-availability-expected.txt: Added.
  • media/airplay-target-availability.html: Added.
  • platform/mac/TestExpectations: Skip new test on Yosemite.
  • platform/efl/TestExpectations: Skip new test.
  • platform/gtk/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
2:34 PM Changeset in webkit [194671] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: storage/indexeddb/odd-strings.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=152800

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Existing flaky test is now rock solid and unskipped).

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::IDBDatabase):
(WebCore::IDBClient::IDBDatabase::maybeCloseInServer): Only refuse to close in the server if there

are active transactions. In the case of page navigation where stop() has been called on active DOM objects,
there will never be any active transactions.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:21 PM Changeset in webkit [194670] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: storage/indexeddb/intversion-gated-on-delete.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=152795

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

Change the HashSet of open connection into a ListHashSet.

This enforces a reliable order of event delivery, which this test relies on,
and which seems better in general.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:21 PM Changeset in webkit [194669] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r194613): JITMulGenerator needs a scratch GPR on 32-bit too.
https://bugs.webkit.org/show_bug.cgi?id=152805

Reviewed by Michael Saboff.

There aren't enough registers on x86 32-bit to allocate the needed scratch GPR.
So, we'll continue to use one of the result registers as the scratch, and
re-compute the result at the end.

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

2:10 PM Changeset in webkit [194668] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Use code signed identifier as part of user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=152310
<rdar://problem/13352225>

As pointed out by Sam Weinig, the year is 2016! I inadvertently added the copyright year 2015 instead of 2016.

  • Shared/mac/ChildProcessMac.mm:
2:08 PM Changeset in webkit [194667] by Simon Fraser
  • 11 edits in trunk

[iOS] Revert overflow:hidden on the body affecting viewport scale (r186786)
https://bugs.webkit.org/show_bug.cgi?id=152803
rdar://problem/22242515

Reviewed by Tim Horton.
Source/WebCore:

You can't assume that if an author uses overflow:hidden on the body, they have no
content outside the body that is important. Sites like Google Translate put
abspos elements outside the body.

So revert the change.

  • page/FrameView.cpp:

(WebCore::FrameView::contentsSizeRespectingOverflow): Deleted.

  • page/FrameView.h:

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _contentsSizeRespectingOverflow]): Keep this function which is used
by UIKit, but change the implementation to just return the document size.

Source/WebKit2:

You can't assume that if an author uses overflow:hidden on the body, they have no
content outside the body that is important. Sites like Google Translate put
abspos elements outside the body.

So revert the change.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mainFrameDidLayout): Go back to using contents size.

LayoutTests:

Keep the tests, but update their expected results.

  • platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
  • platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
  • platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
2:07 PM Changeset in webkit [194666] by Brent Fulgham
  • 5 edits
    2 adds in trunk

Port blocking bypass issue using 307 redirect
https://bugs.webkit.org/show_bug.cgi?id=152801
<rdar://problem/24048554>

Reviewed by Anders Carlsson.

Source/WebCore:

Tested by http/tests/security/blocked-on-redirect.html.

Make sure that 307 redirects check the requested URL via 'portAllowed'.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Confirm that the requested port
is valid, and block load if it is not.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::reportBlockedPortFailed): Added.
(WebCore::FrameLoader::blockedError): Added.

  • loader/FrameLoader.h:

LayoutTests:

  • http/tests/security/blocked-on-redirect-expected.txt: Added.
  • http/tests/security/blocked-on-redirect.html: Added.
1:50 PM Changeset in webkit [194665] by andersca@apple.com
  • 7 edits
    1 add in trunk/Source

Add a smart block pointer
https://bugs.webkit.org/show_bug.cgi?id=152799

Reviewed by Tim Horton.

Source/JavaScriptCore:

Get rid of RemoteTargetBlock and replace it with WTF::BlockPtr<void ()>.

  • inspector/remote/RemoteConnectionToTarget.h:

(Inspector::RemoteTargetBlock::RemoteTargetBlock): Deleted.
(Inspector::RemoteTargetBlock::~RemoteTargetBlock): Deleted.
(Inspector::RemoteTargetBlock::operator=): Deleted.
(Inspector::RemoteTargetBlock::operator()): Deleted.

  • inspector/remote/RemoteConnectionToTarget.mm:

(Inspector::RemoteTargetQueueTaskOnGlobalQueue):
(Inspector::RemoteConnectionToTarget::queueTaskOnPrivateRunLoop):

Source/WebKit2:

Use WTF::BlockPtr.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):

Source/WTF:

Introduce WTF::BlockPtr, a smart block pointer.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BlockPtr.h: Added.

(WTF::makeBlockPtr):

1:43 PM Changeset in webkit [194664] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Commit another forgotten change, this time, for r194653.

  • public/v3/models/measurement-set.js:
1:37 PM Changeset in webkit [194663] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] More B3 tests passing on ARM64
https://bugs.webkit.org/show_bug.cgi?id=152787

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

Some more minor bugs.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::urshift64):
The offset was being truncated. That code was just copied
from the 32bits version of urshift.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):
Very few instructions can encode -1 as immediate.
TST certainly can't. The fallback works for ARM.

  • b3/air/AirOpcode.opcodes:

Bit instructions have very specific immediate encoding.
B3 cannot express that properly yet. I disabled those
forms for now. Immediates encoding is something we'll really
have to look into at some point for B3 ARM64.

1:32 PM Changeset in webkit [194662] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge for rdar://problem/24043055.

1:16 PM Changeset in webkit [194661] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

The sampling of time series on v3 UI is too aggressive
https://bugs.webkit.org/show_bug.cgi?id=152804

Reviewed by Chris Dumez.

Fixed a bug that we were always halving the number of data points in _sampleTimeSeries
and increased the number of data points allowed to make the sampling less aggressive.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._ensureSampledTimeSeries): Increase the number of maximum points
to 2x the number of pixels divided by the radius of each point.
(TimeSeriesChart.prototype._sampleTimeSeries.findMedian): Changed the semantics of endIndex
to mean the index after the last point and renamed it to indexAfterEnd.
(TimeSeriesChart.prototype._sampleTimeSeries): Fixed a bug that this code always coerced two
data points into one sampled data point despite of the fact i and j are sufficiently apart
since data[j].time - data[i].time > timePerSample by definition.

1:15 PM Changeset in webkit [194660] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Use code signed identifier as part of user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=152310
<rdar://problem/13352225>

Reviewed by Brent Fulgham.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::findSecCodeForProcess): Added.
(WebKit::ChildProcess::initializeSandbox): Modified to use an identifier
from the code signature of the app/tool as part of the user directory suffix.

1:13 PM Changeset in webkit [194659] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

Silence -Wtautological-compare
https://bugs.webkit.org/show_bug.cgi?id=152768

Reviewed by Saam Barati.

  • runtime/Options.cpp:

(JSC::Options::setAliasedOption):

1:06 PM Changeset in webkit [194658] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

gi2016-01-06 Carlos Alberto Lopez Perez <clopez@igalia.com>

[GTK] Unreviewed gardening.

  • platform/gtk/TestExpectations: report and mark new SVG failures

after r192138 and new media timeouts after r191948. Mark also the
RTSP test as skip because it was failing, and update the expectation
for a slow inspector test that now timeouts.

1:04 PM Changeset in webkit [194657] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Commit the forgotten change for r194651.

  • public/v3/pages/domain-control-toolbar.js:

(DomainControlToolbar.prototype.setStartTime):

12:53 PM Changeset in webkit [194656] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Tiny cleanup in FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=152793

Reviewed by Zalan Bujtas.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont):

12:49 PM Changeset in webkit [194655] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Make sure that the basic throw-from-operation mode of throwing makes sense in FTL B3
https://bugs.webkit.org/show_bug.cgi?id=152798

Reviewed by Oliver Hunt.

This really just contains one change: we inline emitBranchToOSRExitIfWillCatchException()
into callCheck(), since that was its only caller. This makes it a bit more clear what is
going on.

It turns out that FTL B3 already handled this case properly. I added a test that I believe
illustrates this. Note that although the test uses GetById, which ordinarily throws
exceptions from inside a patchpoint, it uses it in such a way that the exception is thrown
from the operation call for the non-cell bypass path of a GetById(UntypedUse:).

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBranchToOSRExitIfWillCatchException): Deleted.

  • tests/stress/ftl-operation-exception.js: Added.

(foo):

12:31 PM Changeset in webkit [194654] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed Individuals and Vendor Contact formatting.
https://bugs.webkit.org/show_bug.cgi?id=152714

Reviewed by Timothy Hatcher.

  • security-policy.md:
12:31 PM Changeset in webkit [194653] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

The right hand side of main chart appears to be cut off as you zoom out on v3 UI
https://bugs.webkit.org/show_bug.cgi?id=152778

Reviewed by Antti Koivisto.

Add a padding on x-axis after the end time to make the main chart more easily interactive.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._computeHorizontalRenderingMetrics):

  • public/v3/pages/page-with-charts.js:

(PageWithCharts.mainChartOptions): Add a padding of 5px at the end of x-axis.

12:27 PM Changeset in webkit [194652] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

v3 UI should use four sig-figs to label y-axis of the main charts
https://bugs.webkit.org/show_bug.cgi?id=152779

Reviewed by Antti Koivisto.

Increase the number of significant figures used in the main charts to four as done in v2 UI.

  • public/v3/pages/chart-pane.js:

(ChartPane.constructor): Create a formatter with four significant figures.

  • public/v3/pages/page-with-charts.js:

(PageWithCharts.mainChartOptions): Increase the width of y-axis labels.

12:26 PM Changeset in webkit [194651] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

v3 UI's time range slider is harder to use than that of v2 UI
https://bugs.webkit.org/show_bug.cgi?id=152780

Reviewed by Antti Koivisto.

Improved the time range slider by using a cubic mapping to time range and providing a text field
to directly edit the number of days to show.

Now an user can enter the text mode to directly edit the number of days to show by clicking on
the number of days (text field is always there with opacity=0).

  • public/v3/pages/charts-toolbar.js:

(ChartsToolbar): Store the minimum and maximum number of days allowed. Also rename _inputElement
to _slider and added a new type=number text field as _editor.
(ChartsToolbar.prototype.render):
(ChartsToolbar.prototype.setStartTime): Exit the text mode when the number of days is changed by
an URL state transition (i.e. back/forward navigation).
(ChartsToolbar.prototype._setInputElementValue): Added. Updates the values of _slider and _editor.
(ChartsToolbar.prototype._enterTextMode): Added. Hide the elements used by the slider mode and
show the text field.
(ChartsToolbar.prototype._exitTextMode): Added. Does the opposite.
(ChartsToolbar.prototype._sliderValueMayHaveChanged): Renamed from _inputValueMayHaveChanged.
(ChartsToolbar.prototype._editorValueMayHaveChanged): Added. Similar to _sliderValueMayHaveChanged
but also corrects the value of _editor if needed.
(ChartsToolbar.prototype._callNumberOfDaysCallback): Extracted from _inputValueMayHaveChanged.
Also fixed a bug that we didn't update the URL state when the change event was fired without
modifying the effective number of days.
(ChartsToolbar.cssTemplate): Tweaked the style to support the new mode. Also set a fixed width on
the span showing the number of days in the slider mode.

12:06 PM Changeset in webkit [194650] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Remove duplicate check
https://bugs.webkit.org/show_bug.cgi?id=152792

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-06
Reviewed by Timothy Hatcher.

  • inspector/InjectedScriptSource.js:

(InjectedScript.RemoteObject.prototype._generatePreview): Deleted.
This method is only called from one place, and it does an equivalent
check before calling this function. Remove the duplicate check.

11:24 AM Changeset in webkit [194649] by beidson@apple.com
  • 7 edits
    1 add in trunk

Modern IDB: storage/indexeddb/transaction-scope-sequencing.html fails
https://bugs.webkit.org/show_bug.cgi?id=152775

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes, plus changes to another existing test).

Any transaction enqueued after a read-write transaction whose scope overlaps with
that read-write transaction cannot run until after that read-write transaction runs.

Additionally, read-only transactions were actually sometimes running even though their scopes
overlapped with a running read-write transaction.

This patch fixes both of those issues.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

In addition to enabling the previously skipped test, this also completely rewrites transaction-scheduler-4,
which covered incorrect behavior, to cover newly implemented correct behavior.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/resources/transaction-scheduler-4.js: Added.
  • storage/indexeddb/modern/transaction-scheduler-4-expected.txt:
  • storage/indexeddb/modern/transaction-scheduler-4.html:
11:17 AM Changeset in webkit [194648] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Zooming button is broken on v3 UI
https://bugs.webkit.org/show_bug.cgi?id=152777

Reviewed by Chris Dumez.

Bring up the zoom button in z-index so that users can click it.

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.cssTemplate):

11:09 AM Changeset in webkit [194647] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

v3 UI doesn't preserve the time range when charts page is opened from a dashboard
https://bugs.webkit.org/show_bug.cgi?id=152776

Reviewed by Chris Dumez.

Fixed the bug by moving the construction of charts URL from DashboardPage.prototype.open to
DashboardPage.prototype.render and re-rendering the entire page upon an URL state transition.

  • public/v3/pages/charts-page.js:

(ChartsPage.createStateForDashboardItem): Takes the start time for the charts page.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype.updateFromSerializedState): Merged _numberOfDaysDidChange and
_updateChartsDomainFromToolbar into this function since they're not used elsewhere. Also re-render
the entire page when transition between different number of days to show.
(DashboardPage.prototype._numberOfDaysDidChange): Deleted.
(DashboardPage.prototype._updateChartsDomainFromToolbar): Deleted.
(DashboardPage.prototype.render): Construct URL for each charts here.
(DashboardPage.prototype._createChartForCell): Don't construct URL here since this function is
called once when the dashboard page is opened, and not when the time range is changed.

10:49 AM Changeset in webkit [194646] by Brian Burg
  • 11 edits
    4 adds in trunk/Source

Add a WebKit SPI for registering an automation controller with RemoteInspector
https://bugs.webkit.org/show_bug.cgi?id=151576

Reviewed by Dan Bernstein and Joseph Pecoraro.

Source/JavaScriptCore:

Given a RemoteInspector endpoint that is instantiated in UIProcess, there
should be a way to delegate automation-related functionality and policy to
clients of WebKit.

This class adds a RemoteInspector::Client interface that serves a delegate.
This is ultimately delegated via _WKAutomationDelegate, which is an SPI
that allows clients to install an Objective-C delegate for automation.

The setting for whether remote automation is allowed is included in the
listing that RemoteInspector sends out. It is updated when RemoteInspector::Client
is assigned, or when the client signals that its capabilities have changed.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::setRemoteInspectorClient): Added.
(Inspector::RemoteInspector::pushListingsNow):

In the listing, include whether the application supports remote automation.

  • inspector/remote/RemoteInspectorConstants.h: Add a constant.

Source/WebKit2:

_WKAutomationDelegate is a new SPI that allows WKProcessPool clients to decide
policy and implement actions for remote automation.

The SPI's implementation connects the client's delegate to RemoteInspector::Client.
This allows the delegate to handle some commands, such as requestAutomationSession,
that come over XPC from an external test runner but are not associated with a specific
automation target.

  • PlatformMac.cmake:
  • UIProcess/API/APIAutomationClient.h: Added. Boilerplate for WebKit::AutomationClient.

(API::AutomationClient::~AutomationClient):
(API::AutomationClient::allowsRemoteAutomation):
(API::AutomationClient::requestAutomationSession):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _automationDelegate]): Added.
(-[WKProcessPool _setAutomationDelegate:]): Added.
(-[WKProcessPool _automationCapabilitiesDidChange]): Added.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Add delegate.
  • UIProcess/API/Cocoa/_WKAutomationDelegate.h: Added.

This is a new delegate SPI of WKProcessPool; it corresponds to AutomationClient.

  • UIProcess/Cocoa/AutomationClient.h: Added.
  • UIProcess/Cocoa/AutomationClient.mm: Added.

This implements a bridge between RemoteInspector::Client and _WKAutomationDelegate.
Since the delegate can be called from JavaScriptCore, save the delegating
WKProcessPool and pass it as the self parameter to delegate methods.

(WebKit::AutomationClient::AutomationClient):
(WebKit::AutomationClient::~AutomationClient):

This client automatically registers and unregisters as a RemoteInspector::Client.

(WebKit::AutomationClient::remoteAutomationAllowed):
(WebKit::AutomationClient::requestAutomationSession):

Forward requests from RemoteInspector to the automation delegate.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::setAutomationClient): Added.
(WebKit::WebProcessPool::updateAutomationCapabilities): Added, it notifies RemoteInspector.

  • UIProcess/WebProcessPool.h:
  • WebKit2.xcodeproj/project.pbxproj:
10:34 AM Changeset in webkit [194645] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Float with media query positioned incorrectly after window resize.
https://bugs.webkit.org/show_bug.cgi?id=152558

Reviewed by Simon Fraser and David Hyatt.

This patch ensures that when a renderer becomes floated, it is moved
to the right containing block.
When this floated renderer's previous sibling is an anonymous block, it needs
to be reparented so that the float is positioned as if there was no anonymous block at all.

Source/WebCore:

Test: fast/block/float/float-with-anonymous-previous-sibling.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleDidChange):

LayoutTests:

  • fast/block/float/float-with-anonymous-previous-sibling-expected.html: Added.
  • fast/block/float/float-with-anonymous-previous-sibling.html: Added.
10:28 AM Changeset in webkit [194644] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add remaining background style properties to Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=152757

Patch by Devin Rousso <Devin Rousso> on 2016-01-06
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
Added background-blend-mode and background-origin property editors.

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
Unrelated error that occurred when the user was hovering over a selector item
before the tree outline was able to create the selected item.

10:25 AM Changeset in webkit [194643] by keith_miller@apple.com
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Boolean, Number, Map, RegExp, and Set should be subclassable
https://bugs.webkit.org/show_bug.cgi?id=152765

Reviewed by Michael Saboff.

This patch enables subclassing of five more builtins: Boolean, Number, Map, RegExp, and Set.

  • runtime/BooleanConstructor.cpp:

(JSC::constructWithBooleanConstructor):
(JSC::constructBoolean): Deleted.

  • runtime/BooleanConstructor.h:
  • runtime/MapConstructor.cpp:

(JSC::constructMap):

  • runtime/NumberConstructor.cpp:

(JSC::constructWithNumberConstructor):

  • runtime/RegExpConstructor.cpp:

(JSC::getRegExpStructure):
(JSC::constructRegExp):

  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • tests/es6.yaml:
  • tests/stress/class-subclassing-misc.js: Added.

(B):
(N):
(M):
(R):
(S):
(test):

10:23 AM Changeset in webkit [194642] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking webarchive/adopt-attribute-styled-body-webarchive.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=152789

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:10 AM Changeset in webkit [194641] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Fix branchTruncateDoubleToUint32 implementation in macro assembler
https://bugs.webkit.org/show_bug.cgi?id=152782

Patch by Julien Brianceau <jbriance@cisco.com> on 2016-01-06
Reviewed by Benjamin Poulain.

Already covered by LayoutTests/js/dfg-uint32array-overflow-values test.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32):

9:53 AM Changeset in webkit [194640] by Julien Brianceau
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Fix or32 implementation in macro assembler
https://bugs.webkit.org/show_bug.cgi?id=152781

Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or32):

9:50 AM Changeset in webkit [194639] by Julien Brianceau
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Add missing branchAdd32 implementation in macro assembler
https://bugs.webkit.org/show_bug.cgi?id=152785

Reviewed by Michael Saboff.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchAdd32):

8:57 AM Changeset in webkit [194638] by Alan Bujtas
  • 4 edits
    2 adds in trunk

isAnonymousInlineBlock() should exclude any ruby content.
https://bugs.webkit.org/show_bug.cgi?id=152648
<rdar://problem/23872549>

Reviewed by David Hyatt.

isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
and all other anonymous inline-block renderers (including Ruby) should bail out of it.
(see webkit.org/b/143145)

Source/WebCore:

Test: fast/ruby/ruby-inline-margin-collapse-crash.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::isAnonymousInlineBlock):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isAnonymousInlineBlock): Deleted.

LayoutTests:

  • fast/ruby/ruby-inline-margin-collapse-crash-expected.txt: Added.
  • fast/ruby/ruby-inline-margin-collapse-crash.html: Added.
6:34 AM Changeset in webkit [194637] by Gyuyoung Kim
  • 4 edits in trunk

[EFL] Set WebKit2 process output name
https://bugs.webkit.org/show_bug.cgi?id=152773

Reviewed by Benjamin Poulain.

If we add *WebKit* prefix to each WK2 process, it is more clear when checking what process is running.
So this patch sets wk2 process output name.

.:

  • Source/cmake/OptionsEfl.cmake:

Source/WebKit2:

  • PlatformEfl.cmake:
4:17 AM Changeset in webkit [194636] by commit-queue@webkit.org
  • 8 edits in trunk

[ES6] Date.prototype should be a plain object
https://bugs.webkit.org/show_bug.cgi?id=152574

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2016-01-06
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::DatePrototype):

  • runtime/DatePrototype.h:
  • tests/mozilla/mozilla-tests.yaml: Expect errors from old Date.prototype as Date instance tests.

LayoutTests:

Test that the non-generic Date.prototype methods throw when invoked
from the now generic object Date.prototype. Also test that this change
preserves correct instanceof behavior.

  • js/date-proto-generic-invocation-expected.txt:
  • js/script-tests/date-proto-generic-invocation.js:
2:43 AM Changeset in webkit [194635] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Get more of testb3 to pass on ARM64
https://bugs.webkit.org/show_bug.cgi?id=152737

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-06
Reviewed by Geoffrey Garen.

A bunch of minor bugs and missing function to make most of testb3
run on ARM64.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::canEncodePImmOffset):
(JSC::ARM64Assembler::canEncodeSImmOffset):
(JSC::isInt9): Deleted.
(JSC::isUInt12): Deleted.

  • assembler/ARMv7Assembler.h:
  • assembler/AssemblerCommon.h: Added.

(JSC::isInt9):
(JSC::isUInt12):
(JSC::isValidScaledUImm12):
(JSC::isValidSignedImm9):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::absFloat):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnsignedImmediate):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnscaledImmediate):
(JSC::MacroAssemblerARM64::tryLoadSignedWithOffset):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnsignedImmediate<8>):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnsignedImmediate<16>):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnscaledImmediate<8>):
(JSC::MacroAssemblerARM64::loadSignedAddressedByUnscaledImmediate<16>):

  • assembler/X86Assembler.h:
  • b3/B3LowerToAir.cpp:

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

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isValidImmForm):
(JSC::B3::Air::Arg::isValidAddrForm):
(JSC::B3::Air::Arg::isValidForm):

  • b3/air/AirOpcode.opcodes:
2:15 AM Changeset in webkit [194634] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Tools

Python SCM should be able to retrieve untracked files - Add GIT support
https://bugs.webkit.org/show_bug.cgi?id=143135

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.untracked_files): Adding support for git.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(GitTest.setUp):
(GitTest.test_untracked_files): Adding test.

2:13 AM WebKitGTK/Gardening/Calendar edited by mario@webkit.org
(diff)

Jan 5, 2016:

11:17 PM Changeset in webkit [194633] by zandobersek@gmail.com
  • 6 edits in trunk

[CMake] Remove USE_UDIS86 variable
https://bugs.webkit.org/show_bug.cgi?id=152731

Reviewed by Gyuyoung Kim.

.:

Remove the USE_UDIS86 variable in CMake files. The specific build guard
is now enabled by default in Source/WTF/wtf/Platform.h, so the handling
in CMake isn't required anymore. The Udis86-specific files have to be
built unconditionally now, though.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt: Unconditionally build the Udis86-specific files.
10:05 PM Changeset in webkit [194632] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed IndexedDB test gardening

  • platform/mac-wk1/TestExpectations: Update the current known status of a few tests.
10:00 PM Changeset in webkit [194631] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

showRenderTree: add inline-block/inline/block column.
https://bugs.webkit.org/show_bug.cgi?id=152771

Reviewed by Simon Fraser.

The name of the renderer (RenderBlock etc) does not always reflect the associated display type.

No change in functionality.

  • rendering/RenderObject.cpp:

(WebCore::showRenderTreeLegend):
(WebCore::RenderObject::showRenderObject):

8:12 PM Changeset in webkit [194630] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Move ImageBuffer::clip() code into GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=152769

Reviewed by Zalan Bujtas.

For CG, GraphicsContext had clipToNativeImage(PassNativeImagePtr...), which
was ugly and platform-specific.

Fix by moving code from ImageBuffer::clip() for CG and Cairo into the platform-specific
GraphicsContext implementations. This required some minor refactoring of scaleSizeToUserSpace()
in ImageBufferCG.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::clipToImageBuffer): Deleted.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::sizeForDestinationSize):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::clipToImageBuffer):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::clip): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::clipToNativeImage): Deleted.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::sizeForDestinationSize):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::toDataURL):
(WebCore::ImageBuffer::clip): Deleted.

8:12 PM Changeset in webkit [194629] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Remove GraphicsContext::drawJoinedLines()
https://bugs.webkit.org/show_bug.cgi?id=152764

Reviewed by Zalan Bujtas.

GraphicsContext::drawJoinedLines() was only used by iOS form-control drawing
and polluted GraphicsContext with platform-specific types.

Rewrite RenderThemeIOS::paintCheckboxDecorations() to use the CGContextRef directly.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawJoinedLines): Deleted.

  • rendering/RenderThemeIOS.mm:

(WebCore::drawJoinedLines):
(WebCore::RenderThemeIOS::paintCheckboxDecorations):

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

FTL B3 fails cdjs-tests.yaml/red_black_tree_test.js.ftl-eager-no-cjit
https://bugs.webkit.org/show_bug.cgi?id=152770

Reviewed by Mark Lam.

It turns out that liveness didn't know that the return value GPR or FPR is live at the
return. Consequently, we can end up with code that clobbers the return value register after
the move of the return value into that register. This could happen if we start with
something like:

Move 42(%tmp1), %tmp2
Move 50(%tmp1), %tmp3
Move %tmp3, 58(%tmp1)
Move %tmp2, %rax
Ret

Then we might coalesce %tmp2 with %rax:

Move 42(%tmp1), %rax
Move 50(%tmp1), %tmp3
Move %tmp3, 58(%tmp1)
Ret

But now there is no use of %rax after that first instruction, so %rax appears dead at the
other two Move's. So, the register allocator could then do this:

Move 42(%tmp1), %rax
Move 50(%tmp1), %rax
Move %rax, 58(%tmp1)
Ret

And that's clearly wrong. This patch solves this issue by replacing the old Ret instruction
with Ret32, Ret64, RetFloat, and RetDouble. These all take the return value register as an
argument. They also tell Air which parts of the return value register the caller will
observe. That's great for width analysis.

This resolves a test failure in the CDjs red_black_tree_test. This reduces the total number
of JSC test failures from 217 to 191.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::oops):
(JSC::MacroAssembler::ret32):
(JSC::MacroAssembler::ret64):
(JSC::MacroAssembler::retFloat):
(JSC::MacroAssembler::retDouble):
(JSC::MacroAssembler::shouldConsiderBlinding):

  • b3/B3LowerToAir.cpp:

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

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirHandleCalleeSaves.cpp:

(JSC::B3::Air::handleCalleeSaves):

  • b3/air/AirOpcode.opcodes:
  • b3/air/opcode_generator.rb:
7:27 PM Changeset in webkit [194627] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix for an old version of PHP after r194618.

  • public/api/measurement-set.php:
6:36 PM Changeset in webkit [194626] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Implement defersLoading with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=151818

Reviewed by Darin Adler.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::setDefersLoading):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkDataTask::resume):
(WebKit::NetworkDataTask::suspend):

6:08 PM Changeset in webkit [194625] by beidson@apple.com
  • 10 edits in trunk

Modern IDB: storage/indexeddb/structured-clone.html crashes.
https://bugs.webkit.org/show_bug.cgi?id=152763

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

A lot of SerializedScriptValue code incorrectly assumed the global object is a JSDOMGlobalObject,
which doesn't have to be true for native Javascript types like typed arrays.

Fixing that fixes the test.

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putOrAdd): If serializing the script value caused an exception,

clear that exception and return a better IDB specific exception.

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS): Add a ArrayBufferView specialization for toJS that skips the need for a JSDOMGlobalObject.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readArrayBufferView): Call toJS directly instead of getJSValue, which

incorrectly assumes the existence of a JSDOMGlobalObject (vs a JSGlobalObject)

(WebCore::CloneDeserializer::readTerminal): Instead of getJSValue, call JSArrayBuffer::create directly.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/clone-exception-expected.txt:
  • storage/indexeddb/exceptions-expected.txt:
  • storage/indexeddb/objectstore-basics-expected.txt:
  • storage/indexeddb/structured-clone-expected.txt:
5:56 PM Changeset in webkit [194624] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r192432): Keyboard repeat doesn't work anymore for arrow keys/spacebar
https://bugs.webkit.org/show_bug.cgi?id=152767
<rdar://problem/24017380>

Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didHandleKeyEvent:eventWasHandled:]):
Instead of always bailing, call [super _handleKeyUIEvent:] if we aren't
in an editable area, because we won't have done so in _handleKeyUIEvent.

It's important that the event makes it to the root UIResponder (even if
we handled it!) for key repeat to function.

The double-scrolling case is still fixed because we notice the resent
event coming back in to us and bail if we've already seen it.

5:31 PM Changeset in webkit [194623] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.5.8.1/Source

Versioning.

5:28 PM Changeset in webkit [194622] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.8.1

New tag.

5:02 PM Changeset in webkit [194621] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.14.1/Source

Versioning.

4:43 PM Changeset in webkit [194620] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.90

New tag.

4:41 PM Changeset in webkit [194619] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.14.1

New tag.

4:13 PM Changeset in webkit [194618] by rniwa@webkit.org
  • 13 edits
    9 adds in trunk/Websites/perf.webkit.org

A/B testing results should be visualized intuitively on v3 UI
https://bugs.webkit.org/show_bug.cgi?id=152496

Rubber-stamped by Chris Dumez.

Add the "stacking block" view of A/B testing results to the analysis task page on v3 UI.

The patch enhances JSON APIs at /api/analysis-task /api/measurement-set/ to reduce the number of
HTTP requests, and adds two UI components: TestGroupResultsTable and AnalysisResultsViewer both
of which inherits from an abstract superclass: ResultsTable.

ResultsTable provides a tabular presentation of measured values in regular measurement sets and
A/B testing results using groups of bar graphs created by BarGraphGroup. TestGroupResultsTable
inherits from this class to display A/B testing configurations and the averaged results for each
configuration, and AnalysisResultsViewer inherits from it to provide an intuitive visualization
of the outcomes of all A/B testing results associated with a given analysis task.

  • public/api/analysis-tasks.php:

(main): Add the capability to find the analysis task based on its build request.
This allows /v3/#/analysis/task/?buildRequest=<id> to be hyperlinked on buildbot page.

  • public/api/measurement-set.php:

(main): Removed the unused startTime and endTime, and added "analysisTask" to query parameters.
(AnalysisResultsFetcher): Added. Used to fetch measured data associated with every build request
on an analysis task.
(AnalysisResultsFetcher::construct):
(AnalysisResultsFetcher::fetch): Unlike MeasurementSetFetcher, we fetch the list of commits and
list of measurements separately since there will be a lot less builds and commits than measured
data (since we're fetching measured values for all tests and their metrics).
(AnalysisResultsFetcher::fetch_commits): Fetches commits.
(AnalysisResultsFetcher::format_measurement): Like MeasurementSetFetcher::format_measurement but
with config_type and config_metric since we're returning measured data for all metrics and test
configurations.
(AnalysisResultsFetcher::format_map): Similar to MeasurementSetFetcher::format_map.

  • public/v3/components/analysis-results-viewer.js: Added.

(AnalysisResultsViewer): Added.
(AnalysisResultsViewer.prototype.didUpdateResults): This callback is called by AnalysisTaskPage
when A/B testing results become available.
(AnalysisResultsViewer.prototype.render): Overrides ResultsTable's render to highlight the block
representing the currently selected test group.

(AnalysisResultsViewer.prototype.buildRowGroups): Creates a list of rows with "stacking blocks"
that visualizes A/B testing results. The algorithm works as follows: 1. Create all table rows.

  1. Find which row is associated with each set in each test group. 3. Layout "blocks".

(AnalysisResultsViewer.prototype._collectRootSetsInTestGroups): Collects root sets from all data
in the measurement set as well as A/B testing requests (results may contain more repositories
than requested but they aren't interesting for the purpose of visualizing results for the entire
analysis task).

(AnalysisResultsViewer.prototype._buildRowsForPointsAndTestGroups): Create table rows. First,
create table rows for measurement set points that have a matching test group (i.e. either set A
or set B of an A/B testing uses the same root set as a point). Second, insert a new row for each
root set in each test group which didn't find a matching measurement set point. There is a little
subtlety that some A/B testing may specify revisions for a subset of repositories and/or some A/B
testing results may appear as if it goes back in time with respect to other A/B testing results.
For example, consider creating two A/B test groups for WebKit changes and OS changes separately.
There could be no coherent linearization of those two A/B testing in which both WebKit and OS
versions move forward.

(AnalysisResultsViewer.RootSetInTestGroup): Added. Represents a pair (test group, root set) since
a root set could be shared by multiple test groups.
(AnalysisResultsViewer.TestGroupStackingBlock): Added. A stacked block representing a test group.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.addRowIndex): Associates a row number with
either set A or set B.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.createStackingCell): Creates a table cell
for this block.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype.isThin): Returns true if this test group
has failed and this block should look "thin" without any label.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus): Computes the
status for this test group.

(AnalysisResultsViewer.TestGroupStackingGrid): Added. AnalysisResultsViewer uses this class to
layout blocks representing test groups.
(AnalysisResultsViewer.TestGroupStackingGrid.prototype.insertBlockToColumn): Inserts a new block
to layout. We keep all test groups doing the same A/B test next to each other.
(AnalysisResultsViewer.TestGroupStackingGrid.prototype.layout): Layouts each block / test group
in the order they are created.
(AnalysisResultsViewer.TestGroupStackingGrid.prototype._layoutBlock): Places the block in the
left-most column that can accommodate it while avoiding columns of a different thin-ness. A column
is thin if its A/B testing has failed, and not thin otherwise.
(AnalysisResultsViewer.TestGroupStackingGrid.prototype.createCellsForRow): Creates table cells for
a given row. For each column, generate a table cell if we're in the first row and the first block
starts in a later row, a block starts in the current row, or the last block ended in the previous
row and the next block or the last row appears later.

  • public/v3/components/bar-graph-group.js: Added. A component for showing a group of bar graphs.

(BarGraphGroup): Added. Creates a group of bar graphs with the same value range. It's used by
AnalysisResultsViewer and ResultsTable to show bar graphs to compare values.
(SingleBarGraph): A component created and collectively controlled by BarGraphGroup.

  • public/v3/components/results-table.js: Added.

(ResultsTable): An abstract superclass for TestGroupResultsTable and AnalysisResultsViewer.

(ResultsTable.prototype.render): Renders the table. 1. Call "buildRowGroups()" implemented by
a subclass to obtain the list of rows. 2. Compute the list of repositories to show. 3. For each
cell in the table, compute the number of rows to show the same value (for rowspan). 4. Render the
table with an extra list of repositories if exists.

(ResultsTable.prototype._computeRepositoryList): Compute the list of repositories to list
revisions in the table. Omit repositories not present in any row or for which all rows have the
same revision. In the latter case, include it in the extra repositories listed below the table.
This minimizes the amount of redundant information presented to the user.

(ResultsTableRow): Added. Represents a single row in the table. ResultsTable constructs necessary
table cells to tabulate the associated root sets, and shows the associated result using a grouped
bar graph. Additional columns are used by AnalysisResultsViewer to show stacked blocks for A/B
testing groups.

  • public/v3/components/test-group-results-table.js: Added.

(TestGroupResultsTable):
(TestGroupResultsTable.prototype.didUpdateResults):
(TestGroupResultsTable.prototype.setTestGroup):
(TestGroupResultsTable.prototype.heading):
(TestGroupResultsTable.prototype.render):
(TestGroupResultsTable.prototype.buildRowGroups):

  • public/v3/index.html:
  • public/v3/models/analysis-results.js: Added.

(AnalysisResults): Added. Like MeasurementSet, this class represents a set of measured values
associated with a given analysis task.
(AnalysisResults.prototype.find): Returns a measured valued for a given build and metric.
(AnalysisResults.prototype.add): Adds a new measured value. Used by AnalysisResults.fetch.
(AnalysisResults.fetch): Fetches data and creates AnalysisResults for a given analysis task.

  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.startMeasurementId): Added.
(AnalysisTask.prototype.endMeasurementId): Added.
(AnalysisTask.fetchByBuildRequestId): Added.
(AnalysisTask._fetchSubset): Uses DataModelObject.cachedFetch.

  • public/v3/models/build-request.js: Added.

(BuildRequest): Added. Represents a single A/B testing request associated with a test group.

  • public/v3/models/builder.js:

(Build): Added. Represents a build associated with a given A/B testing result.

  • public/v3/models/commit-log.js:

(CommitLog): Made this class inherit from DataModelObject.
(CommitLog.ensureSingleton): Added. Finds the singleton object created for a given revision
in the specified repository. This helps RootSet and other classes compare commits fast.
(CommitLog.prototype.repository): Added.
(CommitLog.fetchBetweenRevisions): Uses CommitLog.ensureSingleton.

  • public/v3/models/data-model.js:

(DataModelObject):
(DataModelObject.namedStaticMap): Added.
(DataModelObject.ensureNamedStaticMap): Renamed from namedStaticMap instead of implicitly
assuming that the non-static version always creates the map.
(DataModelObject.prototype.namedStaticMap): Added.
(DataModelObject.cachedFetch): Extracted from AnalysisTask._fetchSubset so that TestGroup's
fetchByTask could also use it.
(LabeledObject):

  • public/v3/models/measurement-adaptor.js: Added.

(MeasurementAdaptor): Extracted from MeasurementCluster. This class is responsible for
re-formatting the data received via /api/measurement-set JSON API inside the v3 UI.
(MeasurementAdaptor.prototype.extractId): Added.
(MeasurementAdaptor.prototype.adoptToAnalysisResults): Added. Used by AnalysisResults.
(MeasurementAdaptor.aggregateAnalysisResults): Added. Used by TestGroupResultsTable to
aggregate results for each test configuration; e.g. computing the average for set A.
(MeasurementAdaptor.prototype.adoptToSeries): Extracted from MeasurementCluster.addToSeries.
Added rootSet() to each point. This allows AnalysisResultsViewer to compare them against root
sets associated with A/B testing results.
(MeasurementAdaptor.computeConfidenceInterval): Moved from MeasurementCluster.

  • public/v3/models/measurement-cluster.js:

(MeasurementCluster):
(MeasurementCluster.prototype.addToSeries):

  • public/v3/models/repository.js:

(Repository.prototype.hasUrlForRevision): Added.

  • public/v3/models/root-set.js: Added.

(RootSet): Added. Represents a set of commits in measured results.
(MeasurementRootSet): Added. Ditto for results associated with A/B testing.

  • public/v3/models/test-group.js: Added.

(TestGroup): Added. Represents a A/B testing on analysis task.
(TestGroup.prototype.createdAt): Added.
(TestGroup.prototype.buildRequests): Returns the list of build requests associated with this
A/B testing.
(TestGroup.prototype.addBuildRequest): Added. Used by BuildRequest's constructor to associate
itself with this group.
(TestGroup.prototype.didSetResult): Added. Called by BuildRequest.setResult when measured
values are fetched and associated with a build request in this group.

  • public/v3/models/test.js:

(Test):

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

(AnalysisTaskPage):
(AnalysisTaskPage.prototype.updateFromSerializedState): Fetch the analysis task, test groups
associated with it, and all A/B testing results based on the task id or the build request id
specified in the URL.
(AnalysisTaskPage.prototype._didFetchTask): Added. Start fetching the measured data. This is
the data on charts page for which this analysis task was created, not results of A/B testing.
(AnalysisTaskPage.prototype._didFetchMeasurement): Added. Display the fetched data in a table
inside AnalysisResultsViewer.
(AnalysisTaskPage.prototype._didFetchTestGroups): Added. Display the list of A/B test groups
as well as the results of the first A/B testing.
(AnalysisTaskPage.prototype._didFetchAnalysisResults): Added.
(AnalysisTaskPage.prototype._assignTestResultsIfPossible): Added. Once both the analysis task,
A/B test groups as well as their results are fetched, update build requests in each test group
with their results.
(AnalysisTaskPage.prototype.render): Show the list of test groups and highlight the currently
selected one.
(AnalysisTaskPage.prototype._showTestGroup): Added. A callback used by AnalysisResultsViewer
and TestGroupResultsTable to notify this class when the user selects a new test group.
(AnalysisTaskPage.htmlTemplate): Updated the template.
(AnalysisTaskPage.cssTemplate): Ditto.

  • public/v3/pages/charts-page.js:

(ChartsPage.createStateForAnalysisTask): Added. Creates a URL state object for opening a chart
associated with an analysis task.

4:00 PM Changeset in webkit [194617] by Brent Fulgham
  • 3 edits
    2 adds in trunk

Image should not be re-registered if m_form already exists. This leads to an assertion failure.
https://bugs.webkit.org/show_bug.cgi?id=152741
<rdar://problem/24030778>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-01-05
Reviewed by Brent Fulgham.

Source/WebCore:

  • Source/WebCore/html/HTMLImageElement.cpp: Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode& insertionPoint)

LayoutTests:

  • LayoutTests/fast/html/form-registerimg-multiple-crash-expected.txt: Added.
  • LayoutTests/fast/html/form-registerimg-multiple-crash.html: Added.
3:53 PM Changeset in webkit [194616] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix. A symbol was being exported that should not have been.

  • runtime/Structure.h:
3:45 PM Changeset in webkit [194615] by commit-queue@webkit.org
  • 7 edits in trunk

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

This change introduced JSC test failures (Requested by
ryanhaddad on #webkit).

Reverted changeset:

"[ES6] Date.prototype should be a plain object"
https://bugs.webkit.org/show_bug.cgi?id=152574
http://trac.webkit.org/changeset/194603

3:36 PM Changeset in webkit [194614] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

stress/v8-crypto-strict.js.ftl-eager-no-cjit in FTL B3 fails with an assertion in the callframe shuffler
https://bugs.webkit.org/show_bug.cgi?id=152756

Reviewed by Saam Barati.

This fixes a really obvious and dumb tail call bug in FTL B3. I think that tail calls work
for real now. I have no idea why I got any tail call tests to pass before this fix.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):

3:08 PM Changeset in webkit [194613] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Profiling should detect when multiplication overflows but does not create negative zero.
https://bugs.webkit.org/show_bug.cgi?id=132470

Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::or32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or32):

  • New or32 emitter needed by the mul snippet.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::resultProfileForBytecodeOffset):
(JSC::CodeBlock::updateResultProfileForBytecodeOffset): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::ensureResultProfile):
(JSC::CodeBlock::addResultProfile): Deleted.
(JSC::CodeBlock::likelyToTakeDeepestSlowCase): Deleted.

  • Added a m_bytecodeOffsetToResultProfileIndexMap because we can now add result profiles in any order (based on runtime execution), not necessarily in bytecode order at baseline compilation time.
  • bytecode/ValueProfile.cpp:

(WTF::printInternal):

  • bytecode/ValueProfile.h:

(JSC::ResultProfile::didObserveInt52Overflow):
(JSC::ResultProfile::setObservedInt52Overflow):

  • Add new Int52Overflow flags.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • Now with more straightforward mapping of profiling info.
  • dfg/DFGCommon.h:
  • Fixed a typo in a comment.
  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::mayHaveNonIntResult):
(JSC::DFG::Node::hasConstantBuffer):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:

(JSC::DFG::nodeMayOverflowInt52):
(JSC::DFG::nodeCanSpeculateInt52):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • We now have profiling info for whether the result was ever seen to be a non-Int. Use this to make a better prediction.
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):

  • Switch to using CodeBlock::ensureResultProfile(). ResultProfiles can now be created at any time (including the slow path), not just in bytecode order during baseline compilation.
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • Removed the fast path profiling code for NegZero because we'll go to the slow path anyway. Let the slow path do the profiling for us.
  • Added profiling for NegZero and potential Int52 overflows in the fast path that does double math.
  • runtime/CommonSlowPaths.cpp:

(JSC::updateResultProfileForBinaryArithOp):

  • Removed the RETURN_WITH_RESULT_PROFILING macro (2 less macros), and just use the RETURN_WITH_PROFILING macro instead with a call to updateResultProfileForBinaryArithOp(). This makes it clear what we're doing to do profiling in each case, and also allows us to do custom profiling for each opcode if needed. However, so far, we always call updateResultProfileForBinaryArithOp().
2:49 PM Changeset in webkit [194612] by keith_miller@apple.com
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Arrays should be subclassable.
https://bugs.webkit.org/show_bug.cgi?id=152706

Reviewed by Benjamin Poulain.

This patch enables full subclassing of Arrays. We do this by fetching the new.target's prototype property
in the Array constructor and transitioning the old structure to have the new prototype. This method has
two downsides. The first is that we clobber the transition watchpoint on the base structure. The second,
which is currently very significant but should be fixed in a future patch, is that we allocate a new
structure for each new derived class we allocate.

  • runtime/ArrayConstructor.cpp:

(JSC::constructArrayWithSizeQuirk):
(JSC::constructWithArrayConstructor):
(JSC::callArrayConstructor):

  • runtime/ArrayConstructor.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation):
(JSC::JSGlobalObject::arrayStructureForProfileDuringAllocation):
(JSC::constructEmptyArray):
(JSC::constructArray):
(JSC::constructArrayNegativeIndexed):

  • runtime/PrototypeMap.h:
  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::createSubclassStructure):

  • tests/es6.yaml:
  • tests/stress/class-subclassing-array.js: Added.

(A):
(B.prototype.get 1):
(B):
(C):
(test):

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

Analysis task page is slow to load
https://bugs.webkit.org/show_bug.cgi?id=152517

Reviewed by Andreas Kling.

The slowness comes from r194130 which made the JSON API at /api/analysis-tasks to report the start
and the end of each analysis task. This query was adding ~2s to the total JSON generation time.

Cache these values on analysis_task table since they never change once an analysis task is created.

  • init-database.sql: Added columns task_start_run_time and task_end_run_time to analysis_task table.

Also added the missing drop statements at the top.

  • public/api/analysis-tasks.php:

(fetch_and_push_bugs_to_tasks): Don't fetch the latest commit time of the start and the end.
(format_task): Report task_start_run_time and task_end_run_time as startRunTime and endRunTime.

  • public/privileged-api/create-analysis-task.php:

(main): Set start_run_time and end_run_time when creating an analysis task.
(time_for_run): Added.

2:45 PM Changeset in webkit [194610] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.46.89.1/Source

Versioning.

2:41 PM Changeset in webkit [194609] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.89.1

New tag.

2:38 PM Changeset in webkit [194608] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

regress/script-tests/deltablue-varargs.js.ftl-no-cjit-no-put-stack-validate on FTL B3 gets a B3 validation failure
https://bugs.webkit.org/show_bug.cgi?id=152754

Reviewed by Geoffrey Garen and Saam Barati.

It turns out that the FTL was creating orphans. Rather than making the FTL handle them by
itself, I gave B3 the power to eliminate them for you. I also made the dumper print them
since otherwise, you wouldn't know anything about the orphan when looking at a validation
failure or other kind of procedure dump.

  • b3/B3IndexSet.h:

(JSC::B3::IndexSet::add):
(JSC::B3::IndexSet::addAll):
(JSC::B3::IndexSet::remove):

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::dump):
(JSC::B3::Procedure::deleteValue):
(JSC::B3::Procedure::deleteOrphans):
(JSC::B3::Procedure::dominators):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::cfg):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):

2:09 PM Changeset in webkit [194607] by Simon Fraser
  • 14 edits in trunk

Adjust tile coverage with margin tiles, and tidy up the indicator
https://bugs.webkit.org/show_bug.cgi?id=152742

Reviewed by Beth Dakin.

Source/WebCore:

The tile coverage rect was unfeasibly large when margin tiles are present, and
could be bigger than the layer itself, making the indicator look odd.

Fix by improving the logic in TileController::adjustTileCoverageRect(): this
now first extends the visible rect for scrolling, and then constrains it
within the bounds with margin padding. It also unites with the passed-in
coverageRect, ensuring that we don't lose information about overhang for
margin tile coverage.

Second, update the tiled scrolling indicator when the visible rect changes,
and coalesce the map updates on a timer.

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::adjustCoverageRect):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setVisibleRect):
(WebCore::TileController::setTiledScrollingIndicatorPosition):
(WebCore::expandRectWithinRect):
(WebCore::TileController::adjustTileCoverageRect):
(WebCore::TileController::updateTileCoverageMap):
(WebCore::TileController::computeTileCoverageRect): Deleted.

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):
(WebCore::TileCoverageMap::setNeedsUpdate):
(WebCore::TileCoverageMap::updateTimerFired):

  • platform/graphics/ca/TileCoverageMap.h:

LayoutTests:

New baselines. simple-document-with-margin-tiles.html needs to wait for over 0.5s
for the FrameView::enableSpeculativeTilingIfNeeded() timer to fire before
dumping coverage (ouch).

  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • tiled-drawing/simple-document-with-margin-tiles.html:
2:04 PM Changeset in webkit [194606] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Re-landing: Add validation of JSC options to catch typos.
https://bugs.webkit.org/show_bug.cgi?id=152549

Reviewed by Benjamin Poulain.

  1. If a JSC_xxx option is found and xxx is not a valid option, we will now log an error message.
  2. If a --xxx jsc option is specified, but xxx is not a valid option, we will now log an error message.
  3. Added JSC_validateOptions, which if set to true will cause the VM to crash if an invalid option was seen during options parsing.

In this version for re-landing, I removed the change where I disallowed -- options
after the script name. Apparently, we have some test harnesses that do append the
-- options after the script name.

  • jsc.cpp:

(CommandLine::parseArguments):

  • runtime/Options.cpp:

(JSC::Options::initialize):

  • runtime/Options.h:
1:30 PM Changeset in webkit [194605] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

IDB test gardening.

Rubberstamped by Alex Christensen.

  • platform/mac-wk1/TestExpectations: Unskip a passing test, and move a test from "times out" to "fails"
1:25 PM Changeset in webkit [194604] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 should do ArithNegate
https://bugs.webkit.org/show_bug.cgi?id=152745

Reviewed by Geoffrey Garen.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithNegate):

1:19 PM Changeset in webkit [194603] by commit-queue@webkit.org
  • 7 edits in trunk

[ES6] Date.prototype should be a plain object
https://bugs.webkit.org/show_bug.cgi?id=152574

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2016-01-05
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::DatePrototype):

  • runtime/DatePrototype.h:

LayoutTests:

Test that the non-generic Date.prototype methods throw when invoked
from the now generic object Date.prototype. Also test that this change
preserves correct instanceof behavior.

  • js/date-proto-generic-invocation-expected.txt:
  • js/script-tests/date-proto-generic-invocation.js:
1:11 PM Changeset in webkit [194602] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r187929): Web Inspector: Forced Layout and Style Recalculation records do not show up in Layout & Rendering timeline DataGrid
https://bugs.webkit.org/show_bug.cgi?id=152747

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

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
We want top-level Layout records. Not necessarily Layout records that are
at the top of all records. Layout events such as style recalculation
and forced layout may be triggered by script and therefore not be at
the top of all records.

12:56 PM Changeset in webkit [194601] by mark.lam@apple.com
  • 3 edits in trunk/Tools

Rename badly named JSC_timeout env var to JSCTEST_timeout.
https://bugs.webkit.org/show_bug.cgi?id=152748

Reviewed by Geoffrey Garen.

Now that we validate JSC options, the badly named JSC_timeout env var causes the
bots to have a bad time.

  • Scripts/run-javascriptcore-tests:
  • Scripts/run-jsc-stress-tests:
12:56 PM Changeset in webkit [194600] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

12:39 PM Changeset in webkit [194599] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

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

"Causes bot failures" (Requested by mlam on #webkit).

Reverted changeset:

"Add validation of JSC options to catch typos."
https://bugs.webkit.org/show_bug.cgi?id=152549
http://trac.webkit.org/changeset/194590

12:39 PM Changeset in webkit [194598] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 should do In
https://bugs.webkit.org/show_bug.cgi?id=152744

Reviewed by Michael Saboff.

This was easy; I just used the same idiom that we already established for ICs in FTL B3.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):

12:38 PM Changeset in webkit [194597] by mark.lam@apple.com
  • 10 edits in trunk/LayoutTests

Make ftl-polymorphic-xxx tests more polymorphic.
https://bugs.webkit.org/show_bug.cgi?id=152736

Reviewed by Saam Barati.

  1. Change the test driver to alternate inputs between numeric operands and an object with a valueOf() method.
  2. Changed busy work blob to use the operator being tested instead of always using the + operator.
  3. Updated test results.

With these change, the tests each triggers around 49000+ speculation failures when
run as a benchmark on the VM before the fix for https://webkit.org/b/152708
landed (in r194560: <http://trac.webkit.org/r194560>). After the fix, the
number of speculation failures is around 11 or lower.

The benchmark perf with these tests shows about a 10% gain on x86 (32-bit with no
FTL) and about 2x on x86_64 (64-bit with FTL).

  • js/regress/script-tests/ftl-polymorphic-bitand.js:
  • js/regress/script-tests/ftl-polymorphic-bitor.js:
  • js/regress/script-tests/ftl-polymorphic-bitxor.js:
  • js/regress/script-tests/ftl-polymorphic-div.js:
  • js/regress/script-tests/ftl-polymorphic-lshift.js:
  • js/regress/script-tests/ftl-polymorphic-mul.js:
  • js/regress/script-tests/ftl-polymorphic-rshift.js:
  • js/regress/script-tests/ftl-polymorphic-sub.js:
  • js/regress/script-tests/ftl-polymorphic-urshift.js:
12:36 PM Changeset in webkit [194596] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Remove selector filter update calls from Element child parsing callbacks
https://bugs.webkit.org/show_bug.cgi?id=152749

Reviewed by Andreas Kling.

We haven't done style resolve during parsing for a while now. These calls do nothing useful.

  • dom/Element.cpp:

(WebCore::Element::beginParsingChildren):
(WebCore::Element::finishParsingChildren):

11:57 AM Changeset in webkit [194595] by beidson@apple.com
  • 11 edits in trunk

Modern IDB: Error message updates for two failing tests.
https://bugs.webkit.org/show_bug.cgi?id=152735

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by existing tests).

Add error messages for various operations on deleted objects.

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::update):
(WebCore::IDBClient::IDBCursor::advance):
(WebCore::IDBClient::IDBCursor::continueFunction):
(WebCore::IDBClient::IDBCursor::deleteFunction):

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::openCursor):
(WebCore::IDBClient::IDBIndex::doCount):
(WebCore::IDBClient::IDBIndex::openKeyCursor):
(WebCore::IDBClient::IDBIndex::doGet):
(WebCore::IDBClient::IDBIndex::doGetKey):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::openCursor):
(WebCore::IDBClient::IDBObjectStore::get):
(WebCore::IDBClient::IDBObjectStore::putOrAdd):
(WebCore::IDBClient::IDBObjectStore::deleteFunction):
(WebCore::IDBClient::IDBObjectStore::clear):
(WebCore::IDBClient::IDBObjectStore::createIndex):
(WebCore::IDBClient::IDBObjectStore::index):
(WebCore::IDBClient::IDBObjectStore::deleteIndex):
(WebCore::IDBClient::IDBObjectStore::doCount):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::createIndex):

LayoutTests:

  • Update results to accommodate new error messages.
  • openKeyCursor on IDBObjectStore has been removed, so remove that from the results.
  • "undefined" and "null" are invalid keys, so update the keypath-basics test to reflect this.
  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/deleted-objects-expected.txt:
  • storage/indexeddb/keypath-basics-expected.txt:
  • storage/indexeddb/resources/keypath-basics.js:
  • storage/indexeddb/transaction-basics-expected.txt:
11:42 AM Changeset in webkit [194594] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Implement B3 version of FTL::Output::check()
https://bugs.webkit.org/show_bug.cgi?id=152743

Reviewed by Geoffrey Garen.

Turns out this was just like the LLVM version.

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::branch):
(JSC::FTL::Output::check):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::check): Deleted.

11:38 AM Changeset in webkit [194593] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Exiting fullscreen via Mission Control leaves fullcreen window frontmost on desktop
https://bugs.webkit.org/show_bug.cgi?id=152733

Reviewed by Eric Carlson.

Rather than ignore -windowDidExitFullScreen: notifications when fullscreen exit was
not initiated by WebKit (and the -window:startCustomAnimationToEnterFullScreenWithDuration:
method was not called), continue to exit fullscreen normally.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

11:24 AM Changeset in webkit [194592] by achristensen@apple.com
  • 6 edits in trunk/Source/WebKit2

Clean up download code
https://bugs.webkit.org/show_bug.cgi?id=152739

Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::DownloadManager):
(WebKit::DownloadManager::didCreateDownload):
(WebKit::DownloadManager::didDestroyDownload):
(WebKit::DownloadManager::downloadProxyConnection):
(WebKit::DownloadManager::downloadsAuthenticationManager):

  • NetworkProcess/Downloads/DownloadManager.h:

Keep a Client& instead of a Client*.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::downloadManager):

  • NetworkProcess/NetworkSession.h:

m_sessionID is not used. There is no need to store the sessionID if it is only used in the NetworkSession constructor.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSession::defaultSession):
(WebKit::NetworkSession::NetworkSession):

11:12 AM Changeset in webkit [194591] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add support for aliasing JSC Options.
https://bugs.webkit.org/show_bug.cgi?id=152551

Reviewed by Filip Pizlo.

This allows us to use old options names as well. This is for the benefit of
third party tools which may have been built to rely on those old options. The
old option names will be mapped to the current option names in setOption().

For some options, the old option name specifies the inverse boolean value of the
current option name. setOption() will take care of inverting the value before
applying it to the option.

  • jsc.cpp:

(CommandLine::parseArguments):

  • Switch to dumping only overridden options here. Verbose dumping is too much for common usage.
  • runtime/Options.cpp:

(JSC::overrideOptionWithHeuristic):
(JSC::Options::overrideAliasedOptionWithHeuristic):
(JSC::computeNumberOfWorkerThreads):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::invertBoolOptionValue):
(JSC::Options::setAliasedOption):
(JSC::Options::setOption):
(JSC::Options::dumpAllOptions):

  • String.ascii() converts newline characters to '?', and this was messing up the printing of the options. Switched to using String.utf8() instead.

(JSC::Options::dumpOption):

  • runtime/Options.h:
11:03 AM Changeset in webkit [194590] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add validation of JSC options to catch typos.
https://bugs.webkit.org/show_bug.cgi?id=152549

Reviewed by Benjamin Poulain.

  1. If a JSC_xxx option is found and xxx is not a valid option, we will now log an error message.
  2. The jsc app is commonly used as follows:

$ jsc [jsc options] [scripts]


Previously, we'll continue to parse for [jsc options] after [scripts] is seen.
We won't do this anymore. Any --xxx jsc options must precede the [scripts]
arguments.

  1. If a --xxx jsc option is specified, but xxx is not a valid option, we will now log an error message.
  1. Added JSC_validateOptions, which if set to true will cause the VM to crash if an invalid option was seen during options parsing.
  • jsc.cpp:

(CommandLine::parseArguments):

  • runtime/Options.cpp:

(JSC::Options::initialize):

  • runtime/Options.h:
9:58 AM Changeset in webkit [194589] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Avoid NULL deference in Page::updateIsPlayingMedia
https://bugs.webkit.org/show_bug.cgi?id=152732

No new tests, this fixes a rare crash that I am unable to reproduce.

Reviewed by David Kilzer.

  • page/Page.cpp:

(WebCore::Page::updateIsPlayingMedia): frame->document() can return NULL.

9:55 AM Changeset in webkit [194588] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

IndexedDB TestExpectations gardening.

Reviewed by Alex Christensen.

  • Enable 3 flakes that should now not be flakey.
  • Unskip some previously crashing tests, but mark as text failures.
  • Move some tests around with better comments.
  • platform/mac-wk1/TestExpectations:
9:44 AM Changeset in webkit [194587] by beidson@apple.com
  • 8 edits
    4 adds in trunk

Modern IDB: Transactions from a previous page can leak forward to the next.
https://bugs.webkit.org/show_bug.cgi?id=152698

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/transactions-stop-on-navigation.html

This patch is mostly about actually implementing IDBDatabase::stop and IDBTransaction::stop.
Most of the rest of the scattered changes are about cleaning up now-incorrect ASSERTs.

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::close):
(WebCore::IDBClient::IDBDatabase::maybeCloseInServer):
(WebCore::IDBClient::IDBDatabase::stop):
(WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBClient::IDBDatabase::didAbortTransaction):

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::requestCompleted):

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::IDBTransaction):
(WebCore::IDBClient::IDBTransaction::stop):
(WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):

LayoutTests:

  • storage/indexeddb/modern/resources/transactions-stop-on-navigation-2.html: Added.
  • storage/indexeddb/modern/resources/transactions-stop-on-navigation.js: Added.
  • storage/indexeddb/modern/transactions-stop-on-navigation-expected.txt: Added.
  • storage/indexeddb/modern/transactions-stop-on-navigation.html: Added.
9:31 AM Changeset in webkit [194586] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Unreviewed. Attempting to fix the AppleWin build after r194577.

Add the ClipStack.cpp build target alongside the TextureMapperGL.cpp
one, since both include GraphicsContext3D.h and ANGLEWebKitBridge.h
indirectly, the latter requiring specific include flags.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWinCairo.cmake:
9:14 AM Changeset in webkit [194585] by ap@apple.com
  • 4 edits in trunk/Source/ThirdParty

gtest should use the same SDK as other projects
https://bugs.webkit.org/show_bug.cgi?id=152718
rdar://problem/23566856

Reviewed by Alex Christensen.

gtest configuration attempted to use USE_INTERNAL_SDK without ever defining it.

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/General.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:
8:10 AM Changeset in webkit [194584] by Antti Koivisto
  • 16 edits
    2 adds in trunk/Source/WebCore

Move StyleChange enum into a separate file
https://bugs.webkit.org/show_bug.cgi?id=152730

Reviewed by Andreas Kling.

Fewer whole-world rebuilds.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/Element.cpp:
  • dom/Element.h:
  • style/StyleChange.h: Added.
  • style/StyleResolveTree.cpp:

(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::determineChange): Deleted.

  • style/StyleResolveTree.h:
5:47 AM Changeset in webkit [194583] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html
as failing (before https://bugs.webkit.org/show_bug.cgi?id=151984 it was timing out)

Unreviewed.

4:44 AM Changeset in webkit [194582] by youenn.fablet@crf.canon.fr
  • 4 edits
    105 adds
    1 delete in trunk/LayoutTests

Activate service-workers import
https://bugs.webkit.org/show_bug.cgi?id=152686

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Importing service-workers tests, as some resource files are used by other test files.
These tests are skipped as WebKit does not support service worker.
Revision used is 5932fd48d519a83b4cca6ed69778547a4fdfc5ae as for all other WPT tests.

  • resources/ImportExpectations: Activating import of service worker tests.
  • web-platform-tests/service-workers/cache-storage/common.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/resources/blank.html: Added.
  • web-platform-tests/service-workers/cache-storage/resources/common-worker.js: Added.

(self.onmessage):

  • web-platform-tests/service-workers/cache-storage/resources/fetch-status.py: Added.

(main):

  • web-platform-tests/service-workers/cache-storage/resources/iframe.html: Added.
  • web-platform-tests/service-workers/cache-storage/resources/simple.txt: Added.
  • web-platform-tests/service-workers/cache-storage/resources/test-helpers.js: Added.

(create_temporary_cache):
(cache_test):

  • web-platform-tests/service-workers/cache-storage/resources/testharness-helpers.js: Added.

(assert_promise_rejects):
(assert_response_equals):
(assert_response_array_equivalent):
(assert_response_array_equals):
(assert_response_in_array):

  • web-platform-tests/service-workers/cache-storage/resources/w3c-import.log: Added.
  • web-platform-tests/service-workers/cache-storage/script-tests/cache-add.js: Added.

(cache_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-delete.js: Added.

(new_test_request):
(new_test_response):
(cache_test):
(prepopulated_cache_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-match.js: Added.

(response.new.Response):
(return.cache.matchAll.string_appeared_here.then):
(return.cache.match.string_appeared_here.then):
(return.cache.matchAll.entries.a.request.url.then):
(return.cache.match.entries.a.request.url.then):
(return.cache.matchAll.entries.a.request.then):
(return.cache.match.entries.a.request.then):
(return.cache.matchAll.new.Request.entries.a.request.url.then):
(return.cache.match.new.Request.entries.a.request.url.then):
(then):
(return.cache.matchAll.entries.cat.request.url.string_appeared_here.then):
(return.cache.match.entries.cat.request.url.string_appeared_here.then):
(cache_test):
(return.cache.match.request.then):
(prepopulated_cache_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-put.js: Added.

(cache_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-storage-keys.js: Added.

(promise_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-storage-match.js: Added.

(create_unique_transaction):
(cache_test):
(promise_test):

  • web-platform-tests/service-workers/cache-storage/script-tests/cache-storage.js: Added.

(promise_test):
(promise_test.):

  • web-platform-tests/service-workers/cache-storage/script-tests/w3c-import.log: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-delete.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-put.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-keys.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/serviceworker/w3c-import.log: Added.
  • web-platform-tests/service-workers/cache-storage/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/w3c-import.log.
  • web-platform-tests/service-workers/cache-storage/window/cache-add.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-delete.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-put.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-storage-keys.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-storage-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/cache-storage.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/sandboxed-iframes.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/window/w3c-import.log: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-add.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-delete.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-put.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-storage-keys.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-storage-match.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/cache-storage.https.html: Added.
  • web-platform-tests/service-workers/cache-storage/worker/w3c-import.log: Added.
  • web-platform-tests/service-workers/service-workers/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/w3c-import.log.
  • web-platform-tests/service-workers/specgen.json: Added.
  • web-platform-tests/service-workers/stub-3.1-service-worker-obj.html: Added.
  • web-platform-tests/service-workers/stub-3.1.1-service-worker-scope.html: Added.
  • web-platform-tests/service-workers/stub-3.1.2-service-worker-url.html: Added.
  • web-platform-tests/service-workers/stub-3.1.3-service-worker-state.html: Added.
  • web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change.html: Added.
  • web-platform-tests/service-workers/stub-3.2-navigator-service-worker.html: Added.
  • web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing.html: Added.
  • web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange.html: Added.
  • web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage.html: Added.
  • web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror.html: Added.
  • web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting.html: Added.
  • web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active.html: Added.
  • web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller.html: Added.
  • web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready.html: Added.
  • web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll.html: Added.
  • web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register.html: Added.
  • web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister.html: Added.
  • web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound.html: Added.
  • web-platform-tests/service-workers/stub-4.1-service-worker-global-scope.html: Added.
  • web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches.html: Added.
  • web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients.html: Added.
  • web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope.html: Added.
  • web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch.html: Added.
  • web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update.html: Added.
  • web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister.html: Added.
  • web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage.html: Added.
  • web-platform-tests/service-workers/stub-4.2-client.html: Added.
  • web-platform-tests/service-workers/stub-4.3-service-worker-clients.html: Added.
  • web-platform-tests/service-workers/stub-4.3.1-get-serviced-method.html: Added.
  • web-platform-tests/service-workers/stub-4.3.2-reloadall-method.html: Added.
  • web-platform-tests/service-workers/stub-4.4-request-objects.html: Added.
  • web-platform-tests/service-workers/stub-4.5-response-objects.html: Added.
  • web-platform-tests/service-workers/stub-4.5.2-response.html: Added.
  • web-platform-tests/service-workers/stub-4.5.4-opaque-response.html: Added.
  • web-platform-tests/service-workers/stub-4.6-cache-objects.html: Added.
  • web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes.html: Added.
  • web-platform-tests/service-workers/stub-4.6.2-cache.html: Added.
  • web-platform-tests/service-workers/stub-4.6.3-cache-storage.html: Added.
  • web-platform-tests/service-workers/stub-4.7.1-install-phase-event.html: Added.
  • web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method.html: Added.
  • web-platform-tests/service-workers/stub-4.7.2-install-event.html: Added.
  • web-platform-tests/service-workers/stub-4.7.2.1-install-event-section.html: Added.
  • web-platform-tests/service-workers/stub-4.7.2.2-replace-method.html: Added.
  • web-platform-tests/service-workers/stub-4.7.3-activate-event.html: Added.
  • web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section.html: Added.
  • web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method.html: Added.
  • web-platform-tests/service-workers/stub-4.7.4.3-default-method.html: Added.
  • web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute.html: Added.
  • web-platform-tests/service-workers/stub-5.1-origin-relativity.html: Added.
  • web-platform-tests/service-workers/stub-5.2-cross-origin-resources.html: Added.
  • web-platform-tests/service-workers/tools/blink-import.py: Added.

(get_extra_files):
(resources_path):
(python_to_php):
(testharness_helpers):
(service_worker_path):
(server_names):
(source_paths):
(do_subs):
(get_head):
(get_changes):
(copy):
(copy_local_files):
(copy_extra_files):
(sub_changed_filenames):
(is_top_level_test):
(add_suffix):
(main):

  • web-platform-tests/service-workers/tools/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/w3c-import.log.
  • web-platform-tests/service-workers/w3c-import.log: Added.

LayoutTests:

3:41 AM Changeset in webkit [194581] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[WinCairo] Download should use header values from provided request object.
https://bugs.webkit.org/show_bug.cgi?id=152694

Reviewed by Alex Christensen.

Copy header values from request object parameter.

  • WebDownloadCurl.cpp:

(WebDownload::initWithRequest):

1:28 AM Changeset in webkit [194580] by youenn.fablet@crf.canon.fr
  • 118 edits
    1 copy
    15 moves
    25 adds
    9 deletes in trunk/LayoutTests

Update web-platform-tests test suite
https://bugs.webkit.org/show_bug.cgi?id=151984

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Bumping WPT test revision from dd553279c3 to 5932fd48d519a83b4cca6ed69778547a4fdfc5ae.
New revision includes test improvements, test renaming to ensure WebKit test expectations do not clash and XHR test clean-up.

  • resources/ImportExpectations: Updated to not include new tests. Improved ordering.
  • resources/TestRepositories: Updated revision.
  • resources/web-platform-tests-modules.json: Updated revision.
  • web-platform-tests/README.md:
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials-expected.txt:
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-worker-simple.htm:
  • web-platform-tests/XMLHttpRequest/resources/empty-div-utf8-html.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/img-utf8-html.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/send-content-type-charset-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-content-type-charset.htm:
  • web-platform-tests/XMLHttpRequest/send-content-type-string-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-content-type-string.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-document.htm:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-aborted.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-abortedonmain.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-overrides.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-overridesexpires.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-simple.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-synconmain.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-twice.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-aborted.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-overrides.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-overridesexpires.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-simple.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-synconworker.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-twice.html:
  • web-platform-tests/dom/common.js:

(myExtractContents):
(myInsertNode):

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/lists/DOMTokenList-stringifier-expected.txt:
  • web-platform-tests/dom/lists/DOMTokenList-stringifier.html:
  • web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:

(test_getElementsByTagName):

  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xhtml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/DocumentType-literal-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/DocumentType-literal-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-literal.xhtml.
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.xhtml.
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-nochild.xhtml.
  • web-platform-tests/dom/nodes/Element-children-expected.txt:
  • web-platform-tests/dom/nodes/Element-children.html:
  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild.xhtml.
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess-iframe-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess-iframe.xml: Added.
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html: Added.
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-nextElementSibling.xhtml.
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-previousElementSibling.xhtml.
  • web-platform-tests/dom/nodes/MutationObserver-childList-expected.txt:
  • web-platform-tests/dom/nodes/MutationObserver-childList.html:
  • web-platform-tests/dom/nodes/MutationObserver-document-expected.txt:
  • web-platform-tests/dom/nodes/MutationObserver-document.html:
  • web-platform-tests/dom/nodes/Node-contains-xhtml-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-contains-xhtml.xhtml: Removed.
  • web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:
  • web-platform-tests/dom/nodes/Node-isEqualNode-iframe1-expected.txt: Added.
  • web-platform-tests/dom/nodes/Node-isEqualNode-iframe1.xml: Added.
  • web-platform-tests/dom/nodes/Node-isEqualNode-iframe2-expected.txt: Added.
  • web-platform-tests/dom/nodes/Node-isEqualNode-iframe2.xml: Added.
  • web-platform-tests/dom/nodes/Node-isEqualNode.xhtml:
  • web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt:
  • web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xhtml-expected.txt.
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xhtml.xht.
  • web-platform-tests/dom/nodes/attributes-expected.txt:
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/getElementsByClassName-10.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-11.xml:
  • web-platform-tests/dom/nodes/resources/ParentNode-querySelector-All-content.xht: Removed.
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-deleteContents-expected.txt:
  • web-platform-tests/dom/ranges/Range-deleteContents.html:
  • web-platform-tests/dom/ranges/Range-extractContents-expected.txt:
  • web-platform-tests/dom/ranges/Range-insertNode-expected.txt:
  • web-platform-tests/dom/ranges/Range-intersectsNode-expected.txt:
  • web-platform-tests/dom/ranges/Range-intersectsNode.html:
  • web-platform-tests/dom/ranges/Range-mutations.html:
  • web-platform-tests/dom/ranges/Range-surroundContents-expected.txt:
  • web-platform-tests/dom/ranges/Range-surroundContents.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-case-xhtml-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-case-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-case.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-id-xhtml-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-id-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-id.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-null-undef-xhtml-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-null-undef-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-null-undef.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param-xhtml-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param-xhtml.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param.xhtml.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-06-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-06.html:
  • web-platform-tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-expected.txt:
  • web-platform-tests/html/dom/elements-embedded.js:
  • web-platform-tests/html/dom/elements-text.js:
  • web-platform-tests/html/dom/elements/global-attributes/dir_auto-N-EN-ref-expected.html: Added.
  • web-platform-tests/html/dom/elements/global-attributes/dir_auto-N-EN-ref.html: Added.
  • web-platform-tests/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs-ref-expected.html: Added.
  • web-platform-tests/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs-ref.html: Added.
  • web-platform-tests/html/dom/elements/global-attributes/w3c-import.log:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/dom/reflection.js:

(ReflectionTests.doReflects):

  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resources/delayed-broken-video.py: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resources/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/location-of-the-media-resource/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/synchronising-multiple-media-elements/media-controllers/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing.html:
  • web-platform-tests/html/semantics/forms/constraints/support/validator.js:

(validator.set_conditions):
(validator.set_dirty): Deleted.
(validator.pre_check): Deleted.

  • web-platform-tests/html/semantics/forms/textfieldselection/selection.html:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete.html:
  • web-platform-tests/html/semantics/forms/the-label-element/label-attributes-expected.txt:
  • web-platform-tests/html/semantics/forms/the-label-element/label-attributes.html:
  • web-platform-tests/html/semantics/forms/the-label-element/labelable-elements-expected.txt:
  • web-platform-tests/html/semantics/forms/the-label-element/labelable-elements.html:
  • web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse-expected.txt:
  • web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse.html:
  • web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-frameset.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/disabled-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/disabled.html:
  • web-platform-tests/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/cellIndex-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/cellIndex.html:
  • web-platform-tests/html/semantics/tabular-data/html-table-section-element.js: Added.

(testRowsAttribute):

  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow.html:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/insertRow-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/insertRow.html:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell.html:
  • web-platform-tests/html/semantics/tabular-data/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/w3c-import.log.
  • web-platform-tests/lint:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/media/2048x1360-random.jpg: Added.
  • web-platform-tests/media/w3c-import.log: Added.

LayoutTests:

12:12 AM Changeset in webkit [194579] by Carlos Garcia Campos
  • 13 edits
    3 adds in trunk

[GTK] Allow to save and restore session
https://bugs.webkit.org/show_bug.cgi?id=115600

Reviewed by Michael Catanzaro.

Source/WebKit2:

Add new API to get and resore the web view session state.

  • PlatformGTK.cmake: Add new files to compilation.
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_get_session_state): Create a new
WebKitWebViewSessionState representing the current session state.
(webkit_web_view_restore_session_state): Restore the web view
session state from the given WebKitWebViewSessionState.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewSessionState.cpp: Added.

(_WebKitWebViewSessionState::_WebKitWebViewSessionState):
(toExternalURLsPolicy):
(toWebCoreExternalURLsPolicy):
(toHTMLBodyElementType):
(toHTTPBodyElementType):
(encodeHTTPBody):
(encodeFrameState):
(encodePageState):
(encodeBackForwardListItemState):
(encodeBackForwardListState):
(encodeSessionState):
(decodeHTTPBody):
(decodeFrameState):
(decodeBackForwardListItemState):
(decodeSessionState):
(webkitWebViewSessionStateCreate):
(webkitWebViewSessionStateGetSessionState):
(webkit_web_view_session_state_new): Create a
WebKitWebViewSessionState from serialized data.
(webkit_web_view_session_state_ref):
(webkit_web_view_session_state_unref):
(webkit_web_view_session_state_serialize): Serialize the WebKitWebViewSessionState.

  • UIProcess/API/gtk/WebKitWebViewSessionState.h: Added.
  • UIProcess/API/gtk/WebKitWebViewSessionStatePrivate.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_web_view_session_state_get_type.
  • UIProcess/API/gtk/webkit2.h: Include WebKitWebViewSessionState.h.

Source/WTF:

Add GVariantIter specialization of GUniquePtr.

  • wtf/glib/GTypedefs.h:
  • wtf/glib/GUniquePtr.h:

Tools:

Add test case to check the new session API.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestBackForwardList.cpp:

(testWebKitWebViewSessionState):
(testWebKitWebViewSessionStateWithFormData):
(beforeAll):

Jan 4, 2016:

11:46 PM Changeset in webkit [194578] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[PerformanceTiming] Don't expose the restrictedKeyMap() HashMap
https://bugs.webkit.org/show_bug.cgi?id=147366

Reviewed by Sam Weinig.

Instead of the callers looking up in the HashMap that's returned by restrictedKeyMap(),
keep the HashMap local in the static restrictedMarkFunction(). This function accepts
a String reference and performs the lookup, returning the pointer to a PerformanceTiming
method that corresponds to the passed-in mark or returns nullptr otherwise.

The HashMap is now wrapped in a NeverDestroyed object and is populated when the first
mark function is looked for.

  • page/PerformanceUserTiming.cpp:

(WebCore::UserTiming::mark):
(WebCore::UserTiming::findExistingMarkStartTime):

11:41 PM Changeset in webkit [194577] by zandobersek@gmail.com
  • 6 edits
    2 adds in trunk/Source/WebCore

[TextureMapper] Move ClipStack into its own file
https://bugs.webkit.org/show_bug.cgi?id=152661

Reviewed by Michael Catanzaro.

Move TextureMapperGL::ClipStack into its own file and clean it up a bit.
Move ClipState under the ClipStack class, and simply name it State.

Move the ClipState methods into a more sensible order. Remove the inline
specifiers, these aren't really needed for the methods defined in the header.
apply() and applyIfNeeded() now accept a reference to the GraphicsContext3D
object, not a pointer.

Turn YAxisMode enum into an enum class, update the uses to properly specify
the scope of the enum value.

Reorder the ClipStack member variables into a more efficient order.

No new tests -- no change in behavior.

  • CMakeLists.txt:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::clearIfNeeded):
(WebCore::BitmapTextureGL::bindAsSurface):

  • platform/graphics/texmap/BitmapTextureGL.h:

(WebCore::BitmapTextureGL::clipStack):

  • platform/graphics/texmap/ClipStack.cpp: Added.

(WebCore::ClipStack::push):
(WebCore::ClipStack::pop):
(WebCore::ClipStack::reset):
(WebCore::ClipStack::intersect):
(WebCore::ClipStack::setStencilIndex):
(WebCore::ClipStack::apply):
(WebCore::ClipStack::applyIfNeeded):

  • platform/graphics/texmap/ClipStack.h: Added.

(WebCore::ClipStack::State::State):
(WebCore::ClipStack::current):
(WebCore::ClipStack::getStencilIndex):
(WebCore::ClipStack::isCurrentScissorBoxEmpty):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::clipStack):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::TextureMapperGL::bindDefaultSurface):
(WebCore::TextureMapperGL::beginScissorClip):
(WebCore::TextureMapperGL::beginClip):
(WebCore::TextureMapperGL::endClip):
(WebCore::TextureMapperGL::ClipStack::reset): Deleted.
(WebCore::TextureMapperGL::ClipStack::intersect): Deleted.
(WebCore::TextureMapperGL::ClipStack::setStencilIndex): Deleted.
(WebCore::TextureMapperGL::ClipStack::push): Deleted.
(WebCore::TextureMapperGL::ClipStack::pop): Deleted.
(WebCore::TextureMapperGL::ClipStack::apply): Deleted.
(WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Deleted.

  • platform/graphics/texmap/TextureMapperGL.h:

(WebCore::TextureMapperGL::ClipState::ClipState): Deleted.
(WebCore::TextureMapperGL::ClipStack::ClipStack): Deleted.
(WebCore::TextureMapperGL::ClipStack::current): Deleted.
(WebCore::TextureMapperGL::ClipStack::getStencilIndex): Deleted.
(WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Deleted.

11:37 PM Changeset in webkit [194576] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Shave off a TransformationMatrix copy if RenderLayer's transparencyClipBox()
https://bugs.webkit.org/show_bug.cgi?id=152119

Reviewed by Simon Fraser.

  • rendering/RenderLayer.cpp:

(WebCore::transparencyClipBox): Multiply the transformation matrix returned by
layer.transform() directly into the transform object, instead of first
multiplying them and then copying the result back into the transform object.

10:41 PM Changeset in webkit [194575] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge patch for rdar://problem/23893894.

10:35 PM Changeset in webkit [194574] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines view doesn't remember how I like to sort things
https://bugs.webkit.org/show_bug.cgi?id=152626

Patch by Devin Rousso <Devin Rousso> on 2016-01-04
Reviewed by Joseph Pecoraro.

Currently, all instances of DataGrid have their sort column reset with each
open/close of Web Inspector. This doesn't really make sense seeing as we save
the user's settings in many other cases, so the sort method (which column)
should be saved between inspector sessions.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype._rebuildTable):

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView):

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.set sortColumnIdentifier):
Moved the logic for classLists and events to _updateSortedColumn.

(WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting):
Instead of just setting the original sort method when instantiating the DataGrid,
a WebInspector.Setting object is now able to be passed in via this setter
to give the DataGrid access to the stored sort method value.

(WebInspector.DataGrid.prototype._updateSortedColumn):
Updates the classLists and fires events. If a sort column setting object
exists, update its value.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView):

10:32 PM Changeset in webkit [194573] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add debounce to URL inputs in the Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=152655

Patch by Devin Rousso <Devin Rousso> on 2016-01-04
Reviewed by Joseph Pecoraro.

Adding a debounce to url() based Visual sidebar editors will prevent needless
errors from being thrown as the user types, since incomplete URL's will not
be able to be located.

  • UserInterface/Base/Utilities.js:

(Function.prototype.debounce):
Prevents the given function from executing more than once in the specified amount of time.

  • UserInterface/Views/VisualStyleBackgroundPicker.js:

(WebInspector.VisualStyleBackgroundPicker):

  • UserInterface/Views/VisualStyleURLInput.js:

(WebInspector.VisualStyleURLInput):

9:37 PM WebKitGTK/Gardening/Calendar edited by ChangSeok Oh
(diff)
9:10 PM Changeset in webkit [194572] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix debug context menu string and reload without cache tooltip string
https://bugs.webkit.org/show_bug.cgi?id=152725

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-04
Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

6:33 PM Changeset in webkit [194571] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.16.1
https://bugs.webkit.org/show_bug.cgi?id=152688

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
6:25 PM Changeset in webkit [194570] by achristensen@apple.com
  • 7 edits in trunk/Source/WebKit2

Use unique_ptr for NetworkDataTasks and references for NetworkSessionTaskClients
https://bugs.webkit.org/show_bug.cgi?id=152724

Reviewed by Andy Estes.

There is no reason to have a NetworkSessionTaskClient* instead of a
NetworkSessionTaskClient& just so we can clear it in the NetworkLoad destructor,
which immediately calls ~NetworkDataTask.
Also, NetworkDataTasks are owned only by the NetworkLoad, so there's no reason to refcount them.

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient):
(WebKit::NetworkDataTask::client):
(WebKit::NetworkDataTask::downloadID):
(WebKit::NetworkDataTask::setDownloadID):
(WebKit::NetworkDataTask::clearClient): Deleted.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::createDataTaskWithRequest):
(WebKit::NetworkSession::dataTaskForIdentifier):
(WebKit::NetworkDataTask::NetworkDataTask):

6:16 PM Changeset in webkit [194569] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

error running layout tests on iOS simulator on latest build
https://bugs.webkit.org/show_bug.cgi?id=152719
<rdar://problem/24009549>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator.wait_until_device_is_booted): Ensure that simulator device is in booted state

before running simctl spawn command.

5:48 PM Changeset in webkit [194568] by commit-queue@webkit.org
  • 11 edits
    1 copy
    1 add in trunk

Web Inspector: add context menu items to switch CSS color property value syntax between RGB, HSL, etc
https://bugs.webkit.org/show_bug.cgi?id=151918

Patch by Devin Rousso <Devin Rousso> on 2016-01-04
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Created a ColorSwatch class to hold all functionality for color swatches,
allowing all context menu and popover events to be centralized.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Models/Color.js:

Changed all 'var' to 'let' and 'nickname' to 'keyword' as per the spec.
Mostly mechanical changes.

(WebInspector.Color.prototype.isKeyword):
Looks at the RGB values of each keyword to see if the current color
matches any of them.

(WebInspector.Color.prototype.canBeSerializedAsShortHEX):
Fixed to account for alpha values, since HEXAlpha is now supported.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch): Deleted.
(@media (-webkit-max-device-pixel-ratio: 1)): Deleted.
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch > span): Deleted.
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:hover > span): Deleted.
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:active > span): Deleted.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update): Deleted.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror): Deleted.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked): Deleted.

  • UserInterface/Views/ColorSwatch.css: Copied from Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css.

(.color-swatch):
(@media (-webkit-max-device-pixel-ratio: 1)):
(.color-swatch > span):
(.color-swatch:hover > span):
(.color-swatch:active > span):

  • UserInterface/Views/ColorSwatch.js: Added.

(WebInspector.ColorSwatch):
(WebInspector.ColorSwatch.prototype.get element):
(WebInspector.ColorSwatch.prototype.set color):
(WebInspector.ColorSwatch.prototype.get color):
(WebInspector.ColorSwatch.prototype._colorSwatchClicked):
(WebInspector.ColorSwatch.prototype._colorPickerColorDidChange):
(WebInspector.ColorSwatch.prototype._handleContextMenuEvent):
(WebInspector.ColorSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
(WebInspector.ColorSwatch.prototype._getNextValidHEXFormat):
Loops through the list of HEX formats to find the first format that is valid
for the current color in the list after the current format.

(WebInspector.ColorSwatch.prototype._updateSwatch):

  • UserInterface/Views/VisualStyleColorPicker.css:

(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):

  • UserInterface/Views/VisualStyleColorPicker.js:

(WebInspector.VisualStyleColorPicker):
(WebInspector.VisualStyleColorPicker.prototype._colorSwatchColorChanged):
(WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
(WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked): Deleted.
(WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange): Deleted.

LayoutTests:

  • inspector/model/color-expected.html:
  • inspector/model/color.html:

Changed "nickname" to "keyword".

4:50 PM Changeset in webkit [194567] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Mark last parameter of webkitGetUserMedia as non-optional to match updated IDL
https://bugs.webkit.org/show_bug.cgi?id=152702

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-04
Reviewed by Brian Burg.

  • UserInterface/Models/NativeFunctionParameters.js:

New IDL, and tests, show that the error callback is non-optional.

4:42 PM Changeset in webkit [194566] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

TextBreakIterator uses an internal implementation detail of NSLocale
https://bugs.webkit.org/show_bug.cgi?id=152715
<rdar://problem/23775121>

Reviewed by Tim Horton.

Instead of directly querying AppleLanguages, we should use [NSLocale preferredLanguages].

No new tests because there is no behavior change.

  • platform/text/mac/TextBreakIteratorInternalICUMac.mm:

(WebCore::topLanguagePreference):

4:35 PM Changeset in webkit [194565] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Turn off Internal Function inlining in the DFG for super calls.
https://bugs.webkit.org/show_bug.cgi?id=152695

Reviewed by Geoffrey Garen.

Currently, we inline several InternalFunctions into an alloctation with a
fixed structure in the DFG. This optimization is not valid when the
InternalFunction is called via a super call.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

4:22 PM Changeset in webkit [194564] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

JSCustomXPathNSResolver::lookupNamespaceURI Console Message should render with a column number
https://bugs.webkit.org/show_bug.cgi?id=114312

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-04
Reviewed by Brent Fulgham.

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Deleted.
This now behaves as expected.

4:06 PM Changeset in webkit [194563] by beidson@apple.com
  • 5 edits
    3 adds in trunk

Modern IDB: Memory indexes aren't deleted when their owning memory object stores are deleted.
https://bugs.webkit.org/show_bug.cgi?id=152717

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/memory-index-not-deleted-with-objectstore.html

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::deleteAllIndexes):

  • Modules/indexeddb/server/MemoryObjectStore.h:

LayoutTests:

  • storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-expected.txt: Added.
  • storage/indexeddb/modern/memory-index-not-deleted-with-objectstore.html: Added.
  • storage/indexeddb/modern/resources/memory-index-not-deleted-with-objectstore.js: Added.
4:06 PM Changeset in webkit [194562] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit2

Progress towards implementing downloads with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152716

Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadID.h:

(WebKit::DownloadID::DownloadID):
(WebKit::DownloadID::operator==):
(WebKit::DownloadID::operator!=):
(WebKit::DownloadID::downloadID):

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/DownloadManager.h:

(WebKit::DownloadManager::download):
(WebKit::DownloadManager::isDownloading):

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):
(WebKit::Download::platformInvalidate):
(WebKit::Download::platformDidFinish):
(WebKit::Download::start): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

When using NSURLSession, a data task is converted to a download task after the connection has already
been established, the headers have been received, and WebCore looks at the response and decides that
this connection should become a download. We call the didReceiveResponse to match the behavior of
NSURLDownload, but this could be cleaned up later to match what is actually happening. We also do not
need to tell the download to start because it has already started.

(WebKit::NetworkSession::dataTaskForIdentifier):
(WebKit::NetworkSession::addDownloadID):
(WebKit::NetworkSession::downloadID):
(WebKit::NetworkSession::takeDownloadID):
(WebKit::NetworkDataTask::NetworkDataTask):

NSURLSessionDownloadTask taskIdentifiers are unique to that NSURLSession, but we have one global DownloadManager
in the NetworkProcess. We need to have each NetworkSession keep a map of taskIdentifiers to global DownloadID.

3:08 PM Changeset in webkit [194561] by fpizlo@apple.com
  • 2 edits
    10 adds in trunk/Source/JavaScriptCore

FTL B3 should do binary snippets
https://bugs.webkit.org/show_bug.cgi?id=152668

Reviewed by Mark Lam.

This finishes all of the rest of the snippets.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileBitOr):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitXor):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitRShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitLShift):
(JSC::FTL::DFG::LowerDFGToLLVM::compileBitURShift):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitRightShiftSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):

  • tests/stress/object-bit-or.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-bit-xor.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-lshift.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-rshift.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-urshift.js: Added.

(foo):
(things.valueOf):

  • tests/stress/untyped-bit-or.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-bit-xor.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-lshift.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-rshift.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-urshift.js: Added.

(foo):
(valueOf):

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

isUntypedSpeculationForArithmetic is wrong.
https://bugs.webkit.org/show_bug.cgi?id=152708

Reviewed by Filip Pizlo.

The isUntypedSpeculation...() checks should return true is we ever see
non-numeric types, regardless of whether numeric types are seen or not.
Previously, they only return true if we only see non-numeric types, and false if
we ever see numeric types.

This patch is perf neutral on both x86_64 and x86.

  • bytecode/SpeculatedType.h:

(JSC::isUntypedSpeculationForArithmetic):
(JSC::isUntypedSpeculationForBitOps):

2:45 PM Changeset in webkit [194559] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Turn on gesture events when building for Yosemite
https://bugs.webkit.org/show_bug.cgi?id=152704
rdar://problem/24042472

Reviewed by Anders Carlsson.

  • Configurations/FeatureDefines.xcconfig:
  • wtf/FeatureDefines.h:
2:43 PM Changeset in webkit [194558] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

REGRESSION(r194143): Float width incorrectly calculated on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=152644

Reviewed by Myles C. Maxfield.

Source/WebCore:

The min/max-content contribution computation for non replaced
blocks changed in r194143. The implementation was actually
more complex than it should be and actually incomplete as it
was not considering the case of out of flow elements (because
it was directly calling computeLogicalWidthInRegion()).

This new implementation simplifies a lot the code and makes it
more complete as it relies on min|maxPreferredLogicalWidth()
calls which already consider all the different types of boxes.

Test: fast/css-intrinsic-dimensions/inlinesize-contribution-floats.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):

LayoutTests:

  • fast/css-intrinsic-dimensions/inlinesize-contribution-floats-expected.html: Added.
  • fast/css-intrinsic-dimensions/inlinesize-contribution-floats.html: Added.
2:42 PM Changeset in webkit [194557] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Hardware keyboard key-commands stop responding when viewing PDFs
https://bugs.webkit.org/show_bug.cgi?id=152712
<rdar://problem/23014457>

Reviewed by Dan Bernstein.

Maintain first responder status through any content view swapping, by
making WKWebView become first responder if needed, and pushing first
responder status down to the swapped-in content view if possible.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView becomeFirstResponder]):
Make the current content view first responder instead of the WKContentView,
in case we have a custom content view installed.

(-[WKWebView canBecomeFirstResponder]):
WKWebView can always become first responder, even if none of its children can.
This makes it so that if a custom content view can't become first responder,
WKWebView will take the responsibility.

(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
Return the responsibility of being first responder to the newly-installed
content view if WKWebView is currently the first responder (either because
of tab switching or because the previous content view did not support
being first responder), if it supports being first responder.

2:31 PM Changeset in webkit [194556] by fpizlo@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

FTL B3 should do BitAnd binary snippets
https://bugs.webkit.org/show_bug.cgi?id=152713

Reviewed by Mark Lam.

Getting ready to finish up the binary bitop snippets.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileBitAnd):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):

  • tests/stress/object-bit-and.js: Added.

(foo):
(things.valueOf):

  • tests/stress/untyped-bit-and.js: Added.

(foo):
(valueOf):

2:04 PM Changeset in webkit [194555] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.

word-wrap: break-word broken inside a flexbox
https://bugs.webkit.org/show_bug.cgi?id=152321

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/word-break-on-flexbox-child.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

At some point word-wrap:break-word was mapped to CSS overflow-wrap, but the code
in RenderText was never updated to use the breakWords() RenderStyle function that
checks overflow-wrap's value.

This means all uses of word-wrap:break-word were broken when measuring the
intrinsic width of a RenderText.

LayoutTests:

  • fast/text/word-break-on-flexbox-child-expected.html: Added.
  • fast/text/word-break-on-flexbox-child.html: Added.
1:38 PM Changeset in webkit [194554] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

webkitGetUserMedia built-in should use @then and not then
https://bugs.webkit.org/show_bug.cgi?id=152296

Patch by John Wilander <wilander@apple.com> on 2016-01-04
Reviewed by Brent Fulgham.

Source/WebCore:

Test: streams/webkitGetUserMedia-shadowing-then.html

  • Modules/mediastream/NavigatorUserMedia.js:

(webkitGetUserMedia): Modified to use @then syntax.

LayoutTests:

  • streams/webkitGetUserMedia-shadowing-then-expected.txt: Added.
  • streams/webkitGetUserMedia-shadowing-then.html: Added.
1:33 PM Changeset in webkit [194553] by fpizlo@apple.com
  • 2 edits
    6 adds in trunk/Source/JavaScriptCore

FTL B3 should do all of the non-bitop binary snippets
https://bugs.webkit.org/show_bug.cgi?id=152709

Reviewed by Mark Lam.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStrCat):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithDiv):

  • tests/stress/object-add.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-div.js: Added.

(foo):
(things.valueOf):

  • tests/stress/object-mul.js: Added.

(foo):
(things.valueOf):

  • tests/stress/untyped-add.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-div.js: Added.

(foo):
(valueOf):

  • tests/stress/untyped-mul.js: Added.

(foo):
(valueOf):

1:28 PM Changeset in webkit [194552] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

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

This change caused assertions in existing inspector tests
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"Web Inspector: reproducible debug ASSERT when inspecting the
inspector (WK2)"
https://bugs.webkit.org/show_bug.cgi?id=152080
http://trac.webkit.org/changeset/194544

1:27 PM Changeset in webkit [194551] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Post-commit update for r193484.
https://bugs.webkit.org/show_bug.cgi?id=151884

Unreviwed.

The same null check needs to be applied in fontHasVerticalGlyphs() as well.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::fontHasVerticalGlyphs):

1:18 PM Changeset in webkit [194550] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r194533.

The test that was re-enabled with this change is still flaky

Reverted changeset:

"Modern IDB TestExpectations gardening."
http://trac.webkit.org/changeset/194533

1:18 PM Changeset in webkit [194549] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.
Video/audio-related cleanup after changes to the source element for picture support.
https://bugs.webkit.org/show_bug.cgi?id=152090

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectNextSourceChild):
Use the parsed MediaQueryList for video/audio, since we now cache that on the source elements for picture.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
Add guards to fix the build when video is not enabled.

12:49 PM Changeset in webkit [194548] by fpizlo@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

FTL B3 should do the ArithSub binary snippet
https://bugs.webkit.org/show_bug.cgi?id=152705

Reviewed by Saam Barati.

This implements the ArithSub binary snippet generator in FTL B3.

While doing this, I discovered that the DFG type inference logic for ArithSub contains a
classic mistake: it causes the snippets to kick in when the type set does not contain numbers
rather than kicking in when the type set contains non-numbers. So, the original test that I
wrote for this doesn't work right (it runs to completion but OSR exits ad infinitum). I wrote
a second test that is simpler, and that one shows that the binary snippets "work". That's
sort of a joke though, since the only way to trigger binary snippets is to never pass numbers
and the only way to actually cause a binary snippet to do meaninful work is to pass numbers.
I filed a bug about this mess: https://bugs.webkit.org/show_bug.cgi?id=152708.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileUntypedBinaryOp):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):

  • tests/stress/object-sub.js: Added.

(foo):
(things.valueOf):

  • tests/stress/untyped-sub.js: Added.

(foo):
(valueOf):

12:39 PM Changeset in webkit [194547] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Add context menu items to CSS selectors to auto-generate pseudo selectors
https://bugs.webkit.org/show_bug.cgi?id=152657

Patch by Devin Rousso <Devin Rousso> on 2016-01-04
Reviewed by Timothy Hatcher.

Instead of having to copy a selector, create a new one, paste it, and then add
a pseudo class or element, a context menu item has been added to automate this
process for the user for each CSS pseudo-selector.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/CSSStyleManager.js:

Added a static object containing the list of CSS pseudo-element names.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.addRule.completed):
(WebInspector.DOMNodeStyles.prototype.addRule.styleChanged):
(WebInspector.DOMNodeStyles.prototype.addRule.addedRule):
(WebInspector.DOMNodeStyles.prototype.addRule):
Now accepts a second argument for setting the starting text value of the new rule.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):

12:37 PM Changeset in webkit [194546] by Brian Burg
  • 6 edits
    1 copy
    1 add in trunk/Source/WebInspectorUI

Web Inspector: add a DebugUI context menu item for saving inspector protocol traffic to file
https://bugs.webkit.org/show_bug.cgi?id=152671

Reviewed by Timothy Hatcher.

Add a new tracer that captures all messages, and debug context menu
items to control whether to capture protocol traffic and export it.
In later patches, a reciprocal "Import..." context menu item will
allow opening saved protocol traces and viewing them in a debug UI
content view for debugging/visualizing protocol traffic.

  • UserInterface/Base/Main.js:
  • UserInterface/Debug/CapturingProtocolTracer.js: Copied from Source/WebInspectorUI/UserInterface/Protocol/ProtocolTracer.js.

This tracer saves everything into a flat array. JSON protocol
messages are saved as escaped strings, in case they are not
valid JSON. We want to be able to debug such scenarios.

(WebInspector.CapturingProtocolTracer):
(WebInspector.CapturingProtocolTracer.prototype.get trace):
(WebInspector.CapturingProtocolTracer.prototype.logFrontendException):
(WebInspector.CapturingProtocolTracer.prototype.logProtocolError):
(WebInspector.CapturingProtocolTracer.prototype.logFrontendRequest):
(WebInspector.CapturingProtocolTracer.prototype.logDidHandleResponse):
(WebInspector.CapturingProtocolTracer.prototype.logDidHandleEvent):
(WebInspector.CapturingProtocolTracer.prototype._stringifyMessage):
(WebInspector.CapturingProtocolTracer.prototype._processEntry):

  • UserInterface/Debug/ProtocolTrace.js: Added.

This is a dumb container that holds protocol trace data. It will
be responsible for deserializing saved trace files in later work.

(WebInspector.ProtocolTrace):
(WebInspector.ProtocolTrace.prototype.addEntry):
(WebInspector.ProtocolTrace.prototype.get saveData):

  • UserInterface/Main.html:
  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):

Simplify the implementation. Now there are one or two tracers
at any given time. The default tracer handles legacy logging
behavior and always exists. The custom tracer is installed when
the "Capture Protocol Traffic" context menu item is toggled.

Dispatch to the array of active tracers at each trace point.
Tracers now get the actual JSON message instead of a stringified
version passed as an argument.

(InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
(InspectorBackendClass.prototype.set customTracer):
(InspectorBackendClass.prototype.get activeTracers):
(InspectorBackendClass.prototype._startOrStopAutomaticTracing):
(InspectorBackendClass.prototype._sendMessageToBackend):
(InspectorBackendClass.prototype._dispatchResponse):
(InspectorBackendClass.prototype._dispatchEvent):
(InspectorBackendClass.prototype.set activeTracer): Deleted.
(InspectorBackendClass.prototype.get activeTracer): Deleted.

  • UserInterface/Protocol/LoggingProtocolTracer.js:

(WebInspector.LoggingProtocolTracer.prototype._processEntry):
(WebInspector.LoggingProtocolTracer):
(WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
(WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
(WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
(WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
(WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):

  • UserInterface/Protocol/ProtocolTracer.js:

(WebInspector.ProtocolTracer.prototype.logFrontendException):
(WebInspector.ProtocolTracer.prototype.logProtocolError):
(WebInspector.ProtocolTracer.prototype.logFrontendRequest):
(WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
(WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
(WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
(WebInspector.ProtocolTracer.prototype.logDidHandleEvent):

11:51 AM Changeset in webkit [194545] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix Mac CMake build after r194378.

  • CMakeLists.txt:
11:39 AM Changeset in webkit [194544] by Brian Burg
  • 2 edits in trunk/Source/WebKit2

Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2)
https://bugs.webkit.org/show_bug.cgi?id=152080

Reviewed by Timothy Hatcher.

We hit an assert underneath ChildProcessProxy::addMessageReceiver when opening Inspector[2]
because we try to add WebInpectorProxy as a message receiver twice for the same process.

On investigating, I found several interrelated issues that caused this state of affairs:

  • WebInspectorProxy adds message receivers for inspector page's WebProcess and the

inspected page's WebProcess. When inspecting the inspector, we mistakenly add a receiver
again because the inspector is now the inspected page.

  • We mixed up process ids when adding message receivers.
  • invalidate() is re-entrant, causing us to try and double-remove the message receiver.

Fix this by removing add/remove of message recievers for the inspector page when then
inspected page is itself an inspector page. In that case, the receivers are managed by
the inspector page's WebInspectorProxy instance.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::invalidate): Re-arrange to guard against useless reentrancy.
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::didClose):

11:34 AM Changeset in webkit [194543] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, disable FTL B3 for now. I didn't intend to enable it yet.

  • dfg/DFGCommon.h:
11:33 AM Changeset in webkit [194542] by fpizlo@apple.com
  • 26 edits in trunk/Source/JavaScriptCore

B3 patchpoints should allow requesting scratch registers
https://bugs.webkit.org/show_bug.cgi?id=152669

Reviewed by Benjamin Poulain.

Scratch registers are something that we often need in many patchpoint use cases. In LLVM's
patchpoints, we didn't have a good way to request scratch registers. So, our current FTL code
often does crazy scratch register allocation madness even when it would be better to just ask
the backend for some registers. This patch adds a mechanism for requesting scratch registers
in B3, and wires it all the way to all of our register allocation and liveness
infrastructure.

From the standpoint of a patchpoint, a "scratch register" is an instruction argument that
only admits Tmp and is defined early (like an early clobber register) and is used late (like
what we previously called LateUse, except that this time it's also a warm use). We already
had the beginning of support for early def's because of early clobbers, and we already
supported late uses albeit cold ones. I really only needed to add one new role: "Scratch",
which means both early def and late use in much the same way as "UseDef" means both early
use and late def. But, it feels better to complete the set of roles, so I added LateColdUse
to differentiate from LateUse (which is now a warm use) and EarlyDef to differentiate from
Def (which is, and always has been, a late def). Forcing the code to deal with the full
matrix of possibilities resulted in what is probably a progression in how we handle defs in
the register and stack allocators. The new Inst::forEachDef(Inst*, Inst*, callback) fully
recognizes that a "def" is something that can come from either the preceding instruction or
the succeeding one.

This doesn't add any new functionality to FTL B3 yet, but the new scratch register mechanism
is covered by new testb3 tests.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::isValid):
(JSC::B3::CheckSpecial::admitsStack):
(JSC::B3::CheckSpecial::generate):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::isValid):
(JSC::B3::PatchpointSpecial::admitsStack):
(JSC::B3::PatchpointSpecial::generate):

  • b3/B3PatchpointValue.cpp:

(JSC::B3::PatchpointValue::dumpMeta):
(JSC::B3::PatchpointValue::PatchpointValue):

  • b3/B3PatchpointValue.h:
  • b3/B3StackmapGenerationParams.cpp:

(JSC::B3::StackmapGenerationParams::unavailableRegisters):

  • b3/B3StackmapGenerationParams.h:

(JSC::B3::StackmapGenerationParams::gpScratch):
(JSC::B3::StackmapGenerationParams::fpScratch):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isValidImpl):
(JSC::B3::StackmapSpecial::admitsStackImpl):
(JSC::B3::StackmapSpecial::repsImpl):
(JSC::B3::StackmapSpecial::isArgValidForValue):
(JSC::B3::StackmapSpecial::appendRepsImpl): Deleted.

  • b3/B3StackmapSpecial.h:
  • b3/air/AirAllocateStack.cpp:

(JSC::B3::Air::allocateStack):

  • b3/air/AirArg.cpp:

(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isAnyUse):
(JSC::B3::Air::Arg::isColdUse):
(JSC::B3::Air::Arg::isEarlyUse):
(JSC::B3::Air::Arg::isLateUse):
(JSC::B3::Air::Arg::isAnyDef):
(JSC::B3::Air::Arg::isEarlyDef):
(JSC::B3::Air::Arg::isLateDef):
(JSC::B3::Air::Arg::isZDef):
(JSC::B3::Air::Arg::Arg):
(JSC::B3::Air::Arg::imm):
(JSC::B3::Air::Arg::isDef): Deleted.

  • b3/air/AirBasicBlock.h:

(JSC::B3::Air::BasicBlock::at):
(JSC::B3::Air::BasicBlock::get):
(JSC::B3::Air::BasicBlock::last):

  • b3/air/AirEliminateDeadCode.cpp:

(JSC::B3::Air::eliminateDeadCode):

  • b3/air/AirFixPartialRegisterStalls.cpp:

(JSC::B3::Air::fixPartialRegisterStalls):

  • b3/air/AirInst.cpp:

(JSC::B3::Air::Inst::hasArgEffects):

  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::extraEarlyClobberedRegs):
(JSC::B3::Air::Inst::forEachDef):
(JSC::B3::Air::Inst::forEachDefWithExtraClobberedRegs):
(JSC::B3::Air::Inst::reportUsedRegisters):
(JSC::B3::Air::Inst::forEachTmpWithExtraClobberedRegs): Deleted.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/air/AirLiveness.h:

(JSC::B3::Air::AbstractLiveness::AbstractLiveness):
(JSC::B3::Air::AbstractLiveness::LocalCalc::execute):

  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/air/AirTmpWidth.cpp:

(JSC::B3::Air::TmpWidth::recompute):

  • b3/air/AirUseCounts.h:

(JSC::B3::Air::UseCounts::UseCounts):

  • b3/testb3.cpp:

(JSC::B3::testPatchpointAny):
(JSC::B3::testPatchpointGPScratch):
(JSC::B3::testPatchpointFPScratch):
(JSC::B3::testPatchpointLotsOfLateAnys):
(JSC::B3::run):

11:27 AM Changeset in webkit [194541] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip failing test fast/animation/request-animation-frame-disabled.html on ios-simulator
fast/animation/request-animation-frame-disabled.html

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
11:24 AM Changeset in webkit [194540] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Re-enable fast/animation tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=137588

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
11:20 AM Changeset in webkit [194539] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Comma separated values in the Visual sidebar are appended with )
https://bugs.webkit.org/show_bug.cgi?id=152653

Patch by Devin Rousso <Devin Rousso> on 2016-01-04
Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:

(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
Modified the RexExp used to split the comma separated value to account for strings
with commas inside parenthesis (such as rgba() or hsla()) as well as ones without
commas (such as "arial" and "red").

11:09 AM Changeset in webkit [194538] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Build fix after r194536 when using NetworkSession.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::dataTaskBecameDownloadTask):
(WebKit::DownloadManager::convertHandleToDownload):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
WTFMove changed underneath me.

10:55 AM Changeset in webkit [194537] by achristensen@apple.com
  • 2 edits in trunk

Fix Mac CMake build after r194454.

  • Source/cmake/OptionsMac.cmake:

_macosx, _iphoneos, and _iphonesimulator are used in FeatureDefines.xcconfig but won't be used in CMake.
If we actually switch to CMake, we will need to verify that all the feature enabling is equivalent, and it isn't right now.

10:16 AM Changeset in webkit [194536] by achristensen@apple.com
  • 10 edits in trunk/Source/WebKit2

Progress towards implementing downloads with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152576

Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::~Download):
(WebKit::Download::didStart):
(WebKit::Download::didReceiveAuthenticationChallenge):

  • NetworkProcess/Downloads/Download.h:

(WebKit::Download::downloadID):

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):
(WebKit::DownloadManager::dataTaskBecameDownloadTask):
(WebKit::DownloadManager::convertHandleToDownload):

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkDataTask::client):
(WebKit::NetworkDataTask::clearClient):
(WebKit::NetworkDataTask::downloadID):
(WebKit::NetworkDataTask::setDownloadID):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

10:10 AM Changeset in webkit [194535] by Brent Fulgham
  • 8 edits in trunk/Source/WebCore

[Win] Clean up some Windows WebCore files
https://bugs.webkit.org/show_bug.cgi?id=148275

Reviewed by Dean Jackson.

No new tests because there is no behavior change.

Update a handful of Windows-specific WebCore files to use
the proper method signatures for our updated interfaces,
get rid of cruft in the COM bindings, and use proper C++14
initializers.

  • accessibility/win/AccessibilityObjectWrapperWin.h:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
  • platform/win/PopupMenuWin.cpp:
  • platform/win/PopupMenuWin.h:
  • platform/win/WCDataObject.cpp:
  • platform/win/WCDataObject.h:
9:43 AM Changeset in webkit [194534] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(INTL) build after r193493
https://bugs.webkit.org/show_bug.cgi?id=152689

Reviewed by Alex Christensen.

  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation):

9:41 AM Changeset in webkit [194533] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB TestExpectations gardening.

Rubberstamped by Andy Estes.

  • platform/mac-wk1/TestExpectations: Remove the failure entry for a test that passes.
8:13 AM Changeset in webkit [194532] by Michael Catanzaro
  • 6 edits in trunk/Source/WebKit2

[GTK] Rename _WebKitWebContextPrivate.context to _WebKitWebContextPrivate.processPool
https://bugs.webkit.org/show_bug.cgi?id=152672

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitDownloadClient.cpp:

(attachDownloadClientToContext):

  • UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:

(attachInjectedBundleClientToContext):

  • UIProcess/API/gtk/WebKitSecurityManager.cpp:

(registerSecurityPolicyForURIScheme):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkitWebContextDispose):
(webkit_web_context_set_cache_model):
(webkit_web_context_get_cache_model):
(webkit_web_context_clear_cache):
(webkit_web_context_get_cookie_manager):
(ensureFaviconDatabase):
(webkit_web_context_set_favicon_database_directory):
(webkit_web_context_set_additional_plugins_directory):
(webkitWebContextGetPluginThread):
(webkit_web_context_set_tls_errors_policy):
(webkit_web_context_set_disk_cache_directory):
(webkit_web_context_prefetch_dns):
(webkit_web_context_allow_tls_certificate_for_host):
(webkit_web_context_set_process_model):
(webkit_web_context_set_web_process_count_limit):
(webkitWebContextStartDownload):
(webkitWebContextGetProcessPool):
(webkitWebContextCreatePageForWebView):
(webkitWebContextGetContext): Deleted.

  • UIProcess/API/gtk/WebKitWebContextPrivate.h:
8:09 AM Changeset in webkit [194531] by Csaba Osztrogonác
  • 6 edits in trunk/Source/JavaScriptCore

JSC generator scripts shouldn't have verbose output
https://bugs.webkit.org/show_bug.cgi?id=152382

Reviewed by Michael Catanzaro.

  • b3/air/opcode_generator.rb:
  • generate-bytecode-files:
  • offlineasm/asm.rb:
  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/parser.rb:
5:35 AM Changeset in webkit [194530] by commit-queue@webkit.org
  • 8 edits in trunk/Source

[JSC] Build B3 by default on iOS ARM64
https://bugs.webkit.org/show_bug.cgi?id=152525

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

Source/JavaScriptCore:

Minor changes required to get testb3 to compile.

  • Configurations/ToolExecutable.xcconfig:

We need an entitlement to allocate executable memory.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::scratchRegister):
(JSC::MacroAssemblerARM64::getCachedDataTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARM64::getCachedMemoryTempRegisterIDAndInvalidate):
Expose one of the scratch registers for ValueRep::emitRestore().
Guard the use of scratch registers when not allowed.

  • b3/air/AirOpcode.opcodes:

ARM addressing is a bit different. Skip Addr to make things build.

  • b3/testb3.cpp:

(JSC::B3::testPatchpointWithStackArgumentResult):
Add on memory only exists on x86.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::macroScratchRegisters):
Add the two scratch registers, useful for patchpoints.

Source/WTF:

  • wtf/Platform.h:
4:58 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
3:30 AM Changeset in webkit [194529] by akling@apple.com
  • 6 edits in trunk/Source/WebCore

Simplify the CachedScript ASCII optimization.
<https://webkit.org/b/152596>

Reviewed by Antti Koivisto.

There's actually no need to keep a non-copying StringImpl around for the
CachedScript's internal SharedBuffer. Get rid of that so we don't need
to fidget with that string when the SharedBuffer changes underneath.

Renamed CachedScript::ASCIIOptimizationState to DecodingState to better
reflect what it's used for. Also added explicit caching of the string
hash since we can't rely on a StringImpl to keep that around now.

Bonus: Implement Darin's suggestion to let TextEncoding answer whether
an encoding is byte-based and thus eligible for the ASCII optimization.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::tryReplaceEncodedData): Deleted.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::didReplaceSharedBufferContents): Deleted.

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):
(WebCore::CachedScript::scriptHash):
(WebCore::encodingMayBeAllASCII): Deleted.
(WebCore::CachedScript::didReplaceSharedBufferContents): Deleted.

  • loader/cache/CachedScript.h:
  • platform/text/TextEncoding.h:

(WebCore::TextEncoding::isByteBasedEncoding):

3:15 AM Changeset in webkit [194528] by Philippe Normand
  • 8 edits in trunk/Source/WebCore

[GStreamer] A video element isn't drawn onto the canvas.
https://bugs.webkit.org/show_bug.cgi?id=132671

Reviewed by Michael Catanzaro.

When both cairo-gl and gst-gl are available the texture coming
from glimagesink can be used to create a cairo-gl surface that can
be used for video rendering within a canvas element.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawImage): Use NativeImage
drawing if both cairo-gl and gst-gl are available.

  • platform/graphics/GraphicsContext.h: Implement drawNativeImage

for Cairo GraphicsContext.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawNativeImage): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

Implement nativeImageForCurrentTime(), this method is used by the
canvas rendering context.
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
12:56 AM WebKitGTK/Gardening/Calendar edited by sergio@webkit.org
(diff)
Note: See TracTimeline for information about the timeline view.