Timeline



Mar 5, 2015:

11:14 PM WebKitGTK/2.4.x edited by tpopela@redhat.com
(diff)
10:19 PM Changeset in webkit [181139] by Simon Fraser
  • 38 edits in trunk/Source/WebCore

Allow tree dumping functions to be used in release builds by switching a flag
https://bugs.webkit.org/show_bug.cgi?id=142379

Reviewed by Zalan Bujtas.

There are various tree dumping functions that are useful for debugging, and sometimes
you want to be able to use them in release builds. Currently they are surrounded by
in config.h

  • config.h:
  • dom/DocumentMarkerController.cpp:
  • dom/DocumentMarkerController.h:
  • dom/Element.cpp:
  • dom/Element.h:
  • dom/Node.cpp:
  • dom/Node.h:
  • dom/Position.cpp: Position::debugPosition(const char* msg) was available in release builds, but this changes

is to respect ENABLE_TREE_DEBUGGING, which I think is correct.

  • dom/Position.h:
  • dom/Range.cpp:
  • dom/Range.h:
  • dom/Text.cpp:
  • dom/Text.h:
  • rendering/CounterNode.cpp:
  • rendering/CounterNode.h:
  • rendering/InlineBox.cpp:
  • rendering/InlineBox.h:
  • rendering/InlineFlowBox.cpp:
  • rendering/InlineFlowBox.h:
  • rendering/InlineTextBox.cpp:
  • rendering/InlineTextBox.h:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBlockFlow.h:
  • rendering/RenderCounter.cpp:
  • rendering/RenderCounter.h:
  • rendering/RenderLayer.cpp:
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateForegroundLayer):
(WebCore::RenderLayerBacking::updateBackgroundLayer):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::CompositingState::CompositingState):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):

  • rendering/RenderObject.cpp:
  • rendering/RenderObject.h: showTreeCharacterOffset was unused.
  • rendering/RootInlineBox.cpp:
  • rendering/RootInlineBox.h:
  • rendering/SimpleLineLayoutFunctions.cpp:
  • rendering/SimpleLineLayoutFunctions.h:
  • rendering/svg/SVGResources.cpp:
  • rendering/svg/SVGResources.h:
10:16 PM Changeset in webkit [181138] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r180924): ASSERTION FAILED: !from.isEmpty() in WebCore::TransformationMatrix::rectToRect
https://bugs.webkit.org/show_bug.cgi?id=142345

Reviewed by Martin Robinson.

This was caused by r180924 that postpones the creation of the
TextureMapper, which could cause that a layer has not yet a size
when TextureMapper::paint() is called. This patch moves the
creation of the TextureMapper to
LayerTreeHostGtk::setNativeSurfaceHandleForCompositing(), so that
it's created as soon as it's possible to create. This method is
called by the drawing area right after creating the
LayerTreeHostGtk if it already have a handler, or when the handle
is received from the UI process.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::initialize): Remove the
nsureTextureMapper call because at this point the layer context ID
is always 0, so it's impossible to create the TextureMapper.
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Remove the
ensureTextureMapper call from here too, since at this point, if we
have a context, we should also have a TextureMapper. Add an ASSERT
right before using the TextureMapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Create the TextureMapper here.
(WebKit::LayerTreeHostGtk::ensureTextureMapper): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
9:17 PM Changeset in webkit [181137] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Mac] 'Gliding' phase of scroll snap points is incorrect on desktop
https://bugs.webkit.org/show_bug.cgi?id=142351
<rdar://problem/20058023>

Reviewed by Dean Jackson.

This problem was caused by incorrectly starting a new snapping animation timer when the
"end momentum" phase event had been received. This caused WebKit to recalculate the
animation curve for the remaining distance, resulting in the bad animation behavior.

Removing this incorrect start animation command when entering the momentum ended state
resolves the problem.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Remove the command to
start a new snap animation when entering the "end momentum" state.

8:48 PM Changeset in webkit [181136] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=142349

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-03-05
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeRequestFromSessionCaches):

  • platform/CrossThreadCopier.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):

  • platform/network/ResourceRequestBase.h:
  • platform/network/cf/ResourceRequest.h:
  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

  • platform/network/curl/ResourceRequest.h:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

8:48 PM Changeset in webkit [181135] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Give up on Attachment testing.

Just skip Attachments until they settle down. Also document more debug assertions.

  • platform/win/TestExpectations:
8:43 PM Changeset in webkit [181134] by oliver@apple.com
  • 33 edits in trunk

Block mixed mode content
https://bugs.webkit.org/show_bug.cgi?id=142378

Reviewed by Darin Adler.

Source/WebCore:

Switched to blocking mixed mode content by default,
and modify the blocking rules to allow us to match
the behaviours of other browsers.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/MixedContentChecker.cpp:

(WebCore::MixedContentChecker::canDisplayInsecureContent):
(WebCore::MixedContentChecker::canRunInsecureContent):
(WebCore::MixedContentChecker::logWarning):

  • loader/MixedContentChecker.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::contentTypeFromResourceType):
(WebCore::CachedResourceLoader::checkInsecureContent):

  • page/Settings.in:

LayoutTests:

Update test results to reflect the new reality.

  • http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt:
  • http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-image-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/insecure-plugin-in-iframe-expected.txt:
  • http/tests/security/mixedContent/insecure-script-in-iframe-expected.txt:
  • 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/redirect-http-to-https-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt:
  • 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:
  • http/tests/xmlhttprequest/access-control-response-with-body.html:
8:38 PM Changeset in webkit [181133] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Document::recalcStyle() shouldn't call viewportContentsChanged() if there is a pending layout
https://bugs.webkit.org/show_bug.cgi?id=142140

Reviewed by Darin Adler.

Stop calling FrameView::viewportContentsChanged() in Document::recalcStyle()
if there is a layout pending to avoid doing unncessary work. If there is a
layout pending, we don't need to do anything because viewportContentsChanged()
will be called after layout.

We only need to call FrameView::viewportContentsChanged() in
Document::recalcStyle() if a style recalc does not cause a layout. For e.g.
a '-webkit-transform' could make an animated GIF visible without causing a
layout, in which case we need to resume the animated GIF after style recalc.

No new tests, already covered by:
fast/images/animated-gif-webkit-transform.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

8:37 PM Changeset in webkit [181132] by benjamin@webkit.org
  • 2 edits
    4 copies
    1 delete in trunk/LayoutTests

new layout test http/tests/usercontentfilter/character-set-basic-support.html fails
https://bugs.webkit.org/show_bug.cgi?id=142376

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-03-05

  • http/tests/contentextensions/character-set-basic-support-expected.txt: Copied from LayoutTests/http/tests/usercontentfilter/character-set-basic-support-expected.txt.
  • http/tests/contentextensions/character-set-basic-support.html: Copied from LayoutTests/http/tests/usercontentfilter/character-set-basic-support.html.
  • http/tests/contentextensions/character-set-basic-support.html.json: Copied from LayoutTests/http/tests/usercontentfilter/character-set-basic-support.html.json.
  • http/tests/contentextensions/resources: Copied from LayoutTests/http/tests/usercontentfilter/resources.
  • http/tests/usercontentfilter: Removed.
  • http/tests/usercontentfilter/character-set-basic-support-expected.txt: Removed.
  • http/tests/usercontentfilter/character-set-basic-support.html: Removed.
  • http/tests/usercontentfilter/character-set-basic-support.html.json: Removed.
  • http/tests/usercontentfilter/resources: Removed.
  • http/tests/usercontentfilter/resources/url-blocking-test.js: Removed.
8:04 PM Changeset in webkit [181131] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

[iOS] TestExpectations for ios-simulator-wk2 should fall back to 'wk2' after 'ios-simulator'
<http://webkit.org/b/142226>

Reviewed by Darin Adler.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.default_baseline_search_path): Switch the
TestExpectations order of ios-simulator-wk2 from this:

ios-simulator-wk2, wk2, ios-simulator

To this:

ios-simulator-wk2, ios-simualtor, wk2

7:41 PM Changeset in webkit [181130] by Joseph Pecoraro
  • 3 edits in trunk/LayoutTests

Unreviewed Test Fix: Remove unnecessary reference to "window" causing test failure.

  • js/object-literal-shorthand-construction-expected.txt:
  • js/script-tests/object-literal-shorthand-construction.js:
7:21 PM WebKitEFLLayoutTest edited by gyuyoung.kim@samsung.com
(diff)
6:58 PM Changeset in webkit [181129] by Stephanie Lewis
  • 2 edits in trunk/LayoutTests

Mark http/tests/usercontentfilter/character-set-basic-support.html as failing.
https://bugs.webkit.org/show_bug.cgi?id=142376

Unreviewed.

6:09 PM Changeset in webkit [181128] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.5.8.1/Source/WebCore

Merged r181005. rdar://problem/20044540

6:00 PM Changeset in webkit [181127] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.5.8.1/Source

Versioning.

5:55 PM Changeset in webkit [181126] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.8.1

New tag.

5:39 PM Changeset in webkit [181125] by Brent Fulgham
  • 3 edits in trunk/Tools

[Win] Provide tiered logging from MSBuild -- Errors on top, Warnings after
https://bugs.webkit.org/show_bug.cgi?id=142370

Reviewed by Dean Jackson.

  • Scripts/webkitdirs.pm:

(buildVisualStudioProject): Tell MSBuild to output log files to two separate
logs, one for warnings, the other for errors.

  • win/AssembleBuildLogs/AssembleLogs.cmd: Combine the error and warning logs

into the standard BuildOutput.htm document.

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

New tag.

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

[iOS Media] Web video on iPad appears black and missing the AirPlay placard when connected to an AirPlay route
https://bugs.webkit.org/show_bug.cgi?id=142373
<rdar://problem/19866072>

Reviewed by Brent Fulgham.

There was no style for the placard, which meant it had
zero height (and thus was invisible).

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-wireless-playback-status): Added.
(audio::-webkit-media-controls-wireless-playback-status.hidden):

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

Adjust volume box to not intersect with rest of inline media controls on OSX.
https://bugs.webkit.org/show_bug.cgi?id=142372.
<rdar://problem/20064327>

Reviewed by Brent Fulgham.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel .volume-box):
(audio::-webkit-media-controls-panel .volume-box:active):

5:16 PM Changeset in webkit [181121] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Source/JavaScriptCore:
ES6: Object Literal Extensions - Shorthand Properties (Identifiers)
https://bugs.webkit.org/show_bug.cgi?id=142353

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-05
Reviewed by Geoffrey Garen.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseProperty):
Parsing an identifier property followed by a comma or end brace treat
as a shorthand property and create a property that has the same
property name as the identifier name and value of a variable with that
identifier. Otherwise, fall through to getter/setter parsing.

LayoutTests:
Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
https://bugs.webkit.org/show_bug.cgi?id=142367

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-05
Reviewed by Geoffrey Garen.

  • js/object-literal-shorthand-construction-expected.txt: Added.
  • js/object-literal-shorthand-construction.html: Added.
  • js/script-tests/object-literal-shorthand-construction.js: Added.

(equivalent):
(testShorthandConstructionEquivalent):
(testShorthandConstructionNotEquivalent):
Tests specifically for new literal construction with shorthands.

  • sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T1-expected.txt:
  • sputnik/Conformance/12_Statement/12.1_Block/S12.1_A4_T2-expected.txt:
  • sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.4_The_for_in_Statement/S12.6.4_A15-expected.txt:

These tests use object literal shorthand construction syntax and expected
failures. The tests now fail differently, so just rebase their results.

4:52 PM Changeset in webkit [181120] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Implement new fullscreen media controls on Mac.
https://bugs.webkit.org/show_bug.cgi?id=142355.
<rdar://problem/16175787>
Reviewed by Dean Jackson.
Adjust sizes and positioning of all fullscreen media control elements.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-fullscreen-button.exit): Update to match entering fullscreen button.
(video:-webkit-full-screen::-webkit-media-controls-panel):
(video:-webkit-full-screen::-webkit-media-controls-panel .volume-box):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-max-button):
(video:-webkit-full-screen::-webkit-media-controls-volume-min-button):
(video:-webkit-full-screen::-webkit-media-controls-play-button):
(video:-webkit-full-screen::-webkit-media-controls-play-button.paused):
(video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
(video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
(video:-webkit-full-screen::-webkit-media-controls-timeline-container):
(video:-webkit-full-screen::-webkit-media-controls-current-time-display):
(video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
(audio:-webkit-full-screen::-webkit-media-controls-toggle-closed-captions-button):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb): Deleted.
(video:-webkit-full-screen::-webkit-media-controls-rewind-button): Deleted. Not used in full screen.

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

Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
https://bugs.webkit.org/show_bug.cgi?id=142367

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-05
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:

(WebInspector.ObjectTreeMapEntryTreeElement.prototype.propertyPathType):

  • UserInterface/Views/ObjectTreeSetIndexTreeElement.js:

(WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):

4:46 PM Changeset in webkit [181118] by timothy_horton@apple.com
  • 5 edits
    4 adds in trunk

<attachment> should allow the title property to override its title
https://bugs.webkit.org/show_bug.cgi?id=142369

Reviewed by Anders Carlsson.

Test: fast/attachment/attachment-title.html

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::parseAttribute):
Invalidate the attachment if the title changes.

(WebCore::HTMLAttachmentElement::attachmentTitle):
Use the title attribute for the title, unless it's empty, in which
case we'll use the file's name.

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

(WebCore::AttachmentLayout::layOutTitle):
Use attachmentTitle() instead of reaching into the file. Also rename
some things from filename to title.

  • fast/attachment/attachment-title.html: Added.
  • platform/mac/fast/attachment/attachment-title-expected.png: Added.
  • platform/mac/fast/attachment/attachment-title-expected.txt: Added.

Add a test for the title property.

4:44 PM Changeset in webkit [181117] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: console.debug/info should show up in Log Console Filter
https://bugs.webkit.org/show_bug.cgi?id=142300

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-03-05
Reviewed by Joseph Pecoraro.

Add WebInspector.ConsoleMessage.MessageLevel.Debug case that allows console.debug/info
to show up in Log Console Filter.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._filterMessages):

4:40 PM Changeset in webkit [181116] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Dashboard has trouble parsing iOS test output
<http://webkit.org/b/142364>

Reviewed by Alex Christensen.

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

(BuildbotTestResults.prototype._parseResults.resultSummarizer):
Add fallback path to build a regex using 'matchString' so that
it matches anywhere in the line. In practice, 'matchString' is
a prefix for the label following the number.

4:36 PM Changeset in webkit [181115] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Two text carets result when dragging a file into a contentEditable area that preventDefault()s the "drop" event
https://bugs.webkit.org/show_bug.cgi?id=142362
<rdar://problem/20046434>

Reviewed by Simon Fraser.

  • page/DragController.h:
  • page/DragController.cpp:

(WebCore::DragController::clearDragCaret):
Rename cancelDrag to clearDragCaret, since that's really what it does.

(WebCore::DragController::tryDocumentDrag):
When updating the drag position, if we're now over a <input type="file">,
clear the drag caret. This avoids leaving a caret behind when dragging
over a <input type="file"> inside a contentEditable area.

(WebCore::DragController::performDragOperation):
When the content preventDefault()s while finishing a drag, we should still
clear the drag caret, because it's possible that the client did not
preventDefault() on dragover/etc., so we would have set a cursor, and
now need to clear it so that it doesn't get left behind.

(WebCore::DragController::mouseMovedIntoDocument):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::concludeEditDrag):
Adjust to renamed clearDragCaret.

(WebCore::DragController::dragEnded):
Make use of clearDragCaret (which is equivalent to this line).

4:34 PM Changeset in webkit [181114] by timothy_horton@apple.com
  • 6 edits
    4 adds in trunk

<attachment> should support indication of download progress
https://bugs.webkit.org/show_bug.cgi?id=142336
<rdar://problem/19982504>

Reviewed by Anders Carlsson.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::parseAttribute):
Invalidate the attachment if the progress attribute changes.

  • platform/graphics/FloatRoundedRect.h:

(WebCore::FloatRoundedRect::Radii::Radii):
Add a Radii constructor that takes a single argument that is used
as the radius for all corners, for convenience.

  • rendering/RenderThemeMac.mm:

(WebCore::attachmentProgressBarBackgroundColor):
(WebCore::attachmentProgressBarFillColor):
(WebCore::attachmentProgressBarBorderColor):
Add a bunch of constants for the progress bar.

(WebCore::paintAttachmentIconBackground):
Make use of fillRoundedRect instead of creating a path.

(WebCore::paintAttachmentProgress):
(WebCore::RenderThemeMac::paintAttachment):
Paint a progress bar if the progress attribute exists and
is a valid floating point number.

  • fast/attachment/attachment-progress.html: Added.
  • platform/mac/fast/attachment/attachment-progress-expected.png: Added.
  • platform/mac/fast/attachment/attachment-progress-expected.txt: Added.
  • platform/mac-mavericks/fast/attachment/attachment-progress-expected.txt: Added.

Add a test for the <attachment> progress attribute.

  • platform/mac/fast/attachment/attachment-rendering-expected.png:

Rebaseline a test that changed in r181058 (and will change again!), but
which didn't start failing because the pixel test tolerance is such that
it only fails the hash check and not the test itself.

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

Fix linker warnings in TestWebKitAPI.
https://bugs.webkit.org/show_bug.cgi?id=141912

Patch by Alex Christensen <achristensen@webkit.org> on 2015-03-05
Reviewed by David Kilzer.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

Do not export TearDownTestCase or SetUpTestCase symbols.

4:21 PM Changeset in webkit [181112] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed EWS fix.

  • Scripts/webkitdirs.pm:

(buildVisualStudioProject): Dial logging back to 'ErrorsOnly' to see if that makes
the EWS output more usable.

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

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

Caused missing image banners in iTunes store pages (Requested
by smfr on #webkit).

Reverted changeset:

"FrameView::layoutTimerFired() should update style if needed
before doing layout"
https://bugs.webkit.org/show_bug.cgi?id=141688
http://trac.webkit.org/changeset/180846

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

Fix the build when NEON_INTRINSICS is enabled
https://bugs.webkit.org/show_bug.cgi?id=142361

Patch by Sandy Perez <sperez@indaba.es> on 2015-03-05
Reviewed by Csaba Osztrogonác.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::standardBoxBlur):

3:54 PM Changeset in webkit [181109] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.21/Source/WebCore

Roll out r180846. <rdar://problem/20059890>

3:53 PM Changeset in webkit [181108] by Chris Dumez
  • 9 edits in branches/safari-600.4-branch/Tools

Merge r181093 to fix layout testing on bots

2015-03-05 Chris Dumez <Chris Dumez>

run-webkit-tests and run-perf-tests should use WebKitTestRunner by default
https://bugs.webkit.org/show_bug.cgi?id=142325

Reviewed by Csaba Osztrogonác.

run-webkit-tests and run-perf-tests now use WebKitTestRunner by default.
As a result, "--webkit-test-runner / -2" parameters are replaced by
"--dump-render-tree / -1" so developers can run DumpRenderTree rather
than WebKitTestRunner.

3:47 PM Changeset in webkit [181107] by benjamin@webkit.org
  • 3 edits
    5 adds in trunk

Add basic support for character sets to the URL Filter parser
https://bugs.webkit.org/show_bug.cgi?id=142257

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-03-05
Reviewed by Alex Christensen.

Source/WebCore:

This patch is a first step toward making the URL filter parser a bit
more powerful: it adds support for character set atom.

I did not attempt to integrate that into the prefix tree in this patch,
instead, the GraphBuilder gets a two modes of generating the NFA:
PrefixTree and DirectGeneration.

As long as we only see trivial atoms, we use the PrefixTree generation
to minimize the number of nodes we need. As soon as we start a character
class, we switch to DirectGeneration and we generate the NFA from the input
without merging with previously seen patterns.

To differentiate between Trivial atoms and CharacterSet, we also gain
an AtomType state.

The character set themself are very simple: each character is represented by
a bit in a 16bytes bit vector.

  • contentextensions/URLFilterParser.cpp:

(WebCore::ContentExtensions::quantifyTrivialAtom):
(WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
(WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
(WebCore::ContentExtensions::GraphBuilder::quantifyAtom):
(WebCore::ContentExtensions::GraphBuilder::atomBackReference):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBegin):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassAtom):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassRange):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassEnd):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBuiltIn):
(WebCore::ContentExtensions::GraphBuilder::sinkAtom):
(WebCore::ContentExtensions::GraphBuilder::generateTransition):
(WebCore::ContentExtensions::GraphBuilder::sinkTrivialAtom):
(WebCore::ContentExtensions::GraphBuilder::sinkCharacterSet):
(WebCore::ContentExtensions::GraphBuilder::sinkPendingAtomIfNecessary):

LayoutTests:

  • http/tests/usercontentfilter/character-set-basic-support-expected.txt: Added.
  • http/tests/usercontentfilter/character-set-basic-support.html: Added.
  • http/tests/usercontentfilter/character-set-basic-support.html.json: Added.
  • http/tests/usercontentfilter/resources/url-blocking-test.js: Added.
3:37 PM Changeset in webkit [181106] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Unreviewed gardening.

Confirmed with JSC that warning 4611 (interaction between '_setjmp' and C++ object
destruction is non-portable) should be ignored in the JavaScriptCore project.

  • JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: Silence warning 4611.
3:34 PM Changeset in webkit [181105] by benjamin@webkit.org
  • 11 edits in trunk

Regression(r173761): ASSERTION FAILED: !is8Bit() in StringImpl::characters16()
https://bugs.webkit.org/show_bug.cgi?id=142350

Patch by Chris Dumez <Chris Dumez> on 2015-03-05
Reviewed by Michael Saboff and Benjamin Poulain.

Source/JavaScriptCore:

Call WTFString::hasInfixStartingAt() / hasInfixEndingAt() now that these
methods have been renamed for clarity.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):

Source/WTF:

Fix ASSERTION FAILED: !is8Bit() in StringImpl::characters16() from
WTF::equalInner() after r173761. The code was incorrectly assuming that
if stringImpl is 16-bit, then matchString is 16-bit too, which is not
correct.

Also rename WTFString::startsWith() / endsWith() taking an offset to
hasInfixStartingAt() / hasInfixEndingAt() for clarity. It seems odd
to call it startsWith even though it won't technically *start* with
the pattern if the input offset is greater than zero.

Also drop the caseSensitive argument as it is never used (always true
at call sites.

  • wtf/text/StringImpl.cpp:

(WTF::equalInner):
(WTF::StringImpl::hasInfixStartingAt):
(WTF::StringImpl::hasInfixEndingAt):
(WTF::StringImpl::startsWith): Deleted.
(WTF::StringImpl::endsWith): Deleted.

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.h:

(WTF::String::hasInfixStartingAt):
(WTF::String::hasInfixEndingAt):
(WTF::String::startsWith): Deleted.
(WTF::String::endsWith): Deleted.

Tools:

Add API test for WTFString::hasInfixStartingAt() to make sure it doesn't
crash if the string is 8-bit but the pattern is 16-bit (and vice-versa).

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

Update String.startsWith() / endsWith() test to cover cases where the
input string is 8-bit and the pattern is 16-bit, and vice-versa.

  • js/script-tests/string-includes.js:
  • js/string-includes-expected.txt:
3:30 PM Changeset in webkit [181104] by Chris Dumez
  • 9 edits in branches/safari-600.4.10-branch/Tools

Merge r181093 to fix layout testing on bots

2015-03-05 Chris Dumez <Chris Dumez>

run-webkit-tests and run-perf-tests should use WebKitTestRunner by default
https://bugs.webkit.org/show_bug.cgi?id=142325

Reviewed by Csaba Osztrogonác.

run-webkit-tests and run-perf-tests now use WebKitTestRunner by default.
As a result, "--webkit-test-runner / -2" parameters are replaced by
"--dump-render-tree / -1" so developers can run DumpRenderTree rather
than WebKitTestRunner.

2:47 PM Changeset in webkit [181103] by dino@apple.com
  • 3 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merge r180906. <rdar://problem/20058845>

2:28 PM Changeset in webkit [181102] by dino@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merge r181085. <rdar://problem/20058743>

2015-03-04 Dean Jackson <dino@apple.com>

[iOS Media] Small inline controls can clip the time widgets
https://bugs.webkit.org/show_bug.cgi?id=142319

Reviewed by Eric Carlson.

Start counting the number of digits in a duration so that
we can assign classes to the time widgets that specify
a minimum width.

  • Modules/mediacontrols/mediaControlsApple.css: Replace the hour-long and ten-hour-long classes with number of digits. (audio::-webkit-media-controls-time-remaining-display.five-digit-time): (audio::-webkit-media-controls-current-time-display.five-digit-time): (audio::-webkit-media-controls-time-remaining-display.six-digit-time): (audio::-webkit-media-controls-current-time-display.six-digit-time): (audio::-webkit-media-controls-time-remaining-display.hour-long-time): Deleted. (audio::-webkit-media-controls-current-time-display.hour-long-time): Deleted. (audio::-webkit-media-controls-time-remaining-display.ten-hour-long-time): Deleted. (audio::-webkit-media-controls-current-time-display.ten-hour-long-time): Deleted.
  • Modules/mediacontrols/mediaControlsApple.js: Add some new class names. (Controller.prototype.updateDuration): Set the class of the time widgets when we know how long the media runs.
  • Modules/mediacontrols/mediaControlsiOS.css: Values for iOS that are big enough to avoid clipping. (video::-webkit-media-controls-current-time-display): (video::-webkit-media-controls-time-remaining-display): (video::-webkit-media-controls-current-time-display.three-digit-time): (video::-webkit-media-controls-time-remaining-display.three-digit-time): (video::-webkit-media-controls-current-time-display.four-digit-time): (video::-webkit-media-controls-time-remaining-display.four-digit-time): (video::-webkit-media-controls-current-time-display.five-digit-time): (video::-webkit-media-controls-time-remaining-display.five-digit-time): (video::-webkit-media-controls-current-time-display.six-digit-time): (video::-webkit-media-controls-time-remaining-display.six-digit-time): (audio::-webkit-media-controls-timeline-container): Deleted. (video::-webkit-media-text-track-container): Deleted.
2:25 PM Changeset in webkit [181101] by Chris Dumez
  • 9 edits in branches/safari-600.5-branch/Tools

Merge r181093 to fix layout testing on bots

2015-03-05 Chris Dumez <Chris Dumez>

run-webkit-tests and run-perf-tests should use WebKitTestRunner by default
https://bugs.webkit.org/show_bug.cgi?id=142325

Reviewed by Csaba Osztrogonác.

run-webkit-tests and run-perf-tests now use WebKitTestRunner by default.
As a result, "--webkit-test-runner / -2" parameters are replaced by
"--dump-render-tree / -1" so developers can run DumpRenderTree rather
than WebKitTestRunner.

1:54 PM Changeset in webkit [181100] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Minor touchups to inline media control icons.
https://bugs.webkit.org/show_bug.cgi?id=142354.
<rdar://problem/20058854>.

Reviewed by Brent Fulgham.

Increase sizes of play/pause and fullscreen buttons slightly.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-play-button.paused):
(audio::-webkit-media-controls-fullscreen-button):

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

WKWebView Encoder for remote object communication does not implement encodeInt32:forKey:
https://bugs.webkit.org/show_bug.cgi?id=142356
rdar://problem/20058952

Reviewed by Tim Horton.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(-[WKRemoteObjectEncoder encodeInt32:forKey:]):
(-[WKRemoteObjectDecoder decodeInt32ForKey:]):

1:38 PM Changeset in webkit [181098] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Ensure build target directory exists when launching MSBuild
https://bugs.webkit.org/show_bug.cgi?id=142360

Reviewed by Dean Jackson.

Create the build output directory (if it doesn't exist) before
launching MSBuild so that it can immediately begin writing logs.

  • Scripts/webkitdirs.pm:

(buildVisualStudioProject):

1:32 PM Changeset in webkit [181097] by Lucas Forschler
  • 1 edit in trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json

fix config.json.

1:09 PM Changeset in webkit [181096] by roger_fong@apple.com
  • 5 edits in trunk

Update inline media control icons for OSX.
https://bugs.webkit.org/show_bug.cgi?id=142305.
<rdar://problem/19997484>

Reviewed by Dean Jackson.

Changes include: new volume button, new full screen button, new play/pause button.
Repositioning of 30 second and play buttons.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel button):
(audio::-webkit-media-controls-rewind-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-play-button.paused):
(audio::-webkit-media-controls-panel .mute-box):
(video::-webkit-media-controls-volume-max-button):
(video::-webkit-media-controls-volume-min-button):
(audio::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-current-time-display):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.configureInlineControls): Swap positions of rewind and play buttons.
(Controller.prototype.handleMuteButtonClicked): Remember to update volume slider when necessary.
(Controller.prototype.updateVolume): Ditto

  • platform/mac/TestExpectations: Skip two failing tests caused by this patch.

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

12:56 PM Changeset in webkit [181095] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

12:27 PM Changeset in webkit [181094] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Caps lock indicator lays out in wrong place.

12:11 PM Changeset in webkit [181093] by Chris Dumez
  • 10 edits in trunk/Tools

run-webkit-tests and run-perf-tests should use WebKitTestRunner by default
https://bugs.webkit.org/show_bug.cgi?id=142325

Reviewed by Csaba Osztrogonác.

run-webkit-tests and run-perf-tests now use WebKitTestRunner by default.
As a result, "--webkit-test-runner / -2" parameters are replaced by
"--dump-render-tree / -1" so developers can run DumpRenderTree rather
than WebKitTestRunner.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunWebKit1Tests):
(RunWebKit1Tests.start):
(RunWebKit1LeakTests):
(RunWebKit1LeakTests.start):
(RunAndUploadPerfTestsWebKit1):
(RunAndUploadPerfTestsWebKit1.start):
(TestFactory):
(TestWebKit1LeaksFactory):
(TestWebKit1LeaksFactory.init):
(TestWebKit1Factory):
(TestWebKit1AllButJSCFactory):
(TestAllButJSCFactory):
(BuildAndPerfTestWebKit1Factory):
(BuildAndPerfTestWebKit1Factory.init):
(BuildAndPerfTestFactory):
(BuildAndPerfTestFactory.init):
(DownloadAndPerfTestWebKit1Factory):
(DownloadAndPerfTestWebKit1Factory.init):
(DownloadAndPerfTestFactory):
(DownloadAndPerfTestFactory.init):
(RunWebKitLeakTests): Deleted.
(RunWebKitLeakTests.start): Deleted.
(RunWebKit2Tests): Deleted.
(RunWebKit2Tests.start): Deleted.
(RunAndUploadPerfTestsWebKit2): Deleted.
(RunAndUploadPerfTestsWebKit2.start): Deleted.
(TestLeaksFactory): Deleted.
(TestLeaksFactory.init): Deleted.
(TestWebKit2Factory): Deleted.
(TestWebKit2AndJSCFactory): Deleted.
(BuildAndPerfTestWebKit2Factory): Deleted.
(BuildAndPerfTestWebKit2Factory.init): Deleted.
(DownloadAndPerfTestWebKit2Factory): Deleted.
(DownloadAndPerfTestWebKit2Factory.init): Deleted.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._parse_args):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_build_driver):

