Timeline



Apr 21, 2014:

10:44 PM Changeset in webkit [167650] by Brent Fulgham
  • 4 edits in trunk

Source/WebCore: [Mac] Follow-up: After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
https://bugs.webkit.org/show_bug.cgi?id=131960
<rdar://problem/16142100>

Unreviewed build fix.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent): The test to clear the
last scrolled node was too broad. It should only follow this path
if both the phase and momentum phase are 'None'.

Tools: Unreviewed build fix.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):
Correct a typo that prevented tests from working properly.

9:26 PM Changeset in webkit [167649] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::clobberize() should honestly admit that profiler and debugger nodes are effectful
https://bugs.webkit.org/show_bug.cgi?id=131971
<rdar://problem/16676511>

Reviewed by Mark Lam.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

8:59 PM Changeset in webkit [167648] by Brent Fulgham
  • 3 edits
    2 adds in trunk

[Mac] After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
https://bugs.webkit.org/show_bug.cgi?id=131960
<rdar://problem/16142100>

Reviewed by Darin Adler.

Source/WebCore:
Test: platform/mac/fast/scrolling/scroll-div-no-latching.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent): When not latching, always clear m_latchedWheelEventElement and m_previousWheelScrolledElement.

LayoutTests:

  • platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-div-no-latching.html: Added.
8:26 PM Changeset in webkit [167647] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

WebProfilerAgent::disable is calling the wrong superclass method
https://bugs.webkit.org/show_bug.cgi?id=131968

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-21
Reviewed by Simon Fraser.

  • inspector/WebProfilerAgent.cpp:

(WebCore::WebProfilerAgent::disable):

7:58 PM Changeset in webkit [167646] by fpizlo@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Switch statements that skip the baseline JIT should work
https://bugs.webkit.org/show_bug.cgi?id=131965

Reviewed by Mark Hahnenberg.

  • bytecode/JumpTable.h:

(JSC::SimpleJumpTable::ensureCTITable):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):

  • tests/stress/inline-llint-with-switch.js: Added.

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

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

[wk2] Don't send intrinsic content size updates with dirty layout
https://bugs.webkit.org/show_bug.cgi?id=131964
<rdar://problem/14292718>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeTimerFired): Deleted.
Instead of using a timer (which can fire while layout is dirty) to coalesce
intrinsic content size changes, send them only from flushLayers, just after updating layout.
This ensures that we never get intermediate intrinsic content sizes that won't be painted.

7:15 PM Changeset in webkit [167644] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove a unnecessary forward-declared class from TiledCoreAnimationDrawingArea.

Rubber-stamped by Simon Fraser.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
6:56 PM Changeset in webkit [167643] by Martin Robinson
  • 3 edits in trunk/Tools

[GTK] Should have the ability to output composited contents during layout testing
https://bugs.webkit.org/show_bug.cgi?id=131864

Reviewed by Philippe Normand.

  • WebKitTestRunner/cairo/TestInvocationCairo.cpp:

(WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Add a path that paints the widget contents
to an image surface. We run the main loop a bit to match the implementation from WebKit1 and EFL.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::windowSnapshotImage): Use the new UI-process path on GTK+.

6:48 PM Changeset in webkit [167642] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

Followup from http://trac.webkit.org/changeset/167624

Reviewed by Darin Adler.

Fixing incorrect use of ? : syntax.

  • editing/VisibleUnits.cpp:

(WebCore::characterBeforePosition):

6:37 PM Changeset in webkit [167641] by mhahnenberg@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Arguments objects shouldn't need a destructor
https://bugs.webkit.org/show_bug.cgi?id=131899

Reviewed by Oliver Hunt.

This patch rids Arguments objects of their destructors. It does this by
switching their backing stores to use CopiedSpace rather than malloc memory.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateArguments): Fix the code emitted for inline
Arguments allocation so that it only emits an extra write for strict mode code rather
than unconditionally.

  • heap/CopyToken.h: New CopyTokens for the two different types of Arguments backing stores.
  • runtime/Arguments.cpp:

(JSC::Arguments::visitChildren): We need to tell the collector to copy the back stores now.
(JSC::Arguments::copyBackingStore): Do the actual copying of the backing stores.
(JSC::Arguments::deletePropertyByIndex): Update all the accesses to SlowArgumentData and m_registerArray.
(JSC::Arguments::deleteProperty):
(JSC::Arguments::defineOwnProperty):
(JSC::Arguments::allocateRegisterArray):
(JSC::Arguments::tearOff):
(JSC::Arguments::destroy): Deleted. We don't need the destructor any more.

  • runtime/Arguments.h:

(JSC::Arguments::registerArraySizeInBytes):
(JSC::Arguments::SlowArgumentData::SlowArgumentData): Switch SlowArgumentData to being allocated
in CopiedSpace. Now the SlowArgumentData and its backing store are a single contiguous CopiedSpace
allocation.
(JSC::Arguments::SlowArgumentData::slowArguments):
(JSC::Arguments::SlowArgumentData::bytecodeToMachineCaptureOffset):
(JSC::Arguments::SlowArgumentData::setBytecodeToMachineCaptureOffset):
(JSC::Arguments::SlowArgumentData::sizeForNumArguments):
(JSC::Arguments::Arguments):
(JSC::Arguments::allocateSlowArguments):
(JSC::Arguments::tryDeleteArgument):
(JSC::Arguments::isDeletedArgument):
(JSC::Arguments::isArgument):
(JSC::Arguments::argument):
(JSC::Arguments::finishCreation):

  • runtime/SymbolTable.h:
6:34 PM Changeset in webkit [167640] by ryuan.choi@samsung.com
  • 3 edits in trunk/Source/WebCore

Move CoordinatedGraphics related codes out of CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=131931

Reviewed by Gyuyoung Kim.

Move CoordinatedGraphics related files to PlatformEfl.cmake because they are not common files.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
5:57 PM Changeset in webkit [167639] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MSE][Mac] AVSampleBufferDisplayLayer and AudioRenderer is overretained.
https://bugs.webkit.org/show_bug.cgi?id=131963

Reviewed by Jon Honeycutt.

Adopt the results of -[[class alloc] init] rather than retaining them.

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

(WebCore::SourceBufferPrivateAVFObjC::hasVideo):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

5:23 PM Changeset in webkit [167638] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Don't try to use a null connection()->xpcConnection()
https://bugs.webkit.org/show_bug.cgi?id=131961

Reviewed by Dan Bernstein.

If running with -WebKit2UseXPCServiceForWebProcess NO, connection()->xpcConnection()
is null and xpc_connection_get_pid() would crash, so null-check the xpcConnection.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didFinishLaunching):

5:15 PM Changeset in webkit [167637] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION (r166784): Gradient at background of iCloud login page doesn’t go all the way to the bottom
https://bugs.webkit.org/show_bug.cgi?id=131924

Computing tile dimension for contain/cover requires higher precision than what LayoutUnit has. Switching to floats.

Reviewed by Simon Fraser.

Source/WebCore:
Test: fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateFillTileSize):

LayoutTests:

  • fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision-expected.html: Added.
  • fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html: Added.
5:14 PM Changeset in webkit [167636] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for Mountain Lion.

  • platform/mac/SerializedPlatformRepresentationMac.mm:

(WebCore::SerializedPlatformRepresentationMac::deserialize):

5:10 PM Changeset in webkit [167635] by mitz@apple.com
  • 15 edits in trunk/Source

Source/WebCore: WebCore part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process
https://bugs.webkit.org/show_bug.cgi?id=131939

Reviewed by David Kilzer.

  • WebCore.exp.in: Exported WebCore::ResourceHandle::setDefersLoading.
  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::setDefersLoading): Added a no-op implementation.

  • loader/ResourceLoadScheduler.h: Declared new virtual member function setDefersLoading.
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::setDefersLoading): Added a call to the above function.

Source/WebKit2: WebKit part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process
https://bugs.webkit.org/show_bug.cgi?id=131939

Reviewed by David Kilzer.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::setDefersLoading): Added. Forwards the message to
the NetworkResourceLoader.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in: Added SetDefersLoading message.
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader): Initialize new member variable
m_defersLoading from the new field in the loader parameters.
(WebKit::NetworkResourceLoader::start): Added. Like WebCore::ResourceLoader, if loading is
deferred, keep the request in m_deferredRequest and bail out.
(WebKit::NetworkResourceLoader::setDefersLoading): Added. Similar to
WebCore::ResourceLoader::setDefersLoading.

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::defersLoading):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): Initialize new field
defersLoading to false.
(WebKit::NetworkResourceLoadParameters::encode): Encode new field.
(WebKit::NetworkResourceLoadParameters::decode): Decode new field.

  • Shared/Network/NetworkResourceLoadParameters.h: Added defersLoading field.
  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad): Populate defersLoading field in the load
parameters.
(WebKit::WebResourceLoadScheduler::setDefersLoading): Send a message to the Network process.

  • WebProcess/Network/WebResourceLoadScheduler.h:
5:05 PM Changeset in webkit [167634] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Mac] Difficulty gesture scrolling vertically with trackpad after scrolling horizontally
https://bugs.webkit.org/show_bug.cgi?id=131959
<rdar://problem/16654523>

Reviewed by Simon Fraser.

  • page/mac/EventHandlerMac.mm:

(WebCore::deltaIsPredominantlyVertical): Added.
(WebCore::scrolledToEdgeInDominantDirection): Only consider current mouse wheel event. We don't care about
overall history when deciding if we are bumping against the edge of a scrollable region. Short-circuit if
the element style indicates that overflow is hidden, since this means there is no scroll possible in that
direction.
(WebCore::EventHandler::platformPrepareForWheelEvents): Update for new signature.

4:51 PM Changeset in webkit [167633] by andersca@apple.com
  • 3 edits
    4 adds in trunk/Source/WebKit2

Errors passed to delegate methods should have recovery attempters
https://bugs.webkit.org/show_bug.cgi?id=131957
<rdar://problem/16642539>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.h: Added.
  • UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.mm: Added.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::createErrorWithRecoveryAttempter):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.h: Added.
  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: Added.

(-[WKReloadFrameErrorRecoveryAttempter initWithWebView:frameHandle:urlString:]):
(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):

  • WebKit2.xcodeproj/project.pbxproj:
4:18 PM Changeset in webkit [167632] by eric.carlson@apple.com
  • 45 edits
    17 adds in trunk

[Mac] implement WebKitDataCue
https://bugs.webkit.org/show_bug.cgi?id=131799

Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WebCore:
Tests: http/tests/media/track-in-band-hls-metadata.html

media/track/track-datacue-value.html

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
  • DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.
  • CMakeLists.txt: Add JSDataCueCustom.cpp.
  • bindings/js/JSBindingsAllInOne.cpp:
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • bindings/js/JSDataCueCustom.cpp: Added.

(WebCore::JSDataCue::value):
(WebCore::JSDataCue::setValue):
(WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate

events when paused, don't call sort on an Vector that can't be sorted.

  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue): Initialize m_type.
(WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
(WebCore::DataCue::data): Ask the platform value for data if non-null.
(WebCore::DataCue::setData): Clear m_platformValue and m_value.
(WebCore::DataCue::isEqual): New.
(WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed

to the constructor/set by script.

(WebCore::DataCue::setValue): Set m_value.

  • html/track/DataCue.h:
  • html/track/DataCue.idl:
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
(WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
(WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
(WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead

of VTTCue.

  • html/track/InbandTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::hasCue): Ditto.

  • html/track/TextTrack.h:
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::isEqual): New, test base class equality.

  • html/track/TextTrackCue.h:
  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.

  • html/track/TextTrackCueGeneric.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.

  • html/track/VTTCue.h:
  • platform/SerializedPlatformRepresentation.h: Added.

(WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
(WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):

  • platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.
  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.

(WebCore::InbandMetadataTextTrackPrivateAVF::create):
(WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
(WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
(WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
(WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.

Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::currentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
(WebCore::AVFWrapper::setCurrentTextTrack):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::currentTrack): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
(WebCore::AVFWrapper::setCurrentTrack): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
(WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.

Create a JSValue representation from an AVMetadataItem.

  • platform/mac/SerializedPlatformRepresentationMac.h: Added.

(WebCore::SerializedPlatformRepresentationMac::platformType):
(WebCore::SerializedPlatformRepresentationMac::nativeValue):

  • platform/mac/SerializedPlatformRepresentationMac.mm: Added.

(WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
(WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
(WebCore::SerializedPlatformRepresentationMac::create):
(WebCore::SerializedPlatformRepresentationMac::data):
(WebCore::SerializedPlatformRepresentationMac::deserialize):
(WebCore::SerializedPlatformRepresentationMac::isEqual):
(WebCore::toSerializedPlatformRepresentationMac):
(WebCore::jsValueWithValueInContext):
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithArrayInContext):
(WebCore::jsValueWithDictionaryInContext):
(WebCore::jsValueWithAVMetadataItemInContext):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WTF:

  • wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.

LayoutTests:

  • http/tests/media/resources/hls: Added.
  • http/tests/media/resources/hls/metadata: Added.
  • http/tests/media/resources/hls/metadata/fileSequence0.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence1.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence2.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence3.ts: Added.
  • http/tests/media/resources/hls/metadata/prog_index.m3u8: Added.
  • http/tests/media/track-in-band-hls-metadata-expected.txt: Added.
  • http/tests/media/track-in-band-hls-metadata.html: Added.
  • media/track/track-datacue-value-expected.txt: Added.
  • media/track/track-datacue-value.html: Added.
  • platform/efl/TestExpectations: Skip the new tests.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/js/dom/global-constructors-attributes-expected.txt: Update.
  • platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Update.
  • platform/mac/TestExpectations: Skip DataCue test on all Mac versions. Skip HLS test on

Mountain Lion.

  • platform/win/TestExpectations: Skip the new tests.
3:25 PM Changeset in webkit [167631] by benjamin@webkit.org
  • 33 edits in trunk

Add Element.matches, the standard name for webkitMatchesSelector
https://bugs.webkit.org/show_bug.cgi?id=131922

Reviewed by Andreas Kling.

Source/WebCore:
This patch just renames webkitMatchesSelector() to matches().

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):
The Objective-C binding generator only supported ImplementedAs for getters and setters.
This adds support for the option so that Element.matches can be generated for Obj-C.

  • dom/Element.cpp:

(WebCore::Element::matches):
(WebCore::Element::webkitMatchesSelector): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

LayoutTests:
Update the tests to verify both Element.matches and Element.webkitMatchesSelector

  • fast/dom/SelectorAPI/attrname-case-insensitive-expected.txt:
  • fast/dom/SelectorAPI/attrname-case-insensitive.html:
  • fast/dom/SelectorAPI/attrname-case-sensitive-expected.txt:
  • fast/dom/SelectorAPI/attrname-case-sensitive.xhtml:
  • fast/dom/SelectorAPI/caseID-almost-strict-expected.txt:
  • fast/dom/SelectorAPI/caseID-almost-strict.html:
  • fast/dom/SelectorAPI/caseID-expected.txt:
  • fast/dom/SelectorAPI/caseID-strict-expected.txt:
  • fast/dom/SelectorAPI/caseID-strict.html:
  • fast/dom/SelectorAPI/caseID.html:
  • fast/dom/SelectorAPI/caseTag-expected.txt:
  • fast/dom/SelectorAPI/caseTag.html:
  • fast/dom/SelectorAPI/caseTagX-expected.txt:
  • fast/dom/SelectorAPI/caseTagX.xhtml:
  • fast/dom/SelectorAPI/detached-element-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector.html:
  • fast/dom/SelectorAPI/script-tests/detached-element.js:
  • fast/dom/SelectorAPI/script-tests/undefined-null-stringify.js:
  • fast/dom/SelectorAPI/script-tests/viewless-document.js:
  • fast/dom/SelectorAPI/undefined-null-stringify-expected.txt:
  • fast/dom/SelectorAPI/viewless-document-expected.txt:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • fast/harness/results.html:
3:22 PM Changeset in webkit [167630] by Beth Dakin
  • 7 edits in trunk/Source

topContentInset does not play well with fullscreen elements
https://bugs.webkit.org/show_bug.cgi?id=131955
-and corresponding-
<rdar://problem/16651925>

Reviewed by Sam Weinig.

Source/WebCore:
Calling setNeedsLayout() is not sufficient when the topContentInset has changed
dynamically. We need to perform the layout right away and update the scrollbars.
This works completely when the inset changes due to entering/exiting fullscreen,
but I left a FIXME behind because it is possible to change the inset dynamically
just through the WK2 API and end up in a situation where everything looks right
except for the scrollbars.

  • page/FrameView.cpp:

(WebCore::FrameView::topContentInsetDidChange):

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

(WebCore::Page::setTopContentInset):

Source/WebKit2:
If you take an element (such as a <video>) fullscreen when you have a
topContentInset set, there will be an inset-sized gap at the top of the fullscreen
video.

Save and restore the topContentInset whenever the scroll position is saved and
restored.

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::WebFullScreenManager):
(WebKit::WebFullScreenManager::saveScrollPosition):
(WebKit::WebFullScreenManager::restoreScrollPosition):

  • WebProcess/FullScreen/WebFullScreenManager.h:
2:49 PM Changeset in webkit [167629] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-538.30.2/Source

Versioning.

2:45 PM Changeset in webkit [167628] by jhoneycutt@apple.com
  • 3 edits
    1 add in trunk

Empty RenderInline objects should not be line break objects.

https://bugs.webkit.org/show_bug.cgi?id=131861
<rdar://problem/15663617>

Reviewed by David Hyatt.

.:

  • ManualTests/empty-inline-as-line-break-position.html: Added.

This issue wouldn't reproduce in WebKitTestRunner.

Source/WebCore:

  • rendering/line/BreakingContextInlineHeaders.h:

(WebCore::BreakingContext::canBreakAtThisPosition):
Don't break at this position if this is an empty RenderInline.

2:44 PM Changeset in webkit [167627] by weinig@apple.com
  • 2 edits in trunk/Tools

Attempt to fix the tests.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[DidFailProvisionalNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
Add policy handler to override the new default of denying loads that NSURLConnection cannot handle.

2:36 PM Changeset in webkit [167626] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-538.30.2

New tag.

2:33 PM Changeset in webkit [167625] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't use ProcessAssertion on simulator
https://bugs.webkit.org/show_bug.cgi?id=131950

Rubber stamped by Enrica Casucci

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):

  • UIProcess/ios/ProcessAssertion.h:
2:14 PM Changeset in webkit [167624] by enrica@apple.com
  • 10 edits in trunk/Source

[iOS WebKit2] support replacements for misspelled words.
https://bugs.webkit.org/show_bug.cgi?id=131827
<rdar://problem/16319657>

Reviewed by Darin Adler.

Source/WebCore:
Adds utility function to return the character before the current selection
and converts the nbsp to the space character.

  • WebCore.exp.in:
  • editing/VisibleUnits.cpp:

(WebCore::characterBeforePosition):

  • editing/VisibleUnits.h:

Source/WebKit2:
This is the second a final piece to support replacements.
It adds some entrypoints used by the keyboard code to perform
replacement when reaching the edge of a word using backspace.
I've modified the behavior of replaceSelectedText to work both
with caret or range selections.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView isReplaceAllowed]):
(-[WKContentView _characterBeforeCaretSelection]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::replaceSelectedText):

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

[iOS] enable plug-in replacement
https://bugs.webkit.org/show_bug.cgi?id=131947

Reviewed by Jer Noble.

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): initialize m_isPluginReplacementEnabled

to true on iOS.

2:00 PM Changeset in webkit [167622] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't use ProcessAssertion on simulator
https://bugs.webkit.org/show_bug.cgi?id=131950

Rubber stamped by Benjamin Poulain

  • UIProcess/ios/ProcessAssertion.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::setState):

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

Another build fix.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):

1:44 PM Changeset in webkit [167620] by cabanier@adobe.com
  • 12 edits
    4 deletes in trunk

[CSS Blending] Remove support for non-separable blend modes from mix-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=131824

Reviewed by Dean Jackson.

Source/WebCore:
Removed support for non-separable blend modes from the CSS parser.

Covered by existing tests

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • platform/graphics/ca/mac/PlatformCAFiltersMac.mm:

(PlatformCAFilters::setBlendingFiltersOnLayer):

LayoutTests:
Removed or updated tests that used non-separable blend modes in combination
with mix-blend-mode.

  • css3/compositing/blend-mode-property-expected.txt:
  • css3/compositing/blend-mode-property-parsing-expected.txt:
  • css3/compositing/blend-mode-simple-composited.html:
  • css3/compositing/blend-mode-simple.html:
  • css3/compositing/script-tests/blend-mode-property-parsing.js:
  • css3/compositing/script-tests/blend-mode-property.js:
  • css3/compositing/svg-blend-color.html: Removed.
  • css3/compositing/svg-blend-hue.html: Removed.
  • css3/compositing/svg-blend-luminosity.html: Removed.
  • css3/compositing/svg-blend-saturation.html: Removed.
  • platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
  • platform/mac/css3/compositing/blend-mode-simple-expected.txt:
1:39 PM Changeset in webkit [167619] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

[New Multicolumn] vertical-rl/unsplittable-inline-block misrenders the column rule.
https://bugs.webkit.org/show_bug.cgi?id=131818

Reviewed by Anders Carlsson.

Patch the test to be column-fill:auto, since the other versions
of the test all had that specified already.

  • fast/multicol/vertical-rl/unsplittable-inline-block.html:
1:35 PM Changeset in webkit [167618] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

1:20 PM Changeset in webkit [167617] by hyatt@apple.com
  • 5 edits
    2 adds in trunk

[New Multicolumn] Column set drawing under horizontal scrollbar.
https://bugs.webkit.org/show_bug.cgi?id=131812.

Reviewed by Sam Weinig.

Source/WebCore:
Added fast/multicol/newmulticol/compare-with-old-impl/LeftToRight-tb.html.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):

  • rendering/RenderBlockFlow.h:

Pass in relayoutChildren as a reference boolean to checkForPaginationLogicalHeightChange.
The new columns need to be able to set it to true if the amount of available column
height ever changes, so that the RenderFlowThread and the sets get a layout call.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setColumnStylesFromPaginationMode):
Make sure that the pagination mode is set up with an auto column-fill specified. You
don't ever want to balance when you set a pagination mode on the RenderView.

LayoutTests:

  • fast/multicol/newmulticol/compare-with-old-impl/LeftToRight-tb-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/LeftToRight-tb.html: Added.
1:16 PM Changeset in webkit [167616] by timothy_horton@apple.com
  • 13 edits in trunk/Source

[iOS WebKit2] Implement CSS viewport units
https://bugs.webkit.org/show_bug.cgi?id=131863
<rdar://problem/16279088>

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/WKWebView.mm:

(setMinimumLayoutSizeForMinimalUI):
(-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
Add _setMinimumLayoutSizeOverrideForMinimalUI:, which pushes said size
down from the client to WebPageIOS, below.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI):

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

(WebKit::WebPage::setMinimumLayoutSizeForMinimalUI):
(WebKit::WebPage::viewportConfigurationChanged):
Update FrameView's viewport size based on the minimum layout size for minimal UI (if we have it)
or the normal minimum layout size, scaled to the page's initial scale.

  • WebCore.exp.in:
  • page/FrameView.cpp:

