Timeline



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.

Apr 16, 2014:

10:58 PM Changeset in webkit [167419] by Lucas Forschler
  • 1 delete in tags/Safari-538.30

Remove Tag.

10:31 PM Changeset in webkit [167418] by ap@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after http://trac.webkit.org/changeset/167416 (Sink NaN sanitization)

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::speculate):
10:02 PM Changeset in webkit [167417] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Extra error reporting for invalid value conversions
https://bugs.webkit.org/show_bug.cgi?id=131786

Rubber stamped by Ryosuke Niwa.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

9:57 PM Changeset in webkit [167416] by fpizlo@apple.com
  • 11 edits
    4 adds in trunk/Source/JavaScriptCore

Sink NaN sanitization to uses and remove it when it's unnecessary
https://bugs.webkit.org/show_bug.cgi?id=131419

Reviewed by Oliver Hunt.

This moves NaN purification to stores that could see an impure NaN.

5% speed-up on AsmBench, 50% speed-up on AsmBench/n-body. It is a regression on FloatMM
though, because of the other bug that causes that benchmark to box doubles in a loop.

  • bytecode/SpeculatedType.h:

(JSC::isInt32SpeculationForArithmetic):
(JSC::isMachineIntSpeculationForArithmetic):
(JSC::isDoubleSpeculation):
(JSC::isDoubleSpeculationForArithmetic):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::fixTypeForRepresentation):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::mergeStateAtTail):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueRep):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileGetByVal):

  • runtime/PureNaN.h:
  • tests/stress/float32-array-nan-inlined.js: Added.

(foo):
(test):

  • tests/stress/float32-array-nan.js: Added.

(foo):
(test):

  • tests/stress/float64-array-nan-inlined.js: Added.

(foo):
(isBigEndian):
(test):

  • tests/stress/float64-array-nan.js: Added.

(foo):
(isBigEndian):
(test):

8:54 PM Changeset in webkit [167415] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the build after r167412

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16

  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars):

8:48 PM Changeset in webkit [167414] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

8:44 PM Changeset in webkit [167413] by Lucas Forschler
  • 1 copy in tags/Safari-538.30

New Tag.

8:28 PM Changeset in webkit [167412] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Fix the DidCommitLoad initial scrolling position
https://bugs.webkit.org/show_bug.cgi?id=131780

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Jon Honeycutt.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
That code is older than _obscuredInsets and used the contentInsets as a workaround.

8:26 PM Changeset in webkit [167411] by benjamin@webkit.org
  • 4 edits in trunk/Source

[iOS][WK2] Fix annoying scrolling bugs
https://bugs.webkit.org/show_bug.cgi?id=131722

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-16
Reviewed by Simon Fraser.

Source/WebCore:

  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars):
Since ScrollingStateScrollingNode::setRequestedScrollPosition() was added, we see ScrollView::updateScrollbars()
keep changing the scroll position to incorrect values.

On iOS, the scrollbars are handled by the native UI, the code just compute incorrect scroll position. On WebKit1,
the code does not run because there is a platformWidget().

Just #ifdef the whole useless code.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:WebCore::]):
We are scrolling at the wrong position when we have the "small obscured insets".

6:40 PM Changeset in webkit [167410] by barraclough@apple.com
  • 7 edits
    2 adds in trunk/Source/WebKit2

On iOS keep network process running using a process assertion rather than a boost
https://bugs.webkit.org/show_bug.cgi?id=131779

Reviewed by Benjamin Poulain.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):

  • No need to leak a boost onto the NetworkProcess on iOS.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didFinishLaunching):

  • Take a ProcessAssertion on the NetworkProcess.
  • UIProcess/Shared/ChildProcessProxy.h:
    • Added m_assertion.
  • UIProcess/WebProcessProxy.h:
    • Removed m_assertion.
  • UIProcess/ios/ProcessAssertion.h: Added.
    • Added - refactored from WebProcessProxy.h.
  • UIProcess/ios/ProcessAssertion.mm: Added.

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

  • Added - refactored from WebProcessProxyIOS.mm.
  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::updateProcessState):

  • Code refactored out to ProcessAssertion.mm.
  • WebKit2.xcodeproj/project.pbxproj:
    • Added files.
6:26 PM Changeset in webkit [167409] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Improve the approximation of the scroll position of the dynamic viewport size updates
https://bugs.webkit.org/show_bug.cgi?id=131720

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

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:]):
The scrolling tree was forcing scroll at the wrong scale during the transition.

(-[WKWebView _setMinimumLayoutSizeOverride:]):
This was left out by accident. The WebProcess was getting the new layout size twice, making
WebPage::dynamicViewportSizeUpdate() very confused when the content size changes.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):
Add scrolling adjustment for the dynamic relayout case:
-Sticky top and bottom like the UIProcess.
-Keep the same relative position of the unobscured rect's center.

Also fix a bug in the horizontal and vertical adjustments: the code was using the exposed rect
instead of the unobscured rect, which made the adjustments off by the size of the obscured insets.

The type is changed from double to float since ARMv7 has a grudge against double.

6:23 PM Changeset in webkit [167408] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Do not update the visible content rects when setting the same obscured insets multiple times
https://bugs.webkit.org/show_bug.cgi?id=131633

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

We should avoid computing the visible content rects when not needed.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setObscuredInsets:]):

6:00 PM Changeset in webkit [167407] by Alexandru Chiculita
  • 3 edits
    2 adds in trunk

Improve performance of the RenderLayerCompositor::OverlapMap
https://bugs.webkit.org/show_bug.cgi?id=115063

Reviewed by Simon Fraser.

PerformanceTests:
Testing the performance of computing the overlap of 5000 layers.

  • Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check

that the performance on the non-composited path is not changing with this patch.

  • Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000

non-overlapping 3D layers.

Source/WebCore:
No new tests, no new functionality or behavior.

Do not use the OverlapMap in RenderLayerCompositor::computeCompositingRequirements if the layer already
has a 3D transform. This way we can avoid a potential expensive lookups when we know for sure the layer
is already supposed to be composited.

Also, added a bounding box of the overlap map, so that it can catch cases when the new layer is not overlapping
any of the previous layers. This is pretty common when having composited layers laid out in a vertical/horizontal list.

  • rendering/RenderLayerCompositor.cpp:

(OverlapMapContainer):
(WebCore::OverlapMapContainer::add):
(WebCore::OverlapMapContainer::overlapsLayers):
(WebCore::OverlapMapContainer::unite):
(WebCore):
(WebCore::RenderLayerCompositor::OverlapMap::add):
(WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
(WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
(RenderLayerCompositor::OverlapMap):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

5:56 PM Changeset in webkit [167406] by Brian Burg
  • 5 edits
    2 adds in trunk

Web Replay: memoize fallback time values for document.lastModified
https://bugs.webkit.org/show_bug.cgi?id=131318

Reviewed by Joseph Pecoraro.

Source/WebCore:
If a document's Last-Modified header can't be found or used, then
document.lastModified is derived from the current system time or
from filesystem data, which is obviously nondeterministic.

It's better to handle this inside Document::lastModified rather than using
MemoizedDOMResult, because only the fallback case is nondeterministic.

Test: http/tests/inspector/replay/document-last-modified-fallback-value.html

The test is skipped for now, as it will be very flaky without the
functionality introduced by bugs 130728 and 129391.

  • dom/Document.cpp:

(WebCore::Document::lastModified): Save or reuse memoized fallback value.

  • replay/WebInputs.json: Add input DocumentLastModifiedDate.

LayoutTests:
Mark the new test as skipped until dependent functionality is landed.

  • http/tests/inspector/replay/document-last-modified-fallback-value.html: Added.
5:40 PM Changeset in webkit [167405] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Unreviewed Windows gardening. Restrict our new 'isinf' check
to 32-bit builds, and revise the comment to explain what we are
doing.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isMachineInt): Provide motivation for the new
'isinf' check for our 32-bit code path.

5:27 PM Changeset in webkit [167404] by hyatt@apple.com
  • 6 edits in trunk/Source/WebCore

[New Multicolumn] Selection gets confused when the mouse is in the column gaps.
https://bugs.webkit.org/show_bug.cgi?id=131739

Reviewed by Enrica Casucci.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::selectionGaps):
Make sure not to paint selection gaps. This matches the old multi-column behavior. Even though
selection gaps *nearly* work with the new multi-column code, I am disabling them so that we
can turn them on without visual regressions.

(WebCore::isChildHitTestCandidate):
Don't allow in-flow RenderFlowThreads to be descended into from positionForPoint. We always want
to look only at the spanners and at the sets.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::nodeAtPoint):

  • rendering/RenderMultiColumnFlowThread.h:

Override nodeAtPoint to disallow the RenderMultiColumnFlowThread from being considered for hit
testing when no DOM node is found. It's better to just let RenderBlock's positionForPoint run
to drill back down into the appropriate column set.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::positionForPoint):
Implement positionForPoint for RenderMultiColumnSets. This is a straight-up port of the
old multi-column code's adjustPointToColumnContents function.

  • rendering/RenderMultiColumnSet.h:

Add override of positionForPoint.

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

Images dragged from WebKit1 on 2x displays are too big
https://bugs.webkit.org/show_bug.cgi?id=131775
<rdar://problem/15933525>

Reviewed by Simon Fraser.

  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::startDrag):
Scale the drag image's logical size down by the device scale factor
in WebKit1 just like we do in WebKit2.

4:55 PM Changeset in webkit [167402] by dino@apple.com
  • 3 edits
    4 adds in trunk

MediaDocument on iOS should be full page
https://bugs.webkit.org/show_bug.cgi?id=131774

Reviewed by Jer Noble.

Source/WebCore:
A MediaDocument on iOS has two problems. It can't rely
on intrinsic size, since it doesn't load the content until
a user gesture. Secondly, on a small screen you want the
media to fill the page.

Add width/height 100% for iOS documents.

Test: platform/iphone-simulator/media/media-document-controls-size.html

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

LayoutTests:

  • platform/iphone-simulator/media/media-document-controls-size-expected.txt: Added.
  • platform/iphone-simulator/media/media-document-controls-size.html: Added.
4:53 PM Changeset in webkit [167401] by roger_fong@apple.com
  • 7 edits in trunk

Add a way for layout tests to determine whether or not a plugin is snapshotted.
https://bugs.webkit.org/show_bug.cgi?id=131650.
<rdar://problem/16615528>

Reviewed by Dean Jackson.

  • testing/Internals.cpp:

(WebCore::Internals::isPluginSnapshotted):

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

Adjust simple.html accordingly, more snapshotting test changes to come.

  • platform/mac-wk2/plugins/snapshotting/simple-expected.txt:
  • plugins/snapshotting/simple.html:
4:50 PM Changeset in webkit [167400] by Simon Fraser
  • 2 edits in trunk/Source/WTF

Don't include CryptographicallyRandomNumber.h in StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=131772

Reviewed by Sam Weinig.

  • wtf/text/StringImpl.h:
4:46 PM Changeset in webkit [167399] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebKit2

Make IPC::Arguments a variadic template
https://bugs.webkit.org/show_bug.cgi?id=131684

Reviewed by Darin Adler.

Make IPC::Arguments a variadic template that uses the template parameter pack to further
define the std::tuple ValueType and is used to define the std::tuple container of the
values passed into the container.

  • Platform/IPC/Arguments.h:

(IPC::Arguments::Arguments):
(IPC::Arguments::encode):
(IPC::Arguments::decode):
(IPC::Arguments0::encode): Deleted.
(IPC::Arguments0::decode): Deleted.
(IPC::Arguments1::Arguments1): Deleted.
(IPC::Arguments1::encode): Deleted.
(IPC::Arguments1::decode): Deleted.
(IPC::Arguments2::Arguments2): Deleted.
(IPC::Arguments2::encode): Deleted.
(IPC::Arguments2::decode): Deleted.
(IPC::Arguments3::Arguments3): Deleted.
(IPC::Arguments3::encode): Deleted.
(IPC::Arguments3::decode): Deleted.
(IPC::Arguments4::Arguments4): Deleted.
(IPC::Arguments4::encode): Deleted.
(IPC::Arguments4::decode): Deleted.
(IPC::Arguments5::Arguments5): Deleted.
(IPC::Arguments5::encode): Deleted.
(IPC::Arguments5::decode): Deleted.
(IPC::Arguments6::Arguments6): Deleted.
(IPC::Arguments6::encode): Deleted.
(IPC::Arguments6::decode): Deleted.
(IPC::Arguments7::Arguments7): Deleted.
(IPC::Arguments7::encode): Deleted.
(IPC::Arguments7::decode): Deleted.
(IPC::Arguments8::Arguments8): Deleted.
(IPC::Arguments8::encode): Deleted.
(IPC::Arguments8::decode): Deleted.
(IPC::Arguments10::Arguments10): Deleted.
(IPC::Arguments10::encode): Deleted.
(IPC::Arguments10::decode): Deleted.

  • Scripts/webkit2/LegacyMessages-expected.h:
  • Scripts/webkit2/Messages-expected.h:
  • Scripts/webkit2/messages.py: Clean up the code a bit.

(reply_parameter_type):
(arguments_type):
(reply_type):
(decode_type):
(arguments_type_old): Deleted.
(base_class): Deleted.
(delayed_reply_type): Deleted.

4:40 PM Changeset in webkit [167398] by timothy_horton@apple.com
  • 8 edits
    1 add
    3 deletes in trunk/Source/WebKit2

Deduplicate LayerTreeContext
https://bugs.webkit.org/show_bug.cgi?id=131773

Reviewed by Simon Fraser.

There are three identical implementations, one for each platform, for no reason.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Shared/LayerTreeContext.cpp: Renamed from Source/WebKit2/Shared/mac/LayerTreeContextMac.mm.

(WebKit::LayerTreeContext::LayerTreeContext):
(WebKit::LayerTreeContext::~LayerTreeContext):
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
(WebKit::LayerTreeContext::isEmpty):
(WebKit::operator==):

  • Shared/LayerTreeContext.h:

(WebKit::operator!=): Deleted.

  • Shared/efl/LayerTreeContextEfl.cpp: Removed.
  • Shared/gtk/LayerTreeContextGtk.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::initialize):

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

Allocate the data section on the heap again for FTL on ARM64
https://bugs.webkit.org/show_bug.cgi?id=130156

Patch by Juergen Ributzka <juergen@apple.com> on 2014-04-16
Reviewed by Geoffrey Garen and Filip Pizlo.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLDataSection.cpp:

(JSC::FTL::DataSection::DataSection):
(JSC::FTL::DataSection::~DataSection):

  • ftl/FTLDataSection.h:
4:07 PM Changeset in webkit [167396] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash in CodeBlock::setOptimizationThresholdBasedOnCompilationResult() when the debugger activates.
<https://webkit.org/b/131747>

Reviewed by Filip Pizlo.

When the debugger is about to activate (e.g. enter stepping mode), it first
waits for all DFG compilations to complete. However, when the DFG completes,
if compilation is successful, it will install a new DFG codeBlock. The
CodeBlock installation process is required to register codeBlocks with the
debugger. Debugger::registerCodeBlock() will eventually call
CodeBlock::setSteppingMode() which may jettison the DFG codeBlock that we're
trying to install. Thereafter, chaos ensues.

This jettison'ing only happens because the debugger currently set its
m_steppingMode flag before waiting for compilation to complete. The fix is
simply to set that flag only after compilation is complete.

  • debugger/Debugger.cpp:

(JSC::Debugger::setSteppingMode):
(JSC::Debugger::registerCodeBlock):

3:54 PM Changeset in webkit [167395] by zoltan@webkit.org
  • 5 edits in trunk/Source/WebCore

Vanish unnecessary includes from Shapes.{h|cpp}
https://bugs.webkit.org/show_bug.cgi?id=131762

Reviewed by Andreas Kling.

No new tests, no behavior change.

  • rendering/shapes/BoxShape.h:
  • rendering/shapes/Shape.cpp:
  • rendering/shapes/Shape.h:
  • rendering/shapes/ShapeOutsideInfo.h:
3:44 PM Changeset in webkit [167394] by fpizlo@apple.com
  • 36 edits
    1 add in trunk/Source/JavaScriptCore

Discern between NaNs that would be safe to tag and NaNs that need some purification before tagging
https://bugs.webkit.org/show_bug.cgi?id=131420

Reviewed by Oliver Hunt.

Rationalizes our handling of NaNs. We now have the notion of pureNaN(), or PNaN, which
replaces QNaN and represents a "safe" NaN for our tagging purposes. NaN purification now
goes through the purifyNaN() API.

SpeculatedType and its clients can now distinguish between a PureNaN and an ImpureNaN.

Prediction propagator is made slightly more cautious when dealing with NaNs. It doesn't
have to be too cautious since most prediction-based logic only cares about whether or not
a value could be an integer.

AI is made much more cautious when dealing with NaNs. We don't yet introduce ImpureNaN
anywhere in the compiler, but when we do, we ought to be able to trust AI to propagate it
soundly and precisely.

No performance change because this just unblocks
https://bugs.webkit.org/show_bug.cgi?id=131419.

  • API/JSValueRef.cpp:

(JSValueMakeNumber):
(JSValueToNumber):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):
(JSC::speculationFromValue):
(JSC::typeOfDoubleSum):
(JSC::typeOfDoubleDifference):
(JSC::typeOfDoubleProduct):
(JSC::polluteDouble):
(JSC::typeOfDoubleQuotient):
(JSC::typeOfDoubleMinMax):
(JSC::typeOfDoubleNegation):
(JSC::typeOfDoubleAbs):
(JSC::typeOfDoubleFRound):
(JSC::typeOfDoubleBinaryOp):
(JSC::typeOfDoubleUnaryOp):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGCriticalEdgeBreakingPhase.cpp:

(JSC::DFG::CriticalEdgeBreakingPhase::breakCriticalEdge):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::mergeStateAtTail):

  • dfg/DFGLoopPreHeaderCreationPhase.cpp:

(JSC::DFG::createPreHeader):

  • dfg/DFGNode.h:

(JSC::DFG::BranchTarget::BranchTarget):

  • dfg/DFGOSREntrypointCreationPhase.cpp:

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

  • dfg/DFGOSRExitCompiler32_64.cpp:

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

  • dfg/DFGOSRExitCompiler64.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateJSArray):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGVariableAccessData.h:

(JSC::DFG::VariableAccessData::makePredictionForDoubleFormat):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileArrayPush):
(JSC::FTL::LowerDFGToLLVM::compileArrayPop):
(JSC::FTL::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::LowerDFGToLLVM::numberOrNotCellToInt32):
(JSC::FTL::LowerDFGToLLVM::allocateJSArray):

  • ftl/FTLValueFormat.cpp:

(JSC::FTL::reboxAccordingToFormat):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::purifyNaN):
(JSC::AssemblyHelpers::sanitizeDouble): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitFloatTypedArrayGetByVal):

  • runtime/DateConstructor.cpp:

(JSC::constructDate):

  • runtime/DateInstanceCache.h:

(JSC::DateInstanceData::DateInstanceData):
(JSC::DateInstanceCache::reset):

  • runtime/ExceptionHelpers.cpp:

(JSC::TerminatedExecutionError::defaultValue):

  • runtime/JSArray.cpp:

(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::sortVector):
(JSC::JSArray::compactForSorting):

  • runtime/JSArray.h:

(JSC::JSArray::create):
(JSC::JSArray::tryCreateUninitialized):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toNumberSlowCase):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::jsNaN):
(JSC::JSValue::JSValue):
(JSC::JSValue::getPrimitiveNumber):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::parseInt):
(JSC::jsStrDecimalLiteral):
(JSC::toDouble):
(JSC::jsToNumber):
(JSC::parseFloat):

  • runtime/JSObject.cpp:

(JSC::JSObject::createInitialDouble):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::ensureLengthSlow):

  • runtime/MathObject.cpp:

(JSC::mathProtoFuncMax):
(JSC::mathProtoFuncMin):

  • runtime/PureNaN.h: Added.

(JSC::pureNaN):
(JSC::isImpureNaN):
(JSC::purifyNaN):

  • runtime/TypedArrayAdaptors.h:

(JSC::FloatTypedArrayAdaptor::toJSValue):

3:39 PM Changeset in webkit [167393] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit2

Don't build LayerTreeHost on Mac (and clean it up)
https://bugs.webkit.org/show_bug.cgi?id=131769

Reviewed by Simon Fraser.

  • WebKit2.xcodeproj/project.pbxproj:

Don't include it in the project.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::updatePreferences):

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):

  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::setLayerHostingMode): Deleted.
(WebKit::LayerTreeHost::supportsAcceleratedCompositing): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

Get rid of LayerTreeHost::supportsAcceleratedCompositing, which always returns true everywhere.
Remove some LayerTreeHost.h includes.
Remove LayerTreeHost::setLayerHostingMode, which is PLATFORM(COCOA) and not needed.

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

Enable system library calls in FTL for ARM64
https://bugs.webkit.org/show_bug.cgi?id=130154

Patch by Juergen Ributzka <juergen@apple.com> on 2014-04-16
Reviewed by Geoffrey Garen and Filip Pizlo.

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleRem):
(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):

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

Revert direct caching of tagName and nodeName from r167383.

Ryosuke tells me this is not entirely safe, will need to rethink.

  • dom/Element.idl:
  • dom/Node.idl:
3:04 PM Changeset in webkit [167390] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Failing to decode a layer tree commit message resulted in silent and mysterious failure
https://bugs.webkit.org/show_bug.cgi?id=131766
<rdar://problem/16520894>

Reviewed by Sam Weinig.

If the message decode failed, we should have already marked the message as invalid.
Failing to do so indicates in a decode code coding error.

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessage):
(IPC::handleMessageVariadic):
(IPC::handleMessageDelayed):

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

[Win] run-javascriptcore-tests fails to run.
https://bugs.webkit.org/show_bug.cgi?id=131761

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-04-16
Reviewed by Brent Fulgham.

  • Scripts/build-jsc: For now, don't try to build bmalloc on Windows.
2:53 PM Changeset in webkit [167388] by timothy_horton@apple.com
  • 11 edits in trunk/Source/WebKit2

Minor include sanity in WebPage.h
https://bugs.webkit.org/show_bug.cgi?id=131752

Reviewed by Simon Fraser.

  • WebProcess/WebPage/WebPage.h:

Remove a bunch of unnecessary includes.
Un-indent some stuff.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/mac/WebPageMac.mm:

Add back more specific includes, into implementation files.

  • WebProcess/WebPage/WebUndoStep.cpp:

(WebKit::WebUndoStep::~WebUndoStep):

  • WebProcess/WebPage/WebUndoStep.h:

Add an out-of-line destructor.

2:50 PM Changeset in webkit [167387] by pmolnar.u-szeged@partner.samsung.com
  • 3 edits in trunk/Source/WebCore

Improve security mitigation added in webkit r94001.
We missed the case where attachLine was called when we already had an inline box wrapper.
https://bugs.webkit.org/show_bug.cgi?id=127285

Reviewed by Brent Fulgham.

Merged from Blink: https://src.chromium.org/viewvc/blink?revision=150697&view=revision

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionLineBox):

  • rendering/RenderBox.h:

(WebCore::RenderBox::setInlineBoxWrapper):

2:43 PM April 2014 Meeting edited by ddkilzer@webkit.org
(diff)
2:34 PM Changeset in webkit [167386] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: PCE.js is 20x slower in WebKit2 because timers are throttled
https://bugs.webkit.org/show_bug.cgi?id=131189

Unreviewed rollout of r166754

This change is no longer necessary.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):

2:24 PM Changeset in webkit [167385] by b.long@cablelabs.com
  • 2 edits in trunk

[GTK][CMAKE] build-webkit doesn't detect when the build fails
https://bugs.webkit.org/show_bug.cgi?id=130148

Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake: Replace CMake's automatic make -i with make -k, which still continues after errors, but correctly reports tha the build failed.
2:14 PM Changeset in webkit [167384] by Bem Jones-Bey
  • 2 edits in trunk/Source/WebCore

Fix CodeGenerator.pm to only write files if the generated content has changed
https://bugs.webkit.org/show_bug.cgi?id=131756

Reviewed by Sam Weinig.

To improve build speed, don't touch generated files unless the newly
generated content is actually different.

  • bindings/scripts/CodeGenerator.pm:

(UpdateFile):

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

Add a way to cache never-changing IDL attributes in the wrapper.
<https://webkit.org/b/131759>

Some IDL attributes will always return the same value when queried
on an object, so let's have a way to avoid calling into C++ code
every time they are queried.

This patch adds a custom IDL thingy called "ReturnsCacheableValue"
which causes the code generator to emit code to cache the returned
value directly in the JS wrapper object.

Reviewed by Oliver Hunt.

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

Add ReturnsCacheableValue custom attribute.

  • dom/Element.idl:
  • dom/Node.idl:

Annotate some attributes that return fully cacheable values.

  • bindings/scripts/test/*:

Rebaseline.

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

Fix JSC Debug Regressions on Windows
https://bugs.webkit.org/show_bug.cgi?id=131182

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-04-16
Reviewed by Brent Fulgham.

The cast static_cast<int64_t>(number) in JSValue::isMachineInt() can generate a floating point error,
and set the st floating point register tags, if the value of the number parameter is infinite.
If the st floating point register tags are not cleared, this can cause strange floating point behavior later on.
This can be avoided by checking for infinity first.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isMachineInt): Avoid floating point error by checking for infinity first.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions): Re-enable jit for Windows.

1:43 PM Changeset in webkit [167381] by noel.gordon@gmail.com
  • 2 edits in trunk/Source/WebCore

Progressive JPEG outputScanlines() calls should handle failure
https://bugs.webkit.org/show_bug.cgi?id=116701

Reviewed by Brent Fulgham.

outputScanlines() can fail and delete |this|. Copy the decoder pointer
member and use that copy to detect and handle the failure case.

  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageReader::decode):

1:10 PM Changeset in webkit [167380] by oliver@apple.com
  • 6 edits
    3 adds in trunk

Simple ES6 feature:Array.prototype.fill
https://bugs.webkit.org/show_bug.cgi?id=131703

Reviewed by David Hyatt.

Source/JavaScriptCore:
Add support for Array.prototype.fill

  • builtins/Array.prototype.js:

(fill):

  • runtime/ArrayPrototype.cpp:

LayoutTests:
Add tests.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-fill-expected.txt: Added.
  • js/array-fill.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-fill.js: Added.
1:02 PM Changeset in webkit [167379] by ap@apple.com
  • 3 edits in trunk/Source/WebKit2

Updating tests after bug 131721, [GTK] Fix unused parameter warnings.

  • Scripts/webkit2/LegacyMessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):

  • Scripts/webkit2/MessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):

12:57 PM Changeset in webkit [167378] by barraclough@apple.com
  • 2 edits in trunk/Source/WTF

Update to pthread QoS SPI
https://bugs.webkit.org/show_bug.cgi?id=131753

Rubber stamped by Benjamin Poulain

  • wtf/ThreadingPthreads.cpp:

(WTF::setCurrentThreadQOSUtility):

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

[curl] Add WEB_TIMING support
https://bugs.webkit.org/show_bug.cgi?id=127555

Patch by Robert Sipka <sipka@inf.u-szeged.hu> on 2014-04-16
Reviewed by Brent Fulgham.

Access timing information related to navigation.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::milisecondsSinceRequest):
(WebCore::calculateWebTimingInformations):
(WebCore::sockoptfunction):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):
(WebCore::ResourceHandleManager::initializeHandle):

12:37 PM Changeset in webkit [167376] by zoltan@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup header includes in ShapeOutsideInfo.h
https://bugs.webkit.org/show_bug.cgi?id=131750

Reviewed by Antti Koivisto.

Make the build faster by removing unnecessary header includes.

No new tests, no behavior change.

  • rendering/shapes/ShapeOutsideInfo.h:
12:12 PM Changeset in webkit [167375] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the iOS build.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::draw):

12:01 PM Changeset in webkit [167374] by ddkilzer@apple.com
  • 1 edit
    12 deletes in trunk/LayoutTests

Remove test results that match platform/mac results

Found using this shell script:

$ for F in find LayoutTests/platform/ios-sim -name \*-expected.txt; do \
T=echo $F | sed -e 's#platform/ios-sim/##'; \
M=echo $F | sed -e 's#platform/ios-sim/#platform/mac/#'; \
ML=echo $F | sed -e 's#platform/ios-sim/#platform/mac-mountainlion/#'; \
if [ -f $M -a ! -f $ML -a -z "diff -u $F $M 2> /dev/null" ]; then echo $F; fi; \
done

  • platform/ios-sim/fast/block/positioning/016-expected.txt: Removed.
  • platform/ios-sim/fast/block/positioning/025-expected.txt: Removed.
  • platform/ios-sim/fast/dom/icon-url-property-expected.txt: Removed.
  • platform/ios-sim/fast/hidpi/focus-rings-expected.txt: Removed.
  • platform/ios-sim/fast/multicol/shrink-to-column-height-for-pagination-expected.txt: Removed.
  • platform/ios-sim/fast/preloader/document-write-2-expected.txt: Removed.
  • platform/ios-sim/fast/preloader/script-expected.txt: Removed.
  • platform/ios-sim/fast/writing-mode/broken-ideograph-small-caps-expected.txt: Removed.
  • platform/ios-sim/fast/xsl/sort-locale-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_320/S7.6_A2.2_T2-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_320/S7.6_A5.2_T8-expected.txt: Removed.
  • platform/ios-sim/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Removed.
12:00 PM Changeset in webkit [167373] by ddkilzer@apple.com
  • 1 edit
    91 deletes in trunk/LayoutTests

Remove test results that match top-level results

Found using this shell script:

$ for F in find LayoutTests/platform/ios-sim -name \*-expected.txt; do \
T=echo $F | sed -e 's#platform/ios-sim/##'; \
M=echo $F | sed -e 's#platform/ios-sim/#platform/mac/#'; \
ML=echo $F | sed -e 's#platform/ios-sim/#platform/mac-mountainlion/#'; \
if [ ! -f $M -a ! -f $ML -a -f $T -a -z "diff -u $F $T 2> /dev/null" ]; then echo $F; fi; \
done

  • platform/ios-sim/compositing/layer-creation/no-compositing-for-sticky-expected.txt: Removed.
  • platform/ios-sim/editing/inserting/insert-3786362-fix-expected.txt: Removed.
  • platform/ios-sim/editing/inserting/insert-3907422-fix-expected.txt: Removed.
  • platform/ios-sim/editing/unsupported-content/table-delete-001-expected.txt: Removed.
  • platform/ios-sim/editing/unsupported-content/table-delete-003-expected.txt: Removed.
  • platform/ios-sim/fast/block/positioning/move-with-auto-width-expected.txt: Removed.
  • platform/ios-sim/fast/canvas/2d.backingStorePixelRatio-expected.txt: Removed.
  • platform/ios-sim/fast/canvas/2d.imageDataHD-expected.txt: Removed.
  • platform/ios-sim/fast/canvas/canvas-fillPath-shadow-expected.txt: Removed.
  • platform/ios-sim/fast/canvas/webgl/texture-npot-expected.txt: Removed.
  • platform/ios-sim/fast/css/MarqueeLayoutTest-expected.txt: Removed.
  • platform/ios-sim/fast/css/color-leakage-expected.txt: Removed.
  • platform/ios-sim/fast/css/font-face-multiple-remote-sources-expected.txt: Removed.
  • platform/ios-sim/fast/css/font-face-remote-expected.txt: Removed.
  • platform/ios-sim/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/ios-sim/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/ios-sim/fast/css/nested-layers-with-hover-expected.txt: Removed.
  • platform/ios-sim/fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1-expected.txt: Removed.
  • platform/ios-sim/fast/dom/Window/window-postmessage-arrays-expected.txt: Removed.
  • platform/ios-sim/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
  • platform/ios-sim/fast/dom/gc-10-expected.txt: Removed.
  • platform/ios-sim/fast/dom/tabindex-clamp-expected.txt: Removed.
  • platform/ios-sim/fast/dynamic/dirty-float-in-clean-line-expected.txt: Removed.
  • platform/ios-sim/fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt: Removed.
  • platform/ios-sim/fast/forms/mailto/advanced-get-expected.txt: Removed.
  • platform/ios-sim/fast/forms/mailto/advanced-put-expected.txt: Removed.
  • platform/ios-sim/fast/forms/radio/indeterminate-radio-expected.txt: Removed.
  • platform/ios-sim/fast/forms/select-script-onchange-expected.txt: Removed.
  • platform/ios-sim/fast/forms/suggested-value-expected.txt: Removed.
  • platform/ios-sim/fast/history/timed-refresh-in-cached-frame-expected.txt: Removed.
  • platform/ios-sim/fast/lists/inline-before-content-after-list-marker-expected.txt: Removed.
  • platform/ios-sim/fast/media/media-query-list-07-expected.txt: Removed.
  • platform/ios-sim/fast/media/print-restores-previous-mediatype-expected.txt: Removed.
  • platform/ios-sim/fast/multicol/span/before-child-anonymous-column-block-expected.txt: Removed.
  • platform/ios-sim/fast/overflow/horizontal-scroll-after-back-expected.txt: Removed.
  • platform/ios-sim/fast/overflow/scrollbar-restored-expected.txt: Removed.
  • platform/ios-sim/fast/repaint/table-hover-on-link-expected.txt: Removed.
  • platform/ios-sim/fast/repaint/table-section-repaint-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/floating-ruby-text-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/overhang-horizontal-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/overhang-horizontal-no-overlap1-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/overhang-horizontal-no-overlap2-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/positioned-ruby-text-expected.txt: Removed.
  • platform/ios-sim/fast/ruby/ruby-text-before-child-split-expected.txt: Removed.
  • platform/ios-sim/fast/table/empty-row-crash-expected.txt: Removed.
  • platform/ios-sim/fast/table/empty-section-crash-expected.txt: Removed.
  • platform/ios-sim/fast/table/inline-form-assert-expected.txt: Removed.
  • platform/ios-sim/fast/table/max-width-integer-overflow-expected.txt: Removed.
  • platform/ios-sim/fast/table/table-row-split2-expected.txt: Removed.
  • platform/ios-sim/fast/table/table-section-split2-expected.txt: Removed.
  • platform/ios-sim/fast/table/table-split-expected.txt: Removed.
  • platform/ios-sim/fast/table/table-split2-expected.txt: Removed.
  • platform/ios-sim/fast/text/apply-start-width-after-skipped-text-expected.txt: Removed.
  • platform/ios-sim/fast/text/justify-padding-distribution-expected.txt: Removed.
  • platform/ios-sim/fast/text/selection-painted-separately-expected.txt: Removed.
  • platform/ios-sim/fast/text/setData-dirty-lines-expected.txt: Removed.
  • platform/ios-sim/fast/text/soft-hyphen-2-expected.txt: Removed.
  • platform/ios-sim/fast/text/splitText-dirty-lines-expected.txt: Removed.
  • platform/ios-sim/fast/transforms/shadows-expected.txt: Removed.
  • platform/ios-sim/fast/workers/worker-close-more-expected.txt: Removed.
  • platform/ios-sim/fast/writing-mode/table-percent-width-quirk-expected.txt: Removed.
  • platform/ios-sim/fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt: Removed.
  • platform/ios-sim/http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt: Removed.
  • platform/ios-sim/http/tests/cookies/simple-cookies-expired-expected.txt: Removed.
  • platform/ios-sim/http/tests/cookies/simple-cookies-max-age-expected.txt: Removed.
  • platform/ios-sim/http/tests/cookies/single-quoted-value-expected.txt: Removed.
  • platform/ios-sim/http/tests/misc/empty-urls-expected.txt: Removed.
  • platform/ios-sim/http/tests/multipart/load-last-non-html-frame-expected.txt: Removed.
  • platform/ios-sim/http/tests/navigation/post-goback1-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/contentSecurityPolicy/media-src-blocked-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/local-video-poster-from-remote-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/sandboxed-iframe-modify-self-expected.txt: Removed.
  • platform/ios-sim/http/tests/security/video-poster-cross-origin-crash-expected.txt: Removed.
  • platform/ios-sim/http/tests/xmlhttprequest/chunked-progress-event-expectedLength-expected.txt: Removed.
  • platform/ios-sim/http/tests/xmlhttprequest/request-encoding2-expected.txt: Removed.
  • platform/ios-sim/http/tests/xmlhttprequest/upload-onloadend-event-after-load-expected.txt: Removed.
  • platform/ios-sim/http/tests/xmlhttprequest/upload-onprogress-event-expected.txt: Removed.
  • platform/ios-sim/http/tests/xmlhttprequest/upload-progress-events-expected.txt: Removed.
  • platform/ios-sim/media/csp-blocks-video-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A3.1-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A3.2-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A5.3_T1-expected.txt: Removed.
  • platform/ios-sim/sputnik/Unicode/Unicode_510/S7.6_A5.3_T2-expected.txt: Removed.
  • platform/ios-sim/svg/as-image/image-respects-pageScaleFactor-change-expected.txt: Removed.
  • platform/ios-sim/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/ios-sim/svg/custom/baseval-animval-equality-expected.txt: Removed.
  • platform/ios-sim/svg/custom/dasharrayOrigin-expected.txt: Removed.
  • platform/ios-sim/svg/custom/getSubStringLength-expected.txt: Removed.
  • platform/ios-sim/svg/custom/pattern-scaling-expected.txt: Removed.
  • platform/ios-sim/svg/custom/svg-features-expected.txt: Removed.
  • platform/ios-sim/svg/dom/altGlyph-dom-expected.txt: Removed.
  • platform/ios-sim/svg/foreignObject/fO-parent-display-none-expected.txt: Removed.
  • platform/ios-sim/svg/foreignObject/fO-parent-display-none-with-relative-pos-content-expected.txt: Removed.
  • platform/ios-sim/svg/foreignObject/fO-parent-of-parent-display-none-expected.txt: Removed.
  • platform/ios-sim/svg/foreignObject/fO-parent-of-parent-display-none-with-relative-pos-content-expected.txt: Removed.
  • platform/ios-sim/svg/hittest/svg-ellipse-non-scale-stroke-expected.txt: Removed.
12:00 PM Changeset in webkit [167372] by ddkilzer@apple.com
  • 2166 edits
    1 copy
    1126 adds
    2 deletes in trunk/LayoutTests

<http://webkit.org/b/129171> Rebaseline LayoutTests for iOS

3206 files changed, 65535 insertions(+), 39972 deletions(-)

  • platform/ios-sim/Skipped: Clean up old items. Skip tests that

time out due to notifyDone() not being called.

11:59 AM Faster Build edited by Simon Fraser
(diff)
11:58 AM Faster Build created by Simon Fraser
11:57 AM April 2014 Meeting edited by Simon Fraser
(diff)
11:56 AM Changeset in webkit [167371] by ddkilzer@apple.com
  • 1 edit
    7742 adds in trunk/LayoutTests

Upstream iOS layout test results

7354 files changed, 367781 insertions(+)

  • platform/ios-sim: Add.
11:51 AM Changeset in webkit [167370] by Andres Gomez
  • 3 edits in trunk/Tools

[Win] Pass default parameters to cygwin setup wizard
https://bugs.webkit.org/show_bug.cgi?id=131361

Reviewed by Brent Fulgham.

Added some parameters to the cygwin setup wizard so the user
doesn't really have to do any interaction.

  • CygwinDownloader/cygwin-downloader.py:
  • CygwinDownloader/cygwin-downloader.zip:
11:51 AM Changeset in webkit [167369] by ddkilzer@apple.com
  • 1 edit
    101 copies
    5 adds
    1 delete in trunk/LayoutTests

Rename LayoutTests/platformm/iphone-simulator => ios-sim

  • platform/ios-sim: Renamed from LayoutTests/platform/iphone-simulator.
11:49 AM Changeset in webkit [167368] by ap@apple.com
  • 8 edits
    2 adds in trunk

DataTransfer should cache its FileList
https://bugs.webkit.org/show_bug.cgi?id=131694

Reviewed by Darin Adler.

Source/WebCore:
Test: fast/events/data-transfer-files-attribute-identity.html

  • bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal):

Switched to a new FileList constructor, CloneDeserializer doesn't really need to modify
the FileList with append().

  • dom/DataTransfer.h:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::types): Added a FIXME.
(WebCore::DataTransfer::files): Changed to reuse a cached FileList. It's currently
easy, because we don't support DataTransferItemList. Once we do, making any changes
through it will also require updating the FileList in a way that doesn't replace
File objects for unchanged files.

  • fileapi/FileList.h:

(WebCore::FileList::create):
(WebCore::FileList::isEmpty):
(WebCore::FileList::FileList):
(WebCore::FileList::append):
(WebCore::FileList::clear):
Made non-const functions private, because neither DataTransfer nor FileInputType
expect the list to be modified without their knowledge. Added a new Vector based
constructor so that a FileList could be created without the use of append().

  • html/FileInputType.cpp: (WebCore::FileInputType::createFileList): Simplified

the code a little bit. FileInputType still needs to modify the list for clear(),
but doesn't need to add to it dynamically - unlike with DataTransfer, it's expected
to create a new FileList when it's modified.

LayoutTests:

  • fast/events/data-transfer-files-attribute-identity-expected.txt: Added.
  • fast/events/data-transfer-files-attribute-identity.html: Added.
  • platform/wk2/TestExpectations: Skipped the test, because WKTR doesn't support

file dragging yet.

11:32 AM Changeset in webkit [167367] by zoltan@webkit.org
  • 2 edits in trunk/LayoutTests

Remove fast/parser/parser-yield-timing.html from skipped list
https://bugs.webkit.org/show_bug.cgi?id=131749

Reviewed by Darin Adler.

The test was originally skipped in Bug 89812 due to flakiness on Chromium
debug bots. I run the tests with huge iterations and I don't see
flakiness on Mavericks release/debug. Let's remove from skipped for now.

  • platform/mac/TestExpectations:
11:16 AM Changeset in webkit [167366] by Bem Jones-Bey
  • 3 edits in trunk/LayoutTests

Remove references to Leopard and Snow Leopard from Windows TestExpectations

Filed new bugs to track each of these tests, so someone with a windows
build can try and see if the tests still fail.

Unreviewed.

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
11:15 AM Changeset in webkit [167365] by Brent Fulgham
  • 8 edits in trunk

[Win] Eliminate use of deleteAllValues in Windows Files
https://bugs.webkit.org/show_bug.cgi?id=131631

Reviewed by Darin Adler.

Source/WebCore:
Update to use std::unique_ptr for object lifetime. Get rid of
deleteAllValues now that it is no loner needed. Use ranged for
loops where possible.

  • platform/win/WCDataObject.cpp:

(WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
(WebCore::WCDataObject::~WCDataObject):
(WebCore::WCDataObject::GetData):
(WebCore::WCDataObject::QueryGetData):
(WebCore::WCDataObject::SetData):
(WebCore::WCDataObject::clearData):

  • platform/win/WCDataObject.h:

Tools:
Switch to std::unique_ptr for memory lifetime. Get rid of
deleteAllValues now that it is no longer needed. Use ranged
for loops where possible.

  • DumpRenderTree/win/DRTDataObject.cpp:

(WCEnumFormatEtc::WCEnumFormatEtc):
(DRTDataObject::~DRTDataObject):
(DRTDataObject::GetData):
(DRTDataObject::QueryGetData):
(DRTDataObject::SetData):
(DRTDataObject::clearData):

  • DumpRenderTree/win/DRTDataObject.h:
  • DumpRenderTree/win/UIDelegate.cpp:

(DRTUndoObject::DRTUndoObject):
(DRTUndoObject::~DRTUndoObject):
(DRTUndoStack::~DRTUndoStack):
(DRTUndoStack::clear):
(DRTUndoStack::pop):
(DRTUndoManager::DRTUndoManager):
(DRTUndoManager::redo):
(DRTUndoManager::undo):
(UIDelegate::UIDelegate):
(UIDelegate::resetUndoManager):

  • DumpRenderTree/win/UIDelegate.h:
11:09 AM Changeset in webkit [167364] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[WebKit] Cleanup the build from uninitialized variable in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=131728

Reviewed by Darin Adler.

  • runtime/JSObject.cpp:

(JSC::JSObject::genericConvertDoubleToContiguous): Add a RELEASE_ASSERT on the
path we expect to never take. Also shut up confused compilers about uninitialized things.

11:08 AM April 2014 Meeting edited by rniwa@webkit.org
Add Web Components slides (diff)
11:06 AM Changeset in webkit [167363] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Make Windows fail with a link error so I know what the new symbol is.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
11:05 AM Changeset in webkit [167362] by abucur@adobe.com
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[mac][wk2] REGRESSION (Tiled Drawing): fast/layers/no-clipping-overflow-hidden-added-after-transform.html fails with tiled drawing
https://bugs.webkit.org/show_bug.cgi?id=122238

Unreviewed. The test passes now.

11:04 AM Changeset in webkit [167361] by Chris Fleizach
  • 2 edits
    2 adds in trunk

AX: Accessing a table cell with an invalid column header crashes
https://bugs.webkit.org/show_bug.cgi?id=131719

Reviewed by Darin Adler.

If no tableCell is available as a column/row header, then do not continue processing.

Test: accessibility/table-missing-column-header-crash.html

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):

11:00 AM Changeset in webkit [167360] by b.long@cablelabs.com
  • 7 edits in trunk/Source

[GTK] Fix unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=131721

Reviewed by Darin Adler.

Source/WebCore:

  • bindings/js/JSMediaStreamCapabilitiesCustom.cpp:

(WebCore::toJS): Remove unused 'exec' parameter.

Source/WebKit2:

  • Scripts/webkit2/messages.py:

(generate_message_handler): Add UNUSED_PARAM() for a couple parameters which aren't always used.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<LinearTimingFunction>::decode): Remove unused parameters.

  • WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:

(API::InjectedBundle::FormClient::textDidChangeInTextField): Same.
(API::InjectedBundle::FormClient::willSubmitForm): Same.
(API::InjectedBundle::FormClient::willSendSubmitEvent): Same.

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveSyncMessage): Same.

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

[GTK] Unreviewed GTK gardening.

Update list of skipped unit tests:

Skip test: WebKit2Gtk/TestWebKitWebView:/webkit2/WebKitWebView/page-visibility

Unskip tests: WebKit2/TestWebKit2:WebKit2.ResizeReversePaginatedWebView
and WebKit2/TestWebKit2:WebKit2.ScrollPinningBehaviors

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

  • Scripts/run-gtk-tests:

(TestRunner):

10:58 AM Changeset in webkit [167358] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Accidentally included some style-checker-testing changes in the last commit.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):

10:54 AM Changeset in webkit [167357] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix some style checker complaints in PDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=131706

Reviewed by Darin Adler.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeNames]):
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
(WebKit::PDFPlugin::isEditingCommandEnabled):
(WebKit::PDFPlugin::nextMatchForString):
(WebKit::PDFPlugin::handleWheelEvent):
(WebKit::PDFPlugin::liveData):

10:50 AM Changeset in webkit [167356] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Convert the boolean param of Image::startAnimation() to an enum
https://bugs.webkit.org/show_bug.cgi?id=131742

Reviewed by Tim Horton.

Use an enum to make the code more readable.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::startAnimation):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:

(WebCore::Image::startAnimation):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::startAnimation):

  • svg/graphics/SVGImage.h:
10:48 AM Changeset in webkit [167355] by ggaren@apple.com
  • 2 edits
    2 adds in trunk/Source/WTF

WTF should have an optional mbmalloc target so we can benchmark FastMalloc
https://bugs.webkit.org/show_bug.cgi?id=131662

Reviewed by Darin Adler.

  • WTF.xcodeproj/project.pbxproj: Added the target.
  • wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required

by MallocBench.

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

Unreviewed, ARMv7 build fix after r167336.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchAdd32):

10:36 AM Changeset in webkit [167353] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

Make sure to skip the RenderMultiColumnFlowThread when resolving percentage heights inside columns against
containing blocks. The flow thread's auto height should not interfere if a fixed height is specified on
an ancestor.

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

Reviewed by Simon Fraser.

Source/WebCore:
Added fast/multicol/percent-height.html.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
Add an isInFlowRenderFlowThread check so that we skip those blocks and don't consider them at all
when resolving percentage heights.

LayoutTests:

  • fast/multicol/percent-height-expected.html: Added.
  • fast/multicol/percent-height.html: Added.
10:33 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
10:24 AM Changeset in webkit [167352] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[WinCairo][cURL] Build fix for WinCairo build with USE(CURL).
https://bugs.webkit.org/show_bug.cgi?id=131614

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2014-04-16
Reviewed by Brent Fulgham.

Build fix, no new tests needed.

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::loadResponseHeaders):

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::loadIndex):

  • platform/network/soup/ResourceError.h:
  • platform/network/soup/SocketStreamHandle.h:
10:19 AM Changeset in webkit [167351] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: x2 >= x1 in WebCore::RenderObject::drawLineForBoxSide
https://bugs.webkit.org/show_bug.cgi?id=127835

Source/WebCore:
In some cases when a negative margin and a positive padding are applied
together to the right and/or left side of the box, the logical width of
the borders can be set to a negative value, making the assertion fire.
The fix checks if the width or height of the box is negative, and if so,
it will not display the borders and shadows of the box.

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-04-16
Reviewed by Darin Adler.

Test: fast/css/padding-margin-negative-border.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):

LayoutTests:
Added test demonstrates four cases:
Test #1: Negative upper margin + positive upper padding
Test #2: Negative right margin + positive right padding (used to fail)
Test #3: Negative bottom margin + positive bottom padding
Test #4: Negative left margin + positive left padding (used to fail)

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-04-16
Reviewed by Darin Adler.

  • fast/css/padding-margin-negative-border-expected.html: Added.
  • fast/css/padding-margin-negative-border.html: Added.
10:17 AM Changeset in webkit [167350] by timothy_horton@apple.com
  • 4 edits in trunk/Tools

check-webkit-style doesn't check code style in .mm or .m files
https://bugs.webkit.org/show_bug.cgi?id=131708

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checker_unittest.py:

(CheckerDispatcherDispatchTest.test_cpp_paths):
(CheckerDispatcherDispatchTest.test_text_paths):
Check .mm and .m files as C++.

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

(check_spacing):
Add an override for our ordinary "missing spaces around =" for @synthesize,
which should look like "@synthesize propertyName=_varName;"

Add an override for "missing space before {" for blocks' "{".

Don't follow the "extra space before [" rule for Objective-C, because
it breaks this rule in a multitude of ways because of method calls.

(check_braces):
Don't complain about { not being on the end of the previous line if
the previous line starts with "- (" or "+ (", which would indicate a
Objective-C method definition.

10:07 AM Apr2014WebKitMeetingGrp-small-2.jpg attached to April 2014 Meeting by zoltan@webkit.org
10:04 AM April 2014 Meeting edited by zoltan@webkit.org
(diff)
10:03 AM Apr2014WebKitMeetingGrp-2.jpg attached to April 2014 Meeting by zoltan@webkit.org
9:52 AM Changeset in webkit [167349] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

[MSE] Seeks into buffered ranges will never complete.
https://bugs.webkit.org/show_bug.cgi?id=131717

Reviewed by Eric Carlson.

Source/WebCore:
Test: media/media-source/media-source-seek-complete.html

Run the SourceBuffer Monitoring step after initiating a seek.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):

LayoutTests:

  • media/media-source/media-source-seek-complete-expected.txt: Added.
  • media/media-source/media-source-seek-complete.html: Added.
9:51 AM Changeset in webkit [167348] by Darin Adler
  • 4 edits in trunk

Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
https://bugs.webkit.org/show_bug.cgi?id=131735

Reviewed by Alexey Proskuryakov.

Source/WTF:

  • wtf/Vector.h:

(WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.

Tools:

  • TestWebKitAPI/Tests/WTF/Vector.cpp: Added a test for Vector::takeLast with move only types.

Fixed invocations of EXPECT macros so the expected value is on the left, and the test result
is on the right. This can be confusing since our JavaScript test framework does it the opposite
way, but gtest works better this way.

8:38 AM April 2014 Meeting edited by dino@apple.com
(diff)
8:37 AM April 2014 Meeting edited by dino@apple.com
(diff)
8:35 AM WebGL.pdf attached to April 2014 Meeting by dino@apple.com
WebGL Slides
8:33 AM April 2014 Meeting edited by dino@apple.com
(diff)
7:24 AM Changeset in webkit [167347] by rgabor@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, ARM64 buildfix after r167336.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchAdd32): Add missing function.

5:25 AM Changeset in webkit [167346] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/efl

[EFL] Cleanup the build from unused parameters in WebKit-efl.
https://bugs.webkit.org/show_bug.cgi?id=131677.

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-04-16
Reviewed by Gyuyoung Kim.

Changed ASSERT to ASSERT_UNUSED if it's just used for ASSERT.

  • ewk/ewk_view.cpp:

(ewk_view_scroll):

4:27 AM WebKitGTK edited by Andres Gomez
Updated the introduction text (diff)
4:26 AM Changeset in webkit [167345] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Some test modules come to crash since buildbot uses
Ubuntu 13.10. Skip those crash modules for now.

  • platform/efl-wk2/TestExpectations:
4:25 AM WebKitGTK/StartHacking edited by Andres Gomez
Correcting typos (diff)
4:18 AM WebKitGTK/StartHacking edited by Andres Gomez
Removed specific information for stable and unstable branches and … (diff)
3:19 AM Changeset in webkit [167344] by Carlos Garcia Campos
  • 2 edits in trunk

REGRESSION(r166779): [GTK] Printing doesn't work since r166779
https://bugs.webkit.org/show_bug.cgi?id=131725

Reviewed by Philippe Normand.

  • Source/cmake/OptionsGTK.cmake: Check GTK_UNIX_PRINT_FOUND

instead of GTK_UNIX_PRINTING_FOUND and set the macro
HAVE_GTK_UNIX_PRINTING to 1 when found.

Apr 15, 2014:

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

[Cocoa] Add a form delegate method corresponding to willSubmitForm
https://bugs.webkit.org/show_bug.cgi?id=131718

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setFormDelegate:]): Changed to define and create a FormClient (which derives
from API::FormClient and messages a delegate), and set it as the form client.

  • UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added a

variant of willSubmitForm that returs a user object to pass to the delegate in the UI
process, giving it a temporary name with “new”.

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

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed willSubmitForm()
to check for the new bundle delegate method first and encode the user object as user data.
Moved the encoding of an NSObject <NSSecureCoding> as user data into a helper function.

8:45 PM Changeset in webkit [167342] by commit-queue@webkit.org
  • 14 edits in trunk

[EFL] Fix problems with the pixel dump.
https://bugs.webkit.org/show_bug.cgi?id=131265

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-15
Reviewed by Gyuyoung Kim.

Painting and compositing paths of WebKit-EFL were totally modified from r166768.
However pixel dump codes still call deprecated functions like ewk_view_paint(),
which causes that nothing is drawn.

This patch adds new member functions to AcceleratedCompositingContext to support pixel dump.
One of new functions is AcceleratedCompositingContext::extractImageData(),
which replaces deprecated function calls. Besides the extractImageData() is invoked by
ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.

Source/WebCore:

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::flipImageSurfaceVertically): Flip pixel data of given cairo_surface_t vertically up/down.
Whereas Cairo uses the top-left corner as being 0,0 of the coordinate system,
OpenGL uses the bottom-left corner being 0,0.
So we need to vertically flip resultant images taken by glReadPixels().

  • platform/graphics/cairo/CairoUtilities.h:

Source/WebKit/efl:

  • WebCoreSupport/AcceleratedCompositingContextEfl.cpp:

(WebCore::AcceleratedCompositingContext::AcceleratedCompositingContext):
Create TextureMapper with a proper backend.
(WebCore::AcceleratedCompositingContext::flushPendingLayerChanges):
Revise a null check for m_rootLayer.
(WebCore::AcceleratedCompositingContext::paintToGraphicsContext):
Remove a creation check for TextureMapperGL.
(WebCore::AcceleratedCompositingContext::paintToCurrentGLContext):
Ditto.
(WebCore::AcceleratedCompositingContext::extractImageData):
Extract image data from the view and copy it to given Evas_Object.
(WebCore::AcceleratedCompositingContext::getImageData):
Get image data from the view and return it as cairo_surface_t on software mode.
(WebCore::AcceleratedCompositingContext::getImageDataGL):
Get image data from the view and return it as cairo_surface_t on GL mode.

  • WebCoreSupport/AcceleratedCompositingContextEfl.h:
  • WebCoreSupport/DumpRenderTreeSupportEfl.cpp:

(DumpRenderTreeSupportEfl::forcePaint): Repaint the entire webview before pixel dump.

  • WebCoreSupport/DumpRenderTreeSupportEfl.h:
  • ewk/ewk_view.cpp:

(ewk_view_mark_for_sync): Remove an unnecessary line.
(ewk_view_force_paint): Call flushAndRenderLayers().
(ewk_view_screenshot_contents_get): Remove 'scale' parameter and replace ewk_view_paint()
with AcceleratedCompositingContext::extractImageData().

  • ewk/ewk_view.h:
  • ewk/ewk_view_private.h:
  • tests/test_ewk_view.cpp:

(TEST_F):

Tools:

  • DumpRenderTree/efl/PixelDumpSupportEfl.cpp:

(createBitmapContextFromWebView): Add to call DumpRenderTreeSupportEfl::forcePaint().

7:42 PM Changeset in webkit [167341] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add the obvious thing that marks MakeRope as exiting since it can exit.

  • dfg/DFGAbstractInterpreterInlines.h:

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

7:04 PM Changeset in webkit [167340] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Make page overlay functionality working on coordinated graphics.
https://bugs.webkit.org/show_bug.cgi?id=131425

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-15
Reviewed by Darin Adler.

Page overlay functionality did not work on coordinated graphics since r166975.
This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
and makes CoordinatedLayerTreeHost use PageOverlayController.

Source/WebCore:

  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:

(WebCore::CompositingCoordinator::setRootCompositingLayer):
(WebCore::CompositingCoordinator::flushPendingLayerChanges):

  • platform/graphics/texmap/coordinated/CompositingCoordinator.h:

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
(WebKit::CoordinatedDrawingArea::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayOpacity): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Deleted.
(WebKit::CoordinatedLayerTreeHost::createPageOverlayLayer): Deleted.
(WebKit::CoordinatedLayerTreeHost::destroyPageOverlayLayer): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::didInstallPageOverlay):
(WebKit::LayerTreeHost::didUninstallPageOverlay):
(WebKit::LayerTreeHost::setPageOverlayNeedsDisplay):

5:58 PM More Awesome created by dino@apple.com
5:57 PM April 2014 Meeting edited by dino@apple.com
(diff)
5:26 PM Changeset in webkit [167339] by roger_fong@apple.com
  • 4 edits
    2 adds in trunk

Snapshotted plugins may need to be restarted if style properties are changed after initial load of plugin.
https://bugs.webkit.org/show_bug.cgi?id=131553.
<rdar://problem/15443375>

Reviewed by Timothy Horton.

Test: plugins/snapshotting/set-plugin-size-to-tiny.html

When updating embedded objects during our post layout checks, check for certain style changes
that may result in the plugin needing to be restarted.

  • html/HTMLPlugInImageElement.h:

Add m_plugInDimensionsSpecified field to keep track of whether or not dimensions on the plugin’s renderer have been specified.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
Initialize m_plugInDimensionsSpecified.
(WebCore::isSmallerThanTinySizingThreshold):
Refactoring, move check for whether or not plugin is smaller than the tiny plugin size threshold to this method.
(WebCore::HTMLPlugInImageElement::isTopLevelFullPage):
Refactoring, move check for whether or not plugin is top level full page to this method.
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus):
Use refactored checks here as well to determine whether or not we need to restart the snapshotted plugin.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use refactored checks.
If plugin dimensions were specified, set m_plugInDimensionsSpecified to true.

  • platform/mac-wk2/plugins/snapshotting/set-plugin-size-to-tiny-expected.txt: Added.
  • plugins/snapshotting/set-plugin-size-to-tiny.html: Added.
5:01 PM Changeset in webkit [167338] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS WebKit2] Listen for system memory pressure notifications.
<https://webkit.org/b/131653>
<rdar://problem/16208123>

Reviewed by Antti Koivisto.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

Use the right invocation to summon the memory pressure handler.

(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):

Make stubbed out functions !PLATFORM(COCOA)

5:01 PM Changeset in webkit [167337] by fpizlo@apple.com
  • 3 edits in trunk/WebKitLibraries

Update LLVM binary drops for Mountain Lion to LLVM r206312.

Rubber stamped by Geoffrey Garen.

  • LLVMIncludesMountainLion.tar.bz2:
  • LLVMLibrariesMountainLion.tar.bz2:
4:33 PM Changeset in webkit [167336] by fpizlo@apple.com
  • 8 edits
    4 adds in trunk/Source/JavaScriptCore

compileMakeRope does not emit necessary bounds checks
https://bugs.webkit.org/show_bug.cgi?id=130684
<rdar://problem/16398388>

Reviewed by Oliver Hunt.

Add string length bounds checks in a bunch of places. We should never allow a string
to have a length greater than 231-1 because it's not clear that the language has
semantics for it and because there is code that assumes that this cannot happen.

Also add a bunch of tests to that effect to cover the various ways in which this was
previously allowed to happen.

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

(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileMakeRope):

  • runtime/JSString.cpp:

(JSC::JSRopeString::RopeBuilder::expand):

  • runtime/JSString.h:

(JSC::JSString::create):
(JSC::JSRopeString::RopeBuilder::append):
(JSC::JSRopeString::RopeBuilder::release):
(JSC::JSRopeString::append):

  • runtime/Operations.h:

(JSC::jsString):
(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncToLowerCase):

  • tests/stress/make-large-string-jit-strcat.js: Added.

(foo):

  • tests/stress/make-large-string-jit.js: Added.

(foo):

  • tests/stress/make-large-string-strcat.js: Added.
  • tests/stress/make-large-string.js: Added.
4:25 PM Changeset in webkit [167335] by hyatt@apple.com
  • 22 edits
    201 adds in trunk

[New Multicolumn] Add support for column-span:all
https://bugs.webkit.org/show_bug.cgi?id=129330

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-04-14
Reviewed by Dave Hyatt.

Source/WebCore:
Column spanners are implemented as siblings of RenderMultiColumnSet
objects (i.e. the regions for the column rows). This means that they
are pulled out from the flow thread tree where they would otherwise
live. This causes some complexity, most of which is contained within
the multicol code.

A placeholder is put in the flow thread tree where the spanner's
renderer would otherwise live. This is needed in order make sure that
we interrupt line layout before after the spanner. We also need this
to be able to switch from one multicol set to the next.

Some extra logic is required when dynamically inserting and removing
flow thread descendants now, because we need to figure out if the
renderer added should trigger creation of new multi column sets. If
a spanner is inserted in the middle of a multi column set, we need to
detect this, split the set and put the spanner in the middle.

Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

Tests: fast/multicol/newmulticol/adjacent-spanners.html

fast/multicol/newmulticol/block-becomes-spanner.html
fast/multicol/newmulticol/change-spanner-display.html
fast/multicol/newmulticol/change-spanner-parent-display.html
fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html
fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html
fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html
fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html
fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html
fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html
fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html
fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html
fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html
fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html
fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html
fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html
fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html
fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html
fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html
fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html
fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html
fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html
fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html
fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html
fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html
fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html
fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html
fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html
fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html
fast/multicol/newmulticol/insert-row-content1.html
fast/multicol/newmulticol/insert-row-content2.html
fast/multicol/newmulticol/insert-row-content3.html
fast/multicol/newmulticol/insert-row-content4.html
fast/multicol/newmulticol/insert-row-content5.html
fast/multicol/newmulticol/insert-row-content6.html
fast/multicol/newmulticol/insert-row-content7.html
fast/multicol/newmulticol/insert-row-content8.html
fast/multicol/newmulticol/insert-row-content9.html
fast/multicol/newmulticol/insert-spanner-child1.html
fast/multicol/newmulticol/insert-spanner-child2.html
fast/multicol/newmulticol/insert-spanner-child3.html
fast/multicol/newmulticol/insert-spanner1.html
fast/multicol/newmulticol/insert-spanner2.html
fast/multicol/newmulticol/insert-spanner3.html
fast/multicol/newmulticol/insert-spanner4.html
fast/multicol/newmulticol/insert-spanner5.html
fast/multicol/newmulticol/insert-spanner6.html
fast/multicol/newmulticol/insert-spanner7.html
fast/multicol/newmulticol/insert-spanner8.html
fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html
fast/multicol/newmulticol/remove-row-content1.html
fast/multicol/newmulticol/remove-row-content2.html
fast/multicol/newmulticol/remove-row-content3.html
fast/multicol/newmulticol/remove-row-content4.html
fast/multicol/newmulticol/remove-row-content5.html
fast/multicol/newmulticol/remove-row-content6.html
fast/multicol/newmulticol/remove-row-content7.html
fast/multicol/newmulticol/remove-row-content8.html
fast/multicol/newmulticol/remove-row-content9.html
fast/multicol/newmulticol/remove-spanner1.html
fast/multicol/newmulticol/remove-spanner2.html
fast/multicol/newmulticol/remove-spanner3.html
fast/multicol/newmulticol/remove-spanner4.html
fast/multicol/newmulticol/remove-spanner5.html
fast/multicol/newmulticol/remove-spanner6.html
fast/multicol/newmulticol/sole-spanner.html
fast/multicol/newmulticol/span-between-text.html
fast/multicol/newmulticol/spanner-becomes-regular-block.html
fast/multicol/newmulticol/spanner-first.html
fast/multicol/newmulticol/spanner-img.html
fast/multicol/newmulticol/spanner-inline-block.html
fast/multicol/newmulticol/spanner-last.html
fast/multicol/newmulticol/spanner-nested-dynamic.html
fast/multicol/newmulticol/spanner-nested.html
fast/multicol/newmulticol/spanner-pseudo-after1.html
fast/multicol/newmulticol/spanner-pseudo-after2.html
fast/multicol/newmulticol/spanner-pseudo-after3.html
fast/multicol/newmulticol/spanner-pseudo-after4.html
fast/multicol/newmulticol/spanner-pseudo-before-after1.html
fast/multicol/newmulticol/spanner-pseudo-before-after2.html
fast/multicol/newmulticol/spanner-pseudo-before-after3.html
fast/multicol/newmulticol/spanner-pseudo-before-after4.html
fast/multicol/newmulticol/spanner-pseudo-before1.html
fast/multicol/newmulticol/spanner-pseudo-before2.html
fast/multicol/newmulticol/spanner-pseudo-before3.html
fast/multicol/newmulticol/spanner-pseudo-before4.html
fast/multicol/newmulticol/spanner-table.html
fast/multicol/newmulticol/spanner-with-margin.html
fast/multicol/newmulticol/spanner1.html
fast/multicol/newmulticol/spanner2.html
fast/multicol/newmulticol/spanner3.html
fast/multicol/newmulticol/spanner4.html
fast/multicol/newmulticol/spanner5.html
fast/multicol/newmulticol/spanner6.html
fast/multicol/newmulticol/spanner7.html
fast/multicol/newmulticol/spanner8.html
fast/multicol/newmulticol/spanner9.html
fast/multicol/newmulticol/trailing-margin-with-spanner.html
fast/multicol/newmulticol/trailing-margin-with-spanner2.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
Disable the old anonymous multicol container and spanner anonymous
block generation machinery when the new multicol implementation is
enabled.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
(WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
(WebCore::RenderBlockFlow::layoutBlockChild): Need to notify the
flow thread when a descendant's final position is known. Spanner
placeholders need to know where to terminate the column set that
it follows.
(WebCore::RenderBlockFlow::styleDidChange): Remove old code that
isn't needed anymore. The renderers in question (flow thread and
column sets) set display:block on themselves already. This code
caused problems for spanners, which got all their style wiped.
(WebCore::RenderBlockFlow::setMultiColumnFlowThread): If setting
the flow thread to nullptr, there's no need to create the "rare
data" structure.
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
(WebCore::RenderBlockFlow::addChild): beforeChild is retrieved via
the DOM. If it is a spanner, we need to locate the placeholder
here, because that's the correct location to insert siblings,
DOM-wise.
(WebCore::RenderBlockFlow::removeChild): The multicol flow thread
needs to know when children disappear.
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
Don't modify the height back and forth when calculating the
multicol container's final height, as that messes up balancing.
(WebCore::RenderBlockFlow::insertedIntoTree): Deleted.
(WebCore::RenderBlockFlow::willBeDestroyed): Deleted.
(WebCore::RenderBlockFlow::styleWillChange): Deleted.
(WebCore::RenderBlockFlow::lineAtIndex): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertedIntoTree): Set up an element's
layer before notifying the flow thread. The multicol flow thread
may decide to move the element (if it's a spanner), which may
involve re-insertion of layers. Calling
RenderObject::insertedIntoTree() last instead of first also better
matches the order we used to have prior to the introduction of
RenderElement, FWIW.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::removeRegionFromThread): Deleted.
(WebCore::RenderFlowThread::invalidateRegions): Deleted.

  • rendering/RenderFlowThread.h:
  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): When
a flow thread descendant is inserted, the multicol flow thread
needs to be notified.
(WebCore::RenderMultiColumnFlowThread::firstMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::lastMultiColumnSet):
(WebCore::RenderMultiColumnFlowThread::firstColumnSetOrSpanner):
(WebCore::RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::previousColumnSetOrSpannerSiblingOf):
(WebCore::RenderMultiColumnFlowThread::layout):
(WebCore::RenderMultiColumnFlowThread::findSetRendering):
(WebCore::RenderMultiColumnFlowThread::populate):
(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlowThread::addRegionToThread):
(WebCore::RenderMultiColumnFlowThread::willBeRemovedFromTree):
Need to detach column sets here, since they have pointers to their
flow thread.
(WebCore::RenderMultiColumnFlowThread::resolveMovedChild):
(WebCore::isValidColumnSpanner):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
(WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantBoxLaidOut):
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
Nothing to be done here for the time being. Column sets are now
created during box creation. We are going to need to add some code
here again once multicol properly supports nested fragmentation
contexts (and you get adjacent column rows because of that).
(WebCore::RenderMultiColumnFlowThread::regionAtBlockOffset):
During layout, don't trust the region interval tree, as that one
depends on the resulting layout.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox): With
a convenience method to get the last column set, and column sets
now being created during normal box creation, this young method
needs an overhaul.
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
(WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):

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

(WebCore::RenderMultiColumnSet::nextSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::previousSiblingMultiColumnSet):
(WebCore::RenderMultiColumnSet::firstRendererInFlowThread):
(WebCore::RenderMultiColumnSet::lastRendererInFlowThread):
(WebCore::precedesRenderer):
(WebCore::RenderMultiColumnSet::containsRendererInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalTopInFlowThread):
(WebCore::RenderMultiColumnSet::setLogicalBottomInFlowThread):
(WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
(WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::addForcedBreak):
(WebCore::RenderMultiColumnSet::recalculateColumnHeight):
Previously only needed if columns were to be balanced, now it's
also needed when not balancing.
(WebCore::RenderMultiColumnSet::recordSpaceShortage): Some layout
elements actually have 0 height. Skip them, since they're not
taking us anywhere.
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
(WebCore::RenderMultiColumnSet::requiresBalancing): Column sets
now have individual balancing needs. If they precede a spanner,
they must always be balanced. For the last column set, see if
height is unspecified or column-fill is 'balance' (like before).
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::beginFlow):
(WebCore::RenderMultiColumnSet::endFlow):
(WebCore::RenderMultiColumnSet::layout):
(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
(WebCore::RenderMultiColumnSet::columnRectAt):
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::paintColumnRules):
(WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
(WebCore::RenderMultiColumnSet::collectLayerFragments):
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
(WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight): Deleted.
(WebCore::RenderMultiColumnSet::findRunWithTallestColumns): Deleted.
(WebCore::RenderMultiColumnSet::clearForcedBreaks): Deleted.
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent): Deleted.

  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.cpp: Added.

(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
(WebCore::RenderMultiColumnSpannerPlaceholder::renderName):

  • rendering/RenderMultiColumnSpannerPlaceholder.h: Added.
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree): Need to notify the
multicol flow thread when descendants are inserted. That may
trigger insertion of column sets, or, in the case of spanners,
they need to be moved out from the flow thread.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMultiColumnSpannerPlaceholder):
(WebCore::RenderObject::isAnonymousBlock): Exclude column sets
here, so that they don't get involved in anonymous block merging
and other kinds of fun.

  • rendering/RenderRegion.h:
  • rendering/RenderRegionSet.h:

LayoutTests:
Wrote a bunch of tests. A few of the tests were copied from existing
(old-impl) tests and put in a separate directory. That directory can
be wiped when we turn on the new multicol implementation by default.

  • fast/multicol/newmulticol/adjacent-spanners-expected.html: Added.
  • fast/multicol/newmulticol/adjacent-spanners.html: Added.
  • fast/multicol/newmulticol/block-becomes-spanner-expected.html: Added.
  • fast/multicol/newmulticol/block-becomes-spanner.html: Added.
  • fast/multicol/newmulticol/change-spanner-display-expected.html: Added.
  • fast/multicol/newmulticol/change-spanner-display.html: Added.
  • fast/multicol/newmulticol/change-spanner-parent-display-expected.html: Added.
  • fast/multicol/newmulticol/change-spanner-parent-display.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-summary-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/continuation-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child-expected.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash-expected.txt: Added.
  • fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html: Added.
  • fast/multicol/newmulticol/insert-row-content1-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content1.html: Added.
  • fast/multicol/newmulticol/insert-row-content2-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content2.html: Added.
  • fast/multicol/newmulticol/insert-row-content3-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content3.html: Added.
  • fast/multicol/newmulticol/insert-row-content4-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content4.html: Added.
  • fast/multicol/newmulticol/insert-row-content5-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content5.html: Added.
  • fast/multicol/newmulticol/insert-row-content6-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content6.html: Added.
  • fast/multicol/newmulticol/insert-row-content7-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content7.html: Added.
  • fast/multicol/newmulticol/insert-row-content8-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content8.html: Added.
  • fast/multicol/newmulticol/insert-row-content9-expected.html: Added.
  • fast/multicol/newmulticol/insert-row-content9.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child1-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child1.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child2-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child2.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child3-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner-child3.html: Added.
  • fast/multicol/newmulticol/insert-spanner1-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner1.html: Added.
  • fast/multicol/newmulticol/insert-spanner2-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner2.html: Added.
  • fast/multicol/newmulticol/insert-spanner3-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner3.html: Added.
  • fast/multicol/newmulticol/insert-spanner4-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner4.html: Added.
  • fast/multicol/newmulticol/insert-spanner5-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner5.html: Added.
  • fast/multicol/newmulticol/insert-spanner6-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner6.html: Added.
  • fast/multicol/newmulticol/insert-spanner7-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner7.html: Added.
  • fast/multicol/newmulticol/insert-spanner8-expected.html: Added.
  • fast/multicol/newmulticol/insert-spanner8.html: Added.
  • fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block-expected.html: Added.
  • fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html: Added.
  • fast/multicol/newmulticol/remove-row-content1-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content1.html: Added.
  • fast/multicol/newmulticol/remove-row-content2-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content2.html: Added.
  • fast/multicol/newmulticol/remove-row-content3-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content3.html: Added.
  • fast/multicol/newmulticol/remove-row-content4-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content4.html: Added.
  • fast/multicol/newmulticol/remove-row-content5-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content5.html: Added.
  • fast/multicol/newmulticol/remove-row-content6-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content6.html: Added.
  • fast/multicol/newmulticol/remove-row-content7-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content7.html: Added.
  • fast/multicol/newmulticol/remove-row-content8-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content8.html: Added.
  • fast/multicol/newmulticol/remove-row-content9-expected.html: Added.
  • fast/multicol/newmulticol/remove-row-content9.html: Added.
  • fast/multicol/newmulticol/remove-spanner1-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner1.html: Added.
  • fast/multicol/newmulticol/remove-spanner2-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner2.html: Added.
  • fast/multicol/newmulticol/remove-spanner3-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner3.html: Added.
  • fast/multicol/newmulticol/remove-spanner4-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner4.html: Added.
  • fast/multicol/newmulticol/remove-spanner5-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner5.html: Added.
  • fast/multicol/newmulticol/remove-spanner6-expected.html: Added.
  • fast/multicol/newmulticol/remove-spanner6.html: Added.
  • fast/multicol/newmulticol/sole-spanner-expected.html: Added.
  • fast/multicol/newmulticol/sole-spanner.html: Added.
  • fast/multicol/newmulticol/span-between-text-expected.html: Added.
  • fast/multicol/newmulticol/span-between-text.html: Added.
  • fast/multicol/newmulticol/spanner-becomes-regular-block-expected.html: Added.
  • fast/multicol/newmulticol/spanner-becomes-regular-block.html: Added.
  • fast/multicol/newmulticol/spanner-first-expected.html: Added.
  • fast/multicol/newmulticol/spanner-first.html: Added.
  • fast/multicol/newmulticol/spanner-img-expected.html: Added.
  • fast/multicol/newmulticol/spanner-img.html: Added.
  • fast/multicol/newmulticol/spanner-inline-block-expected.html: Added.
  • fast/multicol/newmulticol/spanner-inline-block.html: Added.
  • fast/multicol/newmulticol/spanner-last-expected.html: Added.
  • fast/multicol/newmulticol/spanner-last.html: Added.
  • fast/multicol/newmulticol/spanner-nested-dynamic-expected.html: Added.
  • fast/multicol/newmulticol/spanner-nested-dynamic.html: Added.
  • fast/multicol/newmulticol/spanner-nested-expected.html: Added.
  • fast/multicol/newmulticol/spanner-nested.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after1-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after1.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after2-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after2.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after3-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after3.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after4-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-after4.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after1-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after1.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after2-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after2.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after3-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after3.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after4-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before-after4.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before1-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before1.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before2-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before2.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before3-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before3.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before4-expected.html: Added.
  • fast/multicol/newmulticol/spanner-pseudo-before4.html: Added.
  • fast/multicol/newmulticol/spanner-table-expected.html: Added.
  • fast/multicol/newmulticol/spanner-table.html: Added.
  • fast/multicol/newmulticol/spanner-with-margin-expected.html: Added.
  • fast/multicol/newmulticol/spanner-with-margin.html: Added.
  • fast/multicol/newmulticol/spanner1-expected.html: Added.
  • fast/multicol/newmulticol/spanner1.html: Added.
  • fast/multicol/newmulticol/spanner2-expected.html: Added.
  • fast/multicol/newmulticol/spanner2.html: Added.
  • fast/multicol/newmulticol/spanner3-expected.html: Added.
  • fast/multicol/newmulticol/spanner3.html: Added.
  • fast/multicol/newmulticol/spanner4-expected.html: Added.
  • fast/multicol/newmulticol/spanner4.html: Added.
  • fast/multicol/newmulticol/spanner5-expected.html: Added.
  • fast/multicol/newmulticol/spanner5.html: Added.
  • fast/multicol/newmulticol/spanner6-expected.html: Added.
  • fast/multicol/newmulticol/spanner6.html: Added.
  • fast/multicol/newmulticol/spanner7-expected.html: Added.
  • fast/multicol/newmulticol/spanner7.html: Added.
  • fast/multicol/newmulticol/spanner8-expected.html: Added.
  • fast/multicol/newmulticol/spanner8.html: Added.
  • fast/multicol/newmulticol/spanner9-expected.html: Added.
  • fast/multicol/newmulticol/spanner9.html: Added.
  • fast/multicol/newmulticol/trailing-margin-with-spanner-expected.html: Added.
  • fast/multicol/newmulticol/trailing-margin-with-spanner.html: Added.
  • fast/multicol/newmulticol/trailing-margin-with-spanner2-expected.html: Added.
  • fast/multicol/newmulticol/trailing-margin-with-spanner2.html: Added.
  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt: Added.
4:25 PM Changeset in webkit [167334] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk

Tools: Update LLVM export scrpt to handle the build directory being different from the
source directory.

Rubber stamped by Geoffrey Garen.

  • Scripts/export-llvm-build:

WebKitLibraries: Add LLVM binary drops for Mavericks using LLVM r206312.

Rubber stamped by Geoffrey Garen.

  • LLVMIncludesMavericks.tar.bz2: Added.
  • LLVMLibrariesMavericks.tar.bz2: Added.
4:21 PM Changeset in webkit [167333] by ap@apple.com
  • 1 edit in trunk/LayoutTests/platform/mac/TestExpectations

Update bug number in TestExpectations file.

4:19 PM Changeset in webkit [167332] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/websocket/tests/hybi/workers/close.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131716

  • platform/mac/TestExpectations: Marking as such.
4:15 PM Changeset in webkit [167331] by ap@apple.com
  • 2 edits in trunk/LayoutTests

transitions/cancel-transition.html is very flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=131715

  • platform/mac/TestExpectations: Marking as such.
4:14 PM April 2014 Meeting edited by ryuan.choi@samsung.com
Tried to fix broken image (diff)
4:11 PM April 2014 Meeting edited by ryuan.choi@samsung.com
(diff)
4:10 PM Apr2014WebKitMeetingGrp-small.jpg attached to April 2014 Meeting by ryuan.choi@samsung.com
4:05 PM Apr2014WebKitMeetingGrp.jpg attached to April 2014 Meeting by ryuan.choi@samsung.com
Lager image
4:05 PM Changeset in webkit [167330] by mitz@apple.com
  • 7 edits
    1 add in trunk/Source/WebKit2

Introduce API::FormClient
https://bugs.webkit.org/show_bug.cgi?id=131714

Reviewed by Tim Horton.

  • UIProcess/API/APIFormClient.h: Added.

(API::FormClient::~FormClient):
(API::FormClient::willSubmitForm):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageFormClient): Changed to create a WebFormClient and call
WebPageProxy::setFormClient.

  • UIProcess/WebFormClient.cpp:

(WebKit::WebFormClient::WebFormClient): Added a constructor from WKPageFormClientBase.

  • UIProcess/WebFormClient.h: Added inheritance from API::FormClient, marked overrides as

such.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Initialize m_formClient member.
(WebKit::WebPageProxy::setFormClient): Added. Updates m_formClient.
(WebKit::WebPageProxy::close): Updated code to clear m_formClient.
(WebKit::WebPageProxy::willSubmitForm): Updated for type change.
(WebKit::WebPageProxy::initializeFormClient): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj: Added reference to new file.
3:57 PM April 2014 Meeting edited by ryuan.choi@samsung.com
Added picture (diff)
3:56 PM webkit_contributors_meeting_2014.jpg attached to April 2014 Meeting by ryuan.choi@samsung.com
3:36 PM Changeset in webkit [167329] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove invalid sh4 specific code in JITInlines header.
https://bugs.webkit.org/show_bug.cgi?id=131692

Patch by Julien Brianceau <jbriance@cisco.com> on 2014-04-15
Reviewed by Geoffrey Garen.

  • jit/JITInlines.h:

(JSC::JIT::callOperation): Prototype is not F_JITOperation_EJJZ
anymore since r160244, so the sh4 specific code is invalid now
and has to be removed.

2:50 PM Changeset in webkit [167328] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix precedence issue in JSCell:setRemembered

Rubber stamped by Filip Pizlo.

  • runtime/JSCell.h:

(JSC::JSCell::setRemembered):

2:37 PM Changeset in webkit [167327] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Update the hyperlink to waterfall views of perf bots on build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=131695

Reviewed by Antti Koivisto.

Updated.

  • BuildSlaveSupport/build.webkit.org-config/templates/root.html:
2:05 PM Changeset in webkit [167326] by mhahnenberg@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Objective-C API external object graphs don't handle generational collection properly
https://bugs.webkit.org/show_bug.cgi?id=131634

Reviewed by Geoffrey Garen.

If the set of Objective-C objects transitively reachable through an object changes, we
need to update the set of opaque roots accordingly. If we don't, the next EdenCollection
won't rescan the external object graph, which would lead us to consider a newly allocated
JSManagedValue to be dead.

  • API/JSBase.cpp:

(JSSynchronousEdenCollectForDebugging):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(-[JSVirtualMachine isOldExternalObject:]):
(-[JSVirtualMachine addExternalRememberedObject:]):
(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):
(-[JSVirtualMachine externalRememberedSet]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):

  • API/JSVirtualMachineInternal.h:
  • API/tests/testapi.mm:
  • heap/Heap.cpp:

(JSC::Heap::markRoots):

  • heap/Heap.h:

(JSC::Heap::slotVisitor):

  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::containsOpaqueRoot):
(JSC::SlotVisitor::containsOpaqueRootTriState):

1:26 PM Changeset in webkit [167325] by fpizlo@apple.com
  • 50 edits
    1 delete in trunk/Source/JavaScriptCore

DFG IR should keep the data flow of doubles and int52's separate from the data flow of JSValue's
https://bugs.webkit.org/show_bug.cgi?id=131423

Reviewed by Geoffrey Garen.

This introduces more static typing into DFG IR. Previously we just had the notion of
JSValues and Storage. This was weird because doubles weren't always convertible to
JSValues, and Int52s weren't always convertible to either doubles or JSValues. We would
sort of insert explicit conversion nodes just for the places where we knew that an
implicit conversion wouldn't have been possible -- but there was no hard and fast rule so
we'd get bugs from forgetting to do the right conversion.

This patch introduces a hard and fast rule: doubles can never be implicitly converted to
anything but doubles, and likewise Int52's can never be implicitly converted. Conversion
nodes are used for all of the conversions. Int52Rep, DoubleRep, and ValueRep are the
conversions. They are like Identity but return the same value using a different
representation. Likewise, constants may now be represented using either JSConstant,
Int52Constant, or DoubleConstant. UseKinds have been adjusted accordingly, as well.
Int52RepUse and DoubleRepUse are node uses that mean "the node must be of Int52 (or
Double) type". They don't imply checks. There is also DoubleRepRealUse, which means that
we speculate DoubleReal and expect Double representation.

In addition to simplifying a bunch of rules in the IR and making the IR more verifiable,
this also makes it easier to introduce optimizations in the future. It's now possible for
AI to model when/how conversion take place. For example if doing a conversion results in
NaN sanitization, then AI can model this and can allow us to sink sanitizations. That's
what https://bugs.webkit.org/show_bug.cgi?id=131419 will be all about.

This was a big change, so I had to do some interesting things, like finally get rid of
the DFG's weird variadic template macro hacks and use real C++11 variadic templates. Also
the ByteCodeParser no longer emits Identity nodes since that was always pointless.

No performance change because this mostly just rationalizes preexisting behavior.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerX86.h:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::setBuiltInConstant):
(JSC::DFG::AbstractInterpreter::setConstant):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
(JSC::DFG::AbstractValue::checkConsistency):

  • dfg/DFGAbstractValue.h:
  • dfg/DFGBackwardsPropagationPhase.cpp:

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

  • dfg/DFGBasicBlock.h:
  • dfg/DFGBasicBlockInlines.h:

(JSC::DFG::BasicBlock::appendNode):
(JSC::DFG::BasicBlock::appendNonTerminal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::constantCSE):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::int32ToDoubleCSE): Deleted.

  • dfg/DFGCapabilities.h:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::willNotHaveCheck):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::run):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupGetAndSetLocalsInBlock):
(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixIntEdge):
(JSC::DFG::FixupPhase::attemptToMakeIntegerAdd):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom):
(JSC::DFG::FixupPhase::addPhantomsIfNecessary):
(JSC::DFG::FixupPhase::clearPhantomsAtEnd):
(JSC::DFG::FixupPhase::fixupSetLocalsInBlock): Deleted.

  • dfg/DFGFlushFormat.h:

(JSC::DFG::resultFor):
(JSC::DFG::useKindFor):

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addNode):

  • dfg/DFGInPlaceAbstractState.cpp:

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

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertNode):
(JSC::DFG::InsertionSet::insertConstant):
(JSC::DFG::InsertionSet::insertConstantForUse):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::insertAdd):
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToIdentity):
(WTF::printInternal):

  • dfg/DFGNode.h:

(JSC::DFG::Node::Node):
(JSC::DFG::Node::setResult):
(JSC::DFG::Node::result):
(JSC::DFG::Node::isConstant):
(JSC::DFG::Node::hasConstant):
(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::valueOfJSConstant):
(JSC::DFG::Node::hasResult):
(JSC::DFG::Node::hasInt32Result):
(JSC::DFG::Node::hasInt52Result):
(JSC::DFG::Node::hasNumberResult):
(JSC::DFG::Node::hasDoubleResult):
(JSC::DFG::Node::hasJSResult):
(JSC::DFG::Node::hasBooleanResult):
(JSC::DFG::Node::hasStorageResult):
(JSC::DFG::Node::defaultUseKind):
(JSC::DFG::Node::defaultEdge):
(JSC::DFG::Node::convertToIdentity): Deleted.

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:

(JSC::DFG::canonicalResultRepresentation):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExitCompiler32_64.cpp:

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

  • dfg/DFGOSRExitCompiler64.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGResurrectionForValidationPhase.cpp:

(JSC::DFG::ResurrectionForValidationPhase::run):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
(JSC::DFG::SpeculativeJIT::silentSavePlanForFPR):
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::JSValueRegsTemporary::JSValueRegsTemporary):
(JSC::DFG::JSValueRegsTemporary::~JSValueRegsTemporary):
(JSC::DFG::JSValueRegsTemporary::regs):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::compileValueRep):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):
(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::compileArithMul):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::compileInt32ToDouble): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMachineInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRealNumber): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::allocate):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::boxDouble):
(JSC::DFG::SpeculativeJIT::spill):
(JSC::DFG::SpeculativeJIT::jsValueResult):
(JSC::DFG::SpeculateInt52Operand::SpeculateInt52Operand):
(JSC::DFG::SpeculateStrictInt52Operand::SpeculateStrictInt52Operand):
(JSC::DFG::SpeculateWhicheverInt52Operand::SpeculateWhicheverInt52Operand):
(JSC::DFG::SpeculateDoubleOperand::SpeculateDoubleOperand):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertToDouble): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertToDouble): Deleted.

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::shouldNotHaveTypeCheck):
(JSC::DFG::mayHaveTypeCheck):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):
(JSC::DFG::isCell):
(JSC::DFG::usesStructure):
(JSC::DFG::useKindForResult):

  • dfg/DFGValidate.cpp:

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

  • dfg/DFGVariadicFunction.h: Removed.
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::LowerDFGToLLVM::compilePhi):
(JSC::FTL::LowerDFGToLLVM::compileDoubleConstant):
(JSC::FTL::LowerDFGToLLVM::compileInt52Constant):
(JSC::FTL::LowerDFGToLLVM::compileWeakJSConstant):
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithDiv):
(JSC::FTL::LowerDFGToLLVM::compileArithMod):
(JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
(JSC::FTL::LowerDFGToLLVM::compileArithAbs):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compare):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::lowStrictInt52):
(JSC::FTL::LowerDFGToLLVM::lowWhicheverInt52):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::lowJSValue):
(JSC::FTL::LowerDFGToLLVM::strictInt52ToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal):
(JSC::FTL::LowerDFGToLLVM::compileInt52ToValue): Deleted.
(JSC::FTL::LowerDFGToLLVM::compileInt32ToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::setInt52WithStrictValue): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt): Deleted.

  • ftl/FTLValueFormat.cpp:

(JSC::FTL::reboxAccordingToFormat):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::sanitizeDouble):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::boxDouble):

1:23 PM Changeset in webkit [167324] by Lucas Forschler
  • 5 edits in tags/Safari-538.29/Source/WebKit2

Merged r167273.

12:58 PM Changeset in webkit [167323] by Lucas Forschler
  • 2 edits in tags/Safari-538.29/Source/WebCore

Merged r167316.

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

Unreviewed gardening.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-04-15

Corrected wrong js/regress/ path for js/slow-stress/emscripten-memops.html

  • platform/gtk/TestExpectations:

Updated expectation for passing on Release plugins/unavailable-plugin-indicator-obscurity.html

12:39 PM Changeset in webkit [167321] by Lucas Forschler
  • 10 edits in tags/Safari-538.29/Source

Merged r167298.

12:35 PM Changeset in webkit [167320] by Lucas Forschler
  • 3 edits in tags/Safari-538.29/Source/WebKit2

Merged r167274.

12:20 PM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
11:53 AM Changeset in webkit [167319] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

LayerTreeAsTextBehavior should be in the WebCore namespace
https://bugs.webkit.org/show_bug.cgi?id=131683

Reviewed by Andrei Bucur.

Move LayerTreeAsTextBehavior and the bit flags into the WebCore namespace.

  • platform/graphics/GraphicsLayer.cpp:

(showGraphicsLayerTree):

  • platform/graphics/GraphicsLayer.h:
11:51 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:47 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:42 AM Changeset in webkit [167318] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

ViewportConfiguration handles userZoom incorrectly
https://bugs.webkit.org/show_bug.cgi?id=131657

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

  • page/ViewportConfiguration.cpp:

(WebCore::viewportArgumentUserZoomIsSet):
(WebCore::ViewportConfiguration::updateConfiguration):
The other viewport values must be strictly positive, userZoom is always either zero, one or minus one.
As a result, the value zero was never set.

11:41 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:37 AM April 2014 Meeting edited by rniwa@webkit.org
Add a hyperlink to custom properties wiki (diff)
11:36 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:34 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:34 AM Cleanroom implement CSS Custom Properties edited by rniwa@webkit.org
(diff)
11:30 AM Cleanroom implement CSS Custom Properties created by rniwa@webkit.org
10:54 AM Changeset in webkit [167317] by Lucas Forschler
  • 5 edits in tags/Safari-538.26.6/Source/JavaScriptCore

Merged r166948.

10:53 AM Changeset in webkit [167316] by Simon Fraser
  • 10 edits in trunk/Source

[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665

Reviewed by Tim Horton.

The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.

Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.

Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.

Source/WebCore:

  • WebCore.exp.in:
  • page/ChromeClient.h:

(WebCore::ChromeClient::documentOverlayLayerForFrame):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
into a variable for ease of debugging.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
that we're not in the page cache (this would have caught the bug).
(WebCore::RenderLayerCompositor::appendOverlayLayers):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::documentOverlayLayerForFrame):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

10:52 AM Changeset in webkit [167315] by zoltan@webkit.org
  • 6 edits
    1 delete in trunk/PerformanceTests

[CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
https://bugs.webkit.org/show_bug.cgi?id=131572

Reviewed by Rob Buis.

In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.

  • Layout/Shapes/resources/RegionsShapes.css: Removed.
  • Layout/Shapes/resources/RegionsShapesContent.html:
  • Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
  • Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
  • Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
  • Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
10:51 AM Changeset in webkit [167314] by Lucas Forschler
  • 5 edits in tags/Safari-538.26.6/Source

Versioning.

10:46 AM Changeset in webkit [167313] by commit-queue@webkit.org
  • 71 edits
    2 adds
    3 deletes in trunk

Unreviewed, rolling out r167199 and r167251.
https://bugs.webkit.org/show_bug.cgi?id=131678

Caused a DYEBench regression and does not seem to improve perf
on relevant websites (Requested by rniwa on #webkit).

Reverted changesets:

"Rewrite Function.bind as a builtin"
https://bugs.webkit.org/show_bug.cgi?id=131083
http://trac.webkit.org/changeset/167199

"Update test result"
http://trac.webkit.org/changeset/167251

10:45 AM Changeset in webkit [167312] by Lucas Forschler
  • 1 copy in tags/Safari-538.26.6

New Tag.

9:51 AM WebKitGTK/KeepingTheTreeGreen edited by Adrian Perez de Castro
(diff)
9:44 AM April 2014 Meeting edited by sam@webkit.org
(diff)
9:40 AM Changeset in webkit [167311] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector/dom/content-flow-list.html and inspector/dom/content-flow-content-removal.html
flakily fail and assert
https://bugs.webkit.org/show_bug.cgi?id=131679

9:37 AM April 2014 Meeting edited by sam@webkit.org
(diff)
9:37 AM Changeset in webkit [167310] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector/dom/content-flow-list.html is flakily failing and asserting
https://bugs.webkit.org/show_bug.cgi?id=131679

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

ScriptProcessorNode is garbage collected while still active if unreachable (breaks multiple webaudio test)
https://bugs.webkit.org/show_bug.cgi?id=112521

  • TestExpectations: Updated bug number, added webaudio/audioprocessingevent.html,

and removed a spurious additional webaudio/javascriptaudionode-downmix8-2channel-input.html line.

9:20 AM April 2014 Meeting edited by ddkilzer@webkit.org
(diff)
9:19 AM Changeset in webkit [167308] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebCore

Remove unnecessary null checking in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=131652

Reviewed by Darin Adler.

Some functions have checked if document is null. However, document is always not
null when frame is existed.

No new tests, no behavior changes.

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):

9:16 AM Changeset in webkit [167307] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CodeMirror LICENSE is not properly added to combined files
https://bugs.webkit.org/show_bug.cgi?id=131674

Reviewed by Darin Adler.

  • Scripts/copy-user-interface-resources.pl: Use $CODE_MIRROR_LICENSE instead

for CodeMirror.css and CodeMirror.js.

6:13 AM Changeset in webkit [167306] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Reduce the binary size by compressing the text based web inspector resources
https://bugs.webkit.org/show_bug.cgi?id=121545

Reviewed by Gustavo Noronha Silva.

Compress text based files when compiling inspector resources. It
reduces the binary size in 3MB.

  • gtk/generate-inspector-gresource-manifest.py:

(find_all_files_in_directory):
(is_compressible):

6:01 AM Changeset in webkit [167305] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

[EFL][WK2] Pass Mouse movement data to WebMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=131663

Reviewed by Gyuyoung Kim.

Currently mouse movement data are not passed to WebMouseEvent. Instead, they are set to 0 as default.
EFL port needs to send the deltaX and deltaY for PointerLock API which will be implemented later.

  • Shared/efl/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebMouseEvent):

4:00 AM WebKitGTK/KeepingTheTreeGreen edited by Diego Pino Garcia
(diff)
12:40 AM Changeset in webkit [167304] by ap@apple.com
  • 3 edits in trunk/LayoutTests

[Mac] compositing/repaint/positioned-movement.html flaky, missing repaint
https://bugs.webkit.org/show_bug.cgi?id=118153

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Moved the flaky expectation to also apply to WebKit1.

12:32 AM Changeset in webkit [167303] by commit-queue@webkit.org
  • 10 edits in trunk/Source

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

Broke CSS filters (17 test crashes) (Requested by ap on
#webkit).

Reverted changeset:

"[iOS WK2] Pages often blank on first load if page loaded by
typing the URL"
https://bugs.webkit.org/show_bug.cgi?id=131665
http://trac.webkit.org/changeset/167298

Apr 14, 2014:

11:57 PM Changeset in webkit [167302] by psolanki@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Attempt to fix Windows build after r167277.

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):

11:51 PM Changeset in webkit [167301] by ap@apple.com
  • 2 edits in trunk/Tools

Remove Gtk WebKit1 tester.

Gtk WebKit1 port no longer exists, and dashboard was trying to load its tester
results over and over as fast as it could.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

11:40 PM Changeset in webkit [167300] by ap@apple.com
  • 2 edits in trunk/Tools

Wrong link for webkitpy tests results in dashboard popover
https://bugs.webkit.org/show_bug.cgi?id=131664

Reviewed by Timothy Hatcher.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds):
Use a correct link.

11:24 PM Changeset in webkit [167299] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

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

broke many navigation tests (Requested by ap on #webkit).

Reverted changeset:

"Web Replay: memoize fallback time values for
document.lastModified"
https://bugs.webkit.org/show_bug.cgi?id=131318
http://trac.webkit.org/changeset/167261

11:13 PM Changeset in webkit [167298] by Simon Fraser
  • 10 edits in trunk/Source

[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665

Reviewed by Tim Horton.

The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.

Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.

Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.

Source/WebCore:

  • WebCore.exp.in:
  • page/ChromeClient.h:

(WebCore::ChromeClient::documentOverlayLayerForFrame):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
into a variable for ease of debugging.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
that we're not in the page cache (this would have caught the bug).
(WebCore::RenderLayerCompositor::appendOverlayLayers):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::documentOverlayLayerForFrame):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

11:13 PM Changeset in webkit [167297] by commit-queue@webkit.org
  • 5 edits
    3 deletes in trunk

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

Broke multiple tests (Requested by ap on #webkit).

Reverted changeset:

"Function.bind itself is too slow"
https://bugs.webkit.org/show_bug.cgi?id=131636
http://trac.webkit.org/changeset/167272

10:47 PM Changeset in webkit [167296] by ap@apple.com
  • 2 edits in trunk/Tools

Update webkitpy regression test result that started to fail after http://trac.webkit.org/r167243

I'm not sure whether the changes are desirable, but am not suspicious enough to roll out.

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

(CommitMessageForThisCommitTest):

10:23 PM Changeset in webkit [167295] by jhoneycutt@apple.com
  • 7 edits
    2 adds in trunk

Assertion failure under FEImage::determineAbsolutePaintRect()

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

Source/WebCore:
This patch merges Chromium r149536 (see
<https://chromiumcodereview.appspot.com/14701012>), which moves
m_absoluteTransform out of SVGFilter and into the base Filter class, so
that it isn't necessary to cast a Filter to SVGFilter to get the
absolute transform.

Reviewed by Geoffrey Garen.

Test: svg/filters/feImage-filter-assertion.html

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::Filter):
Changed to take the absolute transform.
(WebCore::Filter::absoluteTransform):
Moved from SVGFilter.
(WebCore::Filter::mapAbsolutePointToLocalPoint):
Ditto.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::FilterEffectRenderer):
Pass a default AffineTransform() to the Filter base class.

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::determineAbsolutePaintRect):
Use the Filter without casting it to SVGFilter.
(WebCore::FEImage::platformApplySoftware):
Ditto.

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::SVGFilter):
Pass the transform to the base class, and remove initialization of a
removed member var.

  • svg/graphics/filters/SVGFilter.h:

Member var moved to Filter.h.

LayoutTests:
Reviewed by Geoffrey Garen.

  • svg/filters/feImage-filter-assertion-expected.txt: Added.
  • svg/filters/feImage-filter-assertion.html: Added.
10:01 PM April 2014 Meeting edited by simon.pena@samsung.com
(diff)
9:31 PM Changeset in webkit [167294] by commit-queue@webkit.org
  • 29 edits in trunk/Source/WebInspectorUI

Update to CodeMirror 4.0.
https://bugs.webkit.org/show_bug.cgi?id=130019

The CodeMirror 4.0 library adds multiple selections and the ability to
undo/redo selections. Selections are made by holding the Command (Cmd) key
and clicking into an editor, or by holding Option (Alt) and making a block
selection followed by entering a character or moving the cursor.

Patch by Jono Wells <jonowells@apple.com> on 2014-04-14
Reviewed by Timothy Hatcher.

  • Scripts/update-codemirror-resources.rb:
  • Scripts/update-pretty-printer.rb:

Update scripts to reflect updated locations for CodeMirror files.
No longer copies LESS mode file as this has been integrated into CSS mode
in CodeMirror 4.0.

  • Tools/PrettyPrinting/codemirror.css:
  • Tools/PrettyPrinting/codemirror.js:
  • Tools/PrettyPrinting/css.js:
  • Tools/PrettyPrinting/javascript.js:
  • UserInterface/External/CodeMirror/clojure.js:
  • UserInterface/External/CodeMirror/closebrackets.js:
  • UserInterface/External/CodeMirror/codemirror.css:
  • UserInterface/External/CodeMirror/codemirror.js:
  • UserInterface/External/CodeMirror/coffeescript.js:
  • UserInterface/External/CodeMirror/comment.js:
  • UserInterface/External/CodeMirror/css.js:
  • UserInterface/External/CodeMirror/htmlmixed.js:
  • UserInterface/External/CodeMirror/javascript.js:
  • UserInterface/External/CodeMirror/livescript.js:
  • UserInterface/External/CodeMirror/matchbrackets.js:
  • UserInterface/External/CodeMirror/overlay.js:
  • UserInterface/External/CodeMirror/placeholder.js:
  • UserInterface/External/CodeMirror/runmode.js:
  • UserInterface/External/CodeMirror/sass.js:
  • UserInterface/External/CodeMirror/searchcursor.js:
  • UserInterface/External/CodeMirror/sql.js:
  • UserInterface/External/CodeMirror/xml.js:

Update to CodeMirror 4.0.

  • UserInterface/Main.html: Remove less.js which is now part of css.js.
  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype.):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

Update styles to match CodeMirror changes. Update CSSStyleDeclarationTextEditor.js
to match CodeMirror API updates (doc.removeLine() has been removed, so
replaceRange() is used instead). Also the tokenTrackingController is now enabled in the
CSSStyleDeclarationTextEditor and SourceCodeTextEditor when the Option (Alt) key
is pressed instead of the Command (Cmd) key so as not to conflict with multiple
cursor placement in the CodeMirror update.

8:53 PM Changeset in webkit [167293] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERT when firing low memory warning
https://bugs.webkit.org/show_bug.cgi?id=131659

Reviewed by Mark Hahnenberg.

  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode): Allow deleteAllCompiledCode to be
called when no GC is happening because that is what we do when a low
memory warning fires, and it is harmless.

8:52 PM Changeset in webkit [167292] by ggaren@apple.com
  • 16 edits in trunk

MallocBench should scavenge explicitly instead of waiting
https://bugs.webkit.org/show_bug.cgi?id=131661

Reviewed by Andreas Kling.

PerformanceTests:

  • MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc

by default because it will overwrite any other mbmalloc you're working
with in the WebKitBuild directory.

  • MallocBench/MallocBench/Benchmark.cpp:

(Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
and it's the only way to get FastMalloc to scavenge. (That's a bug in
FastMalloc, but we don't want it to interfere with broader testing.)

  • MallocBench/MallocBench/mbmalloc.cpp:
  • MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation

for system malloc.

Source/bmalloc:
Added explicit scavenge support to bmalloc. This isn't a memory win,
since bmalloc's per-thread cache is so small. But it makes testing
simpler.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::~Allocator):
(bmalloc::Allocator::scavenge):

  • bmalloc/Allocator.h:
  • bmalloc/Cache.cpp:

(bmalloc::Cache::operator new):
(bmalloc::Cache::operator delete):
(bmalloc::Cache::Cache):
(bmalloc::Cache::scavenge):

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

(bmalloc::Deallocator::~Deallocator):
(bmalloc::Deallocator::scavenge):

  • bmalloc/Deallocator.h: Factored existing scavenging code into helper

functions, for reuse.

  • bmalloc/Heap.cpp:

(bmalloc::sleep):
(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages):
(bmalloc::Heap::scavengeMediumPages):
(bmalloc::Heap::scavengeLargeRanges):

  • bmalloc/Heap.h: Made scavenge sleep duration a parameter. Forced

scavenging -- in response to a benchmark or a low memory warning --
wants to complete as soon as possible, so its sleep duration is 0.

  • bmalloc/bmalloc.h:

(bmalloc::api::scavenge):

  • bmalloc/mbmalloc.cpp: Exported the scavenge API for MallocBench's use.
8:06 PM Changeset in webkit [167291] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
https://bugs.webkit.org/show_bug.cgi?id=126322

Reviewed by Ryosuke Niwa.

One additional tweak to the fix for the bug above.
Fixes crash in editing/editability/ignored-content.html test.

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to
HTMLElement::canContainRangeEndPoint, bypassing HTMLPlugInElement override
that always returns false. Without this change, this function was always
returning false.

7:54 PM Changeset in webkit [167290] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Crash in TileController::tileRevalidationTimerFired
https://bugs.webkit.org/show_bug.cgi?id=131656
<rdar://problem/16583166>

Reviewed by Sam Weinig.

It's possible for the TileController revalidation timer to fire after
the GraphicsLayer has been destroyed, so the PlatformCALayer no longer
has an owningGraphicsLayer.

Bail from the timer callback if owningGraphicsLayer() is null.

Also some drive-by 0 -> nullptr changes.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::willBeDestroyed):

  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::~PlatformCALayer):

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

(WebCore::TileController::tileRevalidationTimerFired):

7:44 PM Changeset in webkit [167289] by ggaren@apple.com
  • 3 edits
    1 add in trunk/Source/bmalloc

Use 4kB pages on Mac
https://bugs.webkit.org/show_bug.cgi?id=131658

Reviewed by Sam Weinig.

This reduces memory use a lot on Membuster:

base patch Δ

Execution Time:

reddit_memory_warning 18ms 17ms 1.06x faster
flickr_memory_warning 34ms 36ms ! 1.06x slower
theverge_memory_warning 39ms 41ms ! 1.05x slower

<geometric mean> 29ms 29ms ! 1.02x slower
<arithmetic mean> 30ms 31ms ! 1.03x slower
<harmonic mean> 27ms 27ms 1.0x faster

Peak Memory:

reddit_memory_warning 16,412kB 16,436kB ! 1.0x bigger
flickr_memory_warning 30,120kB 30,184kB ! 1.0x bigger
theverge_memory_warning 33,408kB 33,420kB ! 1.0x bigger

<geometric mean> 25,466kB 25,499kB ! 1.0x bigger
<arithmetic mean> 26,647kB 26,680kB ! 1.0x bigger
<harmonic mean> 24,181kB 24,214kB ! 1.0x bigger

Memory at End:

reddit_memory_warning 2,404kB 1,920kB 1.25x smaller
flickr_memory_warning 3,764kB 3,072kB
1.23x smaller
theverge_memory_warning 3,648kB 3,132kB 1.16x smaller

<geometric mean> 3,208kB 2,644kB 1.21x smaller
<arithmetic mean> 3,272kB 2,708kB
1.21x smaller
<harmonic mean> 3,139kB 2,574kB 1.22x smaller

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BPlatform.h: Added.
  • bmalloc/VMAllocate.h: Only use 16kB pages on iOS because the page size

is 4kB on Mac.

7:32 PM April 2014 Meeting edited by Simon Fraser
(diff)
7:20 PM Changeset in webkit [167288] by mhahnenberg@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

emit_op_put_by_id should not emit a write barrier that filters on value
https://bugs.webkit.org/show_bug.cgi?id=131654

Reviewed by Filip Pizlo.

The 32-bit implementation does this, and it can cause crashes if we later repatch the
code to allocate and store new Butterflies.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier): We also weren't verifying that the base was a cell on
32-bit if we were passed ShouldFilterBase. I also took the liberty of sinking the tag
load down into the if statement so that we don't do it if we're not filtering on the value.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_by_id):

7:03 PM April 2014 Meeting edited by sam@webkit.org
(diff)
7:02 PM April 2014 Meeting edited by sam@webkit.org
(diff)
7:00 PM April 2014 Meeting edited by sam@webkit.org
(diff)
5:55 PM Changeset in webkit [167287] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the 32-bit build.

  • UIProcess/mac/ViewGestureControllerMac.mm:
5:47 PM Changeset in webkit [167286] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

REGRESSION (WebKit2): Programmatic scrolls in overflow-scrolling:touch don't work
https://bugs.webkit.org/show_bug.cgi?id=131649

Reviewed by Tim Horton.

Update the UIScrollView's contentOffset when we're told that the scroll position
changed.

Also refactor slightly to have a single exception-protected block.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):

5:47 PM Changeset in webkit [167285] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the 32-bit build.

  • UIProcess/mac/ViewGestureControllerMac.mm:
5:41 PM Changeset in webkit [167284] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Sometimes-crash under handleSwipeGesture after closing a window or quitting
https://bugs.webkit.org/show_bug.cgi?id=131648
<rdar://problem/15966106>

Reviewed by Simon Fraser.

  • UIProcess/mac/ViewGestureController.h:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::trackSwipeGesture):
Keep a Objective C object with a single boolean property, isCancelled, on
the ViewGestureController, and also retained by the swipe-tracking block.
When the ViewGestureController is destroyed, we set isCancelled to YES,
and the next time the block is invoked, we will cancel the swipe without
touching the destroyed ViewGestureController.

(WebKit::ViewGestureController::handleSwipeGesture):
Don't try to handle a swipe gesture if the drawing area is missing.

(WebKit::ViewGestureController::endSwipeGesture):
Clear the swipe cancellation tracker when the gesture completes.

5:27 PM Changeset in webkit [167283] by Bem Jones-Bey
  • 5 edits in trunk/Source/WebCore

[CSS Shapes] Remove some leftover shape-inside code
https://bugs.webkit.org/show_bug.cgi?id=131641

Reviewed by Dean Jackson.

I discovered that some code had been leftover from the shape-inside
removal. This removes that leftover code.

No new tests, no behavior change.

  • platform/text/BidiResolver.h:
  • rendering/BidiRun.cpp:

(WebCore::BidiRun::BidiRun):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::createLineBoxes):
(WebCore::RenderBlockFlow::constructLine):
(WebCore::computeExpansionForJustifiedText):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

5:14 PM Changeset in webkit [167282] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MSE][Mac] video.currentTime is sometimes negative.
https://bugs.webkit.org/show_bug.cgi?id=131644

Reviewed by Eric Carlson.

AVSampleBufferRenderSynchronizer will occasionally return slightly negative values
when beginning playback. Clamp the return value to 0.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):

5:07 PM Changeset in webkit [167281] by Bem Jones-Bey
  • 2 edits in trunk/Source/WebCore

[CSSExclusions] Remove FIXME referencing closed bug
https://bugs.webkit.org/show_bug.cgi?id=131645

Reviewed by Dean Jackson.

This is silly, but the comment is really confusing as it's entirely
wrong now.

No new tests, no behavior change.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint):

5:06 PM April 2014 Meeting edited by akling@apple.com
(diff)
4:47 PM Changeset in webkit [167280] by enrica@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r166027) Menu is shown and immediately hidden after doubletap gesture.
https://bugs.webkit.org/show_bug.cgi?id=131646
<rdar://problem/16614374>

Reviewed by Benjamin Poulain.

This is a problem with every gesture that changes the selection
We don't need to delay updating the selection if the selection is
being changed with a gesture.

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

(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
(-[WKContentView _selectionChanged]):

4:38 PM April 2014 Meeting edited by abucur@adobe.com
(diff)
4:22 PM Changeset in webkit [167279] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Build fixage.

  • page/FrameView.cpp:
4:14 PM April 2014 Meeting edited by rniwa@webkit.org
(diff)
4:08 PM Changeset in webkit [167278] by jhoneycutt@apple.com
  • 3 edits in trunk/Source/WebCore
Assertion failure !node
node->isElementNode() in

WebCore::RenderBlock::inlineElementContinuation

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

I can't reproduce this assertion failure, but there seems to be an
invalid assumption in RenderBlock::inlineElementContinuation() that
anything with the "isInline()" bit set is a RenderInline.

No new test because the test case in the bug does not repro for me.

Reviewed by Brent Fulgham.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::inlineElementContinuation):
Dave Hyatt says that this function should only return RenderInline
objects (not non-RenderInline inline objects), so update the checks
from isInline() to isRenderInline() before casting with
toRenderInline().

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::inlineElementContinuation):
Ditto.

4:08 PM April 2014 Meeting edited by rniwa@webkit.org
(diff)
4:03 PM Changeset in webkit [167277] by akling@apple.com
  • 14 edits in trunk/Source

Do more things under memory pressure on non-iOS platforms.
<https://webkit.org/b/131625>

Reviewed by Antti Koivisto.

Rename hasReceivedMemoryPressure() to isUnderMemoryPressure() and
make it use std::atomic<bool> instead of OSAtomic primitives.

Unmask most of the PLATFORM(IOS) blocks so all platforms can take
advantage of optimizations done while under pressure. Note that
isUnderMemoryPressure() will still always return false on platforms
other than iOS/WK1, but this will change soon.

  • history/PageCache.cpp:

(WebCore::PageCache::canCache):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::MemoryPressureHandler):

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::isUnderMemoryPressure):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
(WebCore::MemoryPressureHandler::hasReceivedMemoryPressure): Deleted.

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::purgeInactiveFontDataIfNeeded):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::createTilesInActiveGrid):

  • platform/ios/LegacyTileGrid.mm:

(WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage):

  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::addLayer):

  • platform/ios/TileControllerMemoryHandlerIOS.cpp:

(WebCore::TileControllerMemoryHandler::tileControllerGainedUnparentedTiles):

3:52 PM April 2014 Meeting edited by Simon Fraser
(diff)
3:46 PM Changeset in webkit [167276] by mitz@apple.com
  • 7 edits in trunk/Source/WebKit2

Let the bundle form client know whether a change in a text field was initiated by user typing
https://bugs.webkit.org/show_bug.cgi?id=131643

Reviewed by Sam Weinig.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added

initiatedByUserTyping parameter to the delegate method.

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

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Updated overload of
textDidChangeInTextField to take the initiatedByUserTyping parameter and pass it along to
the delegate.

  • WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:

(API::InjectedBundle::FormClient::textDidChangeInTextField): Added initiatedByUserTyping
parameter.

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::textDidChangeInTextField): Maintained the existing
behavior of not calling the C SPI client if the change was not initiated by user typing.

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Updated for added parameter.
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::textDidChangeInTextField): Changed to call the bundle client
function unconditionally, but pass along whether the change was initiated by user typing.

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

[Cocoa] Add a WKWebProcessPlugInFormDelegate method corresponding to willSendSubmitEvent
https://bugs.webkit.org/show_bug.cgi?id=131639

Reviewed by Tim Horton.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared

new delegate method.

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

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
of API::InjectedBundle::FormClient::willSendSubmitEvent which calls the new delegate
method.

3:39 PM Changeset in webkit [167274] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Change the SPI used when starting the rotation animation
https://bugs.webkit.org/show_bug.cgi?id=131638

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

Having an update block where all the properties are changed is more convenient for Safari.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
3:37 PM Changeset in webkit [167273] by Simon Fraser
  • 5 edits in trunk/Source/WebKit2

[iOS WK2] Hash table assertion closing a tab
https://bugs.webkit.org/show_bug.cgi?id=131640

Reviewed by Tim Horton.

Have RemoteLayerTreeContext keep track of all PlatformCALayerRemotes,
and clear their context pointer when it is being destroyed to avoid
calling into a deleted object later.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::addAnimationForKey):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

(WebKit::PlatformCALayerRemote::clearContext):

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

(WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):

3:05 PM Changeset in webkit [167272] by oliver@apple.com
  • 5 edits
    3 adds in trunk

Function.bind itself is too slow
https://bugs.webkit.org/show_bug.cgi?id=131636

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
Rather than forcing creation of an activation, we now store
bound function properties directly on the returned closure.
This is necessary to deal with code that creates many function
bindings, but does not call them very often.

This is a 60% speed up in the included js/regress test.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createBuiltinExecutable):

  • builtins/Function.prototype.js:

(bind.bindingFunction):
(bind.else.switch.case.1.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.1.bindingFunction):
(bind.else.switch.case.2.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.2.bindingFunction):
(bind.else.switch.case.3.bindingFunction.bindingFunction.bindingFunction.boundOversizedCallThunk):
(bind.else.switch.case.3.bindingFunction):
(bind.else.switch.bindingFunction):
(bind):
(bind.else.switch.case.1.bindingFunction.oversizedCall): Deleted.
(bind.else.switch.case.2.bindingFunction.oversizedCall): Deleted.
(bind.else.switch.case.3.bindingFunction.oversizedCall): Deleted.

  • runtime/CommonIdentifiers.h:

LayoutTests:
New test, and fix bogus log in old one

  • js/regress/function-bind-create-expected.html: Added.
  • js/regress/function-bind-create.html: Added.
  • js/regress/script-tests/function-bind-create.js: Added.

(test):

  • js/regress/script-tests/function-bind.js:
2:51 PM Changeset in webkit [167271] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Allow dynamic changes of WKThumbnailView snapshot scale
https://bugs.webkit.org/show_bug.cgi?id=131628
<rdar://problem/16584156>

Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/_WKThumbnailView.mm:

(-[_WKThumbnailView _requestSnapshotIfNeeded]):
Don't bail from requesting a snapshot just because we already had one; we want to resnapshot.
Keep track of when we bail from requesting a snapshot because we have one in-flight, so we can request it later.

(-[_WKThumbnailView _didTakeSnapshot:]):
Apply the scale to the bitmap size (whoops!).
Make CA always resize the content to fill the thumbnail view's layer, respecting aspect ratio.
Re-snapshot if we previously deferred a snapshot.

(-[_WKThumbnailView setScale:]):
If we get a scale change, request a new snapshot.

(-[_WKThumbnailView setUsesSnapshot:]):
Never apply thumbnail scale to the page if we're using snapshots. It's unnecessary,
because scale will be applied simply when painting the software snapshot.
Apply the thumbnail scale if we're going from usesSnapshot -> !usesSnapshot.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotAtSize):
Snapshots should use the greater of the two scales, so as to never leave a portion of the snapshot unpainted.

2:48 PM Changeset in webkit [167270] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

RenderLayerCompositor's m_layerForOverhangAreas should be offset by the
topContentInset
https://bugs.webkit.org/show_bug.cgi?id=131632
-and corresponding-
<rdar://problem/16609602>

Reviewed by Tim Horton.

Offset m_layerForOverhangAreas by the topContentInset.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2:46 PM Changeset in webkit [167269] by Julien Brianceau
  • 3 edits in trunk/Source/JavaScriptCore

[sh4] Allow use of SubImmediates in LLINT.
https://bugs.webkit.org/show_bug.cgi?id=131608

Reviewed by Mark Lam.

Allow use of SubImmediates with const pool so the sh4 architecture can
share the arm path for setEntryAddress macro. It reduces architecture
specific code and lead to a more optimal generated code for sh4.

  • llint/LowLevelInterpreter.asm:
  • offlineasm/sh4.rb:
2:38 PM Changeset in webkit [167268] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (WebKit2 View Gestures): Double-tap doesn't work properly when there's no element underneath the cursor
https://bugs.webkit.org/show_bug.cgi?id=131629
<rdar://problem/16192821>

Reviewed by Dan Bernstein.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
If there's nothing under the cursor, zoom towards the cursor instead of towards 0,0.

2:24 PM Changeset in webkit [167267] by ap@apple.com
  • 5 edits in trunk/Source/WebCore

Eliminate CachedFrame::m_mousePressNode
https://bugs.webkit.org/show_bug.cgi?id=131626

Reviewed by Brady Eidson.

I couldn't find any observable effect of this change.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::CachedFrameBase):
(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::clear):

  • history/CachedFrame.h:

(WebCore::CachedFrame::documentLoader):
(WebCore::CachedFrame::mousePressNode): Deleted.
Eliminated m_mousePressNode, accessor, and code that reached out to EventHandler.

  • page/EventHandler.cpp:

(WebCore::EventHandler::mousePressNode): Deleted.
(WebCore::EventHandler::setMousePressNode): Deleted.

  • page/EventHandler.h:

(WebCore::EventHandler::setMousePressed): Deleted. This function was already unused.

1:46 PM Changeset in webkit [167266] by Simon Fraser
  • 11 edits in trunk/Source

Run filter animations in the UI process with UI-side compositing
https://bugs.webkit.org/show_bug.cgi?id=131199
<rdar://problem/16479487>

Source/WebCore:

Reviewed by Sam Weinig.

Add FilterOperation::clone() which is used during decoding.
Export some things.

  • WebCore.exp.in:
  • platform/graphics/filters/FilterOperation.h:

Source/WebKit2:

Reviewed by Sam Weinig.

  • Shared/WebCoreArgumentCoders.cpp: Removed lots of WebCore::

(IPC::ArgumentCoder<SelectionRect>::decode):
(IPC::ArgumentCoder<PasteboardWebContent>::encode):
(IPC::ArgumentCoder<PasteboardWebContent>::decode):
(IPC::ArgumentCoder<PasteboardImage>::encode):
(IPC::ArgumentCoder<PasteboardImage>::decode):
(IPC::ArgumentCoder<URL>::decode):
(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::encode):
(IPC::ArgumentCoder<UserScript>::decode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):
(IPC::ArgumentCoder<FixedPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<FixedPositionViewportConstraints>::decode):
(IPC::ArgumentCoder<StickyPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<StickyPositionViewportConstraints>::decode):
(IPC::ArgumentCoder<FilterOperation>::encode):
(IPC::decodeFilterOperation):
(IPC::ArgumentCoder<FilterOperations>::encode):
(IPC::ArgumentCoder<WebCore::UserStyleSheet>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::UserStyleSheet>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::UserScript>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::UserScript>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode): Deleted.
(IPC::encodeFilterOperation): Deleted.
Add encoding/decoding support for FilterOperation.
decodeFilterOperation() has to be a bare function because of the RefPtr
out parameter.
REFERENCE filters should never be encoded, since they have CachedSVGDocumentReferences.

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

(WebKit::RemoteLayerTreeTextStream::operator<<):
Add logging for filter animations to the RemoteLayerTree log output.

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:

(WebKit::GraphicsLayerCARemote::addAnimation): Deleted. We can run
filter animations now.

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:

KeyValues have a RefPtr<WebCore::FilterOperation> now (which can't be part of
the union because we need its constructor to get called).

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode): Encode the filter.
(WebKit::PlatformCAAnimationRemote::KeyframeValue::decode): Decode the filter.
(WebKit::PlatformCAAnimationRemote::setFromValue): Implement.
(WebKit::PlatformCAAnimationRemote::setToValue): Implement.
(WebKit::PlatformCAAnimationRemote::setValues): Implement.
(WebKit::animationValueFromKeyframeValue): Handle filters.

1:38 PM Changeset in webkit [167265] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/mac/PageClientImpl.h:
1:37 PM Changeset in webkit [167264] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Use after free in WebCore::CachedResourceHandleBase::~CachedResourceHandleBase / WebCore::removeDetachedChildrenInContainer
https://bugs.webkit.org/show_bug.cgi?id=131169

Reviewed by Eric Carlson.

Invalidate the WebCoreAVFResourceLoader owned by MediaPlayerPrivateAVFoundationObjC
in its destructor, to prevent a private function being called in response to the
WebCoreAVFResourceLoader being stopped.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):

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

(WebCore::WebCoreAVFResourceLoader::invalidate):

1:31 PM Changeset in webkit [167263] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

monotonicallyIncreasingTime() should only initialize its static timebaseInfo once.
<https://webkit.org/b/131630>

Reviewed by Filip Pizlo.

The current initialization of the static field is not thread safe.

  • wtf/CurrentTime.cpp:

(WTF::monotonicallyIncreasingTime):

12:49 PM Changeset in webkit [167262] by Simon Fraser
  • 21 edits in trunk/Source

[WK2 iOS] Scrolling to anchor links is broken
https://bugs.webkit.org/show_bug.cgi?id=131618
<rdar://problem/16599144>

Source/WebCore:

Reviewed by Tim Horton.

Have ScrollingTreeScrollingNode pass RequestedScrollPosition updates
to the scrolling tree, so that the scrolling tree can have custom behavior
for them if necessary.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::updateAfterChildren):

  • page/scrolling/ScrollingTreeScrollingNode.h:

Source/WebKit2:

Reviewed by Tim Horton.

The RemoteScrollingTree implements scrollingTreeNodeRequestsScroll
to get informed about requested scroll position updates, and passes
them along via the RemoteScrollingCoordinatorProxy, WebPageProxy and PageClient
to the WKWebView, which performs a scroll.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:WebCore::]): Scroll to content offset,
taking page scale and insets into account.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::requestScroll):

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
Pass scrolls along to the WebPageProxy for the root node. We will also need
to handle programmatic scrolls for overflow soon.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestScroll):

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

(WebKit::PageClientImpl::canScrollView):
(WebKit::PageClientImpl::requestScroll):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::requestScroll):

12:45 PM Changeset in webkit [167261] by Brian Burg
  • 4 edits
    1 add in trunk

Web Replay: memoize fallback time values for document.lastModified
https://bugs.webkit.org/show_bug.cgi?id=131318

Reviewed by Joseph Pecoraro.

Source/WebCore:
If a document's Last-Modified header can't be found or used, then
document.lastModified is derived from the current system time or
from filesystem data, which is obviously nondeterministic.

It's better to handle this inside Document::lastModified rather than using
MemoizedDOMResult, because only the fallback case is nondeterministic.

Test: http/tests/inspector/replay/document-last-modified-fallback-value.html

  • dom/Document.cpp:

(WebCore::Document::lastModified): Save or reuse memoized fallback value.

  • replay/WebInputs.json: Add input DocumentLastModifiedDate.

LayoutTests:

  • http/tests/inspector/replay/document-last-modified-fallback-value.html: Added.
12:11 PM Changeset in webkit [167260] by ggaren@apple.com
  • 8 edits in trunk/PerformanceTests

A few MallocBench record/replay fixes
https://bugs.webkit.org/show_bug.cgi?id=131627

Reviewed by Andreas Kling.

  • MallocBench/MallocBench/Interpreter.cpp:

(Interpreter::run): Accept 0-sized allocations without asserting because
WebKit does that sometimes.

  • MallocBench/MallocBench/flickr.ops:
  • MallocBench/MallocBench/flickr_memory_warning.ops:
  • MallocBench/MallocBench/reddit.ops:
  • MallocBench/MallocBench/reddit_memory_warning.ops:
  • MallocBench/MallocBench/theverge.ops:
  • MallocBench/MallocBench/theverge_memory_warning.ops: Updated these

recordings because a bug in the recording mechanism caused one out of
every few thousand slot values to be bogus.

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

[GTK] Unreviewed GTK gardening.

Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-04-14

  • platform/gtk/TestExpectations: Update test expectations for new failing test 'editing/editability/ignored-content.html'.
  • platform/gtk/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Rebaselined.
12:00 PM Changeset in webkit [167258] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:57 AM Changeset in webkit [167257] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.29

New tag.

11:40 AM Changeset in webkit [167256] by Antti Koivisto
  • 9 edits in trunk/Source

Keep secondary tile grid for zoomed-out scale
https://bugs.webkit.org/show_bug.cgi?id=131586

Reviewed by Darin Adler.

Source/WebCore:

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsScale):

Don't repaint tiled backing with setNeedsDisplay, it invalidates itself correctly in setContentsScale.
Update custom child layers when tiled backing scale changes.

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

(WebCore::TileController::TileController):
(WebCore::TileController::setNeedsDisplay):

Drop the whole zoomed-out grid on full repaint.

(WebCore::TileController::setNeedsDisplayInRect):

Drop changed zoomed-out tiles. A more sophisticated strategy is possible.

(WebCore::TileController::setContentsScale):

Swap the zoomed-out grid in and out as needed.
Repaint the active grid after scale change so the client does not have to.

(WebCore::TileController::contentsScale):

Get the content scale from the tile grid so it is not kept in two places.

(WebCore::TileController::zoomedOutContentsScale):
(WebCore::TileController::setZoomedOutContentsScale):

Drop the zoomed-out grid if it no longer matches the zoomed-out scale.

(WebCore::TileController::tileRevalidationTimerFired):
(WebCore::TileController::retainedTileBackingStoreMemory):
(WebCore::TileController::containerLayers):

Return both zoomed-out tiles and the active tiles. Active tiles are on top.

(WebCore::TileController::numberOfUnparentedTiles):
(WebCore::TileController::removeUnparentedTilesNow):

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

(WebCore::TileGrid::dropTilesInRect):

Add a function for dropping tiles.

(WebCore::TileGrid::revalidateTiles):

Source/WebKit2:

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:

(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
(WebKit::PlatformCALayerRemoteTiledBacking::customSublayers):

Always request new sublayer list from tile controller.

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
11:33 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
11:17 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
11:05 AM April 2014 Meeting edited by zoltan@webkit.org
(diff)
11:04 AM Changeset in webkit [167255] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Array.prototype.concat should allocate output storage only once.
<https://webkit.org/b/131609>

Do a first pass across 'this' and any arguments to compute the
final size of the resulting array from Array.prototype.concat.
This avoids having to grow the output incrementally as we go.

This also includes two other micro-optimizations:

  • Mark getProperty() with ALWAYS_INLINE.
  • Use JSArray::length() instead of taking the generic property lookup path when we know an argument is an Array.

My MBP says ~3% progression on Dromaeo/jslib-traverse-jquery.

Reviewed by Oliver & Darin.

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):
(JSC::arrayProtoFuncConcat):

11:02 AM April 2014 Meeting edited by betravis@adobe.com
(diff)
11:00 AM April 2014 Meeting edited by Bem Jones-Bey
(diff)
10:51 AM April 2014 Meeting edited by ddkilzer@webkit.org
(diff)
10:49 AM April 2014 Meeting edited by Bem Jones-Bey
(diff)
10:33 AM Changeset in webkit [167254] by ap@apple.com
  • 2 edits in trunk/Source/bmalloc

Fixed svn:ignore on bmalloc.xcodeproj, it had erroneous leading spaces.

  • bmalloc.xcodeproj: Modified property svn:ignore.
10:27 AM Changeset in webkit [167253] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

Make WK(Web)View magnification setters actually use view-relative positions
https://bugs.webkit.org/show_bug.cgi?id=131611
<rdar://problem/15965239>

Reviewed by Darin Adler.

  • UIProcess/API/mac/WKView.mm:

(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
Use scalePageInViewCoordinates instead.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::scalePageInViewCoordinates):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scalePageInViewCoordinates):
(WebKit::WebPage::pageScaleFactor):

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

Add scalePageInViewCoordinates, which turns the scale centerpoint within the view
into what scalePage expects: a post-scale scroll offset.

10:26 AM Changeset in webkit [167252] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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

broke 3 tests on cloop (Requested by kling on #webkit).

Reverted changeset:

"Array.prototype.concat should allocate output storage only
once."
https://bugs.webkit.org/show_bug.cgi?id=131609
http://trac.webkit.org/changeset/167249

Patch by Commit Queue <commit-queue@webkit.org> on 2014-04-14

10:20 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
10:17 AM Changeset in webkit [167251] by oliver@apple.com
  • 2 edits in trunk/Source/WebCore

Update test result

9:52 AM WebKitGTK/KeepingTheTreeGreen edited by elima@igalia.com
(diff)
9:31 AM Changeset in webkit [167250] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fixed potential integer truncation.
https://bugs.webkit.org/show_bug.cgi?id=131615

Patch by Alex Christensen <achristensen@webkit.org> on 2014-04-14
Reviewed by Darin Adler.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::fillNops):
Truncate the size_t to an unsigned after it is limited to 15 instead of before.

9:19 AM Changeset in webkit [167249] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Array.prototype.concat should allocate output storage only once.
<https://webkit.org/b/131609>

Do a first pass across 'this' and any arguments to compute the
final size of the resulting array from Array.prototype.concat.
This avoids having to grow the output incrementally as we go.

This also includes two other micro-optimizations:

  • Mark getProperty() with ALWAYS_INLINE.
  • Use JSArray::length() instead of taking the generic property lookup path when we know an argument is an Array.

My MBP says ~3% progression on Dromaeo/jslib-traverse-jquery.

Reviewed by Darin Adler.

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):
(JSC::arrayProtoFuncConcat):

9:02 AM Changeset in webkit [167248] by krit@webkit.org
  • 5 edits in trunk

Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
https://bugs.webkit.org/show_bug.cgi?id=79659

Reviewed by Darin Adler.

Source/WebCore:
Optimize fill() and fillRect() operations in Canvas on composited contexts by
10 to 20 times on CG.

Replacing the ImageBuffer code by transparency layers allows the
graphics library to optimize the drawing.

Doing the same for drawImage() would give performance regressions.

An inline function will create a transparency layer for CG. Cairo graphics
does not composite correctly when a transparency layer gets created.
The inline function is just a NOOP for Cairo.

This fixes bug 131303 as well.

Added performance tests with r167124 already.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fillInternal):
(WebCore::CanvasRenderingContext2D::strokeInternal):
(WebCore::CanvasRenderingContext2D::beginCompositeLayer):
(WebCore::CanvasRenderingContext2D::endCompositeLayer):
(WebCore::CanvasRenderingContext2D::fillRect):
(WebCore::CanvasRenderingContext2D::strokeRect):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill): Deleted.

  • html/canvas/CanvasRenderingContext2D.h:

LayoutTests:
Unskip previously failing tests.

  • platform/gtk/TestExpectations:
8:48 AM Changeset in webkit [167247] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.4.1

Tagging the WebKitGTK+ 2.4.1 release

8:42 AM Changeset in webkit [167246] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Lots of compositing test failures after r167152
https://bugs.webkit.org/show_bug.cgi?id=131574

Reviewed by Darin Adler.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::dumpChildren):
(WebCore::GraphicsLayer::dumpProperties):
Make child-dumping recursive so that we can easily skip layers up to any depth.

8:35 AM Changeset in webkit [167245] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Unreviewed. Update NEWS and Versions.m4 for 2.4.1 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Added release notes for 2.4.1.
5:45 AM Changeset in webkit [167244] by pmolnar.u-szeged@partner.samsung.com
  • 3 edits in trunk/Source/WebCore

Fix incorrect indentations in CodeGeneratorJS.pm introduced in r165521
https://bugs.webkit.org/show_bug.cgi?id=131613

Reviewed by Csaba Osztrogonác.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
Fixed 5-space indentation.

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

Updated the tests accordingly.

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

Fix commit-log-editor bug revealed by r165447
https://bugs.webkit.org/show_bug.cgi?id=130676

Patch by Jozsef Berta <jberta.u-szeged@partner.samsung.com> on 2014-04-14
Reviewed by Csaba Osztrogonác.

  • Scripts/commit-log-editor:

(createCommitMessage): Omitting empty Source/JavaScriptCore:... blocks.
Add \n before the first block too, because the longest common prefix now ends with only one newline.
(removeLongestCommonPrefixEndingInNewline): The longest common prefix ends with only one newline,
now the last block of the common prefix isn't duplicated below. Changing the function name accordingly.

4:41 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
4:40 AM Changeset in webkit [167242] by Carlos Garcia Campos
  • 9 edits
    4 adds in releases/WebKitGTK/webkit-2.4

Merge r167193 - [GStreamer] No CORS support for media elements
https://bugs.webkit.org/show_bug.cgi?id=99037

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-04-13
Reviewed by Philippe Normand.

Source/WebCore:

Added CORS access control check to media sources when crossorigin attribute is set.

Added getter to CORS access control check status (used to compute whether the stream is tainted or not).
Related test is http/tests/security/video-cross-origin-readback.html.

Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
Related test is http/tests/security/video-cross-origin-accessfailure.html.

Tests: http/tests/security/video-cross-origin-accessfailure.html

http/tests/security/video-cross-origin-accesssameorigin.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration.
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading.
(webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
(StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result.
(CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode.
(CachedResourceStreamingClient::responseReceived): Check CORS and pass result to handleResponseReceived.
(ResourceHandleStreamingClient::didReceiveResponse): No CORS check.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration.

LayoutTests:

http/tests/security/video-cross-origin-accessfailure.html verifies that cross-origin streams that fail CORS check
are not played when crossorigin attribute is set.

http/tests/security/video-cross-origin-accesssameorigin.html verifies that access to same-origin streams

are played when crossorigin attribute is set.

  • http/tests/security/video-cross-origin-accessfailure-expected.txt: Added.
  • http/tests/security/video-cross-origin-accessfailure.html: Added.
  • http/tests/security/video-cross-origin-accesssameorigin-expected.txt: Added.
  • http/tests/security/video-cross-origin-accesssameorigin.html: Added.
  • platform/efl/TestExpectations: Enabled http/tests/security/video-cross-origin-readback.html.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Disabled http/tests/security/video-cross-origin-accessfailure.html.
4:25 AM Changeset in webkit [167241] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r166304 - REGRESSION(r162679): Poster image visible under the video
https://bugs.webkit.org/show_bug.cgi?id=130783

Reviewed by Simon Fraser.

In the listed revision, we started checking for isRenderImage()
instead of isImage(). RenderMedias return 'true' for the first
but 'false' for the second. Change the if() statement to check
for isRenderMedia() in addition to !isRenderImage().

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

4:21 AM Changeset in webkit [167240] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[JSC] CSSStyleDeclaration report incorrect descriptor
https://bugs.webkit.org/show_bug.cgi?id=89697

Reviewed by Benjamin Poulain.

Source/WebCore:

Change descriptor of CSSStyleDeclaration properties in order to have
writable and enumerable attributes set to true. Configurable is kept to
false since the property is not deleteable.

Test: fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate): Only set
DontDelete attribute when creating the descriptor for
CSSStyleDeclaration properties.

LayoutTests:

Add new test to check the descriptor of CSSStyleDeclaration properties.

  • fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor-expected.txt: Added.
  • fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor.html: Added.
4:20 AM Changeset in webkit [167239] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r166090 - Source/WebCore: Fix a crash when assigning an object to document.location
https://bugs.webkit.org/show_bug.cgi?id=130213

Reviewed by Geoffrey Garen.

Convert location to string before we make use the document.
This prevents us from attempting to navigate a frame that
has already been removed.

Test: fast/dom/navigation-with-sideeffects-crash.html

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::location):
(WebCore::JSDocument::setLocation):

LayoutTests: Fix semantics of JS execution when assigning an object to document.location
https://bugs.webkit.org/show_bug.cgi?id=130213

Reviewed by Geoffrey Garen.

  • fast/dom/navigation-with-sideeffects-expected.txt: Added.
  • fast/dom/navigation-with-sideeffects.html: Added.
4:12 AM Changeset in webkit [167238] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r166026 - Generalize WebInspector check in maybeInitializeSandboxExtensionHandle().
https://bugs.webkit.org/show_bug.cgi?id=130079
<rdar://problem/16286683>

Reviewed by Anders Carlsson.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

Perform an early return for all paths that don't need a sandbox extension due to
access being assumed, not only for WebInspector pages.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::hasAssumedReadAccessToURL):
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):

  • UIProcess/WebProcessProxy.h:

Factored out m_localPathsWithAssumedReadAccess iteration to a public function.

4:04 AM Changeset in webkit [167237] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r165921 - Crash with long selector list
https://bugs.webkit.org/show_bug.cgi?id=123006

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/css/long-selector-list-crash.html

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector):
(WebCore::CSSSelectorList::operator=):

  • css/StyleRule.cpp:

(WebCore::StyleRule::create):

Add a bunch of asserts.

(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):

This could produce a zero-length selector list.

LayoutTests:

  • fast/css/long-selector-list-crash-expected.txt: Added.
  • fast/css/long-selector-list-crash.html: Added.
3:53 AM Changeset in webkit [167236] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/JavaScriptCore

Merge r165902 - Update type of local vars to match the type of String length.
<https://webkit.org/b/130077>

Reviewed by Geoffrey Garen.

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::join):

3:47 AM Changeset in webkit [167235] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.4

Merge r165821 - Mutating rules returned by getMatchedCSSRules can result in crash
https://bugs.webkit.org/show_bug.cgi?id=130209

Source/WebCore:

Reviewed by Andreas Kling.

The non-standard getMatchedCSSRules API returns CSSStyleRule objects that don't
have parent stylesheet pointer (as we don't know which sheet the rule originated from).
Mutating the rule via such wrapper can lead to crashes later as we fail to invalidate
the underlying stylesheet.

Fix by disallowing mutation of style rules that don't have parent sheet pointer. CSSStyleRule
has two mutable properties selectorText and style. The latter gives back CSSStyleDeclaration.
This patch disallows mutations in both cases for CSSStyleRules that don't have parent stylesheet
pointer.

While it is technically possible to have CSSRules that are legitimately disconnected
from stylesheet (by removing rule from sheet while holding a reference to it) it never
makes sense to mutate such rule as there is no way to do anything with it afterwards.

Tests: fast/css/getMatchedCSSProperties-rule-mutation.html

fast/css/getMatchedCSSRules-crash.html

  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::setSelectorText):

Bail out if parent stylesheet is null.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setCssText):
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):

Allow StyleRuleCSSStyleDeclaration subclass cancel the mutation via
boolean return value from willMutate.

(WebCore::StyleRuleCSSStyleDeclaration::willMutate):

Disallow mutation if the owning CSSStyleRule is null or has null stylesheet.

(WebCore::StyleRuleCSSStyleDeclaration::didMutate):

We never get here with null rule or stylesheet anymore.

  • css/PropertySetCSSStyleDeclaration.h:

(WebCore::PropertySetCSSStyleDeclaration::willMutate):

LayoutTests:

Reviewed by Andreas Kling.

  • fast/css/getMatchedCSSProperties-rule-mutation-expected.txt: Added.
  • fast/css/getMatchedCSSProperties-rule-mutation.html: Added.
  • fast/css/getMatchedCSSRules-crash-expected.txt: Added.
  • fast/css/getMatchedCSSRules-crash.html: Added.
3:38 AM Changeset in webkit [167234] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r165548 - Don't send synchronous resize events when FrameView has auto-sizing enabled.
<https://webkit.org/b/130198>
<rdar://problem/15991333>

Reviewed by Dan Bernstein.

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

3:26 AM Changeset in webkit [167233] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r165425 - Improve WeakPtr operators.
https://bugs.webkit.org/show_bug.cgi?id=130053

Reviewed by Andreas Kling.

Replace the "operator!()" with an explicit bool operator. Add an "operator->()".

  • wtf/WeakPtr.h:

(WTF::WeakPtr::operator bool):
(WTF::WeakPtr::operator->):

3:05 AM Changeset in webkit [167232] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.4

Merge r165339 - SerializedScriptValue may move Identifiers between worlds
https://bugs.webkit.org/show_bug.cgi?id=129979

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/workers/worker-copy-shared-blob-url.html

Don't use Strings to store blob URLs as String's may be Identifiers
and they can only exist in one world/thread at a time.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::put):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::deserializeString):
(WebCore::SerializedScriptValue::addBlobURL):
(WebCore::SerializedScriptValue::SerializedScriptValue):

  • bindings/js/SerializedScriptValue.h:

LayoutTests:

Add test cases

  • fast/workers/resources/worker-copy-shared-blob-url-worker.js: Added.

(count.0.onmessage):

  • fast/workers/worker-copy-shared-blob-url-expected.txt: Added.
  • fast/workers/worker-copy-shared-blob-url.html: Added.
2:47 AM Changeset in webkit [167231] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r165145 - ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
https://bugs.webkit.org/show_bug.cgi?id=129753
<rdar://problem/12069835>

Reviewed by Alexey Proskuryakov.

Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
app cache doesn't contain a manifest resource.

For some reason an app cache for a web site may be partially written to disk. In particular, the
app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
and hence have been unable to create such an app cache. We were able to reproduce this issue using
an app cache database file that was provided by a person that was affected by this issue.

No test included because it's not straightforward to write a test for this change.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
expression into two assertion expressions to make it straightforward to identify the failing sub-expression
on failure.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
(WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
have a manifest resource.
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
(WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
ApplicationCacheStorage::deleteCacheGroupRecord().

  • loader/appcache/ApplicationCacheStorage.h:
2:43 AM Changeset in webkit [167230] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.4

Merge r165138 - Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
<http://webkit.org/b/129751>
<rdar://problem/16237965>

Reviewed by Jon Honeycutt.

Merged from Blink (patch by Yuta Kitamura):
https://src.chromium.org/viewvc/blink?revision=168160&view=revision
http://crbug.com/345005

The root cause is CompositeEditCommand::moveParagraphWithClones() passing
two positions |start| and |end| which do not follow the document order,
i.e. in some situations |start| is located after |end| because of
the difference in affinity.

This patch fixes this crash by normalizing |end| to |start| in such situations.
It also adds an ASSERT that checks the relationship between |start| and |end|.

Source/WebCore:

Test: editing/execCommand/format-block-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphWithClones):

  • editing/CompositeEditCommand.h:

LayoutTests:

  • editing/execCommand/format-block-crash-expected.txt: Added.
  • editing/execCommand/format-block-crash.html: Added.
  • editing/execCommand/resources/format-block-crash-iframe.html: Added.
2:37 AM Changeset in webkit [167229] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r164933 - Ensure keySplines is valid in SMIL animations
<http://webkit.org/b/129547>
<rdar://problem/15676128>

Reviewed by Darin Adler.

Merged from Blink (patch by Philip Rogers):
https://src.chromium.org/viewvc/blink?revision=156452&view=revision
http://crbug.com/276111

This patch fixes a crash in SMIL animations when keySplines are not
specified. The SMIL spec is clear on this:
http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
"If there are any errors in the keyTimes specification (bad values,
too many or too few values), the animation will have no effect."

This patch simply checks that keyTimes is not empty. Previously,
splinesCount was set to be m_keySplines.size() + 1 in
SVGAnimationElement.cpp; this patch changes splinesCount to be equal
to m_keySplines.size() to make the logic easier to follow and to
match other checks in SVGAnimationElement::startedActiveInterval.

Source/WebCore:

Test: svg/animations/animate-keysplines-crash.html

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):

LayoutTests:

  • svg/animations/animate-keysplines-crash-expected.txt: Added.
  • svg/animations/animate-keysplines-crash.html: Added.
2:34 AM Changeset in webkit [167228] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r164876 - Properly clear m_logicallyLastRun to remove use-after-free possibility
https://bugs.webkit.org/show_bug.cgi?id=129489

Reviewed by David Hyatt.

A use-after-free issue was caught in Blink because m_logicallyLastRun
is not cleared when the item it points to is deleted. Clearing it
turns the use-after-free into a segfault, and prevents any future
use-after-frees from happening.

  • platform/text/BidiRunList.h:

(WebCore::BidiRunList<Run>::deleteRuns):

2:31 AM Changeset in webkit [167227] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r164408 - Crash in WTF::StringBuilder::append()

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

Reviewed by Oliver Hunt.

  • wtf/text/StringBuilder.cpp:

(WTF::expandedCapacity):
Ensure that we return a new capacity of at least 'requiredLength' in
the case where requiredLength is large. Also, use unsigned rather than
size_t for the parameters and the return value, as callers pass
unsigned arguments and treat the result as an unsigned int.

2:24 AM Changeset in webkit [167226] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r164367 - Do not dispatch change event twice in single step action
https://bugs.webkit.org/show_bug.cgi?id=116936
<rdar://problem/16086828>

Reviewed by Ryosuke Niwa.

Merged from Blink (patch by Kent Tamura):
https://src.chromium.org/viewvc/blink?view=rev&revision=151175

Source/WebCore:

Test: fast/forms/number/number-type-update-by-change-event.html

  • html/InputType.cpp:

(WebCore::InputType::stepUpFromRenderer):

LayoutTests:

  • fast/forms/number/number-type-update-by-change-event-expected.txt: Added.
  • fast/forms/number/number-type-update-by-change-event.html: Added.
2:17 AM Changeset in webkit [167225] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r164249 - AX: Invalid cast in WebCore::AccessibilityTable::isDataTable (CRBug 280352)
<https://webkit.org/b/128925>
<rdar://problem/16087351>

Merged from Blink (patch by Dominic Mazzoni):
https://src.chromium.org/viewvc/blink?revision=159711&view=revision

Reviewed by Oliver Hunt.

Source/WebCore:

Don't cast to a table cell element unless we are sure it is one.

Test: accessibility/display-table-cell-causes-crash.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable):

LayoutTests:

  • accessibility/display-table-cell-causes-crash-expected.txt: Added.
  • accessibility/display-table-cell-causes-crash.html: Added.
2:11 AM Changeset in webkit [167224] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r164204 - Ensure that removing an iframe from the DOM tree disconnects its Frame.
<https://webkit.org/b/128889>
<rdar://problem/15671221>

Merged from Blink (patch by Adam Klein):
https://src.chromium.org/viewvc/blink?revision=156174&view=revision

Source/WebCore:

SubframeLoadingDisabler wasn't catching the case when an <iframe> was,
in its unload handler, removed and re-added to the same parent.
Fix this by using a count of SubframeLoadingDisablers that are on the
stack for a given root, rather than a simple boolean.

Test: fast/frames/reattach-in-unload.html

  • html/HTMLFrameOwnerElement.h:

(WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):

LayoutTests:

  • fast/frames/reattach-in-unload-expected.txt: Added.
  • fast/frames/reattach-in-unload.html: Added.
2:00 AM Changeset in webkit [167223] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r164170 - ASSERT_WITH_SECURITY_IMPLICATION in WebCore::toElement
https://bugs.webkit.org/show_bug.cgi?id=128810

Patch by Renata Hodovan <rhodovan.u-szeged@partner.samsung.com> on 2014-02-15
Reviewed by Ryosuke Niwa.

Source/WebCore:

Make CompositeEditCommand::cloneParagraphUnderNewElement() to work when |outerNode|
doesn't contain |start|.

Before this patch, CompositeEditCommand::cloneParagraphUnderNewElement() tried to copy
ancestry nodes from |start| to Document node when |start| position isn't in |outerNode|. This
patch changes CompositeEditCommand::cloneParagraphUnderNewElement() to copy |start| to
|outerNode| only if |outerNode| contains |start| position.

Merged from Blink https://src.chromium.org/viewvc/blink?revision=161762&view=revision by yosin@chromium.org.

Test: editing/execCommand/indent-with-uneditable-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):

LayoutTests:

  • editing/execCommand/indent-with-uneditable-crash-expected.txt: Added.
  • editing/execCommand/indent-with-uneditable-crash.html: Added.
1:53 AM Changeset in webkit [167222] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Merge r163599 - loadSubframe can return null in SubframeLoader::loadOrRedirectSubframe
https://bugs.webkit.org/show_bug.cgi?id=128344

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):

LayoutTests:

1:47 AM Changeset in webkit [167221] by Carlos Garcia Campos
  • 6 edits
    6 adds in releases/WebKitGTK/webkit-2.4

Merge r163579 - Make adoption agency use the task queue
https://bugs.webkit.org/show_bug.cgi?id=109445

Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/parser/adoption-agency-crash-01.html

fast/parser/adoption-agency-crash-02.html
fast/parser/adoption-agency-crash-03.html

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::insert):
(WebCore::executeInsertTask):
(WebCore::executeReparentTask):
(WebCore::executeInsertAlreadyParsedChildTask):
(WebCore::executeTakeAllChildrenTask):
(WebCore::executeTask):
(WebCore::HTMLConstructionSite::attachLater):
(WebCore::HTMLConstructionSite::executeQueuedTasks):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::reparent):
(WebCore::HTMLConstructionSite::insertAlreadyParsedChild):
(WebCore::HTMLConstructionSite::takeAllChildren):
(WebCore::HTMLConstructionSite::fosterParent):

  • html/parser/HTMLConstructionSite.h:

(WebCore::HTMLConstructionSiteTask::HTMLConstructionSiteTask):
(WebCore::HTMLConstructionSiteTask::oldParent):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

LayoutTests:

  • TestExpectations:
  • fast/parser/adoption-agency-crash-01-expected.txt: Added.
  • fast/parser/adoption-agency-crash-01.html: Added.
  • fast/parser/adoption-agency-crash-02-expected.txt: Added.
  • fast/parser/adoption-agency-crash-02.html: Added.
  • fast/parser/adoption-agency-crash-03-expected.txt: Added.
  • fast/parser/adoption-agency-crash-03.html: Added.
1:46 AM Changeset in webkit [167220] by benjamin@webkit.org
  • 7 edits in trunk/Source

[JSC] Improve the call site of string comparison in some hot path
https://bugs.webkit.org/show_bug.cgi?id=131605

Reviewed by Darin Adler.

Source/JavaScriptCore:

When resolved, the String of a JSString is never null. It can be empty but not null.
The null value is reserved for ropes but those would be resolved when getting the value.

Consequently, we should use the equal() operation that do not handle null values.
Using the StringImpl directly is already common in StringPrototype but it was not used here for some reason.

  • jit/JITOperations.cpp:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline):
(JSC::JSValue::pureStrictEqual):

Source/WebCore:

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
We should use the right comparison operation depending on the Hash Traits.

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::stringImplContentEqual):
Inline that function to reduce the call overhead for JSC.
This is only inlined twice, it is not catastrophic for our binary.

1:45 AM Changeset in webkit [167219] by akling@apple.com
  • 2 edits
    1 move
    1 delete in trunk/Source/WebCore

Merge MemoryPressureHandler{Mac,IOS}.mm
<https://webkit.org/b/131603>

Join the iOS and Mac platform implementations of MemoryPressureHandler
under the shared Cocoa banner. Each platform still has its own quirky
behavior, but this puts them in the same file so we can start sharing.

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm: Renamed from Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm.

(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
(WebCore::respondToMemoryPressureCallback):
(WebCore::MemoryPressureHandler::installMemoryReleaseBlock):
(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::hasReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):

  • platform/ios/MemoryPressureHandlerIOS.mm: Removed.
1:42 AM Changeset in webkit [167218] by benjamin@webkit.org
  • 10 edits
    4 adds in trunk

CSS JIT: compile the :nth-child() pseudo class
https://bugs.webkit.org/show_bug.cgi?id=131602

Reviewed by Andreas Kling.

Source/WebCore:

Tests: fast/selectors/nth-child-bounds.html

fast/selectors/nth-child-with-backtracking.html

Compile the :nth-child() pseudo class function + some related clean up.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::nthA):
(WebCore::CSSSelector::nthB):
Expose the parsed value of an+b filters. Those values are used to compile
the selector.

(WebCore::CSSSelector::RareData::parseNth):
While working on the patch, I discovered some severe issues with the parsing of large
values of a and/or b. The problem comes from the way the CSS parser handle the values:
the values are parsed as a double then converted to an AtomicString for CSSSelector.

There are many problems related to large values but we never got bug reports because
they are very uncommon. Fixing those problem would require changing the parser.

Here, CSSSelector::RareData::parseNth() is hardened a little bit to avoid absurd values
of a and b.

  • css/CSSSelector.h:
  • cssjit/RegisterAllocator.h:

It looks like I forgot RDX in the list of register. Add it now since it is required
for SelectorCodeGenerator::modulo().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
(WebCore::SelectorCompiler::SelectorCodeGenerator::moduloIsZero):
There is no modulo() operation exposed on the macro assemblers. This is a basic
implementation on top of idiv for x86_64.

Since idiv works exclusively with RAX and RDX, most of the code is about getting
those registers efficiently.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::setElementChildIndex):
(WebCore::SelectorCompiler::setElementChildIndexAndUpdateStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
This is pretty much a straightforward implementation of :nth-child().
The first part counts the number of previous elements.
The second part updates the tree if this is style resolution.
The last part compares the number of previous siblings to an+b to find if the filter matches.

The only part that diverges from SelectorChecker is how childIndex is used. Instead of testing it
at every iteration, only the first iteration handle the cache.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::childIndexMemoryOffset):

  • dom/Node.h:

(WebCore::Node::rareDataMemoryOffset):
(WebCore::Node::flagHasRareData):

  • rendering/style/RenderStyle.h:

LayoutTests:

Add a couple of test for the new code:
-nth-child-with-backtracking tests the register pressure with backtracking.
-nth-child-bounds tests invalid selectors do not cause problems.

  • fast/selectors/nth-child-bounds-expected.txt: Added.
  • fast/selectors/nth-child-bounds.html: Added.
  • fast/selectors/nth-child-with-backtracking-expected.txt: Added.
  • fast/selectors/nth-child-with-backtracking.html: Added.
  • http/tests/security/video-poster-cross-origin-crash.html:

Now that CSSSelector filters out ridiculously bad values, the pseudo class in this test
was no longer executed.
The particular value of nth-child is irrelevant for this test, all it needs it the tree marking
while not matching.

1:29 AM Changeset in webkit [167217] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r163465 - Move characterAt index checks from InlineIterator to RenderText
https://bugs.webkit.org/show_bug.cgi?id=128224

Source/WebCore:

Reviewed by Simon Fraser.

Move characterAt index checks from InlineIterator to RenderText
so that all RenderText calls are covered. Few safe instances are
now covered with uncheckedCharacterAt.

Merged from Blink:
http://src.chromium.org/viewvc/blink?view=revision&revision=150830

Test: fast/text/character-at-crash.html

  • rendering/InlineIterator.h:

(WebCore::InlineIterator::characterAt):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • rendering/RenderText.h:

(WebCore::RenderText::operator[]):
(WebCore::RenderText::uncheckedCharacterAt):
(WebCore::RenderText::characterAt):

LayoutTests:

Move characterAt index checks from InlineIterator to RenderText
so that all RenderText calls are covered. Few safe instances are
now covered with uncheckedCharacterAt.

Merged from Blink:
http://src.chromium.org/viewvc/blink?view=revision&revision=150830

Reviewed by Simon Fraser.

  • fast/text/character-at-crash-expected.txt: Added.
  • fast/text/character-at-crash.html: Added.
1:10 AM Changeset in webkit [167216] by timothy_horton@apple.com
  • 8 edits in trunk/Source

Support setting a background color on page overlays
https://bugs.webkit.org/show_bug.cgi?id=131600

Reviewed by Darin Adler.

  • WebProcess/WebPage/PageOverlay.cpp:

(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::bounds):
(WebKit::PageOverlay::startFadeInAnimation):
(WebKit::PageOverlay::startFadeOutAnimation):
(WebKit::PageOverlay::startFadeAnimation):
(WebKit::PageOverlay::fadeAnimationTimerFired):
Minor style adjustments.
Use more references everywhere.

(WebKit::PageOverlay::setBackgroundColor):
(WebKit::PageOverlay::setNeedsDisplay):

  • WebProcess/WebPage/PageOverlay.h:

(WebKit::PageOverlay::backgroundColor):
Keep track of our background color, and push it down to the page overlay controller if we have one.

  • WebProcess/WebPage/PageOverlayController.cpp:

(WebKit::updateOverlayGeometry):
(WebKit::PageOverlayController::clearPageOverlay):
Page overlays will always have the right size, and just use drawsContents to determine
whether or not they should tile/have backing store/etc.

(WebKit::PageOverlayController::installPageOverlay):
(WebKit::PageOverlayController::didChangeOverlayBackgroundColor):
Set the background color of the layer.

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

(WebKit::WebPage::WebPage):
References!

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):
Mark the compositing tree as needing a rebuild when we get a new document-relative
overlay layer; otherwise we were depending on something else coming along and
requiring a rebuild, which didn't always happen.

12:50 AM Changeset in webkit [167215] by mihnea@adobe.com
  • 4 edits
    2 adds in trunk

[CSS Regions] Hit testing doesn't work in video
https://bugs.webkit.org/show_bug.cgi?id=131485

Reviewed by Andrei Bucur.

Source/WebCore:

When hit testing flow thread layer through the region layer,
we have to pass the depth sorting information and take that
into account for the situation in which an ancestor of the region
has preserve-3d transform style.

Test: fast/regions/hit-test-region-preserve3d-container.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/regions/hit-test-region-preserve3d-container-expected.txt: Added.
  • fast/regions/hit-test-region-preserve3d-container.html: Added.
12:28 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
12:28 AM Changeset in webkit [167214] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r167128 - wk2-gtk does not display anything
https://bugs.webkit.org/show_bug.cgi?id=125558

Reviewed by Martin Robinson.

Remove fcntl call to set access mode flags on the duplicated files
descriptor. Those flags are ignored in Linux and make fcntl to
fail in FreeBSD. We should handle the case where the passed
protection is ReadOnly.
Thanks to Raphael Kubo da Costa who proposed the solution.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::createHandle):
(WebKit::accessModeFile): Deleted.

12:19 AM Changeset in webkit [167213] by commit-queue@webkit.org
  • 51 edits
    9 adds in trunk/LayoutTests

Update html5lib test data to latest version
https://bugs.webkit.org/show_bug.cgi?id=131588

Patch by Koji Ishii <kojishi@gmail.com> on 2014-04-14
Reviewed by Darin Adler.

This patch imports the latest version of the "dat" files from
https://github.com/html5lib/html5lib-tests
Also updated expected files for failures of new tests.

  • html5lib/generated/run-adoption01-data-expected.txt: Passes now as a bug in the test was fixed.
  • html5lib/generated/run-adoption01-write-expected.txt: Supressed new failures.
  • html5lib/generated/run-inbody01-data-expected.txt: Added.
  • html5lib/generated/run-inbody01-data.html: Added.
  • html5lib/generated/run-inbody01-write-expected.txt: Added.
  • html5lib/generated/run-inbody01-write.html: Added.
  • html5lib/generated/run-main-element-data-expected.txt: Added.
  • html5lib/generated/run-main-element-data.html: Added.
  • html5lib/generated/run-main-element-write-expected.txt: Added.
  • html5lib/generated/run-main-element-write.html: Added.
  • html5lib/generated/run-template-data-expected.txt: Supressed new failures.
  • html5lib/generated/run-template-write-expected.txt: Supressed new failures.
  • html5lib/generated/run-tests21-data-expected.txt: Supressed new failures.
  • html5lib/generated/run-tests21-write-expected.txt: Supressed new failures.
  • html5lib/generated/run-tests25-data-expected.txt: Supressed new failures.
  • html5lib/generated/run-tests25-write-expected.txt: Supressed new failures.
  • html5lib/resources/adoption01.dat:
  • html5lib/resources/adoption02.dat:
  • html5lib/resources/comments01.dat:
  • html5lib/resources/doctype01.dat:
  • html5lib/resources/domjs-unsafe.dat:
  • html5lib/resources/entities01.dat:
  • html5lib/resources/entities02.dat:
  • html5lib/resources/html5test-com.dat:
  • html5lib/resources/inbody01.dat:
  • html5lib/resources/isindex.dat:
  • html5lib/resources/main-element.dat: Added.
  • html5lib/resources/pending-spec-changes-plain-text-unsafe.dat:
  • html5lib/resources/pending-spec-changes.dat:
  • html5lib/resources/plain-text-unsafe.dat:
  • html5lib/resources/scriptdata01.dat:
  • html5lib/resources/tables01.dat:
  • html5lib/resources/template.dat:
  • html5lib/resources/tests1.dat:
  • html5lib/resources/tests10.dat:
  • html5lib/resources/tests14.dat:
  • html5lib/resources/tests15.dat:
  • html5lib/resources/tests16.dat:
  • html5lib/resources/tests17.dat:
  • html5lib/resources/tests18.dat:
  • html5lib/resources/tests19.dat:
  • html5lib/resources/tests2.dat:
  • html5lib/resources/tests20.dat:
  • html5lib/resources/tests21.dat:
  • html5lib/resources/tests22.dat:
  • html5lib/resources/tests23.dat:
  • html5lib/resources/tests25.dat:
  • html5lib/resources/tests26.dat:
  • html5lib/resources/tests3.dat:
  • html5lib/resources/tests4.dat:
  • html5lib/resources/tests5.dat:
  • html5lib/resources/tests6.dat:
  • html5lib/resources/tests7.dat:
  • html5lib/resources/tests8.dat:
  • html5lib/resources/tests9.dat:
  • html5lib/resources/tests_innerHTML_1.dat:
  • html5lib/resources/tricky01.dat:
  • html5lib/resources/webkit01.dat:
  • html5lib/resources/webkit02.dat:
12:17 AM Changeset in webkit [167212] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.4

Merge r167185 - [SOUP] Libsoup internal credential setting should be controlled by loader decision
https://bugs.webkit.org/show_bug.cgi?id=130963

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-04-12
Reviewed by Darin Adler.

Source/WebCore:

Disabled libsoup internal authentication manager for messages for which no credential is available and no stored credentials should be used.
Updated synchronous loader to return whether using credentials or not according StoredCredential loader option parameter.
Unskipped test http/tests/xmlhttprequest/cross-origin-no-authorization.html covers the patch.

  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal): Added m_useAuthenticationManager boolean to control whether disable authentication manager or not.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Added m_storedCredentials member.
(WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage): Return true if stored credentials are allowed.
(WebCore::applyAuthenticationToRequest): Set m_useAuthenticationManager value to disable authentication manager if cannot use stored credentials and ResourceHandleInternal has no username and password.
(WebCore::createSoupMessageForHandleAndRequest): Disable authentication mananger according m_useAuthenticationManager value.
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Added StoredCredentials loader option to the sync loader constructor.

Source/WebKit/efl:

  • WebCoreSupport/FrameLoaderClientEfl.cpp:

(WebCore::FrameLoaderClientEfl::shouldUseCredentialStorage): Similarly to GTK, let soup/loader layer handle when to use credential storage. Return always true

LayoutTests:

  • platform/efl/TestExpectations: Unskipped http/tests/xmlhttprequest/cross-origin-no-authorization.html.
  • platform/gtk/TestExpectations: Ditto.
Note: See TracTimeline for information about the timeline view.