12:05 PM Changeset in webkit [181092] by Brent Fulgham
  • 3 edits in trunk/Tools

[Win] Switch to MSBuild so we get more useful stdout logging in buildbot
https://bugs.webkit.org/show_bug.cgi?id=140845

Reviewed by David Kilzer.

Update 'webkitdirs.pm' to locate the MSBuild used with Visual Studio 2013
and generate suitable build commands to drive a full build from our
existing solution files.

  • Scripts/webkitdirs.pm:

(msBuildInstallDir): Added.
(determineConfigurationForVisualStudio): Revise to use MSBuild command
line arguments to drive the build.
(setupCygwinEnv): Warn user if MSBuild cannot be located.
(buildVisualStudioProject): Revise to use MSBuild command line arguments
to specify build architecture.

  • win/AssembleBuildLogs/AssembleLogs.cmd: MSBuild doesn't produce individual

output logs, so don't attempt to consolidate them. Also: Drive-by fix: Don't
bother looking for CoreUI or SafariTheme build logs.

11:52 AM Changeset in webkit [181091] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS Media] Use a blurry background for media controls
https://bugs.webkit.org/show_bug.cgi?id=142316
<rdar://problem/14911098>

Reviewed by Eric Carlson.

Start using the -webkit-appearance media-controls-light-bar-background
in order to get the blurry background of media controls.

  • Modules/mediacontrols/mediaControlsApple.js: Keep the panel and the

panel background in sync when it comes to hiding and showing. It would
be better if this could be done on a container element in the future.
(Controller.prototype.handlePanelTransitionEnd):
(Controller.prototype.setPlaying):
(Controller.prototype.showControls):
(Controller.prototype.hideControls):

  • Modules/mediacontrols/mediaControlsiOS.css: New background container

with the special appearance. I also renamed "composited-parent" to
"container", which makes more sense.
(video::-webkit-media-controls-panel-container):
(audio::-webkit-media-controls-panel-container):
(video::-webkit-media-controls-panel-background):
(audio::-webkit-media-controls-panel-background):
(video::-webkit-media-controls-panel-background.paused):
(video::-webkit-media-controls-panel):
(audio::-webkit-media-controls-panel):
(video::-webkit-media-controls-panel.paused):
(audio::-webkit-media-controls-optimized-fullscreen-button):
(audio::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
(video::-webkit-media-controls-panel-composited-parent): Deleted.
(video::-webkit-media-controls-panel:hover): Deleted.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createControls): Create the new background element.
(ControllerIOS.prototype.addControls):
(ControllerIOS.prototype.set pageScaleFactor): Temporarily disable
this because the background disappears when the zoom factor
is too high - we start tiling the background. This will be addressed
by https://bugs.webkit.org/show_bug.cgi?id=142317.

11:51 AM Changeset in webkit [181090] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Mechanical text-related cleanup
https://bugs.webkit.org/show_bug.cgi?id=142326

Reviewed by Andreas Kling.

Use nullptr instead of 0.
Use references instead of pointers.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::adjustSelectionRectForComplexText):
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):
(WebCore::FontCascade::floatWidthForComplexText):
(WebCore::FontCascade::offsetForPositionForComplexText):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::TextLayout::TextLayout):
(WebCore::ComplexTextController::ComplexTextController):

  • platform/graphics/mac/ComplexTextController.h:
  • rendering/InlineIterator.h:

(WebCore::InlineIterator::InlineIterator):
(WebCore::InlineIterator::clear):
(WebCore::bidiNextShared):
(WebCore::bidiNextSkippingEmptyInlines):
(WebCore::bidiNextIncludingEmptyInlines):
(WebCore::InlineWalker::InlineWalker):
(WebCore::InlineIterator::increment):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

  • rendering/line/BreakingContextInlineHeaders.h:

(WebCore::measureHyphenWidth):
(WebCore::textWidth):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):

11:40 AM Changeset in webkit [181089] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Add ObjectTreeBaseTreeElement to share functionality
https://bugs.webkit.org/show_bug.cgi?id=142323

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-05
Reviewed by Timothy Hatcher.

By making this change:

  • Share lots of duplicated code.
  • Array / Set / Map tree elements get context menu support
  • UserInterface/Main.html:
  • UserInterface/Views/ObjectTreeBaseTreeElement.js: Added.

(WebInspector.ObjectTreeBaseTreeElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.get property):
(WebInspector.ObjectTreeBaseTreeElement.prototype.get propertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu):
(WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.thisPropertyPath):
(WebInspector.ObjectTreeBaseTreeElement.prototype.hadError):
(WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathType):
(WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathString):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createReadOnlyIconElement):
New file, copying most of the code from PropertyTreeElement so it can be shared.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:

(WebInspector.ObjectTreeArrayIndexTreeElement):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.invokedGetter):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.): Deleted.
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement): Deleted.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement):
(WebInspector.ObjectTreePropertyTreeElement.prototype.invokedGetter):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
(WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
(WebInspector.ObjectTreePropertyTreeElement.prototype.get property): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement): Deleted.
(WebInspector.ObjectTreePropertyTreeElement.prototype): Deleted.
Subclass ObjectTreeBaseTreeElement and eliminate the code now
automatically handled by the base class.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:

(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString): Deleted.

  • UserInterface/Views/ObjectTreeSetIndexTreeElement.js:

(WebInspector.ObjectTreeSetIndexTreeElement):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValue):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
Override resolved value since these are not about PropertyDescriptors.
This will make context menus work automatically.

11:32 AM Changeset in webkit [181088] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[buildbot] mastercfg_unittest.py should be runnable easily
https://bugs.webkit.org/show_bug.cgi?id=142219

Reviewed by Chris Dumez.

Buildbot 0.8.6p1 runs on build.webkit org with Twisted 12.1.0, which is
the last Twisted version works together with this buildbot version.

  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller): Added prepend_to_search_path argument to be able
to prefer autoinstalled package to system package.
(AutoInstaller.init):
(AutoInstaller._set_up_target_dir):
(AutoInstaller._extract_tar): Renamed from _extract_targz, now it works with tar.bz2 too.
(AutoInstaller._prepare_package):
(AutoInstaller._extract_targz): Renamed to _extract_tar.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_buildbot): Autoinstall Twisted 12.1.0.

11:32 AM Changeset in webkit [181087] by Brent Fulgham
  • 10 edits
    2 moves in trunk/Source/WebCore

Move AxisScrollSnapAnimator logic to ScrollController
https://bugs.webkit.org/show_bug.cgi?id=142293
<rdar://problem/20039867>

Reviewed by Dean Jackson.

No change in function.

Move the animation logic out of 'AxisScrollSnapAnimator' into 'ScrollController'. Rename the remaining
bits of 'AxisScrollSnapAnimator' as 'ScrollSnapAnimatorState'. Remove a number of delegate methods required
by 'AxisScrollSnapAnimatorClient' that are no longer needed.

Also, break up some of the Scroll Snap Point math to be a little easier to understand.

  • WebCore.xcodeproj/project.pbxproj: Rename 'platform/mac/AxisScrollSnapAnimator.{h,mm}' -> 'platform/cocoa/ScrollSnapAnimatorState.h'
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Mark 'scrollOffsetOnAxis' as const.
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Make 'const'

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scrollOffsetOnAxis): Make 'const'

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h: No longer subclass from AxisScrollSnapAnimatorClient.
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::scrollSnapPointState): Added accessors (const and non-const) for the individual
Scroll Snap State of each axis.
(WebCore::toWheelEventStatus): Moved from AxisScrollSnapAnimator.
(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Added helper function containing the snap wheel handler code
from AxisScrollSnapAnimator.
(WebCore::ScrollController::shouldOverrideWheelEvent): Moved from AxisScrollSnapAnimator.
(WebCore::ScrollController::processWheelEventForScrollSnap): Update to use new methods moved from AxisScrollSnapAnimator.
(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Update for new ScrollSnapAnimatorState class.
(WebCore::ScrollController::updateScrollSnapPoints): Ditto.
(WebCore::ScrollController::startScrollSnapTimer): Call client (delegate) method.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto.
(WebCore::ScrollController::horizontalScrollSnapTimerFired): Call new 'scrollSnapAnimationUpdate' method passing the
correct axis to animate.
(WebCore::ScrollController::verticalScrollSnapTimerFired): Ditto.
(WebCore::ScrollController::scrollSnapAnimationUpdate): Moved from AxisScrollSnapAnimator.
(WebCore::projectedInertialScrollDistance): Moved from AxisScrollSnapAnimator.
(WebCore::ScrollController::initializeGlideParameters): Ditto.
(WebCore::ScrollController::beginScrollSnapAnimation): Ditto.
(WebCore::ScrollController::endScrollSnapAnimation): Ditto.
(WebCore::snapProgress): Created a new function for this calculation to make reasoning about the 'computeSnapDelta' and
'computeGlideDelta' easier.
(WebCore::clampedSnapMagnitude): Ditto.
(WebCore::ScrollController::computeSnapDelta): Moved from AxisScrollSnapAnimator.
(WebCore::snapGlide): Created a new function for this calculation to make reasoning about the 'computeGlideDelta' easier.
(WebCore::ScrollController::computeGlideDelta): Moved from AxisScrollSnapAnimator.
(WebCore::ScrollController::scrollOffsetOnAxis): Deleted.
(WebCore::ScrollController::immediateScrollOnAxis): Deleted.

  • platform/cocoa/ScrollSnapAnimatorState.h: Copied from platform/mac/AxisScrollSnapAnimator.h.

(WebCore::AxisScrollSnapAnimatorClient::~AxisScrollSnapAnimatorClient): Deleted.

  • platform/cocoa/ScrollSnapAnimatorState.mm: Copied from platform/mac/AxisScrollSnapAnimator.mm.

(WebCore::ScrollSnapAnimatorState::ScrollSnapAnimatorState):
(WebCore::ScrollSnapAnimatorState::pushInitialWheelDelta):
(WebCore::ScrollSnapAnimatorState::averageInitialWheelDelta):
(WebCore::ScrollSnapAnimatorState::clearInitialWheelDeltaWindow):
(WebCore::toWheelEventStatus): Deleted.
(WebCore::projectedInertialScrollDistance): Deleted.
(WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator): Deleted.
(WebCore::AxisScrollSnapAnimator::handleWheelEvent): Deleted.
(WebCore::AxisScrollSnapAnimator::shouldOverrideWheelEvent): Deleted.
(WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate): Deleted.
(WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation): Deleted.
(WebCore::AxisScrollSnapAnimator::endScrollSnapAnimation): Deleted.
(WebCore::AxisScrollSnapAnimator::computeSnapDelta): Deleted.
(WebCore::AxisScrollSnapAnimator::computeGlideDelta): Deleted.
(WebCore::AxisScrollSnapAnimator::initializeGlideParameters): Deleted.
(WebCore::AxisScrollSnapAnimator::pushInitialWheelDelta): Deleted.
(WebCore::AxisScrollSnapAnimator::averageInitialWheelDelta): Deleted.
(WebCore::AxisScrollSnapAnimator::clearInitialWheelDeltaWindow): Deleted.

  • platform/mac/AxisScrollSnapAnimator.h: Removed.
  • platform/mac/AxisScrollSnapAnimator.mm: Removed.
  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::pinnedInDirection): Removed.

10:59 AM Changeset in webkit [181086] by Chris Dumez
  • 7 edits in trunk/Source

NetworkCache efficacy logging is using too much CPU
https://bugs.webkit.org/show_bug.cgi?id=142186
<rdar://problem/19632080>

Reviewed by Antti Koivisto.

Source/WebKit2:

NetworkCache efficacy logging was using too much CPU mostly due to
database writes. Logging was using ~11.3% of the NetworkProcess'
CPU usage (~9.2% for writes / ~1.3% for reads).

This patch buffers writes requests in memory and only writes them
to disk every 10 seconds. We are thus writing to this less frequently
and writing more at once, in a single SQL transaction. After this
change, efficacy logging only accounts for ~3.5% of the NetworkProcess'
CPU activity (1.5% for writes / 1.2% for reads).

Now that CPU usage is more acceptable, this patch re-enables the
network cache efficicy logging.

  • NetworkProcess/cache/NetworkCacheStatistics.h:
  • NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:

(WebKit::executeSQLCommand):
(WebKit::executeSQLStatement):
Call step() instead of executeCommand() because:

  • The input statement is already prepared.
  • step() does not finalize() the statement and thus we caller can reuse it after calling reset().

(WebKit::NetworkCacheStatistics::NetworkCacheStatistics):
(WebKit::NetworkCacheStatistics::initialize):
(WebKit::NetworkCacheStatistics::bootstrapFromNetworkCache):
(WebKit::NetworkCacheStatistics::recordNotCachingResponse):
(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::markAsRequested):
(WebKit::NetworkCacheStatistics::writeTimerFired):
(WebKit::NetworkCacheStatistics::queryWasEverRequested):
(WebKit::NetworkCacheStatistics::addHashesToDatabase):
(WebKit::NetworkCacheStatistics::addStoreDecisionsToDatabase):
(WebKit::NetworkCacheStatistics::addHashToDatabase): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::registerUserDefaultsIfNeeded):
Re-enable the network cache efficacy logging.

Source/WTF:

  • wtf/HashMap.h:

(WTF::copyToVector):
Add copyToVector() utility function for HashMap that uses an std::pair<key, value>
as element type.

  • wtf/text/WTFString.h:

(WTF::StringCapture::StringCapture):
(WTF::StringCapture::operator=):
Add default constructor and assignment operator to StringCapture so that
it can be used in a Vector.

10:57 AM Changeset in webkit [181085] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS Media] Small inline controls can clip the time widgets
https://bugs.webkit.org/show_bug.cgi?id=142319

Reviewed by Eric Carlson.

Start counting the number of digits in a duration so that
we can assign classes to the time widgets that specify
a minimum width.

  • Modules/mediacontrols/mediaControlsApple.css: Replace the hour-long and ten-hour-long

classes with number of digits.
(audio::-webkit-media-controls-time-remaining-display.five-digit-time):
(audio::-webkit-media-controls-current-time-display.five-digit-time):
(audio::-webkit-media-controls-time-remaining-display.six-digit-time):
(audio::-webkit-media-controls-current-time-display.six-digit-time):
(audio::-webkit-media-controls-time-remaining-display.hour-long-time): Deleted.
(audio::-webkit-media-controls-current-time-display.hour-long-time): Deleted.
(audio::-webkit-media-controls-time-remaining-display.ten-hour-long-time): Deleted.
(audio::-webkit-media-controls-current-time-display.ten-hour-long-time): Deleted.

  • Modules/mediacontrols/mediaControlsApple.js: Add some new class names.

(Controller.prototype.updateDuration): Set the class of the time
widgets when we know how long the media runs.

  • Modules/mediacontrols/mediaControlsiOS.css: Values for iOS that

are big enough to avoid clipping.
(video::-webkit-media-controls-current-time-display):
(video::-webkit-media-controls-time-remaining-display):
(video::-webkit-media-controls-current-time-display.three-digit-time):
(video::-webkit-media-controls-time-remaining-display.three-digit-time):
(video::-webkit-media-controls-current-time-display.four-digit-time):
(video::-webkit-media-controls-time-remaining-display.four-digit-time):
(video::-webkit-media-controls-current-time-display.five-digit-time):
(video::-webkit-media-controls-time-remaining-display.five-digit-time):
(video::-webkit-media-controls-current-time-display.six-digit-time):
(video::-webkit-media-controls-time-remaining-display.six-digit-time):
(audio::-webkit-media-controls-timeline-container): Deleted.
(video::-webkit-media-text-track-container): Deleted.

10:27 AM Changeset in webkit [181084] by Yusuke Suzuki
  • 10 edits
    8 adds in trunk/Source/JavaScriptCore

Implement ES6 StringIterator
https://bugs.webkit.org/show_bug.cgi?id=142080

Reviewed by Filip Pizlo.

This patch introduces ES6 String Iterator.
It enumerates code points instead of elements in String.
So surrogate pairs should be handled correctly.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/StringIterator.prototype.js: Added.

(next):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSStringIterator.cpp: Added.

(JSC::JSStringIterator::finishCreation):

  • runtime/JSStringIterator.h: Added.

(JSC::JSStringIterator::createStructure):
(JSC::JSStringIterator::create):
(JSC::JSStringIterator::JSStringIterator):

  • runtime/StringIteratorConstructor.cpp: Added.

(JSC::StringIteratorConstructor::finishCreation):

  • runtime/StringIteratorConstructor.h: Added.

(JSC::StringIteratorConstructor::create):
(JSC::StringIteratorConstructor::createStructure):
(JSC::StringIteratorConstructor::StringIteratorConstructor):

  • runtime/StringIteratorPrototype.cpp: Added.

(JSC::StringIteratorPrototype::finishCreation):
(JSC::StringIteratorPrototype::getOwnPropertySlot):
(JSC::stringIteratorPrototypeIterator):

  • runtime/StringIteratorPrototype.h: Added.

(JSC::StringIteratorPrototype::create):
(JSC::StringIteratorPrototype::createStructure):
(JSC::StringIteratorPrototype::StringIteratorPrototype):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::stringProtoFuncIterator):

  • tests/stress/string-iterators.js: Added.

(testSurrogatePair):
(increment):
(for):

9:44 AM WebKitGTK/Dependencies edited by Michael Catanzaro
add "features will be disabled if you don't have a newer version" (diff)
9:42 AM WebKitGTK/Dependencies edited by Michael Catanzaro
Edit comment for glib, gnutls (diff)
9:29 AM Changeset in webkit [181083] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Fix the FTL build on Aarch64 Linux after r177421
https://bugs.webkit.org/show_bug.cgi?id=142040

Reviewed by Mark Lam.

  • llvm/library/LLVMExports.cpp:

(initializeAndGetJSCLLVMAPI):

9:26 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
9:21 AM Changeset in webkit [181082] by Brent Fulgham
  • 2 edits
    2 adds in trunk/LayoutTests

[Win] Reneable aria 'switch' tests after r18078.

Add a Windows rebaseline. Also document another batch of debug assertions.

  • platform/win/TestExpectations:
  • platform/win/accessibility/aria-toggle-button-with-title-expected.txt: Added.
  • platform/win/fast/attachment/attachment-subtitle-expected.txt: Added.
9:20 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
9:09 AM Changeset in webkit [181081] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

[cmake] Fix the web replay build
https://bugs.webkit.org/show_bug.cgi?id=142331

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • inspector/InspectorReplayAgent.cpp:

(WebCore::buildInspectorObjectForSessionState):
(WebCore::buildInspectorObjectForSegmentState):

9:06 AM Changeset in webkit [181080] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

Support WorkQueue QOS classes on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=142328

Reviewed by Anders Carlsson.

"The priority of a dispatch queue is inherited from its target queue. In order to
change the priority of a queue created with dispatch_queue_create(), use the
dispatch_get_global_queue() function to obtain a target queue of the desired prior-
ity."

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::targetQueueForQOSClass):
(WTF::WorkQueue::platformInitialize):

9:05 AM Changeset in webkit [181079] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Switch NetworkCacheStorage to WorkQueue abstraction
https://bugs.webkit.org/show_bug.cgi?id=142337

Reviewed by Anders Carlsson.

Don't use dispatch_async directly.

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCacheStorage::ioQueue):
(WebKit::NetworkCacheStorage::backgroundIOQueue):

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::dispatchReadOperation):
(WebKit::retrieveFromMemory):
(WebKit::NetworkCacheStorage::traverse):
(WebKit::NetworkCacheStorage::dispatchFullWriteOperation):
(WebKit::NetworkCacheStorage::dispatchHeaderWriteOperation):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
(WebKit::NetworkCacheStorage::deleteOldVersions):

8:51 AM Changeset in webkit [181078] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

[Win] AX: Implement support for ARIA 1.1 'switch' role
https://bugs.webkit.org/show_bug.cgi?id=142016
<rdar://problem/19953264>

Reviewed by Chris Fleizach.

The changes in Bug 141986 did not update the proper Windows routines to
support the new ARIA 1.1 role. This turned out to be trivial.

  • AccessibleBase.cpp:

(MSAARole): Provide MSAA role for 'switch'. Also correct 'ToggleButtonRole',
which was improperly reporting as 'push button'.

6:57 AM Changeset in webkit [181077] by Yusuke Suzuki
  • 22 edits
    2 copies
    7 adds in trunk/Source/JavaScriptCore

Upgrade ES6 Iterator interfaces
https://bugs.webkit.org/show_bug.cgi?id=141351

Reviewed by Filip Pizlo.

This patch upgrades the exising ES6 iterator to align the latest spec.
In the latest spec,

  1. Iterator.next returns object that implements IteratorResult interface { value: value, done, boolean }.
  2. Iterator.return is introduced. When the iteration is terminated by the abrupt completion,

it is called to close iterator state.

  1. Iterator.next of Array is moved from an iterator object to %ArrayIteratorPrototype%.

To upgrade it, we changes the bytecode that represents for-of loops.
And to embody the efficient iteration with an iterator object,
we implemented %ArrayIteratorPrototype%.next in JavaScript and
it is located in builtins/ArrayIterator.prototype.js.
Implementing it in JavaScript encourages inlining and
utilizes escape analysis for an iterator result object in DFG JIT.
And we dropped the intrinsic version of %ArrayIteratorPrototype%.next.

And we introduced IteratorOperations that is defined in the spec.
It aligns the iteration in the runtime to the latest spec.
Currently, Promise.all and Promise.race uses an iterable object.
However, Promise.all and Promise.race implementation is also based on the old spec.
Subsequent patches will upgrade it.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayIterator.prototype.js: Copied from Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h.

(next):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitThrowTypeError):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitIsObject):
(JSC::BytecodeGenerator::emitIsUndefined):

  • bytecompiler/BytecodeGenerator.h:
  • jit/ThunkGenerators.cpp:

(JSC::arrayIteratorNextThunkGenerator): Deleted.
(JSC::arrayIteratorNextKeyThunkGenerator): Deleted.
(JSC::arrayIteratorNextValueThunkGenerator): Deleted.

  • jit/ThunkGenerators.h:
  • runtime/ArgumentsIteratorPrototype.cpp:

(JSC::ArgumentsIteratorPrototype::finishCreation):
(JSC::argumentsIteratorPrototypeFuncNext):

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):
(JSC::ArrayIteratorPrototype::getOwnPropertySlot):
(JSC::arrayIteratorProtoFuncIterator):
(JSC::arrayIteratorPrototypeIterate): Deleted.

  • runtime/ArrayIteratorPrototype.h:
  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/IteratorOperations.cpp: Added.

(JSC::iteratorNext):
(JSC::iteratorValue):
(JSC::iteratorComplete):
(JSC::iteratorStep):
(JSC::iteratorClose):
(JSC::createIterResultObject):

  • runtime/IteratorOperations.h: Copied from Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp.
  • runtime/JSArrayIterator.cpp:

(JSC::JSArrayIterator::finishCreation):
(JSC::JSArrayIterator::visitChildren): Deleted.
(JSC::createIteratorResult): Deleted.
(JSC::arrayIteratorNext): Deleted.
(JSC::arrayIteratorNextKey): Deleted.
(JSC::arrayIteratorNextValue): Deleted.
(JSC::arrayIteratorNextGeneric): Deleted.

  • runtime/JSArrayIterator.h:

(JSC::JSArrayIterator::JSArrayIterator):
(JSC::JSArrayIterator::iterationKind): Deleted.
(JSC::JSArrayIterator::iteratedObject): Deleted.
(JSC::JSArrayIterator::nextIndex): Deleted.
(JSC::JSArrayIterator::setNextIndex): Deleted.
(JSC::JSArrayIterator::finish): Deleted.
(JSC::JSArrayIterator::offsetOfIterationKind): Deleted.
(JSC::JSArrayIterator::offsetOfIteratedObject): Deleted.
(JSC::JSArrayIterator::offsetOfNextIndex): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSPromiseConstructor.cpp:

(JSC::performPromiseRaceLoop):
(JSC::JSPromiseConstructorFuncRace):
(JSC::performPromiseAll):
(JSC::JSPromiseConstructorFuncAll):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):
(JSC::MapIteratorPrototypeFuncNext):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):
(JSC::SetIteratorPrototypeFuncNext):

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):

  • tests/stress/array-iterators-next-with-call.js: Added.

(increment):
(for):

  • tests/stress/array-iterators-next.js: Added.

Revive the older Array iterator tests that manually call 'next' method.

  • tests/stress/custom-iterators.js: Added.

(iter.next):
(iter.Symbol.iterator):
(iter.return):
(iter.get next):
(iter.get return):
(iteratorInterfaceErrorTest.iter.next):
(iteratorInterfaceErrorTest.iter.Symbol.iterator):
(iteratorInterfaceErrorTest.iter.return):
(iteratorInterfaceErrorTest):
(iteratorInterfaceErrorTestReturn.iter.next):
(iteratorInterfaceErrorTestReturn.iter.Symbol.iterator):
(iteratorInterfaceErrorTestReturn.iter.return):
(iteratorInterfaceErrorTestReturn):
(iteratorInterfaceBreakTestReturn.iter.next):
(iteratorInterfaceBreakTestReturn.iter.Symbol.iterator):
(iteratorInterfaceBreakTestReturn.iter.return):
(iteratorInterfaceBreakTestReturn):

This tests the behavior of custom iterators.
'next' and 'return' of iterator work with for-of.

  • tests/stress/iterators-shape.js: Added.

(iteratorShape):
(sameNextMethods):
(set var):

This tests the shape of iterators; iterators of Array have 'next' method in %ArrayIteratorPrototype%.

  • tests/stress/map-iterators-next.js: Added.

(set var):
(.get if):
(otherKey):

  • tests/stress/set-iterators-next.js: Added.

(otherKey):

6:05 AM Changeset in webkit [181076] by commit-queue@webkit.org
  • 15 edits in trunk

[EFL][WK2] Crash when "Download Linked File" from MiniBrowser context menu is clicked
https://bugs.webkit.org/show_bug.cgi?id=131162

Patch by Lukasz Bialek <l.bialek@samsung.com> on 2015-03-05
Reviewed by Gyuyoung Kim.

Source/WebKit2:

"Download Linked File" crashes because of null-pointer exception of Download Job.
Due to architectural difficulties, easy fix is not possible (EwkView is needed in
DownloadManager to create DownloadJobs and it is only used to notify the client
about download (finished, error, cancel) via smart callback using EwkView (Evas_Object).

Propose a new callbacks which are view independent and detach EFL's DownloadManager
from EwkView. It makes DownloadManagerEFL consistent with WKContextDownload.
Fix the crash and restore download functionality.

  • PlatformEfl.cmake:

Enable newly reimplemented tests

  • UIProcess/API/efl/EwkViewCallbacks.h:

Remove old callback mechanism

  • UIProcess/API/efl/ewk_context.cpp:

(ewk_context_download_callbacks_set):

  • UIProcess/API/efl/ewk_context.h:

Declare new callback functions and registration functions

  • UIProcess/API/efl/ewk_download_job.cpp:

(EwkDownloadJob::EwkDownloadJob):
(EwkDownloadJob::view): Deleted.

  • UIProcess/API/efl/ewk_download_job.h:
  • UIProcess/API/efl/ewk_download_job_private.h:

(EwkDownloadJob::create):
Remove EwkView dependency

  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/tests/test_ewk2_download_job.cpp:

Alter tests to new callback mechanism

  • UIProcess/efl/DownloadManagerEfl.cpp:

(WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename):
(WebKit::DownloadManagerEfl::didStart):
(WebKit::DownloadManagerEfl::didFail):
(WebKit::DownloadManagerEfl::didCancel):
(WebKit::DownloadManagerEfl::didFinish):
(WebKit::DownloadManagerEfl::DownloadManagerEfl):
(WebKit::DownloadManagerEfl::registerDownloadJob):
(WebKit::DownloadManagerEfl::setCallbacks):

  • UIProcess/efl/DownloadManagerEfl.h:
  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebViewEfl::handleDownloadRequest):
Add support of new callback mechanism

Tools:

  • MiniBrowser/efl/main.c:

(on_download_request):
(on_download_finished):
(on_download_failed):
(window_create):
Adapt download callbacks to new callback mechanism

4:03 AM WebKitGTK/Dependencies created by Carlos Garcia Campos
2:45 AM Changeset in webkit [181075] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix /webkit2/WebKitWebResource/mime-type after r180927.

In r180927 we updated the libsoup version used by the jhbuild. In
this new version the sniffer uses image/x-icon instead of
image/vnd.microsoft.icon for blank.ico resource.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebResourceMimeType):

2:38 AM Changeset in webkit [181074] by Carlos Garcia Campos
  • 4 edits in trunk

[SOUP] Check TLS errors as soon as they are set in the SoupMessage
https://bugs.webkit.org/show_bug.cgi?id=142244

Reviewed by Sergio Villar Senin.

Source/WebCore:

Connect to the notify::tls-errors signal of SoupMessage to cancel
the load earlier in case of TLS failure, preventing any private
data from being sent to the server before the TLS errors are checked.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::tlsErrorsChangedCallback):
(WebCore::gotHeadersCallback):
(WebCore::createSoupMessageForHandleAndRequest):

Tools:

Check that the SSL server doesn't process any request in case of
TLS errors when the policy is set to FAIL.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp:

(testTLSErrorsPolicy):
(testTLSErrorsRedirect):
(testTLSErrorsHTTPAuth):
(testLoadFailedWithTLSErrors):
(testSubresourceLoadFailedWithTLSErrors):
(httpsServerCallback):

1:27 AM Changeset in webkit [181073] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[SOUP] Disable RC4
https://bugs.webkit.org/show_bug.cgi?id=140014

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-03-05
Reviewed by Carlos Garcia Campos.

Disallow RC4-based ciphersuites when performing TLS negotiation,
because it is no longer considered secure.

  • NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:

(main):

  • WebProcess/EntryPoint/unix/WebProcessMain.cpp:

(main):

12:56 AM Changeset in webkit [181072] by g.czajkowski@samsung.com
  • 4 edits in trunk/Source/WebCore

TextCheckingParagraph::isEmpty() is sufficient to check whether paragraph is empty
https://bugs.webkit.org/show_bug.cgi?id=142276

Reviewed by Darin Adler.

TextCheckingParagraph::isEmpty() already calls TextCheckingParagraph::isRangeEmpty().
There is no need to call them both at the caller site.

No new tests. No behavior change.

  • editing/Editor.cpp:

(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
Update caller site.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::isEmpty):
Avoid using helepers here to get rid of them as they are
no longer needed outside TextCheckingParagraph.

  • editing/TextCheckingHelper.h:

(WebCore::TextCheckingParagraph::isTextEmpty): Deleted.
(WebCore::TextCheckingParagraph::isRangeEmpty): Deleted.
Do not expose isTextEmpty() and isRangeEmpty().

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

[EFL] REGRESSION (r178685): ASSERTION FAILED: !parameters.mediaKeyStorageDirectory.isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=141154

Patch by Pawel Forysiuk <p.forysiuk@samsung.com> on 2015-03-05
Reviewed by Jer Noble.