(WebCore::FrameView::setViewportSize):

  • page/FrameView.h:

(WebCore::FrameView::viewportSize):
Add setViewportSize() and viewportSize().
If the viewport size changes, we have to do style recalc.
If we have an overridden viewport size, use it.

  • rendering/RenderView.cpp:

(WebCore::RenderView::viewportSize):

  • rendering/RenderView.h:

Get the size from FrameView.

1:14 PM Changeset in webkit [167615] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Fix the dynamic viewport update when the viewport's max-scale conflict with the transition
https://bugs.webkit.org/show_bug.cgi?id=131884

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-21
Reviewed by Darin Adler.

<rdar://problem/16667291>

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
It is fairly common to have a viewport configuration with min-scale=1 and max-scale=1.
Since we were only changing the minimumScale for the transition, the target scale was affected
by max-scale. This was breaking the transition from portrait to landscale.

1:10 PM Changeset in webkit [167614] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebKit2

[iOS][WK2] Make dynamic viewport size update content aware
https://bugs.webkit.org/show_bug.cgi?id=131874

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-21
Reviewed by Tim Horton.

When possible, adjust the scroll position based on the content on dynamic viewport resize.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::scalePage):
(WebKit::WebPage::pageDidScroll):

  • WebProcess/WebPage/WebPage.h:

The scrolling heuristic are not invertible, especially the content heuristic. To have the right
behavior when doing resize without changing the page, we save the old scroll position and restore
it when the content size and scale is restored.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):
On dynamic update, start by finding what node is at the center of the screen. After the layout, put that
node back in the center.

(WebKit::WebPage::updateVisibleContentRects):

12:53 PM Changeset in webkit [167613] by fpizlo@apple.com
  • 5 edits in trunk

Source/JavaScriptCore: Unreviewed test gardening, run the repeat-out-of-bounds tests again.

  • tests/stress/float32-repeat-out-of-bounds.js:
  • tests/stress/int8-repeat-out-of-bounds.js:

Tools: Unreviewed test gardening, make no-eager runs run everything except eager (as opposed to
being the same as a "quick run", which is meant for genuinely slow tests).

  • Scripts/run-jsc-stress-tests:
12:51 PM Changeset in webkit [167612] by fpizlo@apple.com
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

OSR exit should know about Int52 and Double constants
https://bugs.webkit.org/show_bug.cgi?id=131945

Reviewed by Oliver Hunt.

The DFG OSR exit machinery's ignorance would lead to some constants becoming
jsUndefined() after OSR exit.

The FTL OSR exit machinery's ignorance just meant that we would sometimes use a
stackmap constant rather than baking the constant into the OSRExit data structure.
So, not a big deal, but worth fixing.

Also added some helpful hacks to jsc.cpp for testing such OSR exit pathologies.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGMinifiedNode.h:

(JSC::DFG::belongsInMinifiedGraph):
(JSC::DFG::MinifiedNode::hasConstantNumber):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::tryToSetConstantExitArgument):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionOtherFalse):
(functionUndefined):

  • runtime/Intrinsic.h:
  • tests/stress/fold-to-double-constant-then-exit.js: Added.

(foo):

  • tests/stress/fold-to-int52-constant-then-exit.js: Added.

(foo):

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

Need default WKNavigationDelegate behavior
https://bugs.webkit.org/show_bug.cgi?id=131944
<rdar://problem/15949822>

Reviewed by Dan Bernstein.

Port the WebKit1 default delegate behavior over.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

12:49 PM Changeset in webkit [167610] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

[Cocoa] Expose WebPage::setDefersLoading
https://bugs.webkit.org/show_bug.cgi?id=131943

Reviewed by Anders Carlsson, but he doesn’t like this.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _defersLoading]): Added this accessor.
(-[WKWebProcessPlugInBrowserContextController _setDefersLoading:]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

Declared new property _defersLoading.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::defersLoading): Added this getter.

  • WebProcess/WebPage/WebPage.h:
12:48 PM Changeset in webkit [167609] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Remove unused WebKitSystemInterface functions
https://bugs.webkit.org/show_bug.cgi?id=131938

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-21
Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • WebCore.exp.in:
  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

12:41 PM Changeset in webkit [167608] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Provide feedback when we encounter an unrecognied node in the FTL backend.

Rubber stamped by Alexey Proskuryakov.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

12:37 PM Changeset in webkit [167607] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Update results of fast/images/image-controls-basic.html

  • platform/mac/TestExpectations:
  • platform/mac/fast/images/image-controls-basic-expected.png:
  • platform/mac/fast/images/image-controls-basic-expected.txt:
12:17 PM Changeset in webkit [167606] by hyatt@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

[New Multicolumn] Add test case for shrink-to-column-height now that
it passes in the new impl.
https://bugs.webkit.org/show_bug.cgi?id=131814

Reviewed by Dean Jackson.

  • fast/multicol/newmulticol/compare-with-old-impl/shrink-to-column-height-for-pagination-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/shrink-to-column-height-for-pagination.html: Added.
12:17 PM Changeset in webkit [167605] by akling@apple.com
  • 6 edits in trunk/Source

Move the JSString cache from DOMWrapperWorld to VM.
<https://webkit.org/b/131940>

Source/JavaScriptCore:
Reviewed by Geoff Garen.

  • runtime/VM.h:

Source/WebCore:
Since there's no need for JSStrings to be world-specific, this patch
moves the string cache to JSC::VM. This makes jsStringWithCache()
a lot faster since it no longer has to jump through twenty-eleven
hoops to find the DOMWrapperWorld.

Reviewed by Geoff Garen.

  • bindings/js/DOMWrapperWorld.cpp:

(WebCore::DOMWrapperWorld::clearWrappers):

  • bindings/js/DOMWrapperWorld.h:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringWithCache):

12:15 PM Changeset in webkit [167604] by commit-queue@webkit.org
  • 13 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed GTK gardening

Update gtk/TestExpectations and rebaseline some gtk test results.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-04-21

  • platform/gtk/TestExpectations: Mark fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html

as failure and fast/dom/Window/mozilla-focus-blur.html as flaky.

  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt: Rebaseline after r167335.
  • platform/gtk/fast/repaint/reflection-redraw-expected.txt: Rebaseline after r167568.
  • platform/gtk/fast/table/dynamic-caption-add-remove-before-child-expected.txt: Rebaseline after r167568.
  • platform/gtk/fast/table/multiple-captions-display-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla/marvin/body_col-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla/marvin/x_th_valign_baseline-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla/other/body_col-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug10140-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug10216-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla_expected_failures/core/captions3-expected.txt: Rebaseline after r167568.
  • platform/gtk/tables/mozilla_expected_failures/other/test4-expected.txt: Rebaseline after r167568.
  • platform/gtk/fast/repaint/spanner-with-margin-expected.txt: Added. Rebaseline after r167439.
12:10 PM Changeset in webkit [167603] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Check the com.apple.security.network.client entitlement for all processes
https://bugs.webkit.org/show_bug.cgi?id=131942
<rdar://problem/12354188>

Reviewed by Dan Bernstein.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):

12:05 PM Changeset in webkit [167602] by hyatt@apple.com
  • 4 edits
    2 adds in trunk

Source/WebCore: [New Multicolumn] Column balancing is slow on float-multicol.html
https://bugs.webkit.org/show_bug.cgi?id=131801

Reviewed by Enrica Casucci.

Added fast/multicol/tall-float.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
Blink (#361551).

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeOverflow):
Fix a bug where the new multi-column code was adding in overflow for floats
when it should not. This was resulting in the creation of scrollbars when none
should exist. This is my own addition.

(WebCore::RenderBlockFlow::addOverhangingFloats):
Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
comes from Morten's patch for Blink (#361551).

LayoutTests: http/tests/cache/subresource-failover-to-network.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131936

Patch by Alexey Proskuryakov <ap@apple.com> on 2014-04-21
Reviewed by Brady Eidson.

The test was racy, because it was unintentionally queuing TestRunner operations
twice. Also, it failed to clean up its cookie.

Rewrote to not use TestRunner queuing, making the test work in browser.

  • http/tests/cache/resources/subresource-failover-to-network.cgi:
  • http/tests/cache/subresource-failover-to-network.html:
11:55 AM Changeset in webkit [167601] by ap@apple.com
  • 3 edits in trunk/LayoutTests

http/tests/cache/subresource-failover-to-network.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131936

Reviewed by Brady Eidson.

The test was racy, because it was unintentionally queuing TestRunner operations
twice. Also, it failed to clean up its cookie.

Rewrote to not use TestRunner queuing, making the test work in browser.

  • http/tests/cache/resources/subresource-failover-to-network.cgi:
  • http/tests/cache/subresource-failover-to-network.html:
11:43 AM Changeset in webkit [167600] by fpizlo@apple.com
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

Take block execution count estimates into account when voting double
https://bugs.webkit.org/show_bug.cgi?id=131906

Reviewed by Geoffrey Garen.

This was a drama in three acts.

Act I: Slurp in BasicBlock::executionCount and use it as a weight when counting the

number of uses of a variable that want double or non-double. Easy as pie. This
gave me a huge speed-up on FloatMM and a huge slow-down on basically everything
else.


Act II: Realize that there were some programs where our previous double voting was

just on the edge of disaster and making it more precise tipped it over. In
particular, if you had an integer variable that would infrequently be used in a
computation that resulted in a variable that was frequently used as an array index,
the outer infrequentness would be the thing we'd use in the vote. So, an array
index would become double. We fix this by reviving global backwards propagation
and introducing the concept of ReallyWantsInt, which is used just for array
indices. Any variable transitively flagged as ReallyWantsInt will never be forced
double. We need that flag to be separate from UsedAsInt, since UsedAsInt needs to
be set in bitops for RageConversion but using it for double forcing is too much.
Basically, it's cheaper to have to convert a double to an int for a bitop than it
is to convert a double to an int for an array index; also a variable being used as
an array index is a much stronger hint that it ought to be an int. This recovered
performance on everything except programs that used FTL OSR entry.


Act III: Realize that OSR entrypoint creation creates blocks that have NaN execution

count, which then completely pollutes the weighting - essentially all votes go
NaN. Fix this with some surgical defenses. Basically, any client of execution
counts should allow for them to be NaN and shouldn't completely fall off a cliff
when it happens.


This is awesome. 75% speed-up on FloatMM. 11% speed-up on audio-dft. This leads to
7% speed-up on AsmBench and 2% speed-up on Kraken.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::run):
(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dumpBlockHeader):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::voteNode):
(JSC::DFG::Graph::voteChildren):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:
  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::doDoubleVoting):
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):

  • dfg/DFGVariableAccessData.cpp: Added.

(JSC::DFG::VariableAccessData::VariableAccessData):
(JSC::DFG::VariableAccessData::mergeIsCaptured):
(JSC::DFG::VariableAccessData::mergeShouldNeverUnbox):
(JSC::DFG::VariableAccessData::predict):
(JSC::DFG::VariableAccessData::mergeArgumentAwarePrediction):
(JSC::DFG::VariableAccessData::shouldUseDoubleFormatAccordingToVote):
(JSC::DFG::VariableAccessData::tallyVotesForShouldUseDoubleFormat):
(JSC::DFG::VariableAccessData::mergeDoubleFormatState):
(JSC::DFG::VariableAccessData::makePredictionForDoubleFormat):
(JSC::DFG::VariableAccessData::flushFormat):

  • dfg/DFGVariableAccessData.h:

(JSC::DFG::VariableAccessData::vote):
(JSC::DFG::VariableAccessData::VariableAccessData): Deleted.
(JSC::DFG::VariableAccessData::mergeIsCaptured): Deleted.
(JSC::DFG::VariableAccessData::mergeShouldNeverUnbox): Deleted.
(JSC::DFG::VariableAccessData::predict): Deleted.
(JSC::DFG::VariableAccessData::mergeArgumentAwarePrediction): Deleted.
(JSC::DFG::VariableAccessData::shouldUseDoubleFormatAccordingToVote): Deleted.
(JSC::DFG::VariableAccessData::tallyVotesForShouldUseDoubleFormat): Deleted.
(JSC::DFG::VariableAccessData::mergeDoubleFormatState): Deleted.
(JSC::DFG::VariableAccessData::makePredictionForDoubleFormat): Deleted.
(JSC::DFG::VariableAccessData::flushFormat): Deleted.

11:16 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
11:10 AM Changeset in webkit [167599] by msaboff@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION(r167591): ARM64 and ARM traditional builds broken
https://bugs.webkit.org/show_bug.cgi?id=131935

Reviewed by Mark Hahnenberg.

Added store8(TrustedImm32, MacroAssembler::Address) to the ARM traditional and ARM64
macro assemblers. Added a new test for the original patch.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::store8):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::store8):

  • tests/stress/dfg-create-arguments-inline-alloc.js: New test.
11:08 AM Changeset in webkit [167598] by Darin Adler
  • 8 edits in trunk/Source/WebCore

REGRESSION (r160908): Safari doesn't draw rotated images properly first time
https://bugs.webkit.org/show_bug.cgi?id=131930

Reviewed by Anders Carlsson.

With render tree creation sufficiently lazy, we had to put some explicit
calls to updateStyleIfNeeded into the ImageDocument class.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument): Pass a Frame&.

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::imageSize): Added this helper function. This updates
style so we can use the renderer to compute an image size taking things like
orientation into account, and also passes in the zoom factor.
(WebCore::ImageDocument::updateDuringParsing): Moved the body of the
ImageDocumentParser::appendBytes function into this function. Since it's a
member of ImageDocument, it has better access to appropriate private members,
and we don't have to expose as many functions to the public. Also changed to
not use the frame so much. Also merged in the code that creates the document
instead of having it be a side effect in the cachedImage helper function; all
the other call sites were checking for null before calling cachedImage.
(WebCore::ImageDocument::finishedParsing): Moved the body of the
ImageDocumentParser::finish function here. Added a call to updateStyleIfNeeded
before using the renderer to get the image size.
(WebCore::ImageDocumentParser::document): Made this return a reference. It's
just a convenience function used in the two functions below.
(WebCore::ImageDocumentParser::appendBytes): Just call updateDuringParsing.
(WebCore::ImageDocumentParser::finish): Just call finishedParsing.
(WebCore::ImageDocument::ImageDocument): Take a reference for the argument,
use nullptr, and also initialize m_shouldShrinkImage directly instead of using
a shouldShrinkToFit() helper function to do it.
(WebCore::ImageDocument::createDocumentStructure): Removed unneeded check of
null for the frame, since the caller does it. Removed some unneeded
IGNORE_EXCEPTON and a stray semicolon. Use m_shouldShrinkImage instead of
calling shouldShrinkToFit since at this early point they will be identical.
(WebCore::ImageDocument::scale): Make non-const so we can call the new
imageSize helper. Use Document::view instead of Frame::view. Improved the
conversion to floating point so it doesn't involve a static_cast and an extra
conversion from int to LayoutUnit.
(WebCore::ImageDocument::resizeImageToFit): Ditto.
(WebCore::ImageDocument::imageClicked): Ditto.
(WebCore::ImageDocument::imageUpdated): Ditto. Also use m_shouldShrinkImage
ibnstead of shouldShrinkToFit.
(WebCore::ImageDocument::restoreImageSize): Ditto.
(WebCore::ImageDocument::imageFitsInWindow): Ditto.
(WebCore::ImageDocument::windowSizeChanged): Ditto.
(WebCore::ImageDocument::cachedImage): Deleted. Moved logic into updateDuringParsing.
(WebCore::ImageDocument::shouldShrinkToFit): Deleted. Moved logic into constructor.
(WebCore::ImageEventListener::handleEvent): Updated for changes above.
(WebCore::ImageEventListener::operator==): Simplified. No reason this has to check
whether both listeners are in the same document.
(WebCore::ImageDocumentElement::didMoveToNewDocument): Use nullptr.

  • html/ImageDocument.h: Deleted some unused things, updated for changes above,

and made some memer functions private.

  • loader/FrameLoaderClient.h: Deleted the allowScriptFromSource, allowPlugins,

allowImage, and allowDisplayingInsecureContent functions. These were only used in
Chromium and are now unneeded complexity. We could bring them back if anyone wants them.

  • loader/MixedContentChecker.cpp:

(WebCore::MixedContentChecker::canDisplayInsecureContent): Removed call to
allowDisplayingInsecureContent, just use the setting directly.
(WebCore::MixedContentChecker::canRunInsecureContent): Removed call to
allowRunningInsecureContent, just use the setting directly.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::allowPlugins): Removed call to allowPlugins, just
use the arePluginsEnabled setting directly.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest): Removed call to allowScriptFromSource, just
use the isScriptEnabled setting directly.
(WebCore::CachedResourceLoader::clientDefersImage): Removed call to allowImage.

11:07 AM Changeset in webkit [167597] by hyatt@apple.com
  • 7 edits
    2 adds in trunk

[New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
https://bugs.webkit.org/show_bug.cgi?id=131811

Reviewed by Dean Jackson.

Source/WebCore:
Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html

With block axis pagination mode, it is possible to set a column height that is not the same
as the available fill height for a block. The new multi-column code had the assumption that
the column height was the same as the amount of fill room you had available. This is not
the case.

To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
available column height as a separate variable from the computed column height. This allows
the pagination API to specify a different column height that is not the same as the view's
content height.

Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
RenderView to work with the new column code as well.

To address the layout test failures (that caused the previous rollout), I made sure to
initialize m_availableHeight to 0 when m_computedColumnHeight also gets reset to 0.

The assertion is not something I could reproduce on any machine, but I can see the problem.
I patched Page's pageCount method to not have column code directly in Page.cpp,
and to make a new pageCount() method on RenderView that Page calls
into. This method is now patched to handle the new column code as well as the old. I have
no real way of testing this method though, since I can't reproduce the assertion that the
bots were experiencing.

  • page/Page.cpp:

(WebCore::Page::pageCount):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::computeLogicalHeight):

  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::pageOrViewLogicalHeight):
(WebCore::RenderView::pageCount):

  • rendering/RenderView.h:

LayoutTests:

  • fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html: Added.
11:06 AM Changeset in webkit [167596] by dino@apple.com
  • 6 edits
    1 delete in trunk/Source/WebCore

[Media] Clean up localized strings in controls
https://bugs.webkit.org/show_bug.cgi?id=131857
<rdar://problem/16663005>

Reviewed by Eric Carlson.

There is no need for separate localization files
on OS X and iOS. Move the small number of iOS-specific
localizations into a shared file.

We also don't need a function to return a static table.
Ultimately I think we want a top-level WebKit object that
hold the table, but for now use a global variable
called UIStringTable. Since we're in an isolated world, we
won't clash with anything.

I noticed a few cases were we grab a localized string and
then instantly run a replacement on it. This should be
supported directly in the UIString() accessor.

  • English.lproj/mediaControlsLocalizedStrings.js: Add iOS strings. Just

use a static table.
(mediaControlsLocalizedStrings): Deleted.

  • English.lproj/mediaControlsLocalizedStringsiOS.js: Removed.
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.extend): Fix braces.
(Controller.prototype.UIString): Use the string table, and allow replacement.
(Controller.prototype.createControls): Use new UIString replacement.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.updateWirelessPlaybackStatus): Use new UIString.
(ControllerIOS.prototype.UIString): Deleted. Use the parent class version.

  • WebCore.xcodeproj/project.pbxproj: Remove file from Resources.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript): No need to include the iOS
specific localization file.

10:31 AM Changeset in webkit [167595] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • inspector/TimelineRecordFactory.cpp: Add missing include.
10:11 AM Changeset in webkit [167594] by zandobersek@gmail.com
  • 26 edits in trunk/Source

Move cross-port Source/WebCore/page/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=130534

Reviewed by Darin Adler.

Source/WebCore:
Replace uses of OwnPtr and PassOwnPtr in cross-port code under Source/WebCore/page/ with
std::unique_ptr. Unnecessary OwnPtr.h and PassOwnPtr.h header inclusions are removed as well.

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):

  • dom/SecurityContext.cpp:

(WebCore::SecurityContext::setContentSecurityPolicy):

  • dom/SecurityContext.h:
  • page/CaptionUserPreferences.h:
  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPDirectiveList::create):
(WebCore::CSPDirectiveList::checkEvalAndReportViolation):
(WebCore::CSPDirectiveList::checkInlineAndReportViolation):
(WebCore::CSPDirectiveList::checkSourceAndReportViolation):
(WebCore::CSPDirectiveList::setCSPDirective):
(WebCore::ContentSecurityPolicy::didReceiveHeader):

  • page/ContentSecurityPolicy.h:
  • page/DOMSecurityPolicy.h:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::fired):
(WebCore::DOMWindow::postMessageTimerFired):

  • page/DOMWindow.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):

  • page/EventHandler.h:
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::createRegExpForLabels):
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::matchLabelsAgainstString):
(WebCore::Frame::setTiledBackingStoreEnabled):

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

(WebCore::FrameView::addEmbeddedObjectToUpdate):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::addScrollableArea):

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

(WebCore::Page::Page):

  • page/Page.h:
  • page/PageConsole.h:
  • page/PageThrottler.h:
  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):

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

(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::CSSPropertyAnimationWrapperMap::instance):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • page/mac/PageMac.cpp:

(WebCore::Page::addSchedulePair):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::applyContentSecurityPolicyFromString):

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(searchForLabelsBeforeElement): Pass a RegExp reference to Frame::searchForLabelsAboveCell().

9:56 AM Changeset in webkit [167593] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r167530): ASSERT(m_selfTime <= m_totalTime) on tests that run after certain Inspector tests
https://bugs.webkit.org/show_bug.cgi?id=131919

  • TestExpectations: Skipping some Inspector tests, hopefully these are the ones that

cause trouble later.

8:52 AM Changeset in webkit [167592] by Darin Adler
  • 7 edits in trunk

Add HashSet::takeAny
https://bugs.webkit.org/show_bug.cgi?id=131928

Reviewed by Benjamin Poulain.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::takeAnyMediaCanStartListener): Use HashSet::takeAny.

  • dom/ScriptExecutionContext.cpp:

(WebCore::takeAny): Deleted.
(WebCore::ScriptExecutionContext::~ScriptExecutionContext): Use HashSet::takeAny.

Source/WTF:

  • wtf/HashSet.h: Added an overload of take that takes an iterator,

and used it to implement both the existing take and new takeAny functions.

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: Added a test for takeAny.
8:11 AM Changeset in webkit [167591] by mhahnenberg@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Inline allocate Arguments objects in the DFG
https://bugs.webkit.org/show_bug.cgi?id=131897

Reviewed by Geoffrey Garen.

Many libraries/frameworks depend on the arguments object for overloaded API entry points.
This is the first step to making Arguments fast(er). We'll duplicate the logic in Arguments::create
for now and take the slow path for complicated cases like slow arguments, tearing off for strict mode, etc.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateArguments):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • runtime/Arguments.h:

(JSC::Arguments::offsetOfActivation):
(JSC::Arguments::offsetOfOverrodeLength):
(JSC::Arguments::offsetOfIsStrictMode):
(JSC::Arguments::offsetOfRegisterArray):
(JSC::Arguments::offsetOfCallee):
(JSC::Arguments::allocationSize):

