Timeline



Jun 9, 2015:

11:26 PM Changeset in webkit [185404] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

DeferredWrapper should clear its JS strong references once its promise is resolved/rejected
https://bugs.webkit.org/show_bug.cgi?id=145753

Reviewed by Darin Adler.

Clear strong references at the end of DeferredWrapper::resolve and DeferredWrapper::reject.
Added assertions to check that resolve or reject is called only once.

Removed DeferredWrapper constructor that creates internally its promise.
Reason is DeferredWrapper can be resolved synchronously and promise
will be lost when returning it at the end of the binding promise function.
Updated all custom bindings accordingly.

Covered by existing tests.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContext::suspend): Updated DeferredWrapper constructor to properly return the promise.
(WebCore::JSAudioContext::resume): Ditto.
(WebCore::JSAudioContext::close): Ditto.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::resolve): Cleared strong references after promise resolution.
(WebCore::DeferredWrapper::reject): Cleared strong references after promise rejection.

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve): Added ASSERT to check promise is not yet rejected/resolved.
(WebCore::DeferredWrapper::reject): Ditto.
(WebCore::DeferredWrapper::reject<ExceptionCode>): Ditto.
(WebCore::DeferredWrapper::resolve<String>): Ditto.
(WebCore::DeferredWrapper::resolve<bool>): Ditto.
(WebCore::DeferredWrapper::resolve<JSC::JSValue>): Ditto.
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>): Ditto.

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia): Updated DeferredWrapper constructor to properly return the promise.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::read): Ditto.
(WebCore::JSReadableStreamReader::closed): Ditto.

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::encrypt): Ditto.
(WebCore::JSSubtleCrypto::decrypt): Ditto.
(WebCore::JSSubtleCrypto::sign): Ditto.
(WebCore::JSSubtleCrypto::verify): Ditto.
(WebCore::JSSubtleCrypto::digest): Ditto.
(WebCore::JSSubtleCrypto::generateKey): Ditto.
(WebCore::JSSubtleCrypto::importKey): Ditto.
(WebCore::JSSubtleCrypto::exportKey): Ditto.
(WebCore::JSSubtleCrypto::wrapKey): Ditto.
(WebCore::JSSubtleCrypto::unwrapKey): Ditto.

10:59 PM Changeset in webkit [185403] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Protect FrameView from being destroyed in Document::recalcStyle()
https://bugs.webkit.org/show_bug.cgi?id=143033
rdar://problem/20326871

Reviewed by Andreas Kling.

This patch ensures that FrameView stays valid in Document::recalcStyle().
It follows the defensive pattern we use to deal with the refcounted FrameView (see EventDispatcher::dispatchEvent)

When the iframe destroys itself in the onBeforeLoad callback (as the result of
PostResolutionCallbackDisabler -> HTMLObjectElement::updateWidget -> guardedDispatchBeforeLoadEvent),
we detach the frame and release the FrameView. However Document::recalcStyle() expects
the FrameView to stay valid.

Covered by fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

10:38 PM Changeset in webkit [185402] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

3D-transformed video does not display on platforms without accelerated video rendering
https://bugs.webkit.org/show_bug.cgi?id=144782

Patch by Daegyu Lee <daegyu.lee@navercorp.com> on 2015-06-09
Reviewed by Simon Fraser.

Source/WebCore:

Video element does not get GraphicsLayer when MediaPlayerPrivate::supportsAcceleratedRendering() returns false
which means not using accelerated video decoding.
Although the video element gets GraphicsLayer by changing the CSS style of video element by javascript,
there is no way to set GraphicsLayer::setDrawsContent(true) for updating the video content.
As a result, after changing the CSS style, the video content does not show.
To avoid missing setDrawsContent(true), add conditions(!supportsAcceleratedRendering() && m_requiresOwnBackingStore).

Test: media/video-transformed-by-javascript.html

media/video-transformed-by-javascript-expected.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::containsPaintedContent):

LayoutTests:

Add layout test that is simply checking video transform by javascript works properly.

  • media/video-transformed-by-javascript-expected.txt: Added.
  • media/video-transformed-by-javascript.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:00 PM Changeset in webkit [185401] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
8:34 PM Changeset in webkit [185400] by commit-queue@webkit.org
  • 7 edits in trunk

Implement dumpProgressFinishedCallback() for Win layoutTestController.
https://bugs.webkit.org/show_bug.cgi?id=66773

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

Source/WebKit/win:

  • WebView.cpp:

(WebView::setFrameLoadDelegatePrivate):

Tools:

  • DumpRenderTree/win/FrameLoadDelegate.cpp:
  • DumpRenderTree/win/FrameLoadDelegate.h:

LayoutTests:

  • platform/win/TestExpectations:
7:00 PM Changeset in webkit [185399] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Some builder names are really long.

  • init-database.sql:
5:57 PM Changeset in webkit [185398] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION(r180867): Tabbing to login field on iCloud.com doesn't have highlight for text
https://bugs.webkit.org/show_bug.cgi?id=145830

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by setSelection not updating RenderView when there is a style recalc scheduled
that doesn't trigger a layout. Fixed the bug by explicitly updating the selection in
Document::recalcStyle in that case.

Test: editing/selection/update-selection-by-style-change.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAppearanceAfterLayout): Renamed from didLayout.

  • editing/FrameSelection.h:
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

LayoutTests:

Added a regression test.

  • editing/selection/update-selection-by-style-change-expected.html: Added.
  • editing/selection/update-selection-by-style-change.html: Added.
5:53 PM Changeset in webkit [185397] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

MediaControls: Reenable resize of controls on pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=145824
<rdar://problem/21212778>

Reviewed by Darin Adler.

Reinstate the code that updated the scaling of the
controls in response to changes in page scale.
This time around we have to change both the controls
panel, and its blurry background.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.set pageScaleFactor): Deleted a comment.

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-controls-panel-background): Set the background to pin
to the bottom of its view.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.get pageScaleFactor): Basic getter, copied from mediaControlsApple.
(ControllerIOS.prototype.set pageScaleFactor): The setter that reacts to the page scale
and applies an inverse scaling on the control panel using a transform, and adjusts the
height on the background similarly.

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

GraphicsContext state stack wasting lots of memory when empty.
<https://webkit.org/b/145817>

Reviewed by Geoffrey Garen.

Give the GraphicsContextState stack an inline capacity of 1, and make sure
to free any heap-allocated backing store when the stack goes empty.

The 1 is because HTMLCanvasElement keeps one "save" on the underlying
GraphicsContext at all times, and this prevents those canvases from always
sitting on an empty stack with 16 capacity.

This saves ~520 kB on cnet.com video pages.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::restore):

  • platform/graphics/GraphicsContext.h:
5:45 PM Changeset in webkit [185395] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

SVG Fragment is not rendered if it is the css background image of an HTML element
https://bugs.webkit.org/show_bug.cgi?id=91790

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

To show an SVG fragment, the SVGImage has to scrollToFragment() using
the resource url. The changes http://trac.webkit.org/changeset/164804
and http://trac.webkit.org/changeset/164983 set the url of SVGImage to
to be used later in SVGImage::draw(). The problem is the SVGImage url
is only set when it is the src of an <img> tag. We did not do the same
thing when the SVGImage is the css background image of an HTML element.

The fix is to set the url of the SVGImage always when it's created by
the CachedImage. The CachedImage must have a valid url when the SVGImage
is created.

Test: svg/css/svg-resource-fragment-identifier-background.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::load):
(WebCore::CachedImage::checkShouldPaintBrokenImage):
Replace the calls resourceRequest().url() and m_resourceRequest.url() by
calling url() since they are all the same.

(WebCore::CachedImage::createImage): Pass the resource url to SVGImage
and change ImageObserver& by ImageObserver*, since null is not legal.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::SVGImage):

  • svg/graphics/SVGImage.h: Add a url parameter to SVGImage constructor.
  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::findImageForRenderer): Add a new helper function.

(WebCore::SVGImageCache::imageSizeForRenderer):
(WebCore::SVGImageCache::imageForRenderer): Code clean up.

  • svg/graphics/SVGImageCache.h: Make imageForRenderer() const.
  • svg/graphics/SVGImageForContainer.cpp: Remove unneeded header file.

LayoutTests:

  • svg/css/svg-resource-fragment-identifier-background-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-background.html: Added.

Ensure that the SVG fragment is displayed correctly when it's used as a
css background image.

5:43 PM Changeset in webkit [185394] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Add support for toggling playback in MediaSessions and MediaSessionManagers.
https://bugs.webkit.org/show_bug.cgi?id=145822

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-09
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp: Toggle playback of all active media elements.

(WebCore::MediaSession::togglePlayback):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionManager.cpp: Toggle playback of all media sessions as described in the Media Session spec.

(WebCore::MediaSessionManager::togglePlayback):

  • Modules/mediasession/MediaSessionManager.h:
4:49 PM Changeset in webkit [185393] by Darin Adler
  • 5 edits in trunk

Takes two delete key presses to delete pasted emoji up-pointing index finger with skin tone
https://bugs.webkit.org/show_bug.cgi?id=145823

Reviewed by Anders Carlsson.

Source/WebCore:

Tests: editing/deleting/delete-emoji.html

  • rendering/RenderText.cpp:

(WebCore::isHangulLVT): Use constants instead of macros. Also changed to take a UChar since
the Hangul processing can work on UTF-16 code unit at a time and doesn't have to handle
surrogate pairs.
(WebCore::isMark): Use U_GC_M_MASK instead of writing the algorithm out another way.
(WebCore::isInArmenianToLimbuRange): Added.
(WebCore::RenderText::previousOffsetForBackwardDeletion): Refactored for clarity and to use
the U16_PREV macro instead of doing what it does in a sloppier way. Added code to allow a
variation selector before an emoji modifier to fix the bug. Changed Hangul logic to work a
code unit at a time, since it can, to use an enum class, and to use constants rather than
all capital macros. Also changed the "dumb" case to use a more appropriate ICU macro.

LayoutTests:

  • editing/deleting/delete-emoji-expected.txt: Updated to expect a little more testing.
  • editing/deleting/delete-emoji.html: Added a test case and streamlined the test a bit.
4:24 PM Changeset in webkit [185392] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

feComposite filter does not clip the paint rect to its effect rect when the operator is 'in' or 'atop'
https://bugs.webkit.org/show_bug.cgi?id=137856

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-06-09
Reviewed by Darin Adler.

Source/WebCore:

There was bug in calculating the absolutePaintRect of the feComposite filter
when the operator is equal to 'in' or 'atop'. The absolutePaintRect was set
to the absolutePaintRect of the background FilterEffect which is correct.
What was missing is clipping this rectangle to the maxEffectRect of the
filter which we do for other operators.

Tests: svg/filters/feComposite-background-rect-control-operators.svg

  • platform/graphics/IntRect.h:

(WebCore::operator-=):
(WebCore::operator-): Add new operators to IntRect.

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::determineAbsolutePaintRect): Make sure the filter
absolutePaintRect is clipped to maxEffectRect for all operators.

(WebCore::FEComposite::platformApplySoftware): Code clean-up.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::determineAbsolutePaintRect): Move the clipping
part to a separate function.

(WebCore::FilterEffect::clipAbsolutePaintRect): Clip the absolutePaintRect
to the maxEffectRect of the filter.

  • platform/graphics/filters/FilterEffect.h:

LayoutTests:

  • svg/filters/feComposite-background-rect-control-operators-expected.svg: Added.
  • svg/filters/feComposite-background-rect-control-operators.svg: Added.

Ensure the painting rect of the feComposite filter with operator 'in' or
'atop' is clipped to its bounding rectangle

4:22 PM Changeset in webkit [185391] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin):

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

Change the PluginProcessManager data fetching function to take a completion handler
https://bugs.webkit.org/show_bug.cgi?id=145821

Reviewed by Sam Weinig.

  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::fetchWebsiteData):
(WebKit::PluginProcessManager::getSitesWithData): Deleted.

  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::generateCallbackID):
(WebKit::PluginProcessProxy::~PluginProcessProxy):
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didFinishLaunching):
(WebKit::PluginProcessProxy::didGetSitesWithData):
(WebKit::PluginProcessProxy::getSitesWithData): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin):

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

Implement MediaSessionManager to keep track of all MediaSessions.
https://bugs.webkit.org/show_bug.cgi?id=145806

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-09
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Add ourselves to the MediaSessionManager upon construction.
(WebCore::MediaSession::~MediaSession): Remove ourselves from the MediaSessionManager before destruction.

  • Modules/mediasession/MediaSessionManager.cpp: Added to keep track of all living MediaSessions.

(WebCore::MediaSessionManager::singleton):
(WebCore::MediaSessionManager::addMediaSession):
(WebCore::MediaSessionManager::removeMediaSession):

  • Modules/mediasession/MediaSessionManager.h: Added.
  • WebCore.xcodeproj/project.pbxproj: Added new MediaSessionManager sources.
3:20 PM Changeset in webkit [185388] by ryuan.choi@navercorp.com
  • 5 edits in trunk/Source/WebCore

[CoordinatedGraphics] Remove RefCounted from Tile
https://bugs.webkit.org/show_bug.cgi?id=145788

Reviewed by Darin Adler.

Since r185140, Tile does not need to be RefCounted.

No new tests, no behavior changes.

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

(WebCore::Tile::create): Deleted.

  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::invalidate):
(WebCore::TiledBackingStore::updateTileBuffers): Simplifies not to use unnecessary Vector.
(WebCore::TiledBackingStore::coverageRatio):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::resizeEdgeTiles):
(WebCore::TiledBackingStore::setKeepRect):
(WebCore::TiledBackingStore::tileAt): Deleted one line wrapper.
(WebCore::TiledBackingStore::setTile): Ditto.
(WebCore::TiledBackingStore::removeTile): Ditto.

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
3:15 PM Changeset in webkit [185387] by Chris Dumez
  • 12 edits in trunk/Source

Allow one sync GC per gcTimer interval on critical memory pressure warning
https://bugs.webkit.org/show_bug.cgi?id=145773

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

On critical memory pressure warning, we were calling GCController::garbageCollectSoon(),
which does not offer any guarantee on when the garbage collection will actually take
place.

On critical memory pressure, we need to free up memory as soon as possible to avoid
getting killed so this is an issue. Also, the fact that we clear the PageCache on
critical memory pressure means a GC would likely be useful, even if the last
collection did not free much memory.

This patch adds a new GCController::garbageCollectNowIfNotDoneRecently() API that allows
one synchronous GC per gcTimer interval on critical memory pressure warning. This makes
us more responsive to critical memory pressure and avoids doing synchronous GCs too
often.

  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):

  • heap/FullGCActivityCallback.h:

(JSC::GCActivityCallback::createFullTimer):

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::collectAllGarbageIfNotDoneRecently):

  • heap/Heap.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doWork): Deleted.

  • heap/IncrementalSweeper.h:

Drop fullSweep() API as it no longer seems useful. garbageCollectNow()
already does a sweep after the full collection.