Unlike GTK, EFL port enables ENABLE_ENCRYPTED_MEDIA_V2 build option by default.

For the sake of completeness WebKitTestRunner should specify temporary
folder for MediaKeysStorageDirecory as well as IndexedDB, LocalStorage, etc.

Default non legacy paths are set up in ProcessPoolConfiguration constructor.
They use WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation
to get data storage paths. Only Mac port has an actual implementation of it.
However, WebKitTestRunner overrides them in favour of unique temporary dir
which is taken from libraryPathForTesting().

Since WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation
is not implemented for EFL and GTK ports it returns an empty string.
All default data folders besides MediaKeys are overridden in TestRunner
code with unique temporary folders derived from DUMPRENDERTREE_TEMP
env variable.

GTK port does not enable encrypted keys by default so
WebMediaKeyStorageManager::initialize() code path is never triggered.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Set MediaKeysStorageDirectory for all
WebKit ports.

12:03 AM Changeset in webkit [181070] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[buildbot] Add regression test to check which builder runs which tests
https://bugs.webkit.org/show_bug.cgi?id=142166

Reviewed by Alexey Proskuryakov.

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

(BuildStepsConstructorTest.createTest):
(BuildStepsTest):
(BuildStepsTest.generateTests):
(BuildStepsTest.createTest):
(BuildStepsTest.createTest.doTest):
(BuildStepsTest.test_unnecessary_expected_results):

Mar 4, 2015:

11:43 PM WebKitGTK/Roadmap edited by Carlos Garcia Campos
(diff)
9:41 PM Changeset in webkit [181069] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Clarify RenderElement::adjustStyleDifference()
https://bugs.webkit.org/show_bug.cgi?id=142256

Reviewed by David Hyatt.

Make RenderElement::adjustStyleDifference() clearer in two ways.

First, replace lots of if (diff < X) diff = X with
diff = std::max(diff, X). I did this even in cases where diff was
being set unconditionally, because it's never correct to change the diff
to a lesser value.

Second the "set at least SimplifiedLayout, but if we have PositionedMovementOnly
set it to SimplifiedLayoutAndPositionedMovement" was confusingly written.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustStyleDifference):

9:30 PM Changeset in webkit [181068] by mmaxfield@apple.com
  • 1 edit
    2 moves in trunk/LayoutTests

Test gardening after r181013

Unreviewed.

  • platform/mac/fast/text/trailing-word-expected.html: Renamed from LayoutTests/fast/text/trailing-word-expected.html.
  • platform/mac/fast/text/trailing-word.html: Renamed from LayoutTests/fast/text/trailing-word.html.
9:14 PM Changeset in webkit [181067] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Switch new soft-linking debug asserts to release asserts
<http://webkit.org/b/142176>

Reviewed by Alex Christensen.

  • platform/mac/SoftLinking.h:

(SOFT_LINK_CONSTANT_SOURCE): Switch to release assert.
(SOFT_LINK_FUNCTION_SOURCE): Ditto.

  • platform/win/SoftLinking.h:

(SOFT_LINK_CONSTANT_SOURCE): Ditto.
(SOFT_LINK_FUNCTION_SOURCE): Ditto. Note that this method is
effectively only called once because the function pointer is
replaced after the first time it's called.

9:13 PM Changeset in webkit [181066] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve display of previews with overflow
https://bugs.webkit.org/show_bug.cgi?id=142321

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

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):

8:54 PM Changeset in webkit [181065] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Optimize content extensions.
https://bugs.webkit.org/show_bug.cgi?id=142295

Patch by Alex Christensen <achristensen@webkit.org> on 2015-03-04
Reviewed by Benjamin Poulain.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):
There is no need to add duplicate sequential actions.

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::operator==):
Added to compare actions.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL):
Return early if a block action is found instead of moving to the next extension.

8:25 PM Changeset in webkit [181064] by Yusuke Suzuki
  • 16 edits in trunk/Source

Hide Promise with runtime flags under Cocoa JSContext API
https://bugs.webkit.org/show_bug.cgi?id=141965

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Since there's no run loop in JavaScriptCore APIs, Promises don't work currently.
So until they work, we hide Promise from a global object.
Introduce new JSC runtime flag, PromiseDisabled. When isPromiseDisabled is true,
Promise constructor is not attached to JSGlobalObject.

To make 0 as default runtime flags, we choose PromiseDisabled flag
instead of PromiseEnabled flag. So by default, Promise is enabled.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::JSCallbackObject):

  • API/JSContextRef.cpp:

(javaScriptRuntimeFlags):
(JSGlobalContextCreateInGroup):

  • API/tests/testapi.c:

(main):

  • API/tests/testapi.mm:

(testObjectiveCAPI):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::create):

  • runtime/RuntimeFlags.h:

(JSC::RuntimeFlags::createAllEnabled):

Source/WebKit/mac:

Add new JSC runtime flag, PromiseDisabled.

  • WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

Add new JSC runtime flag, PromiseDisabled.

  • Interfaces/IWebPreferences.idl:
  • Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

Add new JSC runtime flag, PromiseDisabled.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
6:35 PM Changeset in webkit [181063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

Broke the api tests (Requested by sundiamonde on #webkit).

Reverted changeset:

"Fix linker warnings in TestWebKitAPI."
https://bugs.webkit.org/show_bug.cgi?id=141912
http://trac.webkit.org/changeset/181054

6:27 PM Changeset in webkit [181062] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

Broke two layout tests (Requested by sundiamonde on #webkit).

Reverted changeset:

"Update inline media control icons for OSX."
https://bugs.webkit.org/show_bug.cgi?id=142305
http://trac.webkit.org/changeset/181046

6:27 PM Changeset in webkit [181061] by commit-queue@webkit.org
  • 20 edits in trunk

Web Inspector: Array/Collection Sizes should be visible and distinct
https://bugs.webkit.org/show_bug.cgi?id=142254

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

Source/JavaScriptCore:

  • runtime/WeakMapData.h:

(JSC::WeakMapData::size):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::weakMapSize):

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapSize):
Add a way to get a WeakMap's size.

  • inspector/protocol/Runtime.json:

Include size in RemoteObject and ObjectPreview.

  • inspector/InjectedScriptSource.js:

Set the size of RemoteObjects and previews if they
are array/collection types.

Source/WebInspectorUI:

  • UserInterface/Models/ObjectPreview.js:

(WebInspector.ObjectPreview):
(WebInspector.ObjectPreview.fromPayload):
(WebInspector.ObjectPreview.prototype.get size):
(WebInspector.ObjectPreview.prototype.hasSize):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get size):
(WebInspector.RemoteObject.prototype.hasSize):
Check if this type has a size and get the size.
Gracefully handle construction for legacy protocols.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview > .size):

  • UserInterface/Views/FormattedValue.css:

(:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size):
Style the array/collection size.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView):

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForTypesAndValue):
(WebInspector.FormattedValue.createElementForRemoteObject):
(WebInspector.FormattedValue.createElementForObjectPreview):
(WebInspector.FormattedValue.createElementForPropertyPreview):
Add an element showing the array/collection size.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype):
Remove special handling for Array sizes now that this is handled earlier.

  • UserInterface/Controllers/StorageManager.js:

(WebInspector.StorageManager.prototype.processData):
(WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
Fix what looks like broken RemoteObject construction.

LayoutTests:

  • inspector-protocol/runtime/getProperties-expected.txt:
  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:

Update tests now that RemoteObjects and Previews may have an explicit size.

6:19 PM Changeset in webkit [181060] by akling@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

GC should compute stack bounds and dump registers at the earliest opportunity.
<https://webkit.org/b/142310>
<rdar://problem/20045624>

Reviewed by Geoffrey Garen.

Make Heap::collect() a wrapper function around a collectImpl() where the work is actually done.
The wrapper function that grabs a snapshot of the current stack boundaries and register values
on entry, and sanitizes the stack on exit.

This is a speculative fix for what appears to be overly conservative behavior in the garbage
collector following r178364 which caused a measurable regression in memory usage on Membuster.
The theory being that we were putting pointers to dead things on the stack before scanning it,
and by doing that ended up marking things that we'd otherwise discover to be garbage.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::collect):
(JSC::Heap::collectImpl):

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

(JSC::MachineThreads::gatherFromCurrentThread):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MachineStackMarker.h:
5:51 PM Changeset in webkit [181059] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Silence GCC's -Wstrict-prototypes
https://bugs.webkit.org/show_bug.cgi?id=142278

Patch by Debarshi Ray <debarshir@gnome.org> on 2015-03-04
Reviewed by Alexey Proskuryakov.

  • API/JSContextRef.h:
5:43 PM Changeset in webkit [181058] by timothy_horton@apple.com
  • 11 edits
    2 deletes in trunk/Source/WebCore

<attachment> icons are low-resolution when transformed or under page scale
https://bugs.webkit.org/show_bug.cgi?id=142262
<rdar://problem/20035480>

Reviewed by Dean Jackson.

We should use Icon::createIconForFiles, just like <input type="file"> does,
instead of directly talking to IconServices. This results both in less code
and in NSImage's multiresolution magic making the icons sharp even under
the influence of transforms and page scale.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/IconServicesSPI.h: Removed.
  • platform/spi/mac/LaunchServicesSPI.h: Removed.

Get rid of IconServicesSPI.h and LaunchServicesSPI.h.

  • platform/graphics/Icon.h:

Include RetainPtr just once.
paint() should take a GraphicsContext reference (null is not an option)
and a FloatRect (after all, it just turns around and converts to NSRect).

  • platform/graphics/ios/IconIOS.mm:

(WebCore::Icon::paint):

  • platform/graphics/mac/IconMac.mm:

(WebCore::Icon::createIconForFiles):
(WebCore::Icon::paint):

  • platform/graphics/efl/IconEfl.cpp:

(WebCore::Icon::paint):

  • platform/graphics/gtk/IconGtk.cpp:

(WebCore::Icon::paint):

  • platform/graphics/win/IconWin.cpp:

(WebCore::Icon::paint):
Adapt to the paint() signature changes, fix some style, etc.

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::paintObject):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
Adapt to the paint() signature changes.

  • rendering/RenderThemeMac.mm:

(WebCore::paintAttachmentIcon):
Use Icon::createIconForFiles instead of IconServices.

5:40 PM Changeset in webkit [181057] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

<attachment> should not appear selected when the cursor is adjacent to it
https://bugs.webkit.org/show_bug.cgi?id=142311
<rdar://problem/20045862>

Reviewed by Dean Jackson.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::isSelected): Deleted.

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

(WebCore::titleTextColorForAttachment):
(WebCore::RenderThemeMac::paintAttachment):
(WebCore::labelTextColorForAttachment): Deleted.
We were using the wrong (and far too complicated) mechanism to determine
if the attachment is selected (to decide which highlight color to use).
Instead, just check selectionState().

5:39 PM Changeset in webkit [181056] by timothy_horton@apple.com
  • 8 edits
    4 adds in trunk

<attachment> should show the file size as detail text below the icon
https://bugs.webkit.org/show_bug.cgi?id=142261
<rdar://problem/20009570>

Reviewed by Dean Jackson.

Test: fast/attachment/attachment-subtitle.html

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFile):
(WebCore::HTMLAttachmentElement::parseAttribute):

  • html/HTMLAttachmentElement.h:

Let RenderAttachment know when the subtitle attribute changes.

  • html/HTMLAttributeNames.in:

Add a subtitle attribute.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::invalidate):
(WebCore::RenderAttachment::representedFileChanged): Deleted.

  • rendering/RenderAttachment.h:

Rename representedFileChanged to invalidate; it will cause layout and
repaint of the attachment. Mostly for use from HTMLAttachmentElement,
when properties that affect the display and/or intrinsic size change.

  • rendering/RenderThemeMac.mm:

(WebCore::attachmentTitleInactiveBackgroundColor):
(WebCore::attachmentTitleInactiveTextColor):
(WebCore::attachmentSubtitleTextColor):
(WebCore::titleTextColorForAttachment):
(WebCore::AttachmentLayout::addTitleLine):
(WebCore::AttachmentLayout::layOutTitle):
(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::addAttachmentTitleBackgroundRightCorner):
(WebCore::addAttachmentTitleBackgroundLeftCorner):
(WebCore::paintAttachmentTitleBackground):
(WebCore::paintAttachmentTitle):
(WebCore::paintAttachmentSubtitle):
(WebCore::RenderThemeMac::paintAttachment):
(WebCore::attachmentLabelInactiveBackgroundColor): Deleted.
(WebCore::attachmentLabelInactiveTextColor): Deleted.
(WebCore::labelTextColorForAttachment): Deleted.
(WebCore::AttachmentLayout::addLine): Deleted.
(WebCore::AttachmentLayout::layOutLabel): Deleted.
(WebCore::addAttachmentLabelBackgroundRightCorner): Deleted.
(WebCore::addAttachmentLabelBackgroundLeftCorner): Deleted.
(WebCore::paintAttachmentLabelBackground): Deleted.
(WebCore::paintAttachmentLabel): Deleted.
Rename everything "label" to "title" (except LabelLine, which is not
specifically about the title). We're going to use "title" for the
main text below the icon, and "subtitle" for the secondary text below that.

Avoid keeping the CTFonts on the AttachmentLayout; there's no need for it.

Add layOutSubtitle and paintAttachmentSubtitle, which orient and paint
the subtitle (below the title, in blue, smaller than the label).

  • fast/attachment/attachment-subtitle.html: Added.
  • platform/mac/fast/attachment/attachment-subtitle-expected.png: Added.
  • platform/mac/fast/attachment/attachment-subtitle-expected.txt: Added.

Add a test of the rendering of attachment subtitles, and results for Mac.

  • platform/mac-mavericks/fast/attachment/attachment-subtitle-expected.txt: Added.

Add Mavericks baselines.

5:19 PM Changeset in webkit [181055] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

[Windows] Build fix: Make sure to include <CoreMedia/CoreMedia.h> before redefining CMSampleBuffer

More fallout from:

Switch remaining CoreMedia soft-linking in WebCore over to CoreMediaSoftLink.{cpp,h}
<http://webkit.org/b/141870>

  • platform/cf/CoreMediaSoftLink.cpp:
  • platform/cf/CoreMediaSoftLink.h:
  • Remove include of <CoreMedia/CoreMedia.h> here. These already include CoreMediaSPI.h.
  • platform/spi/cf/CoreMediaSPI.h:
  • Add include of <CoreMedia/CoreMedia.h> here.
  • Remove redundant include of <CoreMedia/CMTime.h> for Windows.
5:18 PM Changeset in webkit [181054] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix linker warnings in TestWebKitAPI.
https://bugs.webkit.org/show_bug.cgi?id=141912

Patch by Alex Christensen <achristensen@webkit.org> on 2015-03-04
Reviewed by David Kilzer.

  • TestWebKitAPI/Configurations/Base.xcconfig:

Use GCC_SYMBOLS_PRIVATE_EXTERN like we do in WebCore.

4:54 PM Changeset in webkit [181053] by Lucas Forschler
  • 1 edit in branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderVideo.cpp

Build fix after 181048.

4:51 PM Changeset in webkit [181052] by ap@apple.com
  • 3 edits in trunk/Tools

[Mac] Set SystemUIFontSelect in DRT and WKTR
https://bugs.webkit.org/show_bug.cgi?id=142303

Reviewed by Myles C. Maxfield.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

4:11 PM Changeset in webkit [181051] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.21/Source/WebKit2

Merged r181004. rdar://problem/19983833

4:10 PM Changeset in webkit [181050] by Chris Dumez
  • 2 edits in trunk/Tools

Mac Perf bots should use WebKitTestRunner instead of DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=142314
<rdar://problem/20046835>

Reviewed by Ryosuke Niwa.

Mac Perf bots should use WebKitTestRunner instead of DumpRenderTree
to get WK2 code coverage.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
4:09 PM Changeset in webkit [181049] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Fix build with newer clang due to duplicate macro definition

Fallout from:

Switch remaining CoreMedia soft-linking in WebCore over to CoreMediaSoftLink.{cpp,h}
<http://webkit.org/b/141870>

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

Remove duplicate kCMTimeIndefinite macro.

4:09 PM Changeset in webkit [181048] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merge r180910. rdar://problem/19395137

4:08 PM Changeset in webkit [181047] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merge r180101. rdar://problem/19913017

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

Update inline media control icons for OSX.
https://bugs.webkit.org/show_bug.cgi?id=142305.
<rdar://problem/19997484>

Reviewed by Dean Jackson.

Changes include: new volume button, new full screen button, new play/pause button.
Repositioning of 30 second and play buttons.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel button):
(audio::-webkit-media-controls-rewind-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-play-button.paused):
(audio::-webkit-media-controls-panel .mute-box):
(video::-webkit-media-controls-volume-max-button):
(video::-webkit-media-controls-volume-min-button):
(audio::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-current-time-display):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.configureInlineControls): Swap positions of rewind and play buttons.
(Controller.prototype.handleMuteButtonClicked): Remember to update volume slider when necessary.
(Controller.prototype.updateVolume): Ditto

4:00 PM Changeset in webkit [181045] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4.10-branch/Source

Versioning.

3:52 PM Changeset in webkit [181044] by aestes@apple.com
  • 3 edits
    1 move in trunk/Source/WebCore

[Content Filtering] Rename ContentFilterMac.mm to ContentFilter.cpp
https://bugs.webkit.org/show_bug.cgi?id=142313

Reviewed by Anders Carlsson.

ContentFilterMac.mm no longer contains any Objective-C code, so rename it to ContentFilter.cpp. It is also no longer Mac-specific, so move it up to platform/.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/ContentFilter.cpp: Renamed from Source/WebCore/platform/mac/ContentFilterMac.mm.
  • platform/cocoa/NetworkExtensionContentFilter.h: Replaced NSInteger with long.
3:39 PM Changeset in webkit [181043] by achristensen@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

Unreviewed gardening.

  • http/tests/contentextensions/basic-filter.html.hson: Removed.
  • http/tests/contentextensions/basic-filter.html.json: Copied from http/tests/contentextensions/basic-filter.html.hson.

Spell json correctly. Does not start with h.

3:39 PM Changeset in webkit [181042] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.10.7

New tag.

3:36 PM Changeset in webkit [181041] by Lucas Forschler
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Merged r181038. rdar://problem/20046273

3:35 PM Changeset in webkit [181040] by bshafiei@apple.com
  • 2 edits in branches/safari-600.4.10-branch/Source/WebCore

Merged r181038. rdar://problem/20046308

3:25 PM Changeset in webkit [181039] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Attempted build fix.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
3:18 PM Changeset in webkit [181038] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r179597): Can't see power saver banner for plugins
https://bugs.webkit.org/show_bug.cgi?id=142312
<rdar://problem/20040517>

Reviewed by Brent Fulgham.

We were being a bit too restrictive when deciding a child
should not create a renderer. All shadow root children
of the snapshotted plugin need one.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::childShouldCreateRenderer):
Test if we're part of the shadow tree.

2:43 PM Changeset in webkit [181037] by aestes@apple.com
  • 5 edits
    2 copies
    2 adds in trunk/Source/WebCore

[Content Filtering] Make it easier to add new content filters
https://bugs.webkit.org/show_bug.cgi?id=142255

Reviewed by Sam Weinig.

ContentFilter was becoming a bit of a mess, with both the WebFilterEvaluator and NEFilterSource implementations
awkwardly living side-by-side. This patch cleans things up by moving these implementations into two separate
classes and turning ContentFilter itself into an abstract interface that each implements. A new class called
ContentFilterCollection, which also inherits from ContentFilter, manages the collection of individual content
filters and is vended to the rest of the system by ContentFilter::createIfNeeded().

This refactoring will make it easier to add a third type of content filter in a follow-on patch, namely a mock
content filter for testing purposes.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Called ContentFilter::createIfNeeded() instead of instantiating a ContentFilter directly.

  • platform/ContentFilter.h:

(WebCore::ContentFilter::~ContentFilter):

  • platform/cocoa/NetworkExtensionContentFilter.h: Copied from Source/WebCore/platform/ContentFilter.h.
  • platform/cocoa/NetworkExtensionContentFilter.mm: Added.

(WebCore::NetworkExtensionContentFilter::canHandleResponse): Moved NEFilterSource code from ContentFilterMac.mm to here.
(WebCore::NetworkExtensionContentFilter::create): Ditto.
(WebCore::NetworkExtensionContentFilter::NetworkExtensionContentFilter): Ditto.
(WebCore::NetworkExtensionContentFilter::~NetworkExtensionContentFilter): Ditto.
(WebCore::NetworkExtensionContentFilter::addData): Ditto.
(WebCore::NetworkExtensionContentFilter::finishedAddingData): Ditto.
(WebCore::NetworkExtensionContentFilter::needsMoreData): Ditto.
(WebCore::NetworkExtensionContentFilter::didBlockData): Ditto.
(WebCore::NetworkExtensionContentFilter::getReplacementData): Ditto.
(WebCore::NetworkExtensionContentFilter::unblockHandler): Ditto.

  • platform/cocoa/ParentalControlsContentFilter.h: Copied from Source/WebCore/platform/ContentFilter.h.
  • platform/cocoa/ParentalControlsContentFilter.mm: Added.

(WebCore::ParentalControlsContentFilter::canHandleResponse): Moved WebFilterEvaluator code from ContentFilterMac.mm to here.
(WebCore::ParentalControlsContentFilter::create): Ditto.
(WebCore::ParentalControlsContentFilter::ParentalControlsContentFilter): Ditto.
(WebCore::ParentalControlsContentFilter::addData): Ditto.
(WebCore::ParentalControlsContentFilter::finishedAddingData): Ditto.
(WebCore::ParentalControlsContentFilter::needsMoreData): Ditto.
(WebCore::ParentalControlsContentFilter::didBlockData): Ditto.
(WebCore::ParentalControlsContentFilter::getReplacementData): Ditto.
(WebCore::ParentalControlsContentFilter::unblockHandler): Ditto.

  • platform/mac/ContentFilterMac.mm:

(WebCore::contentFilterType): Added a helper function template that creates a new ContentFilterType.
(WebCore::contentFilterTypes): Registered a ContentFilterType for each type of content filter.
(WebCore::ContentFilter::createIfNeeded): Created a ContentFilterCollection containing each content filter that can handle the given response.
(WebCore::ContentFilterCollection::ContentFilterCollection): Constructs a ContentFilterCollection given a Vector of content filters.
(WebCore::ContentFilterCollection::addData): Forwarded the call to each content filter in m_contentFilters.
(WebCore::ContentFilterCollection::finishedAddingData): Ditto.
(WebCore::ContentFilterCollection::needsMoreData): Ditto.
(WebCore::ContentFilterCollection::didBlockData): Ditto.
(WebCore::ContentFilterCollection::getReplacementData): Returned replacement data for the first filter that blocked the load.
If no filter blocked the load, returned the first filter's replacement data.
(WebCore::ContentFilterCollection::unblockHandler): Returned the unblock handler for the first filter that blocked the load.
(WebCore::ContentFilter::ContentFilter): Deleted.
(WebCore::ContentFilter::~ContentFilter): Deleted.
(WebCore::ContentFilter::canHandleResponse): Deleted.
(WebCore::ContentFilter::addData): Deleted.
(WebCore::ContentFilter::finishedAddingData): Deleted.
(WebCore::ContentFilter::needsMoreData): Deleted.
(WebCore::ContentFilter::didBlockData): Deleted.
(WebCore::ContentFilter::getReplacementData): Deleted.
(WebCore::ContentFilter::unblockHandler): Deleted.

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

Switch remaining CoreMedia soft-linking in WebCore over to CoreMediaSoftLink.{cpp,h}
<http://webkit.org/b/141870>

Reviewed by Alex Christensen.

  • Configurations/WebCore.unexp:
  • Remove all weak symbols for CoreMedia.framework as they should no longer appear.
  • Modules/plugins/QuickTimePluginReplacement.mm:
  • platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • Clean up headers.
  • platform/cf/CoreMediaSoftLink.cpp:
  • platform/cf/CoreMediaSoftLink.h:
  • Add soft-link functions and constants from remaining source files.
  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/mac/PlatformClockCM.mm:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • Switch to using CoreMediaSoftLink.h.
  • platform/mac/SoftLinking.h:
  • platform/win/SoftLinking.h:
  • Remove 'const' from SOFT_LINK_CONSTANT_{HEADER,SOURCE}() macros since it won't work with const structs.
  • platform/spi/cf/CoreMediaSPI.h:
  • Add SPI declarations for Windows originally from InbandTextTrackPrivateAVF.cpp.
2:39 PM Changeset in webkit [181035] by benjamin@webkit.org
  • 17 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Add a node for Math.log()
https://bugs.webkit.org/show_bug.cgi?id=142126

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-03-04
Reviewed by Geoffrey Garen.

This patch adds the DFG node ArithLog for LogIntrinsic.

Having a direct call to log has very little value by itself, the implementation
in DFG and FTL is a simple function call.

What is useful in ArithLog is that we know the operation is pure.
This allow us to hoist it out of loops when the argument is independent
is an invariant of the loop.

Perf wise, this patch gives:
-Kraken's imaging-darkroom: definitely 1.2372x faster.
-AsmBench's Towers.c: definitely 1.0261x faster.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithLog):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

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

  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleLog):

  • tests/stress/math-log-basics.js: Added.
  • tests/stress/math-log-with-constants.js: Added.
2:34 PM Changeset in webkit [181034] by Lucas Forschler
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Merge 176554 for rdar://problem/20027031.

2:29 PM Changeset in webkit [181033] by Lucas Forschler
  • 5 edits in branches/safari-600.5-branch/Source/WebCore

Merged r181005. rdar://problem/20044540

2:20 PM Changeset in webkit [181032] by Lucas Forschler
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Merged r180065. rdar://problem/20044535

2:10 PM Changeset in webkit [181031] by achristensen@apple.com
  • 5 edits
    12 moves
    1 add in trunk

Move content extensions test to properly named directory.
https://bugs.webkit.org/show_bug.cgi?id=142299

Reviewed by Tim Horton.

Tools:

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

  • TestExpectations:
  • http/tests/contentextensions: Added.
  • http/tests/contentextensions/basic-filter-expected.txt: Copied from platform/mac/http/tests/usercontentfilter/basic-filter-expected.txt.
  • http/tests/contentextensions/basic-filter.html: Copied from http/tests/usercontentfilter/basic-filter.html.
  • http/tests/contentextensions/basic-filter.html.hson: Copied from http/tests/usercontentfilter/basic-filter.html.json.
  • http/tests/contentextensions/block-cookies-basic-expected.txt: Copied from http/tests/usercontentfilter/block-cookies-basic-expected.txt.
  • http/tests/contentextensions/block-cookies-basic.html: Copied from http/tests/usercontentfilter/block-cookies-basic.html.
  • http/tests/contentextensions/block-cookies-basic.html.json: Copied from http/tests/usercontentfilter/block-cookies-basic.html.json.
  • http/tests/contentextensions/block-cookies-send-expected.txt: Copied from http/tests/usercontentfilter/block-cookies-send-expected.txt.
  • http/tests/contentextensions/block-cookies-send.html: Copied from http/tests/usercontentfilter/block-cookies-send.html.
  • http/tests/contentextensions/block-cookies-send.html.json: Copied from http/tests/usercontentfilter/block-cookies-send.html.json.
  • http/tests/contentextensions/css-display-none-expected.txt: Copied from http/tests/usercontentfilter/css-display-none-expected.txt.
  • http/tests/contentextensions/css-display-none.html: Copied from http/tests/usercontentfilter/css-display-none.html.
  • http/tests/contentextensions/css-display-none.html.json: Copied from http/tests/usercontentfilter/css-display-none.html.json.
  • http/tests/usercontentfilter/basic-filter.html: Removed.
  • http/tests/usercontentfilter/basic-filter.html.json: Removed.
  • http/tests/usercontentfilter/block-cookies-basic-expected.txt: Removed.
  • http/tests/usercontentfilter/block-cookies-basic.html: Removed.
  • http/tests/usercontentfilter/block-cookies-basic.html.json: Removed.
  • http/tests/usercontentfilter/block-cookies-send-expected.txt: Removed.
  • http/tests/usercontentfilter/block-cookies-send.html: Removed.
  • http/tests/usercontentfilter/block-cookies-send.html.json: Removed.
  • http/tests/usercontentfilter/css-display-none-expected.txt: Removed.
  • http/tests/usercontentfilter/css-display-none.html: Removed.
  • http/tests/usercontentfilter/css-display-none.html.json: Removed.
  • platform/mac-wk2/TestExpectations:
  • platform/mac/http/tests/usercontentfilter/basic-filter-expected.txt: Removed.
2:09 PM Changeset in webkit [181030] by Lucas Forschler
  • 2 edits
    1 add in branches/safari-600.5-branch/Source/JavaScriptCore

Merge patch for rdar://problem/20027040.

2:04 PM Changeset in webkit [181029] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.20.2/Source

Versioning.

2:00 PM Changeset in webkit [181028] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.20.2/Source/WebKit2

Merged r181004. rdar://problem/19983833

1:57 PM Changeset in webkit [181027] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.20.2/Source/WebKit2

Merged r180962. rdar://problem/19983833

1:52 PM Changeset in webkit [181026] by Lucas Forschler
  • 3 edits in branches/safari-600.5-branch/Source/JavaScriptCore

Merged r180101. rdar://problem/20027081

1:51 PM Changeset in webkit [181025] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.20.2

New tag.

1:47 PM Changeset in webkit [181024] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

Unreviewed, rolling out r181001 and r181003.
https://bugs.webkit.org/show_bug.cgi?id=142307

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

Reverted changesets:

"Make JavaScript binding get and set legacy event listener
attributes directly"
https://bugs.webkit.org/show_bug.cgi?id=142282
http://trac.webkit.org/changeset/181001

"Update bindings tests after r181001."
http://trac.webkit.org/changeset/181003

1:45 PM Changeset in webkit [181023] by Beth Dakin
  • 13 edits in trunk/Source/WebKit2

Message UI process when contentSize changes
https://bugs.webkit.org/show_bug.cgi?id=142294
-and corresponding-
rdar://problem/19963165

Reviewed by Andreas Kling.

This patch un-ifdefs the didChangeContentSize message so that we can use it on Mac
as well.

New private method that subclasses can override when they need to do something
with contentSize changes.

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

(-[WKView _didChangeContentSize:]):

  • UIProcess/PageClient.h:

Un-ifdef.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeContentSize):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didChangeContentSize):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::contentsSizeChanged):

Stubs for other platforms now that the pure-virtual is un-masked.

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

(WebKit::PageClientImpl::didChangeContentSize):

  • UIProcess/API/gtk/PageClientImpl.h:
1:45 PM Changeset in webkit [181022] by Lucas Forschler
  • 31 edits in branches/safari-600.5-branch/Source/WebCore

Merged r180839. rdar://problem/20027026

1:41 PM Changeset in webkit [181021] by Brent Fulgham
  • 4 edits in trunk/LayoutTests

[Win] Rebaseline a few tests. Mark some failures.

  • platform/win/TestExpectations:
  • platform/win/fast/attachment/attachment-disabled-rendering-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