4:52 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
3:39 AM Changeset in webkit [167590] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

iOS and non-iOS RemoteCommandListener::create() functions should use std::make_unique<>()
https://bugs.webkit.org/show_bug.cgi?id=131916

Reviewed by Darin Adler.

A follow-up to r167197. Make RemoteCommandListener ctor public and use std::make_unique<>()
in both versions of RemoteCommandListener::create() functions (iOS and non-iOS).

  • platform/RemoteCommandListener.cpp:

(WebCore::RemoteCommandListener::create):

  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListener::RemoteCommandListener):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListener::create):

3:15 AM Changeset in webkit [167589] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Micro-optimize the way we hand NodeLists to JSC.
<https://webkit.org/b/131932>

Use HashMap::fastAdd() when returning cached node lists and collections.
10.9% progression on Bindings/get-elements-by-tag-name.html

Reviewed by Antti Koivisto.

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::addCacheWithQualifiedName):
(WebCore::NodeListsNodeData::addCachedCollection):

12:25 AM Changeset in webkit [167588] by commit-queue@webkit.org
  • 32 edits in trunk

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

Broke Objective-C bindings test (Requested by ap on #webkit).

Reverted changeset:

"Add Element.matches, the standard name for
webkitMatchesSelector"
https://bugs.webkit.org/show_bug.cgi?id=131922
http://trac.webkit.org/changeset/167584

Apr 20, 2014:

11:42 PM Changeset in webkit [167587] by akling@apple.com
  • 2 edits in trunk/Source/WebKit

Blind Windows build fix. Hope I guessed the 64-bit mangled form right.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
11:35 PM Changeset in webkit [167586] by mitz@apple.com
  • 5 edits
    9 deletes in trunk/Source/WebKit2

[Cocoa] Remove interfaces in the To Be Removed groups
https://bugs.webkit.org/show_bug.cgi?id=131925

Reviewed by Darin Adler.

  • Shared/API/Cocoa/WKRemoteObjectInterface.h: Removed.
  • Shared/API/Cocoa/WKRemoteObjectInterface.mm: Removed.
  • Shared/API/Cocoa/WKRemoteObjectRegistry.h: Removed.
  • Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Removed.
  • UIProcess/API/Cocoa/WKProcessPool.mm:
  • UIProcess/API/Cocoa/WKProcessPoolConfiguration.h: Removed.
  • UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm: Removed.
  • UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h: Removed.
  • UIProcess/API/Cocoa/WKProcessPoolToBeRemoved.mm: Removed.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInBrowserContextControllerToBeRemoved.mm: Removed.
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
11:26 PM Changeset in webkit [167585] by benjamin@webkit.org
  • 4 edits
    2 adds in trunk

Compile the :root pseudo class and fix a related issue with :nth-child()
https://bugs.webkit.org/show_bug.cgi?id=131926

Reviewed by Andreas Kling.

Source/WebCore:
Add the :root pseudo class. This is another trivial selector, we just need to compare
the element pointer with the documentElement.

I discovered some issues with :nth-child(n) through the layout tests for ":root".
When the pseudo class nth-child could match anything, no code was generated. That decision
was taken when generating the fragments.

The specification of :nth-child() has two tests: the parent test and the counter test.
Since some fragments would not generate any code for :nth-child(n), they would succeed on the root,
which is incorrect since the root should fail the parent test.

This was fixed by moving the filtering of non-counting :nth-child() after we generate the parent
check.
We still don't generate any counter test unless required.

Test: fast/selectors/nth-child-on-root.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsRoot):

  • dom/Document.h:

(WebCore::Document::documentElementMemoryOffset):

LayoutTests:
Add more test coverage that would have caught the bug with :nth-child(n).

  • fast/selectors/nth-child-on-root-expected.txt: Added.
  • fast/selectors/nth-child-on-root.html: Added.
11:08 PM Changeset in webkit [167584] by benjamin@webkit.org
  • 32 edits in trunk

Add Element.matches, the standard name for webkitMatchesSelector
https://bugs.webkit.org/show_bug.cgi?id=131922

Reviewed by Andreas Kling.

Source/WebCore:
This patch just renames webkitMatchesSelector() to matches().

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):
The Objective-C binding generator only supported ImplementedAs for getters and setters.
This adds support for the option so that Element.matches can be generated for Obj-C.

  • dom/Element.cpp:

(WebCore::Element::matches):
(WebCore::Element::webkitMatchesSelector): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

LayoutTests:
Update the tests to verify both Element.matches and Element.webkitMatchesSelector

  • fast/dom/SelectorAPI/attrname-case-insensitive-expected.txt:
  • fast/dom/SelectorAPI/attrname-case-insensitive.html:
  • fast/dom/SelectorAPI/attrname-case-sensitive-expected.txt:
  • fast/dom/SelectorAPI/attrname-case-sensitive.xhtml:
  • fast/dom/SelectorAPI/caseID-almost-strict-expected.txt:
  • fast/dom/SelectorAPI/caseID-almost-strict.html:
  • fast/dom/SelectorAPI/caseID-expected.txt:
  • fast/dom/SelectorAPI/caseID-strict-expected.txt:
  • fast/dom/SelectorAPI/caseID-strict.html:
  • fast/dom/SelectorAPI/caseID.html:
  • fast/dom/SelectorAPI/caseTag-expected.txt:
  • fast/dom/SelectorAPI/caseTag.html:
  • fast/dom/SelectorAPI/caseTagX-expected.txt:
  • fast/dom/SelectorAPI/caseTagX.xhtml:
  • fast/dom/SelectorAPI/detached-element-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector.html:
  • fast/dom/SelectorAPI/script-tests/detached-element.js:
  • fast/dom/SelectorAPI/script-tests/undefined-null-stringify.js:
  • fast/dom/SelectorAPI/script-tests/viewless-document.js:
  • fast/dom/SelectorAPI/undefined-null-stringify-expected.txt:
  • fast/dom/SelectorAPI/viewless-document-expected.txt:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • fast/harness/results.html:
11:02 PM Changeset in webkit [167583] by ap@apple.com
  • 5 edits in trunk/LayoutTests

Expando properties on attribute nodes disappear
https://bugs.webkit.org/show_bug.cgi?id=88045

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:

Consolidated test expectations, because all ports are equally affected. Some
platforms accidentally start to pass this test sometimes, but there is no real fix yet.

10:21 PM Changeset in webkit [167582] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: RenderLayer's size is set using enclosingRect() which can result in cruft.
https://bugs.webkit.org/show_bug.cgi?id=131468

Reviewed by Darin Adler.

Layers marked opaque may not paint edge pixels, when RenderLayer bounds are non-integral and
get device pixel snapped.
For details see this: https://trac.webkit.org/r159463

Source/WebCore:
Test: compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

LayoutTests:

  • compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background-expected.html: Added.
  • compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html: Added.
9:43 PM Changeset in webkit [167581] by Darin Adler
  • 1 edit in trunk/Source/WebCore/ChangeLog

Fix typo in change log

9:40 PM Changeset in webkit [167580] by Darin Adler
  • 3 edits
    2 adds in trunk

Simple layout can get confused by coordinate overflow
https://bugs.webkit.org/show_bug.cgi?id=131890
rdar://problem/15558510

Reviewed by Andreas Kling.

Source/WebCore:
Test: fast/css/simple-layout-overflow.html

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::rangeForRect):
If lastLine is smaller than firstList, just ignore it.

LayoutTests:

  • fast/css/simple-layout-overflow-expected.txt: Added.
  • fast/css/simple-layout-overflow.html: Added.
9:39 PM Changeset in webkit [167579] by Darin Adler
  • 11 edits in trunk/Source/WebCore

ScriptExecutionContext::stopActiveDOMObjects iterates a hash map that can change during iteration (for multiple reasons, including GC)
https://bugs.webkit.org/show_bug.cgi?id=52719

Reviewed by Alexey Proskuryakov.

At least two specific ways this can happen:

1) XMLHttpRequest::stop can trigger a JavaScript garbage collection.
2) NotificationCenter::stop can delete the last references to notifications;

those notifications are also active DOM objects.

Besides fixing the iteration in that function, did some other fixes for the
ScriptExecutionContext class, including some coding style changes. Many uses
of nullptr instead of 0, without listing each function separately below.

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::contextDestroyed): Call through to the base class
version of contextDestroyed rather than repeating what it does (with a large
comment that doesn't acknowledge the base class alread does it).

  • Modules/webdatabase/DatabaseContext.h: Removed some unneeded includes.

Wrote out "private" explicitly for deriving from ActiveDOMObject. Made the
ActiveDOMObject function overrides private, and marked them override and final.

  • dom/ActiveDOMObject.h: Updated comments. Replaced suspendIfNeededCalled with

assertSuspendIfNeededWasCalled, which has an empty inline version in the header.
Renamed m_suspendIfNeededCalled to m_suspendIfNeededWasCalled.

  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::ActiveDOMObject): Pass a reference instead of a pointer.
(WebCore::ActiveDOMObject::~ActiveDOMObject): Ditto.
(WebCore::ActiveDOMObject::suspendIfNeeded): Ditto.

  • dom/ContextDestructionObserver.cpp:

(WebCore::ContextDestructionObserver::observeContext): Pass a reference instead of a pointer.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::MessagePort): Pass a reference instead of a pointer.
(WebCore::MessagePort::~MessagePort): Ditto.
(WebCore::MessagePort::disentangle): Ditto.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext): Updated flags used
for assertions so they are conditional and updated their names.
(WebCore::takeAny): Added. Helper function that we can consider for HashSet in
the future; makes loop below easier to read.
(WebCore::checkConsistency): Added. Assertions that were done multiple places below,
and should not be written over and over again.
(WebCore::ScriptExecutionContext::~ScriptExecutionContext): Changed to use C++11
for loops and the takeAny function above.
(WebCore::ScriptExecutionContext::dispatchMessagePortEvents): Ditto.
(WebCore::ScriptExecutionContext::createdMessagePort): Changed to take a reference
for clarity and so it doesn't have to do an assert the pointer is non-null.
(WebCore::ScriptExecutionContext::destroyedMessagePort): Ditto.
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects): Changed to use
C++11 for loop and reworded comment and redid assertions.
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Ditto.
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects): Ditto.
(WebCore::ScriptExecutionContext::stopActiveDOMObjects): Changed to support
removal of an active DOM object during the stop function. Included new comments
to clarify what the rules are.
(WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded): Changed to take
a reference for clarity and so it doesn't have to assert a pointer is non-null.
(WebCore::ScriptExecutionContext::didCreateActiveDOMObject): Ditto. Also changed to
use RELEASE_ASSERT instead of CRASH.
(WebCore::ScriptExecutionContext::willDestroyActiveDOMObject): Ditto.
(WebCore::ScriptExecutionContext::didCreateDestructionObserver): Ditto.
(WebCore::ScriptExecutionContext::willDestroyDestructionObserver): Ditto.
(WebCore::ScriptExecutionContext::closeMessagePorts): Moved the body of this
function into its one call site, ScriptExecutionContext::stopActiveDOMObjects,
since it's simple enough when written as a C++11 for loop.
(WebCore::ScriptExecutionContext::hasPendingActivity): Added. This function was
already exported for workers, and implementing it outside this class required
exposing the private HashSet members; more sensible to implement it here and
simply make it public in WorkerGlobalScope.

  • dom/ScriptExecutionContext.h: Removed unnecessary includes and forward declarations.

Removed a long-ago-fixed FIXME. Changed various functions to take references instead of
pointers. Added a protected hasPendingActivity function, deleted the closeMessagePorts
function, deleted the ActiveDOMObjectsSet typedef, made the assertion flags be
!ASSERT_DISABLED only, and deleted the messagePorts and activeDOMObjects functions.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::hasPendingActivity): Deleted. This is now implemented
in the base class.

  • workers/WorkerGlobalScope.h: Make hasPendingActivity function from the base class

public instead of declaring it in this class.

9:28 PM Changeset in webkit [167578] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Mac] Unable to select 'Off' or 'Auto' from track menu when tracks consist of unsupported track types
https://bugs.webkit.org/show_bug.cgi?id=131908
<rdar://problem/15999882>

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSelectedTextTrack): When the user selects 'Off', make sure the currently 'showing'
track is switched to 'disabled'.

9:19 PM Changeset in webkit [167577] by akling@apple.com
  • 9 edits in trunk/Source

Speed up jsStringWithCache() through WeakGCMap inlining.
<https://webkit.org/b/131923>

Source/JavaScriptCore:
Always inline WeakGCMap::add() but move the slow garbage collecting
path out-of-line.

Reviewed by Darin Adler.

  • runtime/WeakGCMap.h:

(JSC::WeakGCMap::add):
(JSC::WeakGCMap::gcMap):

Source/WebCore:
Inline the common path of WeakGCMap::add() in jsStringWithCache().
26% progression on Bindings/id-getter.html

Reviewed by Darin Adler.

  • WebCore.exp.in:
  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringWithCache):

Move jsStringWithCache() out of line since we're now blowing up
its size quite a bit.

Source/WTF:
Add HashMap::fastAdd(), which is the same as add() except we'll tell
the compiler to aggressively inline it.

Reviewed by Darin Adler.

  • wtf/HashMap.h:
  • wtf/HashTable.h:
3:45 PM Changeset in webkit [167576] by mitz@apple.com
  • 2 edits in trunk/Tools

Fixed a test timing out after r167572.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webView:didFinishNavigation:]): Renamed from
-webView:didFinishLoadingNavigation:.

2:53 PM Changeset in webkit [167575] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the build after r167574

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

2:28 PM Changeset in webkit [167574] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

Compile the pseudo class :target
https://bugs.webkit.org/show_bug.cgi?id=131904

Reviewed by Andreas Kling.

The pseudo class :target is trivial, it just compare the current element with
Document::cssTarget().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::getDocument):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):

  • dom/Document.h:

(WebCore::Document::cssTargetMemoryOffset):

1:54 PM Changeset in webkit [167573] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

[Cocoa] Crash when setting a bundle parameter to nil
https://bugs.webkit.org/show_bug.cgi?id=131917

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setObject:forBundleParameter:]): If the object is nil, use
-[NSMutableDictionary removeObjectForKey:] rather than -setObject:forKey:.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:

(-[WKWebProcessBundleParameters setParameter:forKey:]): Ditto.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::setBundleParameter): Unrelatedly, create m_bundleParameters if
needed, as it may have not been created on intialization if no bundle parameters were set
at the time.

1:53 PM Changeset in webkit [167572] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Remove unused -webView:didFinishLoadingNavigation: delegate method
https://bugs.webkit.org/show_bug.cgi?id=131914

Reviewed by Sam Weinig.

  • UIProcess/Cocoa/NavigationState.h: Removed flag from m_navigationDelegateMethods struct.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Removed check for whether the method is
implemented.
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame): Stopped calling the method
if implemented.

1:43 PM Changeset in webkit [167571] by benjamin@webkit.org
  • 19 edits in trunk/Source/WebCore

Rename the CSSSelector PseudoType to PseudoClassType
https://bugs.webkit.org/show_bug.cgi?id=131907

Reviewed by Andreas Kling.

Pseudo Elements and Page Pseudo Classes have been moved out of PseudoType in previous patches.
The remaining values in the PseudoType enumeration are the pseudo classes.

This patch is the final clean up, PseudoType is renamed to PseudoClassType.

  • css/CSSGrammar.y.in:
  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):

  • css/CSSParserValues.h:

(WebCore::CSSParserSelector::pseudoClassType):
(WebCore::CSSParserSelector::pseudoType): Deleted.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::specificityForOneSelector):
(WebCore::appendPseudoClassFunctionTail):
(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:

(WebCore::CSSSelector::pseudoClassType):
(WebCore::CSSSelector::pseudoElementType):
(WebCore::CSSSelector::pagePseudoClassType):
(WebCore::pseudoClassIsRelativeToSiblings):
(WebCore::CSSSelector::isSiblingSelector):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::pseudoType): Deleted.

  • css/RuleSet.cpp:

(WebCore::RuleSet::findBestRuleSetAndAdd):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::checkScrollbarPseudoClass):
(WebCore::SelectorChecker::determineLinkMatchType):
(WebCore::SelectorChecker::matchesFocusPseudoClass):

  • css/SelectorChecker.h:

(WebCore::SelectorChecker::isCommonPseudoClassSelector):

  • css/SelectorCheckerFastPath.cpp:

(WebCore::SelectorCheckerFastPath::commonPseudoClassSelectorMatches):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/SelectorPseudoTypeMap.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForElement):

  • css/makeSelectorPseudoClassAndCompatibilityElementMap.py:

(enumerablePseudoType):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::addPseudoType): Deleted.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::computePseudoClassMask):
(WebCore::InspectorCSSAgent::forcePseudoState):

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

(WebCore::InspectorInstrumentation::forcePseudoStateImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::forcePseudoState):

12:33 PM Changeset in webkit [167570] by ggaren@apple.com
  • 10 edits in trunk/Source/bmalloc

bmalloc: Segregate pages by objects size
https://bugs.webkit.org/show_bug.cgi?id=131909

Reviewed by Andreas Kling.

2% reduction in memory-at-end on the Membuster memory_warning benchmarks.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocateSlowCase):

  • bmalloc/Allocator.h:

(bmalloc::Allocator::allocateFastCase):
(bmalloc::Allocator::smallAllocatorFor): Use the new shared helper
function for size class calculation.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::Deallocator):
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::deallocateSmallLine):
(bmalloc::Deallocator::allocateSmallLine):

  • bmalloc/Deallocator.h: Keep a cache for every size class, since the

cache can't be shared anymore.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallLineSlowCase):

  • bmalloc/Heap.h:

(bmalloc::Heap::deallocateSmallLine): Ditto.

(bmalloc::Heap::allocateSmallLine): Check size class in addition to
page refcount when allocating a line because we might have deallocated
the page and the recycled it for another size class.

(bmalloc::Heap::deallocateMediumLine):
(bmalloc::Heap::allocateMediumLine):

  • bmalloc/Line.h:

(bmalloc::Line::refCount):

  • bmalloc/Page.h:

(bmalloc::Page::refCount):
(bmalloc::Page::smallSizeClass):
(bmalloc::Page::setSmallSizeClass):
(bmalloc::Page<Traits>::refCount): Deleted.

  • bmalloc/Sizes.h:

(bmalloc::Sizes::smallSizeClassFor): New shared API for computing
an index into an array from a size.

12:02 PM Changeset in webkit [167569] by ap@apple.com
  • 4 edits
    4 adds in trunk

Crashes in HTMLFormElement::submit.
https://bugs.webkit.org/show_bug.cgi?id=131910
<rdar://problem/15661790>

Source/WebCore:
Based on a patch by Kent Tamura.

Reviewed by Anders Carlsson.

Tests: fast/forms/form-submission-crash-2.html

fast/forms/form-submission-crash.html

Code that executes arbitrary JS needs to protect objects that it uses afterwards.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::submit):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::submitForm):

LayoutTests:
Reviewed by Anders Carlsson.

  • fast/forms/form-submission-crash-2-expected.txt: Added.
  • fast/forms/form-submission-crash-2.html: Added.
  • fast/forms/form-submission-crash-expected.txt: Added.
  • fast/forms/form-submission-crash.html: Added.
10:43 AM Changeset in webkit [167568] by Antti Koivisto
  • 23 edits in trunk

Text bounding box computation for simple line layout is wrong
https://bugs.webkit.org/show_bug.cgi?id=131912

Reviewed by Andreas Kling.

Source/WebCore:

Top-left is currently the first line top-left which is not always correct.

  • WebCore.exp.in:
  • rendering/RenderText.cpp:

(WebCore::RenderText::firstRunLocation):
(WebCore::RenderText::firstRunOrigin): Deleted.
(WebCore::RenderText::firstRunX): Deleted.
(WebCore::RenderText::firstRunY): Deleted.

Keep just one accessor and rename it.
Encapsulate the line box and simple line versions.

  • rendering/RenderText.h:
  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::firstRunLocation):

Line box version.

  • rendering/RenderTextLineBoxes.h:
  • rendering/RenderTreeAsText.cpp:


Simplify RenderText dumping.

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::computeTextBoundingBox):

Return the correct x position.

(WebCore::SimpleLineLayout::computeTextFirstRunLocation):

Simple line version.

  • rendering/SimpleLineLayoutFunctions.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGInlineText):

LayoutTests:

Some dumped RenderText sizes change in table related test. These are progressions,
the new results match the contained lines. There are no visual changes.

  • platform/mac/fast/table/dynamic-caption-add-remove-before-child-expected.txt:
  • platform/mac/fast/table/multiple-captions-display-expected.txt:
  • platform/mac/tables/mozilla/marvin/body_col-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_th_valign_baseline-expected.txt:
  • platform/mac/tables/mozilla/other/body_col-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug10140-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug10216-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/core/captions3-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:
10:40 AM Changeset in webkit [167567] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

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

broke GTK Debug bot (Requested by philn on #webkit).

Reverted changeset:

"[GTK] Add llvmpipe (Mesa) to the JHBuild moduleset and force
it when running layout tests"
https://bugs.webkit.org/show_bug.cgi?id=131472
http://trac.webkit.org/changeset/167510

6:58 AM Changeset in webkit [167566] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

JavaScriptCore: ARM build fix after r167094.
https://bugs.webkit.org/show_bug.cgi?id=131612

Patch by László Langó <llango.u-szeged@partner.samsung.com> on 2014-04-20
Reviewed by Michael Saboff.

After r167094 there are many build errors on ARM like these:

/tmp/ccgtHRno.s:370: Error: invalid constant (425a) after fixup
/tmp/ccgtHRno.s:374: Error: invalid constant (426e) after fixup
/tmp/ccgtHRno.s:378: Error: invalid constant (4282) after fixup
/tmp/ccgtHRno.s:382: Error: invalid constant (4296) after fixup

Problem is caused by the wrong generated assembly like:

"\tmov r2, (" LOCAL_LABEL_STRING(llint_op_strcat) " - " LOCAL_LABEL_STRING(relativePCBase) ")\n" /home/webkit/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm:741

mov can only move 8 bit immediate, but not every constant fit into 8 bit. Clang converts
the mov to a single movw or a movw and a movt, depending on the immediate, but binutils doesn't.
Add a new ARM specific offline assembler instruction (mvlbl) for the following llint_entry
use case: move rn, (label1-label2) which is translated to movw and movt.

  • llint/LowLevelInterpreter.asm:
  • offlineasm/arm.rb:
  • offlineasm/instructions.rb:
6:46 AM Changeset in webkit [167565] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Unreviewed build fix after r167336.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchAdd32):

4:45 AM Changeset in webkit [167564] by commit-queue@webkit.org
  • 6 edits
    3 deletes in trunk

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

It broke DYEBench (Requested by mhahnenberg on #webkit).

Reverted changeset:

"Deleting properties poisons objects"
https://bugs.webkit.org/show_bug.cgi?id=131551
http://trac.webkit.org/changeset/167501

Apr 19, 2014:

9:42 PM Changeset in webkit [167563] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

It should be OK to store new fields into objects that have no prototypes
https://bugs.webkit.org/show_bug.cgi?id=131905

Reviewed by Mark Hahnenberg.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::emitPrototypeChecks):

  • tests/stress/put-by-id-transition-null-prototype.js: Added.