Source/WebCore:

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectNowIfNotDoneRecently):

Add new GCController::garbageCollectNowIfNotDoneRecently() API that
allows one synchronous GC per full GC timer interval. If called more
than once per interval, it becomes equivalent to garbageCollectSoon()
and merely accelerates the next collection.

  • bindings/js/GCController.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Call the new GCController::garbageCollectNowIfNotDoneRecently() on
critical memory pressure instead of garbageCollectionSoon() to try
as do a synchronous GC if one wasn't already done recently.
Also drop call to fullSweep() as GCController::garbageCollectNow*()
already do a sweep after the collection.

3:12 PM Changeset in webkit [185386] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Add code to keep track of plug-in data host names in website data records
https://bugs.webkit.org/show_bug.cgi?id=145818

Reviewed by Andreas Kling.

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::encode):
(WebKit::WebsiteData::decode):

  • Shared/WebsiteData/WebsiteData.h:
  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForPluginDataHostName):
(WebKit::WebsiteDataRecord::addPluginDataHostName):
(WebKit::WebsiteDataRecord::displayNameForCookieHostName): Deleted.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):

3:01 PM Changeset in webkit [185385] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.11

New tag.

3:01 PM Changeset in webkit [185384] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.6

New tag.

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

Add Plug-in type declarations to WKWebsiteDataRecord and friends
https://bugs.webkit.org/show_bug.cgi?id=145816

Reviewed by Andreas Kling.

  • Shared/WebsiteData/WebsiteDataTypes.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
2:25 PM Changeset in webkit [185382] by akling@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] CodeBlock::m_constantRegisters should be sized-to-fit.
<https://webkit.org/b/145784>

Reviewed by Darin Adler.

Spotted this Vector looking chubby on cnet.com, with 1.23 MB of memory
allocated below CodeBlock::setConstantRegisters().

Use resizeToFit() instead since we know the final size up front.
Also removed some unused functions that operated on this constants vector
and the corresponding one in UnlinkedCodeBlock.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addOrFindConstant): Deleted.
(JSC::CodeBlock::findConstant): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::numberOfConstantRegisters): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::addOrFindConstant): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::numberOfConstantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::getConstant): Deleted.

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

[JSC] Polymorphic{Get,Put}ByIdList::addAccess() should optimize for size, not speed.
<https://webkit.org/b/145786>

Reviewed by Darin Adler.

These functions already contained comments saying they optimize for size over speed,
but they were using Vector::resize() which adds the usual slack for faster append().

Switch them over to using Vector::resizeToFit() instead, which makes the Vector
allocate a perfectly sized backing store.

Spotted 670 kB of the GetById ones, and 165 kB of PutById on cnet.com, so these
Vectors are definitely worth shrink-wrapping.

  • bytecode/PolymorphicGetByIdList.cpp:

(JSC::PolymorphicGetByIdList::addAccess):

  • bytecode/PolymorphicPutByIdList.cpp:

(JSC::PolymorphicPutByIdList::addAccess):

2:21 PM Changeset in webkit [185380] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSPropertyNameEnumerator's property name vector should be sized-to-fit.
<https://webkit.org/b/145787>

Reviewed by Darin Adler.

Saw 108 kB worth of JSPropertyNameEnumerator backing store Vectors on cnet.com.
Use Vector::resizeToFit() since we know the perfect size up front.

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::finishCreation):

2:20 PM Changeset in webkit [185379] by akling@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

FunctionExecutable::isCompiling() is weird and wrong.
<https://webkit.org/b/145689>

Reviewed by Geoffrey Garen.

Remove FunctionExecutable::isCompiling() and the clearCodeIfNotCompiling() style
functions that called it before throwing away code.

isCompiling() would consider the executable to be "compiling" if it had a CodeBlock
but no JITCode. In practice, every executable gets a JITCode at the same time as it
gets a CodeBlock, by way of prepareForExecutionImpl().

  • debugger/Debugger.cpp:
  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode):
(JSC::Heap::deleteAllUnlinkedFunctionCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::TypeRecompiler::visit):

  • runtime/Executable.cpp:

(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilation):
(JSC::FunctionExecutable::clearCodeIfNotCompiling): Deleted.
(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilationIfNotCompiling): Deleted.

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

(JSC::StackPreservingRecompiler::visit):

2:19 PM Changeset in webkit [185378] by Darin Adler
  • 1 edit in trunk/Source/WebCore/ChangeLog

no, it was not reviewed

2:18 PM Changeset in webkit [185377] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Follow-up fix for:
JavaScript bindings are unnecessarily checking for impossible empty JSValue arguments
https://bugs.webkit.org/show_bug.cgi?id=145811

Reviewed by Antti Koivisto.

There was one unusual case in the bindings generator that was depending on this.

  • bindings/js/JSDOMBinding.h:

(WebCore::argumentOrNull): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck): Stop using argumentOrNull.

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Updated.
  • bindings/scripts/test/JS/JSTestObj.cpp: Updated.
1:23 PM Changeset in webkit [185376] by bshafiei@apple.com
  • 18 edits
    3 copies in branches/safari-600.1.4.16-branch

Merged r183682. rdar://problem/21290700

1:22 PM Changeset in webkit [185375] by bshafiei@apple.com
  • 18 edits
    3 copies in branches/safari-600.7-branch

Merged r183682. rdar://problem/21290693

1:12 PM Changeset in webkit [185374] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185262): NetworkCache is in wrong location on OS X
https://bugs.webkit.org/show_bug.cgi?id=145812

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):

Make sure static functions that use NSUserDefaults call registerUserDefaultsIfNeeded() first.

12:55 PM Changeset in webkit [185373] by Darin Adler
  • 15 edits in trunk/Source/WebCore

JavaScript bindings are unnecessarily checking for impossible empty JSValue arguments
https://bugs.webkit.org/show_bug.cgi?id=145811

Reviewed by Antti Koivisto.

At some point, someone who didn't understand JSValue very well added checks for
isEmpty (and the function isEmpty itself) in JavaScript bindings. But the engine
never would pass an empty JSValue to a binding; that's used only inside the
engine itself. I think this was done by some Google V8 experts a while back, so
it's not entirely surprising they didn't understand this. But we don't want to
keep all that unneeded code.

  • bindings/js/JSAudioTrackCustom.cpp:

(WebCore::JSAudioTrack::setKind): Removed the isEmpty clause here. I presume this
was copied and pasted from script-generated bindings. While I was at it, I used a
slightly more efficient code path that avoids doing a ref/deref on the string by
using auto&. That's trickier to do correctly for functions with more than one
argument, so I didn't do it in the bindings generator yet.
(WebCore::JSAudioTrack::setLanguage): Ditto.

  • bindings/js/JSTextTrackCustom.cpp:

(WebCore::JSTextTrack::setKind): Ditto.
(WebCore::JSTextTrack::setLanguage): Ditto.

  • bindings/js/JSVideoTrackCustom.cpp:

(WebCore::JSVideoTrack::setKind): Ditto.
(WebCore::JSVideoTrack::setLanguage): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Use "=" syntax instead of constructor style syntax for
the argument processing. I think this is more readable.
(GenerateParametersCheck): For the enum code path, did the more efficient auto&
idiom to avoid ref/deref on a string. For the toExistingAtomicString path,
restructured so we don't have to check the flag indicating that something is atomic.
Later we could also avoid the ref/deref; added a FIXME about that.
(GetNativeType): Use String, not const String, for local variables. Sure, the
string is const, but so is every other local variable type we use! No need to be
wordy about it.
(JSValueToNative): Removed the uneeded calls to isEmpty. Since the call sites no
longer use construction syntax, used initializer syntax style for a couple classes
that are constructed with multiple arguments.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Updated.
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
  • bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
12:29 PM Changeset in webkit [185372] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix unused private field warning in GraphicsLayerUpdater.h
https://bugs.webkit.org/show_bug.cgi?id=145757

Reviewed by Darin Adler.

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/GraphicsLayerUpdater.h:
12:29 PM Changeset in webkit [185371] by rniwa@webkit.org
  • 5 edits in trunk/Tools

run-benchmark should either checkout JetStream 1.0.1 or support running the latest version
https://bugs.webkit.org/show_bug.cgi?id=145764

Reviewed by Darin Adler.

Added the support for checkout a subversion directory in run-benchmark and used in the plans for
JetStream and SunSpider.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder):
(GenericBenchmarkBuilder.prepare): Instead of taking each argument from benchmark plan, just accept
the whole JSON as the input.
(GenericBenchmarkBuilder._checkoutWithSubverion): Added.
(GenericBenchmarkBuilder._applyPatch): Check the existence of benchmark_patch in prepare() instead.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.execute): Removed the check for having either 'local_copy' or 'remote_archive' in
a benchmark plan now that it's checkedi in GenericBenchmarkBuilder.prepare.

  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan:
  • Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan:
11:42 AM Changeset in webkit [185370] by Yusuke Suzuki
  • 41 edits
    9 adds in trunk

Introduce getter definition into static hash tables and use it for getters in RegExp.prototype.
https://bugs.webkit.org/show_bug.cgi?id=145705

Reviewed by Darin Adler.

Source/JavaScriptCore:

In this patch, we introduce Accessor type into property tables.
With Accessor type, create_hash_table creates a static getter property.
This getter property is reified as the same to the static functions.

In the mean time, we only support getter because putEntry and lookupPut
only work with null setter currently. However, in the spec, there's
no need to add static setter properties. So we will add it if it becomes
necessary in the future.

And at the same time, this patch fixes the issue 145738. Before this patch,
putEntry in JSObject::deleteProperty adds undefined property if
isValidOffset(...) is false (deleted). As the result, deleting twice
revives the property with undefined value.

If the static functions are reified and the entry is
BuiltinOrFunctionOrAccessor, there's no need to execute putEntry with
static hash table entry. They should be handled in the normal structure's
looking up because they should be already reified. So added guard for this.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • create_hash_table:
  • runtime/JSObject.cpp:

(JSC::getClassPropertyNames):
(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::reifyStaticFunctionsForDelete):

  • runtime/Lookup.cpp:

(JSC::reifyStaticAccessor):
(JSC::setUpStaticFunctionSlot):

  • runtime/Lookup.h:

(JSC::HashTableValue::propertyGetter):
(JSC::HashTableValue::propertyPutter):
(JSC::HashTableValue::accessorGetter):
(JSC::HashTableValue::accessorSetter):
(JSC::getStaticPropertySlot):
(JSC::getStaticValueSlot):
(JSC::putEntry):
(JSC::reifyStaticProperties):

  • runtime/PropertySlot.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::regExpObjectGlobal): Deleted.
(JSC::regExpObjectIgnoreCase): Deleted.
(JSC::regExpObjectMultiline): Deleted.
(JSC::appendLineTerminatorEscape<LChar>): Deleted.
(JSC::appendLineTerminatorEscape<UChar>): Deleted.
(JSC::regExpObjectSourceInternal): Deleted.
(JSC::regExpObjectSource): Deleted.

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):
(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::appendLineTerminatorEscape<LChar>):
(JSC::appendLineTerminatorEscape<UChar>):
(JSC::regExpProtoGetterSourceInternal):
(JSC::regExpProtoGetterSource):

  • tests/stress/static-function-delete.js: Added.

(shouldBe):

  • tests/stress/static-function-put.js: Added.

(shouldBe):

  • tests/stress/static-getter-delete.js: Added.

(shouldBe):
(shouldThrow):

  • tests/stress/static-getter-descriptors.js: Added.

(shouldBe):

  • tests/stress/static-getter-enumeration.js: Added.

(shouldBe):

  • tests/stress/static-getter-get.js: Added.

(shouldBe):

  • tests/stress/static-getter-in-names.js: Added.

(shouldBe):

  • tests/stress/static-getter-names.js: Added.

(shouldBe):

  • tests/stress/static-getter-put.js: Added.

(shouldBe):
(shouldThrow):

LayoutTests:

Adjust RegExp.prototype and instance's getter layout.
This is a breaking change from ES5.
So ES5 conformance tests like sputnik is needed to be fixed.

  • ietestcenter/Javascript/15.2.3.3-4-212-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-213-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-214-expected.txt:
  • ietestcenter/Javascript/15.2.3.3-4-215-expected.txt:
  • ietestcenter/Javascript/TestCases/15.2.3.3-4-212.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-213.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-214.js:

(ES5Harness.registerTest):

  • ietestcenter/Javascript/TestCases/15.2.3.3-4-215.js:

(ES5Harness.registerTest):

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/mozilla/strict/15.10.7-expected.txt:
  • js/mozilla/strict/script-tests/15.10.7.js:
  • js/pic/cached-named-property-getter.html:
  • js/resources/getOwnPropertyDescriptor.js:

(.get descriptorShouldBe):

  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.1_source/S15.10.7.1_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.2_global/S15.10.7.2_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.3_ignoreCase/S15.10.7.3_A9.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A10.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A8.html:
  • sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.7/15.10.7.4_multiline/S15.10.7.4_A9.html:
11:31 AM Changeset in webkit [185369] by Yusuke Suzuki
  • 6 edits
    2 adds in trunk

Crash when passing Symbol to NPAPI plugin objects
https://bugs.webkit.org/show_bug.cgi?id=145798

Reviewed by Darin Adler.

Source/WebCore:

Test: plugins/npruntime/script-object-with-symbols.html

For C bridge APIs, we add guards for symbols.
This is the same to the existing guards in Objective-C APIs.

  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::methodNamed):
(JSC::Bindings::CClass::fieldNamed):

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::methodNamed):
(JSC::Bindings::ObjcClass::fieldNamed):
(JSC::Bindings::ObjcClass::fallbackObject):

Source/WebKit2:

When the symbol is passed, propertyName.publicName() becomes nullptr.
So dereferencing it causes null dereference errors.
At first, this bug appears in the https://bugs.webkit.org/show_bug.cgi?id=145556,
plugin[@@toStringTag] ("string" + plugin) causes SEGV in plugins/embed-inside-object.html test.

This patch avoids it by early returning when the symbols are passed.
Methods for symbols are not implemented in the NPObject side, so it works correctly.

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::npIdentifierFromIdentifier):
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::getOwnPropertySlot):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):

LayoutTests:

  • plugins/npruntime/script-object-with-symbols-expected.txt: Added.
  • plugins/npruntime/script-object-with-symbols.html: Added.
11:03 AM Changeset in webkit [185368] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] JSString::getIndex() should avoid reifying substrings.
<https://webkit.org/b/145803>

Reviewed by Darin Adler.

Implement getIndex() using JSString::view(), which cuts it down to a one-liner
and also avoids reifying substrings.

I saw 178 kB of reified substrings below operationGetByVal -> getIndex()
on cnet.com, so this should help.

  • runtime/JSString.cpp:

(JSC::JSRopeString::getIndexSlowCase): Deleted.

  • runtime/JSString.h:

(JSC::JSString::getIndex):