1:35 PM Changeset in webkit [181020] by Antti Koivisto
  • 5 edits
    4 adds in trunk/Source/WebKit2

Factor platform I/O out from NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=142279

Reviewed by Chris Dumez.

  • NetworkProcess/cache/NetworkCacheData.h: Added.
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm: Added.

NetworkCacheStorage::Data -> NetworkCacheData
Move to files of its own.

  • NetworkProcess/cache/NetworkCacheIOChannel.h: Added.
  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: Added.

Add abstraction for dispatch IO channels.

1:32 PM Changeset in webkit [181019] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Only Heap should be in charge of deciding how to select a subspace for a type
https://bugs.webkit.org/show_bug.cgi?id=142304

Reviewed by Mark Lam.

This slightly reduces the code duplication for selecting subspace based on type, and what
duplication is left is at least localized in HeapInlines.h. The immediate effect is that
the DFG and FTL don't have to duplicate this pattern.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::allocateObject):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::allocateObjectOfType):
(JSC::Heap::subspaceForObjectOfType):
(JSC::Heap::allocatorForObjectOfType):

  • runtime/JSCellInlines.h:

(JSC::allocateCell):

1:21 PM Changeset in webkit [181018] by Lucas Forschler
  • 2 edits in branches/safari-600.5-branch/Source/WebKit2

Merged r180782. rdar://problem/19997159

1:18 PM Changeset in webkit [181017] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.5-branch/Source/JavaScriptCore

Merged r180452. rdar://problem/19987611

1:14 PM Changeset in webkit [181016] by Lucas Forschler
  • 4 edits
    3 copies in branches/safari-600.5-branch/Source/JavaScriptCore

Merged r180234. rdar://problem/20027046

1:12 PM Changeset in webkit [181015] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Update elapsed/remaining time displays on media inline controls on OSX.
https://bugs.webkit.org/show_bug.cgi?id=142264.
<rdar://problem/19997487>
Reviewed by Dean Jackson.
Div surrounding times are set widths. A larger width is used for times that are
an hour or longer. Time elapsed is right justified. Time remaining is left justified.
Times are displayed in 11pt Helvetica Neue.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-current-time-display):
(audio::-webkit-media-controls-time-remaining-display.hour-long-time):
(audio::-webkit-media-controls-current-time-display.hour-long-time):
(audio::-webkit-media-controls-time-remaining-display.ten-hour-long-time):
(audio::-webkit-media-controls-current-time-display.ten-hour-long-time):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateDuration):

1:02 PM Changeset in webkit [181014] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Tools

W3C test importer should use filesystem instead of os.walk
https://bugs.webkit.org/show_bug.cgi?id=142085

Reviewed by Bem Jones-Bey.

Added FileSystem.dirs_under to remove the use of os.walk in test importer.
Added MockFileSystem.dirs_under and MockFileSystem.getsize to enable unit testing of test importer.
Added unit test for FileSystem.dirs_under and MockFileSystem.dirs_under.

Made use of FileSystem.dirs_under within TestImporter.find_importable_tests.
Added a unit test to check that test importer is now black-box testable using a Mock system.

  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.dirs_under): Returns a list of filtered sub-directories.
(FileSystem.dirs_under.filter_all):

  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.dirs_under):
(MockFileSystem.dirs_under.filter_all):
(MockFileSystem.getsize):

  • Scripts/webkitpy/common/system/filesystem_mock_unittest.py:

(MockFileSystemTest.test_dirs_under):
(MockFileSystemTest.test_dirs_under.filter_dir):

  • Scripts/webkitpy/common/system/filesystem_unittest.py:

(RealFileSystemTest.test_sep):
(RealFileSystemTest):
(RealFileSystemTest.test_dirs_under):
(RealFileSystemTest.test_dirs_under.filter_this_dir):

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.do_import):
(TestImporter.find_importable_tests.should_keep_subdir):
(TestImporter.find_importable_tests):
(TestImporter.should_keep_subdir): Deleted.
(TestImporter.should_skip_file): Deleted.

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.test_import_dir_with_empty_init_py): Added test to ensure empty init.py are no longer empty once imported.

12:48 PM Changeset in webkit [181013] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Implement -apple-trailing-word: -apple-partially-balanced
https://bugs.webkit.org/show_bug.cgi?id=142253

Reviewed by David Hyatt.

Source/WebCore:

This patch implements a history mechanism for line breaking. In particular, this patch partitions
the updates to the current line breaking location into two kinds: conceptually new breaking locations,
and fixups to existing locations. Then, this patch remembers all the fixed up breaking locations, up
to a maximum number of remembered locations.

The patch then uses this memory to change the line-breaking selection based on the rules of
-apple-trailing-word.

Test: fast/text/trailing-word.html

  • rendering/line/BreakingContextInlineHeaders.h:

Use InlineIteratorHistory as a proxy for the current breaking location. Note that all these functions
are inlined, so the overhead should be next to nothing when -apple-trailing-word is not in use.
(WebCore::BreakingContext::BreakingContext): Use InlineIteratorHistory instead of InlineIterator
(WebCore::BreakingContext::lineBreak): Ditto.
(WebCore::BreakingContext::clearLineBreakIfFitsOnLine): Ditto
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth): Ditto
(WebCore::BreakingContext::InlineIteratorHistory::InlineIteratorHistory): Keeps track of historical
breaking locations
(WebCore::BreakingContext::InlineIteratorHistory::push): Remember a new breaking location
(WebCore::BreakingContext::InlineIteratorHistory::update): Update an existing breaking location
(WebCore::BreakingContext::InlineIteratorHistory::renderer): Forwarded to the current breaking location
(WebCore::BreakingContext::InlineIteratorHistory::offset): Ditto
(WebCore::BreakingContext::InlineIteratorHistory::atTextParagraphSeparator): Ditto
(WebCore::BreakingContext::InlineIteratorHistory::previousInSameNode): Ditto
(WebCore::BreakingContext::InlineIteratorHistory::get): Get one of the remembered breaking locations
(WebCore::BreakingContext::InlineIteratorHistory::current): Get the current breaking location
(WebCore::BreakingContext::InlineIteratorHistory::historyLength):
(WebCore::BreakingContext::InlineIteratorHistory::moveTo): Forwarded to the current breaking location.
(WebCore::BreakingContext::InlineIteratorHistory::increment): Ditto
(WebCore::BreakingContext::InlineIteratorHistory::clear): Ditto
(WebCore::BreakingContext::handleBR): Use InlineIteratorHistory instead of InlineIterator
(WebCore::BreakingContext::handleFloat): Ditto
(WebCore::BreakingContext::handleText): Use InlineIteratorHistory instead of InlineIterator
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded): Style
(WebCore::checkMidpoints): Use InlineIteratorHistory instead of InlineIterator
(WebCore::BreakingContext::handleEndOfLine): If -apple-trailing-word is in effect, use
optimalLineBreakLocationForTrailingWord().
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord): Use the remembered breaking
locations and choose the optimal one.
(WebCore::BreakingContext::lineBreakRef): Deleted.

LayoutTests:

  • fast/text/trailing-word-expected.html: Added.
  • fast/text/trailing-word.html: Added.
12:30 PM Changeset in webkit [181012] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed Gardening 4th March

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

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-03-04

  • platform/gtk/TestExpectations:
12:24 PM Changeset in webkit [181011] by Brian Burg
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineViews should be displayed in a ContentViewContainer
https://bugs.webkit.org/show_bug.cgi?id=142290

Reviewed by Timothy Hatcher.

TimelineRecordingContentView has a bunch of logic to manage the currently visible TimelineView.
This could be delegated to a ContentViewContainer to simplify the logic. It also opens the possibility
for other views to be displayed beneath the timeline overview graphs when it makes sense to do so.

In order to be displayable in the container, TimelineView and its subclasses have been upgraded to
be ContentView subclasses. This also reduces some code duplication for basic view management.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView): Move base class instantiation pattern from TimelineView to here.
(WebInspector.ContentView.isViewable):

  • UserInterface/Views/LayoutTimelineView.js: Use ContentView events and base methods.

(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/Views/NetworkTimelineView.js: Use ContentView events and base methods.

(WebInspector.NetworkTimelineView.prototype.shown):
(WebInspector.NetworkTimelineView.prototype.hidden):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/Views/OverviewTimelineView.js: Use ContentView events and base methods.

(WebInspector.OverviewTimelineView.prototype.shown):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
(WebInspector.OverviewTimelineView.prototype._treeElementSelected):

  • UserInterface/Views/ScriptTimelineView.js: Use ContentView events and base methods.

(WebInspector.ScriptTimelineView.prototype.shown):
(WebInspector.ScriptTimelineView.prototype.hidden):
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/Views/TimelineRecordingContentView.css: Use WebInspector.ContentViewContainer class.

(.content-view.timeline-recording > .content-view-container):
(.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td):
(.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
(.content-view.timeline-recording > .view-container): Deleted.
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td): Deleted.
(.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

Many of the changes here mirror the implementation of ClusterContentView. Searching is disabled since
none of the timeline views are currently searchable using ContentViewContainer's full-text search.

In cases where we update the current timeline view, the currentTimelineView accessor returns the
content view if a TimelineView is shown in the content view container, otherwise null.

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
(WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
(WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
(WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
(WebInspector.TimelineRecordingContentView.prototype.get saveData):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.closed):
(WebInspector.TimelineRecordingContentView.prototype.canGoBack):
(WebInspector.TimelineRecordingContentView.prototype.canGoForward):
(WebInspector.TimelineRecordingContentView.prototype.goBack):
(WebInspector.TimelineRecordingContentView.prototype.goForward):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
(WebInspector.TimelineRecordingContentView.prototype.get filterDidChange):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._showTimelineView): Deleted.

  • UserInterface/Views/TimelineView.js: Remove duplicated functionality and use ContentView equivalents instead.

(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.filterUpdated):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype.get representedObject): Deleted.
(WebInspector.TimelineView.prototype.get visible): Deleted.
(WebInspector.TimelineView.prototype.shown): Deleted.
(WebInspector.TimelineView.prototype.hidden): Deleted.

12:00 PM Changeset in webkit [181010] by akling@apple.com
  • 15 edits
    1 copy
    1 add in trunk/Source

Stale entries in WeakGCMaps are keeping tons of WeakBlocks alive unnecessarily.
<https://webkit.org/b/142115>
<rdar://problem/19992268>

Reviewed by Geoffrey Garen.

Prune stale entries from WeakGCMaps as part of every full garbage collection.
This frees up tons of previously-stuck WeakBlocks that were only sitting around
with finalized handles waiting to die.

Note that WeakGCMaps register/unregister themselves with the GC heap in their
ctor/dtor, so creating one now requires passing the VM.

Average time spent in the PruningStaleEntriesFromWeakGCMaps GC phase appears
to be between 0.01ms and 0.3ms, though I've seen a few longer ones at ~1.2ms.
It seems somewhat excessive to do this on every Eden collection, so it's only
doing work in full collections for now.

  • API/JSWeakObjectMapRefInternal.h:

(OpaqueJSWeakObjectMap::create):
(OpaqueJSWeakObjectMap::OpaqueJSWeakObjectMap):

  • API/JSWeakObjectMapRefPrivate.cpp:
  • API/JSWrapperMap.mm:

(-[JSWrapperMap initWithContext:]):
(-[JSWrapperMap jsWrapperForObject:]): Pass VM to WeakGCMap constructor.

  • JavaScriptCore.xcodeproj/project.pbxproj: Add WeakGCMapInlines.h and make

it project-private so WebCore clients can access it.

  • heap/Heap.cpp:

(JSC::Heap::collect):
(JSC::Heap::pruneStaleEntriesFromWeakGCMaps): Added a new GC phase for pruning
stale entries from WeakGCMaps. This is only executed during full collections.

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::registerWeakGCMap):
(JSC::Heap::unregisterWeakGCMap): Added a mechanism for WeakGCMaps to register
themselves with the Heap and provide a pruning callback.

  • runtime/PrototypeMap.h:

(JSC::PrototypeMap::PrototypeMap):

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::add): Pass VM to WeakGCMap constructor.

  • runtime/JSCInlines.h: Add "WeakGCMapInlines.h"
  • runtime/JSGlobalObject.cpp: Include "WeakGCMapInlines.h" so this builds.
  • runtime/VM.cpp:

(JSC::VM::VM): Pass VM to WeakGCMap constructor.

  • runtime/WeakGCMap.h:

(JSC::WeakGCMap::set):
(JSC::WeakGCMap::add):
(JSC::WeakGCMap::WeakGCMap): Deleted.
(JSC::WeakGCMap::gcMap): Deleted.
(JSC::WeakGCMap::gcMapIfNeeded): Deleted.

  • runtime/WeakGCMapInlines.h: Added.

(JSC::WeakGCMap::WeakGCMap):
(JSC::WeakGCMap::~WeakGCMap):
(JSC::WeakGCMap::pruneStaleEntries): Moved ctor, dtor and pruning callback
to WeakGCMapInlines.h to fix interdependent header issues. Removed code that
prunes WeakGCMap at certain growth milestones and instead rely on the GC
callback for housekeeping.

11:56 AM Changeset in webkit [181009] by Lucas Forschler
  • 6 edits in branches/safari-600.5-branch

Merge patch for rdar://problem/19850744.

11:33 AM Changeset in webkit [181008] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

<attachment> title text disappears when dragging
https://bugs.webkit.org/show_bug.cgi?id=142263
<rdar://problem/20035515>

Reviewed by Sam Weinig.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintAttachment):
We use NSColors with CoreText, which requires that Cocoa knows the current
CGContext out-of-band (through the NSGraphicsContext currentContext mechanism).
Otherwise, sometimes (especially when dragging), it will try to apply the
text foreground color to a null context, complain to the system log, and fail
to render the text.

11:27 AM Changeset in webkit [181007] by timothy_horton@apple.com
  • 8 edits in trunk/Tools

[WebEditingTester] Add support for the find and replace bar
https://bugs.webkit.org/show_bug.cgi?id=142247

Reviewed by Enrica Casucci.

While it's not hooked up yet in WKWebView, adding support for the
find bar to WebEditingTester will help us implement that functionality.

  • WebEditingTester/AppDelegate.h:
  • WebEditingTester/AppDelegate.m:

(-[WebEditingAppDelegate performTextFinderAction:]):

  • WebEditingTester/MainMenu.xib:

Receive performTextFinderAction: and forward it to the frontmost WebDocumentController.

  • WebEditingTester/WK2WebDocumentController.m:

(-[WK2WebDocumentController awakeFromNib]):
(-[WK2WebDocumentController performTextFinderAction:]):
(-[WK2WebDocumentController findBarView]):
(-[WK2WebDocumentController setFindBarView:]):
(-[WK2WebDocumentController isFindBarVisible]):
(-[WK2WebDocumentController setFindBarVisible:]):
(-[WK2WebDocumentController findBarViewDidChangeHeight]):
(-[WK2WebDocumentController layout]):
Implement performTextFinderAction: for WebKit2, and have a NSTextFinder
pointing at the WKWebView (currently nothing will work, but the bar will
show up). Install and uninstall the bar as needed.

  • WebEditingTester/WebDocument.xib:

Don't use a full-size content view. There's no need, and it makes find
bar layout harder.

  • WebEditingTester/WebDocumentController.h:
  • WebEditingTester/WebDocumentController.m:

(-[WebDocumentController performTextFinderAction:]):

11:26 AM Changeset in webkit [181006] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[Mac] YouTube playback at 1.5x speed has audible distortion
https://bugs.webkit.org/show_bug.cgi?id=142280

Reviewed by Eric Carlson.

Use the high-quality AVAudioTimePitchAlgorithmSpectral algorithm for the
AVSampleBufferAudioRenderer rather than its default value of
AVAudioTimePitchAlgorithmTimeDomain.

Drive-by fix:

Might as well add support for MediaPlayer::setPreservesPitch() while we're
changing the audio pitch algorithm. If preservesPitch() is false use the
AVAudioTimePitchAlgorithmVarispeed algorithm in both AVFObjC-based media players
(MediaPlayerPrivateAVFoundationObjC & MediaPlayerPrivateMediaSourceAVFObjC).

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setRateDouble): Deleted.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setPreservesPitch):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer):

11:22 AM Changeset in webkit [181005] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE][EME][Mac] Calling close on a MediaKeysSession will cause many decoding errors to be emitted
https://bugs.webkit.org/show_bug.cgi?id=142285

Reviewed by Eric Carlson.

When a MediaKeySession (backed by CDMSessionMediaSourceAVFObjC) is closed and the
underlying AVStreamSession is invalidated, the decryption context for in-flight
CMSampleBuffers is also invalidated, and the AVSampleBufferDisplayLayer will issue
one error for each enqueued and un-displayed sample in its image-queue. -flush-ing
the AVSampleBufferDisplayLayer is not enough, as the flush only takes effect
asynchronously the next time the layer needs new samples.

Add a workaround until framework-level support lands to fully flush enqueued and
encrypted frames.

When the CDMSessionMediaSOurceAVFObjC object recieves an error from the layer,
check to see if the session has been stopped. If so, and if the error in question is
one that indicates that the samples decryption context has been invalidated, suppress
the error and instruct the sender to suppress the error as well. This workaround will
be removed once real support for synchronous flushing lands in <rdar://problem/20027434.>

Still, we'll make our best effort to flush undisplayed frames when our CDM session is
invalidated. Move away from std::map and instead use HashMap to store the set of
AVSampleBufferAudioRenderers. This allows us to use C++11 style loops against just
the HashMap's set of values.

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

(WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): Flush and set m_stopped.
(WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError): Check m_stopped and the

error code and bail before issuing the error.

(WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError): Ditto.

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

(-[WebAVSampleBufferErrorListener layerFailedToDecode:]): Drive-by fix. Check whether

the layer is in the set of listened-to layers only back in the main thread; the
listnener may have been unregistered by the time the main thread was called.

(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): std::map -> HashMap.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flush): Added; call -flush on all the display

layers and audio renderers.

(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError): Check if any clients

asked to ignore the error, and if so, bail.

(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError): Ditto.

10:48 AM Changeset in webkit [181004] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit2

Remove WK_AVAILABLE and related macros when we cannot determine iOS/Mac version
https://bugs.webkit.org/show_bug.cgi?id=142252
rdar://problem/19983833

Reviewed by David Kilzer.

When mac / ios version was unable to be determined strip the WK_AVAILABLE
and WK_DEPRECATED macros to avoid outputing a broken macro.

  • mac/postprocess-framework-headers.sh:
10:40 AM Changeset in webkit [181003] by achristensen@apple.com
  • 18 edits in trunk/Source/WebCore

Update bindings tests after r181001.

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

Class names changed to auto.

10:24 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
10:22 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
9:50 AM Changeset in webkit [181002] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Missing dependency checking in DerivedSources.make for FeatureDefines.props
https://bugs.webkit.org/show_bug.cgi?id=142284

Reviewed by David Kilzer.

Make DerivedSources.make understand its build dependency on FeatureDefines.props
when building on Windows:

  1. Modify DerivedSources.make to declare a default dependency (on Windows) to $(WEBKIT_LIBRARIES)/tools/vsprops/FeatureDefines.props.
  2. Update the Windows script 'build-generated-files.pl' to specify the correct FeatureDefines{Cairo}.props value to use, depending on build environment.
  • DerivedSources.make:
  • WebCore.vcxproj/build-generated-files.pl:
9:30 AM Changeset in webkit [181001] by Darin Adler
  • 4 edits in trunk/Source/WebCore

Make JavaScript binding get and set legacy event listener attributes directly
https://bugs.webkit.org/show_bug.cgi?id=142282

Reviewed by Sam Weinig.

Test: fast/dom/legacy-event-handler-attributes.html

This patch changes the JavaScript getters and setters for these attributes
to work directly without requiring any functions in the C++ DOM implementation.
A subsequent patch will remove the now-unused C++ DOM implementation.

  • bindings/js/JSEventListener.cpp:

(WebCore::legacyEventListenerAttribute): Added.
(WebCore::createEventListenerForLegacyAttribute): Added.
(WebCore::setLegacyEventListenerAttribute): Added.
(WebCore::legacyWindowEventListenerAttribute): Added.
(WebCore::setLegacyWindowEventListenerAttribute): Added.

  • bindings/js/JSEventListener.h:

(WebCore::createJSEventListenerForAttribute): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeEventListenerCall): Deleted.
(LegacyEventListenerAttributeEventName): Added.
(LegacyEventListenerAttributePrefix): Added.
(GenerateImplementation): Use "auto" in lots of places to simplify the code
generation. Replaced the old inlined code to deal with legacy event listener
attributes with code that simply calls the new functions from JSEventLister.h.
(GenerateCallWith): Use "auto".
(GenerateConstructorDefinition): Ditto.

8:41 AM Changeset in webkit [181000] by weinig@apple.com
  • 7 edits
    2 moves
    5 adds in trunk

[Content Extensions] Split parsing and compiling of content extensions into their own files
https://bugs.webkit.org/show_bug.cgi?id=142259

Reviewed by Anders Carlsson.

Source/WebCore:

Added new unit test:

ContentFilterTest.Basic

  • WebCore.xcodeproj/project.pbxproj:

Add new files (CompiledContentExtension.h/cpp, ContentExtensionCompiler.h/cpp, and ContentExtensionParser.h/cpp)

  • contentextensions/CompiledContentExtension.cpp: Added.
  • contentextensions/CompiledContentExtension.h: Added.

Add new class for holding onto the compiled content extension itself. Make it ThreadSafeRefCounted so it is easy
to move between threads which will be important in a subsequent patch where we enable compilation on a background
thread.

  • contentextensions/ContentExtensionCompiler.cpp: Added.

(WebCore::ContentExtensions::serializeActions):
(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionCompiler.h: Added.

Moving compilation to its own file. Was previously in ContentExtensionsBackend. This is necessary because
we will want to be able to compile without the need of a backend.

  • contentextensions/ContentExtensionParser.cpp: Copied from contentextensions/ContentExtensionsManager.cpp.
  • contentextensions/ContentExtensionParser.h: Copied from contentextensions/ContentExtensionsManager.h.

Renamed ContentExtensionsManager to ContentExtensionParser, since that is all it is doing.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
(WebCore::ContentExtensions::ContentExtensionsBackend::removeContentExtension):
(WebCore::ContentExtensions::ContentExtensionsBackend::removeAllContentExtensions):
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL):
(WebCore::ContentExtensions::ContentExtensionsBackend::serializeActions): Deleted.
(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList): Deleted.
(WebCore::ContentExtensions::ContentExtensionsBackend::removeRuleList): Deleted.
(WebCore::ContentExtensions::ContentExtensionsBackend::removeAllRuleLists): Deleted.

  • contentextensions/ContentExtensionsBackend.h:

Change the backend to use the new CompiledContentExtension and change the terminology to
reference content extensions, rather than rule lists.

  • page/UserContentController.cpp:

(WebCore::UserContentController::addUserContentFilter):
(WebCore::UserContentController::removeUserContentFilter):
(WebCore::UserContentController::removeAllUserContentFilters):
Update for new names and change addUserContentFilter to explicitly compile the JSON
rule list before handing it to the backend. In subsequent changes, addUserContentFilter
should be changed to take the compiled content extension, and it should become the responsibility
of the called (WebKit) to create them.

Tools:

Add basic unit test for the content filter compiler.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ContentFilter.cpp: Added.

(WebCore::ContentExtensions::operator<<):
(TestWebKitAPI::ContentFilterTest::SetUp):
(TestWebKitAPI::TEST_F):

7:52 AM Changeset in webkit [180999] by mmirman@apple.com
  • 2 edits in trunk/Tools

Cleaned up BuildAndTestFactory to not be a near duplicate of TestFactory
https://bugs.webkit.org/show_bug.cgi?id=142230

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(TestFactory):
(TestFactory.getProduct): Added
(TestFactory.init): moved downloader to getProduct
(BuildAndTestFactory):
(BuildAndTestFactory.getProduct): Added
(BuildAndTestFactory.init): made to call TestFactory.init and append steps to the end.
(BuildAndTestWebKit2Factory): Deleted. Wasn't used anywhere.

6:37 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
6:19 AM Changeset in webkit [180998] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] WebView should hold a reference on WebContext because non-default contexts are a reality
https://bugs.webkit.org/show_bug.cgi?id=142225

Patch by Debarshi Ray <debarshir@gnome.org> on 2015-03-04
Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewRequestFavicon):
(webkitWebViewWatchForChangesInFavicon):
(webkitWebViewDisconnectFaviconDatabaseSignalHandlers):
(webkitWebViewConstructed):
(webkitWebViewGetProperty):
(webkitWebViewDispose):
(webkitWebViewLoadChanged):
(webkitWebViewLoadFailedWithTLSErrors):
(webkit_web_view_get_context):
(webkit_web_view_download_uri):

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewWebContextLifetime):
(beforeAll):

5:24 AM Changeset in webkit [180997] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] the GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED should be wrapped by a ifdef
https://bugs.webkit.org/show_bug.cgi?id=142274

Patch by Philippe Normand <pnormand@igalia.com> on 2015-03-04
Reviewed by Carlos Garcia Campos.

Don't handle scheduling queries if building against versions of
GStreamer older than 1.2.0.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcQueryWithParent):

5:22 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
12:37 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)

Mar 3, 2015:

11:55 PM Changeset in webkit [180996] by yoav@yoav.ws
  • 14 edits
    10 adds in trunk

Add a microtask abstraction
https://bugs.webkit.org/show_bug.cgi?id=137496

Reviewed by Sam Weinig.

Source/WebCore:

This patch adds a microtask abstraction: https://html.spec.whatwg.org/multipage/webappapis.html#microtask
That abstraction is required in order to enable async loading of images,
which is in turn required to enable support for the picture element, as well as
to make sure that the order of properties set on HTMLImageElement has no implications.

A similar patch was rolled back in r180914. This patch is an improved version.

  • WebCore.vcxproj/WebCore.vcxproj: Add MicroTask.{h,cpp} to the project.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj: Add MicroTaskTest.{h,cpp} to the project.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Add MicroTask.{h,cpp} to the project.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Add MicroTaskTest.{h,cpp} to the project.
  • WebCore.xcodeproj/project.pbxproj: Add MicroTask{,Test}.{h,cpp} to the project.
  • dom/Document.h: Add WEBCORE_EXPORT to addConsoleMessage, so it can be used in MicroTaskTest that's in WebCoreTestSupport..
  • dom/MicroTask.h: Add a MicroTask interface class. Add a MicroTaskQueue singleton.

(WebCore::MicroTask::~MicroTask):
(WebCore::MicroTask::run): Run the microtask.

  • dom/MicroTask.cpp: Implement the MicroTaskQueue singleton.

(WebCore::MicroTaskQueue::singleton): Get a singleton instance of MicroTaskQueue.
(WebCore::MicroTaskQueue::queueMicroTask): Add a microtask to the queue.
(WebCore::MicroTaskQueue::runMicroTasks): Run all the microtasks in the queue and clear it.

  • dom/ScriptRunner.cpp: Trigger running of all microtasks in queue.

(WebCore::ScriptRunner::timerFired):

  • html/parser/HTMLScriptRunner.cpp: Trigger running of all microtasks in queue.

(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::HTMLScriptRunner::runScript):

  • testing/Internals.cpp: Add a method to queue a test microtask.

(WebCore::Internals::queueMicroTask):

  • testing/Internals.h: Add a method to queue a test microtask.

(WebCore::Internals::queueMicroTask):

  • testing/Internals.idl: Expose test microtask queueing to test JS.
  • testing/MicroTaskTest.cpp: Add a test class that implements a microtask and prints to the console when it runs.

(WebCore::MicroTaskTest::run): Run the microtask
(WebCore::MicroTaskTest::create): Create a test microtask.

  • testing/MicroTaskTest.h: Add a test class that implements a microtask.

(WebCore::MicroTaskTest::run):
(WebCore::MicroTaskTest::create):

LayoutTests:

Adding a test for microtask abstraction.
A similar patch was rolled back in r180914.

  • fast/dom/microtask-detach.html: Added.
  • fast/dom/microtask-detach-expected.txt: Added.
  • fast/dom/microtask-inorder.html: Added.
  • fast/dom/microtask-inorder-expected.txt: Added.
  • fast/dom/microtask-reverse.html: Added.
  • fast/dom/microtask-reverse-expected.txt: Added.
11:52 PM Changeset in webkit [180995] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:51 PM Changeset in webkit [180994] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.21

New tag.

10:55 PM Changeset in webkit [180993] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

DFG IR should refer to FunctionExecutables directly and not via the CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=142229

Reviewed by Mark Lam and Benjamin Poulain.

Anytime a DFG IR node refers to something in CodeBlock, it has three effects:

  • Cumbersome API for accessing the thing that the node refers to.


  • Not obvious how to create a new such node after bytecode parsing, especially if the thing it refers to isn't already in the CodeBlock. We have done this in the past, but it usually involves subtle changes to CodeBlock.


  • Not obvious how to inline code that ends up using such nodes. Again, when we have done this, it involved subtle changes to CodeBlock.


Prior to this change, the NewFunction* node types used an index into tables in CodeBlock.
For this reason, those operations were not inlineable. But the functin tables in CodeBlock
just point to FunctionExecutables, which are cells; this means that we can just abstract
these operands in DFG IR as cellOperands. cellOperands use DFG::FrozenValue, which means
that GC registration happens automagically. Even better, our dumping for cellOperand
already did FunctionExecutable dumping - so that functionality gets to be deduplicated.

Because this change increases the number of users of cellOperand, it also adds some
convenience methods for using it. For example, whereas before you'd say things like:

jsCast<Foo*>(node->cellOperand()->value())


you can now just say:

node->castOperand<Foo*>()


This change also changes existing cellOperand users to use the new conveniance API when
applicable.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettisonFunctionDeclsAndExprs):

  • bytecode/CodeBlock.h:
  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGFrozenValue.h:

(JSC::DFG::FrozenValue::cell):
(JSC::DFG::FrozenValue::dynamicCast):
(JSC::DFG::FrozenValue::cast):

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::castOperand):
(JSC::DFG::Node::hasFunctionDeclIndex): Deleted.
(JSC::DFG::Node::functionDeclIndex): Deleted.
(JSC::DFG::Node::hasFunctionExprIndex): Deleted.
(JSC::DFG::Node::functionExprIndex): Deleted.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck):
(JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCheckCell):
(JSC::FTL::LowerDFGToLLVM::compileNativeCallOrConstruct):

9:33 PM Changeset in webkit [180992] by msaboff@apple.com
  • 5 edits
    2 adds in trunk/Source/JavaScriptCore

DelayedReleaseScope drops locks during GC which can cause a thread switch and code reentry
https://bugs.webkit.org/show_bug.cgi?id=141275

Reviewed by Geoffrey Garen.

The original issue is that the CodeCache uses an unsafe method to add new UnlinkedCodeBlocks.
It basically adds a null UnlinkedCodeBlock if there isn't a cached entry and then later
updates the null entry to the result of the compilation. If during that compilation and
related processing we need to garbage collect, the DelayedReleaseScope would drop locks
possibly allowing another thread to try to get the same source out of the CodeCache.
This second thread would find the null entry and crash. The fix is to move the processing of
DelayedReleaseScope to when we drop locks and not drop locks during GC. That was done in
the original patch with the new function releaseDelayedReleasedObjects().