(foo):

8:38 PM Changeset in webkit [167562] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: RenderLayer's clipping should snap to device pixel boundaries.
https://bugs.webkit.org/show_bug.cgi?id=131466

Reviewed by Simon Fraser.

Fractional pixel clipping can produce cruft on RenderLayers. Since RenderLayer
sizing and painting are snapped, painting clip rect needs to be snapped the same way.

Source/WebCore:
Test: fast/clip/clip-when-rect-has-fractional-pixel-value.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):

LayoutTests:

  • fast/clip/clip-when-rect-has-fractional-pixel-value-expected.html: Added.
  • fast/clip/clip-when-rect-has-fractional-pixel-value.html: Added.
8:10 PM Changeset in webkit [167561] by Brent Fulgham
  • 2 edits in trunk

Revert unintended workspace change in my last commit.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme: Set the

Scheme type back to Debug.

7:32 PM Changeset in webkit [167560] by Brent Fulgham
  • 8 edits in trunk

Latched scrolling may interact badly with custom programmatic scrolling
https://bugs.webkit.org/show_bug.cgi?id=131869
<rdar://problem/16249557>

Reviewed by Darin Adler.

  • dom/Element.cpp:

(WebCore::Element::setScrollLeft): Mark scrollable area as having
been scrolled programmatically.
(WebCore::Element::setScrollTop): Ditto.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent): Check for programmatic scroll, and
clear latched state if the handler manually scrolled. Clear programmatic
scroll state at the end of event handling.
(WebCore::EventHandler::clearLatchedState): Refactored code.

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

(WebCore::EventHandler::platformPrepareForWheelEvents): Check
if scrollable area was scrolled programmatically. If it was, do
not honor latching behavior.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::ScrollableArea): Initialize new member.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::isScrolledProgrammatically): Added.
(WebCore::ScrollableArea::setScrolledProgrammatically): Added.

6:38 PM Changeset in webkit [167559] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: grid rows are not recognized do to lack of explicit role="row", role="gridcell"
https://bugs.webkit.org/show_bug.cgi?id=131819

Reviewed by Darin Adler.

Source/WebCore:
Test: accessibility/table-with-missing-aria-role-rows.html

If a table is using role="grid", and it has <tr> elements that do not have
role="row", we should still treat them as row elements.

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addTableCellChild):

LayoutTests:

  • accessibility/table-with-missing-aria-role-rows-expected.txt: Added.
  • accessibility/table-with-missing-aria-role-rows.html: Added.
6:25 PM Changeset in webkit [167558] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Malformed tables exposing incorrect col and colSpans
https://bugs.webkit.org/show_bug.cgi?id=131796

Reviewed by Darin Adler.

Source/WebCore:
Test: accessibility/table-incorrect-colspan-cell.html

When a developer has specified malformed colspans, accessibility is reporting those values instead of the effective column information.

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::columnIndexRange):

LayoutTests:

  • accessibility/table-incorrect-colspan-cell-expected.txt: Added.
  • accessibility/table-incorrect-colspan-cell.html: Added.
6:22 PM Changeset in webkit [167557] by benjamin@webkit.org
  • 9 edits in trunk/Source

Make the CSS JIT compile for ARM64
https://bugs.webkit.org/show_bug.cgi?id=131834

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-19
Reviewed by Gavin Barraclough.

Source/JavaScriptCore:
Extend the ARM64 MacroAssembler to support the code generation required by
the CSS JIT.

  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::addPtrNoFlags):
(JSC::MacroAssemblerARM64::or32):
(JSC::MacroAssemblerARM64::branchPtr):
(JSC::MacroAssemblerARM64::test32):
(JSC::MacroAssemblerARM64::branch):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::test32):

Source/WebCore:
Add the CPU specific code required to compile SelectorCompiler on ARM64.
The code is absolutely non-functional, it would crash immediately, but it compiles.

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::FunctionCall):
(WebCore::FunctionCall::callAndBranchOnCondition):

  • cssjit/RegisterAllocator.h:

What am I supposed to do with all those registers? There are so many of them :)
The array calleeSavedRegisters is defined for compatibility but it cannot be reached at the moment.

(WebCore::RegisterAllocator::isValidRegister):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
Implement modulo by doing dividend - (divisor * int(dividend/divisor)).

  • cssjit/StackAllocator.h:

StackAllocator will need a small redesign to handle the 16 bytes alligned stack of
ARM64.
The code has been modified to build but it is pretty useless.

(WebCore::StackAllocator::allocateUninitialized):
(WebCore::StackAllocator::push):
(WebCore::StackAllocator::pop):
(WebCore::StackAllocator::popAndDiscard):
(WebCore::StackAllocator::popAndDiscardUpTo):
(WebCore::StackAllocator::alignStackPreFunctionCall):
(WebCore::StackAllocator::unalignStackPostFunctionCall):

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

Plug-in process crashes if NP_Initialize returns an error the second time it's called
https://bugs.webkit.org/show_bug.cgi?id=131903
<rdar://problem/14355462>

Reviewed by Sam Weinig.

  • Shared/Plugins/Netscape/NetscapePluginModule.cpp:

(WebKit::NetscapePluginModule::decrementLoadCount):
Don't try to unload the plug-in if it hasn't been initialized.

5:28 PM Changeset in webkit [167555] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.

repaintRectsAsText() reports wrong subpixel dirty rects on hidpi.

  • platform/mac/TestExpectations:
4:02 PM Changeset in webkit [167554] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc: Improved alignment in LargeChunk
https://bugs.webkit.org/show_bug.cgi?id=131895

Reviewed by Andreas Kling.

  • bmalloc/Chunk.h:
  • bmalloc/LargeChunk.h: Align to vmPageSize just like Chunk does.

Technically, the previous alignment was harmless, but I would prefer,
dear reader, not to have to explain the interlocking set of
circumstances that made it so.

3:26 PM Changeset in webkit [167553] by Simon Fraser
  • 14 edits in trunk/Source

[UI-side compositing] Implement blend modes
https://bugs.webkit.org/show_bug.cgi?id=131891
<rdar://problem/16490085>

Reviewed by Tim Horton.

Implement blend modes with UI-side compositing.

PlatformCALayer::setBlendMode() becomes pure virtual, and overridden in
PlatformCALayerMac and PlatformCALayerRemote.
PlatformCAFilters::setBlendingFiltersOnLayer() now takes a raw platform
layer, so it can be called from the UI process on a CALayer*.

Source/WebCore:
Fix an issue with GraphicsLayerCA::LayerChange flags. 1 << 31 shifts
a signed integer, so it ended up setting all the high bits in m_uncommittedChanges,
causing us to push blend modes to the UI process for every layer. Fix by shifting
an unsigned long long (1LLU << 31). This should also fix a build warning on Windows.

  • WebCore.exp.in:
  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCAFilters.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/mac/PlatformCAFiltersMac.mm:

(PlatformCAFilters::setBlendingFiltersOnLayer):

  • platform/graphics/ca/mac/PlatformCALayerMac.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayerMac::setFilters):
(PlatformCALayerMac::setBlendMode):
(PlatformCALayer::setBlendMode): Deleted.

Source/WebKit2:
Add BlendMode to LayerProperties, and initialize, encode and decode it,
as well as adding dumping support for blend modes.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::applyPropertiesToLayer):

  • Shared/mac/RemoteLayerTreeTransaction.h:
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setBlendMode):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
3:16 PM Changeset in webkit [167552] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix leak of UIScreenEdgePanGestureRecognizer in WKSwipeTransitionController
https://bugs.webkit.org/show_bug.cgi?id=131877

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-19
Reviewed by Darin Adler.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):

3:12 PM Changeset in webkit [167551] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix AVPlayerController leak on pages with video
https://bugs.webkit.org/show_bug.cgi?id=131878

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-19
Reviewed by Eric Carlson.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController init]):
Assigning to the retain property will increment the count,
so balance the alloc with an autorelease.

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

Two little shortcuts to the JSType.
<https://webkit.org/b/131896>

Tweak two sites that take the long road through JSCell::structure()->typeInfo()
to look at data that's already in JSCell::type().

Reviewed by Darin Adler.

  • runtime/NameInstance.h:

(JSC::isName):

  • runtime/NumberPrototype.cpp:

(JSC::toThisNumber):

2:42 PM Changeset in webkit [167549] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Don’t install a source file inside WebProcess.app.

  • WebKit2.xcodeproj/project.pbxproj: Removed ViewUpdateDispatcher.messages.in from

WebProcess’s Copy Bundle Resources build phase.

2:13 PM Changeset in webkit [167548] by fpizlo@apple.com
  • 5 edits in trunk/Source

Make it easier to check if an integer sum would overflow
https://bugs.webkit.org/show_bug.cgi?id=131900

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
  • runtime/Operations.h:

(JSC::jsString):

Source/WTF:

  • wtf/CheckedArithmetic.h:

(WTF::checkedSum):
(WTF::sumOverflows):

2:11 PM Changeset in webkit [167547] by Darin Adler
  • 6 edits in trunk/Source

[Mac] WebView adjusts the cursor even when another window is in front
https://bugs.webkit.org/show_bug.cgi?id=131898
rdar://problem/14619911

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setCursor): Added a check that the window is under the cursor
and do nothing if it's not.

Source/WebKit2:

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setCursor:]): Deleted. Moved the code all into PageClientImpl, since none of it
interacts with anything special about a WKView.

  • UIProcess/API/mac/WKViewInternal.h: Deleted the _setCursor: method.
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setCursor): Added a check that the window is under the cursor
and do nothing if it's not.

1:41 PM Changeset in webkit [167546] by ggaren@apple.com
  • 21 edits
    5 deletes in trunk/Source/bmalloc

2014-04-19 Geoffrey Garen <ggaren@apple.com>

Rolled out r167502 because it caused a crash on the facebook benchmark.

Unreviewed.

bmalloc: Added an XSmall line size
https://bugs.webkit.org/show_bug.cgi?id=131851

Reviewed by Sam Weinig.

1:40 PM Changeset in webkit [167545] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Slap ALWAYS_INLINE on Element attribute lookup things.
<https://webkit.org/b/131892>

Most of the "inline" helpers for setting/getting attributes were not
actually getting inlined by the compiler, so let's make that happen.

Reviewed by Geoffrey Garen.

  • dom/Element.cpp:

(WebCore::Element::synchronizeAttribute):

  • dom/ElementData.h:

(WebCore::ElementData::findAttributeByName):
(WebCore::ElementData::findAttributeIndexByName):

1:36 PM Changeset in webkit [167544] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Address some feedback on https://bugs.webkit.org/show_bug.cgi?id=130684.

  • dfg/DFGOperations.cpp:
  • runtime/JSString.h:

(JSC::JSRopeString::RopeBuilder::append):

1:10 PM Changeset in webkit [167543] by mitz@apple.com
  • 7 edits in trunk/Source/WebKit2

Use XPC services in the iOS Simulator, but not in Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=131894

Reviewed by Anders Carlsson.

  • Configurations/NetworkService.Development.xcconfig: Defined INFOPLIST_FILE for the

Simulator.

  • Configurations/NetworkService.xcconfig: Ditto.
  • Configurations/WebContentService.Development.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::systemDirectoryPath): Added this helper function that returns a slash-terminated
path to the System directory in the current runtime.
(WebKit::ProcessLauncher::launchProcess): Changed to use the above function to tell whether
a development version of WebKit2 is being used.

  • WebKit2Prefix.h: Set WTF_USE_XPC_SERVICES to 1 when targeting the iOS Simulator, but not

when targeting Mountain Lion.

12:47 PM Changeset in webkit [167542] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Telephone number detection should respect its setting consistently
https://bugs.webkit.org/show_bug.cgi?id=131893
rdar://problem/16597639

Reviewed by Tim Horton.

  • editing/Editor.cpp:

(WebCore::Editor::respondToChangedSelection): Only start the timer
if shouldDetectTelephoneNumbers returns true.
(WebCore::Editor::shouldDetectTelephoneNumbers): Added. Calls both
isTelephoneNumberParsingEnabled and TelephoneNumberDetector::isSupported.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Use
shouldDetectTelephoneNumbers.
(WebCore::Editor::clearDataDetectedTelephoneNumbers): Use document()
instead of m_frame.document().

  • editing/Editor.h: Added declaration of shouldDetectTelephoneNumbers.
11:57 AM Changeset in webkit [167541] by Darin Adler
  • 4 edits
    2 adds in trunk

[CSS Regions] Harden the layout in case there are no regions
https://bugs.webkit.org/show_bug.cgi?id=131517

Patch by Andrei Bucur <abucur@adobe.com> on 2014-04-19
Reviewed by Mihnea Ovidenie.

Source/WebCore:
The patch fixes the cases when the content of a flow thread is not
properly invalidated when all the regions of its chain are removed.

Test: fast/regions/simplified-layout-no-regions.html

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::ensureOverflowForBox):

LayoutTests:
Add a test that verifies the content of a flow thread is updated when all
the regions are removed.

  • fast/regions/simplified-layout-no-regions-expected.txt: Added.
  • fast/regions/simplified-layout-no-regions.html: Added.
11:36 AM Changeset in webkit [167540] by ggaren@apple.com
  • 14 edits
    2 adds
    1 delete in trunk/Source/bmalloc

bmalloc: Mutex should be harder to use wrong
https://bugs.webkit.org/show_bug.cgi?id=131879

Reviewed by Andreas Kling.

Mutex now has a proper constructor, so you can't deadlock by forgetting
to initialize it.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::processXSmallAllocatorLog):
(bmalloc::Allocator::processSmallAllocatorLog):
(bmalloc::Allocator::processMediumAllocatorLog):
(bmalloc::Allocator::allocateLarge):
(bmalloc::Allocator::allocateXLarge): Global replace Mutex => StaticMutex,
since the Heap mutex is a static.

  • bmalloc/AsyncTask.h:

(bmalloc::Function>::AsyncTask): Use Mutex, since we're not static. No
need for explicit initialization anymore.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::deallocateLarge):
(bmalloc::Deallocator::deallocateXLarge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSmallLine):
(bmalloc::Deallocator::deallocateXSmallLine):
(bmalloc::Deallocator::allocateSmallLine):
(bmalloc::Deallocator::allocateXSmallLine):
(bmalloc::Deallocator::deallocateMediumLine):
(bmalloc::Deallocator::allocateMediumLine):

  • bmalloc/Deallocator.h:
  • bmalloc/Heap.cpp:

(bmalloc::sleep):
(bmalloc::Heap::Heap):
(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages):
(bmalloc::Heap::scavengeXSmallPages):
(bmalloc::Heap::scavengeMediumPages):
(bmalloc::Heap::scavengeLargeRanges):
(bmalloc::Heap::allocateXSmallLineSlowCase):
(bmalloc::Heap::allocateSmallLineSlowCase):
(bmalloc::Heap::allocateMediumLineSlowCase):
(bmalloc::Heap::allocateXLarge):
(bmalloc::Heap::deallocateXLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::deallocateLarge):

  • bmalloc/Heap.h:

(bmalloc::Heap::deallocateXSmallLine):
(bmalloc::Heap::allocateXSmallLine):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallLine):
(bmalloc::Heap::deallocateMediumLine):
(bmalloc::Heap::allocateMediumLine):

  • bmalloc/Line.h:

(bmalloc::Line<Traits>::deref):

  • bmalloc/Mutex.cpp: Removed.
  • bmalloc/Mutex.h:

(bmalloc::Mutex::Mutex):
(bmalloc::Mutex::init): Deleted.
(bmalloc::Mutex::try_lock): Deleted.
(bmalloc::Mutex::lock): Deleted.
(bmalloc::Mutex::unlock): Deleted.

  • bmalloc/Page.h:

(bmalloc::Page<Traits>::ref):
(bmalloc::Page<Traits>::deref):
(bmalloc::Page<Traits>::refCount):

  • bmalloc/PerProcess.h:

(bmalloc::PerProcess::mutex):
(bmalloc::PerProcess<T>::getSlowCase):

  • bmalloc/StaticMutex.cpp: Added.

(bmalloc::StaticMutex::lockSlowCase):

  • bmalloc/StaticMutex.h: Added.

(bmalloc::StaticMutex::init):
(bmalloc::StaticMutex::try_lock):
(bmalloc::StaticMutex::lock):
(bmalloc::StaticMutex::unlock):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::deallocateXSmallPage):
(bmalloc::VMHeap::deallocateSmallPage):
(bmalloc::VMHeap::deallocateMediumPage):
(bmalloc::VMHeap::deallocateLargeRange):

  • bmalloc/bmalloc.h:

(bmalloc::api::scavenge): Global replace Mutex => StaticMutex,
since the Heap mutex is a static.

11:12 AM Changeset in webkit [167539] by Darin Adler
  • 166 edits in trunk/LayoutTests

Cleared executable bits on many .html and .txt files.

10:48 AM Changeset in webkit [167538] by Alan Bujtas
  • 6 edits
    2 adds in trunk

https://bugs.webkit.org/show_bug.cgi?id=131594
Subpixel rendering: WK1: Wrong repaint rect is calculated when layer has non-compositing transform.

Reviewed by Simon Fraser.

We need to snap the repaint rect for transformed object the same way when we paint them.

Test: fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html

Source/WebCore:

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeRectForRepaint):

LayoutTests:

  • fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform-expected.txt: Added.
  • fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html: Added.
10:46 AM Changeset in webkit [167537] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Crash in -[WKWebProcessPlugInHitTestResult nodeHandle] when nodeHandle() is null
https://bugs.webkit.org/show_bug.cgi?id=131888

Reviewed by Jon Honeycutt.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:

(-[WKWebProcessPlugInHitTestResult nodeHandle]): Added a null check.

10:36 AM Changeset in webkit [167536] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] Fuzzy layers on sites using perspective and transforms
https://bugs.webkit.org/show_bug.cgi?id=131873
<rdar://problem/16540576>

Reviewed by Sam Weinig.

Always set rasterizationScale on CALayers in the UI process
(as we do for WK1) so that layers are rasterized taking the
device scale into account. We can do unconditionally; this
is benign on layers that CA doesn't rasterize.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::applyPropertiesToLayer):

10:36 AM Changeset in webkit [167535] by Simon Fraser
  • 6 edits in trunk/Source

Use 'override' in GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=131882

Reviewed by Tim Horton.

Source/WebCore:

Add 'override' to all overridden functions. Found a few that need
not have been virtual. Removed "allowTiledLayer" stuff that was
never called.

  • WebCore.exp.in:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::requiresTiledLayer):
(WebCore::GraphicsLayerCA::setAllowTiledLayer): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::platformCALayer):
(WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.
(WebCore::GraphicsLayerCA::allowTiledLayer): Deleted.
(WebCore::GraphicsLayerCA::isGraphicsLayerCA): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerLayoutSublayersOfLayer): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerRespondsToLayoutChanges): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerContentsOrientation): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerContentsOpaque): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerDrawsContent): Deleted.
(WebCore::GraphicsLayerCA::platformCALayerLayerDidDisplay): Deleted.

Source/WebKit2:

Add an 'override'.

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
10:04 AM Changeset in webkit [167534] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

Assertion in WebPage::runModal accesses object after it may have been destroyed
https://bugs.webkit.org/show_bug.cgi?id=131875

Reviewed by Anders Carlsson.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runModal): Ref the WebPage so it's still around so we can
check the m_isRunningModal flag.

Apr 18, 2014:

11:57 PM Changeset in webkit [167533] by dino@apple.com
  • 2 edits in trunk/LayoutTests

[WebGL] Two tests failing on Mountain Lion after r167520
https://bugs.webkit.org/show_bug.cgi?id=131886

Skip two failing tests.

  • platform/mac/TestExpectations:
11:53 PM Changeset in webkit [167532] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r164205): WebKit crash @StructureIDTable::get.
<https://webkit.org/b/130539>

Reviewed by Geoffrey Garen.

prepareOSREntry() prepares for OSR entry by first copying the local var
values from the baseline frame to a scartch buffer, which is then used
to fill in the locals in their new position in the DFG frame. Unfortunately,
prepareOSREntry() was using the DFG frame's frameRegisterCount as the frame
size of the baseline frame. As a result, some values of locals in the
baseline frame were not saved off, and the DFG frame may get initialized
with random content that happened to be in the uninitialized (and possibly
unallocated) portions of the scratch buffer.

The fix is to use OSREntryData::m_expectedValues.numberOfLocals() as the
number of locals in the baseline frame that we want to copy to the scratch
buffer.

Note: osrEntryThunkGenerator() is expecting the DFG frameRegisterCount
at offset 0 in the scratch buffer. So, we continue to write that value
there, not the baseline frame size.

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

11:04 PM Changeset in webkit [167531] by timothy@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/dom/gc-attribute-node.html which is flaky
https://bugs.webkit.org/show_bug.cgi?id=131885

  • platform/mac/TestExpectations:
11:03 PM Changeset in webkit [167530] by timothy@apple.com
  • 42 edits
    8 copies
    1 move
    3 adds
    5 deletes in trunk/Source

Web Inspector: Move InspectorProfilerAgent to JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=131673

Passes existing profiler and inspector tests.

Reviewed by Joseph Pecoraro.

  • CMakeLists.txt:
  • DerivedSources.make:

Source/JavaScriptCore:

(Inspector::JSConsoleClient::JSConsoleClient):
(Inspector::JSConsoleClient::profile):
(Inspector::JSConsoleClient::profileEnd):
(Inspector::JSConsoleClient::count): Deleted.

  • inspector/JSConsoleClient.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):

  • inspector/agents/InspectorProfilerAgent.cpp: Added.

(Inspector::InspectorProfilerAgent::InspectorProfilerAgent):
(Inspector::InspectorProfilerAgent::~InspectorProfilerAgent):
(Inspector::InspectorProfilerAgent::addProfile):
(Inspector::InspectorProfilerAgent::createProfileHeader):
(Inspector::InspectorProfilerAgent::enable):
(Inspector::InspectorProfilerAgent::disable):
(Inspector::InspectorProfilerAgent::getUserInitiatedProfileName):
(Inspector::InspectorProfilerAgent::getProfileHeaders):
(Inspector::buildInspectorObject):
(Inspector::InspectorProfilerAgent::buildProfileInspectorObject):
(Inspector::InspectorProfilerAgent::getCPUProfile):
(Inspector::InspectorProfilerAgent::removeProfile):
(Inspector::InspectorProfilerAgent::reset):
(Inspector::InspectorProfilerAgent::didCreateFrontendAndBackend):
(Inspector::InspectorProfilerAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorProfilerAgent::start):
(Inspector::InspectorProfilerAgent::stop):
(Inspector::InspectorProfilerAgent::setRecordingProfile):
(Inspector::InspectorProfilerAgent::startProfiling):
(Inspector::InspectorProfilerAgent::stopProfiling):

  • inspector/agents/InspectorProfilerAgent.h: Added.
  • inspector/agents/JSGlobalObjectProfilerAgent.cpp: Copied from Source/WebCore/inspector/ScriptProfile.idl.