11:01 AM Changeset in webkit [185367] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] String.prototype.indexOf() should use StringView.
<https://webkit.org/b/145351>

Reviewed by Darin Adler.

Use StringView::find() to implement String.prototype.indexOf().
This avoids reifying the needle and haystack JSStrings in case they
are substrings.

Reduces malloc memory by ~190 kB on cnet.com.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIndexOf):

10:11 AM Changeset in webkit [185366] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[SOUP] Network Cache: Give more priority to reads over writes in IO WorkQueue
https://bugs.webkit.org/show_bug.cgi?id=145791

Reviewed by Sergio Villar Senin.

Keep using G_PRIORITY_DEFAULT for reads, but use
G_PRIORITY_DEFAULT_IDLE for writes now.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::outputStreamWriteReadyCallback): Use
G_PRIORITY_DEFAULT_IDLE for write async operations.
(WebKit::NetworkCache::IOChannel::write): Pass
G_PRIORITY_DEFAULT_IDLE to runTaskInQueue().

10:07 AM Changeset in webkit [185365] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[SOUP] Network Cache: run the IO completion handler in the given queue instead of the whole operation
https://bugs.webkit.org/show_bug.cgi?id=145797

Reviewed by Žan Doberšek.

I misunderstood what the WorkQueue parameter meant in the IO
channel operations. It's the queue where the completion handler
should be run, not the whole operation. Since our operations are
already non-blocking, we can just run the read/writes in the main
thread, and schedule the completion handler in the given work
queue when the operation finishes.

  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):

9:56 AM Changeset in webkit [185364] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove more unused SPI methods
https://bugs.webkit.org/show_bug.cgi?id=145804

Reviewed by Simon Fraser.

  • Misc/WebNSURLRequestExtras.h:
  • Misc/WebNSURLRequestExtras.m:

(-[NSURLRequest _web_HTTPReferrer]): Deleted.
(-[NSURLRequest _web_HTTPContentType]): Deleted.
(-[NSURLRequest _web_isConditionalRequest]): Deleted.

8:26 AM Changeset in webkit [185363] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
6:26 AM Changeset in webkit [185362] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r185357): Fix build for iOS 8.x

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(fallbackIconForFile): Add cast prior to iOS 9.

3:30 AM Changeset in webkit [185361] by Gyuyoung Kim
  • 1 edit
    1 delete in trunk/Tools

Remove ewstool scripts used by chromium port
https://bugs.webkit.org/show_bug.cgi?id=145789

Reviewed by Csaba Osztrogonác.

  • EWSTools/GoogleComputeEngine/build-chromium-ews.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-commit-queue.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh: Removed.
  • EWSTools/GoogleComputeEngine/build-feeder-style-sheriffbot.sh: Removed.
  • EWSTools/GoogleComputeEngine/findzone.sh: Removed.
3:03 AM Changeset in webkit [185360] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix a crash on MiniBrowser when running on debug mode
https://bugs.webkit.org/show_bug.cgi?id=145793

Reviewed by Carlos Garcia Campos.

r185314 missed to initialize parameters.diskCacheDirectory with configuration's one.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

2:56 AM Changeset in webkit [185359] by Michał Pakuła vel Rutka
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json:
2:46 AM Changeset in webkit [185358] by Csaba Osztrogonác
  • 20 edits in trunk

[cmake] Fix the style issues in cmake project files
https://bugs.webkit.org/show_bug.cgi?id=145755

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKit2:

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:

Source/WTF:

  • wtf/CMakeLists.txt:

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
1:18 AM Changeset in webkit [185357] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] UI process memory spike, hang when uploading a very large JPEG

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

When uploading an image, we generate a thumbnail to use for an icon
that sits next to the control. To do this, we load the image and draw
it into a thumbnail-sized canvas. This can be very expensive for large
images.

To fix this, we'll use CGImageSource API, which will allow us to get
any existing thumbnail that exists in the source file.

Reviewed by Darin Adler.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(squareCropRectForSize):
Use std::round, based on Darin's review feedback that a) rintf is
incorrect in 64-bit systems where CGFloat is a double, b) rintf uses a
variable rounding mode, which is undesirable.
(squareImage):
Changed to take a CGImageRef.
Use RetainPtr and +[UIImage imageWithCGImage:] to match other code in
this file.
(thumbnailSizedImageForImage):
Changed to take a CGImageRef and to use iconSideLength.
(iconForImageFile):
Create an image source for the file, then use CGImageSource API to
generate a thumbnail.
(-[_WKImageFileUploadItem initWithFileURL:originalImage:]): Deleted.
(-[_WKImageFileUploadItem displayImage]):
Use iconForImageFile() rather than trying to generate an icon from the
UIImage.
(-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]):
Removed originalImage parameter; _WKImageFileUploadItem no longer uses
it.
(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):

12:45 AM Changeset in webkit [185356] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

[Streams API] ReadableJSStream should handle JS source getters that throw
https://bugs.webkit.org/show_bug.cgi?id=145600

Reviewed by Darin Adler.

Source/WebCore:

Checking whether there is an exception when trying to access to a source method.
If so, rethrowing it in case of "start".

Refactoring of code to prepare pulling, cancelling and additional parameter handling in ReadableStream construtor.

Fixed the case of ReadableStream constructor called with an undefined parameter.

Covered by rebased test expectation.

  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream): Refactoring to group all parameter check and exception handling in ReadableJSStream::create.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::invoke): Added method to be used also for pulling and cancelling.
(WebCore::ReadableJSStream::doStart):
(WebCore::ReadableJSStream::create):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:

Jun 8, 2015:

10:29 PM Changeset in webkit [185355] by bshafiei@apple.com
  • 8 edits
    2 deletes in tags/Safari-601.1.34.2

Merged r185335.

10:26 PM Changeset in webkit [185354] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.34.2/Source

Versioning.

10:21 PM Changeset in webkit [185353] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

Update iOS TestExpectations files

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:12 PM Changeset in webkit [185352] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34.2

New tag.

9:25 PM Changeset in webkit [185351] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Fix a typo in r185345.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.closeBrowsers):

8:10 PM Changeset in webkit [185350] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Made MicroTask.h a project header.

Rubber-stamped by Anders Carlsson.

  • WebCore.xcodeproj/project.pbxproj: Demoted MicroTask.h from Public to Project. WebCore

doesn’t have public headers, and this header isn’t used by WebKit.

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

Web Inspector: Clearing active Timeline recording should stop capturing
https://bugs.webkit.org/show_bug.cgi?id=145767

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
Stop capturing if necessary.

7:59 PM Changeset in webkit [185348] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Removed WebDragSourceActionAttachment from the WebDragSourceAction enum.

Rubber-stamped by Anders Carlsson.

  • WebView/WebUIDelegate.h: Removed the value. It was added in r181760 and never used.
7:31 PM Changeset in webkit [185347] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Use generics in framework headers
https://bugs.webkit.org/show_bug.cgi?id=145781

Reviewed by Sam Weinig.

  • mac/postprocess-framework-headers.sh: Use the parameter to WK_ARRAY and WK_SET.
7:17 PM Changeset in webkit [185346] by Gyuyoung Kim
  • 51 edits in trunk/Source

Purge PassRefPtr in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=145750

Source/JavaScriptCore:

As a step to purge PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

Reviewed by Darin Adler.

  • API/JSClassRef.cpp:

(OpaqueJSClass::createNoAutomaticPrototype):

  • API/JSClassRef.h:
  • API/JSContextRef.cpp:
  • API/JSScriptRef.cpp:

(OpaqueJSScript::create):

  • API/JSStringRef.cpp:

(JSStringCreateWithCharacters):
(JSStringCreateWithUTF8CString):

  • API/OpaqueJSString.cpp:

(OpaqueJSString::create):

  • API/OpaqueJSString.h:

(OpaqueJSString::create):

  • bytecompiler/StaticPropertyAnalysis.h:

(JSC::StaticPropertyAnalysis::create):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::create):

  • dfg/DFGToFTLDeferredCompilationCallback.cpp:

(JSC::DFG::ToFTLDeferredCompilationCallback::create):

  • dfg/DFGToFTLDeferredCompilationCallback.h:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:

(JSC::DFG::Ref<ToFTLForOSREntryDeferredCompilationCallback>ToFTLForOSREntryDeferredCompilationCallback::create):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::create): Deleted.

  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::create):
(JSC::DFG::ensureGlobalDFGWorklist):
(JSC::DFG::ensureGlobalFTLWorklist):

  • dfg/DFGWorklist.h:
  • heap/EdenGCActivityCallback.h:

(JSC::GCActivityCallback::createEdenTimer):

  • heap/FullGCActivityCallback.h:

(JSC::GCActivityCallback::createFullTimer):

  • heap/GCActivityCallback.h:
  • inspector/InjectedScriptHost.h:
  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::create):

  • inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::create):

  • inspector/ScriptArguments.h:
  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::createSelfManagedRoutine):

  • jit/JITToDFGDeferredCompilationCallback.cpp:

(JSC::JITToDFGDeferredCompilationCallback::create):

  • jit/JITToDFGDeferredCompilationCallback.h:
  • jsc.cpp:

(jscmain):

  • parser/NodeConstructors.h:

(JSC::ArrayPatternNode::create):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):

  • parser/Nodes.cpp:

(JSC::FunctionParameters::create):

  • parser/Nodes.h:
  • parser/SourceProvider.h:

(JSC::StringSourceProvider::create):

  • profiler/Profile.cpp:

(JSC::Profile::create):

  • profiler/Profile.h:
  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::create):

  • profiler/ProfileGenerator.h:
  • profiler/ProfileNode.h:

(JSC::ProfileNode::create):

  • runtime/DataView.cpp:

(JSC::DataView::create):

  • runtime/DataView.h:
  • runtime/DateInstanceCache.h:

(JSC::DateInstanceData::create):

  • runtime/JSPromiseReaction.cpp:

(JSC::createExecutePromiseReactionMicrotask):

  • runtime/JSPromiseReaction.h:
  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArrayData::create):

  • runtime/TypeSet.h:

(JSC::StructureShape::create):
(JSC::TypeSet::create):

  • runtime/TypedArrayBase.h:

(JSC::TypedArrayBase::create):
(JSC::TypedArrayBase::createUninitialized):
(JSC::TypedArrayBase::subarrayImpl):

  • runtime/VM.cpp:

(JSC::VM::createContextGroup):
(JSC::VM::create):
(JSC::VM::createLeaked):

  • runtime/VM.h:
  • yarr/RegularExpression.cpp:

(JSC::Yarr::RegularExpression::Private::create):

Source/WebCore:

Reviewed by Darin Adler.

As a step to purge PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr.

No new tests, no behavior changes.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

5:47 PM Changeset in webkit [185345] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Yet another unreviewed build fix :(

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

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

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

It should be possible to hoist all constants in DFG SSA
https://bugs.webkit.org/show_bug.cgi?id=145769

Reviewed by Geoffrey Garen.

It's sometimes somewhat more efficient, and convenient, to have all constants at the
top of the root block. We don't require this as an IR invariant because too many phases
want to be able to insert constants in weird places. But, this phase will be great for
preparing for https://bugs.webkit.org/show_bug.cgi?id=145768.

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

(JSC::DFG::performConstantHoisting):

  • dfg/DFGConstantHoistingPhase.h: Added.
  • dfg/DFGPlan.cpp:

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

5:29 PM Changeset in webkit [185343] by Alan Bujtas
  • 5 edits
    4 adds in trunk

Subpixel rendering: Clip-path does not work properly on subpixel positions.
https://bugs.webkit.org/show_bug.cgi?id=145749
rdar://problem/20824305

Reviewed by Simon Fraser.

This patch ensures that clip-path is device pixel snapped both for composited and
non-composited content.

Source/WebCore:

Tests: compositing/masks/compositing-clip-path-on-subpixel-position.html

fast/masking/clip-path-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateMaskingLayerGeometry):

LayoutTests:

  • compositing/masks/compositing-clip-path-on-subpixel-position-expected.html: Added.
  • compositing/masks/compositing-clip-path-on-subpixel-position.html: Added.
  • fast/masking/clip-path-on-subpixel-position-expected.html: Added.
  • fast/masking/clip-path-on-subpixel-position.html: Added.
5:28 PM Changeset in webkit [185342] by Chris Dumez
  • 16 edits in trunk/Source

Access GCController instance via GCController::singleton() instead of a free function
https://bugs.webkit.org/show_bug.cgi?id=145776

Reviewed by Darin Adler.

Access GCController instance via GCController::singleton() instead of a
free function as per coding style and for consistency with other
singleton classes in the codebase.

Source/WebCore:

  • bindings/js/GCController.cpp:

(WebCore::GCController::singleton):
(WebCore::gcController): Deleted.

  • bindings/js/GCController.h:
  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::clear):

  • bindings/js/ScriptController.cpp:

(WebCore::collectGarbageAfterWindowShellDestruction):

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Source/WebKit/mac:

  • Misc/WebCoreStatistics.mm:

(+[WebCoreStatistics garbageCollectJavaScriptObjects]):
(+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:]):
(+[WebCoreStatistics setJavaScriptGarbageCollectorTimerEnabled:]):

  • WebView/WebView.mm:

(+[WebView garbageCollectNow]):
(+[WebView discardAllCompiledCode]):
(-[WebView _close]):

Source/WebKit/win:

  • WebCoreStatistics.cpp:

(WebCoreStatistics::garbageCollectJavaScriptObjects):
(WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
(WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled):

  • WebJavaScriptCollector.cpp:

(WebJavaScriptCollector::collect):
(WebJavaScriptCollector::collectOnAlternateThread):

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::garbageCollectJavaScriptObjects):
(WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::terminate):
(WebKit::WebProcess::didClose):
(WebKit::WebProcess::garbageCollectJavaScriptObjects):
(WebKit::WebProcess::setJavaScriptGarbageCollectorTimerEnabled):

5:23 PM Changeset in webkit [185341] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

Mouse release on AutoFill button activates it; should only activate on click
https://bugs.webkit.org/show_bug.cgi?id=145774
<rdar://problem/21069245>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixes an issue where a click event was dispatched to a shadow tree node regardless of whether
both the mouse press and mouse release were targeted at it. In particular, releasing the mouse
on the AutoFill button activates it regardless of whether the mouse was pressed on it.

Currently we always dispatch a click event to a node n where the mouse was released when n is
in a shadow tree regardless of whether the mouse was pressed on n. Instead we should only
dispatch a click event to n if the mouse was pressed and released on n. If n is a shadow tree
descendant, the mouse was released on n, and n never received a mouse press then we should
dispatch the click event at the shadow host element of n to preserve the illusion to web
developers that the shadow host element is a single element.

Test: fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button.html

  • page/EventHandler.cpp:

(WebCore::targetNodeForClickEvent): Added; returns the target node for the DOM click event.
(WebCore::EventHandler::handleMouseReleaseEvent): Modified to use dispatch the DOM click event
at the node returned by targetNodeForClickEvent().
(WebCore::mouseIsReleasedOnPressedElement): Deleted.