Updated releaseDelayedReleasedObjects() so that objects are released with all locks
dropped. Now its processing follows these steps

Increment recursion counter and do recursion check and exit if recursing
While there are objects to release

ASSERT that lock is held by current thread
Take all items from delayed release Vector and put into temporary Vector
Release API lock
Release and clear items from temporary vector
Reaquire API lock

This meets the requirement that we release while the API lock is released and it is
safer processing of the delayed release Vector.

Added new regression test to testapi.

Also added comment describing how recursion into releaseDelayedReleasedObjects() is
prevented.

  • API/tests/Regress141275.h: Added.
  • API/tests/Regress141275.mm: Added.

(+[JSTEvaluatorTask evaluatorTaskWithEvaluateBlock:completionHandler:]):
(-[JSTEvaluator init]):
(-[JSTEvaluator initWithScript:]):
(-[JSTEvaluator _accessPendingTasksWithBlock:]):
(-[JSTEvaluator insertSignPostWithCompletion:]):
(-[JSTEvaluator evaluateScript:completion:]):
(-[JSTEvaluator evaluateBlock:completion:]):
(-[JSTEvaluator waitForTasksDoneAndReportResults]):
(JSTRunLoopSourceScheduleCallBack):
(
JSTRunLoopSourcePerformCallBack):
(JSTRunLoopSourceCancelCallBack):
(-[JSTEvaluator _jsThreadMain]):
(-[JSTEvaluator _sourceScheduledOnRunLoop:]):
(-[JSTEvaluator _setupEvaluatorThreadContextIfNeeded]):
(-[JSTEvaluator _callCompletionHandler:ifNeededWithError:]):
(-[JSTEvaluator _sourcePerform]):
(-[JSTEvaluator _sourceCanceledOnRunLoop:]):
(runRegress141275):

  • API/tests/testapi.mm:

(testObjectiveCAPI):

(JSC::Heap::releaseDelayedReleasedObjects):

  • runtime/JSLock.cpp:

(JSC::JSLock::unlock):

9:31 PM Changeset in webkit [180991] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Mark fast/css/object-fit/object-fit-canvas.html as a flakey
image failure, since it keeps breaking EWS.

  • platform/mac/TestExpectations:
9:29 PM Changeset in webkit [180990] by Brent Fulgham
  • 6 edits in trunk

[Win] [Attachment] New Tests fail on Windows
https://bugs.webkit.org/show_bug.cgi?id=142017

WebKitLibraries:

Unreviewed test fix. Just activate the feature.

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:

LayoutTests:

Unreviewed. Rebaseline tests for Windows display metrics.

  • platform/win/fast/attachment/attachment-disabled-rendering-expected.txt:
  • platform/win/fast/attachment/attachment-rendering-expected.txt:
9:26 PM Changeset in webkit [180989] by fpizlo@apple.com
  • 19 edits
    3 adds in trunk/Source/JavaScriptCore

DFG should constant fold GetScope, and accesses to the scope register in the ByteCodeParser should not pretend that it's a constant as that breaks OSR exit liveness tracking
https://bugs.webkit.org/show_bug.cgi?id=106202

Rubber stamped by Benjamin Poulain.

This fixes a bug discovered by working on https://bugs.webkit.org/show_bug.cgi?id=142229,
which was in turn discovered by working on https://bugs.webkit.org/show_bug.cgi?id=141174.
Our way of dealing with scopes known to be constant is very sketchy, and only really works
when a function is inlined. When it is, we pretend that every load of the scopeRegister sees
a constant. But this breaks the DFG's tracking of the liveness of the scopeRegister. The way
this worked made us miss oppportunities for optimizing based on a constant scope, and it also
meant that in some cases - particularly like when we inline code that uses NewFuction and
friends, as I do in bug 142229 - it makes OSR exit think that the scope is dead even though
it's most definitely alive and it's a constant.

The problem here is that we were doing too many optimizations in the ByteCodeParser, and not
later. Later optimization phases know how to preserve OSR exit liveness. They're actually
really good at it. Also, later phases know how to infer that any variable is a constant no
matter how that constant arose - rather than the inlining-specific thing in ByteCodeParser.

This changes the ByteCodeParser to largely avoid doing constant folding on the scope, except
making the GetScope operation itself a constant. This is a compilation-time hack for small
functions, and it doesn't break the loads of local variables - so OSR exit liveness still
sees that the scopeRegister is in use. This then adds a vastly more powerful GetScope and
GetClosureVar constant folder in the AbstractInterpreter. This handles most general cases
including those that arise in complex control flow. This will catch cases where the scope
is constant for any number of reasons. Basically anytime that the callee is inferred constant
this will give us a constant scope. Also, we still have the parse-time constant folding of
ResolveScope based on the reentry watchpoint, which luckily did the right thing with respect
to OSR exit liveness (it splats a Phantom on its inputs, and it produces a constant result
which is then set() normally).

This appears to be a broad speed-up, albeit a small one. But mainly it unblocks bug 142229,
which then should unblock bug 141174.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::getLocal):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::tryGetConstantClosureVar):
(JSC::DFG::Graph::tryGetRegisters):
(JSC::DFG::Graph::tryGetActivation): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasVariableWatchpointSet):
(JSC::DFG::Node::hasSymbolTable): Deleted.
(JSC::DFG::Node::symbolTable): Deleted.

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

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

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::visitChildren):
(JSC::SymbolTable::localToEntry):
(JSC::SymbolTable::entryFor):

  • runtime/SymbolTable.h:

(JSC::SymbolTable::add):
(JSC::SymbolTable::set):

  • tests/stress/function-expression-exit.js: Added.
  • tests/stress/function-reentry-infer-on-self.js: Added.

(thingy):

  • tests/stress/goofy-function-reentry-incorrect-inference.js: Added.
9:25 PM Changeset in webkit [180988] by shiva.jm@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix build warning in WebKit2/Shared module.
https://bugs.webkit.org/show_bug.cgi?id=142213

Reviewed by Simon Fraser.

Fix build warning by removing argument name from function.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::pathPointCountApplierFunction):

8:56 PM Changeset in webkit [180987] by Brent Fulgham
  • 6 edits in trunk/Source/WebCore

Scroll snap points are not supported on the main frame
https://bugs.webkit.org/show_bug.cgi?id=141973
<rdar://problem/19938393>

Reviewed by Simon Fraser.

No new tests. Tests will be added when the animation behavior is finalized. Manual tests are attached to the bug.

Update the ScrollingTreeFrameScrollingNodeMac class to implement the delegate interface needed by the
ScrollController. This involves the following:

  1. Implement scrollOffsetOnAxis: Used by the AxisScrollAnimator to determine the current position of the ScrollableArea.
  2. Implement immediateScrollOnAxis: Used by the AxisScrollAnimator to scroll the ScrollableArea

We also need to hold a copy of the snap points vector to send to the scrolling thread.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::convertToLayoutUnits): Added helper function to match Scroll Snap Points API.
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): Recognize and react to changes to
Scroll Snap Points on top-level frames.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Implement delegate method needed by the ScrollController.
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollOnAxis): Ditto.

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

(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Pass snap offsets to AxisScrollSnapAnimator constructor as references.
(WebCore::ScrollController::updateScrollSnapPoints): Added. Used by ScrollingTreeFrameScrollingNodeMac to update scroll snap point
settings in the scrolling thread.

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

(WebCore::toWheelEventStatus): Don't ignore the "MayBegin" or "Cancelled" event phases.
(WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator): Revise signature to take a reference to the layout units.
(WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate): Handle the case where this method gets called from a thread
when the scrollable area has already reached its final destination.
(WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation): Handle the possibility that the snap offset point vector might be
empty. Update method to account for m_snapOffsets being a value, instead of a pointer.

8:47 PM Changeset in webkit [180986] by Stephanie Lewis
  • 2 edits in trunk/LayoutTests

Update TestExpectations after http://trac.webkit.org/changeset/180965 to skip new test on Mavericks.

Unreviewed.

  • platform/mac/TestExpectations:
7:36 PM Changeset in webkit [180985] by aestes@apple.com
  • 21 edits
    1 copy
    1 move in trunk/Source

[Content Filtering] Separate unblock handling into its own class
https://bugs.webkit.org/show_bug.cgi?id=142251

Reviewed by Andreas Kling.
Source/WebCore:

Unblock handling is currently supported only for one type of content filter (WebFilterEvaluator) on one
platform (iOS). Having its implementation in ContentFilter is making it difficult to support other filters and
platforms, so let's separate unblock handling into its own class called ContentFilterUnblockHandler.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading): Passed a ContentFilterUnblockHandler to FrameLoaderClient::contentFilterDidBlockLoad.
(WebCore::DocumentLoader::dataReceived): Ditto.

  • loader/FrameLoaderClient.h:
  • platform/ContentFilter.h:
  • platform/ContentFilterUnblockHandler.h: Copied from Source/WebCore/platform/ios/ContentFilterIOS.mm.

(WebCore::ContentFilterUnblockHandler::clear):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: Renamed from Source/WebCore/platform/ios/ContentFilterIOS.mm.

(WebCore::ContentFilterUnblockHandler::ContentFilterUnblockHandler):
(WebCore::ContentFilterUnblockHandler::encode):
(WebCore::ContentFilterUnblockHandler::decode):
(WebCore::scheme):
(WebCore::ContentFilterUnblockHandler::handleUnblockRequestAndDispatchIfSuccessful):

  • platform/mac/ContentFilterMac.mm:

(WebCore::ContentFilter::unblockHandler):
(WebCore::ContentFilter::ContentFilter): Deleted.
(WebCore::ContentFilter::encode): Deleted.
(WebCore::ContentFilter::decode): Deleted.

Source/WebKit/mac:

Adopted ContentFilterUnblockHandler.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

  • WebView/WebFrame.mm:

(-[WebFrame _contentFilterDidHandleNavigationAction:]):

  • WebView/WebFrameInternal.h:

Source/WebKit2:

Adopted ContentFilterUnblockHandler.

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

(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode):
(IPC::ArgumentCoder<ContentFilter>::encode): Deleted.
(IPC::ArgumentCoder<ContentFilter>::decode): Deleted.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::didStartProvisionalLoad):
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction):

  • UIProcess/WebFrameProxy.h:

(WebKit::WebFrameProxy::setContentFilterUnblockHandler):
(WebKit::WebFrameProxy::setContentFilterForBlockedLoad): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
7:33 PM Changeset in webkit [180984] by ap@apple.com
  • 4 edits in trunk

[Mac] Track localized name follows locale instead of primary language
https://bugs.webkit.org/show_bug.cgi?id=142242
rdar://problem/20000365

Reviewed by Eric Carlson.

Source/WebCore:

  • page/CaptionUserPreferencesMediaAF.cpp: (WebCore::trackDisplayName): Use the

language for localization, as CFBundle does.

LayoutTests:

  • platform/mac/media/video-controls-captions-trackmenu-sorted-expected.txt: This

test now successfully switches to Japanese, as originally intended.

6:51 PM Changeset in webkit [180983] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

[iOS] Crash logs can't be found on ios-simulator because WebKitTestRunner returns the wrong process name
<http://webkit.org/b/142243>

Reviewed by Alexey Proskuryakov.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::webProcessName):
(WTR::TestController::networkProcessName):

  • Return the same process name on iOS and Mac because they both use the same process name for local engineering builds.
6:51 PM Changeset in webkit [180982] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2] Fix memory leak in _getCookieHeadersForTask
https://bugs.webkit.org/show_bug.cgi?id=142245

Reviewed by Alexey Proskuryakov.

Fix memory leak in _getCookieHeadersForTask. We are leaking the CFDictionary
returned by webKitCookieStorageCopyRequestHeaderFieldsForURL().

This patch addresses the issue by storing the return CFDictionary in a
RetainPtr<CFDictionaryRef>.

  • Shared/mac/CookieStorageShim.mm:

(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

6:47 PM Changeset in webkit [180981] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: Add exception for FrameworkSoftLink.h header order
<http://webkit.org/b/141872>

Reviewed by Alex Christensen.

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

semi-colons in various places and fix whitespace.
(_IncludeState): Add _SOFT_LINK_HEADER and _SOFT_LINK_SECTION
constants.
(_IncludeState.init): Add self._visited_soft_link_section
boolean state variable.
(_IncludeState.visited_soft_link_section): Getter for
self._visited_soft_link_section.
(_IncludeState.check_next_include_order): Update state machine
for soft-link headers. Add check that soft-link headers always
appear last.
(_classify_include): Add check for soft-link header type.
(check_include_line): Return early if there is a soft-link
header error.

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

(OrderOfIncludesTest.test_public_primary_header): Add tests for
including soft-link headers.
(OrderOfIncludesTest.test_classify_include): Add test for
_SOFT_LINK_HEADER type.

6:37 PM Changeset in webkit [180980] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

6:09 PM Changeset in webkit [180979] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • WebCore.vcxproj/WebCoreIncludeCommon.props:

Include contentextensions subdirectory.

5:57 PM Changeset in webkit [180978] by achristensen@apple.com
  • 12 edits
    4 adds in trunk

Prepare to use CSS selectors in content extensions.
https://bugs.webkit.org/show_bug.cgi?id=142227

Reviewed by Benjamin Poulain.

Source/WebCore:

Test: http/tests/usercontentfilter/css-display-none.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionActions.h: Added.
  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::Action::deserialize):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::Action::type):
(WebCore::ContentExtensions::Action::cssSelector):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::serializeActions):
Put action descriptions into a compact format in a Vector
to be able to be put into one block of shared read-only memory.
(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
Put an index of the beginning of the description into the NFA instead of the index of the rule
because we will be sharing the descriptions of the actions and not the rules.
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForURL):
(WebCore::ContentExtensions::ContentExtensionsBackend::actionForURL): Deleted.
Return a vector of actions to be able to do multiple actions for one URL.

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/ContentExtensionsManager.cpp:

(WebCore::ContentExtensions::ExtensionsManager::loadTrigger):
(WebCore::ContentExtensions::ExtensionsManager::loadAction):
Added the css-display-none action type, which requires a selector.
(WebCore::ContentExtensions::ExtensionsManager::loadRule):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • page/UserContentController.cpp:

(WebCore::UserContentController::actionsForURL):
(WebCore::UserContentController::actionForURL): Deleted.

  • page/UserContentController.h:

LayoutTests:

  • http/tests/usercontentfilter/css-display-none-expected.txt: Added.
  • http/tests/usercontentfilter/css-display-none.html: Added.
  • http/tests/usercontentfilter/css-display-none.html.json: Added.
5:55 PM Changeset in webkit [180977] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: selecting overview timeline tree elements without source locations doesn't update selection components
https://bugs.webkit.org/show_bug.cgi?id=142248

Reviewed by Timothy Hatcher.

Add a missing event dispatch to trigger recalculation of path components when showing the overview timeline view.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype._treeElementSelected):

5:51 PM Changeset in webkit [180976] by Brent Fulgham
  • 1 edit
    1 add in trunk/LayoutTests

[Win] Add baseline for new legacy-event-handler test.

  • platform/win/fast/dom/legacy-event-handler-attributes-expected.txt: Added.
5:46 PM Changeset in webkit [180975] by timothy_horton@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

<attachment> label can get very wide, doesn't wrap/truncate
https://bugs.webkit.org/show_bug.cgi?id=142214
<rdar://problem/19982499>

  • fast/attachment/attachment-label-highlight-expected.png: Added.
  • fast/attachment/attachment-label-highlight-expected.txt: Added.

Add (empty) platform independent baselines.

5:36 PM Changeset in webkit [180974] by Brent Fulgham
  • 12 edits
    2 moves
    2 adds in trunk

Move scroll animating functions from ScrollAnimator to ScrollController
https://bugs.webkit.org/show_bug.cgi?id=142102
<rdar://problem/20007161>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html.

Do some refactoring of the various scrolling classes:

  1. Consolidate animation times to RunLoop::Timer instead of a combination of WebCore::Timer and CFRunLoopTimers. Do this for Scroll Snap Point and Rubberband animations.
  2. Move ScrollController from platform/mac to platform/cocoa to enable sharing with iOS.
  3. Move code from ScrollAnimator{Mac} -> ScrollController.
  4. Rename scrollOffsetInAxis -> scrollOffsetOnAxis
  5. Rename immediateScrollInAxis -> immediateScrollOnAxis
  • WebCore.xcodeproj/project.pbxproj: Move ScrollController to 'platform/cocoa'
  • page/mac/EventHandlerMac.mm: Make sure the scroll controller is notified of end-of-scroll

events, just as is done for the "event not handled" case in EventHandler.cpp.
(WebCore::EventHandler::platformCompleteWheelEvent):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Remove timer and some delegate

methods, now that ScrollController is controlling this state.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac): We no longer
need to clean up the CFRunLoopTimer.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer): Make sure scroll
state is updated after rubber band snap.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Add temporary stub needed
until Bug1973 is completed.).
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollOnAxis): Ditto.
(WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer): Deleted.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::processWheelEventForScrollSnap): Just call the ScrollController method.
(WebCore::ScrollAnimator::handleWheelEvent): Ditto.
(WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers): Ditto.
(WebCore::ScrollAnimator::scrollOffsetOnAxis): Renamed from scrollOffsetInAxis.
(WebCore::ScrollAnimator::immediateScrollOnAxis): Renamed from immediateScrollInAxis.
(WebCore::ScrollAnimator::scrollOffsetInAxis): Deleted.
(WebCore::ScrollAnimator::immediateScrollInAxis): Deleted.
(WebCore::ScrollAnimator::startScrollSnapTimer): Deleted.
(WebCore::ScrollAnimator::stopScrollSnapTimer): Deleted.
(WebCore::ScrollAnimator::horizontalScrollSnapTimerFired): Deleted.
(WebCore::ScrollAnimator::verticalScrollSnapTimerFired): Deleted.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h: Copied from platform/mac/ScrollController.h.

(WebCore::ScrollControllerClient::startSnapRubberbandTimer):
(WebCore::ScrollControllerClient::stopSnapRubberbandTimer):
(WebCore::ScrollControllerClient::startScrollSnapTimer):
(WebCore::ScrollControllerClient::stopScrollSnapTimer):

  • platform/cocoa/ScrollController.mm: Copied from platform/mac/ScrollController.mm.

(WebCore::ScrollController::ScrollController): Update to initialize new timers.
(WebCore::ScrollController::handleWheelEvent): Update to handle Scroll Snap Point events.
(WebCore::ScrollController::startSnapRubberbandTimer): Added.
(WebCore::ScrollController::stopSnapRubberbandTimer): Manage animation timers locally, do not
require client to maintain timers.
(WebCore::ScrollController::snapRubberBand): Ditto.
(WebCore::ScrollController::processWheelEventForScrollSnap): Added. (Moved from ScrollAnimatorMac)
(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::startScrollSnapTimer): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::horizontalScrollSnapTimerFired): Ditto.
(WebCore::ScrollController::verticalScrollSnapTimerFired): Ditto.
(WebCore::ScrollController::scrollOffsetOnAxis): Moved from ScrollAnimatorMac.
(WebCore::ScrollController::immediateScrollOnAxis): Ditto.

  • platform/mac/AxisScrollSnapAnimator.h: Rename methods from 'InAxis' to 'OnAxis'
  • platform/mac/AxisScrollSnapAnimator.mm:

(WebCore::AxisScrollSnapAnimator::handleWheelEvent): Update for 'InAxis' to 'OnAxis' renaming.
(WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate): Ditto.
(WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation): Ditto.
(WebCore::AxisScrollSnapAnimator::computeSnapDelta): Ditto.
(WebCore::AxisScrollSnapAnimator::computeGlideDelta): Ditto.

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

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac): Remove unused Rubberband timers (now that this is
controlled in the ScrollController)
(WebCore::ScrollAnimatorMac::startSnapRubberbandTimer): Deleted.
(WebCore::ScrollAnimatorMac::stopSnapRubberbandTimer): Deleted.
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): Deleted.

  • platform/mac/ScrollController.h: Removed.
  • platform/mac/ScrollController.mm: Removed.

LayoutTests:

Add a new test that confirms that rubberband snap animations work properly when combined
with text zooming.

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-mainframe-zoom-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html: Added.
5:32 PM Changeset in webkit [180973] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.10

New tag.

5:31 PM Changeset in webkit [180972] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.20.1/Source/WebKit2

Merged r180967. rdar://problem/19933387

5:25 PM Changeset in webkit [180971] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebKit2

Merged r180967. rdar://problem/19953432

5:19 PM Changeset in webkit [180970] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.20.1/Source

Versioning.

5:17 PM Changeset in webkit [180969] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.20.1

New tag.

5:15 PM Changeset in webkit [180968] by andersca@apple.com
  • 7 edits
    2 deletes in trunk/Source

Remove unused compression code
https://bugs.webkit.org/show_bug.cgi?id=142237

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • bytecode/UnlinkedCodeBlock.h:

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Compression.cpp: Removed.
  • wtf/Compression.h: Removed.
5:14 PM Changeset in webkit [180967] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Incomplete dictation results in text fields in a web page.
https://bugs.webkit.org/show_bug.cgi?id=142240
rdar://problem/19953432

Reviewed by Tim Horton.

The empty stub for insertDictationResult:withCorrectionIdentifier
must be removed. This way UIKit will call insertText and do the right thing.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView insertDictationResult:withCorrectionIdentifier:]): Deleted.

5:03 PM Changeset in webkit [180966] by commit-queue@webkit.org
  • 6 edits
    6 deletes in trunk

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

Broke fast/css/acid2-pixel.html (Requested by ap on #webkit).

Reverted changeset:

"Setting any of the <object> element plugin controlling
attributes does not have any affect."
https://bugs.webkit.org/show_bug.cgi?id=141936
http://trac.webkit.org/changeset/180683

4:39 PM Changeset in webkit [180965] by dino@apple.com
  • 19 edits
    2 adds in trunk

Controls panel should have system blurry background
https://bugs.webkit.org/show_bug.cgi?id=142154
<rdar://problem/20000964>

Reviewed by Simon Fraser.

Source/WebCore:

In order to replicate the system style of media controls
on OS X and iOS, we need to expose a special -webkit-appearance.
This patch adds the new property value, and implements
the iOS part of the appearance, which is a blurry shaded
background.

Test: compositing/media-controls-bar-appearance.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Map the new
keywords from ControlParts.

  • css/CSSValueKeywords.in: Add media-controls-light-bar-background

and media-controls-dark-bar-background. Darin suggested they
be sorted, so I did this at the same time.

  • platform/ThemeTypes.h: New ControlParts for the values, and

sort the values since they need to be in sync with
CSSValueKeywords.in.

  • platform/graphics/GraphicsLayer.h: Expose two new custom appearance

values.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::layerTypeForCustomBackdropAppearance): Helper function.
(WebCore::isCustomBackdropLayerType): Ditto.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Merge setting
a system backdrop layer in with the code that swaps to/from tiled layers.
(WebCore::GraphicsLayerCA::changeLayerTypeTo): New method that does what
swapFromOrToTiledLayer implemented, but also allows us to change to a
system backdrop layer.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h: New layer types.
  • platform/graphics/ca/mac/PlatformCALayerMac.mm: For now expose these

as regular backdrop layers.
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::updateCustomAppearance):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Make sure to update
custom appearance,
(WebCore::RenderLayerBacking::updateCustomAppearance): New method.

  • rendering/RenderLayerBacking.h:

Source/WebKit2:

In order to replicate the system style of media controls
on OS X and iOS, we need to expose a special -webkit-appearance.
This patch adds the new property value, and implements
the iOS part of the appearance, which is a blurry shaded
background.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext): Add entries for
the new layer types, even though they are not correct yet.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::updateCustomAppearance):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties): UIBackdropViews
have a defined hierarchy that we don't create. We need to make sure we add our
children to the right subview.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::description): Logging.

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm: Rename existing WKBackdropView

to WKSimpleBackdropView, and add a new WKBackdropView that inherits
from UIBackdropView.
(-[WKBackdropView hitTest:withEvent:]):
(-[WKBackdropView description]):
(WebKit::RemoteLayerTreeHost::createLayer): Handle the new LayerTypes.

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

LayoutTests:

Make sure content with a -webkit-appearance of
media-controls-light-bar-background or
media-controls-dark-bar-background doesn't get composited
unless explicitly requested. This avoids a
performance hit for a rarely used feature.

  • compositing/media-controls-bar-appearance-expected.txt: Added.
  • compositing/media-controls-bar-appearance.html: Added.
4:30 PM Changeset in webkit [180964] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc: Don't branch when setting the owner of a large object
https://bugs.webkit.org/show_bug.cgi?id=142241

Reviewed by Andreas Kling.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::owner):
(bmalloc::BoundaryTag::setOwner):

4:10 PM Changeset in webkit [180963] by Chris Dumez
  • 21 edits in trunk/Source

Access ApplicationCacheStorage global instance via singleton() static member function
https://bugs.webkit.org/show_bug.cgi?id=142239

Reviewed by Anders Carlsson.

Access ApplicationCacheStorage global instance via singleton() static
member function as per WebKit coding style.

4:08 PM Changeset in webkit [180962] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit2

Build Fix: Add fall back handling in postprocess script for missing/unknown platform name.

Rubber-stamped by David Kilzer.

  • mac/postprocess-framework-headers.sh:
3:36 PM Changeset in webkit [180961] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix for iOS.

Unreviewed.

  • UIProcess/ios/WKContentViewInteraction.mm: Adding forward declaration.
3:27 PM Changeset in webkit [180960] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

Re-enabled this feature on iOS, now that the iOS crash should be fixed.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:
3:22 PM Changeset in webkit [180959] by ap@apple.com
  • 6 edits in trunk/Tools

build.webkit.org/dashboard: Don't repeatedly handle each test type
https://bugs.webkit.org/show_bug.cgi?id=142211

Reviewed by Tim Horton and Matt Hanson.

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

(Buildbot.prototype.javascriptTestResultsURLForIteration): Deleted.
(Buildbot.prototype.apiTestResultsURLForIteration): Deleted.
(Buildbot.prototype.platformAPITestResultsURLForIteration): Deleted.
(Buildbot.prototype.webkitpyTestResultsURLForIteration): Deleted.
(Buildbot.prototype.webkitperlTestResultsURLForIteration): Deleted.
(Buildbot.prototype.bindingsTestResultsURLForIteration): Deleted.
Removed functions that build a link to test step results. The buildbot provides
these links in JSON.

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

(BuildbotIteration): Put failing tests into an array, instead of named variables.
(BuildbotIteration.ProductiveSteps): Removed step names that are not used on build.webkit.org.
We can easily add them to the map as needed.
(BuildbotIteration.TestSteps): Added a list of test steps to be displayed by test queues.
(BuildbotIteration.prototype._parseData): Moved code for parsing step results away
to BuildbotTestResults class. We used to parse here, build an intermediate data structure,
and then build a BuildbotTestResults object, which was strange.
(BuildbotIteration.prototype.loadLayoutTestResults): Ditto.

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

Corrected an unrelated assertion that was buggy, and kept firing.

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

(BuildbotTestResults):
(BuildbotTestResults.prototype._parseResults.resultSummarizer):
(BuildbotTestResults.prototype._parseResults):
(BuildbotTestResults.prototype.addFullLayoutTestResults):
Moved the code for parsing JSON results for a single step here.

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

(BuildbotTesterQueueView.prototype._testStepFailureDescription):
(BuildbotTesterQueueView.prototype._testStepFailureDescriptionWithCount):
(BuildbotTesterQueueView.prototype._presentPopoverForGenericTestFailures):
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus): Deleted.
(BuildbotTesterQueueView.prototype.update): Deleted.
(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds): Deleted.
Updated for the new data structures. One behavior change is that we now display individual
counts when multiple test kinds fail, e.g. "1 javascript test failure, 83+ layout
test failures, 3 platform api test failures".

2:45 PM Changeset in webkit [180958] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

bmalloc: Added missing features to the malloc zone introspection API
https://bugs.webkit.org/show_bug.cgi?id=142235

Reviewed by Andreas Kling.

This should fix the crash we saw on the iOS PLT bot
(c.f. http://trac.webkit.org/changeset/180604).

  • bmalloc/Zone.cpp:

(bmalloc::good_size):
(bmalloc::check):
(bmalloc::print):
(bmalloc::log):
(bmalloc::force_lock):
(bmalloc::force_unlock):
(bmalloc::statistics):
(bmalloc::size):
(bmalloc::enumerator): Provide all of these functions since they are called
indiscriminately on all zones.

(bmalloc::Zone::Zone):
(bmalloc::Zone::size): Deleted.
(bmalloc::Zone::enumerator): Deleted. Moved these functions out of the
Zone class since they can stand alone.

  • bmalloc/Zone.h:
2:43 PM Changeset in webkit [180957] by commit-queue@webkit.org
  • 2 edits
    2 adds
    1 delete in trunk

Convert ManualTests/svg-tooltip.svg to a DRT test
https://bugs.webkit.org/show_bug.cgi?id=140480

Patch by Daniel Bates <dabates@apple.com> on 2015-03-03
Reviewed by Alex Christensen.

.:

  • ManualTests/svg-tooltip.svg: Removed.

LayoutTests:

  • svg/hittest/svg-tooltip-expected.txt: Added.
  • svg/hittest/svg-tooltip.svg: Added.
2:35 PM Changeset in webkit [180956] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JIT debugging features that selectively disable the JITs for code blocks need to stay out of the way of the critical path of JIT management
https://bugs.webkit.org/show_bug.cgi?id=142234

Reviewed by Mark Lam and Benjamin Poulain.

Long ago, we used to selectively disable compilation of CodeBlocks for debugging purposes by
adding hacks to DFGDriver.cpp. This was all well and good. It used the existing
CompilationFailed mode of the DFG driver to signal failure of CodeBlocks that we didn't want
to compile. That's great because CompilationFailed is a well-supported return value on the
critical path, usually used for when we run out of JIT memory.

Later, this was moved into DFGCapabilities. This was basically incorrect. It introduced a bug
where disabling compiling of a CodeBlock meant that we stopped inlining it as well. So if
you had a compiler bug that arose if foo was inlined into bar, and you bisected down to bar,
then foo would no longer get inlined and you wouldn't see the bug. That's busted.

So then we changed the code in DFGCapabilities to mark bar as CanCompile and foo as
CanInline. Now, foo wouldn't get compiled alone but it would get inlined.

But then we removed CanCompile because that capability mode only existed for the purpose of
our old varargs hacks. After that removal, "CanInline" became CannotCompile. This means
that if you bisect down on bar in the "foo inlined into bar" case, you'll crash in the DFG
because the baseline JIT wouldn't have known to insert profiling on foo.

We could fix this by bringing back CanInline.

But this is all a pile of nonsense. The debug support to selectively disable compilation of
some CodeBlocks shouldn't cross-cut our entire engine and should most certainly never involve
adding new capability modes. This support is a hack at best and is for use by JSC hackers
only. It should be as unintrusive as possible.

So, as in the ancient times, the only proper place to put this hack is in DFGDriver.cpp, and
return CompilationFailed. This is correct not just because it takes capability modes out of
the picture (and obviates the need to introduce new ones), but also because it means that
disabling compilation doesn't change the profiling mode of other CodeBlocks in the Baseline
JIT. Capability mode influences profiling mode which in turn influences code generation in
the Baseline JIT, sometimes in very significant ways - like, we sometimes do additional
double-to-int conversions in Baseline if we know that we might tier-up into the DFG, since
this buys us more precise profiling.

This change reduces the intrusiveness of debugging hacks by making them use the very simple
CompilationFailed mechanism rather than trying to influence capability modes. Capability
modes have very subtle effects on the whole engine, while CompilationFailed just makes the
engine pretend like the DFG compilation will happen at timelike infinity. That makes these
hacks much more likely to continue working as we make other changes to the system.

This brings back the ability to bisect down onto a function bar when bar inlines foo. Prior
to this change, we would crash in that case.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::isSupported):
(JSC::DFG::mightCompileEval):
(JSC::DFG::mightCompileProgram):
(JSC::DFG::mightCompileFunctionForCall):
(JSC::DFG::mightCompileFunctionForConstruct):

  • dfg/DFGCapabilities.h:
  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