(Inspector::JSGlobalObjectProfilerAgent::JSGlobalObjectProfilerAgent):
(Inspector::JSGlobalObjectProfilerAgent::profilingGlobalExecState):

  • inspector/agents/JSGlobalObjectProfilerAgent.h: Copied from Source/WebCore/inspector/ScriptProfile.idl.
  • inspector/protocol/Profiler.json: Renamed from Source/WebCore/inspector/protocol/Profiler.json.
  • profiler/Profile.h:
  • runtime/ConsoleClient.h:

Source/WebCore:

  • ForwardingHeaders/inspector/agents/InspectorProfilerAgent.h: Added.
  • WebCore.exp.in:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptProfile.cpp: Removed.
  • bindings/js/ScriptProfile.h:
  • bindings/js/ScriptProfiler.cpp: Removed.
  • bindings/js/ScriptProfiler.h: Removed.
  • inspector/InspectorAllInOne.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::profilerEnabled):
(WebCore::InspectorInstrumentation::startProfiling):
(WebCore::InspectorInstrumentation::stopProfiling):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):

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

(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::startProfilingImpl):
(WebCore::InspectorInstrumentation::stopProfilingImpl):
(WebCore::InspectorInstrumentation::consoleTimeStampImpl): Deleted.

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

(WebCore::startProfiling):
(WebCore::stopProfiling):
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::didCallFunction):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didEvaluateScript):
(WebCore::InspectorTimelineAgent::didDispatchXHRLoadEvent): Deleted.

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::inspectorProfilerAgent):
(WebCore::InstrumentingAgents::setInspectorProfilerAgent):

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript): Deleted.

  • inspector/PageDebuggerAgent.h:
  • inspector/PageProfilerAgent.cpp: Added.

(WebCore::PageProfilerAgent::PageProfilerAgent):
(WebCore::PageProfilerAgent::profilingGlobalExecState):

  • inspector/PageProfilerAgent.h: Added.

(WebCore::PageProfilerAgent::~PageProfilerAgent):

  • inspector/ScriptProfile.idl:
  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::appendProfile):

  • inspector/TimelineRecordFactory.h:
  • inspector/WebConsoleAgent.cpp:
  • inspector/WebProfilerAgent.cpp: Added.

(WebCore::WebProfilerAgent::WebProfilerAgent):
(WebCore::WebProfilerAgent::enable):
(WebCore::WebProfilerAgent::disable):

  • inspector/WebProfilerAgent.h: Added.

(WebCore::WebProfilerAgent::~WebProfilerAgent):

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):

  • inspector/WorkerProfilerAgent.cpp: Added.

(WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
(WebCore::WorkerProfilerAgent::profilingGlobalExecState):

  • inspector/WorkerProfilerAgent.h: Added.

(WebCore::WorkerProfilerAgent::~WorkerProfilerAgent):

  • loader/appcache/ApplicationCacheGroup.cpp:
  • page/PageConsole.cpp:

(WebCore::PageConsole::profile):
(WebCore::PageConsole::profileEnd):
(WebCore::PageConsole::time): Deleted.
(WebCore::PageConsole::timeEnd): Deleted.
(WebCore::PageConsole::timeStamp): Deleted.

  • page/PageConsole.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • xml/XMLHttpRequest.cpp:
10:31 PM Changeset in webkit [167529] by Simon Fraser
  • 9 edits
    2 adds in trunk

Contents of directly composited image layers are sometimes missing
https://bugs.webkit.org/show_bug.cgi?id=131880

Reviewed by Tim Horton.

Source/WebCore:
RenderLayerBacking::updateGraphicsLayerGeometry() tested whether a
GraphicsLayer had a contents layer to determine whether to call code
that updates the contents rect. However, on Mac, we don't make a contents
layer until later at layer flush time. That would result in an empty
contentsRect being set.

Fix by renaming GraphicsLayer::hasContentsLayer() to usesContentsLayer(),
and on Mac consulting the m_contentsLayerPurpose flag, which is set
at the appropriate time.

Test: compositing/images/update-content-rect.html

  • platform/ScrollView.cpp:

(WebCore::positionScrollbarLayer):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::getDebugBorderInfo):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::usesContentsLayer):
(WebCore::GraphicsLayer::hasContentsLayer): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:

(WebCore::GraphicsLayerTextureMapper::usesContentsLayer):
(WebCore::GraphicsLayerTextureMapper::hasContentsLayer): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::compositingLayerType):

LayoutTests:
Test that that shows the issue in Safari, but not in the test
runner because of timing issues, but maybe it will some day.

  • compositing/images/update-content-rect-expected.html: Added.
  • compositing/images/update-content-rect.html: Added.
10:19 PM Changeset in webkit [167528] by commit-queue@webkit.org
  • 45 edits
    11 deletes in trunk

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

Broke 32-bit build (Requested by ap on #webkit).

Reverted changeset:

"[Mac] implement WebKitDataCue"
https://bugs.webkit.org/show_bug.cgi?id=131799
http://trac.webkit.org/changeset/167527

8:46 PM Changeset in webkit [167527] by eric.carlson@apple.com
  • 45 edits
    17 adds in trunk

[Mac] implement WebKitDataCue
https://bugs.webkit.org/show_bug.cgi?id=131799

Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WebCore:
Tests: http/tests/media/track-in-band-hls-metadata.html

media/track/track-datacue-value.html

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
  • DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.
  • CMakeLists.txt: Add JSDataCueCustom.cpp.
  • bindings/js/JSBindingsAllInOne.cpp:
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • bindings/js/JSDataCueCustom.cpp: Added.

(WebCore::JSDataCue::value):
(WebCore::JSDataCue::setValue):
(WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate

events when paused, don't call sort on an Vector that can't be sorted.

  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue): Initialize m_type.
(WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
(WebCore::DataCue::data): Ask the platform value for data if non-null.
(WebCore::DataCue::setData): Clear m_platformValue and m_value.
(WebCore::DataCue::isEqual): New.
(WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed

to the constructor/set by script.

(WebCore::DataCue::setValue): Set m_value.

  • html/track/DataCue.h:
  • html/track/DataCue.idl:
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
(WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
(WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
(WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead

of VTTCue.

  • html/track/InbandTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::hasCue): Ditto.

  • html/track/TextTrack.h:
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::isEqual): New, test base class equality.

  • html/track/TextTrackCue.h:
  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.

  • html/track/TextTrackCueGeneric.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.

  • html/track/VTTCue.h:
  • platform/SerializedPlatformRepresentation.h: Added.

(WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
(WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):

  • platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.
  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.

(WebCore::InbandMetadataTextTrackPrivateAVF::create):
(WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
(WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
(WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
(WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.

Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::currentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
(WebCore::AVFWrapper::setCurrentTextTrack):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::currentTrack): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
(WebCore::AVFWrapper::setCurrentTrack): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
(WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
(WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.

Create a JSValue representation from an AVMetadataItem.

  • platform/mac/SerializedPlatformRepresentationMac.h: Added.

(WebCore::SerializedPlatformRepresentationMac::platformType):
(WebCore::SerializedPlatformRepresentationMac::nativeValue):

  • platform/mac/SerializedPlatformRepresentationMac.mm: Added.

(WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
(WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
(WebCore::SerializedPlatformRepresentationMac::create):
(WebCore::SerializedPlatformRepresentationMac::data):
(WebCore::SerializedPlatformRepresentationMac::deserialize):
(WebCore::SerializedPlatformRepresentationMac::isEqual):
(WebCore::toSerializedPlatformRepresentationMac):
(WebCore::jsValueWithValueInContext):
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithArrayInContext):
(WebCore::jsValueWithDictionaryInContext):
(WebCore::jsValueWithAVMetadataItemInContext):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

Source/WTF:

  • wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.

LayoutTests:

  • http/tests/media/resources/hls: Added.
  • http/tests/media/resources/hls/metadata: Added.
  • http/tests/media/resources/hls/metadata/fileSequence0.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence1.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence2.ts: Added.
  • http/tests/media/resources/hls/metadata/fileSequence3.ts: Added.
  • http/tests/media/resources/hls/metadata/prog_index.m3u8: Added.
  • http/tests/media/track-in-band-hls-metadata-expected.txt: Added.
  • http/tests/media/track-in-band-hls-metadata.html: Added.
  • media/track/track-datacue-value-expected.txt: Added.
  • media/track/track-datacue-value.html: Added.
  • platform/efl/TestExpectations: Skip the new tests.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/js/dom/global-constructors-attributes-expected.txt: Update.
  • platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Update.
  • platform/mac/TestExpectations: Skip DataCue test on all Mac versions. Skip HLS test on

Mountain Lion.

  • platform/win/TestExpectations: Skip the new tests.
8:23 PM Changeset in webkit [167526] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc: AsyncTask should use Mutex instead of std::mutex
https://bugs.webkit.org/show_bug.cgi?id=131865

Reviewed by Gavin Barraclough.

std::mutex is so slow that it makes parallelizing simple tasks through
AsyncTask a net regression. Mutex fixes this.

  • bmalloc/AsyncTask.h:

(bmalloc::Function>::AsyncTask):
(bmalloc::Function>::join):
(bmalloc::Function>::runSlowCase):
(bmalloc::Function>::entryPoint):

  • bmalloc/Mutex.h:

(bmalloc::Mutex::init):

6:38 PM Changeset in webkit [167525] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Keep the WebPageProxy alive for the lifetime of all PageLoadState::Transaction objects
https://bugs.webkit.org/show_bug.cgi?id=131872
<rdar://problem/15758414>

Reviewed by Dan Bernstein.

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::PageLoadState):
(WebKit::PageLoadState::Transaction::Transaction):
(WebKit::PageLoadState::Transaction::~Transaction):

  • UIProcess/PageLoadState.h:

(WebKit::PageLoadState::Transaction::Transaction): Deleted.
(WebKit::PageLoadState::Transaction::~Transaction): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

5:49 PM Changeset in webkit [167524] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebCore

Harden RenderInline::inlineElementContinuation()

<https://bugs.webkit.org/show_bug.cgi?id=131858>

Reviewed by Sam Weinig.

No new tests, as there are no known cases of this happening.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::inlineElementContinuation):
Return nullptr if the continuation is neither a RenderInline nor a
RenderBlock.

5:44 PM Changeset in webkit [167523] by Stephanie Lewis
  • 10 edits in trunk/Source

We shouldn’t create page throttlers for other pages than WebKit2 pages.

Source/WebCore:
Part of <rdar://problem/16473045> Visibility state counters are often incorrect
https://bugs.webkit.org/show_bug.cgi?id=131696

Reviewed by Gavin Barraclough.

No new test since not web exposed.

Page throttlers were being created for SVG images and other page instances that
were not accurately tracking the states that enable and disable page throttling.
Make the throttler an unique ptr and only initialize it for WebKit2.

This also fixes an inefficiency where we would throttle a new page on creation because
we assumed it was visible even if that was not the case.

  • WebCore.exp.in:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute): Check page throttler exists.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::started): ditto

  • page/Page.cpp:

(WebCore::Page::Page): Don’t automatically create page throttler.
(WebCore::Page::createPageThrottler): Create page throttler.
(WebCore::Page::setViewState): Check page throttler exists.

  • page/Page.h:

(WebCore::Page::pageThrottler): Make the page throttler a unique ptr.

  • page/PageThrottler.h:
  • page/Settings.cpp:

(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Check page throttler exists.

Source/WebKit2:
Part of <rdar://problem/16473045> Visibility state counters are often incorrect.
https://bugs.webkit.org/show_bug.cgi?id=131696

Reviewed by Gavin Barraclough.

Page throttlers were being created for SVG images and other page instances that
were not accurately tracking the states that enable and disable page throttling.
Make the throttler an unique ptr and only initialize it for WebKit2.

This also fixes an inefficiency where we would throttle a new page on creation because
we assumed it was visible even if that was not the case.

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: Check page throttler exists.

(WebKit::NPRuntimeObjectMap::evaluate):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Initialize page throttler for WebKit2 views.
(WebKit::WebPage::mouseEvent): Check page throttler exists.
(WebKit::WebPage::wheelEvent): ditto
(WebKit::WebPage::keyEvent): ditto

5:44 PM Changeset in webkit [167522] by Stephanie Lewis
  • 6 edits in trunk/Source/WebCore

Move DOM throttling out of the page throttler
<rdar://problem/16473004>
https://bugs.webkit.org/show_bug.cgi?id=131697

Reviewed by Gavin Barraclough.

No new tests since it's not web exposed.

DOM timer throttling is currently part of the page throttler which uses per process
state and per page state to determine when to throttle. This led us to being overly
conservative when turning DOM throttling off. It should only respond to view state changes.

Additionally since creating extra page throttlers SVG images caused bugs
in tracking state we'll reserve the page throttler for WebKit2 views. To avoid regressing
WebKit1 we should move DOM timer throttling back to the page.

  • page/Page.cpp:

(WebCore::Page::Page): set DOM timer throttling.
(WebCore::Page::setIsVisuallyIdleInternal): ditto.
(WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): ditto.
(WebCore::Page::setIsVisible): Update view state masks for WebKit1 to include IsVisibleOrOccluded and IsVisuallyIdle

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

(WebCore::PageThrottler::PageThrottler): remove DOM timer throttling.
(WebCore::PageThrottler::started): ditto.
(WebCore::PageThrottler::stopped): ditto.
(WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged): Deleted.

  • page/PageThrottler.h:
  • page/Settings.cpp:

(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):

5:33 PM Changeset in webkit [167521] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Don't allow app sandboxed apps without the network client entitlement to launch the network process
https://bugs.webkit.org/show_bug.cgi?id=131868
<rdar://problem/12354188>

Reviewed by Dan Bernstein.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
Add a new delegate that implements checkEntitlements().

(NetworkServiceInitializer):
Pass the new delegate to XPCServiceInitializer.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

Call checkEntitlements.

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):
Return true.

(WebKit::XPCServiceInitializerDelegate::hasEntitlement):
Helper function that returns whether a client has the given entitlement.

(WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
Helper function that checks whether the client is sandboxed.

5:29 PM Changeset in webkit [167520] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

[WebGL] Limit maximum texture sizes on older Intel hardware
https://bugs.webkit.org/show_bug.cgi?id=131867

Reviewed by Geoffrey Garen.

Both Chrome and Firefox limit the MAX_TEXTURE_SIZE on
older Intel hardware to be at most 4096. This does the
same for WebKit.

  • platform/graphics/Extensions3D.h: Add requiresRestrictedMaximumTextureSize() accessor.
  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:

(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): Record the value of GL_RENDERER
and test for "Intel HD Graphics 3000", which is the problematic hardware.

  • platform/graphics/opengl/Extensions3DOpenGLCommon.h:

(WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize): Getter.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::getIntegerv): If you're asking for MAX_TEXTURE_SIZE or
MAX_CUBE_MAP_TEXTURE_SIZE, and you're on problematic hardware, return a clamped value
(4096 and 1024 respectively).

4:45 PM Changeset in webkit [167519] by alice.barraclough@webkit.org
  • 17 edits in trunk/Source/WebKit2

Find on page - extend API by providing highlighted match index
https://bugs.webkit.org/show_bug.cgi?id=131776

Patch by Alice Barraclough <alice.barraclough@webkit.org> on 2014-04-18
Reviewed by Tim Horton.

  • Shared/WebFindOptions.h: Add an option for determining match index.

Plumb through the API layers the addition of a parameter for match index.

  • UIProcess/API/APIFindClient.h:

(API::FindClient::didFindString):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageFindClient):

  • UIProcess/API/Cocoa/WKWebView.mm:

(toFindOptions):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

(NS_OPTIONS):

  • UIProcess/API/Cocoa/_WKFindDelegate.h:
  • UIProcess/Cocoa/FindClient.h:
  • UIProcess/Cocoa/FindClient.mm:

(WebKit::FindClient::setDelegate):
(WebKit::FindClient::didFindString):

  • UIProcess/WebFindClient.cpp:

(WebKit::WebFindClient::didFindString):

  • UIProcess/WebFindClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFindString):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

The actual tracking of the match index is contained in FindController class.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::FindController): Start out as -1, understood to be an undefined index in this context.
(WebKit::FindController::updateFindUIAfterPageScroll):

Perform the calculation of matchCount if the flag for DetermineMatchIndex is on.

If matchCount exceeds max, keep the match index undefined because otherwise the finding could advance
to a point where the index exceeds the match count, legitimately. If matchCount doesn't exceed the max, then make
sure the match index, which had been being incremented or decremented blindly back in findString(), is normalized
to be less than match count.
(WebKit::FindController::findString):

If there is a user selection existing on the page, the next occurence of the string will be found after that

selection. In that case we still want the index to properly reflect its ordinal position within the entire document.
Use findStringMatchingRanges to provide the match index, and set a flag that prevents the match index from being
blindly incremented or decremented later. After findString() is actually called on the page, increment or decrement
the find index under specific conditions.
(WebKit::FindController::hideFindIndicator): Reset match index when find UI goes away.

  • WebProcess/WebPage/FindController.h: Add m_foundStringMatchIndex to private variables.
  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::hideFindIndicator): Reset match index when find UI goes away.

4:30 PM Changeset in webkit [167518] by hmuller@adobe.com
  • 7 edits
    2 adds in trunk

[CSS Shapes] Add parsing support for gradients
https://bugs.webkit.org/show_bug.cgi?id=131444

Reviewed by Bem Jones-Bey.

Source/WebCore:
Added support for shape-outside gradient values.

Test: fast/shapes/shape-outside-floats/shape-outside-linear-gradient.html

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyShape::applyValue): Accept generated images as shape-outside values.

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::checkShapeImageOrigin): Generated images get a pass, others do not.
(WebCore::getShapeImageAndRect): Use StyleImage::image() to get a generated image.
(WebCore::ShapeOutsideInfo::isEnabledFor):

  • rendering/style/ShapeValue.h:

(WebCore::ShapeValue::isImageValid): Generated images are always considered valid.

LayoutTests:

  • fast/shapes/parsing/parsing-shape-outside-expected.txt:
  • fast/shapes/parsing/parsing-test-utils.js:
  • fast/shapes/shape-outside-floats/shape-outside-linear-gradient-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-linear-gradient.html: Added.
4:29 PM Changeset in webkit [167517] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r155700): Pasting an image into content-editable regions is broken.
<rdar://problem/16654156> and https://bugs.webkit.org/show_bug.cgi?id=131844

Reviewed by Enrica Casucci.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::createFragmentForImageResourceAndAddResource): Add the ArchiveResource before

creating the element that uses it.

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

Actually address Mark's review feedback.

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):

4:20 PM Changeset in webkit [167515] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Options::maximumExecutionCountsBetweenCheckpoints() should be higher for DFG->FTL tier-up but the same for other tier-ups
https://bugs.webkit.org/show_bug.cgi?id=131850

Reviewed by Mark Hahnenberg.

Templatize ExecutionCounter to allow for two different styles of calculating the
checkpoint threshold.

Appears to be a slight speed-up on DYEBench.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::llintExecuteCounter):
(JSC::CodeBlock::offsetOfJITExecuteCounter):
(JSC::CodeBlock::offsetOfJITExecutionActiveThreshold):
(JSC::CodeBlock::offsetOfJITExecutionTotalCount):
(JSC::CodeBlock::jitExecuteCounter):

  • bytecode/ExecutionCounter.cpp:

(JSC::ExecutionCounter<countingVariant>::ExecutionCounter):
(JSC::ExecutionCounter<countingVariant>::forceSlowPathConcurrently):
(JSC::ExecutionCounter<countingVariant>::checkIfThresholdCrossedAndSet):
(JSC::ExecutionCounter<countingVariant>::setNewThreshold):
(JSC::ExecutionCounter<countingVariant>::deferIndefinitely):
(JSC::applyMemoryUsageHeuristics):
(JSC::applyMemoryUsageHeuristicsAndConvertToInt):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold):
(JSC::ExecutionCounter<countingVariant>::setThreshold):
(JSC::ExecutionCounter<countingVariant>::reset):
(JSC::ExecutionCounter<countingVariant>::dump):
(JSC::ExecutionCounter::ExecutionCounter): Deleted.
(JSC::ExecutionCounter::forceSlowPathConcurrently): Deleted.
(JSC::ExecutionCounter::checkIfThresholdCrossedAndSet): Deleted.
(JSC::ExecutionCounter::setNewThreshold): Deleted.
(JSC::ExecutionCounter::deferIndefinitely): Deleted.
(JSC::ExecutionCounter::applyMemoryUsageHeuristics): Deleted.
(JSC::ExecutionCounter::applyMemoryUsageHeuristicsAndConvertToInt): Deleted.
(JSC::ExecutionCounter::hasCrossedThreshold): Deleted.
(JSC::ExecutionCounter::setThreshold): Deleted.
(JSC::ExecutionCounter::reset): Deleted.
(JSC::ExecutionCounter::dump): Deleted.

  • bytecode/ExecutionCounter.h:

(JSC::formattedTotalExecutionCount):
(JSC::ExecutionCounter::maximumExecutionCountsBetweenCheckpoints):
(JSC::ExecutionCounter::clippedThreshold):
(JSC::ExecutionCounter::formattedTotalCount): Deleted.

  • dfg/DFGJITCode.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):

  • llint/LowLevelInterpreter.asm:
  • runtime/Options.h:
4:11 PM Changeset in webkit [167514] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Correct some issues small issues in WK2 file upload InjectedBundle APIs
https://bugs.webkit.org/show_bug.cgi?id=131852

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-18
Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:

(API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload):
The default return value, meaning no, should return the null string. The
result is checked later, and null string is a special value meaning no.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:

(WebKit::InjectedBundlePageUIClient::generateFileForUpload):
Pre-check for the correct client function we will use.

3:56 PM Changeset in webkit [167513] by Bem Jones-Bey
  • 2 edits in trunk/Websites/webkit.org

Add mention of Safari Debug menu and finding out the WebProcess that corresponds to a tab
https://bugs.webkit.org/show_bug.cgi?id=131791

Reviewed by Sam Weinig.

  • building/debug.html:
3:48 PM Changeset in webkit [167512] by aestes@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] REGRESSION (r167039): WebKit incorrectly sets a background process assertion state when displaying a PDF
https://bugs.webkit.org/show_bug.cgi?id=131860
<rdar://problem/16631282>

Reviewed by Tim Horton.

We were basing our process assertion state on whether or not the
process had a WKContentView in a window, but when displaying a PDF
we've removed the WKContentView from the window. Base this decision
instead on whether or not the WKWebView is in the window.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewInWindow):

3:31 PM Changeset in webkit [167511] by ggaren@apple.com
  • 12 edits in trunk/PerformanceTests

Added some more Membuster recordings to MallocBench
https://bugs.webkit.org/show_bug.cgi?id=131862

Reviewed by Sam Weinig.

  • MallocBench/MallocBench/Benchmark.cpp:

(Benchmark::Benchmark):
(Benchmark::run):

  • MallocBench/MallocBench/Benchmark.h:
  • MallocBench/MallocBench/CommandLine.cpp:
  • MallocBench/MallocBench/CommandLine.h:

(CommandLine::runs): Added a --runs option, so we can specify zero runs
for memory warning benchmarks. Those benchmarks want zero runs so that
they can perform a single warmup, which does not free all allocated
objects, and then see how far back to 0MB they can get. Running multiple
times would accumulate leaks, which is not representative of the
simulated scenario.

  • MallocBench/MallocBench/Interpreter.cpp:

(Interpreter::Interpreter):
(Interpreter::run):

  • MallocBench/MallocBench/Interpreter.h: Support not deallocating all

objects allocated during the recording, so we can do low memory warning
memory use measurements, as above.

  • MallocBench/MallocBench/flickr.cpp:

(benchmark_flickr_memory_warning):

  • MallocBench/MallocBench/main.cpp:

(main):

  • MallocBench/MallocBench/reddit.cpp:

(benchmark_reddit_memory_warning):

  • MallocBench/MallocBench/theverge.cpp:

(benchmark_theverge_memory_warning): Adopt the API above.

  • MallocBench/run-malloc-benchmarks: I took a first pass at listing all

available benchmarks here. Then I commented out the benchmarks that
probably aren't reasonable to run by default.

2:41 PM Changeset in webkit [167510] by Martin Robinson
  • 4 edits in trunk/Tools

[GTK] Add llvmpipe (Mesa) to the JHBuild moduleset and force it when running layout tests
https://bugs.webkit.org/show_bug.cgi?id=131472

Reviewed by Philippe Normand.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server): Use the LLVMPIPE_LIBGL_PATH to set the LD_LIBRARY_PATH
when running WebKitTestRunner with run-webkit-tests.

  • gtk/jhbuild.modules: Add Mesa to the modulelist so that the llvmpipe libGL is build, but not

installed.

  • gtk/jhbuildrc: Set the LLVMPIPE_LIBGL_PATH environment variable so that the test driver knows

how to properly set the LD_LIBRARY_PATH variable. We do this because it is much easier to
calculate the path in the jhbuildrc than in the test driver code. This simplifies things a great
deal.

2:21 PM Changeset in webkit [167509] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: add entries for probe samples in the JS/Events timeline UI
https://bugs.webkit.org/show_bug.cgi?id=131173

Patch by Katie Madonna <madonnk@gmail.com> on 2014-04-18
Reviewed by Timothy Hatcher.

Create probe sample fired entries for the JS/Events timeline UI.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/ProbeManager.js:

(WebInspector.ProbeManager.prototype.probeForIdentifier): Added.

  • UserInterface/Controllers/TimelineManager.js: Added cases for probe sample recorded.

(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):

  • UserInterface/Images/TimelineRecordProbeSampled.svg: Added.
  • UserInterface/Models/ScriptTimelineRecord.js: Create ProbeSampleRecorded record for ProbeSample case.
  • UserInterface/Views/TimelineIcons.css:

(.probe-record .icon): Added.

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement): Added case for probe sample recorded.

2:03 PM Changeset in webkit [167508] by Martin Robinson
  • 7 edits
    2 deletes in trunk/Source/WTF

Remove DynamicAnnotations.h?
https://bugs.webkit.org/show_bug.cgi?id=131754

Reviewed by Simon Fraser.

This file, which helped support tools like Valgrind was unused.

  • WTF.vcxproj/WTF.vcxproj: Remove references to the files.
  • WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
  • WTF.xcodeproj/project.pbxproj: Remove references to the files.
  • wtf/CMakeLists.txt: Remove references to the files.
  • wtf/DynamicAnnotations.cpp: Removed.
  • wtf/DynamicAnnotations.h: Removed.
  • wtf/ThreadSafeRefCounted.h: Remove references to the files.
  • wtf/text/StringStatics.cpp: Remove references to the files.
1:56 PM Changeset in webkit [167507] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Address a couple of review comments
https://bugs.webkit.org/show_bug.cgi?id=131856

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
1:48 PM Changeset in webkit [167506] by ap@apple.com
  • 2 edits in trunk/LayoutTests

[WK1] media/event-attributes.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131855

  • platform/mac/TestExpectations: Marking as such.
1:46 PM Changeset in webkit [167505] by ggaren@apple.com
  • 6 edits in trunk/PerformanceTests

MallocBench: removed the --measure-heap option
https://bugs.webkit.org/show_bug.cgi?id=131854

Reviewed by Sam Weinig.

As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
heap is fast, so there's no reason to disable it.

  • MallocBench/MallocBench/Benchmark.cpp:

(Benchmark::Benchmark):
(Benchmark::run):
(Benchmark::printReport):

  • MallocBench/MallocBench/Benchmark.h:
  • MallocBench/MallocBench/CommandLine.cpp:

(CommandLine::printUsage):

  • MallocBench/MallocBench/CommandLine.h:

(CommandLine::heapSize):
(CommandLine::measureHeap): Deleted.

  • MallocBench/MallocBench/main.cpp:

(main):

1:43 PM Changeset in webkit [167504] by ap@apple.com
  • 1 delete in trunk/LayoutTests/platform/mac/http/tests/multipart/policy-ignore-crash-expected.txt

Forgot to check in this file with <http://trac.webkit.org/changeset/167500>.

1:31 PM Changeset in webkit [167503] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

[iOS WK2] Make window.scroll() and window.scrollBy() work
https://bugs.webkit.org/show_bug.cgi?id=131848
<rdar://problem/16638319>

Reviewed by Beth Dakin.

The scrolling-related functions in DOMWindow were #ifdeffed for iOS
to use the hacky WK1-specific "actual scroll" functions, which do nothing
in WK2.

Fix by adding a scroll position wrapper (contentsScrollPosition) which does
the right thing on WK1 and WK2, and change almost all the places that used "actualScrollPosition"
to us it (with the exception of contentsScrollOffset() in MouseRelatedEvent.cpp, which has
confusing scaling behavior).

  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/TreeScope.cpp:

(WebCore::nodeFromPoint): Remove #ifdefs.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::scrollTop):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):
(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::contentsScrollPosition):
(WebCore::ScrollView::setContentsScrollPosition):

  • platform/ScrollView.h:
1:17 PM Changeset in webkit [167502] by ggaren@apple.com
  • 21 edits
    5 adds in trunk/Source/bmalloc

bmalloc: Added an XSmall line size
https://bugs.webkit.org/show_bug.cgi?id=131851

Reviewed by Sam Weinig.

Reduces malloc footprint on Membuster recordings by 10%.

This is a throughput regression, but we're still way ahead of TCMalloc.
I have some ideas for how to recover the regression -- but I wanted to
get this win in first.

Full set of benchmark results:

bmalloc> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks --measure-heap nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/


nopatch patch Δ

Peak Memory:

reddit_memory_warning 7,896kB 7,532kB 1.05x smaller
flickr_memory_warning 12,968kB 12,324kB
1.05x smaller
theverge_memory_warning 16,672kB 15,200kB 1.1x smaller

<geometric mean> 11,952kB 11,216kB 1.07x smaller
<arithmetic mean> 12,512kB 11,685kB
1.07x smaller
<harmonic mean> 11,375kB 10,726kB 1.06x smaller

Memory at End:

reddit_memory_warning 7,320kB 6,856kB 1.07x smaller
flickr_memory_warning 10,848kB 9,692kB
1.12x smaller
theverge_memory_warning 16,380kB 14,872kB 1.1x smaller

<geometric mean> 10,916kB 9,961kB 1.1x smaller
<arithmetic mean> 11,516kB 10,473kB
1.1x smaller
<harmonic mean> 10,350kB 9,485kB 1.09x smaller

MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/


nopatch patch Δ

Execution Time:

churn 127ms 151ms ! 1.19x slower
list_allocate 130ms 164ms ! 1.26x slower
tree_allocate 109ms 127ms ! 1.17x slower
tree_churn 115ms 120ms ! 1.04x slower
facebook 240ms 259ms ! 1.08x slower
fragment 91ms 131ms ! 1.44x slower
fragment_iterate 105ms 106ms ! 1.01x slower
message_one 260ms 259ms 1.0x faster
message_many 149ms 154ms ! 1.03x slower
medium 194ms 248ms ! 1.28x slower
big 157ms 160ms ! 1.02x slower

<geometric mean> 144ms 163ms ! 1.13x slower
<arithmetic mean> 152ms 171ms ! 1.12x slower
<harmonic mean> 137ms 156ms ! 1.14x slower

MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks nopatch:~/scratch/Build-nopatch/Release/ patch:~/webkit/WebKitBuild/Release/


nopatch patch Δ

Execution Time:

churn 126ms 148ms ! 1.17x slower
churn --parallel 62ms 76ms ! 1.23x slower
list_allocate 130ms 164ms ! 1.26x slower
list_allocate --parallel 120ms 175ms ! 1.46x slower
tree_allocate 111ms 127ms ! 1.14x slower
tree_allocate --parallel 95ms 135ms ! 1.42x slower
tree_churn 115ms 124ms ! 1.08x slower
tree_churn --parallel 107ms 126ms ! 1.18x slower
facebook 240ms 276ms ! 1.15x slower
facebook --parallel 802ms 1,088ms ! 1.36x slower
fragment 92ms 130ms ! 1.41x slower
fragment --parallel 66ms 124ms ! 1.88x slower
fragment_iterate 109ms 127ms ! 1.17x slower
fragment_iterate --parallel 55ms 64ms ! 1.16x slower
message_one 260ms 260ms
message_many 170ms 238ms ! 1.4x slower
medium 185ms 250ms ! 1.35x slower
medium --parallel 210ms 334ms ! 1.59x slower
big 150ms 169ms ! 1.13x slower
big --parallel 138ms 144ms ! 1.04x slower

<geometric mean> 135ms 170ms ! 1.26x slower
<arithmetic mean> 167ms 214ms ! 1.28x slower
<harmonic mean> 117ms 148ms ! 1.26x slower

MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks TC:~/scratch/Build-TCMalloc/Release/ patch:~/webkit/WebKitBuild/Release/

TC patch Δ

Peak Memory:

reddit_memory_warning 13,836kB 13,436kB 1.03x smaller
flickr_memory_warning 24,868kB 25,188kB ! 1.01x bigger
theverge_memory_warning 24,504kB 26,636kB ! 1.09x bigger

<geometric mean> 20,353kB 20,812kB ! 1.02x bigger
<arithmetic mean> 21,069kB 21,753kB ! 1.03x bigger
<harmonic mean> 19,570kB 19,780kB ! 1.01x bigger

Memory at End:

reddit_memory_warning 8,656kB 10,016kB ! 1.16x bigger
flickr_memory_warning 11,844kB 13,784kB ! 1.16x bigger
theverge_memory_warning 18,516kB 22,748kB ! 1.23x bigger

<geometric mean> 12,382kB 14,644kB ! 1.18x bigger
<arithmetic mean> 13,005kB 15,516kB ! 1.19x bigger
<harmonic mean> 11,813kB 13,867kB ! 1.17x bigger

MallocBench> ~/webkit/PerformanceTests/MallocBench/run-malloc-benchmarks TC:~/scratch/Build-TCMalloc/Release/ patch:~/webkit/WebKitBuild/Release/


TC patch Δ

Execution Time:

churn 416ms 148ms 2.81x faster
list_allocate 463ms 164ms
2.82x faster
tree_allocate 292ms 127ms 2.3x faster
tree_churn 157ms 120ms
1.31x faster
facebook 327ms 276ms 1.18x faster
fragment 335ms 129ms
2.6x faster
fragment_iterate 344ms 108ms 3.19x faster
message_one 386ms 258ms
1.5x faster
message_many 410ms 154ms 2.66x faster
medium 391ms 245ms
1.6x faster
big 261ms 167ms 1.56x faster

<geometric mean> 332ms 164ms 2.02x faster
<arithmetic mean> 344ms 172ms
1.99x faster
<harmonic mean> 317ms 157ms 2.02x faster

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::Allocator): Don't assume that each allocator's
index corresponds with its size. Instead, use the size selection function
explicitly. Now that we have XSmall, some small allocator entries are
unused.

(bmalloc::Allocator::scavenge):
(bmalloc::Allocator::log):
(bmalloc::Allocator::processXSmallAllocatorLog):
(bmalloc::Allocator::allocateSlowCase):

  • bmalloc/Allocator.h:

(bmalloc::Allocator::xSmallAllocatorFor):
(bmalloc::Allocator::allocateFastCase):

  • bmalloc/Chunk.h:
  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):
(bmalloc::Deallocator::deallocateXSmallLine):
(bmalloc::Deallocator::allocateXSmallLine):

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::deallocateFastCase):

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeXSmallPages):
(bmalloc::Heap::allocateXSmallLineSlowCase):

  • bmalloc/Heap.h:

(bmalloc::Heap::deallocateXSmallLine):
(bmalloc::Heap::allocateXSmallLine):

  • bmalloc/LargeChunk.h:

(bmalloc::LargeChunk::get):
(bmalloc::LargeChunk::endTag):

  • bmalloc/Line.h:
  • bmalloc/MediumAllocator.h:

(bmalloc::MediumAllocator::allocate):
(bmalloc::MediumAllocator::refill):

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/ObjectType.h:

(bmalloc::isXSmall):
(bmalloc::isSmall):
(bmalloc::isMedium):
(bmalloc::isLarge):
(bmalloc::isSmallOrMedium): Deleted.

  • bmalloc/SegregatedFreeList.h: I boiler-plate copied existing code for

handling small objects. There's probably a reasonable way to share this
code in the future -- I'll look into that once it's stopped changing.

  • bmalloc/Sizes.h: Tweaked size classes to make Membuster happy. This

is the main reason things got slower.

  • bmalloc/SmallAllocator.h:

(bmalloc::SmallAllocator::allocate):

  • bmalloc/SmallTraits.h:
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateXSmallChunk):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateXSmallPage):
(bmalloc::VMHeap::deallocateXSmallPage):

  • bmalloc/XSmallAllocator.h: Added.

(bmalloc::XSmallAllocator::isNull):
(bmalloc::XSmallAllocator::canAllocate):
(bmalloc::XSmallAllocator::XSmallAllocator):
(bmalloc::XSmallAllocator::line):
(bmalloc::XSmallAllocator::allocate):
(bmalloc::XSmallAllocator::objectCount):
(bmalloc::XSmallAllocator::derefCount):
(bmalloc::XSmallAllocator::refill):

  • bmalloc/XSmallChunk.h: Added.
  • bmalloc/XSmallLine.h: Added.
  • bmalloc/XSmallPage.h: Added.
  • bmalloc/XSmallTraits.h: Added.
  • bmalloc/bmalloc.h:

(bmalloc::api::realloc): Boiler-plate copy, as above.

1:07 PM Changeset in webkit [167501] by mhahnenberg@apple.com
  • 6 edits
    3 adds in trunk

Deleting properties poisons objects
https://bugs.webkit.org/show_bug.cgi?id=131551

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
This is ~3% progression on Dromaeo with a ~6% progression on the jslib portion of Dromaeo in particular.

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap): We now re-use deleted properties when materializing the property map.
(JSC::Structure::removePropertyTransition): We allow up to 5 deletes for a particular path through the tree of
Structure transitions. After that, we convert to an uncacheable dictionary like we used to. We don't cache
delete transitions, but we allow transitioning from them.
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::pin): Now does only what it says it does--marks the property table as pinned.
(JSC::Structure::pinAndPreventTransitions): More descriptive version of what the old pin() was doing.

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::checkOffsetConsistency): Rearranged variables to be more sensible.

LayoutTests:
New JS regress test. We're ~3.5x faster on this microbenchmark now.

  • js/regress/delete-a-few-properties-then-get-by-id-expected.txt: Added.
  • js/regress/delete-a-few-properties-then-get-by-id.html: Added.
  • js/regress/script-tests/delete-a-few-properties-then-get-by-id.js: Added.

(MyObject):
(foo):

1:05 PM Changeset in webkit [167500] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/multipart/policy-ignore-crash.php erroneously depends on http stack quirks
https://bugs.webkit.org/show_bug.cgi?id=131853

Reviewed by Brady Eidson.

  • http/tests/multipart/policy-ignore-crash.php: Produce a nice multipart response

with boundaries on their own lines.

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

Handle pluginOrigin being null
https://bugs.webkit.org/show_bug.cgi?id=131849
<rdar://problem/16655898>

Reviewed by Alexey Proskuryakov.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):

11:37 AM Changeset in webkit [167498] by Simon Fraser
  • 12 edits
    2 adds in trunk

Worse animation performance on pages with 3D transforms
https://bugs.webkit.org/show_bug.cgi?id=131838
<rdar://problem/16428630&15705876>

Reviewed by Dean Jackson.

Source/WebCore:
r155977 added logic to adjust the contentsScale of compositing layers
based on a root-relative transform. However, this resulted in
the contentsScale continually changing on layers whose transforms
are changed dynamically, which caused lots of expensive painting.

Fix by bucketing the part of the scale computed from the root-relative transform
into buckets of 0.25 via rounding.

Test: compositing/contents-scale/rounded-contents-scale.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::clampedContentsScaleForScale):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::updateContentsVisibility): Deleted.
(WebCore::GraphicsLayerCA::animatedLayerClones): Deleted.

LayoutTests:
Testcase having layers at various z translates which shows the bucketing
of contentsScale, and fix results affected by the patch.

  • compositing/contents-scale/rounded-contents-scale-expected.txt: Added.
  • compositing/contents-scale/rounded-contents-scale.html: Added.
  • compositing/contents-scale/z-translate-expected.txt:
  • platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
  • platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transform-style-expected.txt:
  • platform/mac/compositing/visible-rect/3d-transformed-expected.txt:
  • platform/mac/compositing/visible-rect/nested-transform-expected.txt:
11:35 AM Changeset in webkit [167497] by Simon Fraser
  • 19 edits in trunk/Source/WebCore

Remove some includes from image-related headers, and Document.h
https://bugs.webkit.org/show_bug.cgi?id=131797

Reviewed by Martin Robinson.

Remove some #includes from Document.h, DragImage.h, GradientImage.h,
Image.h, and ImageBuffer.h and deal with the fallout.

  • dom/ContainerNode.h:
  • dom/Document.cpp:

(WebCore::Document::setInputCursor):

  • dom/Document.h:

(WebCore::Document::inputCursor):

  • dom/MutationObserverRegistration.cpp:
  • html/canvas/WebGLRenderingContext.cpp:
  • page/FrameSnapshotting.cpp:
  • page/Page.cpp:
  • platform/DragImage.h:
  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::GradientImage):
(WebCore::GradientImage::~GradientImage):

  • platform/graphics/GradientImage.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBuffer.cpp:
  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::internalSize):
(WebCore::ImageBuffer::logicalSize):
(WebCore::ImageBuffer::baseTransform):
(WebCore::ImageBuffer::spaceSize):
(WebCore::ImageBuffer::setSpaceSize):

  • rendering/RenderThemeMac.mm:
  • rendering/shapes/Shape.cpp:
  • rendering/svg/RenderSVGContainer.cpp:
  • svg/SVGURIReference.h:
10:49 AM Changeset in webkit [167496] by mitz@apple.com
  • 10 edits in trunk/Source/WebKit2

[Cocoa] Add a navigation delegate method corresponding to didFinishDocumentLoadForFrame for the main frame
https://bugs.webkit.org/show_bug.cgi?id=131847

Reviewed by Anders Carlsson.

  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::didFinishDocumentLoadForFrame): Added a navigationID parameter.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient): Updated for the above change in paramerers.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
  • UIProcess/Cocoa/NavigationState.h: Declare override of didFinishDocumentLoadForFrame.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Initialize
webViewNavigationDidFinishDocumentLoad flag in the delegate methods struct.
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Added override
of the client function which calls the delegate.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishDocumentLoadForFrame): Get and pass the navigation ID to
the client.

  • UIProcess/WebPageProxy.h: Added navigationID parameter.
  • UIProcess/WebPageProxy.messages.in: Ditto.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): Get and send the navigation
ID to the UI process.

10:36 AM Changeset in webkit [167495] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.30.1/Source/WebCore

Merged r167493.

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

DownloadDecideDestinationCrash API test uses an incorrect value for path
https://bugs.webkit.org/show_bug.cgi?id=131845
<rdar://problem/15925560>

Reviewed by Enrica Casucci.

  • TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp:

(TestWebKitAPI::decideDestinationWithSuggestedFilename):

10:18 AM Changeset in webkit [167493] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed. ARM64 buildfix after r167473.

Patch by Gabor Rapcsanyi <rgabor@webkit.org> on 2014-04-18

  • platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.
10:08 AM Changeset in webkit [167492] by stavila@adobe.com
  • 1 edit
    2 adds in trunk/LayoutTests

[CSS Regions] Content overflowing a transformed region is clipped
https://bugs.webkit.org/show_bug.cgi?id=116833

Reviewed by Mihnea Ovidenie.

Added test for overflow of content in 3d transformed regions.

  • fast/regions/overflow-3dtransformed-region-expected.txt: Added.
  • fast/regions/overflow-3dtransformed-region.html: Added.
10:08 AM Changeset in webkit [167491] by ap@apple.com
  • 2 edits in trunk/Tools

[Mac] AttributedStringTest API tests fail with async text input
https://bugs.webkit.org/show_bug.cgi?id=131833

Reviewed by Enrica Casucci.

Don't run sync NSTextInputClient tests where we don't implement these calls.

  • TestWebKitAPI/Tests/mac/AttributedString.mm:

(TestWebKitAPI::AttributedStringTest_CustomFont::didLoadURL):
(TestWebKitAPI::AttributedStringTest_CustomFont::runSyncTest):
(TestWebKitAPI::AttributedStringTest_Strikethrough::didLoadURL):
(TestWebKitAPI::AttributedStringTest_Strikethrough::runSyncTest):
(TestWebKitAPI::AttributedStringTest_CustomFont::runTest): Deleted.
(TestWebKitAPI::AttributedStringTest_Strikethrough::runTest): Deleted.

6:48 AM Changeset in webkit [167490] by rgabor@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed. ARM64 buildfix after r167473.

  • platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.
6:07 AM Changeset in webkit [167489] by stavila@adobe.com
  • 3 edits
    2 adds in trunk

[CSSRegions] Incorrect background paint on positioned element hover
https://bugs.webkit.org/show_bug.cgi?id=131617

Reviewed by Andrei Bucur.

Source/WebCore:
When computing the repaint rect for absolute elements flowed into regions, the Y location of the
region within the flow thread must no longer be added to the repaint rect's location because absolute
positioned elements get pushed down through the regions by their absolute top. So adding the region's
position in the flow thread and then adding the element's absolute top would cause us to add
something twice.

Tests: fast/regions/repaint/repaint-absolute-pushed-to-next-region.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeRectForRepaint):

LayoutTests:
Added test for the proper repainting of absolute positioned elements in regions when the
absolute top of the elements causes it to be pushed to the next region.

  • fast/regions/repaint/repaint-absolute-pushed-to-next-region-expected.txt: Added.
  • fast/regions/repaint/repaint-absolute-pushed-to-next-region.html: Added.
5:34 AM Changeset in webkit [167488] by Philippe Normand
  • 42 edits
    55 deletes in trunk