LayoutTests:

Add test to ensure we only dispatch a click event at the HTML input element when pressing
on the editable portion of the input element and releasing the mouse on the AutoFill button.

  • fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button-expected.txt: Added.
  • fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button.html: Added.
5:21 PM Changeset in webkit [185340] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix. Initialize result in the case things blow up below.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.execute):

5:16 PM Changeset in webkit [185339] by rniwa@webkit.org
  • 3 edits in trunk/Tools

Partially revert and fix after r185243.

  • Scripts/benchmark_runner/benchmark_runner.py:
  • Scripts/run-benchmark:
4:52 PM Changeset in webkit [185338] by beidson@apple.com
  • 11 edits
    2 copies
    4 adds
    1 delete in trunk/LayoutTests

Fix up the layouttest situation after r185322.
https://bugs.webkit.org/show_bug.cgi?id=145777

Reviewed by Alexey Proskuryakov.

  • js/dom/global-constructors-attributes-expected.txt:
  • js/dom/global-constructors-attributes-idb-expected.txt: Added.
  • js/dom/global-constructors-attributes-idb.html: Copied from LayoutTests/js/dom/global-constructors-attributes.html.
  • js/dom/global-constructors-attributes.html:

Run this test only against IDB* and webkitIDB* constructors:

  • js/dom/script-tests/global-constructors-attributes-idb.js: Copied from LayoutTests/js/dom/script-tests/global-constructors-attributes.js.

(.self.postMessage):
(.self.onconnect.self.postMessage):
(.self.onconnect):
(classNameForObject):
(constructorPropertiesOnGlobalObject):

Don’t run the test against known IDB constructors:

  • js/dom/script-tests/global-constructors-attributes.js:

Update all the various platform-specific results for the main test to remove mentions of IDB.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/TestExpectations:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Removed.
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
  • platform/wk2/js/dom/global-constructors-attributes-idb-expected.txt: Added.
4:44 PM Changeset in webkit [185337] by Chris Dumez
  • 12 edits
    10 adds in trunk

WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145748
<rdar://problem/21226577>

Reviewed by Brady Eidson.

Source/WebCore:

We would sometimes crash when pruning the PageCache because it was
possible for frames to still be loading while in the PageCache and
we would try to stop the load when the CachedFrame is destroyed. This
code path was not supposed to be exercised as we were not supposed to
have pages still loading inside the PageCache.

r185017 made sure we don't insert into the PageCache pages that are
still loading. However, nothing was preventing content from starting
new loads in their 'pagehide' event handlers, *after* the decision
to put the page in the PageCache was made.

This patch prevents content from starting loads from a 'pagehide'
event handler so that we can no longer have content that is loading
inside the PageCache. 'ping' image loads still go through though as
these are specially handled and use PingLoaders.

Tests: http/tests/navigation/image-load-in-pagehide-handler.html

http/tests/navigation/subframe-pagehide-handler-starts-load.html
http/tests/navigation/subframe-pagehide-handler-starts-load2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::handleBeforeUnloadEvent):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::pageDismissalEventBeingDispatched):
(WebCore::FrameLoader::PageDismissalEventType::PageDismissalEventType):
(WebCore::FrameLoader::PageDismissalEventType::operator Page::DismissalType):

Add wrapper class for m_pageDismissalEventBeingDispatched member type.
The wrapper takes care of updating the m_dismissalEventBeingDispatched
member on the Page every time the member on FrameLoader is updated. We
now cache this information on the Page so that clients can cheaply
query if a dismissal event is being dispatched in any of the Page's
frame, without having to traverse the frame tree.

  • loader/ImageLoader.cpp:

(WebCore::pageIsBeingDismissed):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

Abort the load early if we are currently dispatching a 'pagehide'
event. We don't allow new loads at such point because we've already
made the decision to add the Page to the PageCache.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):

  • page/Chrome.cpp:

(WebCore::Chrome::runModal): Deleted.
(WebCore::Chrome::setToolbarsVisible): Deleted.
(WebCore::Chrome::toolbarsVisible): Deleted.
(WebCore::Chrome::runJavaScriptConfirm): Deleted.
(WebCore::Chrome::runJavaScriptPrompt): Deleted.
(WebCore::Chrome::shouldInterruptJavaScript): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::canShowModalDialogNow):

Drop ChromeClient::shouldRunModalDialogDuringPageDismissal() and code
using it as it is unused and I did not think it was worth updating
this code.

  • page/Page.h:

(WebCore::Page::dismissalEventBeingDispatched):
(WebCore::Page::setDismissalEventBeingDispatched):

Add a m_dismissalEventBeingDispatched member to the Page so that we can
easily query if a dismissal event is being dispatched in any of the
frames, without having to traverse the frame tree. I suspect more call
sites of FrameLoader::pageDismissalEventBeingDispatched() may actually
want this but I did not make such change in this patch. It is important
to check all the frames and not simply the current one because a frame's
pagehide event handler may trigger a load in another frame.

LayoutTests:

  • http/tests/navigation/image-load-in-pagehide-handler-expected.txt: Added.
  • http/tests/navigation/image-load-in-pagehide-handler.html: Added.
  • http/tests/navigation/resources/image-load-in-pagehide-handler-2.html: Added.

Add layout test to make sure that ping loads in 'pagehide' handlers are
still going through after this change.

  • http/tests/navigation/resources/frame-do-load.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load-in-subframe.html: Added.
  • http/tests/navigation/resources/frame-pagehide-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load.html: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2-expected.txt: Added.
  • http/tests/navigation/subframe-pagehide-handler-starts-load2.html: Added.

Add layout tests to make sure we don't crash if a frame starts an XHR load
from the 'pagehide' event handler. One of the tests covers the case where a
frame's pagehide handler starts a load in a subframe as this case is
requires a bit more handling.

4:36 PM Changeset in webkit [185336] by commit-queue@webkit.org
  • 48 edits in trunk/Source/WebCore

Replaced 0 with nullptr in WebCore/Modules.
https://bugs.webkit.org/show_bug.cgi?id=145758

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-08
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/battery/BatteryManager.cpp:

(WebCore::BatteryManager::BatteryManager):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::CDM):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::~MediaKeys):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::continueFunction):

  • Modules/indexeddb/IDBCursorBackendOperations.cpp:

(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transactionFinished):

  • Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:

(WebCore::IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl):

  • Modules/indexeddb/IDBEventDispatcher.cpp:

(WebCore::IDBEventDispatcher::dispatch):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::openKeyCursor):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::openCursor):

  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::count):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onSuccess):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::OpenCursorNotifier::cursorFinished):

  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::commit):

  • Modules/indexeddb/IDBTransactionBackendOperations.cpp:

(WebCore::OpenCursorOperation::perform):

  • Modules/indieui/UIRequestEvent.cpp:

(WebCore::UIRequestEventInit::UIRequestEventInit):
(WebCore::UIRequestEvent::UIRequestEvent):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::removeSourceBuffer):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::~SourceBuffer):
(WebCore::SourceBuffer::removedFromMediaSource):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::~MediaStream):

  • Modules/mediastream/MediaStreamEvent.cpp:

(WebCore::MediaStreamEventInit::MediaStreamEventInit):

  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEventInit::MediaStreamTrackEventInit):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::stop):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::contextDestroyed):

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):

  • Modules/notifications/Notification.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::setPlatformSynthesizer):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):

  • Modules/speech/SpeechSynthesisUtterance.cpp:

(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::clearPannerNode):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createMediaStreamSource):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::~MediaElementAudioSourceNode):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::setType):
(WebCore::OscillatorNode::process):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::DatabaseManager):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::DatabaseTracker):

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):

  • Modules/webdatabase/SQLStatementBackend.cpp:

(WebCore::SQLStatementBackend::clearFailureDueToQuota):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::deliverTransactionErrorCallback):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::getNextStatement):

  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::releaseLock):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
(WebCore::ThreadableWebSocketChannelClientWrapper::clearPeer):
(WebCore::ThreadableWebSocketChannelClientWrapper::clearClient):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::stop):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didCloseSocketStream):

  • Modules/websockets/WebSocketFrame.h:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clearScriptExecutionContext):
(WebCore::WebSocketHandshake::readStatusLine):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):

4:31 PM Changeset in webkit [185335] by Chris Fleizach
  • 8 edits
    2 deletes in trunk

AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Unreviewed. Rolling this change out temporarily.

Source/WebCore:

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isDescriptionList):
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers): Deleted.

  • accessibility/AccessibilityList.h:

LayoutTests:

  • accessibility/list-detection-expected.txt:
  • accessibility/list-detection.html:
  • accessibility/list-detection2-expected.txt: Removed.
  • accessibility/list-detection2.html: Removed.
  • platform/gtk/accessibility/list-detection-expected.txt:
  • platform/win/TestExpectations:
4:27 PM Changeset in webkit [185334] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Include IndexedDB databases in -[WKWebsiteDataStore allWebsiteDataTypes]
https://bugs.webkit.org/show_bug.cgi?id=145775

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore allWebsiteDataTypes]):

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

[Mac] Enable AVFoundation by default when QTKit is disabled by default
https://bugs.webkit.org/show_bug.cgi?id=145760

Reviewed by Alexey Proskuryakov.

No new tests, this change makes existing tests pass.

Settings::gAVFoundationEnabled defaults to true.

  • page/Settings.cpp:

(WebCore::invalidateAfterGenericFamilyChange):

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

Unskip http/tests/misc/webtiming-ssl.php, as it should be passing on Yosemite.

  • platform/mac/TestExpectations:
3:29 PM Changeset in webkit [185331] by andersca@apple.com
  • 6 edits
    1 delete in trunk/Source/WebKit2

Move the snapshot layer contents SPI to the web view
https://bugs.webkit.org/show_bug.cgi?id=145771

Reviewed by Geoffrey Garen.

We need to potentially ask the web page to take a snapshot of the current item,
so move the SPI to WKWebView and name it appropriately.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem _snapshotLayerContents]): Deleted.

  • UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Removed.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • WebKit2.xcodeproj/project.pbxproj:
3:29 PM Changeset in webkit [185330] by dbates@webkit.org
  • 7 edits in trunk

Many LayoutTests/http tests time out in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=145770
<rdar://problem/19593910>

Reviewed by Alexey Proskuryakov.

Tools:

  • DumpRenderTree/ios/Info.plist: Add ATS key.
  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]): Copy environment variables LOCAL_RESOURCE_ROOT
and DUMPRENDERTREE_TEMP to the simulator environment to avoid assertion failures in tests
that make use of testRunner.pathToLocalResource().

LayoutTests:

Unskip LayoutTests/http tests in WebKit1 and explicitly skip the HTTP disk-cache tests
in WebKit1 as the network disk cache code is specific to WebKit2. Move common expectations
from the WebKit{1, 2}-specific TestExpectations file to platform/ios-simulator/TestExpectations.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
2:25 PM Changeset in webkit [185329] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Explicitly dismiss correction panel when user types a new character
https://bugs.webkit.org/show_bug.cgi?id=145732
<rdar://problem/19596892>

Reviewed by Darin Adler.

Explicitly dismiss the correction panel when the user types a new character.
This patch shouldn't change any behavior we're currently relying on AppKit to do the same.

Manually ran tests in ManualTests/autocorrection.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToAppliedEditing):

1:40 PM Changeset in webkit [185328] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/mac

Remove more unused Objective-C methods
https://bugs.webkit.org/show_bug.cgi?id=145761

Reviewed by Geoffrey Garen.

  • Misc/WebNSImageExtras.h:
  • Misc/WebNSImageExtras.m:

(-[NSImage _web_saveAndOpen]): Deleted.

  • Misc/WebNSViewExtras.h:
  • Misc/WebNSViewExtras.m:

(-[NSView _web_DragImageForElement:rect:event:pasteboard:source:offset:]): Deleted.
(-[NSView _web_convertRect:toView:]): Deleted.

1:26 PM Changeset in webkit [185327] by jfernandez@igalia.com
  • 3 edits
    2 adds in trunk

[CSS Grid Layout] Setting height on a grid item doesn't have any effect
https://bugs.webkit.org/show_bug.cgi?id=145604

Reviewed by Sergio Villar Senin.

Source/WebCore:

Box Alignment spec states that stretch is only possible when height is
'auto' and no 'auto' margins are used.

It might be the case that style changes so that stretching is not allowed,
hence we need to detect it and clear the override height the stretching
algorithm previously set. The new layout triggered by the style change
will then set grid item's height according to the new style rules.

Test: fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

LayoutTests:

Tests to verify that we clear the override height set by the stretching logic
whenever height or margin change in a way they don't allow stretching anymore.

  • fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change-expected.txt: Added.
  • fast/css-grid-layout/grid-item-should-not-be-stretched-when-height-or-margin-change.html: Added.
12:55 PM Changeset in webkit [185326] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Try to fix the Mavericks build.

  • WebView/WebPDFView.mm:

(removeUselessMenuItemSeparators):

12:47 PM Changeset in webkit [185325] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Build fix.

  • wtf/TinyPtrSet.h: (WTF::TinyPtrSet::isEmpty): s/poointer/pointer/
12:41 PM Changeset in webkit [185324] by fpizlo@apple.com
  • 9 edits
    1 add in trunk/Source

The tiny set magic in StructureSet should be available in WTF
https://bugs.webkit.org/show_bug.cgi?id=145722

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

I moved the generic logic of small sets of pointers and moved it into WTF. Now,
StructureSet is a subclass of TinyPtrSet<Structure*>. There shouldn't be any functional
change.

  • bytecode/StructureSet.cpp:

(JSC::StructureSet::filter):
(JSC::StructureSet::filterArrayModes):
(JSC::StructureSet::speculationFromStructures):
(JSC::StructureSet::arrayModesFromStructures):
(JSC::StructureSet::dumpInContext):
(JSC::StructureSet::dump):
(JSC::StructureSet::clear): Deleted.
(JSC::StructureSet::add): Deleted.
(JSC::StructureSet::remove): Deleted.
(JSC::StructureSet::contains): Deleted.
(JSC::StructureSet::merge): Deleted.
(JSC::StructureSet::exclude): Deleted.
(JSC::StructureSet::isSubsetOf): Deleted.
(JSC::StructureSet::overlaps): Deleted.
(JSC::StructureSet::operator==): Deleted.
(JSC::StructureSet::addOutOfLine): Deleted.
(JSC::StructureSet::containsOutOfLine): Deleted.
(JSC::StructureSet::copyFromOutOfLine): Deleted.
(JSC::StructureSet::OutOfLineList::create): Deleted.
(JSC::StructureSet::OutOfLineList::destroy): Deleted.

  • bytecode/StructureSet.h:

(JSC::StructureSet::onlyStructure):
(JSC::StructureSet::StructureSet): Deleted.
(JSC::StructureSet::operator=): Deleted.
(JSC::StructureSet::~StructureSet): Deleted.
(JSC::StructureSet::isEmpty): Deleted.
(JSC::StructureSet::genericFilter): Deleted.
(JSC::StructureSet::isSupersetOf): Deleted.
(JSC::StructureSet::size): Deleted.
(JSC::StructureSet::at): Deleted.
(JSC::StructureSet::operator[]): Deleted.
(JSC::StructureSet::last): Deleted.
(JSC::StructureSet::iterator::iterator): Deleted.
(JSC::StructureSet::iterator::operator*): Deleted.
(JSC::StructureSet::iterator::operator++): Deleted.
(JSC::StructureSet::iterator::operator==): Deleted.
(JSC::StructureSet::iterator::operator!=): Deleted.
(JSC::StructureSet::begin): Deleted.
(JSC::StructureSet::end): Deleted.
(JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine): Deleted.
(JSC::StructureSet::ContainsOutOfLine::operator()): Deleted.
(JSC::StructureSet::copyFrom): Deleted.
(JSC::StructureSet::OutOfLineList::list): Deleted.
(JSC::StructureSet::OutOfLineList::OutOfLineList): Deleted.
(JSC::StructureSet::deleteStructureListIfNecessary): Deleted.
(JSC::StructureSet::isThin): Deleted.
(JSC::StructureSet::pointer): Deleted.
(JSC::StructureSet::singleStructure): Deleted.
(JSC::StructureSet::structureList): Deleted.
(JSC::StructureSet::set): Deleted.
(JSC::StructureSet::setEmpty): Deleted.
(JSC::StructureSet::getReservedFlag): Deleted.
(JSC::StructureSet::setReservedFlag): Deleted.

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::clobber):
(JSC::DFG::StructureAbstractValue::filter):
(JSC::DFG::StructureAbstractValue::filterSlow):
(JSC::DFG::StructureAbstractValue::contains):

  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::makeTop):

Source/WTF:

As the management of structure sets evolved in JSC, the StructureSet data structure grew
increasingly smart. It's got some smart stuff for managing small sets of pointers. I
wanted to take the generic logic out of JSC and put it into a reusable templatized class
in WTF.

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

(WTF::TinyPtrSet::TinyPtrSet):
(WTF::TinyPtrSet::operator=):
(WTF::TinyPtrSet::~TinyPtrSet):
(WTF::TinyPtrSet::clear):
(WTF::TinyPtrSet::onlyEntry):
(WTF::TinyPtrSet::isEmpty):
(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::remove):
(WTF::TinyPtrSet::contains):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::forEach):
(WTF::TinyPtrSet::genericFilter):
(WTF::TinyPtrSet::filter):
(WTF::TinyPtrSet::exclude):
(WTF::TinyPtrSet::isSubsetOf):
(WTF::TinyPtrSet::isSupersetOf):
(WTF::TinyPtrSet::overlaps):
(WTF::TinyPtrSet::size):
(WTF::TinyPtrSet::at):
(WTF::TinyPtrSet::operator[]):
(WTF::TinyPtrSet::last):
(WTF::TinyPtrSet::iterator::iterator):
(WTF::TinyPtrSet::iterator::operator*):
(WTF::TinyPtrSet::iterator::operator++):
(WTF::TinyPtrSet::iterator::operator==):
(WTF::TinyPtrSet::iterator::operator!=):
(WTF::TinyPtrSet::begin):
(WTF::TinyPtrSet::end):
(WTF::TinyPtrSet::operator==):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::containsOutOfLine):
(WTF::TinyPtrSet::copyFrom):
(WTF::TinyPtrSet::copyFromOutOfLine):
(WTF::TinyPtrSet::OutOfLineList::create):
(WTF::TinyPtrSet::OutOfLineList::destroy):
(WTF::TinyPtrSet::OutOfLineList::list):
(WTF::TinyPtrSet::OutOfLineList::OutOfLineList):
(WTF::TinyPtrSet::deleteListIfNecessary):
(WTF::TinyPtrSet::isThin):
(WTF::TinyPtrSet::pointer):
(WTF::TinyPtrSet::singleEntry):
(WTF::TinyPtrSet::list):
(WTF::TinyPtrSet::set):
(WTF::TinyPtrSet::setEmpty):
(WTF::TinyPtrSet::getReservedFlag):
(WTF::TinyPtrSet::setReservedFlag):

11:21 AM Changeset in webkit [185323] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Add the missing setupArgumentsWithExecState functions after r185240
https://bugs.webkit.org/show_bug.cgi?id=145754

Reviewed by Benjamin Poulain.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

9:49 AM Changeset in webkit [185322] by beidson@apple.com
  • 25 edits
    5 adds in trunk

Completely remove all IDB properties/constructors when it is disabled at runtime.
rdar://problem/18429374 and https://bugs.webkit.org/show_bug.cgi?id=137034

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Test: storage/indexeddb/properties-disabled-at-runtime.html

  • Make constructors all runtime enabled.
  • Remove autogeneration of the window.(webkit)indexedDB accessors.
  • Add manual overrides for the (webkit)indexedDB accessors at runtime.
  • Modules/indexeddb/DOMWindowIndexedDatabase.idl:
  • Modules/indexeddb/IDBAny.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • page/DOMWindow.idl:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowIndexedDB):
(WebCore::JSDOMWindow::getOwnPropertySlot):

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Enable IDB at runtime if it's enabled at compile time.

LayoutTests:

  • platform/mac-mavericks/TestExpectations: Disable global-constructors-attributes on Mavericks as there is no way to have different WK1 and WK2 results.
  • platform/mac-wk1/TestExpectations: Enable the new "properties are missing" test for Mac WK1.
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Added.
  • platform/win/TestExpectations: Enable the new "properties are missing" test for Win WK1
  • platform/wk2/TestExpectations: Disable the new "properties are missing" test for all WK2.
  • storage/indexeddb/properties-disabled-at-runtime-expected.txt: Added.
  • storage/indexeddb/properties-disabled-at-runtime.html: Added.
9:48 AM Changeset in webkit [185321] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[GTK] Fix parentheses warning in TestWebKitWebView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145759

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSave):

9:31 AM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r185320 (diff)
9:17 AM Changeset in webkit [185320] by Michael Catanzaro
  • 9 edits in trunk/Source

[SOUP] Performs DNS prefetch when a proxy is configured (information leak)
https://bugs.webkit.org/show_bug.cgi?id=145542

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests, because it's hard to test whether a DNS request has been sent. We could do
this by adding new API to modify the GProxyResolver and GResolver used by the SoupSession in
the network process, but even if such API were desirable, it would be a big job. Tests
should not be allowed to dictate our public API.

  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::add): Do not check whether the system is using a proxy, since
this can't be determined for all ports here.
(WebCore::DNSResolveQueue::timerFired): Do not check whether the system is using a proxy,
since this can't be determined for all ports here.
(WebCore::DNSResolveQueue::DNSResolveQueue): Remove member variables and member functions
that are only needed by the CF backend. Rename platformResolve to
platformMaybeResolveHost.
(WebCore::DNSResolveQueue::isUsingProxy): Moved to DNSCFNet.cpp.

  • platform/network/DNSResolveQueue.h: Remove member variables that are only needed by the

CF backend.

  • platform/network/cf/DNSCFNet.cpp:

(WebCore::proxyIsEnabledInSystemPreferences): Renamed from
platformProxyIsEnabledInSystemPreferences.
(WebCore::isUsingProxy): Moved from DNSResolveQueue.cpp. The member variables removed from
DNSResolveQueue are not static here. This is safe since it's a singleton.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Bail early from here if a proxy is configured.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Renamed to
proxyIsEnabledInSystemPreferences.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.

  • platform/network/soup/DNSSoup.cpp:

(WebCore::gotProxySettingsCallback): Added. Call soup_session_prefetch_dns from here only
if a proxy would not be used to resolve the host.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Renamed from platformResolve.
Look up proxy settings using g_proxy_resolver_lookup_async rather than calling
soup_session_prefetch_dns directly.
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Deleted.
(WebCore::DNSResolveQueue::platformResolve): Renamed to platformMaybeResolveHost.

Source/WebKit2:

Add documentation to webkit_web_context_prefetch_dns to indicate that the function does
nothing if the system configuration indicates we should use a proxy to resolve the host.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

Source/WTF:

Add template specialization for GUniquePtr<char*>. This smart pointer will free its data
with g_strfreev() (as opposed to g_free(), which is used for GUniquePtr<char>).

  • wtf/gobject/GUniquePtr.h:
9:16 AM Changeset in webkit [185319] by andersca@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit

Remove WebNSArrayExtras
https://bugs.webkit.org/show_bug.cgi?id=145747

Reviewed by Darin Adler.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Misc/WebNSArrayExtras.h: Removed.
  • Misc/WebNSArrayExtras.m: Removed.

(-[NSArray _webkit_numberAtIndex:]): Deleted.
(-[NSArray _webkit_stringAtIndex:]): Deleted.
(-[NSMutableArray _webkit_removeUselessMenuItemSeparators]): Deleted.

  • WebView/WebPDFView.mm:

(removeUselessMenuItemSeparators):
(-[WebPDFView _menuItemsFromPDFKitForEvent:]):

9:13 AM Changeset in webkit [185318] by svillar@igalia.com
  • 3 edits in trunk/LayoutTests

[CSS Grid Layout] Add some more testing for grid line names
https://bugs.webkit.org/show_bug.cgi?id=145691

Reviewed by Darin Adler.

After moving to the new syntax which uses brackets instead of
parentheses for grid line names lists, it's good to improve a bit
the testing of the feature with some more new test cases.

  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
8:59 AM Changeset in webkit [185317] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

REGRESSION(r185251): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work when using shared secondary process model after r185251
https://bugs.webkit.org/show_bug.cgi?id=145751

Reviewed by Darin Adler.

In r185251 the CFNetwork cache was disabled in the web process,
but it also removed the disk cache directory web process
initialization parameter. While we support networking in the web
process when shared secondary process model is used, the network
cache should still work. We can remove this if we eventually
switch to use the network process unconditionally.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode disk cache directory.
(WebKit::WebProcessCreationParameters::decode): Decode disk cache directory.

  • Shared/WebProcessCreationParameters.h: Bring back disk cache directory only for soup.
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Initialize disk cache directory parameter.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Use the disck cache directory parameter again.

7:36 AM Changeset in webkit [185316] by commit-queue@webkit.org
  • 24 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/Modules - 2
https://bugs.webkit.org/show_bug.cgi?id=145541

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-08
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/mediastream/RTCConfiguration.h:

(WebCore::RTCConfiguration::iceServers):

  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::scheduledEventTimerFired):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::scheduledEventTimerFired):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::processIceServer):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::getStreamById):
(WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):

  • Modules/mediastream/RTCStatsReport.cpp:

(WebCore::RTCStatsReport::names):

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::initProtocolHandlerWhitelist):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::memoryCost):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::derefUnfinishedSourceNodes):
(WebCore::AudioContext::handleDeferredFinishDerefs):
(WebCore::AudioContext::handleDirtyAudioSummingJunctions):
(WebCore::AudioContext::handleDirtyAudioNodeOutputs):
(WebCore::AudioContext::updateAutomaticPullNodes):
(WebCore::AudioContext::processAutomaticPullNodes):

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::updateChannelsForInputs):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::inputsAreSilent):
(WebCore::AudioNode::silenceOutputs):
(WebCore::AudioNode::unsilenceOutputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::disableOutputsIfNecessary):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::numberOfChannels):
(WebCore::AudioNodeInput::sumAllConnections):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::calculateFinalValues):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::updateRenderingState):

  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setOversample):

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::handlePausedQueue):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::setDatabasesPaused):

  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::shutdown):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketExtensionDispatcher.cpp:

(WebCore::WebSocketExtensionDispatcher::addProcessor):
(WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
(WebCore::WebSocketExtensionDispatcher::processHeaderValue):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeMessage):

7:08 AM Changeset in webkit [185315] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove the unused scroll function from WebPageGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=145756

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::scroll): Deleted.

3:45 AM Changeset in webkit [185314] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185262): [EFL] Modify legacyPlatformDefaultNetworkCacheDirectory() according to network cache
https://bugs.webkit.org/show_bug.cgi?id=145752

Reviewed by Carlos Garcia Campos.

EFL port needs to add different prefix for network cache directory since r185262.
Modify it basedon GTK port fix.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):

12:59 AM Changeset in webkit [185313] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fixed the build.

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

Jun 7, 2015:

11:38 PM Changeset in webkit [185312] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] Add editor mode to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=145595

Reviewed by Sergio Villar Senin.

It loads an empty editable web view with an edit toolbar. It makes
easier to test the editor, editing commands and input methods.

  • MiniBrowser/gtk/BrowserWindow.c:

(editingCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowConstructed):

  • MiniBrowser/gtk/main.c:

(createBrowserWindow):

11:35 PM Changeset in webkit [185311] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

REGRESSION(r185262): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work after r185262
https://bugs.webkit.org/show_bug.cgi?id=145735

Reviewed by Darin Adler.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Use
the directory name to clear the old cache, since the disk cache
subdirectory is now added in the UI process.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_set_disk_cache_directory): Update the
WebProcessPool configuration to override the disk cache directory.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Use the
configuration to get the disk cache directory.
(WebKit::WebProcessPool::WebProcessPool): Remove
m_diskCacheDirectory member initialization.

  • UIProcess/WebProcessPool.h: Remove m_diskCacheDirectory member.
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
Append the disk cache subdirectory.

7:39 PM Changeset in webkit [185310] by Darin Adler
  • 8 edits
    3 adds
    2 deletes in trunk

REGRESSION (r181720): Unnecessary layout triggered any time animated GIF advances to a new frame
https://bugs.webkit.org/show_bug.cgi?id=145733

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/images/animated-gif-no-layout.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::styleDidChange): Correctly pass ImageSizeChangeNone in cases
where we don't need to report a change in intrinsic size that happened outside the
repaintOrMarkForLayout function.
(WebCore::RenderImage::repaintOrMarkForLayout): Move work that should only be done
when size changed inside the if statement.

  • testing/Internals.cpp:

(WebCore::Internals::layoutCount): Added.

  • testing/Internals.h: Added layoutCount.
  • testing/Internals.idl: Ditto.

LayoutTests:

old one I am fixing and the one new one I am adding) because they don't yet work
under DumpRenderTree.

  • fast/images/animated-gif-no-layout-expected.html: Added.
  • fast/images/animated-gif-no-layout.html: Added.
  • fast/images/gif-loop-count-expected.html: Added. This test was worthless as a render

tree dump test, and only valuable as a pixel test. And that hid the fact that it was
failing under WebKit1. Changing it to a reference test makes it a valuable test again.

  • fast/images/gif-loop-count-expected.png: Removed.
  • fast/images/gif-loop-count-expected.txt: Removed.
  • platform/wk2/TestExpectations: Expect successes on these two tests.