2:12 PM Changeset in webkit [180955] by timothy_horton@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

<attachment> label can get very wide, doesn't wrap/truncate
https://bugs.webkit.org/show_bug.cgi?id=142214
<rdar://problem/19982499>

  • platform/mac-mavericks/fast/attachment: Added.
  • platform/mac-mavericks/fast/attachment/attachment-label-highlight-expected.txt: Added.

Add a Mavericks result because text metrics differ.

1:58 PM Changeset in webkit [180954] by ggaren@apple.com
  • 5 edits in trunk/Source/bmalloc

bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

Rolling back in but disabled on iOS until I can debug why the iOS PLT crashes.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

  • bmalloc/VMHeap.h:
  • bmalloc/Zone.cpp:

(bmalloc::Zone::size):
(bmalloc::Zone::Zone):

  • bmalloc/Zone.h:
1:47 PM Changeset in webkit [180953] by ggaren@apple.com
  • 6 edits in trunk/Source/bmalloc

bmalloc: Miscellaneous cleanup
https://bugs.webkit.org/show_bug.cgi?id=142231

Reviewed by Andreas Kling.

No performance change -- maybe a tiny reduction in memory use.

  • bmalloc/Heap.cpp: Moved the sleep function into StaticMutex, since

it's a helper for working with mutexes.

(bmalloc::Heap::scavenge): Make sure to wait before we start any
scavenging, since individual scavenging functions now always scavenge
at least one page before waiting themselves.

(bmalloc::Heap::scavengeSmallPages):
(bmalloc::Heap::scavengeMediumPages):
(bmalloc::Heap::scavengeLargeObjects): Use the new wait helper to
simplify this code. Also, we now require our caller to wait until at
least one deallocation is desirable. This simplifies our loop.

(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateMediumPage):
(bmalloc::Heap::allocateXLarge):
(bmalloc::Heap::allocateLarge): Don't freak out any time the heap does
an allocation. Only consider the heap to be growing if it actually needs
to allocate new VM. This allows us to shrink the heap back down from a
high water mark more reliably even if heap activity continues.

(bmalloc::sleep): Deleted.
(bmalloc::Heap::scavengeLargeRanges): Renamed to match our use of
"LargeObject".

  • bmalloc/Heap.h:
  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::operator bool): Added to simplify a while loop.

  • bmalloc/StaticMutex.h:

(bmalloc::sleep):
(bmalloc::waitUntilFalse): New helper for waiting until a condition
becomes reliably false.

  • bmalloc/Vector.h:

(bmalloc::Vector<T>::~Vector): Oops! Don't deallocate the null pointer.
We don't actually run any Vector destructors, but an iteration of this
patch did, and then crashed. So, let's fix that.

1:20 PM Changeset in webkit [180952] by Darin Adler
  • 1 edit
    2 adds in trunk/LayoutTests

Test legacy event handler attributes (ones with names like "onclick")
https://bugs.webkit.org/show_bug.cgi?id=142221

Reviewed by Anders Carlsson.

  • fast/dom/legacy-event-handler-attributes-expected.txt: Added.
  • fast/dom/legacy-event-handler-attributes.html: Added.
1:13 PM Changeset in webkit [180951] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the build.

  • platform/spi/cf/CFNetworkSPI.h:
12:29 PM March 2015 Meeting edited by Simon Fraser
(diff)
12:16 PM Changeset in webkit [180950] by timothy_horton@apple.com
  • 5 edits
    3 adds in trunk

<attachment> label can get very wide, doesn't wrap/truncate
https://bugs.webkit.org/show_bug.cgi?id=142214
<rdar://problem/19982499>

Reviewed by Simon Fraser.

Test: fast/attachment/attachment-label-highlight.html

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

(WebCore::labelTextColorForAttachment):
(WebCore::AttachmentLayout::addLine):
(WebCore::AttachmentLayout::layOutText):
(WebCore::AttachmentLayout::AttachmentLayout):
Make it possible to lay out multiple lines of label text.
We lay out the whole string normally, but then only draw N (where N=1 for now,
but is adjustable) of the lines. The remainder of the string is then
merged into a single line, which is middle-truncated with an ellipsis
and drawn in place of the N+1 line.

(WebCore::addAttachmentLabelBackgroundRightCorner):
(WebCore::addAttachmentLabelBackgroundLeftCorner):
(WebCore::paintAttachmentLabelBackground):
Wrap the label background around the multiple lines of text with curved edges.
We run first down the right side of the label, determining whether to use
concave or convex arcs based on the relative widths of adjacent lines.
Then, we run back up the left side of the label doing the same thing.

If the background rects of two lines are very similar (within the rounded rect radius),
they will be expanded to the larger of the two, because otherwise the arcs
look quite wrong.

(WebCore::paintAttachmentLabel):
Draw the label with CoreText directly instead of bothering with WebCore
text layout primitives. There's no need, and it makes wrapping much more complicated.

(WebCore::RenderThemeMac::paintAttachment):
(WebCore::RenderThemeMac::paintAttachmentLabelBackground): Deleted.
(WebCore::RenderThemeMac::paintAttachmentLabel): Deleted.

  • fast/attachment/attachment-label-highlight.html: Added.
  • platform/mac/fast/attachment/attachment-label-highlight-expected.png: Added.
  • platform/mac/fast/attachment/attachment-label-highlight-expected.txt: Added.

Add a test for various <attachment> highlight cases.

  • platform/mac/fast/attachment/attachment-rendering-expected.txt:

Update expected result for attachment-rendering, which changed size
because we now bail from text layout if we don't have any text.

12:13 PM Changeset in webkit [180949] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Include key to NetworkCacheStorage::Entry
https://bugs.webkit.org/show_bug.cgi?id=142215

Reviewed by Chris Dumez.

This simplified code. The key is saved as part of the entry so it makes logical sense too.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::makeCacheKey):
(WebKit::encodeStorageEntry):
(WebKit::NetworkCache::retrieve):
(WebKit::NetworkCache::store):
(WebKit::NetworkCache::update):
(WebKit::NetworkCache::traverse):
(WebKit::entryAsJSON):
(WebKit::NetworkCache::dumpContentsToFile):

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCacheKey::operator=):

  • NetworkProcess/cache/NetworkCacheKey.h:

(WebKit::NetworkCacheKey::isNull):

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::decodeEntry):
(WebKit::encodeEntryHeader):
(WebKit::retrieveFromMemory):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::traverse):
(WebKit::NetworkCacheStorage::dispatchPendingWriteOperations):
(WebKit::NetworkCacheStorage::dispatchFullWriteOperation):
(WebKit::NetworkCacheStorage::dispatchHeaderWriteOperation):

12:12 PM Changeset in webkit [180948] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Avoid applying the clip-path when painting, if a layer also has a shape layer mask
https://bugs.webkit.org/show_bug.cgi?id=142212

Reviewed by Zalan Bujtas.

After r180882 we translate clip-path into a composited shape mask when the layer
is composited. However, we were also still applying the clip-path when painting
the layer contents.

Now, we set the GraphicsLayer bits GraphicsLayerPaintClipPath and GraphicsLayerPaintMask
only for the m_maskLayer's painting. This translate into setting PaintLayerPaintingCompositingMaskPhase
and PaintLayerPaintingCompositingClipPathPhase only when painting that same mask layer,
rather than always. To ensure that masks and clip-path get applied for software paints,
add shouldPaintMask() and shouldApplyClipPath() that return true for non-composited layers,
and when doing a flattening paint.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents): Use shouldApplyClipPath().
Pull three chunks of code under a single "if (shouldPaintContent && !selectionOnly)" condition.
The condition for paintChildClippingMaskForFragments() is changed slightly; we need to call this
only when painting the clip-path/mask layer contents, but also only when there is no mask to fill
the clipped area for us.
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::paintsWithClipPath): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateMaskingLayer): Be sure to set the GraphicsLayerPaintClipPath bit
when having a mask forces us onto the painting path.

12:10 PM Changeset in webkit [180947] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Cache shrink leaves behind empty partition directories
https://bugs.webkit.org/show_bug.cgi?id=142217

Reviewed by Andreas Kling.

  • NetworkProcess/cache/NetworkCacheFileSystemPosix.h:

(WebKit::traverseCacheFiles):

No need for std::function.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::shrinkIfNeeded):

After shrink traverse through the partition directories and try to delete them.
System knows if they are actually empty.

11:56 AM Changeset in webkit [180946] by andersca@apple.com
  • 5 edits in trunk/Source

Use the correct display name for website data for local files
https://bugs.webkit.org/show_bug.cgi?id=142228

Reviewed by Dan Bernstein.

Source/WebCore:

  • English.lproj/Localizable.strings:

Add local file display name.

  • platform/spi/cf/CFNetworkSPI.h:

Add kCFHTTPCookieLocalFileDomain declaration.

Source/WebKit2:

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(displayNameForLocalFiles):
Add new helper function.

(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
Check if the hostname is kCFHTTPCookieLocalFileDomain.

(WebKit::WebsiteDataRecord::displayNameForOrigin):
Handle file URLs as well.

11:31 AM March 2015 Meeting edited by Simon Fraser
(diff)
11:29 AM March 2015 Meeting edited by Simon Fraser
(diff)
11:14 AM Changeset in webkit [180945] by mmirman@apple.com
  • 3 edits in trunk/Tools

JSC tests should not be repeated twice for each branch builder, and should if possible have their own queue.
https://bugs.webkit.org/show_bug.cgi?id=142094

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Added bots 155 and 157
  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(TestFactory):
(TestFactory.init): Made running of JSC tests conditional.
(TestAllButJSCFactory):
(TestJSCFactory): Added.
(TestJSCFactory.init):
(TestWebKit2AndJSCFactory): Added factory to not run JSC tests on WebKit2.

11:13 AM Changeset in webkit [180944] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

BreakingContext cleanup
https://bugs.webkit.org/show_bug.cgi?id=142146

Reviewed by Dean Jackson.

  1. Use commitLineBreakAtCurrentWidth() instead of directly

updating m_width and m_lineBreak, because the name makes the
intent clearer.

  1. Remove duplicate function LineBreaker::nextSegmentBreak().
  2. lineStyle() takes care of inspecting RenderText's parent's

style.

  1. Add FIXME to BreakingContext::initializeForCurrentObject()

because it seems like we are ignoring first-line style for
some properties.

No new tests because there is no behavior change.

  • rendering/line/BreakingContextInlineHeaders.h:

(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::handleReplaced):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::BreakingContext::handleEndOfLine):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::nextLineBreak): Deleted.
(WebCore::LineBreaker::nextSegmentBreak): Deleted.

  • rendering/line/LineBreaker.h:
  • rendering/line/LineInlineHeaders.h:

(WebCore::lineStyle):

10:52 AM Changeset in webkit [180943] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed typo in platform guard in http://trac.webkit.org/changeset/180939.

Unreviewed.

  • UIProcess/ios/WKContentViewInteraction.mm:
10:50 AM Changeset in webkit [180942] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

build-webkit --help is wrong about how to build for the iOS simulator
<http://webkit.org/b/142223>

Reviewed by Csaba Osztrogonác.

  • Scripts/build-webkit: Fix help.
10:10 AM Changeset in webkit [180941] by Nikita Vasilyev
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
https://bugs.webkit.org/show_bug.cgi?id=142141

ConsoleSession doesn't have a title and it's not collapsible either.
Simplify ConsoleSession by removing excessive markup.

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
(WebInspector.JavaScriptLogViewController.prototype.get topConsoleGroup): Deleted.

  • UserInterface/Main.html:
  • UserInterface/Views/ConsoleGroup.js:

(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessage):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.

  • UserInterface/Views/ConsoleSession.js: Added.

(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessage):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.hasMessages):

  • UserInterface/Views/LogContentView.css:

(.console-session + .console-session):
(.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
(.console-group.new-session): Deleted.

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

Unreviewed. Bump libsoup version to 2.49.91.1 to fix 32 bit build.

  • gtk/jhbuild.modules:
9:46 AM Changeset in webkit [180939] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Adopt new API for keyboard interaction.
https://bugs.webkit.org/show_bug.cgi?id=142201
rdar://problem/19924949

Reviewed by Joseph Pecoraro.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputAssistantItem]):
(-[WKContentView _inputAssistantItem]):

9:32 AM Changeset in webkit [180938] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[Win64] JSC compile error.
https://bugs.webkit.org/show_bug.cgi?id=142216

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-03-03
Reviewed by Mark Lam.

There is missing a version of setupArgumentsWithExecState when NUMBER_OF_ARGUMENT_REGISTERS == 4.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

9:13 AM Changeset in webkit [180937] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: popover should use requestAnimationFrame to drive move/resize animations
https://bugs.webkit.org/show_bug.cgi?id=142218

Reviewed by Timothy Hatcher.

Remove setTimeout workaround now that Inspector runs in its own process.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype.drawBackground):
(WebInspector.Popover.prototype._animateFrame):

9:08 AM Changeset in webkit [180936] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Document more debug assertions.

  • platform/win/TestExpectations:
8:52 AM Changeset in webkit [180935] by Brian Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Console log level selector loses selection on reload
https://bugs.webkit.org/show_bug.cgi?id=142199

Reviewed by Timothy Hatcher.

The selected items in the console scope bar were being saved as settings,
but the "All" scope is forcibly selected on reload due to a logic bug.

  • UserInterface/Base/Main.js:

(WebInspector.showFullHeightConsole):
The scope bar may already have selected items restored from WebInspector.Settings.
Don't select a scope unless explicitly requested (i.e., clicking on dashboard buttons)
or if no scopes are selected at all. (In the latter case, "All" is the default scope.)

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView): Don't specify a default value here to avoid trampling
settings. The "All" scope is selected by default in showFullHeightConsole if
nothing else is selected.

7:58 AM Changeset in webkit [180934] by Chris Dumez
  • 6 edits
    6 adds in trunk

Make AudioContext suspendable when it is not rendering
https://bugs.webkit.org/show_bug.cgi?id=142210
<rdar://problem/19923085>

Reviewed by Eric Carlson.

Source/WebCore:

Make AudioContext suspendable when it is not rendering to increase the
likelihood of entering the PageCache for pages using WebAudio.

This patch adds a state member to AudioContext with 3 possible states:
Suspended / Running / Closed, as defined in the specification:
http://webaudio.github.io/web-audio-api/#widl-AudioContext-state

This state is used to decide if we can suspend the page or not. We
can safely suspend if the AudioContext's state is suspended (did not
start rendering) or closed (Stopped rendering).

Note that this patch does not expose the AudioContext's state to the
Web yet, even though it is exposed in the latest specification.

Tests: fast/history/page-cache-closed-audiocontext.html

fast/history/page-cache-running-audiocontext.html
fast/history/page-cache-suspended-audiocontext.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::canSuspend):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::fireCompletionEvent):

  • Modules/webaudio/AudioContext.h:

LayoutTests:

Add layout tests to check cases where an AudioContext should or should
not prevent pages from entering the page cache.

  • fast/history/page-cache-closed-audiocontext-expected.txt: Added.
  • fast/history/page-cache-closed-audiocontext.html: Added.
  • fast/history/page-cache-running-audiocontext-expected.txt: Added.
  • fast/history/page-cache-running-audiocontext.html: Added.
  • fast/history/page-cache-suspended-audiocontext-expected.txt: Added.
  • fast/history/page-cache-suspended-audiocontext.html: Added.
7:10 AM Changeset in webkit [180933] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.7.91

WebKitGTK+ 2.7.91

7:09 AM Changeset in webkit [180932] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.91 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.7.91.
2:53 AM Changeset in webkit [180931] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180928 - [SOUP] Use SoupMessage::starting instead of SoupSession::request-started
https://bugs.webkit.org/show_bug.cgi?id=142164

Reviewed by Sergio Villar Senin.

SoupSession::request-started is deprecated in libsoup 2.50. Both
signals are equivalent, but SoupMessage::starting is also emitted
for resources loaded from the disk cache. This fixes web timing
calculations for cached resources, since we were not initializing
m_requestStart.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::startingCallback):
(WebCore::createSoupMessageForHandleAndRequest):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

2:52 AM Changeset in webkit [180930] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r180927 - [SOUP] Synchronous XMLHttpRequests can time out when we reach the max connections limit
https://bugs.webkit.org/show_bug.cgi?id=141508

Reviewed by Sergio Villar Senin.

Source/WebCore:

Use SOUP_MESSAGE_IGNORE_CONNECTION_LIMITS flag when loading a
synchronous message instead of increasing the maximum number of
connections allowed if the soup version is recent enough.
The current solution of increasing/decreasing the limits doesn't
always work, because connections are not marked as IDLE in libsoup
until the message is unqueued, but we don't wait for the message
to be unqueued to finish our loads in WebKit, we finish them as
soon as we have finished reading the stream. This causes that
synchronous loads keep blocked in the nested main loop until the
timeout of 10 seconds is fired and the load fails.
Also marked WebCoreSynchronousLoader class as final, the virtual
methods as override and removed the unsused method isSynchronousClient.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::createSoupMessageForHandleAndRequest):
(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
(WebCore::WebCoreSynchronousLoader::isSynchronousClient): Deleted.
(WebCore::WebCoreSynchronousLoader::didReceiveResponse):
(WebCore::WebCoreSynchronousLoader::didReceiveData):
(WebCore::WebCoreSynchronousLoader::didReceiveBuffer):
(WebCore::WebCoreSynchronousLoader::didFinishLoading):
(WebCore::WebCoreSynchronousLoader::didFail):
(WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
(WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):

Tools:

Add a unit test to check that synchronous XHRs load even if the
maximum connection limits are reached.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):
(serverCallback):
(beforeAll):

  • gtk/jhbuild.modules: Bump libsoup version to 2.49.91.
2:51 AM Changeset in webkit [180929] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r180924 - REGRESSION(r177075): WebProcess crashes when entering accelerating compositing mode before the WebView is realized
https://bugs.webkit.org/show_bug.cgi?id=142079

Reviewed by Žan Doberšek.

The problem is that the texture mapper and native window handler
are initialized when the LayerTreeHost is initialized, assuming
the UI process has already sent the native window handler to the
web process, but that doesn't always happen since we moved the
redirected window creation to realize in r177075.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::nativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): Call
LayerTreeHost::setNativeSurfaceHandleForCompositing if we
already have a native window handle at this point.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
Call LayerTreeHost::setNativeSurfaceHandleForCompositing also when
not using threaded compositing.

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::makeContextCurrent): Helper function to
ensure a context and making it current.
(WebKit::LayerTreeHostGtk::ensureTextureMapper): Ensure a texture
is created for the current context.
(WebKit::LayerTreeHostGtk::initialize): Use makeContextCurrent()
and ensureTextureMapper(), and remove the LayerTreeContext
initialization since that's is now always initialized in
setNativeSurfaceHandleForCompositing().
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use
makeContextCurrent() helper function and also call
ensureTextureMapper() just in case the texture could not be
created during initialization because the native window handle was
not yet available.
(WebKit::LayerTreeHostGtk::flushAndRenderLayers): Use makeContextCurrent().
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Initialize the LayerTreeContext.
(WebKit::LayerTreeHostGtk::glContext): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2:24 AM Changeset in webkit [180928] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[SOUP] Use SoupMessage::starting instead of SoupSession::request-started
https://bugs.webkit.org/show_bug.cgi?id=142164

Reviewed by Sergio Villar Senin.

SoupSession::request-started is deprecated in libsoup 2.50. Both
signals are equivalent, but SoupMessage::starting is also emitted
for resources loaded from the disk cache. This fixes web timing
calculations for cached resources, since we were not initializing
m_requestStart.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::startingCallback):
(WebCore::createSoupMessageForHandleAndRequest):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

1:17 AM Changeset in webkit [180927] by Carlos Garcia Campos
  • 5 edits in trunk

[SOUP] Synchronous XMLHttpRequests can time out when we reach the max connections limit
https://bugs.webkit.org/show_bug.cgi?id=141508

Reviewed by Sergio Villar Senin.

Source/WebCore:

Use SOUP_MESSAGE_IGNORE_CONNECTION_LIMITS flag when loading a
synchronous message instead of increasing the maximum number of
connections allowed if the soup version is recent enough.
The current solution of increasing/decreasing the limits doesn't
always work, because connections are not marked as IDLE in libsoup
until the message is unqueued, but we don't wait for the message
to be unqueued to finish our loads in WebKit, we finish them as
soon as we have finished reading the stream. This causes that
synchronous loads keep blocked in the nested main loop until the
timeout of 10 seconds is fired and the load fails.
Also marked WebCoreSynchronousLoader class as final, the virtual
methods as override and removed the unsused method isSynchronousClient.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::createSoupMessageForHandleAndRequest):
(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
(WebCore::WebCoreSynchronousLoader::isSynchronousClient): Deleted.
(WebCore::WebCoreSynchronousLoader::didReceiveResponse):
(WebCore::WebCoreSynchronousLoader::didReceiveData):
(WebCore::WebCoreSynchronousLoader::didReceiveBuffer):
(WebCore::WebCoreSynchronousLoader::didFinishLoading):
(WebCore::WebCoreSynchronousLoader::didFail):
(WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
(WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):

Tools:

Add a unit test to check that synchronous XHRs load even if the
maximum connection limits are reached.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):
(serverCallback):
(beforeAll):

  • gtk/jhbuild.modules: Bump libsoup version to 2.49.91.
12:55 AM Changeset in webkit [180926] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180908 - bmalloc: Eagerly remove allocated objects from the free list
https://bugs.webkit.org/show_bug.cgi?id=142194

Reviewed by Andreas Kling.

This reduces the pressure to garbage collect the free list.

Might be a 1% speedup on MallocBench.

  • bmalloc/FreeList.cpp: Put this comment at the top of the file instead

of repeating it inside of each function. Tried to clarify the details.

(bmalloc::FreeList::takeGreedy): Matched the other iteration code in this
file for consistency -- even though either direction works fine in this
function.

(bmalloc::FreeList::take): Change to iterate from low to high so that we
can maintain an index into the vector that is not disturbed even if we
pop from the middle (which invalidates the last index in the vector).

Decrement i when popping from the middle to make sure that we don't
skip the next item after popping.

(bmalloc::FreeList::removeInvalidAndDuplicateEntries): Ditto.

12:47 AM Changeset in webkit [180925] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8

Merge r180884 - REGRESSION(r179409): [GTK] Undefined symbol prevents web extensions from being loaded
https://bugs.webkit.org/show_bug.cgi?id=142165

Patch by Debarshi Ray <debarshir@gnome.org> on 2015-03-02
Reviewed by Carlos Garcia Campos.

  • Source/cmake/gtksymbols.filter:
12:10 AM Changeset in webkit [180924] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

REGRESSION(r177075): WebProcess crashes when entering accelerating compositing mode before the WebView is realized
https://bugs.webkit.org/show_bug.cgi?id=142079

Reviewed by Žan Doberšek.

The problem is that the texture mapper and native window handler
are initialized when the LayerTreeHost is initialized, assuming
the UI process has already sent the native window handler to the
web process, but that doesn't always happen since we moved the
redirected window creation to realize in r177075.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::nativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): Call
LayerTreeHost::setNativeSurfaceHandleForCompositing if we
already have a native window handle at this point.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
Call LayerTreeHost::setNativeSurfaceHandleForCompositing also when
not using threaded compositing.

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::makeContextCurrent): Helper function to
ensure a context and making it current.
(WebKit::LayerTreeHostGtk::ensureTextureMapper): Ensure a texture
is created for the current context.
(WebKit::LayerTreeHostGtk::initialize): Use makeContextCurrent()
and ensureTextureMapper(), and remove the LayerTreeContext
initialization since that's is now always initialized in
setNativeSurfaceHandleForCompositing().
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use
makeContextCurrent() helper function and also call
ensureTextureMapper() just in case the texture could not be
created during initialization because the native window handle was
not yet available.
(WebKit::LayerTreeHostGtk::flushAndRenderLayers): Use makeContextCurrent().
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Initialize the LayerTreeContext.
(WebKit::LayerTreeHostGtk::glContext): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

Mar 2, 2015:

11:20 PM Changeset in webkit [180923] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Disable -Wdeprecated-declaration warnings in WebVideoFullscreenInterfaceAVKit.mm

Fixing the deprecations is tracked by: <rdar://problem/20018692>

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized):
Ignore -Wdeprecated-declaration warnings via clang pragmas.

10:57 PM Changeset in webkit [180922] by mark.lam@apple.com
  • 3 edits in trunk/LayoutTests

Gardening: skipping inspector/timeline tests since they are still flaky.
<https://webkit.org/b/142208>

Not reviewed.

  • TestExpectations:
  • Restore skipping of inspector/timeline tests.
  • platform/win/TestExpectations:
  • Removing the skipping here since the general TestExpectations has it covered.
10:55 PM Changeset in webkit [180921] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source

[WK2] Remove unnecessary create() factory functions.
https://bugs.webkit.org/show_bug.cgi?id=142161

Reviewed by Chris Dumez.

We can replace some create() factory functions with std::make_unique(). Because
it just returns new instance. Even some of those functions have used std::unique_ptr<>
instead of std::make_unique<>. Fixed all.

Source/WebKit2:

  • DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h:

(WebKit::SQLiteIDBTransaction::create): Deleted.

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::establishTransaction):

  • Platform/efl/DispatchQueueWorkItemEfl.h:

(WorkItem::dispatch):
(WorkItem::create): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:

(WebKit::PageClientImpl::create): Deleted.

  • UIProcess/API/gtk/WebKitTextChecker.h:

(WebKitTextChecker::create): Deleted.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):

Source/WTF:

  • wtf/efl/WorkQueueEfl.cpp:

(WorkQueue::dispatch):

8:38 PM Changeset in webkit [180920] by ap@apple.com
  • 2 edits in trunk/Tools

Update the name of ASan build step.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
8:33 PM Changeset in webkit [180919] by fpizlo@apple.com
  • 4 edits in trunk/Source

DFG compile time measurements should really report milliseconds
https://bugs.webkit.org/show_bug.cgi?id=142209

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Fix this to record milliseconds instead of seconds.

  • dfg/DFGPlan.cpp:

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

Source/WTF:

This bug was introduced because currentTimeMS() calls were converted to
monotonicallyIncreasingTime() calls. Perhaps this bug would be less likely if there was a
monotonicallyIncreasingTimeMS() function available, so this patch adds it.

  • wtf/CurrentTime.h:

(WTF::monotonicallyIncreasingTimeMS):

8:12 PM Changeset in webkit [180918] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] inspector/timeline always times out.
https://bugs.webkit.org/show_bug.cgi?id=142208

  • platform/win/TestExpectations: Skipping.)
8:05 PM Changeset in webkit [180917] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Remove op_get_callee, it's unused
https://bugs.webkit.org/show_bug.cgi?id=142206

Reviewed by Andreas Kling.

It's a bit of a shame that we stopped using this opcode since it gives us same-callee
profiling. But, if we were to add this functionality back in, we would almost certainly do
it by adding a JSFunction allocation watchpoint on FunctionExecutable.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finalizeUnconditionally):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_callee): Deleted.
(JSC::JIT::emitSlow_op_get_callee): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_get_callee): Deleted.
(JSC::JIT::emitSlow_op_get_callee): Deleted.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL): Deleted.

7:58 PM Changeset in webkit [180916] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove native extensions now built-in
https://bugs.webkit.org/show_bug.cgi?id=142203

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-02
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:
7:29 PM Changeset in webkit [180915] by commit-queue@webkit.org
  • 11 edits
    2 moves in trunk/Source/WebCore

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

It broke scrolling in some cases. See bug 142202 for details.
(Requested by bdash on #webkit).

Reverted changeset:

"Move scroll animating functions from ScrollAnimator to
ScrollController"
https://bugs.webkit.org/show_bug.cgi?id=142102
http://trac.webkit.org/changeset/180902

7:25 PM Changeset in webkit [180914] by commit-queue@webkit.org
  • 14 edits
    10 deletes in trunk

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

The tests it added are crashing (Requested by bdash on
#webkit).

Reverted changeset:

"Add a microtask abstraction"
https://bugs.webkit.org/show_bug.cgi?id=137496
http://trac.webkit.org/changeset/180911

6:24 PM Changeset in webkit [180913] by Joseph Pecoraro
  • 17 edits in trunk/Source

Web Inspector: Context Menu to Log a Particular Object
https://bugs.webkit.org/show_bug.cgi?id=142198

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Add a protocol method to assign a $n index to a value. For an object
use the injected script context for that object. For a value, use
the execution context to know where to save the value.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::saveResult):

  • inspector/InjectedScript.h:
  • inspector/InjectedScriptSource.js:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::saveResult):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/protocol/Debugger.json:
  • inspector/protocol/Runtime.json:

Source/WebInspectorUI:

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
Add a way to show an execution and result immediately in the Log View.

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt.prototype.pushHistoryItem):
(WebInspector.ConsolePrompt.prototype.commitTextOrInsertNewLine):
(WebInspector.ConsolePrompt.prototype._handleEnterKey):
(WebInspector.ConsolePrompt.prototype._commitHistoryEntry):
Add a way to append a history item to the console prompt history.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype):
Add a context menu item to object tree properties to log the value.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.createCallArgument):
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.asCallArgument):
Simplify CallArgument creation.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.mycallback):
(WebInspector.RuntimeManager.prototype.saveResult):
Wrap RuntimeAgent.saveResult. If supported, run the backend command
and fetch a saved result index from the backend for the given value.

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

(WebInspector.contentLoaded):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.get logViewController):
Misc.

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

Lots of: ERROR: Unhandled web process message WebPageGroupProxy:RemoveAllUserContentFilters
https://bugs.webkit.org/show_bug.cgi?id=142155

Reviewed by Simon Fraser.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage): Return after handling WebPageGroupProxy messages

instead of logging an error.

5:04 PM Changeset in webkit [180911] by yoav@yoav.ws
  • 14 edits
    10 adds in trunk