Remove NETWORK_INFO support
https://bugs.webkit.org/show_bug.cgi?id=131841

.:
Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/WebCore:
Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • Modules/networkinfo/NavigatorNetworkInfoConnection.cpp: Removed.
  • Modules/networkinfo/NavigatorNetworkInfoConnection.h: Removed.
  • Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Removed.
  • Modules/networkinfo/NetworkInfo.cpp: Removed.
  • Modules/networkinfo/NetworkInfo.h: Removed.
  • Modules/networkinfo/NetworkInfoClient.h: Removed.
  • Modules/networkinfo/NetworkInfoConnection.cpp: Removed.
  • Modules/networkinfo/NetworkInfoConnection.h: Removed.
  • Modules/networkinfo/NetworkInfoConnection.idl: Removed.
  • Modules/networkinfo/NetworkInfoController.cpp: Removed.
  • Modules/networkinfo/NetworkInfoController.h: Removed.
  • PlatformEfl.cmake:
  • dom/EventTargetFactory.in:
  • platform/efl/NetworkInfoProviderEfl.cpp: Removed.
  • platform/efl/NetworkInfoProviderEfl.h: Removed.
  • testing/Internals.cpp:

(WebCore::Internals::setNetworkInformation): Deleted.

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

Source/WebKit:
Reviewed by NOBODY (OOPS!).

  • PlatformEfl.cmake:

Source/WebKit/efl:
Reviewed by Gyuyoung Kim.

  • WebCoreSupport/NetworkInfoClientEfl.cpp: Removed.
  • WebCoreSupport/NetworkInfoClientEfl.h: Removed.
  • ewk/ewk_view.cpp:

(_ewk_view_priv_new):

Source/WebKit2:
Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • Shared/API/c/WKBase.h:
  • Shared/APIObject.h:
  • Shared/WebNetworkInfo.cpp: Removed.
  • Shared/WebNetworkInfo.h: Removed.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetNetworkInfoManager): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKNetworkInfo.cpp: Removed.
  • UIProcess/API/C/WKNetworkInfo.h: Removed.
  • UIProcess/API/C/WKNetworkInfoManager.cpp: Removed.
  • UIProcess/API/C/WKNetworkInfoManager.h: Removed.
  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):

  • UIProcess/API/efl/ewk_context_private.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::WebContext):

  • UIProcess/WebContext.h:
  • UIProcess/WebNetworkInfoManagerProxy.cpp: Removed.
  • UIProcess/WebNetworkInfoManagerProxy.h: Removed.
  • UIProcess/WebNetworkInfoManagerProxy.messages.in: Removed.
  • UIProcess/WebNetworkInfoProvider.cpp: Removed.
  • UIProcess/WebNetworkInfoProvider.h: Removed.
  • UIProcess/efl/NetworkInfoProvider.cpp: Removed.
  • UIProcess/efl/NetworkInfoProvider.h: Removed.
  • WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Removed.
  • WebProcess/NetworkInfo/WebNetworkInfoManager.h: Removed.
  • WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Removed.
  • WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Removed.
  • WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Removed.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

Source/WTF:
Reviewed by Gyuyoung Kim.

  • wtf/FeatureDefines.h:

Tools:
Reviewed by Gyuyoung Kim.

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:
Reviewed by Gyuyoung Kim.

  • networkinformation/add-listener-from-callback-expected.txt: Removed.
  • networkinformation/add-listener-from-callback.html: Removed.
  • networkinformation/basic-all-types-of-events-expected.txt: Removed.
  • networkinformation/basic-all-types-of-events.html: Removed.
  • networkinformation/basic-operation-expected.txt: Removed.
  • networkinformation/basic-operation.html: Removed.
  • networkinformation/event-after-navigation-expected.txt: Removed.
  • networkinformation/event-after-navigation.html: Removed.
  • networkinformation/multiple-frames-expected.txt: Removed.
  • networkinformation/multiple-frames.html: Removed.
  • networkinformation/resources/event-after-navigation-new.html: Removed.
  • networkinformation/script-tests/add-listener-from-callback.js: Removed.
  • networkinformation/script-tests/basic-all-types-of-events.js: Removed.
  • networkinformation/script-tests/basic-operation.js: Removed.
  • networkinformation/script-tests/event-after-navigation.js: Removed.
  • networkinformation/script-tests/multiple-frames.js: Removed.
  • networkinformation/script-tests/updates.js: Removed.
  • networkinformation/script-tests/window-property.js: Removed.
  • networkinformation/updates-expected.txt: Removed.
  • networkinformation/updates.html: Removed.
  • networkinformation/window-property-expected.txt: Removed.
  • networkinformation/window-property.html: Removed.

Apr 17, 2014:

11:59 PM Changeset in webkit [167487] by bshafiei@apple.com
  • 28 edits in tags/Safari-538.30.1/Source

Merged r167481.

11:48 PM Changeset in webkit [167486] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.30.1/Source/WebKit2

Merged r167457.

11:40 PM Changeset in webkit [167485] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.30.1/Source

Versioning.

11:37 PM Changeset in webkit [167484] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.30.1

New tag.

10:10 PM Changeset in webkit [167483] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

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

Broke multicol tests (Requested by ap on #webkit).

Reverted changeset:

"[New Multicolumn] Pagination mode messed up with non-inline
axis and reversed direction."
https://bugs.webkit.org/show_bug.cgi?id=131811
http://trac.webkit.org/changeset/167478

10:05 PM Changeset in webkit [167482] by ChangSeok Oh
  • 3 edits in trunk/Tools

[GTK] YouCompleteMe doesn't work for cmake build system.
https://bugs.webkit.org/show_bug.cgi?id=131591

Reviewed by Martin Robinson.

Add cmake build system support for YouCompleteMe. It should work regardless of
using make or ninja. In addition, autotools related code is removed since it's
not used anymore in WebKit.

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject):

  • gtk/ycm_extra_conf.py:

(transform_relative_paths_to_absolute_paths):
(FlagsForFile):

8:51 PM Changeset in webkit [167481] by dbates@webkit.org
  • 28 edits in trunk/Source

[iOS] Hook up screen.{availHeight, availWidth, height, width}
https://bugs.webkit.org/show_bug.cgi?id=131821
<rdar://problem/16413795>

Reviewed by Benjamin Poulain and Tim Horton.

Source/WebCore:
Implement support for screen.{availHeight, availWidth, height, width} in WebKit2 for iOS.

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

  • WebCore.exp.in: Export symbol for WebCore System Interface function

_wkGetViewportAvailableScreenSize.

  • dom/Document.cpp:

(WebCore::Document::processViewport): Modified to call Chrome::screenSize(); formerly it
called ChromeClient::viewportScreenSize().

  • page/Chrome.cpp:

(WebCore::Chrome::screenSize): Added; turns around and calls ChromeClient::screenSize().
(WebCore::Chrome::availableScreenSize): Added; turns around and calls ChromeClient::availableScreenSize().

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
(WebCore::ChromeClient::availableScreenSize): Added; default implementation, which
returns the size of Chrome::windowRect().

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::textDocumentParameters):

  • platform/HostWindow.h: Added declarations for availableScreenSize() and screenSize()

so that a caller (e.g. WebCore::screenRect()) can query for such screen information using
only the HostWindow interface. That is, a caller doesn't need to know about ChromeClient.

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenRect): Modified to query HostWindow::screenSize() when computing the
screen rectangle in WebKit2 for iOS.
(WebCore::screenAvailableRect): Modified to query HostWindow::availableScreenSize()
when computing the available screen rectangle in WebKit2 for iOS.

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:

Source/WebKit/ios:
Provide iOS-specific WebKit1 implementation for ChromeClient::availableScreenSize().

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::screenSize): Renamed; formerly named viewportScreenSize.
(WebChromeClientIOS::availableScreenSize): Added; ASSERT_NOT_REACHED() as a widget
should consult it's associated WAKWindow for the available screen size.

Source/WebKit/mac:
Add declaration for WKGetViewportAvailableScreenSize() to return the available screen size.

Additionally substitute "ScreenSize" for "ViewportScreenSize" to make the code more understandable.

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

Source/WebKit2:
Implement WebKit2-specific support infrastructure.

Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode): Modified to encode the available screen size
creation parameter.
(WebKit::WebPageCreationParameters::decode): Modified to decode the available screen size
creation parameter.

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters): Initialize the available screen size
parameter.

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

(WebKit::WebPageProxy::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebPageProxy::availableScreenSize): Added.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebChromeClient::availableScreenSize): Added; turns around and calls WebPage::availableScreenSize().

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Hook up WebKit System Interface function WKGetAvailableScreenSize.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Initialize available screen size instance variable.

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

(WebKit::WebPage::screenSize):
(WebKit::WebPage::availableScreenSize):

7:41 PM Changeset in webkit [167480] by Darin Adler
  • 3 edits
    4 adds in trunk

Source/WebCore: origin spoofing possible (HTTP Origin, postMessage event.origin) due to inappropriate URL escape sequence decoding
https://bugs.webkit.org/show_bug.cgi?id=131837
rdar://problem/15211936

Reviewed by Anders Carlsson and Dave Hyatt.

Tests: fast/dom/DOMURL/parsing.html

fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html

  • platform/URL.cpp:

(WebCore::URL::host): Removed unnecessary call to decodeURLEscapeSequences, which caused
problems and was not needed.

LayoutTests: hostname extraction from a URL should not decode percent-escape sequences
https://bugs.webkit.org/show_bug.cgi?id=131837
rdar://problem/15211936

Reviewed by Anders Carlsson and Dave Hyatt.

  • fast/dom/DOMURL/parsing-expected.txt: Added.
  • fast/dom/DOMURL/parsing.html: Added.
  • fast/dom/HTMLAnchorElement/anchor-element-href-parsing-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html: Added.
7:35 PM Changeset in webkit [167479] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix build.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[DownloadNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[ConvertResponseToDownloadNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):

7:11 PM Changeset in webkit [167478] by hyatt@apple.com
  • 5 edits
    2 adds in trunk

[New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
https://bugs.webkit.org/show_bug.cgi?id=131811

Reviewed by Dean Jackson.

Source/WebCore:
Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html

With block axis pagination mode, it is possible to set a column height that is not the same
as the available fill height for a block. The new multi-column code had the assumption that
the column height was the same as the amount of fill room you had available. This is not
the case.

To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
available column height as a separate variable from the computed column height. This allows
the pagination API to specify a different column height that is not the same as the view's
content height.

Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
RenderView to work with the new column code as well.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
(WebCore::RenderMultiColumnSet::computeLogicalHeight):

  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::pageOrViewLogicalHeight):

LayoutTests:

  • fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html: Added.
7:04 PM Changeset in webkit [167477] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • svg/animation/SMILTime.h:
6:42 PM Changeset in webkit [167476] by andersca@apple.com
  • 5 edits in trunk

Remove unused API enums
https://bugs.webkit.org/show_bug.cgi?id=131836

Reviewed by Tim Horton.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKNavigationDelegate.h:

(NS_ENUM):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:decidePolicyForNavigationResponse:decisionHandler:]):

6:10 PM Changeset in webkit [167475] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/efl

[EFL][WK1] SSL Strict is set according to input parameter.
https://bugs.webkit.org/show_bug.cgi?id=131734.

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-04-17
Reviewed by Gyuyoung Kim.

The param, 'enable', should be used for setting SSL-Strict.
If it is true, SSLStrict is set. Otherwise, SSLStrict is unset.

  • ewk/ewk_network.cpp:

(ewk_network_tls_certificate_check_set):

6:05 PM Changeset in webkit [167474] by Bem Jones-Bey
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r167384.

Sounds like this isn't the right fix, and causes generation to
run far too often.

Reverted changeset:

"Fix CodeGenerator.pm to only write files if the generated
content has changed"
https://bugs.webkit.org/show_bug.cgi?id=131756
http://trac.webkit.org/changeset/167384

5:51 PM Changeset in webkit [167473] by ryuan.choi@samsung.com
  • 11 edits in trunk/Source/WebCore

Remove unnecessary MathExtras.h includes
https://bugs.webkit.org/show_bug.cgi?id=131789

Reviewed by Anders Carlsson.

  • platform/FileSystem.h:
  • platform/Scrollbar.h:
  • platform/animation/AnimationUtilities.h:
  • platform/audio/DenormalDisabler.h:
  • platform/graphics/Font.h:
  • platform/graphics/IntPoint.h: Included cmath instad of MathExtras.h.
  • platform/graphics/LayoutPoint.h:
  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
  • rendering/svg/SVGMarkerData.h:
  • svg/animation/SMILTime.h:
5:44 PM Changeset in webkit [167472] by Brent Fulgham
  • 9 edits
    2 adds in trunk

Make RenderLayerBacking get the timingFunction of the correct animation.
https://bugs.webkit.org/show_bug.cgi?id=100632

Source/WebCore:
Patch by Huang Dongsung <luxtella@company100.net> on 2014-04-16
Reviewed by Simon Fraser.

When an element has multiple animations that have different timingFunctions,
the progress of each animation should be calculated using its respective
timingFunction. But at this point, the timingFunction of the first animation is
only used in RenderLayerBacking::startAnimation(), regardless of how many
animations the element has.

getAnimationFromStyleByName() was introduced in r89462 so that the
timingFunction of the correct animation searched by its name would be
used. This patch moves the function to KeyframeValue::timingFunction()
so that RenderLayerBacking reuses this method.

Test: animations/keyframe-multiple-timing-functions-transform.html

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeValue::timingFunction):
(WebCore):

  • rendering/style/KeyframeList.h:

(WebCore):
(KeyframeValue):

Source/WebKit2:
Reviewed by Simon Fraser.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Update for new signatures for
FloatAnimationValue, TransformAnimationValue, etc.

LayoutTests:
Patch by Huang Dongsung <luxtella@company100.net> on 2014-04-16
Reviewed by Simon Fraser.

When an element on a compositing layer has multiple animations that have
different timingFunctions, the progress of each animation should be
calculated using its respective timingFunction in Accelerated
Compositing.

  • animations/keyframe-multiple-timing-functions-transform-expected.txt: Added.
  • animations/keyframe-multiple-timing-functions-transform.html: Added.
5:37 PM Changeset in webkit [167471] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Remove duplicated test case in EFL WK2 TestExpectations.

  • platform/efl-wk2/TestExpectations:
5:35 PM Changeset in webkit [167470] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, fix a test case path, which was moved to different folder.

  • platform/efl/TestExpectations:
5:01 PM Changeset in webkit [167469] by enrica@apple.com
  • 10 edits in trunk/Source/WebKit2

[iOS WebKit2] support replacements for misspelled words.
https://bugs.webkit.org/show_bug.cgi?id=131827
<rdar://problem/16319657>

Reviewed by Benjamin Poulain.

This is the first part of the work to add support for replacements.
It handles _promptForReplace in canPerformAction to decide
whether to show the Replace button in the menu and add the
implementation of the replace action.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

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

(-[WKContentView selectedText]):
(-[WKContentView replaceText:withText:]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView replace:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView selectWordForReplacement]): This is called
by UIKit when the user taps on a mispelled word to select it.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::replaceSelectedText):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::editorState):

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

(WebKit::WebPage::selectWithGesture): Removed m_shouldReturnWordForSelection.
We now return always the word corresponding to the caret selection or
the selected text up to a maximum of 200 characters.
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::replaceSelectedText):

4:35 PM Changeset in webkit [167468] by Lucas Forschler
  • 2 edits in tags/Safari-538.30/Source/WebCore

Merged r167460.

4:33 PM Changeset in webkit [167467] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

InlineCallFrameSet should be refcounted
https://bugs.webkit.org/show_bug.cgi?id=131829

Reviewed by Geoffrey Garen.

And DFG::Plan should hold a ref to it. Previously it was owned by Graph until it
became owned by JITCode. Except that if we're "failing" to compile, JITCode may die.
Even as it dies, the GC may still want to scan the DFG::Plan, which leads to scanning
the DesiredWriteBarriers, which leads to scanning the InlineCallFrameSet.

So, just make the darn thing refcounted.

  • bytecode/InlineCallFrameSet.h:
  • dfg/DFGArgumentsSimplificationPhase.cpp:

(JSC::DFG::ArgumentsSimplificationPhase::run):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGCommonData.h:
  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::requiredRegisterCountForExit):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

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

  • dfg/DFGPlan.cpp:

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

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

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

  • ftl/FTLFail.cpp:

(JSC::FTL::fail):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

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

Rollout: Add a way to cache never-changing IDL attributes in the wrapper.
<https://webkit.org/b/131759>

This behavior may be observable from the web, so we can't do it this way.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/*:
  • dom/Element.idl:
  • dom/Node.idl:
4:29 PM Changeset in webkit [167465] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] REGRESSION (r166975): WKPDFView is broken
https://bugs.webkit.org/show_bug.cgi?id=131828

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:WebKit::]):
Bail from updating the scroll view parameters from the layer tree update
while it's being managed by a custom content view.
We'll get any changes again in the next commit after removing the custom
content view (and painting the new page) anyway, so this should be OK.

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

Cheesy Mountain Lion build fix.

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::ReliefLogger::logString):

4:06 PM Changeset in webkit [167463] by hyatt@apple.com
  • 6 edits
    2 adds in trunk

[New Multicolumn] Column rules don't respect the specified stacking order.
https://bugs.webkit.org/show_bug.cgi?id=131804

Reviewed by Beth Dakin.

Source/WebCore:
Added fast/multicol/newmulticol/compare_with_old_impl/column-rules-stacking.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::paintBoxDecorations):

  • rendering/RenderBlockFlow.h:

Override paintBoxDecorations for block flows so that we can iterate over our column sets
and paint their rules just after painting our background and border. We can't wait until
the child column sets paint their backgrounds, since that is specified as being above negative
z-index children. We have to pretend that the column sets don't exist as
far as column rule painting is concerned.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::paintObject): Deleted.

  • rendering/RenderMultiColumnSet.h:

Turn paintObject in RenderMultiColumnSet into an override that doesn't paint anything.

LayoutTests:

  • fast/multicol/newmulticol/compare-with-old-impl/column-rules-stacking-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/column-rules-stacking.html: Added.
4:04 PM Changeset in webkit [167462] by bshafiei@apple.com
  • 7 edits
    2 copies in tags/Safari-538.29.1/Source/WebKit2

Merged r167410.

4:01 PM Changeset in webkit [167461] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.29.1/Source/WebKit2

Merged r167386.

3:58 PM Changeset in webkit [167460] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Hit-testing is incorrect for plugins inside iframes when there is a
topContentInset
https://bugs.webkit.org/show_bug.cgi?id=131826
-and corresponding-
<rdar://problem/16649996>

Reviewed by Tim Horton.

I missed one coordinate-conversion spot when getting hit-testing to work. Like
headerHeight() which also manipulates the location of the root layer,
topContentInset() has to be factored into all of these conversions.

  • page/FrameView.cpp:

(WebCore::FrameView::convertFromRenderer):

3:57 PM Changeset in webkit [167459] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.29.1/Source

Versioning.

3:50 PM Changeset in webkit [167458] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.29.1

New tag.

3:39 PM Changeset in webkit [167457] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit2

_webProcessIdentifier should return 0 if the web process crashed
https://bugs.webkit.org/show_bug.cgi?id=131813
<rdar://problem/16650605>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _hasWebProcess]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
3:30 PM Changeset in webkit [167456] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL::fail() should manage memory "correctly"
https://bugs.webkit.org/show_bug.cgi?id=131823
<rdar://problem/16384297>

Reviewed by Oliver Hunt.

  • ftl/FTLFail.cpp:

(JSC::FTL::fail):

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

Prediction propagator should correctly model Int52s flowing through arguments
https://bugs.webkit.org/show_bug.cgi?id=131822
<rdar://problem/16641408>

Reviewed by Oliver Hunt.

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • tests/stress/int52-argument.js: Added.

(foo):

  • tests/stress/int52-variable.js: Added.

(foo):

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

Stub out MemoryPressureHandler::ReliefLogger on older OS X'es.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

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

Don't include CompilationThread.h from StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=131817

Reviewed by Simon Fraser.

  • wtf/CompilationThread.h:
  • wtf/StdLibExtras.h:
  • wtf/text/StringImpl.h:
2:05 PM Changeset in webkit [167452] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore
REGRESSION: ASSERT(!typeInfo().hasImpureGetOwnPropertySlot()
typeInfo().newImpurePropertyFiresWatchpoints()) on jquery tests

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

Reviewed by Alexey Proskuryakov.

Some day, we will fix https://bugs.webkit.org/show_bug.cgi?id=131810 and some version
of this assertion can return. For now, it's not clear that the assertion is guarding
any truly undesirable behavior - so it should just go away and be replaced with a
FIXME.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfo):

  • runtime/Structure.h:

(JSC::Structure::takesSlowPathInDFGForImpureProperty):

1:32 PM Changeset in webkit [167451] by krit@webkit.org
  • 6 edits in trunk/Source/WebCore

Remove CANVAS_PATH where possible
https://bugs.webkit.org/show_bug.cgi?id=131788

Reviewed by Dean Jackson.

Since Firefox and Chrome ship the same interoperable subset of Path2D soon,
it is time to remove CANVAS_PATH where possible.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInStroke):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.h:
  • html/canvas/DOMPath.idl:
1:31 PM Changeset in webkit [167450] by b.long@cablelabs.com
  • 3 edits in trunk/Source/WebCore

[GStreamer] Store TrackPrivateBaseGStreamer's label and language as AtomicStrings
https://bugs.webkit.org/show_bug.cgi?id=130404

Reviewed by Philippe Normand.

No new tests, this just makes things more efficient.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
(WebCore::TrackPrivateBaseGStreamer::getTag):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
1:25 PM Changeset in webkit [167449] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Cocoa build.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

1:24 PM Changeset in webkit [167448] by cabanier@adobe.com
  • 54 edits in trunk

[CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties
https://bugs.webkit.org/show_bug.cgi?id=131355

Reviewed by Dean Jackson.

Source/WebCore:
Removed webkit prefix from mix-blend-mode and isolation. These properties
never shipped and their spec is now in CR.

Covered by existing tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

LayoutTests:
Removed prefix from mix-blend-mode and isolation in layout tests.

  • css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html:
  • css3/compositing/blend-mode-ancestor-clipping-layer.html:
  • css3/compositing/blend-mode-background.html:
  • css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html:
  • css3/compositing/blend-mode-isolated-group-1.html:
  • css3/compositing/blend-mode-isolated-group-2.html:
  • css3/compositing/blend-mode-isolated-group-3.html:
  • css3/compositing/blend-mode-layers.html:
  • css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html:
  • css3/compositing/blend-mode-property-expected.txt:
  • css3/compositing/blend-mode-property-parsing-expected.txt:
  • css3/compositing/blend-mode-property-parsing-invalid-expected.txt:
  • css3/compositing/blend-mode-reflection.html:
  • css3/compositing/blend-mode-simple-composited.html:
  • css3/compositing/blend-mode-simple.html:
  • css3/compositing/blend-mode-transform-style-expected.txt:
  • css3/compositing/blend-mode-transform-style.html:
  • css3/compositing/blend-mode-with-accelerated-sibling.html:
  • css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html:
  • css3/compositing/isolation-isolate-blended-child-expected.html:
  • css3/compositing/isolation-isolate-blended-child.html:
  • css3/compositing/isolation-parsing.html:
  • css3/compositing/script-tests/blend-mode-property-parsing-invalid.js:

(testInvalidFilterRule):

  • css3/compositing/script-tests/blend-mode-property-parsing.js:

(testBlendModeRule):

  • css3/compositing/script-tests/blend-mode-property.js:

(testblendmode):

  • css3/compositing/svg-blend-color-dodge.html:
  • css3/compositing/svg-blend-color.html:
  • css3/compositing/svg-blend-hard-light.html:
  • css3/compositing/svg-blend-hue.html:
  • css3/compositing/svg-blend-layer-blend.html:
  • css3/compositing/svg-blend-layer-clip-path.html:
  • css3/compositing/svg-blend-layer-filter.html:
  • css3/compositing/svg-blend-layer-opacity.html:
  • css3/compositing/svg-blend-layer-shadow.html:
  • css3/compositing/svg-blend-luminosity.html:
  • css3/compositing/svg-blend-multiply-alpha.html:
  • css3/compositing/svg-blend-multiply.html:
  • css3/compositing/svg-blend-saturation.html:
  • css3/compositing/svg-blend-screen.html:
  • css3/compositing/svg-blend-soft-light.html:
  • css3/compositing/svg-isolation-default-expected.html:
  • css3/compositing/svg-isolation-default.html:
  • css3/compositing/svg-isolation-isolated-group-expected.html:
  • css3/compositing/svg-isolation-isolated-group.html:
  • fast/repaint/blend-mode-isolate-stacking-context.html:
  • inspector-protocol/layers/layers-blending-compositing-reasons.html:
  • transitions/blendmode-transitions-expected.txt:
  • transitions/blendmode-transitions.html:
12:39 PM Changeset in webkit [167447] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Tidy up isIsolatedInline() and highestContainingIsolateWithinRoot()
<http://webkit.org/b/131117>

Reviewed by Daniel Bates.

Based on review feedback for r166650.

  • rendering/InlineIterator.h:

(WebCore::isIsolatedInline):

  • Switch argument to a reference since it is never called with a nullptr.

(WebCore::highestContainingIsolateWithinRoot):

  • Switch first argument to a reference since it's never a nullptr.
  • Use nullptr for pointer initialization.
  • Switch while() loop to for() loop. Pass reference to isIsolatedInline().

(WebCore::numberOfIsolateAncestors):

  • Switch while() loop to for() loop. Pass reference to isIsolatedInline().
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::constructBidiRunsForSegment):

  • Rename startObj to startObject.
  • No longer need to pass the address of startObject here.
12:27 PM Changeset in webkit [167446] by hyatt@apple.com
  • 1 edit in trunk/Source/WebCore/platform/ios/SelectionRect.cpp

Fix build bustage.

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

Log number of bytes reclaimed at each step of memory pressure relief.
<https://webkit.org/b/131751>

Reviewed by Antti Koivisto.

  • platform/MemoryPressureHandler.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
(WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformMemoryUsage):
(WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformLog):

Add a simple RAII helper to check memory usage before and after
a block of code, and then dump the delta to system log.

(WebCore::MemoryPressureHandler::releaseMemory):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):

Use ReliefLogger to annotate the various attempts to reduce
our memory footprint. This will help us understand the efficiency
of our current strategy.

11:48 AM Changeset in webkit [167444] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[New Multicolumn] columnNumberForOffset is not patched for new multicolumn code yet.
https://bugs.webkit.org/show_bug.cgi?id=131740

Reviewed by Enrica Casucci.

I took the opportunity to clean this code up while adding support for the new columns.
columnNumberForOffset only applied for paginated RenderViews and was really about
pages and not columns. It also only returns an actual page number if the columns are
block progressed (e.g., right-to-left vertical Japanese books).

Therefore I renamed columnNumberForOffset to pageNumberForBlockProgressionOffset and
moved it to RenderView.

I also renamed the member variable of SelectionRect to be pageNumber instead of
columnNumber in order to make it more obvious that this isn't about columns per se
(since the fact that we implemented RenderView's pagination mode using columns is an
implementation detail).

  • dom/Range.cpp:

(WebCore::coalesceSelectionRects):
(WebCore::Range::collectSelectionRects):

  • platform/ios/SelectionRect.h:

(WebCore::SelectionRect::pageNumber):
(WebCore::SelectionRect::columnNumber): Deleted.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionRects):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::collectSelectionRects):
(WebCore::RenderObject::columnNumberForOffset): Deleted.

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

(WebCore::RenderText::collectSelectionRects):

  • rendering/RenderView.cpp:

(WebCore::RenderView::pageNumberForBlockProgressionOffset):

  • rendering/RenderView.h:
11:26 AM Changeset in webkit [167443] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Unreviewed 64-bit build fix.

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

export 32-bit symbol in 64-bit build.

11:14 AM Changeset in webkit [167442] by Brent Fulgham
  • 5 edits in trunk

[Win] A few final cleanups to the DataObject classes.
https://bugs.webkit.org/show_bug.cgi?id=131784

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/win/WCDataObject.cpp:

(WebCore::WCDataObject::clearData): Use 'last()' method.

Tools:

  • DumpRenderTree/win/DRTDataObject.cpp:

(DRTDataObject::clearData): Use 'last()' method.

  • DumpRenderTree/win/UIDelegate.cpp:

(DRTUndoStack::pop): Use 'takeLast()' method.

10:59 AM Changeset in webkit [167441] by jer.noble@apple.com
  • 7 edits in trunk

Fullscreen media controls are unusable in pagination mode
https://bugs.webkit.org/show_bug.cgi?id=131705

Reviewed by Darin Adler.

Source/WebCore:
When pagination mode is enabled, the full screen media will (depending on the width of the
pagination columns) overflow its column, and hit testing will be clipped to the column. In extreme
cases, where the column width < 0.5 * media element width, the media controls will be entirely
unclickable.

Rather than making the RenderFullScreen a child of the full screen element's parent's renderer,
make it a child of the RenderView, putting it outside of the columns entirely. Always create and
insert the fullscreenRenderer's placeholder, using it as the remembered insertion point for the
fullscreen element's renderer when we exit full screen.

Drive-by fix: don't wrap the full screen element's renderer in webkitWillEnterFullScreenForElement();
it will just be re-wrapped in createRendererIfNeeded().

  • dom/Document.cpp:

(WebCore::Document::webkitWillEnterFullScreenForElement): Don't wrap the full screen element's renderer.
(WebCore::Document::setFullScreenRenderer): Call setPlaceholderStyle.

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreenPlaceholder::willBeDestroyed): Call clearPlaceholder.
(WebCore::RenderFullScreen::wrapRenderer): Make fullscreenRenderer a child of the view().
(WebCore::RenderFullScreen::unwrapRenderer): Return the children to the parent of the placeholder().
(WebCore::RenderFullScreen::clearPlaceholder): Renamed from setPlaceholder().
(WebCore::RenderFullScreen::ensurePlaceholder): Added.
(WebCore::RenderFullScreen::setPlaceholderStyle): Renamed from createPlaceholder().
(WebCore::RenderFullScreen::setPlaceholder): Deleted.
(WebCore::RenderFullScreen::createPlaceholder): Deleted.

  • rendering/RenderFullScreen.h:

LayoutTests:

  • fullscreen/full-screen-no-style-sharing-expected.txt: Rebaselined.
  • fullscreen/video-cursor-auto-hide.html: Corrected test to move cursor

to the middle of the video element.

10:54 AM Changeset in webkit [167440] by jer.noble@apple.com
  • 10 edits
    2 adds in trunk

[MSE] Multiple initialization segments with same codecs in tracks fail validation.
https://bugs.webkit.org/show_bug.cgi?id=131768

Source/WebCore:
Additional initialization segments added to the same SourceBuffer with the same
codec values will fail validation. Update the validation check to add the correct
codec information for the initial segment, and check against the correct codecs during
the validation step.

Additionally, after validation, if successful update the Audio, Video, and TextTracks
for the SourceBuffer with the updated initialization segment information.

Reviewed by Eric Carlson.

Test: media/media-source/media-source-multiple-initialization-segments.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferTimerFired): m_source may have been cleared

as a result of the append, so check it before using.

(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Call streamEndedWithError

instead of endOfStream as the latter is safe to call within an update.

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Ditto.

Update the track lists if validation succeeds.

(WebCore::SourceBuffer::validateInitializationSegment): Switch the audio and video

codec checks.

Add the ability for Audio, Video, and InbandTextTracks to replace their private tracks:

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::AudioTrack): Call updateKindFromPrivate().
(WebCore::AudioTrack::setPrivate):
(WebCore::AudioTrack::updateKindFromPrivate): Split out from constructor.

  • html/track/AudioTrack.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::InbandTextTrack): Call updateKindFromPrivate().
(WebCore::InbandTextTrack::setPrivate):
(WebCore::InbandTextTrack::setMode): Split up into setModeInternal().
(WebCore::InbandTextTrack::setModeInternal): Broke out from setMode().
(WebCore::InbandTextTrack::updateKindFromPrivate): Split out from constructor.

  • html/track/InbandTextTrack.h:
  • html/track/TextTrack.h:

(WebCore::TextTrack::isInband): Added, returns false.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::VideoTrack): Call updateKindFromPrivate().
(WebCore::VideoTrack::setPrivate):
(WebCore::VideoTrack::updateKindFromPrivate): Split out from constructor.

  • html/track/VideoTrack.h:

LayoutTests:
Reviewed by Eric Carlson.

  • media/media-source/media-source-multiple-initialization-segments-expected.txt: Added.
  • media/media-source/media-source-multiple-initialization-segments.html: Added.
10:53 AM Changeset in webkit [167439] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

[New Multicolumn] Column sets below spanners don't repaint properly.
https://bugs.webkit.org/show_bug.cgi?id=131778

Reviewed by Beth Dakin.

Source/WebCore:
Added fast/repaint/spanner-with-margins.html.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeRectForRepaint):
Turn off some code that was running for in-flow RenderFlowThreads that made no sense.
I'm not convinced the code is right for other types of RenderFlowThreads either,
but will leave that to the named flow thread experts. :)

LayoutTests:

  • fast/repaint/spanner-with-margin-expected.txt: Added.
  • fast/repaint/spanner-with-margin.html: Added.
10:52 AM Changeset in webkit [167438] by Martin Robinson
  • 2 edits in trunk/LayoutTests

[GTK] [Gardening] Updates GTK test expectations

Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-04-17

  • platform/gtk/TestExpectations:
    • Marked as flaky
      • fast/frames/frame-programmatic-noresize.html
      • fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize.html
      • fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false.html
    • Removed because are passing now
      • fast/dom/gc-dom-tree-lifetime.html
      • http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html
      • editing/editability/ignored-content.html
10:41 AM Changeset in webkit [167437] by commit-queue@webkit.org
  • 6 edits
    5 adds in trunk

Catch up ruby and its tag omission rule changes in HTML5 CR Feb 2014
https://bugs.webkit.org/show_bug.cgi?id=131175

Patch by Koji Ishii <kojishi@gmail.com> on 2014-04-17
Reviewed by Darin Adler.

Source/WebCore:
Tests: html5lib/resources/ruby.dat

html5lib/resources/tests19.dat

This patch makes WebKit HTML parser to match to the tag omission rules of HTML5 CR Feb 2014:
http://www.w3.org/TR/2014/CR-html5-20140204/syntax.html#syntax-tag-omission
with the support for two new elements (rb, rtc) which were also defined in the spec:
http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rb-element
http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rtc-element
to better support use cases presented by W3C I18N WG:
http://www.w3.org/TR/ruby-use-cases/

  • html/HTMLTagNames.in: rb and rtc added as HTMLElement interfaces.
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::hasImpliedEndTag): the spec says rb and rtc have implied end tags.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody): rb and rtc added. rt excludes rtc from its implied end tags.

LayoutTests:
25 new test cases in 2 test files imported from pull requests to html5lib-tests,
with run- and expected-files generated.
All new tests pass with the changes included in this patch.

10:37 AM Changeset in webkit [167436] by Darin Adler
  • 6 edits in trunk

Try to fix EFL and GTK builds.

  • Source/cmake/OptionsEfl.cmake: Add INDEXED_DATABASE_IN_WORKERS.
  • Source/cmake/OptionsGTK.cmake: Ditto.
  • Source/cmakeconfig.h.cmake: Ditto.
  • Source/WebCore/workers/WorkerGlobalScope.idl: Touch file to make it rebuild, assuming that module dependencies aren't working right with CMake. Tweaked formatting quite a bit while I was in here.
10:34 AM Changeset in webkit [167435] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Blind attempt to fix Windows build after r166837
<http://webkit.org/b/131246>

Hoping to fix this build error:

warning MSB8027: Two or more files with the name of GCLogging.cpp will produce outputs to the same location. This can lead to an incorrect build result. The files involved are ..\heap\GCLogging.cpp, ..\heap\GCLogging.cpp.

boo-boo by changing the GCLogging.cpp ClCompile entry to a
GCLogging.h ClInclude entry.

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

Don't skip inspector/dom/content-flow-list.html and inspector/dom/content-flow-content-removal.html.

First, they no longer crash/assert. They fail most of the time, but that's tracked as bug 129817.

Second, skipping was ineffective anyway, because we had a preceding [ Pass Failure ]
entry for the same files.

10:01 AM Changeset in webkit [167433] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

AI for GetLocal should match the DFG backend, and in this case, the best way to do that is to get rid of the "exit if empty prediction" thing since it's a vestige of a time long gone
https://bugs.webkit.org/show_bug.cgi?id=131764

Reviewed by Geoffrey Garen.

The attached test case can be made to not crash by deleting old code. It used to be
the case that the DFG needed empty prediction guards, for shady reasons. We fixed that
long ago. At this point, these guards just make life difficult. So get rid of them.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • tests/stress/bug-131764.js: Added.

(test1):
(test2):

10:00 AM Changeset in webkit [167432] by Darin Adler
  • 2 edits in trunk/Source/WTF

Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
https://bugs.webkit.org/show_bug.cgi?id=73757

Reviewed by Brent Fulgham.

  • wtf/Vector.h:

(WTF::deprecatedDeleteAllValues): Deleted.

9:58 AM Changeset in webkit [167431] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

Remove use of deprecatedDeleteAllValues in NPRemoteObjectMap::pluginDestroyed
https://bugs.webkit.org/show_bug.cgi?id=122496

Reviewed by Brent Fulgham.

  • Shared/Plugins/NPRemoteObjectMap.cpp:

(WebKit::NPRemoteObjectMap::pluginDestroyed): Use new-style code and write the
deprecatedDeleteAllValues function out using a loop. Might be nice to return here
and use unique_ptr instead some day, but I tried that before and got it wrong, so
lets do that another time.

9:47 AM Changeset in webkit [167430] by Andres Gomez
  • 3 edits in trunk/Tools

[Win] cygwin to keep installing curl 7.33.0-1 and subversion 1.7.14-1
https://bugs.webkit.org/show_bug.cgi?id=131365

Reviewed by Brent Fulgham.

The cygwin installer is now downloading the wanted versions for
the local installation given to the setup wizard.

  • CygwinDownloader/cygwin-downloader.py:
  • CygwinDownloader/cygwin-downloader.zip:
9:45 AM Changeset in webkit [167429] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

[New Multicolumn] REGRESSION: Column set styles don't update when zooming etc.
https://bugs.webkit.org/show_bug.cgi?id=131777

Reviewed by Enrica Casucci.

Source/WebCore:
Added fast/multicol/zoom-test.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):
Put back in the code that propagates new styles to the flow thread and column sets
when styles change. This propagation was removed when the column span code landed.
This patch puts it back in but qualifies the types of objects that get styles
propagated to avoid accidentally propagating the wrong style to column spans.

LayoutTests:

  • fast/multicol/zoom-test-expected.html: Added.
  • fast/multicol/zoom-test.html: Added.
9:29 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
8:45 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
8:22 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
8:19 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
8:12 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
8:05 AM 2014 Meeting Security Talk created by ddkilzer@apple.com
7:53 AM Changeset in webkit [167428] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk/Source/WebKit

[EFL] Remove deprecated ewk_paint code.
https://bugs.webkit.org/show_bug.cgi?id=131266

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-17
Reviewed by Gyuyoung Kim.

ewk_paint related code was deprecated since r166637.

Source/WebKit:

  • PlatformEfl.cmake: Remove ewk_paint_context.cpp

Source/WebKit/efl:

  • WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
  • WebCoreSupport/ChromeClientEfl.cpp:

(WebCore::ChromeClientEfl::invalidateRootView): Deleted.
(WebCore::ChromeClientEfl::invalidateContentsAndRootView): Deleted.
(WebCore::ChromeClientEfl::invalidateContentsForSlowScroll): Deleted.
(WebCore::ChromeClientEfl::scroll): Deleted.

  • WebCoreSupport/ChromeClientEfl.h:
  • WebCoreSupport/InspectorClientEfl.cpp:
  • ewk/ewk_paint_context.cpp: Removed.
  • ewk/ewk_paint_context_private.h: Removed.
  • ewk/ewk_view.cpp:

(_ewk_view_priv_del):
(_ewk_view_smart_calculate):
(ewk_view_smart_set):
(_ewk_view_repaints_resize): Deleted.
(_ewk_view_repaint_add): Deleted.
(_ewk_view_repaints_flush): Deleted.
(_ewk_view_smart_flush): Deleted.
(ewk_view_repaints_pop): Deleted.
(ewk_view_repaint_add): Deleted.
(ewk_view_paint): Deleted.
(ewk_view_paint_contents): Deleted.
(ewk_view_repaint): Deleted.
(ewk_view_scroll): Deleted.
(ewk_view_tiled_backing_store_invalidate): Deleted.

  • ewk/ewk_view_private.h:
7:52 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
7:49 AM April 2014 Meeting edited by ddkilzer@apple.com
(diff)
7:48 AM Changeset in webkit [167427] by Darin Adler
  • 16 edits in trunk

Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
https://bugs.webkit.org/show_bug.cgi?id=131785
rdar://problem/16003108

Reviewed by Brady Eidson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: Use the new conditional

instead of the old one.

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h: Ditto.
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Ditto.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

Source/WTF:

  • wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.

LayoutTests:

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • js/dom/global-constructors-attributes-shared-worker-expected.txt:

Updated results since indexed database features are not on by default any more.

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

[GTK] Make run-webkit-tests always use WKTR
https://bugs.webkit.org/show_bug.cgi?id=131737

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-04-17
Reviewed by Darin Adler.

Now that the GTK+ port only has support for WebKit2, instruct
run-webkit-tests to always use WKTR. This avoids needing to pass
flag "-2" every time.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(_set_up_derived_options): Always set webkit_test_runner when
the platform is GTK+.

7:00 AM Changeset in webkit [167425] by mitz@apple.com
  • 6 edits in trunk/Source

Source/WebCore: WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
https://bugs.webkit.org/show_bug.cgi?id=131783

Reviewed by Tim Horton.

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction): Initialize m_processingUserGesture to
ScriptController::processingUserGesture() at the time the NavigationAction is constructed.

  • loader/NavigationAction.h:

Added boolean member variable m_processionUserGesture
(WebCore::NavigationAction::processingUserGesture): Added this getter.

Source/WebKit2: WebKit2 part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
https://bugs.webkit.org/show_bug.cgi?id=131783

Reviewed by Tim Horton.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow): Set the isProcessingUserGesture field of
the NavigationActionData to the corresponding value in the NavigationAction.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.

1:42 AM Changeset in webkit [167424] by commit-queue@webkit.org
  • 13 edits
    18 adds in trunk

[CSS Blending] Isolation descendant dependent flags are not updated correctly
https://bugs.webkit.org/show_bug.cgi?id=130892

Patch by Ion Rosca <Ion Rosca> on 2014-04-17
Reviewed by Dean Jackson.

Source/WebCore:
The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
will help us to determine if a layer should isolate blending descendants or not.
The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
not isolated by descendant stacking contexts.
An element isolatesBlending() if it has this flag set and creates stacking context.

Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html

css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateBlendMode):
(WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):

When a layer has blending and it hasn't had it before, we set the isolation

flag for all its ancestors up to the first layer creating stacking context.
I removed the isComposited() check here. Isolation flags should be correct regardless
of compositing state. Moreover, if this method is called from styleChanged(),
the compositing state might not be accurate, it's going to be recalculated afterwards.
(WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):

When a layer doesn't have blending, but it used to have it before, we mark

the isolation flag as dirty for all its ancestors up to the first layer
creating stacking context. The isolation flags will be recalculated by
RenderLayer::updateDescendantDependentFlags.
(WebCore::RenderLayer::updateDescendantDependentFlags):

Evaluates if the layer has unisolated blending descendants by traversing

the layer subtree.
(WebCore::RenderLayer::addChild):

When adding a subtree that has blending or has some unisolated descendants,

we set the flag for all the ancestors, up to the stacking context layer.
(WebCore::RenderLayer::removeChild):

When removing a subtree that had blending or had some unisolated descendants,

we dirty the flag so that it could be reevaluated.
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::updateTransform):

  • rendering/RenderLayer.h:

Rename m_hasBlendedElementInChildStackingContext => m_hasUnisolatedBlendingDescendants

and m_hasBlendedElementInChildStackingContextStatusDirty => m_hasUnisolatedBlendingDescendantsStatusDirty,

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):

Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,

then m_hasUnisolatedBlendingDescendants is true as well.

LayoutTests:

  • css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html: Added.
  • css3/compositing/blend-mode-isolation-flags-turn-off-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html: Added.
  • css3/compositing/blend-mode-isolation-flags-turn-on-blending.html: Added.
  • css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html: Added.
  • platform/mac/css3/compositing/blend-mode-background-expected.txt:
  • platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
  • platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
  • platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
  • platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
  • platform/mac/css3/compositing/blend-mode-layers-expected.txt:
  • platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
  • platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
  • platform/mac/css3/compositing/blend-mode-simple-expected.txt:
12:55 AM WebKitGTK/KeepingTheTreeGreen edited by Adrian Perez de Castro
(diff)
12:33 AM Changeset in webkit [167423] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Uninline blend(Color, Color) to get AnimationUtilities out of Color.h
https://bugs.webkit.org/show_bug.cgi?id=131781

Reviewed by Simon Fraser.

  • platform/graphics/Color.cpp:

(WebCore::blend):
Un-inline.

  • platform/graphics/Color.h:

No more AnimationUtilities.

12:23 AM Changeset in webkit [167422] by b.long@cablelabs.com
  • 2 edits in trunk/Tools

[Gtk] Install ninja-build in Tools/gtk/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=131760

Reviewed by Philippe Normand.

  • gtk/install-dependencies: Install ninja-build when it's available.
12:12 AM Changeset in webkit [167421] by Lucas Forschler
  • 5 edits in tags/Safari-538.30/Source

Versioning.

12:06 AM Changeset in webkit [167420] by Lucas Forschler
  • 1 copy in tags/Safari-538.30

New Tag.

Note: See TracTimeline for information about the timeline view.