6:39 PM Changeset in webkit [185309] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Fix strncpy use in WebCore::Text::formatForDebugger
https://bugs.webkit.org/show_bug.cgi?id=145608

Reviewed by Darin Adler.

r185137 replaced a call to strncpy with a call to strlcpy, which broke the build on Linux
since strlcpy does not exist there. r185148 reverted this to use strncpy again, but got the
size argument off by one, "introducing" a buffer overrun. But this code has always been
wrong, since it used strncpy without ensuring that the buffer is null-terminated after the
call to strncpy. Fix this as well.

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger):

5:05 PM Changeset in webkit [185308] by andersca@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit

Remove WebKitSystemBits
https://bugs.webkit.org/show_bug.cgi?id=145746

Reviewed by Dan Bernstein.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Fold WebVolumeFreeSize into its only caller and get rid of WebKitSystemBits.

  • Misc/WebKitSystemBits.h: Removed.
  • Misc/WebKitSystemBits.m: Removed.
  • WebView/WebPreferences.mm:
  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

4:54 PM Changeset in webkit [185307] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove another SPI method that hasn't been used since Tiger
https://bugs.webkit.org/show_bug.cgi?id=145745

Reviewed by Dan Bernstein.

  • WebView/WebView.mm:

(-[WebView handleAuthenticationForResource:challenge:fromDataSource:]): Deleted.

  • WebView/WebViewPrivate.h:
4:44 PM Changeset in webkit [185306] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Remove another unused SPI method
https://bugs.webkit.org/show_bug.cgi?id=145743

Reviewed by Dan Bernstein.

  • WebView/WebView.mm:

(+[WebView _pointingHandCursor]): Deleted.

  • WebView/WebViewPrivate.h:
4:36 PM Changeset in webkit [185305] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/mac

Remove unused SPI
https://bugs.webkit.org/show_bug.cgi?id=145742

Reviewed by Dan Bernstein.

  • WebCoreSupport/WebFrameNetworkingContext.h:
  • WebCoreSupport/WebFrameNetworkingContext.mm:

(WebFrameNetworkingContext::clearPrivateBrowsingSessionCookieStorage): Deleted.

  • WebView/WebView.mm:

(+[WebView _clearPrivateBrowsingSessionCookieStorage]): Deleted.

  • WebView/WebViewPrivate.h:
4:11 PM Changeset in webkit [185304] by commit-queue@webkit.org
  • 1 edit
    49 adds in trunk/Source/WebInspectorUI

Web Inspector: Add PrettyPrinter CSSRule tests
https://bugs.webkit.org/show_bug.cgi?id=145740

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-06-07
Reviewed by Brian Burg.

  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added.
  • Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added.
10:37 AM Changeset in webkit [185303] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

Reverted r185302 because it broke the build

10:35 AM Changeset in webkit [185302] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

Unifiy the definition of UNREACHABLE_FOR_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=145737

Reviewed by Anders Carlsson.

  • wtf/Assertions.h:

(UNREACHABLE_FOR_PLATFORM): Use the macro for clang as well. Its expansion includes
attribute((noreturn)) so the pragmas are unnecessary.

7:42 AM Changeset in webkit [185301] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::FrameLoader::subresourceCachePolicy const + 11
https://bugs.webkit.org/show_bug.cgi?id=145736
rdar://problem/21246971

Reviewed by David Kilzer.

No repro, no test.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

Null check frame. It may be null during frame teardown.

1:48 AM Changeset in webkit [185300] by Gyuyoung Kim
  • 6 edits in trunk/Source/WebKit2

[EFL][GTK] Fix build break since r185262
https://bugs.webkit.org/show_bug.cgi?id=145724

Unreviewed, fix build break for EFL and GTK ports.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Jun 6, 2015:

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

Don’t enable manual sandboxing in the iOS Simulator. This should fix all the tests timing out.

  • Configurations/DebugRelease.xcconfig:
7:08 PM Changeset in webkit [185298] by mitz@apple.com
  • 13 edits in trunk/Source/WebKit2

[iOS] Can’t debug with Development XPC services due to automatic sandboxing
https://bugs.webkit.org/show_bug.cgi?id=145731

Reviewed by Darin Adler.

In iOS, the XPC services are automatically sandboxed based on their entitlements. The
sandbox doesn’t allow them to re-exec, which is necessary for linking against engineering
builds of the WebKit frameworks placed in a non-system location.

The solution is to opt Engineering builds into manual sandboxing.

  • Configurations/BaseTarget.xcconfig:
  • Add ENABLE_MANUAL_SANDBOXING to GCC_PREPROCESSOR_DEFINITIONS when WK_MANUAL_SANDBOXING_ENABLED is YES.
  • Set WK_MANUAL_SANDBOXING_ENABLED to YES for OS X, because we always use manual sandboxing on that platform.
  • Configurations/DebugRelease.xcconfig: Removed unused definition of DEBUG_OR_RELEASE. Set WK_MANUAL_SANDBOXING_ENABLED to YES for all engineering builds.
  • Configurations/BaseXPCService.xcconfig: Define CODE_SIGN_ENTITLEMENTS for iOS to be empty if the service is not installed; to use the base entitlements file from Configurations if manual sandboxing is not enabled; and to use a derived entitlements file, which doesn’t specify a sandbox profile, if manual sandboxing is enabled.
  • Configurations/DatabaseService.Development.xcconfig: Define WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE and let BaseXPCService.xcconfig define CODE_SIGN_ENTITLEMENTS for iOS.
  • Configurations/DatabaseService.xcconfig: Ditto.
  • Configurations/NetworkService.Development.xcconfig: Ditto.
  • Configurations/NetworkService.xcconfig: Ditto.
  • Configurations/WebContentService.Development.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
  • WebKit2.xcodeproj/project.pbxproj:
  • In the Derived Sources target, added a Derive Entitlements for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it creates copies of the iOS entitlements files with a -no-sandbox suffix and the seatbelt-profiles key removed.
  • In the WebKit target, added a Copy iOS Sandbox Profiles for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it copies the iOS sandbox profiles into the framework, so that the services can apply them to themselves at runtime.
  • Shared/ios/ChildProcessIOS.mm:

(WebKit::ChildProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) and don’t define it
here.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) instead of defining
and using ENABLE_MANUAL_WEBPROCESS_SANDBOXING here.

7:07 PM Changeset in webkit [185297] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Restored binary compatibility with shipping Safari.

Suggested by Anders Carlsson.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_fixedCarbonPOSIXPath]): Added an implementation that returns self, so
that Safari doesn’t crash when trying to call this method.

5:09 PM Changeset in webkit [185296] by ap@apple.com
  • 9 edits
    1 add in trunk/LayoutTests

Clean up tests for blocking mixed content
https://bugs.webkit.org/show_bug.cgi?id=145718

Reviewed by Darin Adler.

Stop using timeouts, which were making the tests flaky.

  • http/tests/xmlhttprequest/access-control-response-with-body.html: This wasn't even

a mixed content test, but the file was reused in one. I now made a separate helper
document, so this is just a regular test now, not another test's resource.

  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html:
  • http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-frame.html:

Refactored to not depend on timeouts.

  • http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
  • http/tests/security/mixedContent/resources/insecure-xhr-in-main-frame-window.html: Added.

This test still needs a timeout, because of a WebKit bug. I just made it much longer.

3:55 PM Changeset in webkit [185295] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fixed the build.

  • Plugins/WebBasePluginPackage.mm:
2:22 PM Changeset in webkit [185294] by andersca@apple.com
  • 10 edits in trunk/Source

Remove support from getting plug-in information from Carbon resources
https://bugs.webkit.org/show_bug.cgi?id=145730

Reviewed by Dan Bernstein.

Source/WebCore:

Remove a now unused function.

  • platform/mac/WebCoreNSStringExtras.h:
  • platform/mac/WebCoreNSStringExtras.mm:

(stringEncodingForResource): Deleted.

Source/WebKit/mac:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(+[NSString _web_encodingForResource:]): Deleted.

  • Plugins/WebBasePluginPackage.mm:
  • Plugins/WebNetscapePluginPackage.mm:

(-[WebNetscapePluginPackage _initWithPath:]):
(-[WebNetscapePluginPackage stringForStringListID:andIndex:]): Deleted.
(-[WebNetscapePluginPackage getPluginInfoFromResources]): Deleted.

Source/WebKit2:

No current plug-in versions use this feature, and both Chrome and Mozilla for
Mac stopped looking at Carbon resources years ago.

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

(WebKit::NetscapePluginModule::getPluginInfo):
(WebKit::ResourceMap::ResourceMap): Deleted.
(WebKit::ResourceMap::~ResourceMap): Deleted.
(WebKit::ResourceMap::isValid): Deleted.
(WebKit::getStringListResource): Deleted.
(WebKit::getPluginInfoFromCarbonResources): Deleted.

1:01 PM Changeset in webkit [185293] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit/mac

Remove now unused category methods
https://bugs.webkit.org/show_bug.cgi?id=145729

Reviewed by Dan Bernstein.

  • Configurations/WebKitLegacy.xcconfig:
  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_fixedCarbonPOSIXPath]): Deleted.

  • Misc/WebNSFileManagerExtras.h:
  • Misc/WebNSFileManagerExtras.mm:

(-[NSFileManager _webkit_startupVolumeName]): Deleted.

12:50 PM Changeset in webkit [185292] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix build.

  • WebKit.mac.exp:
12:45 PM Changeset in webkit [185291] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Stop using _webkit_fixedCarbonPOSIXPath in plug-in code
https://bugs.webkit.org/show_bug.cgi?id=145728

Reviewed by Dan Bernstein.

This code was put in place to support old plug-ins that would pass Carbon paths to NPAPI functions.
WebKit2 never supported this and we've never had any problems so let's just get rid of it.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::loadURL):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):

12:37 PM Changeset in webkit [185290] by andersca@apple.com
  • 3 edits
    2 deletes in trunk/Source/WebKit

Remove SPI that's no longer used
https://bugs.webkit.org/show_bug.cgi?id=145727

Reviewed by Dan Bernstein.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Plugins/WebPluginsPrivate.h: Removed.
  • Plugins/WebPluginsPrivate.m: Removed.
12:22 PM Changeset in webkit [185289] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145726

Reviewed by Dan Bernstein.

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage getPluginInfoFromPLists]):

1:43 AM Changeset in webkit [185288] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

it needs some discussion before landing (Requested by dino on
#webkit).

Reverted changeset:

"[iOS] Don't force compositing layers for no-op 3D transforms
on low-memory devices."
https://bugs.webkit.org/show_bug.cgi?id=145719
http://trac.webkit.org/changeset/185284

1:21 AM Changeset in webkit [185287] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Typing is slow in Gmail on iPads
https://bugs.webkit.org/show_bug.cgi?id=145686

Reviewed by Enrica Casucci.

The bug was caused by nextCandidate and nextVisuallyDistinctCandidate traversing through each character
in a text node without a renderer. Skip any node that doesn't have a renderer in both of those functions
and corresponding previous* functions.

It's fine to skip unrendered nodes in PositionIterator because only other clients of PositionIterator
are Position::upstream and Position::downstream and they don't care about un-rendered nodes either.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):

  • editing/htmlediting.cpp:

(WebCore::nextVisuallyDistinctCandidate):
(WebCore::previousVisuallyDistinctCandidate):

12:55 AM Changeset in webkit [185286] by mark.lam@apple.com
  • 6 edits in trunk

Returned Exception* values need to be initialized to nullptr when no exceptions are thrown.
https://bugs.webkit.org/show_bug.cgi?id=145720

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

Source/WebCore:

No new tests because this issue is already covered by the existing inspector-protocol tests.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):

LayoutTests:

  • platform/win/TestExpectations:
  • Undoing skipped tests.

Jun 5, 2015:

9:40 PM Changeset in webkit [185285] by Alan Bujtas
  • 2 edits in trunk/Tools

From r185273 on WTF::RefCounter exposes the actual refcount instead of a boolean value.

Reviewed by Dan Bernstein.

  • TestWebKitAPI/Tests/WTF/RefCounter.cpp:

(TestWebKitAPI::TEST):

8:11 PM Changeset in webkit [185284] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
<https://webkit.org/b/145719>
<rdar://problem/19973042>

Reviewed by Geoffrey Garen.

We put elements with 3D identity transforms onto compositing layers because
we anticipate that they will somehow animate in the future.

This can get extremely expensive, especially on low-memory devices.
This patch makes WebKit stop handing out compositing layers for this kinda thing:

-webkit-transform: translate3d(0,0,0)

..on devices with 512MB or less. This dramatically improves stability on some
web pages.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForTransform):

6:23 PM Changeset in webkit [185283] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Gardening: skip some inspector-protocol tests while the issue is being investigated.
https://bugs.webkit.org/show_bug.cgi?id=145720

Not reviewed.

  • platform/win/TestExpectations:
6:23 PM Changeset in webkit [185282] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Fixing code style and adding more limitations for bug 141262
https://bugs.webkit.org/show_bug.cgi?id=145668

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added isValidPropertyName function.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.

6:19 PM Changeset in webkit [185281] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] API test has been broken since r184357
https://bugs.webkit.org/show_bug.cgi?id=145635

Reviewed by Darin Adler.

r184357 suppress cmake build warning using TARGET_FILE property. However
many EFL API test cases have been broken after applying it.

  • TestWebKitAPI/CMakeLists.txt:
6:18 PM Changeset in webkit [185280] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Skip fast/text/decorations-vertical-underline-expected.html

Unreviewed gardening.

  • platform/win/TestExpectations:
6:16 PM Changeset in webkit [185279] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
https://bugs.webkit.org/show_bug.cgi?id=145399

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
(WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
(WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.

6:06 PM Changeset in webkit [185278] by Matt Baker
  • 2 edits in trunk/Source/WebCore

Web Inspector: "Other" time in the framerate table is often negative
https://bugs.webkit.org/show_bug.cgi?id=145712

Reviewed by Timothy Hatcher.

The Inspector frontend flattens the timeline event tree it receives from the backend, which can contain nested
paint records. The nested records represent a single paint event, but were being interpreted as two separate
events for purposes of calculating total layout time. This caused the calculated "other" time to be less than
it should be (and in some cases negative).

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::addRecordToTimeline):
Paint records are no longer nested, we simply drop the child paint event.

5:33 PM Changeset in webkit [185277] by mark.lam@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Subclasses of JSNonFinalObject with gc'able children need to implement visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=145709

Reviewed by Geoffrey Garen.

  • jsc.cpp:

(functionSetElementRoot):

  • The Element class has a member of type Root which extends JSDestructibleObject. It should be stored in a WriteBarrier, and visited by visitChildren().
  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::materializeSpecialsIfNecessary):
(JSC::ClonedArguments::visitChildren):

  • runtime/ClonedArguments.h:
  • Add missing visitChildren().
  • tests/stress/cloned-arguments-should-visit-callee-during-gc.js: Added.