Add a microtask abstraction
https://bugs.webkit.org/show_bug.cgi?id=137496

Reviewed by Sam Weinig.

Source/WebCore:

This patch adds a microtask abstraction: https://html.spec.whatwg.org/multipage/webappapis.html#microtask
That abstraction is required in order to enable async loading of images,
which is in turn required to enable support for the picture element, as well as
to make sure that the order of properties set on HTMLImageElement has no implications.

  • WebCore.vcxproj/WebCore.vcxproj: Add MicroTask.{h,cpp} to the project.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj: Add MicroTaskTest.{h,cpp} to the project.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Add MicroTask.{h,cpp} to the project.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Add MicroTaskTest.{h,cpp} to the project.
  • WebCore.xcodeproj/project.pbxproj: Add MicroTask{,Test}.{h,cpp} to the project.
  • dom/Document.h: Add WEBCORE_EXPORT to addConsoleMessage, so it can be used in MicroTaskTest that's in WebCoreTestSupport..
  • dom/MicroTask.h: Add a MicroTask interface class. Add a MicroTaskQueue singleton.

(WebCore::MicroTask::~MicroTask):
(WebCore::MicroTask::run): Run the microtask.

  • dom/MicroTask.cpp: Implement the MicroTaskQueue singleton.

(WebCore::MicroTaskQueue::singleton): Get a singleton instance of MicroTaskQueue.
(WebCore::MicroTaskQueue::queueMicroTask): Add a microtask to the queue.
(WebCore::MicroTaskQueue::runMicroTasks): Run all the microtasks in the queue and clear it.

  • dom/ScriptRunner.cpp: Trigger running of all microtasks in queue.

(WebCore::ScriptRunner::timerFired):

  • html/parser/HTMLScriptRunner.cpp: Trigger running of all microtasks in queue.

(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::HTMLScriptRunner::runScript):

  • testing/Internals.cpp: Add a method to queue a test microtask.

(WebCore::Internals::queueMicroTask):

  • testing/Internals.h: Add a method to queue a test microtask.

(WebCore::Internals::queueMicroTask):

  • testing/Internals.idl: Expose test microtask queueing to test JS.
  • testing/MicroTaskTest.cpp: Add a test class that implements a microtask and prints to the console when it runs.

(WebCore::MicroTaskTest::run): Run the microtask
(WebCore::MicroTaskTest::create): Create a test microtask.

  • testing/MicroTaskTest.h: Add a test class that implements a microtask.

(WebCore::MicroTaskTest::run):
(WebCore::MicroTaskTest::create):

LayoutTests:

Adding a test for microtask abstraction.

  • fast/dom/microtask-detach.html: Added.
  • fast/dom/microtask-detach-expected.txt: Added.
  • fast/dom/microtask-inorder.html: Added.
  • fast/dom/microtask-inorder-expected.txt: Added.
  • fast/dom/microtask-reverse.html: Added.
  • fast/dom/microtask-reverse-expected.txt: Added.
4:58 PM Changeset in webkit [180910] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

RenderVideo should not paint the video frame when video is fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=142097

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-03-02
Reviewed by Eric Carlson.

For performance and correctness, RenderVideo should not paint the current video frame
inline when video is fullscreen. This happens when snapshots are taken and can have a
negative performance impact.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

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

SpeculativeJIT::emitAllocateArguments() should be a bit faster, and shouldn't do destructor initialization
https://bugs.webkit.org/show_bug.cgi?id=142197

Reviewed by Geoffrey Garen.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateArguments): Use shift instead of mul, since mul doesn't automatically strength-reduce to shift. Also pass the structure as a TrustedImmPtr.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject): Rationalize this a bit. The other emitAllocate... methods take a templated structure so that it can be either a TrustedImmPtr or a register. Also don't do destructor initialization, since its one client doesn't need it, and it's actually probably wrong.

4:38 PM Changeset in webkit [180908] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc: Eagerly remove allocated objects from the free list
https://bugs.webkit.org/show_bug.cgi?id=142194

Reviewed by Andreas Kling.

This reduces the pressure to garbage collect the free list.

Might be a 1% speedup on MallocBench.

  • bmalloc/FreeList.cpp: Put this comment at the top of the file instead

of repeating it inside of each function. Tried to clarify the details.

(bmalloc::FreeList::takeGreedy): Matched the other iteration code in this
file for consistency -- even though either direction works fine in this
function.

(bmalloc::FreeList::take): Change to iterate from low to high so that we
can maintain an index into the vector that is not disturbed even if we
pop from the middle (which invalidates the last index in the vector).

Decrement i when popping from the middle to make sure that we don't
skip the next item after popping.

(bmalloc::FreeList::removeInvalidAndDuplicateEntries): Ditto.

4:24 PM Changeset in webkit [180907] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

Source/JavaScriptCore:
Exception stack unwinding in JSC hangs while the Timeline Profiler is enabled.
<https://webkit.org/b/142191>

Reviewed by Geoffrey Garen.

Imagine a scenario where the Inspector is paused / suspended at a breakpoint or
while the user is stepping through JS code. The user then tries to evaluate an
expression in the console, and that evaluation results in an exception being
thrown. Currently, if the Timeline Profiler is enabled while this exception is
being thrown, the WebProcess will hang while trying to handle that exception.

The issue is that the Timeline Profiler's ProfileGenerator::didExecute() will
return early and decline to process ProfileNodes if the Inspector is paused.
This is proper because it does not want to count work done for injected scripts
(e.g. from the console) towards the timeline profile of the webpage being run.
However, this is in conflict with ProfileGenerator::exceptionUnwind()'s
expectation that didExecute() will process ProfileNodes in order to do the stack
unwinding for the exception handling. As a result,
ProfileGenerator::exceptionUnwind() hangs.

ProfileGenerator::exceptionUnwind() is in error. While the Inspector is paused,
there will not be any ProfileNodes that it needs to "unwind". Hence, the fix is
simply to return early also in ProfileGenerator::exceptionUnwind() if the
Inspector is paused.

  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::exceptionUnwind):

LayoutTests:
Last gardening after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-03-02

  • fast/text/font-kerning-expected.html:
  • fast/text/font-variant-ligatures-expected.html:
  • fast/text/whitespace/inline-whitespace-wrapping-7-expected.html:
  • fast/text/whitespace/inline-whitespace-wrapping-7.html:
  • mathml/presentation/scripts-subsup-expected.html:
  • mathml/presentation/scripts-subsup.html:
  • platform/mac/TestExpectations:
  • platform/mac/fast/text/multiple-codeunit-vertical-upright-expected.html:
  • platform/mac/fast/text/multiple-codeunit-vertical-upright.html:
  • platform/mac/fast/text/resources/multiple-codeunit-vertical-upright.otf: Removed.
  • svg/text/svg-font-word-rounding-hacks-spaces-expected.html:
  • svg/text/svg-font-word-rounding-hacks-spaces.html:
  • svg/text/tspan-outline-expected.svg:
  • svg/text/tspan-outline.html:
3:57 PM Changeset in webkit [180906] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS Media] Airplay button should be blue when active
https://bugs.webkit.org/show_bug.cgi?id=142193

Reviewed by Brent Fulgham.

Add a blue form of the Airplay button that is used
when we are actively displaying on another screen.

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-controls-wireless-playback-picker-button):
(video::-webkit-media-controls-wireless-playback-picker-button:active):
(video::-webkit-media-controls-wireless-playback-picker-button.playing):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.updateWirelessPlaybackStatus):

3:52 PM Changeset in webkit [180905] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Add way to dump cache meta data to file
https://bugs.webkit.org/show_bug.cgi?id=142183

Add a missing return so we don't try to decode a null entry.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::dumpContentsToFile):

3:51 PM Changeset in webkit [180904] by mmaxfield@apple.com
  • 15 edits
    1 delete in trunk/LayoutTests

Last gardening after r177774

Unreviewed.

  • fast/text/font-kerning-expected.html:
  • fast/text/font-variant-ligatures-expected.html:
  • fast/text/whitespace/inline-whitespace-wrapping-7-expected.html:
  • fast/text/whitespace/inline-whitespace-wrapping-7.html:
  • mathml/presentation/scripts-subsup-expected.html:
  • mathml/presentation/scripts-subsup.html:
  • platform/mac/TestExpectations:
  • platform/mac/fast/text/multiple-codeunit-vertical-upright-expected.html:
  • platform/mac/fast/text/multiple-codeunit-vertical-upright.html:
  • platform/mac/fast/text/resources/multiple-codeunit-vertical-upright.otf: Removed.
  • svg/text/svg-font-word-rounding-hacks-spaces-expected.html:
  • svg/text/svg-font-word-rounding-hacks-spaces.html:
  • svg/text/tspan-outline-expected.svg:
  • svg/text/tspan-outline.html:
3:49 PM Changeset in webkit [180903] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

FTL should correctly document where it puts the argument count for inlined varargs frames
https://bugs.webkit.org/show_bug.cgi?id=142187

Reviewed by Geoffrey Garn.

After LLVM tells us where the captured variables alloca landed in the frame, we need to
tell all of our meta-data about it. We were forgetting to do so for the argument count
register, which is used by inlined varargs calls.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • tests/stress/inline-varargs-get-arguments.js: Added.

(foo):
(bar):
(baz):

3:49 PM Changeset in webkit [180902] by Brent Fulgham
  • 11 edits
    2 moves in trunk/Source/WebCore

Move scroll animating functions from ScrollAnimator to ScrollController
https://bugs.webkit.org/show_bug.cgi?id=142102
<rdar://problem/20007161>

Reviewed by Simon Fraser.

No change in functionality.

Do some refactoring of the various scrolling classes:

  1. Consolidate animation times to RunLoop::Timer instead of a combination of WebCore::Timer and CFRunLoopTimers. Do this for Scroll Snap Point and Rubberband animations.
  2. Move ScrollController from platform/mac to platform/cocoa to enable sharing with iOS.
  3. Move code from ScrollAnimator{Mac} -> ScrollController.
  4. Rename scrollOffsetInAxis -> scrollOffsetOnAxis
  5. Rename immediateScrollInAxis -> immediateScrollOnAxis
  • WebCore.xcodeproj/project.pbxproj: Move ScrollController to 'platform/cocoa'
  • page/mac/EventHandlerMac.mm: Make sure the scroll controller is notified of end-of-scroll

events, just as is done for the "event not handled" case in EventHandler.cpp.
(WebCore::EventHandler::platformCompleteWheelEvent):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Remove timer and some delegate

methods, now that ScrollController is controlling this state.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac): We no longer
need to clean up the CFRunLoopTimer.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Add temporary stub needed
until Bug 141973 is completed.).
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollOnAxis): Ditto.
(WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer): Deleted.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::processWheelEventForScrollSnap): Just call the ScrollController method.
(WebCore::ScrollAnimator::handleWheelEvent): Ditto.
(WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers): Ditto.
(WebCore::ScrollAnimator::scrollOffsetOnAxis): Renamed from scrollOffsetInAxis.
(WebCore::ScrollAnimator::scrollOffsetInAxis): Deleted.
(WebCore::ScrollAnimator::immediateScrollOnAxis): Renamed from immediateScrollInAxis.
(WebCore::ScrollAnimator::immediateScrollInAxis): Deleted.
(WebCore::ScrollAnimator::startScrollSnapTimer): Deleted.
(WebCore::ScrollAnimator::stopScrollSnapTimer): Deleted.
(WebCore::ScrollAnimator::horizontalScrollSnapTimerFired): Deleted.
(WebCore::ScrollAnimator::verticalScrollSnapTimerFired): Deleted.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h: Copied from platform/mac/ScrollController.h.
  • platform/cocoa/ScrollController.mm: Copied from platform/mac/ScrollController.mm.

(WebCore::ScrollController::ScrollController): Update to initialize new timers.
(WebCore::ScrollController::handleWheelEvent): Update to handle Scroll Snap Point events.
(WebCore::ScrollController::startSnapRubberbandTimer): Added.
(WebCore::ScrollController::stopSnapRubberbandTimer): Manage animation timers locally, do not
require client to maintain timers.
(WebCore::ScrollController::snapRubberBand): Ditto.
(WebCore::ScrollController::processWheelEventForScrollSnap): Added. (Moved from ScrollAnimatorMac)
(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::startScrollSnapTimer): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto. Also updated to use RunLoop::Timer.
(WebCore::ScrollController::horizontalScrollSnapTimerFired): Ditto.
(WebCore::ScrollController::verticalScrollSnapTimerFired): Ditto.
(WebCore::ScrollController::scrollOffsetOnAxis): Moved from ScrollAnimatorMac.
(WebCore::ScrollController::immediateScrollOnAxis): Ditto.

  • platform/mac/AxisScrollSnapAnimator.h: Rename methods from 'InAxis' to 'OnAxis'
  • platform/mac/AxisScrollSnapAnimator.mm: Ditto.
  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac): Remove unused Rubberband timers (now that this is
controlled in the ScrollController)
(WebCore::ScrollAnimatorMac::startSnapRubberbandTimer): Deleted.
(WebCore::ScrollAnimatorMac::stopSnapRubberbandTimer): Deleted.
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): Deleted.

  • platform/mac/ScrollController.h: Removed.
  • platform/mac/ScrollController.mm: Removed.
3:39 PM Changeset in webkit [180901] by mark.lam@apple.com
  • 4 edits in trunk

The InspectorTimelineAgent should gracefully handle attempts to start more than once.
<https://webkit.org/b/142189>

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests. Unskipped an existing test that already asserts this.

InspectorTimelineAgent::internalStop() already checks for redundant calls to it in
case the InspectorTimelineAgent is already disabled. Similarly,
InspectorTimelineAgent::internalStart() should check if the InspectorTimelineAgent
is already enabled before proceeding to do work to enable it. Though wasteful,
it is legal for clients of the InspectorTimelineAgent to invoke start on it more
than once. Hence, this check is needed.

This check fixes the debug assertion failure when running the
inspector/timeline/debugger-paused-while-recording.html test. The test can now
be unskipped.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):

LayoutTests:

3:35 PM Changeset in webkit [180900] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip media control test after r180893.

  • platform/win/TestExpectations:
3:25 PM Changeset in webkit [180899] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Return disk cache entries from the new disk cache
https://bugs.webkit.org/show_bug.cgi?id=142190

Reviewed by Antti Koivisto.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::fetchDiskCacheEntries):
Call NetworkCache::traverse() to get all the cache entries, unique their origins and pass them back with the completion handler.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::traverse):
New helper function that traverses network cache entries.

  • NetworkProcess/cache/NetworkCache.h:
2:54 PM Changeset in webkit [180898] by roger_fong@apple.com
  • 4 edits in trunk/Source/WebCore

Update backgrounds of sliders for inline media controls on OS X.
https://bugs.webkit.org/show_bug.cgi?id=142188.
<rdar://problem/20012413>
Reviewed by Dean Jackson.
Don’t use CSS to draw volume and timeline slider backgrounds.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
(audio::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
(audio::-webkit-media-controls-panel .thumbnail-track):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb:active::-webkit-slider-thumb): Deleted.
(audio::-webkit-media-controls-timeline:active::-webkit-slider-thumb,): Deleted.
Draw volume and timeline slider backgrounds using 2d canvases.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.addRoundedRect):
(Controller.prototype.drawTimelineBackground):
(Controller.prototype.drawVolumeBackground):
(Controller.prototype.showControls):

  • Modules/mediacontrols/mediaControlsiOS.js:
2:52 PM Changeset in webkit [180897] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Deduplicate slow path calling code in JITOpcodes.cpp/JITOpcodes32_64.cpp
https://bugs.webkit.org/show_bug.cgi?id=142184

Reviewed by Michael Saboff.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_enumerable_length):
(JSC::JIT::emitSlow_op_has_structure_property):
(JSC::JIT::emit_op_has_generic_property):
(JSC::JIT::emit_op_get_structure_property_enumerator):
(JSC::JIT::emit_op_get_generic_property_enumerator):
(JSC::JIT::emit_op_to_index_string):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_get_enumerable_length): Deleted.
(JSC::JIT::emitSlow_op_has_structure_property): Deleted.
(JSC::JIT::emit_op_has_generic_property): Deleted.
(JSC::JIT::emit_op_get_structure_property_enumerator): Deleted.
(JSC::JIT::emit_op_get_generic_property_enumerator): Deleted.
(JSC::JIT::emit_op_to_index_string): Deleted.
(JSC::JIT::emit_op_profile_control_flow): Deleted.

2:28 PM Changeset in webkit [180896] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Document more debug assertions.

  • platform/win/TestExpectations:
2:10 PM Changeset in webkit [180895] by Brent Fulgham
  • 2 edits
    1 add in trunk/LayoutTests

Skip media control tests for now while new look is being finalized.
https://bugs.webkit.org/show_bug.cgi?id=142138.

Patch by Roger Fong <roger_fong@apple.com> on 2015-02-28
Reviewed by Dean Jackson.

  • platform/mac/TestExpectations:
1:51 PM Changeset in webkit [180894] by Antti Koivisto
  • 9 edits in trunk/Source

Add way to dump cache meta data to file
https://bugs.webkit.org/show_bug.cgi?id=142183

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Export appendQuotedJSONStringToBuilder.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::toString):

  • runtime/JSONObject.cpp:

(JSC::appendQuotedJSONStringToBuilder):
(JSC::Stringifier::appendQuotedString):
(JSC::escapeStringToBuilder): Deleted.

  • runtime/JSONObject.h:

Source/WebKit2:

Dump goes to WebKitCache/dump.json. On OSX it can be triggered with

notifyutil -p com.apple.WebKit.Cache.dump

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::initialize):
(WebKit::NetworkCache::dumpFilePath):
(WebKit::entryAsJSON):
(WebKit::NetworkCache::dumpContentsToFile):
(WebKit::NetworkCache::clear):

Also clear any dumps.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCacheStorage::baseDirectoryPath):

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::fileNameForKey):
(WebKit::filePathForKey):
(WebKit::openFile):
(WebKit::openFileForKey):
(WebKit::decodeEntryHeader):

Separate header decoding.

(WebKit::decodeEntry):
(WebKit::NetworkCacheStorage::traverse):

Add asynchronous cache traversal inteface.

1:07 PM Changeset in webkit [180893] by roger_fong@apple.com
  • 4 edits in trunk

Update inline media element controls appearance Part 1.
https://bugs.webkit.org/show_bug.cgi?id=142138.
<rdar://problem/19997384>

Reviewed by Dean Jackson.

Update positioning, sizes, and background colors media control elements.
Volume and timeline sliders will be drawn in a separate patch via 2d canvases.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel):
(video::-webkit-media-controls-panel):
(audio::-webkit-media-controls-rewind-button):
(audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-panel .mute-box):
(video::-webkit-media-controls-volume-max-button):
(audio::-webkit-media-controls-panel .volume-box):
(audio::-webkit-media-controls-panel .volume-box:active):
(video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-current-time-display):
(audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-timeline-container .hour-long-time): Deleted.

Skip media control tests for now while new look is being finalized.

  • platform/mac/TestExpectations:
12:45 PM Changeset in webkit [180892] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

WebsiteDataStore should handle deleting cookies
https://bugs.webkit.org/show_bug.cgi?id=142185

Reviewed by Beth Dakin.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
When asked to delete cookies, do so.

  • NetworkProcess/NetworkProcess.h:

Update the deleteWebsiteDataForOrigins signature.

  • NetworkProcess/NetworkProcess.messages.in:

Add cookieHostNames to DeleteWebsiteDataForOrigins.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/Network/NetworkProcessProxy.h:

Update to take a vector of cookie host names.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):
Figure out if we need to ask the network process to delete data.

11:32 AM Changeset in webkit [180891] by Joseph Pecoraro
  • 7 edits in trunk/Source

Web Inspector: Add Context Menus to Object Tree properties
https://bugs.webkit.org/show_bug.cgi?id=142125

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::functionDetails):
Update to include columnNumber.

Source/WebInspectorUI:

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

(WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
(WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
Fix legacy implementation.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
Give prototype buttons a tooltip.

(WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
(WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
(WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
Context Menus based on the selected object.

11:08 AM Changeset in webkit [180890] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Document more debug assertions.

  • platform/win/TestExpectations:
10:42 AM Changeset in webkit [180889] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

WebsiteDataStore should support getting cookie host names
https://bugs.webkit.org/show_bug.cgi?id=142178

Reviewed by Dan Bernstein.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
Assert that we're destroyed from the main thread since we end up copying the website data struct.

  • Shared/WebsiteData/WebsiteData.cpp:

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

  • Shared/WebsiteData/WebsiteData.h:

Add a hostnamesWithCookies member.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
Add a new function that will return the display name for a cookie host name.

(WebKit::WebsiteDataRecord::addCookieHostName):

  • UIProcess/WebsiteData/WebsiteDataRecord.h:

Add a hash set of cookie host names.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
Create data records for each host name with cookies.

10:18 AM Changeset in webkit [180888] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Fix a typo in TestExpectations.

  • platform/mac/TestExpectations: Faiure - > Failure.
9:52 AM Changeset in webkit [180887] by ap@apple.com
  • 2 edits in trunk/LayoutTests

js/promises-tests/promises-tests-2-1-2.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=142175

9:39 AM Changeset in webkit [180886] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit2

[WK2][Mac] WebPageProxy::supressVisibilityUpdates() should suppress visibility updates.
https://bugs.webkit.org/show_bug.cgi?id=141907

Reviewed by Tim Horton.

At some point, the window/view/page visibility update code was refactored such that setting
WebPageProxy::setSuppressVisibilityUpdate() no longer suppressed visibility updates. This causes
full screen animations to become "flashy" when moving the WebView between the regular and full
screen window, as a HTMLMediaElement in the full screen animation will receive a "!visible"
notification and disconnect its rendering pipeline.

In WebPageProxy::viewStateDidChange(), respect m_suppressVisibilityUpdates and bail out early
if set. In WebPageProxy::setSuppressVisibilityUpdates(), trigger an explicit update after
clearing m_suppressVisibilityUpdates.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setSuppressVisibilityUpdates):
(WebKit::WebPageProxy::viewStateDidChange):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setSuppressVisibilityUpdates): Deleted.

9:37 AM Changeset in webkit [180885] by jer.noble@apple.com
  • 9 edits
    2 adds in trunk

[WK1][WK2][Mac] Fullscreen animation is incorrect when page is scaled.
https://bugs.webkit.org/show_bug.cgi?id=142121

Reviewed by Simon Fraser.

Source/WebKit/mac:

Fullscreening a page with a non-1 scale would result in that scale being applied to the
fullscreen content, breaking fullscreen mode. Set the page scale to 1 when entering
fullscreen and reset it to the original value when exiting fullscreen.

  • WebView/WebFullScreenController.h:
  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController enterFullScreen:]): Set the page scale to 1.
(-[WebFullScreenController finishedExitFullScreenAnimation:]): Reset the page

scale to the original value.

  • WebView/WebView.mm:

(-[WebView _supportsFullScreenForElement:withKeyboard:]): Drive-by fix. Check the

WebView's own preferences to see if fullscreen mode is enabled, rather than
the global object's.

Source/WebKit2:

Change the order of operations when entering or exiting fullscreen. Change the page scale to
1 before entering, so the final screen rect takes that scale into account, and vice-versa on
exiting.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController exitFullScreen]):

Tools:

Add a test which changes the WebView's page scale, then enters fullscreen mode, and verifies
that the initial and final screen rects for the web content are as expected.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.html: Added.
  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm: Added.

(-[FullscreenStateDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
(runJavaScriptAlert):
(TestWebKitAPI::FullscreenZoomInitialFrame::initializeView):
(TestWebKitAPI::FullscreenZoomInitialFrame::teardownView):
(TestWebKitAPI::FullscreenZoomInitialFrame::setPageScale):
(TestWebKitAPI::FullscreenZoomInitialFrame::sendMouseDownEvent):
(TestWebKitAPI::FullscreenZoomInitialFrame::runTest):
(TestWebKitAPI::TEST_F):

7:34 AM Changeset in webkit [180884] by commit-queue@webkit.org
  • 2 edits in trunk

REGRESSION(r179409): [GTK] Undefined symbol prevents web extensions from being loaded
https://bugs.webkit.org/show_bug.cgi?id=142165

Patch by Debarshi Ray <debarshir@gnome.org> on 2015-03-02
Reviewed by Carlos Garcia Campos.

  • Source/cmake/gtksymbols.filter:
7:30 AM Changeset in webkit [180883] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r180882): Build failure: Methods not marked override in GraphicsLayerCA.h
<http://webkit.org/b/138684>

Fixes the following build failures:

In file included from WebKit2/WebProcess/WebPage/DrawingArea.cpp:39:
In file included from WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:30:
In file included from WebKit2/WebProcess/WebPage/mac/GraphicsLayerCARemote.h:29:
WebCore.framework/PrivateHeaders/GraphicsLayerCA.h:123:33: error: 'setShapeLayerPath' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]

WEBCORE_EXPORT virtual void setShapeLayerPath(const Path&);


In file included from WebKit2/WebProcess/WebPage/DrawingArea.cpp:30:
In file included from WebKit2/WebProcess/WebPage/WebPage.h:46:
In file included from WebKit2/WebProcess/Plugins/Plugin.h:31:
WebCore.framework/PrivateHeaders/GraphicsLayer.h:390:18: note: overridden virtual function is here

virtual void setShapeLayerPath(const Path&);


In file included from WebKit2/WebProcess/WebPage/DrawingArea.cpp:39:
In file included from WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:30:
In file included from WebKit2/WebProcess/WebPage/mac/GraphicsLayerCARemote.h:29:
WebCore.framework/PrivateHeaders/GraphicsLayerCA.h:124:33: error: 'setShapeLayerWindRule' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]

WEBCORE_EXPORT virtual void setShapeLayerWindRule(WindRule);


In file included from WebKit2/WebProcess/WebPage/DrawingArea.cpp:30:
In file included from WebKit2/WebProcess/WebPage/WebPage.h:46:
In file included from WebKit2/WebProcess/Plugins/Plugin.h:31:
WebCore.framework/PrivateHeaders/GraphicsLayer.h:393:18: note: overridden virtual function is here

virtual void setShapeLayerWindRule(WindRule);


2 errors generated.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayer::setShapeLayerPath): Mark as override.
(WebCore::GraphicsLayer::setShapeLayerWindRule): Ditto.

Mar 1, 2015:

10:35 PM Changeset in webkit [180882] by Simon Fraser
  • 26 edits
    8 adds in trunk

Make clip-path work on <video>, <canvas> etc.
https://bugs.webkit.org/show_bug.cgi?id=138684

Reviewed by Darin Adler.

Source/WebCore:

clip-path only worked in compositing layers on the painted contents of the layer,
and failed to clip children. Fix this by translating the clip path into a Path
which is set on a CA shape layer (for Mac and iOS), or painted into the
RenderLayerBacking's mask layer. There are two code paths:

  1. clip-path which is a <basic-shape> or <geometry-box>, and no mask.

Here we can use the optimal code path of converting the clip into a path
that is put onto a CAShapeLayer, which is then used as a mask. There is no
additional backing store.

  1. clip-path with an SVG reference, or clip-path combined with -webkit-mask:

Here we have to allocate backing store for the mask layer, and paint the
clip path (possibly with the mask).

We add GraphicsLayer::Type::Shape, and add a getter for the layer type.

Tests: compositing/masks/compositing-clip-path-and-mask.html

compositing/masks/compositing-clip-path-mask-change.html
compositing/masks/compositing-clip-path.html
compositing/masks/reference-clip-path-on-composited.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer): Store the type in the layer so the getter can return it.
(WebCore::GraphicsLayer::shapeLayerPath): Get and set the shape layer path.
(WebCore::GraphicsLayer::setShapeLayerPath): Ditto.
(WebCore::GraphicsLayer::shapeLayerWindRule): Get and set the shape layer wind rule.
(WebCore::GraphicsLayer::setShapeLayerWindRule): Ditto.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::type): Expose the type.
(WebCore::GraphicsLayer::supportsLayerType): Allow the cross-platform code to use
shape layers when it knows they are available.
(WebCore::GraphicsLayer::needsClippingMaskLayer): Deleted. This was never used.

  • platform/graphics/GraphicsLayerClient.h: Align the bits (helps avoid typos). Add a

GraphicsLayerPaintClipPath phase.

  • platform/graphics/Path.h: Some exports since WK2 needs to encode Paths now.
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::initialize): Make shape layers.
(WebCore::GraphicsLayerCA::setShapeLayerPath): Setter for the shape path. Sadly we
can't early return on unchanged paths yet.
(WebCore::GraphicsLayerCA::setShapeLayerWindRule):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Updates for shape path
and wind rule.
(WebCore::GraphicsLayerCA::updateShape):
(WebCore::GraphicsLayerCA::updateWindRule):

  • platform/graphics/ca/GraphicsLayerCA.h: Some new dirty bits for shape path and wind rule.
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm: Got rid of lots of m_layer.get().

(PlatformCALayerMac::~PlatformCALayerMac):
(PlatformCALayerMac::setNeedsDisplay):
(PlatformCALayerMac::setNeedsDisplayInRect):
(PlatformCALayerMac::removeFromSuperlayer):
(PlatformCALayerMac::setSublayers):
(PlatformCALayerMac::removeAllSublayers):
(PlatformCALayerMac::appendSublayer):
(PlatformCALayerMac::insertSublayer):
(PlatformCALayerMac::replaceSublayer):
(PlatformCALayerMac::adoptSublayers):
(PlatformCALayerMac::addAnimationForKey):
(PlatformCALayerMac::removeAnimationForKey):
(PlatformCALayerMac::animationForKey):
(PlatformCALayerMac::setMask):
(PlatformCALayerMac::isOpaque):
(PlatformCALayerMac::setOpaque):
(PlatformCALayerMac::bounds):
(PlatformCALayerMac::setBounds):
(PlatformCALayerMac::position):
(PlatformCALayerMac::setPosition):
(PlatformCALayerMac::anchorPoint):
(PlatformCALayerMac::setAnchorPoint):
(PlatformCALayerMac::transform):
(PlatformCALayerMac::setTransform):
(PlatformCALayerMac::sublayerTransform):
(PlatformCALayerMac::setSublayerTransform):
(PlatformCALayerMac::setHidden):
(PlatformCALayerMac::setGeometryFlipped):
(PlatformCALayerMac::isDoubleSided):
(PlatformCALayerMac::setDoubleSided):
(PlatformCALayerMac::masksToBounds):
(PlatformCALayerMac::setMasksToBounds):
(PlatformCALayerMac::acceleratesDrawing):
(PlatformCALayerMac::setAcceleratesDrawing):
(PlatformCALayerMac::contents):
(PlatformCALayerMac::setContents):
(PlatformCALayerMac::setContentsRect):
(PlatformCALayerMac::setMinificationFilter):
(PlatformCALayerMac::setMagnificationFilter):
(PlatformCALayerMac::backgroundColor):
(PlatformCALayerMac::setBackgroundColor):
(PlatformCALayerMac::setBorderWidth):
(PlatformCALayerMac::setBorderColor):
(PlatformCALayerMac::opacity):
(PlatformCALayerMac::setOpacity):
(PlatformCALayerMac::copyFiltersFrom):
(PlatformCALayerMac::setName):
(PlatformCALayerMac::setSpeed):
(PlatformCALayerMac::setTimeOffset):
(PlatformCALayerMac::contentsScale):
(PlatformCALayerMac::setContentsScale):
(PlatformCALayerMac::cornerRadius):
(PlatformCALayerMac::setCornerRadius):
(PlatformCALayerMac::setEdgeAntialiasingMask):
(PlatformCALayerMac::shapeWindRule): New function.
(PlatformCALayerMac::setShapeWindRule): Ditto.
(PlatformCALayerMac::shapePath): Ditto.
(PlatformCALayerMac::setShapePath): Ditto.
(PlatformCALayer::isWebLayer):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::Path): nullptr.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintsWithClipPath): Return true if the clip path is painted.
(WebCore::RenderLayer::computeClipPath): Factor code that computes the clip path into this
function, so we can call it from RenderLayerBacking too.
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::paintLayerContents): We only want to apply the clip path
for painting when we're either painting a non-composited layer, or we're painting the
mask layer of a composited layer. We in the latter case, we just want to fill the clip
path with black, so re-use the paintChildClippingMaskForFragments() which does this.

  • rendering/RenderLayer.h: Align the bits, add PaintLayerPaintingCompositingClipPathPhase.
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::~RenderLayerBacking):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry): Move mask updating into its own function.
(WebCore::RenderLayerBacking::updateMaskingLayerGeometry): If we're using the shape layer
code path, compute the Path and set it and the wind rule on the mask layer.
(WebCore::RenderLayerBacking::updateMaskingLayer): This is now more complex, as it has
to deal with combinations of clip-path and mask, some of which allow for the shape layer
mask, and we handle dynamic changes between these and painted masks.
(WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer): Include the GraphicsLayerPaintClipPath phase.
(WebCore::RenderLayerBacking::paintIntoLayer): Map GraphicsLayerPaintClipPath to PaintLayerPaintingCompositingClipPathPhase.
(WebCore::RenderLayerBacking::updateMaskLayer): Deleted.

  • rendering/RenderLayerBacking.h:

Source/WebKit2:

Support encode/decode for WebCore Path objects, which is done by traversing
the path.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::pathPointCountApplierFunction):
(IPC::pathEncodeApplierFunction):
(IPC::ArgumentCoder<Path>::encode):
(IPC::ArgumentCoder<Path>::decode):

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

(WebKit::applyPropertiesToLayer): Actually apply the path and wind rule to the shape layer.

  • Shared/mac/RemoteLayerTreeTransaction.h: Include path and wind rule in the layer properties.
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode): Encode shape and wind rule.
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): Decode shape and wind rule.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::shapePath):
(WebKit::PlatformCALayerRemote::setShapePath):
(WebKit::PlatformCALayerRemote::shapeWindRule):
(WebKit::PlatformCALayerRemote::setShapeWindRule):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

Tests for various combinations of clip-path and mask, and dynamic changes
thereof.

  • compositing/masks/compositing-clip-path-and-mask-expected.html: Added.
  • compositing/masks/compositing-clip-path-and-mask.html: Added.
  • compositing/masks/compositing-clip-path-expected.html: Added.
  • compositing/masks/compositing-clip-path-mask-change-expected.html: Added.
  • compositing/masks/compositing-clip-path-mask-change.html: Added.
  • compositing/masks/compositing-clip-path.html: Added.
  • compositing/masks/reference-clip-path-on-composited-expected.html: Added.
  • compositing/masks/reference-clip-path-on-composited.html: Added.
8:33 PM Changeset in webkit [180881] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cairo] Implement Path::addEllipse
https://bugs.webkit.org/show_bug.cgi?id=142144

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-03-01
Reviewed by Gyuyoung Kim.

Add support for addEllipse method for platforms using cairo.

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::addEllipse):

7:58 PM Changeset in webkit [180880] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4.10-branch/Source

Versioning.

7:56 PM Changeset in webkit [180879] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Mark crash tests of webgl to CRASH.
WebGL isn't supported by EFL port now.

  • platform/efl/TestExpectations:
7:40 PM Changeset in webkit [180878] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.10.6

New tag.

7:26 PM Changeset in webkit [180877] by bshafiei@apple.com
  • 30 edits in branches/safari-600.4.10-branch/Source/WebCore

Merged r180839. rdar://problem/20001723

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

Silence non-fatal errors about failing to create WebKitPluginHost.app and WebKitPluginAgent symlinks.

Rubber-stamped by Alexey Proskuryakov.

  • WebKit.xcodeproj/project.pbxproj: If a link already exist, don’t try to create it.
6:08 PM Changeset in webkit [180875] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

BytecodeGenerator shouldn't emit op_resolve_scope as a roundabout way of returning the scopeRegister
https://bugs.webkit.org/show_bug.cgi?id=142153

Reviewed by Michael Saboff.

We don't need a op_resolve_scope if we know that it will simply return the scope register.
This changes the BytecodeGenerator to use the scope register directly in those cases where
we know statically that we would just have returned that from op_resolve_scope.

This doesn't appear to have a significant impact on performance.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitGetOwnScope): Deleted.

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

(JSC::ResolveNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue):

5:53 PM Changeset in webkit [180874] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening on 2nd March.

Mark css3 shape tests to flaky. Unskip passing tests and so on.

  • platform/efl/TestExpectations:
5:48 PM Changeset in webkit [180873] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ScrollAnimator
https://bugs.webkit.org/show_bug.cgi?id=142143

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-03-01
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::create):

  • platform/ScrollAnimator.h:
  • platform/ScrollAnimatorNone.cpp:

(WebCore::ScrollAnimator::create):

  • platform/ScrollableArea.h:
  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimator::create):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimator::create):

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

[Content Filtering] Move another declaration to WebFilterEvaluatorSPI.h
https://bugs.webkit.org/show_bug.cgi?id=142066

Reviewed by Andreas Kling.

  • platform/ios/ContentFilterIOS.mm:
  • platform/spi/cocoa/WebFilterEvaluatorSPI.h:
4:08 PM Changeset in webkit [180871] by Chris Dumez
  • 21 edits
    4 adds in trunk

Make NotificationCenter / Notification suspendable
https://bugs.webkit.org/show_bug.cgi?id=142117
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Source/WebCore:

Make NotificationCenter / Notification suspendable so that pages using
them can enter the PageCache.

NotificationCenter can safely be suspended if there are no pending
permission requests. This required adding an
"hasPendingPermissionRequests()" callback to the NotificationClient.

Notification can safely be suspended if it is either idle (not showing
yet) or closed.

Tests: fast/history/page-cache-notification-non-suspendable.html

fast/history/page-cache-notification-suspendable.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::canSuspend):

  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::canSuspend):

  • Modules/notifications/NotificationClient.h:

Source/WebKit/mac:

Provide implementation for NotificationClient::hasPendingPermissionRequests().
The implementation is very simplistic. it will only return false if no
request for permission for ever made. This is because there is currently no
easy way to figure out if a permission request is pending or not.

  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):
(WebNotificationClient::hasPendingPermissionRequests):

Source/WebKit/win:

Provide implementation for NotificationClient::hasPendingPermissionRequests().

  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:

(WebDesktopNotificationsDelegate::requestPermission):
(hasPendingPermissionRequests):

  • WebCoreSupport/WebDesktopNotificationsDelegate.h:

Source/WebKit2:

Provide implementation for NotificationClient::hasPendingPermissionRequests().

  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:

(WebKit::NotificationPermissionRequestManager::hasPendingPermissionRequests):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:

(WebKit::WebNotificationClient::hasPendingPermissionRequests):

  • WebProcess/WebCoreSupport/WebNotificationClient.h:

LayoutTests:

Add layout tests to cover cases where notifications should prevent
entering the PageCache or not.

  • fast/history/page-cache-notification-non-suspendable-expected.txt: Added.
  • fast/history/page-cache-notification-non-suspendable.html: Added.
  • fast/history/page-cache-notification-suspendable-expected.txt: Added.
  • fast/history/page-cache-notification-suspendable.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
2:34 PM Changeset in webkit [180870] by rniwa@webkit.org
  • 11 edits in trunk/LayoutTests

EFL, GTK+, and Windows rebaselines after r180867.

  • platform/efl/TestExpectations:
  • platform/efl/editing/execCommand/5142012-1-expected.txt:
  • platform/efl/editing/execCommand/nsresponder-outdent-expected.txt:
  • platform/efl/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
  • platform/win/editing/execCommand/5142012-1-expected.txt:
  • platform/win/editing/execCommand/nsresponder-outdent-expected.txt:
  • platform/win/editing/inserting/insert-at-end-02-expected.txt:
1:56 PM Changeset in webkit [180869] by Antti Koivisto
  • 4 edits in trunk/Source/WebKit2

Enable new disk cache on iOS
https://bugs.webkit.org/show_bug.cgi?id=142148

Reviewed by Sam Weinig.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

iOS build fix.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::registerUserDefaultsIfNeeded):

Disable the efficacy logging by default for now. It has significant performance impact.

  • config.h:

Enable it.

12:43 PM Changeset in webkit [180868] by ap@apple.com
  • 2 edits in trunk/LayoutTests

media/track/track-in-band-cues-added-once.html flakily fails
https://bugs.webkit.org/show_bug.cgi?id=142152

  • platform/mac/TestExpectations: Marked it as such.
11:52 AM Changeset in webkit [180867] by rniwa@webkit.org
  • 17 edits
    2 adds in trunk

isContentEditable shouldn't trigger synchronous style recalc in most cases
https://bugs.webkit.org/show_bug.cgi?id=129034

Reviewed by Antti Koivisto.

Source/WebCore:

Avoid style recalc inside isContentEditable when the document doesn't contain -webkit-user-modify or
-webkit-user-select: all. Instead, compute the value from contenteditable attributes in ancestors.
However, still compute the editability from the style tree when it's up-to-date in order to avoid
repeatedly walking up the DOM tree in a hot code path inside editing.

Test: fast/dom/HTMLElement/dynamic-editability-change.html

  • css/CSSGrammar.y.in: No need to pass in "true" as we never call this function with false.
  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Calls parserSetUsesStyleBasedEditability as needed.
(WebCore::parseKeywordValue): Passes around StyleSheetContents*.
(WebCore::CSSParser::parseValue): Ditto.
(WebCore::CSSParser::parseFont): Ditto.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents): Initializes and copies m_usesStyleBasedEditability.

  • css/StyleSheetContents.h:

(WebCore::StyleSheetContents::parserSetUsesRemUnits): Removed the argument since it was always true.
(WebCore::StyleSheetContents::parserSetUsesStyleBasedEditability): Added.
(WebCore::StyleSheetContents::usesStyleBasedEditability): Added.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle): Added a FIXME as well as a comment explaining why we don't call
setUsesStyleBasedEditability. Since Node::computeEditability triggers style recalc only when the flag
is set to true, it's too late to update the flag here.
(WebCore::Document::updateStyleIfNeeded): Uses a newly extracted needsStyleRecalc.
(WebCore::Document::updateBaseURL): Preserves m_usesStyleBasedEditability as well as m_usesRemUnit.
(WebCore::Document::usesStyleBasedEditability): Added. Returns true when inline style declarations or
any active stylesheet uses -webkit-user-modify or -webkit-user-select: all. Flushing pending stylesheet
changes here is fine because the alternative is to trigger a full blown style recalc.

  • dom/Document.h:

(WebCore::Document::needsStyleRecalc): Added. Extracted from updateStyleIfNeeded.

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::styleSheetsUseRemUnits): Deleted.
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Updates m_usesStyleBasedEditability
as well as m_usesRemUnit.

  • dom/DocumentStyleSheetCollection.h:

(WebCore::DocumentStyleSheetCollection::usesStyleBasedEditability): Added.
(WebCore::DocumentStyleSheetCollection::setUsesStyleBasedEditability): Added.

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle): Extracted from computeEditability.
(WebCore::Node::computeEditability): When the style recalc is requested and the render tree is dirty,
check if the document uses any CSS property that can affect the editability of elements. If it doesn't,
compute the editability from contenteditable attributes in the anchors via matchesReadWritePseudoClass.
Continue to use the style-based computation when the render tree isn't dirty to avoid the tree walk.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr): Extracted from matchesReadWritePseudoClass
to be called in Node::computeEditability. Also made it return Editability instead of boolean.
(WebCore::HTMLElement::matchesReadWritePseudoClass):

  • html/HTMLElement.h:

LayoutTests:

Added a regression test to update the editability of elements dynamically. Also rebaselined
tests per style recalc timing changes.

  • fast/dom/HTMLElement/dynamic-editability-change-expected.txt: Added.
  • fast/dom/HTMLElement/dynamic-editability-change.html: Added.
  • platform/mac/editing/execCommand/5142012-1-expected.txt: anonymous render block differences.
  • platform/mac/editing/execCommand/nsresponder-outdent-expected.txt: Ditto.
  • platform/mac/editing/inserting/insert-at-end-02-expected.txt: Empty render text differences.
  • platform/mac/editing/pasteboard/4989774-expected.txt: Ditto.
11:48 AM Changeset in webkit [180866] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

LayoutTestRealy: Prepend XPC_ to the key, not the value!

Follow-up fix for:

LayoutTestRelay: App environment variables not set for --guard-malloc or --leaks
<http://webkit.org/b/142145>

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]): Fix think-o.

11:12 AM Changeset in webkit [180865] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • WebCorePrefix.h: Provide some default definitions to help build on Windows

machines with different application support libraries.

10:57 AM Changeset in webkit [180864] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

LayoutTestRelay: App environment variables not set for --guard-malloc or --leaks
<http://webkit.org/b/142145>

Reviewed by Simon Fraser.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]): Add.
(-[LTRelayController launchApp]): Use -_environmentVariables.

10:28 AM Changeset in webkit [180863] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Document some more debug assertions.

  • platform/win/TestExpectations:
1:52 AM Changeset in webkit [180862] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180846 - FrameView::layoutTimerFired() should update style if needed before doing layout
https://bugs.webkit.org/show_bug.cgi?id=141688

Reviewed by Andreas Kling.

If the style recalc timer has been scheduled to fire after the layout timer,
when the layout timer fires, we might as well just do the style recalc
too. The call to updateStyleIfNeeded() will cancel the pending style
recalc timer.

This doesn't have much impact on the number of layouts (measured via PLT)
but seems like a reasonable thing to do.

  • page/FrameView.cpp:

(WebCore::FrameView::layoutTimerFired):

1:48 AM Changeset in webkit [180861] by Carlos Garcia Campos
  • 14 edits
    1 copy in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180797 - bmalloc: Pathological madvise churn on the free(malloc(x)) benchmark
https://bugs.webkit.org/show_bug.cgi?id=142058

Reviewed by Andreas Kling.

The churn was caused by repeatedly splitting an object with physical
pages from an object without, and then merging them back together again.
The merge would conservatively forget that we had physical pages, forcing
a new call to madvise on the next allocation.

This patch more strictly segregates objects in the heap from objects in
the VM heap, with these changes:

(1) Objects in the heap are not allowed to merge with objects in the VM
heap, and vice versa -- since that would erase our precise knowledge of
which physical pages had been allocated.

(2) The VM heap is exclusively responsible for allocating and deallocating
physical pages.

(3) The heap free list must consider entries for objects that are in the
VM heap to be invalid, and vice versa. (This condition can arise
because the free list does not eagerly remove items.)

With these changes, we can know that any valid object in the heap's free
list already has physical pages, and does not need to call madvise.

Note that the VM heap -- as before -- might sometimes contain ranges
or pieces of ranges that have physical pages, since we allow splitting
of ranges at granularities smaller than the VM page size. These ranges
can eventually merge with ranges in the heap during scavenging.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::owner):
(bmalloc::BoundaryTag::setOwner):
(bmalloc::BoundaryTag::initSentinel):
(bmalloc::BoundaryTag::hasPhysicalPages): Deleted.
(bmalloc::BoundaryTag::setHasPhysicalPages): Deleted. Replaced the concept
of "has physical pages" with a bit indicating which heap owns the large
object. This is a more precise concept, since the old bit was really a
Yes / Maybe bit.

  • bmalloc/Deallocator.cpp:
  • bmalloc/FreeList.cpp: Adopt

(bmalloc::FreeList::takeGreedy):
(bmalloc::FreeList::take):
(bmalloc::FreeList::removeInvalidAndDuplicateEntries):

  • bmalloc/FreeList.h:

(bmalloc::FreeList::push): Added API for considering the owner when
deciding if a free list entry is valid.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap): Adopt new API.

(bmalloc::Heap::scavengeLargeRanges): Scavenge all ranges with no minimum,
since some ranges might be able to merge with ranges in the VM heap, and
they won't be allowed to until we scavenge them.

(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateMediumPage):
(bmalloc::Heap::allocateLarge): New VM heap API makes this function
simpler, since we always get back physical pages now.

  • bmalloc/Heap.h:
  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::end):
(bmalloc::LargeObject::owner):
(bmalloc::LargeObject::setOwner):
(bmalloc::LargeObject::isValidAndFree):
(bmalloc::LargeObject::merge): Do not merge objects across heaps since
that causes madvise churn.
(bmalloc::LargeObject::validateSelf):
(bmalloc::LargeObject::init):
(bmalloc::LargeObject::hasPhysicalPages): Deleted.
(bmalloc::LargeObject::setHasPhysicalPages): Deleted. Propogate the Owner API.

  • bmalloc/Owner.h: Added.
  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h: Propogate the owner API.
  • bmalloc/VMAllocate.h:

(bmalloc::vmDeallocatePhysicalPagesSloppy):
(bmalloc::vmAllocatePhysicalPagesSloppy): Clarified these functions and
removed an edge case.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::VMHeap):

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::allocateMediumPage):
(bmalloc::VMHeap::allocateLargeObject):
(bmalloc::VMHeap::deallocateLargeObject): Be sure to give each object
a new chance to merge, since it might have been prohibited from merging
before by virtue of not being in the VM heap.

(bmalloc::VMHeap::allocateLargeRange): Deleted.
(bmalloc::VMHeap::deallocateLargeRange): Deleted.

1:43 AM Changeset in webkit [180860] by Carlos Garcia Campos
  • 18 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180772 - Use NeverDestroyed for JS wrapper owners.
<https://webkit.org/b/142090>

Reviewed by Chris Dumez.

Using NeverDestroyed puts these objects in BSS which is preferable
since that prevents them from pinning down entire malloc pages forever.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.

  • bindings/scripts/test/JS/*: Rebaseline bindings tests for this change.
1:21 AM Changeset in webkit [180859] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180767 - Use after free in WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle
https://bugs.webkit.org/show_bug.cgi?id=138366

Reviewed by Dave Hyatt.

This patch ensures that we clean up RenderNamedFlowFragment::m_renderObjectRegionStyle when embedded flow content is getting destroyed.

In m_renderObjectRegionStyle hash map, we store style information about the named flow's descendant children.
When a child is being detached from the tree, it removes itself from this hashmap.
We do it by traversing up on the ancestor chain and call removeFlowChildInfo() on the parent flow.
However in case of embedded flows (for example multicolumn content inside a region), we need to check whether the parent flow
is inside a flow too and continue the cleanup accordingly.

Source/WebCore:

Test: fast/regions/region-with-multicolumn-embedded-crash.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):

LayoutTests:

  • fast/regions/region-with-multicolumn-embedded-crash-expected.txt: Added.
  • fast/regions/region-with-multicolumn-embedded-crash.html: Added.
1:18 AM Changeset in webkit [180858] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180716 - MachineThreads::Thread clean up has a use after free race condition.
<https://webkit.org/b/141990>

Reviewed by Filip Pizlo.

MachineThreads::Thread clean up relies on the clean up mechanism
implemented in _pthread_tsd_cleanup_key(), which looks like this:

void _pthread_tsd_cleanup_key(pthread_t self, pthread_key_t key)
{

void (*destructor)(void *);
if (_pthread_key_get_destructor(key, &destructor)) {

void ptr = &self->tsd[key];
void *value = *ptr;

=== Start of window for the bug to manifest =================

At this point, this thread has cached "destructor" and "value"
(which is a MachineThreads*). If the VM gets destructed (along
with its MachineThreads registry) by another thread, then this
thread will have no way of knowing that the MachineThreads* is
now pointing to freed memory. Calling the destructor below will
therefore result in a use after free scenario when it tries to
access the MachineThreads' data members.

if (value) {

*ptr = NULL;
if (destructor) {

=== End of window for the bug to manifest ==================

destructor(value);

}

}

}

}

The fix is to add each active MachineThreads to an ActiveMachineThreadsManager,
and always check if the manager still contains that MachineThreads object
before we call removeCurrentThread() on it. When MachineThreads is destructed,
it will remove itself from the manager. The add, remove, and checking
operations are all synchronized on the manager's lock, thereby ensuring that
the MachineThreads object, if found in the manager, will remain alive for the
duration of time we call removeCurrentThread() on it.

There's also possible for the MachineThreads object to already be destructed
and another one happened to have been instantiated at the same address.
Hence, we should only remove the exiting thread if it is found in the
MachineThreads object.

There is no test for this issue because this bug requires a race condition
between 2 threads where:

  1. Thread B, which had previously used the VM, exiting and getting to the bug window shown in _pthread_tsd_cleanup_key() above.
  2. Thread A destructing the VM (and its MachineThreads object) within that window of time before Thread B calls the destructor.

It is not possible to get a reliable test case without invasively
instrumenting _pthread_tsd_cleanup_key() or MachineThreads::removeCurrentThread()
to significantly increase that window of opportunity.

  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::contains):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::activeMachineThreadsManager):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::removeCurrentThread): Deleted.

  • heap/MachineStackMarker.h:
12:56 AM Changeset in webkit [180857] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180701 - bmalloc: Large object free list can grow infinitely
https://bugs.webkit.org/show_bug.cgi?id=142055

Reviewed by Andreas Kling.

By design, we don't eagerly remove large objects from the free list.
This creates two simple pathologies:

(1) If you free and then allocate the same object repeatedly, it will
duplicate itself in the free list repeatedly. Since it is never
invalid at the time of allocation, it will never be removed.

(2) If you split and then merge the same object repeatedly, it will
duplicate its split sibling in the free list repeatedly. If its
sibling is in a separate free list size class, it will never be
consulted at the time of allocation, so it will never be removed.

So, a simple "while (1) { free(malloc(x)); }" causes infinite memory
use in the free list.

The solution in this patch is a simple helper to remove garbage from the
free list if it grows too large. This pathology is not common, so the
cost is OK.

Long-term, perhaps we should rethink the laziness of these free lists.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::isMarked):
(bmalloc::BoundaryTag::setMarked): New bit, used by free list GC.

  • bmalloc/FreeList.cpp:

(bmalloc::FreeList::removeInvalidAndDuplicateEntries): The GC algorithm.

  • bmalloc/FreeList.h:

(bmalloc::FreeList::FreeList):
(bmalloc::FreeList::push): Invoke the GC if we're getting huge.

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::isMarked):
(bmalloc::LargeObject::setMarked):
(bmalloc::LargeObject::validateSelf): Expose the new bit.

  • bmalloc/Sizes.h: New constant to control GC frequency.
12:51 AM Changeset in webkit [180856] by Carlos Garcia Campos
  • 8 edits
    1 copy
    1 move in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180693 - bmalloc: Refactored SegregatedFreeList and BoundaryTag::init
https://bugs.webkit.org/show_bug.cgi?id=142049

Reviewed by Anders Carlsson.

Split out a FreeList class from SegregatedFreeList. This will make it
easier to add behaviors on free list insertion and removal -- and it's
probably how I should have designed things at the start.

Moved BoundaryTag::init into LargeObject, since all the related logic
lives in LargeObject now too, and this allows us to remove BoundaryTagInlines.h.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BoundaryTagInlines.h: Removed.
  • bmalloc/FreeList.cpp: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.cpp.

(bmalloc::FreeList::takeGreedy):
(bmalloc::FreeList::take):
(bmalloc::SegregatedFreeList::SegregatedFreeList): Deleted.
(bmalloc::SegregatedFreeList::insert): Deleted.
(bmalloc::SegregatedFreeList::takeGreedy): Deleted.
(bmalloc::SegregatedFreeList::take): Deleted.

  • bmalloc/FreeList.h: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.h.

(bmalloc::FreeList::push):

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::init):

  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h:
  • bmalloc/Sizes.h:
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

12:45 AM Changeset in webkit [180855] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/bmalloc

Merge r180688 - bmalloc: free up a bit in BoundaryTag
https://bugs.webkit.org/show_bug.cgi?id=142048

Reviewed by Brady Eidson.

We were wasting a bit by accident, and I need one now.

  • bmalloc/Algorithm.h:

(bmalloc::rightShift): Deleted. Not needed, now that I've simplified
the math.

  • bmalloc/BoundaryTag.h: Since each boundary tag bucket is 1024 bytes

long, the maximum offset into a bucket is 1023.

You need 5 bits to count up to 1024, but only 4 to count up to 1023.

Math is hard.

(bmalloc::BoundaryTag::compactBegin): Switched to division because it
is simpler, and easier to match up with our ASSERT. The compiler will
turn division by constant power of two into a shift for us.

(bmalloc::BoundaryTag::setRange): Added an ASSERT for compactBegin
because we do encode it, so we should ASSERT that encoding did not
lose information.

  • bmalloc/Sizes.h: Shifting is no longer used since we use division

instead.

12:43 AM Changeset in webkit [180854] by Carlos Garcia Campos
  • 6 edits
    6 adds in releases/WebKitGTK/webkit-2.8

Merge r180683 - Setting any of the <object> element plugin controlling attributes does not have any affect.
https://bugs.webkit.org/show_bug.cgi?id=141936.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-26
Reviewed by Zalan Bujtas.

Source/WebCore:

When setting any of the <object> element plugin controlling attributes
dynamically we need to mark the the element to be dirty by calling
setNeedsStyleRecalc(), so it has to recreate its renderer when needed.

Test: svg/as-object/svg-in-object-dynamic-attribute-change.html

  • dom/Element.h: Delete unimplemented function.
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parseAttribute): Dirty the element by calling
setNeedsStyleRecalc() when one of the plugin controlling attributes gets
changed. We have to clear the m_useFallbackContent because the attribute's
new value might fix the object rendering.

  • html/HTMLObjectElement.h: Add a function to clear m_useFallbackContent.
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle): We might need to
reconstruct the object renderer in the image case. This can happen if the
image was rendering fallback content and the attribute's new value fixes
the object rendering.

LayoutTests:

  • svg/as-object/resources/lime100x100.html: Added.
  • svg/as-object/resources/lime100x100.png: Added.
  • svg/as-object/resources/lime100x100.svg: Added.
  • svg/as-object/resources/red100x100.svg: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change-expected.html: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change.html: Added.

Ensure that changing the 'type' and the 'data' attributes of the <object>
element will have the expected outcome. Also make sure that the <object>
element renderer falls back correctly when setting any of the attributes
to some unexpected value.

12:36 AM WebKitGTK/2.8.x edited by Carlos Garcia Campos
(diff)
12:28 AM Changeset in webkit [180853] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r180667 - Add calleeSaveRegisters() implementation for ARM Traditional
https://bugs.webkit.org/show_bug.cgi?id=141903

Reviewed by Darin Adler.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters):

12:24 AM Changeset in webkit [180852] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r180643 - Horizontal and vertical lines are clipped completely if clip-path is included in the tag but the referenced element is defined later.
https://bugs.webkit.org/show_bug.cgi?id=141776.

Reviewed by Dean Jackson.
Source/WebCore:

Tests: svg/clip-path/clip-path-line-use-before-defined-expected.svg

svg/clip-path/clip-path-line-use-before-defined.svg

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext): Ensure the renderer
is added to m_clipper if it does not exist. The same renderer might have been
added to m_clipper in resourceBoundingBox().

(WebCore::RenderSVGResourceClipper::addRendererToClipper): Add the renderer to
m_clipper if it does not exist. Return the associated ClipperData.

(WebCore::RenderSVGResourceClipper::resourceBoundingBox): If the clipper is
referenced before it is defined, add the renderer to m_clipper. While doing the
layout() for the clipper, we can check if m_clipper has values or not. If it does
have, we are going to mark the clipper for client invalidation which is done by
the SVG root.

  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceContainer.h:

(WebCore::RenderSVGResourceContainer::selfNeedsClientInvalidation): Define a
new function selfNeedsClientInvalidation() which controls marking the clipper
for client invalidation. In RenderSVGResourceClipper, override it so it checks
m_clipper to force clients validation even if it the first time we do layout
for this clipper.

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::layout): Call the virtual function
selfNeedsClientInvalidation() to check whether we need to mark the clipper for
client invalidation.

  • svg/SVGElement.cpp: Delete unneeded header file.

LayoutTests:

New test cases for SVG lines which are clipped to a <clipPath>. The <clipPath>
is referenced before it is defined.

  • svg/clip-path/clip-path-line-use-before-defined-expected.svg: Added.
  • svg/clip-path/clip-path-line-use-before-defined.svg: Added.
12:21 AM Changeset in webkit [180851] by Carlos Garcia Campos
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.8

Merge r180639 - CodeBlock crashes when dumping op_push_name_scope
https://bugs.webkit.org/show_bug.cgi?id=141953

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-25
PerformanceTests/SunSpider:

Reviewed by Filip Pizlo.

  • profiler-test.yaml:

Source/JavaScriptCore:

Reviewed by Filip Pizlo and Csaba Osztrogonác.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • tests/stress/op-push-name-scope-crashes-profiler.js: Added.

Tools:

Reviewed by Filip Pizlo.

  • Scripts/run-jsc-stress-tests:
12:17 AM Changeset in webkit [180850] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180634 - REGRESSION (r180018 ): Holding a rubber-band in place can get stuck
https://bugs.webkit.org/show_bug.cgi?id=142020
-and corresponding-
rdar://problem/19945216

Reviewed by Tom Horton.

It was a mistaken assumption that it was necessary to return false in the zero-
delta case. That is clearly conceptually wrong since false represents the DOM
doing something special with the event, which is clearly not the case if we never
even send the event to the DOM. Returning true will allow the rest of the
scrolling machinery the ability to handle the event.

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

12:15 AM Changeset in webkit [180849] by Carlos Garcia Campos
  • 16 edits in releases/WebKitGTK/webkit-2.8

Merge r180621 - AX: Implement support for ARIA 1.1 'searchbox' role
https://bugs.webkit.org/show_bug.cgi?id=142004

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new accessible SearchFieldRole to handle both the ARIA role
and the "search" input type.

No new tests. Instead, added a new test case to roles-exposed.html
for the mapping, and updated roles-computedRoleString.html because
there is now a one-to-one mapping between the "search" input type
and an ARIA role.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isSearchField):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIATextControl):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::initializeRoleMap):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • accessibility/roles-computedRoleString-expected.txt: Updated for new role.
  • accessibility/roles-computedRoleString.html: Updated for new role.
  • accessibility/roles-exposed.html: New test case added.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test case.
Note: See TracTimeline for information about the timeline view.