(makeTransientFunction.transientFunc):
(makeTransientFunction):

5:04 PM Changeset in webkit [185276] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

[Win] Update expected results.

Unreviewed gardening.

  • platform/win/fast/forms/select-element-focus-ring-expected.txt: Added.
  • platform/win/fast/text/emoji-expected.txt: Added.
4:50 PM Changeset in webkit [185275] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative Windows build fix after r185273.

  • platform/VNodeTracker.h:
4:49 PM Changeset in webkit [185274] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145716

Reviewed by Dan Bernstein.

  • PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getMIMETypesFromPluginBundle):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
4:20 PM Changeset in webkit [185273] by Chris Dumez
  • 10 edits
    3 adds in trunk/Source

[WK2][iOS] Limit the number of vnodes used by the WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=145672
<rdar://problem/21126637>

Reviewed by Antti Koivisto.

Source/WebCore:

Limit the number of vnodes used by the WebContent processes to reduce
the chance of getting killed due to the system running out of vnodes.
We sometimes see the WebContent process use up to 50% of the system's
vnode limit on some tests on iOS, which seems excessive. Most vnodes
are due to CachedResources which are mmap'd from the WebKit disk cache
and kept alive due to caches such as the Memory Cache / PageCache.

This patch adds tracking for the number of SharedBuffer objects that are
backed by a CFDataRef as this should track most of the vnodes used by
the process. The WebContent process registers a vnode pressure handler
upon initialization (likely it already does for memory pressure
handling). This handler gets called when the process uses over 15% of
of system's vnode limit and the "critical" flag is set if it uses over
20% of the system limit. The vnode pressure handler currently calls the
memory pressure handler as freeing our caches (especially PageCache,
MemoryCache) and doing a JS GC frees up vnodes.

On iPhone 6 Plus, the system limit is at 3000, which would lead to the
following limits being used:
soft: 450 / hard: 600

However, on older hardware, the system limit can be as low as 2000,
which would lead to the following limits being used:
soft: 300 / hard: 400

vnode tracking is currently only enabled on iOS because system vnode
limits are usually much higher on Mac (e.g. 473695 on Mac Pro, 9984
on a 2011 MacBook Air) and we normally don't get killed.

  • WebCore.xcodeproj/project.pbxproj:

Add new files to the XCode project.

  • platform/SharedBuffer.h:

Add a VNodeTracker::Token member next to the CFDataRef member that we
initialize if the SharedBuffer is constructed from a CFDataRef.

  • platform/VNodeTracker.cpp: Added.

(WebCore::VNodeTracker::singleton):
(WebCore::VNodeTracker::VNodeTracker):
(WebCore::VNodeTracker::checkPressureState):
(WebCore::VNodeTracker::pressureWarningTimerFired):
(WebCore::VNodeTracker::nextPressureWarningInterval):
(WebCore::VNodeTracker::platformInitialize):

  • platform/VNodeTracker.h: Added.

(WebCore::VNodeTracker::setPressureHandler):

Add a new VNodeTracker singleton to keep track the number of vnodes
used by the process since the system does not issue warnings before
reaching its vnode limit. Call sites should request Tokens for
every vnode they use for tracking purposes. Each process can then
set a vnode pressure handler function that will be called when the
process is over the designated limits.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

Take a VNodeToken from the VNodeTracker when constructing the
SharedBuffer from a CFDataRef as these usually use mmap.

  • platform/cocoa/VNodeTrackerCocoa.cpp: Added.

(WebCore::VNodeTracker::platformInitialize):

Get the system's vnode limit and uses 15% of that value as soft
limit for the process and 20% of that value as hard limit.

Source/WebKit2:

Have the WebContent process register a vnode pressure handler on iOS,
which calls the memory pressure handler.

On non-critical pressure, it will prune dead resources from the memory
cache, which should free up some vnodes. On critical pressure, the
handler will clear the PageCache and do a JS GC, which should free even
more vnodes.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/RefCounter.h:

(WTF::RefCounter::value):

Expose the actual refcount instead of a boolean value.

4:16 PM Changeset in webkit [185272] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Lingering checkbox animations when rapidly switching between views on WK1
https://bugs.webkit.org/show_bug.cgi?id=145715
<rdar://problem/17381121>

Reviewed by Simon Fraser.

On WK1, the NSView we use for NSButtonCells is parented in the ScrollView.
Our checkbox and radiobutton animations cause AppKit to create a CALayer which
is parented into that view. As we render the animations, we see the CALayer getting
drawn also.

The fix was to use an unparented layer on WK1 when drawing these controls, the same
way WK2 does. This technique may apply to all controls, but restricting it
to just the buttons at the moment is less risky.

This only happens during the swap between a checked and non-checked state,
and we have no way to test it :(

  • platform/mac/ThemeMac.h: New optional parameter to ensuredView.
  • platform/mac/ThemeMac.mm:

(WebCore::paintToggleButton): If we're on Yosemite or highter, use an unparented view.
(WebCore::ThemeMac::ensuredView): Return either a parented or unparented view.

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

REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
https://bugs.webkit.org/show_bug.cgi?id=145695

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-05
Reviewed by Mark Lam.

Move and rename the clear log on reload setting property from
WebInspector (Main.js) to LogManager (shared with tests).

  • UserInterface/Base/Main.js:

(WebInspector.loaded): Deleted.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager):
(WebInspector.LogManager.prototype._delayedMessagesCleared):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):

3:33 PM Changeset in webkit [185270] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

MediaSessions should keep track of their participating media elements.
https://bugs.webkit.org/show_bug.cgi?id=145703

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-05
Reviewed by Eric Carlson.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::addMediaElement): Add the given media element to the media session.
(WebCore::MediaSession::removeMediaElement): Remove the given media element from the media session.
(WebCore::MediaSession::activeParticipatingElements): Dynamically build a vector of actively-playing media

elements.

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement): Ensure the element is removed from its media session.
(WebCore::HTMLMediaElement::setSession): Update sessions' references to their media elements.

3:10 PM Changeset in webkit [185269] by Chris Dumez
  • 13 edits
    15 deletes in trunk

Regression(r176212): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>

Reviewed by Simon Fraser.

Source/WebCore:

Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.

  • dom/Element.cpp:
  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.

  • dom/Node.cpp:

(WebCore::Node::materializeRareData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.

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

(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.

  • page/FrameView.h:

LayoutTests:

Remove layout tests covering DOM Timer throttling.

  • fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
  • fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
  • fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/nested-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
  • fast/dom/resources/timer-throttling-iframe.html: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
  • fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-layout.html: Removed.
  • fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-scroll.html: Removed.
3:03 PM Changeset in webkit [185268] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DropAllLocks RELEASE_ASSERT on iOS
https://bugs.webkit.org/show_bug.cgi?id=139654

Reviewed by Mark Lam.

  • runtime/JSLock.cpp:

(JSC::JSLock::dropAllLocks): Removed a comment because it duplicated
the code beneath it. Removed a FIXME because we can't ASSERT that
we're holding the lock. WebKit1 on iOS drops the lock before calling to
delegates, not knowing whether it holds the lock or not.

(JSC::JSLock::DropAllLocks::DropAllLocks): Only ASSERT that we are not
GC'ing if we hold the lock. If we do not hold the lock, it is perfectly
valid for some other thread, which does hold the lock, to be GC'ing.
What is not valid is to drop the lock in the middle of GC, since GC
must be atomic.

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

speculateRealNumber() should early exit if you're already a real number, not if you're already a real double.

Rubber stamped by Mark Lam.

This was causing: https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK1%20(Tests)/r185261%20(5180)/webaudio/note-grain-on-timing-crash-log.txt

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateRealNumber):

2:46 PM Changeset in webkit [185266] by mmaxfield@apple.com
  • 6 edits
    1 copy
    1 move
    1 add in trunk

[iOS] Emoji overlap preceeding lines
https://bugs.webkit.org/show_bug.cgi?id=145678
<rdar://problem/10684914>

Reviewed by Enrica Casucci.

Source/WebCore:

In WebKit, we first lay out lines, and then we lay out text inside those lines. Text is vertically centered in
its containing line. If the author has not specified a particular line-height, the height of a line comes from
the font metrics for the primary font of the line.

In iOS, we were specifically hardcoding the line height metric of Apple Color Emoji to be 0. This means that,
if Apple Color Emoji is the primary font for a line, and an explicit line-height was not specified, the lines
are laid out with 0 height. Then, when we vertically center the text inside the line, the top half of the text
overlaps the preceeding line.

I'm not sure exactly why were were hardcoding this value to 0, as it is surely wrong. I'm going to ask Enrica
to review this patch; hopefully she knows the answer.

Test: fast/text/emoji.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

LayoutTests:

  • fast/text/emoji.html:
  • platform/mac/TestExpectations: Removed unnecessary line.
  • platform/mac-mavericks/fast/text/emoji-expected.html:
  • platform/mac/fast/text/emoji-expected.html:
  • platform/ios-simulator/fast/text/emoji-expected.html:
  • TestExpectations: Removed unnecessary line.
2:42 PM Changeset in webkit [185265] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix refacto, don't put IndexedDB databases in the cache directory
https://bugs.webkit.org/show_bug.cgi?id=145714

Reviewed by Antti Koivisto.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

2:37 PM Changeset in webkit [185264] by achristensen@apple.com
  • 5 edits in trunk/Source

[Web Timing] Use new SPI to enable data collection.
https://bugs.webkit.org/show_bug.cgi?id=145650
rdar://problem/21203358

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
Gather web timing data on iOS.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::setCollectsTimingData):
Gather web timing data on Mac.

Source/WTF:

  • wtf/Platform.h:

Added HAVE_TIMINGDATAOPTIONS for platform and version dependent feature.

2:36 PM Changeset in webkit [185263] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
https://bugs.webkit.org/show_bug.cgi?id=144553

Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.

Reviewed by Timothy Hatcher.

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard):
_waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.

(WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.

(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
Unused.

2:31 PM Changeset in webkit [185262] by andersca@apple.com
  • 13 edits in trunk

Make the network cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145711

Reviewed by Antti Koivisto.

Source/WebKit2:

Also, make the UI process be in control of where we place the new network cache.
When using the Modern WebKit API, put the cache in ~/Library/Caches/<Bundle ID>/WebKit/NetworkCache,
and put the cache in ~/Library/Caches/<Bundle ID>/WebKitCache otherwise (this is just for Safari).

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDiskCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):

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

(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::diskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:27 PM Changeset in webkit [185261] by andersca@apple.com
  • 11 edits in trunk

Make the application cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145704

Reviewed by Geoffrey Garen.

Source/WebKit2:

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetApplicationCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::applicationCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:08 PM Changeset in webkit [185260] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source

[Streams API] ReadableStream should store callbacks as a Deque
https://bugs.webkit.org/show_bug.cgi?id=145641

Reviewed by Darin Adler.

Source/WebCore:

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::resolveReadCallback): Use of Deque.takeFirst

  • Modules/streams/ReadableStream.h: Using Deque in lieu of Vector for storing callbacks.

Source/WTF:

  • wtf/Deque.h:

(WTF::Deque::append): Adding not templated append method, forwarding to templated append method.

11:52 AM Changeset in webkit [185259] by mark.lam@apple.com
  • 101 edits
    44 adds in trunk

finally blocks should not set the exception stack trace when re-throwing the exception.
https://bugs.webkit.org/show_bug.cgi?id=145525

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

How exceptions presently work:
=============================

  1. op_throw can throw any JSValue.
  2. the VM tries to capture the stack at the throw point and propagate that as needed.
  3. finally blocks are implemented using op_catch to catch the thrown value, and throws it again using op_throw.

What's wrong with how it presently works:
========================================

  1. finally's makes for bad exception throw line numbers in the Inspector console.

The op_throw in finally will throw the value anew i.e. it captures a stack from the re-throw point.
As a result, the Inspector sees the finally block as the throw point. The original stack is lost.

  1. finally's breaks the Inspector's "Breaks on Uncaught Exception"

This is because finally blocks are indistinguishable from catch blocks. As a result, a try-finally,
which should break in the Inspector on the throw, does not because the Inspector thought the
exception was "caught".

  1. finally's yields confusing break points when the Inspector "Breaks on All Exceptions"
  1. In a try-finally scenario, the Inspector breaks 2 times: 1 at the throw, 1 at the finally.
  2. In a for-of loop (which has synthesized finallys), the Inspector will do another break. Similarly for other cases of JS code which synthesize finallys.
  3. At VM re-entry boundaries (e.g. js throws & returns to native code, which returns to js), the Inspector will do another break if there's an uncaught exception.

How this patch fixes the issues:
===============================

  1. We introduce an Exception object that wraps the thrown value and the exception stack.

When throwing an exception, the VM will check if the thrown value is an Exception
object or not. If it is not an Exception object, then we must be throwing a new
exception. The VM will create an Exception object to wrap the thrown value and
capture the current stack for it.

If the thrown value is already an Exception object, then the requested throw operation
must be a re-throw. The VM will not capture a new stack for it.

  1. op_catch will now populate 2 locals: 1 for the Exception, 1 for the thrown JSValue.

The VM is aware of the Exception object and uses it for rethrows in finally blocks.
JS source code is never aware of the Exception object.

JS code is aware of the thrown value. If it throws the caught thrown value, that
constitutes a new throw, and a new Exception object will be created for it.

  1. The VM no longer tracks the thrown JSValue and the exception stack. It will only track a m_exception field which is an Exception*.
  1. The BytecodeGenerator has already been updated in a prior patch to distinguish between Catch, Finally, and SynthesizedFinally blocks. The interpreter runtime will now report to the debugger whether we have a Catch handler, not just any handlers.

The debugger will use this detail to determine whether to break or not. "Break on
uncaught exceptions" will only break if no Catch handler was found.

This solves the issue of the debugger breaking at finally blocks, and for-of statements.

  1. The Exception object will also have a flag to indicate whether the debugger has been notified of the Exception being thrown. Once the Interpreter notifies the debugger of the Exception object, it will mark this flag and not repeat the notify the debugger again of the same Exception.

This solves the issue of the debugger breaking at VM re-entry points due to uncaught
exceptions.

  1. The life-cycle of the captured exception stack trace will now follow the life-cycle of the Exception object.

Other changes:

  1. Change all clients of the VM::exception() to expect an Exception* instead of JSValue.
  1. Fixed a few bugs where thrown exceptions are not cleared before exiting the VM.
  1. Also renamed some variables and classes to better describe what they are.
  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):

  • API/JSObjectRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(JSClassCreate):
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

  • API/JSScriptRef.cpp:
  • API/JSValue.mm:

(JSContainerConvertor::take):
(reportExceptionToInspector):

  • API/JSValueRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(evernoteHackNeeded):
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptFunctionCall.h:
  • bytecode/BytecodeList.json:
  • op_catch now had 2 operands: the exception register, and the thrown value register.
  • bytecode/BytecodeUseDef.h:

(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::handlerForBytecodeOffset):

  • bytecode/CodeBlock.h:
  • handlerForBytecodeOffset() now can look for just Catch handlers only.
  • bytecode/HandlerInfo.h:
  • Cleaned up some white space I accidentally added in a previous patch.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitThrow):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

  • Adding support for op_catch's 2 operands.
  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::exception):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluate):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

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

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluate):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluate):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):

  • inspector/ScriptCallStackFactory.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::handleBreakpointHit):
(Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition):

  • inspector/ScriptDebugServer.h:
  • interpreter/CallFrame.h:

(JSC::ExecState::clearException):
(JSC::ExecState::exception):
(JSC::ExecState::hadException):
(JSC::ExecState::atomicStringTable):
(JSC::ExecState::propertyNames):
(JSC::ExecState::clearSupplementaryExceptionInfo): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):
(JSC::Interpreter::stackTraceAsString):
(JSC::GetCatchHandlerFunctor::GetCatchHandlerFunctor):
(JSC::GetCatchHandlerFunctor::operator()):
(JSC::Interpreter::unwind):

  • Added a check for didNotifyInspectorOfThrow() here to prevent duplicate reports of the same Exception to the debugger.

(JSC::GetExceptionHandlerFunctor::GetExceptionHandlerFunctor): Deleted.
(JSC::GetExceptionHandlerFunctor::operator()): Deleted.

  • Renamed GetExceptionHandlerFunctor to GetCatchHandlerFunctor since the debugger is only interested in knowing whether we have Catch handlers.
  • interpreter/Interpreter.h:

(JSC::SuspendExceptionScope::SuspendExceptionScope):
(JSC::SuspendExceptionScope::~SuspendExceptionScope):
(JSC::Interpreter::sampler):
(JSC::ClearExceptionScope::ClearExceptionScope): Deleted.
(JSC::ClearExceptionScope::~ClearExceptionScope): Deleted.

  • Renamed ClearExceptionScope to SuspendExceptionScope because "clear" implies that we're purging the exception. Instead, we're merely suspending any handling of that exception for a period defined by the scope.
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • Removed the exception argument. It is always the value in VM::exception() anyway. genericUnwind() can just get it from the VM, and save everyone some work.
  • jit/JITExceptions.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_catch):

  • Add support for the new op_catch operands.
  • jit/JITOperations.cpp:
  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • jsc.cpp:

(functionRun):
(functionLoad):
(runWithScripts):
(runInteractive):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • Add support for the new op_catch operands. Also update the code to handle VM::m_exception being an Exception pointer, not a JSValue.
  • parser/NodeConstructors.h:

(JSC::TryNode::TryNode):

  • parser/Nodes.h:
  • runtime/CallData.cpp:

(JSC::call):

  • runtime/CallData.h:
  • runtime/Completion.cpp:

(JSC::evaluate):

  • runtime/Completion.h:

(JSC::evaluate):

  • Change evaluate() to take a reference to the returned exception value instead of a pointer. In all but 2 or 3 cases, we want the returned exception anyway. Might as well simplify the code by requiring the reference.
  • runtime/Error.h:

(JSC::throwVMError):
(JSC::throwVMTypeError):

  • runtime/Exception.cpp: Added.

(JSC::Exception::create):
(JSC::Exception::destroy):
(JSC::Exception::createStructure):
(JSC::Exception::visitChildren):
(JSC::Exception::Exception):
(JSC::Exception::~Exception):

  • runtime/Exception.h: Added.

(JSC::Exception::valueOffset):
(JSC::Exception::cast):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):

  • runtime/ExceptionHelpers.cpp:

(JSC::createTerminatedExecutionException):
(JSC::isTerminatedExecutionException):
(JSC::createStackOverflowError):

  • runtime/ExceptionHelpers.h:
  • runtime/GetterSetter.cpp:

(JSC::callGetter):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):

  • runtime/JSObject.cpp:
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):

  • runtime/JSPromiseDeferred.cpp:

(JSC::updateDeferredFromPotentialThenable):
(JSC::abruptRejection):

  • runtime/JSPromiseReaction.cpp:

(JSC::ExecutePromiseReactionMicrotask::run):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::releaseExecutableMemory):
(JSC::VM::throwException):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::getExceptionInfo): Deleted.
(JSC::VM::setExceptionInfo): Deleted.
(JSC::VM::clearException): Deleted.
(JSC::clearExceptionStack): Deleted.

  • runtime/VM.h:

(JSC::VM::targetMachinePCForThrowOffset):
(JSC::VM::clearException):
(JSC::VM::setException):
(JSC::VM::exception):
(JSC::VM::addressOfException):
(JSC::VM::exceptionStack): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener):

Source/WebCore:

Update to use the new JSC::Exception object.

Test: inspector/debugger/break-on-exceptions.html

  • ForwardingHeaders/runtime/Exception.h: Added.
  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsArray):
(WebCore::reportException):
(WebCore::reportCurrentException):

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

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::JSMainThreadExecState::didLeaveScriptContext):
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::currentState):
(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):
(WebCore::JSMainThreadExecState::runTask):

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia):

  • Fixed a bug where the exception was not cleared before entering the VM to call JS code.
  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::Source::start):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
(WebCore::WorkerScriptController::scheduleExecutionTermination):

  • bindings/js/WorkerScriptController.h:

(WebCore::WorkerScriptController::workerGlobalScopeWrapper):

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):

  • bindings/js/WorkerScriptDebugServer.h:
  • bindings/objc/WebScriptObject.mm:

(WebCore::createJSWrapper):
(WebCore::addExceptionToConsole):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):

  • Changed to call a version of JSMainThreadExecState::evaluate() that provides a stub returnedException because evaluateWebScript: doesn't need the exception.
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):

  • inspector/PageScriptDebugServer.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(WebKitInitializeApplicationCachePathIfNecessary):

  • Changed to use the new Exception object.

Source/WebKit/win:

  • WebView.cpp:

(WebView::reportException):

  • Changed to use the new Exception object.

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

  • Changed to use the new Exception object.

LayoutTests:

  • fast/dom/regress-131530-expected.txt:
  • Rebased results because we now have a proper line number.
  • http/tests/inspector/inspector-test.js:

(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):

  • Add the feature to sanitize the url reported by reportUncaughtException() since we can have tests that do expect uncaught exceptions, and we need the test results to be invariant. Sanitization of the url, in this case means, stripping off the preceding path.
  • inspector/debugger/break-on-exception-expected.txt: Added.
  • inspector/debugger/break-on-exception.html: Added.
  • inspector/debugger/break-on-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-catch.html: Added.
  • inspector/debugger/break-on-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-exception-finally.html: Added.
  • inspector/debugger/break-on-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-exception-native.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-exception-window-onerror.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception.html: Added.
  • inspector/debugger/break-on-uncaught-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-finally.html: Added.
  • inspector/debugger/break-on-uncaught-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-native.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror.html: Added.
  • inspector/debugger/resources/break-on-exception-tests.js: Added.

(doThrow):
(testCatch):
(testFinally):
(testThrowingThruNativeCode):
(testThrowingInPromise):
(testThrowingInPromiseWithCatch):
(testThrowingInPromiseThen):
(testThrowingInPromiseThenWithCatch):
(testThrowingInPromiseWithRethrowInCatch):

11:39 AM Changeset in webkit [185258] by eric.carlson@apple.com
  • 5 edits in trunk

Layout tests fullscreen/video-controls-drag.html and media/video-fullscreeen-only-controls.html
fail on WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=145675

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, changes covered by existing tests.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Use shouldHaveControls() to test if controls should

be visible.

(Controller.prototype.handleWrapperMouseMove): Don't return early when in fullscreen.
(Controller.prototype.updateFullscreenButtons): Drive-by fix: always show the (exit) fullscreen

button when in fullscreen.

LayoutTests:

  • TestExpectations: Unskip tests.
  • fullscreen/video-controls-drag.html: Minor cleanup, force layout before testing control location.
11:35 AM Changeset in webkit [185257] by Alan Bujtas
  • 6 edits in trunk/LayoutTests

[iOS] Rebaseline expected results.

Unreviewed gardening.

  • platform/ios-simulator/compositing/overflow/overflow-positioning-expected.txt:
  • platform/ios-simulator/css3/selectors3/xhtml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/css3/selectors3/xml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt:
  • platform/ios-simulator/ios/touch/touch-handler-on-window-expected.txt:
11:26 AM Changeset in webkit [185256] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

Underlines too close in vertical Chinese text.
https://bugs.webkit.org/show_bug.cgi?id=145651
<rdar://problem/11105920>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/decorations-vertical-underline.html

  • style/InlineTextBoxStyle.cpp:

(WebCore::computeUnderlineOffset):
Make sure the to map text-underline-position: auto to under when a line has an ideographic baseline.

LayoutTests:

  • fast/text/decorations-vertical-underline-expected.html: Added.
  • fast/text/decorations-vertical-underline.html: Added.
11:11 AM Changeset in webkit [185255] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=145671

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

"Idle" string no longer used.

  • UserInterface/Views/TimelineRecordFrame.js:

Reduced maximum frame width by 2px.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Added inner radius to chart and removed "Idle" value.

11:09 AM Changeset in webkit [185254] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout test http/tests/misc/acid3.html times out on Yosemite WK2 Debug.
https://bugs.webkit.org/show_bug.cgi?id=145702

  • platform/mac-wk2/TestExpectations: Marking as flaky for now.
10:41 AM Changeset in webkit [185253] by Said Abou-Hallawa
  • 6 edits
    2 adds in trunk/LayoutTests

[iOS] Rebaseline expected results for svg font tests

Reviewed by Daniel Bates.

  • platform/ios-simulator/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
  • platform/ios-simulator/svg/custom/svg-fonts-segmented-expected.txt:
  • platform/ios-simulator/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph.html:
10:19 AM Changeset in webkit [185252] by clopez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] [Wayland] The MiniBrowser crashes inside Weston.
https://bugs.webkit.org/show_bug.cgi?id=145645

Reviewed by Žan Doberšek.

No new tests, no behavior changes.

The issue was caused because we were not properly initializing the
Wayland display, and we were returning a nullptr in PlatformDisplayWayland::create(),
therefore a crash was happening on WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1136
<http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp?rev=185245#L1136>

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create): When connecting to the Wayland
server socket we should use the default value (NULL). This allows the value
to be overwritten at run-time by the environment variables WAYLAND_DISPLAY or
WAYLAND_SOCKET that the Wayland compositor should define. Also add a couple
of warnings to get information about what is going wrong when we fail to
initialize the display instead of just crashing without giving more information.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

(WebCore::PlatformDisplayWayland::isInitialized): Not longer check for m_webkitgtk
to signal that the display is ready because the UIProcess embedded Wayland
subcompositer is still not implemented. Added a FIXME note about it.

10:19 AM Changeset in webkit [185251] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Disable the CFNetwork cache in the web process
https://bugs.webkit.org/show_bug.cgi?id=145700
rdar://problem/20243343

Reviewed by Geoffrey Garen.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted.
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::initializeWebProcess): Deleted.

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

(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetCacheModel): Deleted.
(WebKit::WebProcess::platformTerminate): Deleted.

10:17 AM Changeset in webkit [185250] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Mask layer now is part of the layer tree output.

Unreviewed gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
10:08 AM Changeset in webkit [185249] by dino@apple.com
  • 3 edits
    3 adds in trunk

[Mac] Popup focus is cut off
https://bugs.webkit.org/show_bug.cgi?id=145688
<rdar://problem/18313375>

Reviewed by Brent Fulgham.

Source/WebCore:

Yosemite increased the width of focus rings, causing
some ugly clipping on Yosemite. The solution was to
not set a clip (which was code introduced for Leopard).

Test: fast/forms/select-element-focus-ring.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuList): Don't clip on Yosemite.

LayoutTests:

  • fast/forms/select-element-focus-ring.html: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.png: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.txt: Added.
9:50 AM Changeset in webkit [185248] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Consolidate default website data directory computations
https://bugs.webkit.org/show_bug.cgi?id=145698

Reviewed by Andreas Kling.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
(API::applicationCacheDirectory): Deleted.

9:19 AM Changeset in webkit [185247] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

  • platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
  • platform/mac/fast/scrolling/resources/inner_content.html: Added.
  • platform/mac/fast/scrolling/resources/testContent.html: Added.
  • platform/mac/fast/scrolling/resources/testImage.png: Added.
8:19 AM Changeset in webkit [185246] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] Support dots sequences in grid-template-areas
https://bugs.webkit.org/show_bug.cgi?id=145693

Reviewed by Sergio Villar Senin.

Source/WebCore:

The CSS WG agreed to consider a sequence of "." characters a single null
cell token for grid-template-areas. That way authors can match the
number of dots to the width of the column.

For more information see:
https://lists.w3.org/Archives/Public/www-style/2015May/0175.html

Added new test cases to check the new behavior.

  • css/CSSParser.cpp:

(WebCore::containsOnlyDots): New helper function to check that the grid
area name is composed by only dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
function to look for unnamed areas.

LayoutTests:

Added new test cases to check the new behavior.

  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html:
4:06 AM Changeset in webkit [185245] by clopez@igalia.com
  • 3 edits in trunk/Tools

check-webkit-style should recommend using nullptr instead of recommending using 0 for the null pointer in C++ code.
https://bugs.webkit.org/show_bug.cgi?id=145680

Reviewed by Brent Fulgham.

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

(check_for_null):

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

(WebKitStyleTest.test_null_false_zero):

2:11 AM Changeset in webkit [185244] by Stephanie Lewis
  • 3 edits in trunk/Tools

Make the web server more robust to timing issues..

Reviewed by Ryosuke Niwa.

Cleaned up exception handling.
Test server is actually serving pages before returning.
Clean up some style issues.

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

(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve): check output, wait for pages to serve
(SimpleHTTPServerDriver.baseUrl):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

2:11 AM Changeset in webkit [185243] by Stephanie Lewis
  • 6 edits in trunk/Tools

Add errors to run-benchmark exception handling.

Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:

(main):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._runCreateScript):
(GenericBenchmarkBuilder._applyPatch):
(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute):
(BenchmarkRunner):
(BenchmarkRunner.cleanup):

  • Scripts/webkitpy/benchmark_runner/generic_factory.py:

(GenericFactory.iterateGetItem):
(GenericFactory.create):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(loadModule):
(loadJSONFromFile):
(forceRemove):

2:11 AM Changeset in webkit [185242] by Stephanie Lewis
  • 3 edits in trunk/Tools

Streamline run-benchmark browser

Reviewed by Ryosuke Niwa.

Add Caffeinate so computer won't sleep while running.
Remove calls to collect output since we were just dumping to stdout anyway.
Add xpc dyld_path.
Default to system safari.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.launchProcess):
(OSXBrowserDriver.terminateProcesses):
(OSXBrowserDriver):
(OSXBrowserDriver.launchCaffeinateForProcess):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

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

Note: See TracTimeline for information about the timeline view.