Timeline



Apr 9, 2015:

11:07 PM Changeset in webkit [182622] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Use modern loops in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=143302

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09
Reviewed by Darin Adler.

Use modern range for-loops in WebProcess.

No new tests, no behavior change.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::focusedWebPage):
(WebKit::WebProcess::webPageGroup):
(WebKit::WebProcess::setTextCheckerState):
(WebKit::WebProcess::resetAllGeolocationPermissions):

10:21 PM Changeset in webkit [182621] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Some CSS3 filters tests crash under iOS testing
https://bugs.webkit.org/show_bug.cgi?id=143594
rdar://problem/20491140

Reviewed by David Kilzer.

Some tests disable accelerated compositing via testRunner.overridePreference(). In this case,
we'd not create a root scrolling tree node, so null-check it in AsyncScrollingCoordinator::updateNonFastScrollableRegion().

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion):

8:15 PM Changeset in webkit [182620] by Alan Bujtas
  • 46 edits
    5 adds in trunk

Simple line layout: Add <br> support.
https://bugs.webkit.org/show_bug.cgi?id=139012

This patch enables RenderBlockFlows to use simple line layout on text content when <br> is present.
Simple text with <br> is a fairly common pattern on discussion(forum)-like web pages. This patch reduces memory usage
and speeds up layout for such content.

Source/WebCore:

PerformanceTest/layout/line-layout-simple.html shows more than 2x speedup, when each paragraph is modified by appending <br> to the end.
With <br> support enabled:

mean: 70.02391461289068 runs/s
median: 70.47986488932318 runs/s

While with <br> support disabled:

mean: 30.417295049468184 runs/s
median: 30.36517778760357 runs/s

Reviewed by Antti Koivisto.

Test: fast/text/simple-line-with-br.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

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

(WebCore::RenderBlockFlow::setSelectionState):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):

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

(WebCore::simpleLineLayout):
(WebCore::ensureLineBoxes):
(WebCore::RenderLineBreak::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderLineBreak::positionForPoint):
(WebCore::RenderLineBreak::setSelectionState):
(WebCore::RenderLineBreak::linesBoundingBox):
(WebCore::RenderLineBreak::absoluteRects):
(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects):

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

(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::linesBoundingBox):
(WebCore::RenderText::caretMinOffset):
(WebCore::RenderText::caretMaxOffset):
(WebCore::RenderText::containsCaretOffset):
(WebCore::RenderText::hasRenderedText):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::consumeLineBreakIfNeeded):
(WebCore::SimpleLineLayout::skipWhitespaceIfNeeded):
(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::forceFragmentToLine):
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::create):

  • rendering/SimpleLineLayoutFlowContents.cpp:

(WebCore::SimpleLineLayout::initializeSegments):
(WebCore::SimpleLineLayout::FlowContents::segmentForRenderer): Deleted.

  • rendering/SimpleLineLayoutFlowContents.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::showLineLayoutForFlow):

  • rendering/SimpleLineLayoutResolver.cpp:

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

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator--):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::findNextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLastInRenderer):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::TextFragmentIterator::isSoftLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isHardLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isLineBreak): Deleted.

LayoutTests:

Test output changes in 2 different ways:

  1. Repositioned RenderLineBreak elements. (1px wide <br> is the result of integral pixel snapping)
  2. Removed empty content (<br>).

Reviewed by Antti Koivisto.

  • fast/text/simple-line-with-br-expected.html: Added.
  • fast/text/simple-line-with-br.html: Added.
  • platform/mac-mavericks/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac-mavericks/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/editing/pasteboard/5761530-1-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/mac/fast/dom/focus-contenteditable-expected.txt:
  • platform/mac/fast/forms/range/slider-padding-expected.txt: Added.
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/mac/fast/text/svg-font-face-with-kerning-expected.txt: Added.
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/mac/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:
5:39 PM Changeset in webkit [182619] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r182603): editing/selection/selection-invalid-offset.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=143591

Reviewed by Ryosuke Niwa.

Add missing null-check for m_frame->editor().client() in
FrameSelection::updateAndRevealSelection().

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

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

Web Inspector: Uncaught exception using console.table with filter argument
https://bugs.webkit.org/show_bug.cgi?id=143579

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

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
Reordering in the refactoring would have already converted this argument
to a RemoteObject. Assert that here instead of trying to convert.

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

Minor cleanups to WebCore/plugins
https://bugs.webkit.org/show_bug.cgi?id=143509

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-09
Reviewed by Anders Carlsson.

  1. Remove unnecessary #includes.
  2. Fix some wrong namespace comments for consistency.

No new tests, no behavior change.

  • plugins/DOMMimeType.cpp:
  • plugins/DOMMimeType.h:
  • plugins/DOMMimeTypeArray.h:
  • plugins/DOMPlugin.h:
  • plugins/DOMPluginArray.h:
  • plugins/PluginData.cpp:
  • plugins/PluginData.h:
  • plugins/PluginMainThreadScheduler.cpp:
  • plugins/PluginViewBase.h:
5:21 PM Changeset in webkit [182616] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: ObjectTree Property Path tooltip has a few issues
https://bugs.webkit.org/show_bug.cgi?id=143587

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

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.appendSymbolProperty):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
Handle Symbol properties. They are treated as an impossible path
because we cannot guarentee a reference to the Symbol right now.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
The savedResultIndex is on message.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:

(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement):
In order for "key" to be available setup the mainTitle after
the call to the base's constructor.

5:17 PM Changeset in webkit [182615] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Update my email address and expertise.
https://bugs.webkit.org/show_bug.cgi?id=143586

Unreviewed, just update my info.

  • Scripts/webkitpy/common/config/contributors.json:
4:42 PM Changeset in webkit [182614] by mmirman@apple.com
  • 5 edits in trunk/LayoutTests

Updated expectations on a few tests to account for error
info not being added at throw time anymore.
https://bugs.webkit.org/show_bug.cgi?id=143542
rdar://problem/20475871

Reviewed by Michael Saboff.

Because sourceURL is now being appended at error construction time rather than when thrown,
the tests now attempt to append it during the code run by InspectorTest.sendCommand which I assume uses an eval.
Because this code is generated on the fly, it has no URL and thus sourceURL makes no sense.
Also since they are generated in a new locations, they will have a new lines and columns.

  • inspector-protocol/debugger/setPauseOnExceptions-all-expected.txt:
  • inspector-protocol/debugger/setPauseOnExceptions-none-expected.txt:
  • inspector-protocol/debugger/setPauseOnExceptions-uncaught-expected.txt:
  • platform/win/TestExpectations: Enabled the above tests on windows.
4:36 PM Changeset in webkit [182613] by jfernandez@igalia.com
  • 17 edits
    3 adds in trunk

[CSS Grid Layout] Implement justify-self and justify-item css properties.
https://bugs.webkit.org/show_bug.cgi?id=133281

Reviewed by David Hyatt.

Implement the new property 'justify-items', defined in the CSS Box Alignment
Source/WebCore:

specification to describe the container's alignment behavior, in the same way
the 'align-items' property does. The 'justify-self' 'auto' value of any relative
positioned element will be resolved to its container's 'justify-items' value.

Test: fast/css/parse-justify-items.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveContainerAlignmentAuto): Function to resolve 'auto' values for 'align-items' or 'justify-items'.
(WebCore::resolveSelfAlignmentAuto): Function to resolve 'auto' values for 'align-self' or 'justify-self'.
(WebCore::valueForItemPositionWithOverflowAlignment): Take into account the 'legacy' keyword.
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::resolveAlignmentAuto): Deleted (renamed to resolveContainerAlignmentAuto).

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Refactoring to share logic between justify-xxx and align-xxx properties.
(WebCore::CSSParser::parseLegacyPosition): Parsing logic of 'legacy' keyword,
(WebCore::CSSParser::parseItemPositionOverflowPosition): Take into account the 'legacy' keyword.

  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInheritJustifyItems): Added.
(WebCore::StyleBuilderCustom::applyInitialJustifyItems): Added.
(WebCore::StyleBuilderCustom::applyValueJustifyItems): Added.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle): Resolve 'auto' values for justify-items when parents have the 'legacy' keyword.

  • rendering/style/RenderStyle.h: Managing the new ItemPositionType fields.
  • rendering/style/RenderStyleConstants.h: Added the ItemPositionType enumeration for handling the 'legacy' keyword.
  • rendering/style/StyleRareNonInheritedData.cpp: Managing the new ItemPositionType fields.

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

specification to desribe the container's alignment behavior, in the same way
the 'align-items' property does.

  • fast/css/parse-justify-items-expected.txt: Added.
  • fast/css/parse-justify-items.html: Added.
  • fast/css/resources/alignment-parsing-utils.js: Added.

(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):

4:32 PM Changeset in webkit [182612] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Make it possible to create an application cache storage with custom directories
https://bugs.webkit.org/show_bug.cgi?id=143588

Reviewed by Sam Weinig.

Add cache directory and flat file directory name parameters to ApplicationCacheStorage::create.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):
(WebCore::ApplicationCacheStorage::ApplicationCacheStorage):
(WebCore::ApplicationCacheStorage::create):
(WebCore::ApplicationCacheStorage::singleton):

  • loader/appcache/ApplicationCacheStorage.h:
3:57 PM Changeset in webkit [182611] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Perf dashboard should automatically select ranges for A/B testing
https://bugs.webkit.org/show_bug.cgi?id=143580

Reviewed by Chris Dumez.

Added a new statistics option for picking a A/B test range selection strategy.
The selected ranges are shown in the graph using the same UI to show analysis tasks.

  • public/v2/app.js:

(App.DashboardPaneProxyForPicker._platformOrMetricIdChanged): Updated the query parameters for
charts page used by the dashboard since we've added a new parameter at the end.
(App.Pane.ranges): Added. Merges ranges created for analysis tasks and A/B testing.
(App.Pane.updateStatisticsTools): Clone and set the test range selection strategies.
(App.Pane._cloneStrategy): Copy isSegmentation.
(App.Pane._updateMovingAverageAndEnvelope): Set testRangeCandidates.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Update the charts when a new text range
selection strategy is picked by the user.
(App.Pane._computeMovingAverageAndOutliers): Compute the test ranges using the chosen strategy.
Avoid going through isAnomalyArray when no anomaly detection strategy is enabled. Also changed
the return value from the moving average time series to a dictionary that contains the moving
average time series, a dictionary of anomalies, and an array of test ranges.
(App.ChartsController._parsePaneList): Parse the test range selection strategy configuration.
(App.ChartsController._serializePaneList): Ditto for serialization.
(App.ChartsController._scheduleQueryStringUpdate): Update the URL hash when the user picks a new
test range selection strategy.

  • public/v2/chart-pane.css: Fixed a typo as well as added a CSS rule for test ranges markers.
  • public/v2/index.html: Added UI for selecting a test range selection strategy.
  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._rangesChanged): Pass down "status" to be used as a class name.

  • public/v2/js/statistics.js:

(Statistics.MovingAverageStrategies): Added isSegmentation to segmentation strategies.
(Statistics.TestRangeSelectionStrategies): Added.

3:37 PM Changeset in webkit [182610] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

Track IconDatabase retain counts for WebContent processes. Balance retain/releases for processes that terminate before successfully doing it themselves.
https://bugs.webkit.org/show_bug.cgi?id=143517.

Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2015-04-09
Reviewed by Brady Eidson.

  • UIProcess/WebIconDatabase.messages.in:

Move RetainIconForPageURL and ReleaseIconForPageURL messages to WebProcessProxy so they can be associated with the appropriate web process.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionDidClose):
Call releaseRemainingIconsForPageURLs() to balance retains/releases for this process.

(WebKit::WebProcessProxy::retainIconForPageURL):
Track retain counts for page URLs and call through to WebIconDatabase.

(WebKit::WebProcessProxy::releaseIconForPageURL):
Ditto.

(WebKit::WebProcessProxy::releaseRemainingIconsForPageURLs):
Call releaseIconForPageURL() once for each outstanding retain count, for each page URL.

  • UIProcess/WebProcessProxy.h:

Declare methods for retainIconForPageURL(), releaseIconForPageURL(), and releaseRemainingIconsForPageURLs().
Declare hash map to track number of retains per page URL.

  • UIProcess/WebProcessProxy.messages.in:

Moved RetainIconForPageURL and ReleaseIconForPageURL messages here from WebIconDatabase.

  • WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:

(WebKit::WebIconDatabaseProxy::retainIconForPageURL):
Modify the receiver of the message to be WebProcessProxy.

(WebKit::WebIconDatabaseProxy::releaseIconForPageURL):
Ditto.

3:36 PM Changeset in webkit [182609] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Text-combine erroneously draws vertically after non-layout-causing style change
https://bugs.webkit.org/show_bug.cgi?id=143461
<rdar://problem/19285490>

Reviewed by Darin Adler.

Source/WebCore:

RenderCombineText::styleDidChange() unconditionally uncombines its text. Layout then
recombines it. However, if there is a style change that does not cause layout, the
RenderCombineText will be left uncombined until the next layout.

Test: fast/text/text-combine-style-change-no-layout.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::styleDidChange):

LayoutTests:

  • fast/text/text-combine-style-change-no-layout-expected.html: Added.
  • fast/text/text-combine-style-change-no-layout.html: Added.
3:19 PM Changeset in webkit [182608] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2] Regression(r182194): The NetworkProcess is calling the wrong memory pressure handler before suspending
https://bugs.webkit.org/show_bug.cgi?id=143575
<rdar://problem/20484338>

Reviewed by Andreas Kling.

After r182194, the NetworkProcess is calling the memory pressure
handler before getting suspended to free-up as much memory as possible
at this point.

However, we were calling the default memory pressure handling code
instead of the custom handler registered by the NetworkProcess. This
patch fixes the problem.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspend):

  • NetworkProcess/NetworkProcess.h:
2:32 PM Changeset in webkit [182607] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r182573): Action Menus no longer appear for WebKit2 views displaying an image
rdar://problem/20486551 and https://bugs.webkit.org/show_bug.cgi?id=143574

Reviewed by Brent Fulgham.

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data): Clear up a name scoping issue.

1:03 PM Changeset in webkit [182606] by Joseph Pecoraro
  • 3 edits in trunk/Tools

Flakiness Dashboard not loading insecure content if loaded with https URL
https://bugs.webkit.org/show_bug.cgi?id=143570

Reviewed by Alexey Proskuryakov.

  • TestResultServer/app.yaml:
  • TestResultServer/static-dashboards/loader.js:

Switch to https scheme.

12:03 PM Changeset in webkit [182605] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Revert part of 182516: it broke tests
https://bugs.webkit.org/show_bug.cgi?id=143568
rdar://problem/20484578

Reviewed by Myles Maxfield.

Revert the FontCascadeCocoa parts of r182516, since it broke some CSS shapes tests.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):
(WebCore::dilationSizeForTextColor): Deleted.

11:57 AM Changeset in webkit [182604] by Alan Bujtas
  • 7 edits
    1 add in trunk

Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
https://bugs.webkit.org/show_bug.cgi?id=143554

Reviewed by Antti Koivisto.

Initialize render flow's segments only when the render flow changes in TextIterator.
The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)

PerformanceTests:

  • Layout/simple-line-layout-innertext.html: Added.

Source/WebCore:

Test: PerformanceTests/Layout/simple-line-layout-innertext.html.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

  • editing/TextIterator.h:
  • rendering/SimpleLineLayoutFlowContents.cpp: Instruments log shows that vector's expandCapacity could be expensive when flow has large amount of children.

(WebCore::SimpleLineLayout::initializeSegments):

11:31 AM Changeset in webkit [182603] by Chris Dumez
  • 21 edits in trunk/Source

[WK2][iOS] editorState() should not cause a synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=142536
<rdar://problem/20041506>

Reviewed by Enrica Casucci.

Source/WebCore:

Add didChangeSelectionAndUpdateLayout() callback to EditorClient
that is called at the end of FrameSelection::updateAndRevealSelection().

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

  • loader/EmptyClients.h:
  • page/EditorClient.h:

Source/WebKit/mac:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

  • WebCoreSupport/WebEditorClient.h:

Source/WebKit/win:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

  • WebCoreSupport/WebEditorClient.h:

Source/WebKit2:

platformEditorState() on iOS does a synchronous layout to compute some
of the EditorState members (e.g. caretRectAtStart / caretRectAtEnd).
This is bad for performance as this is called every time the selection
is changed (which happens for e.g. when you set the value of a focused
HTMLInputElement).

This patch updates the behavior on iOS to only send a partial EditorState
on selection change so that the UIProcess gets most of the information
(the ones that do not require style recalc or layout) ASAP. A full Editor
state is then sent after the asynchronous layout is done.

With this change, I see a 38% improvement on Speedometer (26.4 +/- 0.37
-> 36.5 +/- 0.54) on iPhone 6 Plus.

  • Shared/EditorState.cpp:

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

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLayerTree:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(-[WKContentView webSelectionRects]):
(-[WKContentView _addShortcut:]):
(-[WKContentView selectedText]):
(-[WKContentView isReplaceAllowed]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView _transliterateChinese:]):
(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _characterBeforeCaretSelection]):
(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView _selectionAtDocumentStart]):
(-[WKContentView selectedTextRange]):
(-[WKContentView hasContent]):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didChangeSelectionAndUpdateLayout):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::sendPostLayoutEditorStateIfNeeded):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/efl/WebPageEfl.cpp:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformEditorState):

9:20 AM Changeset in webkit [182602] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Network Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData
https://bugs.webkit.org/show_bug.cgi?id=143562

Reviewed by Anders Carlsson.

If another thread comes and truncates the file before we map it we end up with a map that crashes when accessed.

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel):

When creating a new file unlink any existing file instead of using O_TRUNC.

9:13 AM Changeset in webkit [182601] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Give each cache group a storage and use it in place of the singleton
https://bugs.webkit.org/show_bug.cgi?id=143540

Reviewed by Sam Weinig.

This is another step towards making the cache storage be per page.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::makeObsolete):
(WebCore::ApplicationCacheGroup::didReachMaxAppCacheSize):
(WebCore::ApplicationCacheGroup::recalculateAvailableSpaceInQuota):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):

8:42 AM Changeset in webkit [182600] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[EFL] fast/css/vertical-text-overflow-ellipsis-text-align-center.html is failing
https://bugs.webkit.org/show_bug.cgi?id=142571

Unreviewed EFL Gardening.

Rebaseline the fast/css/vertical-text-overflow-ellipsis-text-align-center.html.

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09

  • platform/efl/TestExpectations:
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png:
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
8:39 AM Changeset in webkit [182599] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

Unreviewed EFL gardening. Added missing results after r182546.
https://bugs.webkit.org/show_bug.cgi?id=143557

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09

  • platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
4:51 AM Changeset in webkit [182598] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Unreviewed typo fix after r182595.

  • PlatformGTK.cmake:
2:26 AM Changeset in webkit [182597] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

Try to fix the Mac build after r182596.

I was wrong to replace PLATFORM(IOS) with HAVE(PARENTAL_CONTROLS) in ContentFilterUnblockHandler.
The conditional should be HAVE(PARENTAL_CONTROLS) && PLATFORM(IOS).

  • platform/ContentFilterUnblockHandler.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler):
(WebCore::ContentFilterUnblockHandler::needsUIProcess):
(WebCore::ContentFilterUnblockHandler::encode):
(WebCore::ContentFilterUnblockHandler::decode):
(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):

1:54 AM Changeset in webkit [182596] by aestes@apple.com
  • 7 edits in trunk/Source

[Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it
https://bugs.webkit.org/show_bug.cgi?id=143559

Reviewed by David Kilzer.

Source/WebCore:

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::types): Only registered ParentalControlsContentFilter if HAVE(PARENTAL_CONTROLS).

  • platform/ContentFilterUnblockHandler.h: Changed PLATFORM(IOS) to HAVE(PARENTAL_CONTROLS).
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler): Ditto.
(WebCore::ContentFilterUnblockHandler::needsUIProcess): Ditto.
(WebCore::ContentFilterUnblockHandler::encode): Ditto.
(WebCore::ContentFilterUnblockHandler::decode): Ditto.
(WebCore::ContentFilterUnblockHandler::canHandleRequest): Ditto.
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync): Ditto.

  • platform/cocoa/ParentalControlsContentFilter.mm: Wrapped the file with HAVE(PARENTAL_CONTROLS)

Source/WTF:

Added PLATFORM(WATCHOS). Used PLATFORM() since Watch OS is just a variant of OS(IOS).
Defined HAVE(PARENTAL_CONTROLS) to be true on all Cocoa platforms except Watch OS.

  • wtf/Platform.h:
1:11 AM Changeset in webkit [182595] by Csaba Osztrogonác
  • 9 edits in trunk

[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Scripts/generate-forwarding-headers.pl: Make it work with more path and platform arguments.

Tools:

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • WebKitTestRunner/PlatformEfl.cmake:
  • WebKitTestRunner/PlatformGTK.cmake:
12:33 AM Changeset in webkit [182594] by aestes@apple.com
  • 3 edits in trunk/LayoutTests

Skip http/tests/contentfiltering/ on all the platforms that skipped contentfiltering/
https://bugs.webkit.org/show_bug.cgi?id=143460

  • platform/efl/TestExpectations:
  • platform/win/TestExpectations:
12:26 AM Changeset in webkit [182593] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, added CSS Grid Layout to features.json file.

  • features.json:

Apr 8, 2015:

11:57 PM Changeset in webkit [182592] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Simplify Legacy Tips support
https://bugs.webkit.org/show_bug.cgi?id=143551

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

  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Protocol/ConsoleObserver.js:

(WebInspector.ConsoleObserver.prototype.messageAdded):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._filterMessageElements):

11:48 PM Changeset in webkit [182591] by youenn.fablet@crf.canon.fr
  • 8 edits
    2 adds in trunk

[Streams API] Support the start function parameter in ReadableStream constructor
https://bugs.webkit.org/show_bug.cgi?id=141160

Source/WebCore:

Reviewed by Benjamin Poulain.

Stores the JS source object in ReadableStreamJSSource and calls its "start" function.
This function takes a controller object that has three JS functions as members: close, enqueue and error.
This controller is stored in ReadableStreamJSSource as it will be reused as "pull" parameter.
All three JS functions do not currently do anything.

Test: streams/readablestream-start.html

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::start): Place holder for step 11 of https://streams.spec.whatwg.org/#rs-constructor.

  • Modules/streams/ReadableStream.h:
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream):

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::getPropertyFromObject): Helper function to get a public property from an object.
(WebCore::setPropertyToObject): Helper function to set a public property to an object.
(WebCore::callFunction): Helper function to call a JS function from C++.
(WebCore::ReadableStreamJSSource::ReadableStreamJSSource):
(WebCore::notImplementedFunction):
(WebCore::createReadableStreamEnqueueFunction): Creates the JS function for enqueue.
(WebCore::createReadableStreamCloseFunction): Creates the JS function for close.
(WebCore::createReadableStreamErrorFunction): Creates the JS function for error.
(WebCore::startReadableStreamAsync): Equivalent of promise resolution for start.
(WebCore::ReadableStreamJSSource::start): Calls the "start" function of the JS source with all three JS functions (enqueue, close, error) as parameters.

  • bindings/js/ReadableStreamJSSource.h:

LayoutTests:

Reviewed by Benjamin Poulain.

Added tests to check that start JS function is called with the right parameters and can throw errors.

  • streams/readablestream-start-expected.txt: Added.
  • streams/readablestream-start.html: Added.
11:34 PM Changeset in webkit [182590] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Exception in console and broken right click after attempting to show context menu in Inspector
https://bugs.webkit.org/show_bug.cgi?id=143556

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-08
Reviewed by Brady Eidson.

  • Shared/mac/NativeContextMenuItem.mm:

(WebKit::NativeContextMenuItem::NativeContextMenuItem):
Add an ASSERT to immediately catch a menu item created with a nil native menu item.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::internalShowContextMenu):
Gracefully handle a null share context menu item.

10:38 PM Changeset in webkit [182589] by Brent Fulgham
  • 7 edits in trunk

[Mac] Unreviewed test fix after r182584
https://bugs.webkit.org/show_bug.cgi?id=143452

Source/WebCore:

Correct bit comparison to use the correct value for the Control-key

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::typeForEvent):

Source/WebKit2:

Correct bit comparison to use the correct value for the Control-key

  • Shared/mac/WebEventFactory.mm:

(WebKit::typeForEvent):

Tools:

Put both of these tests back to their original state now that the underlying
problem is fixed.

  • TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:

(TestWebKitAPI::TEST):

10:22 PM Changeset in webkit [182588] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

[EFL] Create PageUIClientEfl after sending CreateWebPage message
https://bugs.webkit.org/show_bug.cgi?id=143514

Reviewed by Gyuyoung Kim.

UIProcess sends some messages to WebPage before WebPage is created. It makes some error logs on debug build.
So this patch moves the initialization of m_pageUIClient after calling WKViewInitialize().

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::EwkView):

9:58 PM Changeset in webkit [182587] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

The results of A/B testing should state statistical significance
https://bugs.webkit.org/show_bug.cgi?id=143552

Reviewed by Chris Dumez.

Added statistical comparisons between results for each configuration on analysis task page using
Welch's t-test. The probability as well as t-statistics and the degrees of freedoms are reported.

  • public/v2/app.js:

(App.TestGroupPane._populate): Report the list of statistical comparison between every pair of
root configurations in the results. e.g. if we've got A, B, C configurations then compare A/B, A/C
and B/C.
(App.TestGroupPane._computeStatisticalSignificance): Compute the statistical significance using
Welch's t-test. Report the probability by which two samples do not come from the same distribution.
(App.TestGroupPane._createConfigurationSummary): Include the array of results for this configuration.
Also renamed "items" to "requests" for clarity.

  • public/v2/index.html: Added the template for showing statistical comparisons.
  • public/v2/js/statistics.js: Renamed tDistributionQuantiles to tDistributionByOneSidedProbability

for clarity. Also factored out the functions to convert from one-sided probability to two-sided
probability and vice versa.
(Statistics.supportedConfidenceIntervalProbabilities):
(Statistics.confidenceIntervalDelta):
(Statistics.probabilityRangeForWelchsT): Added. Computes the lower bound and the upper bound for
the probability that two values are sampled from distinct distributions using Welch's t-test.
(Statistics.computeWelchsT): This function now takes two-sided probability like all other functions.
(.tDistributionByOneSidedProbability): Renamed from tDistributionQuantiles.
(.oneSidedToTwoSidedProbability): Extracted.
(.twoSidedToOneSidedProbability): Extracted.
(Statistics.MovingAverageStrategies): Converted the one-sided probability to the two-sided probability
now that computeWelchsT takes two-sided probability.

9:47 PM Changeset in webkit [182586] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-jsc-benchmarks geomean of preferred means shouldn't print the VMs header twice
https://bugs.webkit.org/show_bug.cgi?id=143553

Reviewed by Ryosuke Niwa.

Remove the spurious printVMs left over from an earlier change.

  • Scripts/run-jsc-benchmarks:
8:44 PM Changeset in webkit [182585] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add a debug assertion that will fire if we try to paint layer contents on a background thread
https://bugs.webkit.org/show_bug.cgi?id=143547

Reviewed by Alexey Proskuryakov.

New assertion to catch cases where other frameworks erroneously trigger painting
on a non-main (or non-Web) thread.

  • platform/graphics/mac/WebLayer.mm:

(-[WebSimpleLayer display]):
(-[WebSimpleLayer drawInContext:]):

8:42 PM Changeset in webkit [182584] by Brent Fulgham
  • 3 edits in trunk/Tools

[Mac] Unreviewed test fix after r182581

The behavior of control-left-click is controlled by a system preference.
Our test bots have this turned off.

  • TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:

(TestWebKitAPI::TEST):

8:21 PM Changeset in webkit [182583] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed Test Fix after r182579. Add missing include.

  • UserInterface/Test.html:

Missing file was causing inspector/page/main-frame-resource.html to fail.

7:50 PM Changeset in webkit [182582] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Layout Test inspector/console/console-api.html is failing
https://bugs.webkit.org/show_bug.cgi?id=143548

  • platform/win/TestExpectations: Skipped new timeout.
7:41 PM Changeset in webkit [182581] by Brent Fulgham
  • 16 edits
    3 adds in trunk

[Mac] WebKit is not honoring OS preferences for secondary click behaviors
https://bugs.webkit.org/show_bug.cgi?id=143452
<rdar://problem/20437483>

Reviewed by Tim Horton.

Source/WebCore:

We cannot rely on the event's button number to decide behavior. The OS settings might have
mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what
the proper button press behavior is.

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::mouseButtonForEvent): Ask NSMenu what kind of button press we have received.

Source/WebKit/mac:

We were improperly intercepting contextual menu clicks and passing them through
the mouseDown handler, rather than processing via NSView's menu handling code.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView otherMouseDown:]): Treat context menu events the same as the action
menu case, and pass it to AppKit for normal menu processing.

Source/WebKit2:

We cannot rely on the event's button number to decide behavior. The OS settings might have
mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what
the proper button press behavior is.

  • Shared/mac/WebEventFactory.mm:

(WebKit::mouseButtonForEvent): Ask NSMenu what kind of button press we have received.

Tools:

Add a new API test to confirm that Cocoa mouse button press events are properly
tagged with the desired menu behavior (i.e., 'None', 'Context', or 'Action'.)

The WK2 test dispatches mouse down events to a PlatformWebView, and checks with
some registered event handlers that the expected button press and context menu
events are received.

The WK1 unit test creates an NSEvent with the desired button press state, and then
uses WebCore::PlatformEventFactory::createPlatformMouseEvent to create a WebCore event.
We check the resulting PlatformMouseEvent for proper state.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new test files.
  • TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp: Added.

(TestWebKitAPI::buildAndPerformTest): Helper function to build/run an individual test.

  • TestWebKitAPI/Tests/WebKit2/mouse-button-listener.html: Added.
  • TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm: Added.

(TestWebKitAPI::canCallMenuTypeForEvent): Helper function.
(TestWebKitAPI::buildAndPerformTest): Helper function to build/run an individual test.

  • TestWebKitAPI/mac/PlatformWebViewMac.mm:

(TestWebKitAPI::PlatformWebView::simulateButtonClick): Added method to support firing
mouse down events.

  • TestWebKitAPI/mac/PlatformWebViewMac.h:
7:15 PM Changeset in webkit [182580] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Fix -Wformat in AnimationBase.cpp
https://bugs.webkit.org/show_bug.cgi?id=143541

Reviewed by Simon Fraser.

  • page/animation/AnimationBase.cpp:

(WebCore::nameForStateInput): Added. Converts an AnimationBase::AnimationStateInput to a
string.
(WebCore::AnimationBase::updateStateMachine): Print AnimationBase::AnimationStateInput as a
string, instead of passing it to %d and assuming that works, to silence GCC's -Wformat.

6:37 PM Changeset in webkit [182579] by Joseph Pecoraro
  • 14 edits
    2 moves
    5 adds
    2 deletes in trunk

Web Inspector: Split ConsoleMessageImpl into the View and the Model
https://bugs.webkit.org/show_bug.cgi?id=142599

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/ConsoleMessage.js: Added.

(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype.get source):
(WebInspector.ConsoleMessage.prototype.get level):
(WebInspector.ConsoleMessage.prototype.get messageText):
(WebInspector.ConsoleMessage.prototype.get type):
(WebInspector.ConsoleMessage.prototype.get url):
(WebInspector.ConsoleMessage.prototype.get line):
(WebInspector.ConsoleMessage.prototype.get column):
(WebInspector.ConsoleMessage.prototype.get repeatCount):
(WebInspector.ConsoleMessage.prototype.get parameters):
(WebInspector.ConsoleMessage.prototype.get stackTrace):
(WebInspector.ConsoleMessage.prototype.get request):
New readonly model object for console messages.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Base/Test.js:

(WebInspector.loaded):
Load the new files in the main / test page.

  • UserInterface/Views/LegacyConsoleMessage.js: Removed.
  • UserInterface/Views/LegacyConsoleMessageImpl.js: Removed.

Remove Legacy versions.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
(WebInspector.JavaScriptLogViewController.prototype.appendConsoleMessage):
(WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage): Deleted.
Update LogViewController to create ConsoleMessageViews from ConsoleMessages when applicable.
Also clarify when we have a view versus model object.

  • UserInterface/Protocol/ConsoleObserver.js:

(WebInspector.ConsoleObserver.prototype.messageAdded):

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager.prototype.messageWasAdded):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Create model objects and issue events for the model objects.

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
Update now that the event gives us a model object.

  • UserInterface/Views/ConsoleMessageView.js: Added.

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get element):
(WebInspector.ConsoleMessageView.prototype.get message):
(WebInspector.ConsoleMessageView.prototype.get repeatCount):
(WebInspector.ConsoleMessageView.prototype.set repeatCount):
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._appendSavedResultIndex):
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._appendParameters):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._formatParameter):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.parameterFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.stringFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.floatFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.integerFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
(WebInspector.ConsoleMessageView.prototype._shouldShowStackTrace):
(WebInspector.ConsoleMessageView.prototype._shouldHideURL):
(WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
(WebInspector.ConsoleMessageView.prototype._levelString):
(WebInspector.ConsoleMessageView.prototype._enforcesClipboardPrefixString):
(WebInspector.ConsoleMessageView.prototype._clipboardPrefixString):
New View class for a ConsoleMessage. This is a near direct port of the old code
to a view class that has a root element.

  • UserInterface/Models/ConsoleCommandResultMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommandResult.js.

(WebInspector.ConsoleCommandResultMessage):
(WebInspector.ConsoleCommandResultMessage.clearMaximumSavedResultIndex):
(WebInspector.ConsoleCommandResultMessage.prototype.get savedResultIndex):
Rename, as this is a ConsoleMessage subclass with a specific type for console evaluation results.

  • UserInterface/Views/ConsoleCommandView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommand.js.

(WebInspector.ConsoleCommandView):
(WebInspector.ConsoleCommandView.prototype.get element):
(WebInspector.ConsoleCommandView.prototype.get commandText):
(WebInspector.ConsoleCommandView.prototype.get message):
(WebInspector.ConsoleCommandView.prototype.toClipboardString):

  • UserInterface/Views/ConsoleGroup.js:

(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.get parentGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessageView):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype._titleMouseDown):
(WebInspector.ConsoleGroup.prototype.addMessage): Deleted.
(WebInspector.ConsoleGroup.prototype._titleClicked): Deleted.

  • UserInterface/Views/ConsoleSession.js:

(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessageView):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.addMessage): Deleted.
(WebInspector.ConsoleSession.prototype.hasMessages): Deleted.
Convert to classes, and clarify these deal with View objects.

  • UserInterface/Views/LogContentView.css:

(.console-message .repeat-count):
(.console-message .bubble): Deleted.
Better class name for the repeat count element.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._formatMessagesAsData):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._selectAllMessages):
(WebInspector.LogContentView.prototype._allMessageElements):
(WebInspector.LogContentView.prototype._unfilteredMessageElements):
(WebInspector.LogContentView.prototype._visibleMessageElements):
(WebInspector.LogContentView.prototype._scopeBarSelectionDidChange):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype._upArrowWasPressed):
(WebInspector.LogContentView.prototype._downArrowWasPressed):
(WebInspector.LogContentView.prototype._previousMessage):
(WebInspector.LogContentView.prototype._nextMessage):
(WebInspector.LogContentView.prototype._performSearch):
(WebInspector.LogContentView.prototype._highlightRanges):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
(WebInspector.LogContentView.prototype.didAppendConsoleMessage): Deleted.
(WebInspector.LogContentView.prototype._allMessages): Deleted.
(WebInspector.LogContentView.prototype._unfilteredMessages): Deleted.
(WebInspector.LogContentView.prototype._visibleMessages): Deleted.
(WebInspector.LogContentView.prototype._filterMessages): Deleted.
Rename lots of things to make it clear when we are dealing with
elements, model objects, or view objects. This class is still heavily
dealing with elements, and needs to be cleaned up later.

LayoutTests:

  • inspector/console/console-api-expected.txt: Added.
  • inspector/console/console-api.html: Added.

Add a basic test for console APIs creating the new ConsoleMessage model objects.

6:37 PM Changeset in webkit [182578] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Fix uncaught exception seen in Inspector.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype.removeChild):
Add a null check. Everywhere else null checks this member variable
which may not exist yet, this case was missing the check.

6:37 PM Changeset in webkit [182577] by Joseph Pecoraro
  • 4 edits in trunk/Source/JavaScriptCore

Use jsNontrivialString in more places if the string is guaranteed to be 2 or more characters
https://bugs.webkit.org/show_bug.cgi?id=143430

Reviewed by Darin Adler.

  • runtime/ExceptionHelpers.cpp:

(JSC::errorDescriptionForValue):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):

  • runtime/SymbolPrototype.cpp:

(JSC::symbolProtoFuncToString):

6:02 PM Changeset in webkit [182576] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression: Showing of color swatches no longer works in Details Sidebar
https://bugs.webkit.org/show_bug.cgi?id=143539

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-04-08
Reviewed by Timothy Hatcher.

Fix a regression where due to an ESLint error the whole line instead of just
the variable declaration was removed.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

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

5:32 PM Changeset in webkit [182575] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Document some test failures.
https://bugs.webkit.org/show_bug.cgi?id=143542
https://bugs.webkit.org/show_bug.cgi?id=143543

  • platform/win/TestExpectations: Mark as failing.
4:14 PM Changeset in webkit [182574] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Add pango to jhbuild-optional.modules
https://bugs.webkit.org/show_bug.cgi?id=143537

Reviewed by Martin Robinson.

  • gtk/jhbuild-optional.modules: Add pango.
4:11 PM Changeset in webkit [182573] by beidson@apple.com
  • 26 edits in trunk/Source

Expose the "Share" menu for links, images, and media.
<rdar://problem/20435340> and https://bugs.webkit.org/show_bug.cgi?id=143502

Reviewed by Tim Horton.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/ContextMenuClient.h:

(WebCore::ContextMenuClient::shareSelectedTextMenuItem): Deleted.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):
(WebCore::selectionContainsPossibleWord): Deleted.

  • page/ContextMenuController.h:

(WebCore::ContextMenuController::page):

  • platform/ContextMenuItem.cpp:

(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::isNull):
(WebCore::ContextMenuItem::shareMenuItem):
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.

  • platform/ContextMenuItem.h:
  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::shareMenuItem): Return a null item.
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.

  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::shareMenuItem): Create a full-featured Share menu item instead of just for selected text.
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::selectedText): Instead of calculating selected text outside the HitTestResult, let the

HitTestResult do what it does best: Calculate things!

  • rendering/HitTestResult.h:

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.h:
  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::shareMenuItem):

Source/WebKit/win:

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::shareMenuItem):

  • WebCoreSupport/WebContextMenuClient.h:

Source/WebKit2:

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):

  • Shared/WebHitTestResult.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::internalShowContextMenu):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::shareMenuItem):

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):

3:47 PM Changeset in webkit [182572] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Add encoding and decoding of ints to WKRemoteObjectCoder
https://bugs.webkit.org/show_bug.cgi?id=143538

Reviewed by Tim Horton.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(-[WKRemoteObjectEncoder encodeInt:forKey:]):
(-[WKRemoteObjectDecoder decodeIntForKey:]):

3:21 PM Changeset in webkit [182571] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Curl] Compile error in CurlCacheEntry::parseResponseHeaders method.
https://bugs.webkit.org/show_bug.cgi?id=143531

Reviewed by Alex Christensen.

Cache related methods in ResourceResponse have changed return type.

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::parseResponseHeaders):

2:25 PM Changeset in webkit [182570] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Remove ApplicationCacheGroup::m_isCopy
https://bugs.webkit.org/show_bug.cgi?id=143536

Reviewed by Tim Horton.

Code that used to set m_isCopy to true is long gone.

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::~ApplicationCache):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):

  • loader/appcache/ApplicationCacheGroup.h:

(WebCore::ApplicationCacheGroup::isCopy): Deleted.

2:17 PM Changeset in webkit [182569] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed, update more test expectations

Remove some expected failures from tests that are passing. Also, copypaste some
expectations to more appropriate locations in the expectations file.

  • platform/gtk/TestExpectations:
2:16 PM Changeset in webkit [182568] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed fix after r182496 for when the cached runs JSON doesn't exist.

  • public/v2/app.js:

(App.Pane._fetch):
(App.Pane.refetchRuns):

2:14 PM Changeset in webkit [182567] by fpizlo@apple.com
  • 3 edits
    4 adds in trunk

JSArray::sortNumeric should handle ArrayWithUndecided
https://bugs.webkit.org/show_bug.cgi?id=143535

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

ArrayWithUndecided is what you get if you haven't stored anything into the array yet. We need to handle it.

  • runtime/JSArray.cpp:

(JSC::JSArray::sortNumeric):

  • tests/stress/sort-array-with-undecided.js: Added.

LayoutTests:

Upload the original test that first spotted this. Shortened it a bit so that it runs fast enough.

  • js/regress/script-tests/sorting-benchmark.js: Added.

(log):
(bottom_up_merge_sort):
(aMinusB):
(verify):
(benchmark):
(makeArrays):

  • js/regress/sorting-benchmark-expected.txt: Added.
  • js/regress/sorting-benchmark.html: Added.
2:12 PM Changeset in webkit [182566] by clopez@igalia.com
  • 3 edits in trunk/Tools

[XvfbDriver] Regular expression used to match running X servers fails on Fedora 22.
https://bugs.webkit.org/show_bug.cgi?id=143530

Reviewed by Žan Doberšek.

Assume that the default value for display (:0) is reserved and start checking on :1
Adjust webkitpy test and include two new test cases for this bug (display number not specified)
and for X server named Xorg.bin (previous bug 1376599)

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver._next_free_display)

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.test_start_no_pixel_tests):
(XvfbDriverTest.test_start_pixel_tests):
(XvfbDriverTest.test_start_arbitrary_worker_number):
(XvfbDriverTest.test_next_free_display):
(XvfbDriverTest.test_start_next_worker):

2:00 PM Changeset in webkit [182565] by andersca@apple.com
  • 6 edits in trunk/Source

Delete ApplicationCache static member functions
https://bugs.webkit.org/show_bug.cgi?id=143534

Reviewed by Tim Horton.

Source/WebCore:

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::deleteCacheForOrigin): Deleted.
(WebCore::ApplicationCache::deleteAllCaches): Deleted.
(WebCore::ApplicationCache::diskUsageForOrigin): Deleted.

  • loader/appcache/ApplicationCache.h:

Source/WebKit2:

  • WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:

(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
(WebKit::WebApplicationCacheManager::deleteAllEntries):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::clearApplicationCacheForOrigin):
(WebKit::InjectedBundle::appCacheUsageForOrigin):

1:26 PM Changeset in webkit [182564] by achristensen@apple.com
  • 9 edits
    3 adds in trunk

Block popups from content extensions.
https://bugs.webkit.org/show_bug.cgi?id=143497

Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/popups.html

  • loader/ResourceLoadInfo.cpp:

(WebCore::readResourceType):

  • loader/ResourceLoadInfo.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/UserContentController.cpp:

(WebCore::UserContentController::actionsForResourceLoad):

  • page/UserContentController.h:

Check content extensions before opening a window.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Added popup test.

LayoutTests:

  • http/tests/contentextensions/popups-expected.txt: Added.
  • http/tests/contentextensions/popups.html: Added.
  • http/tests/contentextensions/popups.html.json: Added.
1:24 PM Changeset in webkit [182563] by fpizlo@apple.com
  • 2 edits in trunk

Unreviewed, revert accidental commit.

  • Makefile.shared:
1:22 PM Changeset in webkit [182562] by fpizlo@apple.com
  • 3 edits in trunk

DFG::IntegerCheckCombiningPhase's wrap-around check shouldn't trigger C++ undef behavior on wrap-around
https://bugs.webkit.org/show_bug.cgi?id=143532

Reviewed by Gavin Barraclough.

Oh the irony! We were protecting an optimization that only worked if there was no wrap-around in JavaScript.
But the C++ code had wrap-around, which is undef in C++. So, if the compiler was smart enough, our compiler
would think that there never was wrap-around.

This fixes a failure in stress/tricky-array-boiunds-checks.js when JSC is compiled with bleeding-edge clang.

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::isValid):

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

[GTK] Unreviewed test expectation sanity-check

Remove duplicate expectation, and some expectations for tests that no longer exist.

  • platform/gtk/TestExpectations:
12:40 PM Changeset in webkit [182560] by Bem Jones-Bey
  • 4 edits
    4 adds in trunk

[CSS Shapes] Properly handle negative reference box widths and center coordinates
https://bugs.webkit.org/show_bug.cgi?id=142610

Reviewed by Rob Buis.
Source/WebCore:

Fix a few cases where values that should not be negative end up that
way.

This patch is based on a couple of Blink patches by Rob Buis.

Tests: fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html

fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine): A

negative margin box width means that the shape has no extent, so
clamp to zero.

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapeCircle::floatValueForRadiusInBox): When computing

the radii, take the absolute value, since the radii is based on
the distance, which is always positive.

(WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.

LayoutTests:

Tests for the cases that trigger asserts.

  • fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html: Added.
12:28 PM Changeset in webkit [182559] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/win

Add a WebApplicationCache::storage() and use it instead of the WebCore singleton
https://bugs.webkit.org/show_bug.cgi?id=143525

Reviewed by Antti Koivisto.

  • WebApplicationCache.cpp:

(WebApplicationCache::storage):
(WebApplicationCache::maximumSize):
(WebApplicationCache::setMaximumSize):
(WebApplicationCache::defaultOriginQuota):
(WebApplicationCache::setDefaultOriginQuota):
(WebApplicationCache::diskUsageForOrigin):
(WebApplicationCache::deleteAllApplicationCaches):
(WebApplicationCache::deleteCacheForOrigin):
(WebApplicationCache::originsWithCache):

  • WebApplicationCache.h:
12:11 PM BuildingGtk edited by Joone Hur
Changed the wayland jhbuild module name. (diff)
11:48 AM WebKitGTK/Debugging edited by clopez@igalia.com
(diff)
11:44 AM Changeset in webkit [182558] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

Not needed any more (Requested by ap on #webkit).

Reverted changeset:

"Fix the build."
http://trac.webkit.org/changeset/182522

11:30 AM Changeset in webkit [182557] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

32-bit build fix after r182554.

  • UIProcess/API/mac/WKView.mm:

(-[WKView resignFirstResponder]):

11:25 AM Changeset in webkit [182556] by Beth Dakin
  • 8 edits in trunk/Source

Force events should not require preventDefault in order to fire
https://bugs.webkit.org/show_bug.cgi?id=143503
-and corresponding-
rdar://problem/20458916

Reviewed by Tim Horton.

Source/WebCore:

Since these events will fire whether or not preventDefault was set on the
willBegin event, we should make sure we only send them when there are registered
event listeners. These are new events, so we don’t want to spam the vast majority
of web content that doesn’t use them yet.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

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

(WebCore::Element::dispatchMouseForceWillBegin):
(WebCore::Element::dispatchMouseForceChanged):
(WebCore::Element::dispatchMouseForceDown):
(WebCore::Element::dispatchMouseForceUp):
(WebCore::Element::dispatchMouseForceClick):
(WebCore::Element::dispatchMouseForceCancelled):

Source/WebKit2:

We no longer need m_lastActionMenuHitTestPreventsDefault since we’ll always
dispatch the events to Element.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

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

(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::inputDeviceForceDidChange):
(WebKit::WebPage::immediateActionDidCancel):

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

[Mac][WebAudio] Update the AVAudioMix in the AudioSourceProviderAVFObjC when the list of enabled audio tracks change.
https://bugs.webkit.org/show_bug.cgi?id=143332

Reviewed by Eric Carlson.

Some media assets (notably, mp3s) will not have an enabled audio track when the AVAsset is
first loaded, so the AVAudioMix will have no trackID in it's parameters. Whenever the list
of enabled tracks change, recreate the AVAudioMix with the new first enabled audio trackID.

To facilitate this, add a new setter to AudioSourceProviderAVFObjC taking an AVAssetTrack to
use with the AVAudioMix. Whenever this parameter changes, the AVAudioMix is destroyed and
recreated.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Drive-by fix: when the media

player switches engines, re-associate the audio source node with its provider.

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:
  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::setPlayerItem): Only create the mix if there is a valid AVPlayerItem and AVAssetTrack
(WebCore::AudioSourceProviderAVFObjC::setAudioTrack): Ditto.
(WebCore::AudioSourceProviderAVFObjC::createMix): Don't iterate over the AVPlayerItem's tracks,

just use the one passed in through setAudioTrack().

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear the provider's track.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Set the provider's track.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider): Ditto.

11:06 AM Changeset in webkit [182554] by enrica@apple.com
  • 3 edits in trunk/Source/WebKit2

Calling makeFirstResponder on WKWebView doesn't work.
https://bugs.webkit.org/show_bug.cgi?id=143482
rdar://problem/20298166

Reviewed by Dan Bernstein.

Adding forwarding of the responder status to the WKView.
We also need to avoid doing any cleanup in resignFirstResponder
if we know we are about to regain responder status again.
Same goes for becomeFirstResponder.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView becomeFirstResponder]):
(-[WKWebView acceptsFirstResponder]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView becomeFristResponder]):
(-[WKView resignFirstResponder]):

10:53 AM Changeset in webkit [182553] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.26/Source/WebCore

Merged r182521. rdar://problem/20113980

10:52 AM Changeset in webkit [182552] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.26/Source/WebCore

Merged r182519. rdar://problem/20113980

10:52 AM Changeset in webkit [182551] by andersca@apple.com
  • 6 edits in trunk/Source

Move some ApplicationCache static member functions to ApplicationCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=143524

Reviewed by Antti Koivisto.

Source/WebCore:

This is yet another step towards eliminating ApplicationCacheStorage::singleton() and making the storage be per page instead.

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::deleteCacheForOrigin):
(WebCore::ApplicationCache::deleteAllCaches):
(WebCore::ApplicationCache::diskUsageForOrigin):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::deleteAllCaches):
(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
(WebCore::ApplicationCacheStorage::diskUsageForOrigin):

  • loader/appcache/ApplicationCacheStorage.h:

Source/WebKit/mac:

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache diskUsageForOrigin:]):
(+[WebApplicationCache deleteAllApplicationCaches]):
(+[WebApplicationCache deleteCacheForOrigin:]):

10:51 AM Changeset in webkit [182550] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.26/Source/WebCore

Merged r182518. rdar://problem/20113980

10:49 AM Changeset in webkit [182549] by bshafiei@apple.com
  • 11 edits in tags/Safari-601.1.26/Source/WebCore

Merged r182516. rdar://problem/20113980

10:27 AM Changeset in webkit [182548] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:25 AM Changeset in webkit [182547] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.26

New tag.

10:14 AM Changeset in webkit [182546] by ChangSeok Oh
  • 3 edits
    10 adds in trunk

Fill list style background with same color with that of list background.
https://bugs.webkit.org/show_bug.cgi?id=143483

Reviewed by Simon Fraser.

Source/WebCore:

LayoutListMarker does not have a node so its selectionBackgroundColor alway returns
the default theme color for selection. We can make it more natural by filling
the same color with that of LayoutListItem into it.

Tests: fast/backgrounds/selection-background-color-of-image-list-style.html

fast/backgrounds/selection-background-color-of-list-style.html

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

LayoutTests:

  • fast/backgrounds/selection-background-color-of-image-list-style.html: Added.
  • fast/backgrounds/selection-background-color-of-list-style.html: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
9:47 AM Changeset in webkit [182545] by achristensen@apple.com
  • 15 edits
    1 add in trunk

Add CMake build system for WinCairo port.
https://bugs.webkit.org/show_bug.cgi?id=115944

Patch by Alex Christensen <achristensen@webkit.org> and Patrick Gansterer <Patrick Gansterer> on 2015-04-08
Reviewed by Chris Dumez.

.:

  • Source/cmake/OptionsWindows.cmake:
  • Source/cmake/WebKitMacros.cmake:

Make ADD_PRECOMPILED_HEADER more like http://stackoverflow.com/questions/148570/using-pre-compiled-headers-with-cmake

Source/WebCore:

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):

Source/WebKit:

  • CMakeLists.txt:

Source/WTF:

  • wtf/FeatureDefines.h:
  • wtf/PlatformWin.cmake:

Tools:

  • CMakeLists.txt:
  • WinLauncher/CMakeLists.txt: Added.
9:45 AM Changeset in webkit [182544] by Chris Dumez
  • 71 edits in trunk/Source

Rename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for clarity
https://bugs.webkit.org/show_bug.cgi?id=143513

Reviewed by Andreas Kling.

Source/WebCore:

Rename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for
clarity as it is only used for the page cache. Also rename the
'DocumentWillBecomeInactive' value of the ReasonForSuspension enum to
'PageCache' as it is only used by CachedFrame for the page cache and it
is a lot more understandable.

Source/WebKit/mac:

Update ScriptExecutionContext::canSuspendActiveDOMObjects() to
canSuspendActiveDOMObjectsForPageCache() as the method was renamed.

  • WebView/WebFrame.mm:

(-[WebFrame _cacheabilityDictionary]):

9:31 AM Changeset in webkit [182543] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4

Merge r182537 - [GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed by the user
https://bugs.webkit.org/show_bug.cgi?id=143521

Reviewed by Martin Robinson.

This is a case we claim to support, but it only works if the
object has only one reference. In that case, when the user unrefs
it, the weak ref notify callback removes the object from the
cache. However, if the object has more than one ref, the cache
doesn't know the user unreffed it, and when clearing the cache we
try to remove more references than what the object actually has,
causing a crash in g_object_unref.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::clearObject):

9:25 AM Changeset in webkit [182542] by commit-queue@webkit.org
  • 46 edits
    5 deletes in trunk

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

Made accessibility/table-sections.html time out on debug bots
(Requested by ap on #webkit).

Reverted changeset:

"Simple line layout: Add <br> support."
https://bugs.webkit.org/show_bug.cgi?id=139012
http://trac.webkit.org/changeset/182536

9:24 AM Changeset in webkit [182541] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r180216 - Use HashMap::add instead of get/contains + set in DOMObjectCache
https://bugs.webkit.org/show_bug.cgi?id=141558

Rubber-stamped by Žan Doberšek.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::getOrCreateDOMObjectCacheFrameObserver):
(WebKit::DOMObjectCache::put):

9:10 AM Changeset in webkit [182540] by andersca@apple.com
  • 7 edits
    1 copy in trunk/Source/WebKit

Get rid of uses of ApplicationCacheStorage::singleton() from WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=143504

Reviewed by Sam Weinig.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Add WebApplicationCacheInternal.h.

Source/WebKit/mac:

Add a webApplicationCacheStorage() function and use it throughout WebKitLegacy.
In the future, webApplicationCacheStorage will return a custom singleton, but for now
it just returns ApplicationCacheStorage::singleton().

  • Misc/WebCache.mm:

(+[WebCache empty]):

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache maximumSize]):
(+[WebApplicationCache setMaximumSize:]):
(+[WebApplicationCache defaultOriginQuota]):
(+[WebApplicationCache setDefaultOriginQuota:]):
(+[WebApplicationCache originsWithCache]):
(webApplicationCacheStorage):

  • WebCoreSupport/WebApplicationCacheInternal.h: Added.
  • WebCoreSupport/WebApplicationCacheQuotaManager.mm:

(-[WebApplicationCacheQuotaManager usage]):
(-[WebApplicationCacheQuotaManager quota]):
(-[WebApplicationCacheQuotaManager setQuota:]):

  • WebView/WebView.mm:

(WebKitInitializeApplicationCachePathIfNecessary):

8:59 AM Changeset in webkit [182539] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.6

Merge r182537 - [GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed by the user
https://bugs.webkit.org/show_bug.cgi?id=143521

Reviewed by Martin Robinson.

This is a case we claim to support, but it only works if the
object has only one reference. In that case, when the user unrefs
it, the weak ref notify callback removes the object from the
cache. However, if the object has more than one ref, the cache
doesn't know the user unreffed it, and when clearing the cache we
try to remove more references than what the object actually has,
causing a crash in g_object_unref.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::clearObject):

8:54 AM Changeset in webkit [182538] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180216 - Use HashMap::add instead of get/contains + set in DOMObjectCache
https://bugs.webkit.org/show_bug.cgi?id=141558

Rubber-stamped by Žan Doberšek.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::getOrCreateDOMObjectCacheFrameObserver):
(WebKit::DOMObjectCache::put):

8:29 AM Changeset in webkit [182537] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed by the user
https://bugs.webkit.org/show_bug.cgi?id=143521

Reviewed by Martin Robinson.

This is a case we claim to support, but it only works if the
object has only one reference. In that case, when the user unrefs
it, the weak ref notify callback removes the object from the
cache. However, if the object has more than one ref, the cache
doesn't know the user unreffed it, and when clearing the cache we
try to remove more references than what the object actually has,
causing a crash in g_object_unref.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::clearObject):

8:11 AM Changeset in webkit [182536] by Alan Bujtas
  • 46 edits
    5 adds in trunk

Simple line layout: Add <br> support.
https://bugs.webkit.org/show_bug.cgi?id=139012

This patch enables RenderBlockFlows to use simple line layout on text content when <br> is present.
Simple text with <br> is a fairly common pattern on discussion(forum)-like web pages. This patch reduces memory usage
and speeds up layout for such content.

Source/WebCore:

PerformanceTest/layout/line-layout-simple.html shows more than 2x speedup, when each paragraph is modified by appending <br> to the end.
With <br> support enabled:

mean: 70.02391461289068 runs/s
median: 70.47986488932318 runs/s

While with <br> support disabled:

mean: 30.417295049468184 runs/s
median: 30.36517778760357 runs/s

Reviewed by Antti Koivisto.

Test: fast/text/simple-line-with-br.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

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

(WebCore::RenderBlockFlow::setSelectionState):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):

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

(WebCore::simpleLineLayout):
(WebCore::ensureLineBoxes):
(WebCore::RenderLineBreak::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderLineBreak::positionForPoint):
(WebCore::RenderLineBreak::setSelectionState):
(WebCore::RenderLineBreak::linesBoundingBox):
(WebCore::RenderLineBreak::absoluteRects):
(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects):

  • rendering/RenderLineBreak.h:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::consumeLineBreakIfNeeded):
(WebCore::SimpleLineLayout::skipWhitespaceIfNeeded):
(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::forceFragmentToLine):
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::create):

  • rendering/SimpleLineLayoutFlowContents.cpp:

(WebCore::SimpleLineLayout::initializeSegments):
(WebCore::SimpleLineLayout::FlowContents::segmentForRenderer): Deleted.

  • rendering/SimpleLineLayoutFlowContents.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::showLineLayoutForFlow):

  • rendering/SimpleLineLayoutResolver.cpp:

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

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator--):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::EndOfSegmentSetter::EndOfSegmentSetter):
(WebCore::SimpleLineLayout::EndOfSegmentSetter::~EndOfSegmentSetter):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLastInRenderer):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::TextFragmentIterator::isSoftLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isHardLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isLineBreak): Deleted.

LayoutTests:

Test output changes in 2 different ways:

  1. Repositioned RenderLineBreak elements. (1px wide <br> is the result of integral pixel snapping)
  2. Removed empty content (<br>).

Reviewed by Antti Koivisto.

  • fast/text/simple-line-with-br-expected.html: Added.
  • fast/text/simple-line-with-br.html: Added.
  • platform/mac-mavericks/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac-mavericks/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/mac/fast/dom/focus-contenteditable-expected.txt:
  • platform/mac/fast/forms/range/slider-padding-expected.txt: Added.
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/mac/fast/text/svg-font-face-with-kerning-expected.txt: Added.
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/mac/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:
7:03 AM Changeset in webkit [182535] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Lazily initialize LogToSystemConsole flag to reduce memory usage
https://bugs.webkit.org/show_bug.cgi?id=143506

Reviewed by Mark Lam.

Only call into CF preferences code when we need to in order to reduce memory usage.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::logToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::setLogToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::initializeLogToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):

3:32 AM Changeset in webkit [182534] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] compress property for the HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143518

Reviewed by Carlos Garcia Campos.

Added a compress property so the default behavior or not
requesting content encoded to the server can be overridden if
needed. This is useful for adaptive streaming playback.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStart):

3:12 AM Changeset in webkit [182533] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175088 - Do not include GraphicsContext3D.h when 3D_GRAPHICS is not used.
<https://webkit.org/b/137969>.

Patch by Milan Crha <mcrha@redhat.com> on 2014-10-22
Reviewed by Carlos Garcia Campos.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1:44 AM Changeset in webkit [182532] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175087 - Do not build WidgetBackingStoreGtkX11 when not used.
<https://webkit.org/b/137972>.

Patch by Milan Crha <mcrha@redhat.com> on 2014-10-22
Reviewed by Carlos Garcia Campos.

  • platform/gtk/WidgetBackingStoreGtkX11.cpp:
  • platform/gtk/WidgetBackingStoreGtkX11.h:
1:20 AM Changeset in webkit [182531] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r174922 - Ensure attached frame count doesn't exceed the maximum allowed frames
https://bugs.webkit.org/show_bug.cgi?id=136457

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: fast/frames/exponential-frames.html

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::isURLAllowed):

LayoutTests:

  • fast/frames/exponential-frames-expected.txt: Added.
  • fast/frames/exponential-frames.html: Added.
1:16 AM Changeset in webkit [182530] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r174807 - REGRESSION (r169024): Undetermined text is not displayed in the search field of Adobe Help Website
https://bugs.webkit.org/show_bug.cgi?id=137679
rdar://problem/18450335

Reviewed by Enrica Casucci.

Source/WebCore:

Test: platform/mac/editing/input/selected-composed-text-painting.html

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): We do not paint

selection beckground for unconfirmed text with underlines, so we should use a regular
style for text painting, as well.

LayoutTests:

  • platform/mac/editing/input/selected-composed-text-painting-expected.html: Added.
  • platform/mac/editing/input/selected-composed-text-painting.html: Added.
1:14 AM Changeset in webkit [182529] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r174720 - REGRESSION (r159208): Crash when clicking scrubber after navigating away/back to video
https://bugs.webkit.org/show_bug.cgi?id=137715

Reviewed by Darin Adler.

Simple null-check of m_player in refreshCachedTime.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::refreshCachedTime):

1:08 AM Changeset in webkit [182528] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.4

Merge r174712 - URLs that start with http:/// and https:/// lose two slashes when parsed, causing assertion failure and inconsistent behavior
https://bugs.webkit.org/show_bug.cgi?id=137718

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Added cases to fast/loader/url-parse-1.html.

  • platform/URL.cpp:

(WebCore::URL::parse): In hierarchical schemes other than file:, ignore any additional
slashes after the :, as prescribed by the authority-ignore-slashes state in the current
URL spec.

LayoutTests:

  • fast/loader/url-parse-1-expected.txt: Updated results.
  • fast/loader/url-parse-1.html: Added a few test cases.
  • fast/url/file-http-base-expected.txt: Updated results.
  • fast/url/host-expected.txt: Ditto.
  • fast/url/invalid-urls-utf8-expected.txt: Ditto.
  • fast/url/relative-expected.txt: Ditto.
  • fast/url/standard-url-expected.txt: Ditto.
1:04 AM Changeset in webkit [182527] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r174684 - [XHR] Abort method execution when m_loader->cancel() in internalAbort() caused reentry
https://bugs.webkit.org/show_bug.cgi?id=126975

Patch by Youenn Fablet <youennf@gmail.com> on 2014-10-14
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Merging https://chromium.googlesource.com/chromium/blink/+/0d75daf2053631518606ae15daaece701a25b2c4
Ensuring new test from https://codereview.chromium.org/76133002/ is passing.

Test: http/tests/xmlhttprequest/reentrant-cancel-abort.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open): exit early if internalAbort asks so
(WebCore::XMLHttpRequest::abort): exit early if internalAbort asks so
(WebCore::XMLHttpRequest::internalAbort): ask calling function to exit early if a new loader is created during the cancellation of the loader (potential reentrant case through window.onload callback)
(WebCore::XMLHttpRequest::didTimeout): exit early if internalAbort asks so

  • xml/XMLHttpRequest.h:

LayoutTests:

Adding reentrant-cancel-abort.html (from https://codereview.chromium.org/76133002/)
that crashes without the patch
Updated reentrant-cancel.html test to expect the exception
that is now hit in initSend function (since a XHR open() call is aborted)

  • http/tests/xmlhttprequest/reentrant-cancel-abort-expected.txt: Added.
  • http/tests/xmlhttprequest/reentrant-cancel-abort.html: Added.
  • http/tests/xmlhttprequest/reentrant-cancel.html:
12:46 AM Changeset in webkit [182526] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r174137 - Stack overflow with enormous SVG filter
https://bugs.webkit.org/show_bug.cgi?id=63290

Prevent building an SVG filter if it has more than 200 FilterEffect nodes in its map
regardless whether they will be connected to its lastEffect or not. Also discard any
filter which has more 100 contributing FilterEffect nodes in its tree.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-09-30
Reviewed by Dean Jackson.

Tests: svg/filters/svg-deeply-nested-crash.html

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::collectEffects):
(WebCore::FilterEffect::totalNumberOfEffectInputs):

  • platform/graphics/filters/FilterEffect.h:

-- Add a method to return the total number of input FilterEffect's contributing to a FilterEffect.

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives):
-- Do not build a filter if it has more than 200 FilterEffects in its map.
(WebCore::RenderSVGResourceFilter::applyResource):
-- Discard a filter after it was built if it has more than 100 FilterEffects in its tree.

LayoutTests:
Stack overflow with enormous SVG filter.
https://bugs.webkit.org/show_bug.cgi?id=63290.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-09-30
Reviewed by Dean Jackson.

Test if an SVG filter with deeply nested tree of FilterEffects can be loaded
with no crash. Make sure other valid filters can still be referenced by SVG
drawing elements. An SVG Filter will be ignored if the number of effects in
its map is greater than 200 or the total number of effects connected to its
last effect is greater than 100.

  • svg/filters/svg-deeply-nested-crash-expected.txt: Added.
  • svg/filters/svg-deeply-nested-crash.html: Added.
12:44 AM Changeset in webkit [182525] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove CSS functions min() and max() which had been dropped from specification
https://bugs.webkit.org/show_bug.cgi?id=143440

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

No new tests, No Behavior changes.

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcValue::create):

  • css/CSSParser.cpp:

(WebCore::CSSParser::isCalculation):

12:29 AM Changeset in webkit [182524] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r173848 - WebSocket crash when a connection is closed from server side
https://bugs.webkit.org/show_bug.cgi?id=137009
rdar://problem/18333977
rdar://problem/12708225

Reviewed by Brady Eidson.

I don't think that this can be tested with our test server.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel): Added logging.
(WebCore::WebSocketChannel::~WebSocketChannel): Ditto.
(WebCore::WebSocketChannel::close): Protect self, because startClosingHandshake
can release the last reference.
(WebCore::WebSocketChannel::fail): Added an assertion that the channel is always
closed after this function.
(WebCore::WebSocketChannel::startClosingHandshake): Protect self, and don't change
the stack from closed back to closing if after failing to send closing handshake.
(WebCore::WebSocketChannel::processOutgoingFrameQueue): Protect self.

12:09 AM Changeset in webkit [182523] by Philippe Normand
  • 2 edits
    1 add in trunk/Source/WebCore

[GStreamer] extra-headers and keep-alive properties for HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143480

Reviewed by Carlos Garcia Campos.

Keep the resource loader around when persistent HTTP connection
support is enabled. The keep-alive property is set to false by
default. Also before sending the HTTP request we now check the
contents of the extra-headers GstStructure and set additional
headers based on the structure contents.

Patch inspired by GStreamer's souphttpsrc element.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init):
(webKitWebSrcFinalize):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop): Clear resource loader only for non-persistent connections.
(webKitWebSrcSetExtraHeader): Utility function to append headers
to an existing request based on a GValue contents.
(webKitWebSrcProcessExtraHeaders): Parse a GValue and set headers
based on its contents.
(webKitWebSrcStart): Extra headers and persistent connection
support. The resource loader is now lazily initialized here.

12:02 AM WindowsWithoutCygwin edited by mmaxfield@apple.com
(diff)

Apr 7, 2015:

11:41 PM Changeset in webkit [182522] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix the build.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/spi/cg/CoreGraphicsSPI.h:
11:03 PM Changeset in webkit [182521] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another iOS build fix after r182516.

I missed another use of MAC_OS_X_VERSION_MIN_REQUIRED without a
PLATFORM(MAC) check.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:
10:57 PM Changeset in webkit [182520] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Bug 142887 - role progress bar does not support indeterminate state
https://bugs.webkit.org/show_bug.cgi?id=142887

Patch by Michael Peechatt <mpeechatt@gmail.com> on 2015-04-07
Reviewed by Chris Fleizach.

Source/WebCore:

Test: platform/mac/accessibility/progressbar-indeterminate.html

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
When getting min or max value of an indeterminate progress indicator, return 0.
This is so VoiceOver will recognize it as indeterminate.

LayoutTests:

  • platform/mac/accessibility/progressbar-indeterminate-expected.txt: Added.
  • platform/mac/accessibility/progressbar-indeterminate.html: Added.

Test that checks if 0 is returned for indetermiate progress indicators when
aria min and max values are non zero.

10:44 PM Changeset in webkit [182519] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative iOS build fix after r182516.

Add #if PLATFORM(MAC) checks.

  • platform/spi/cg/CoreGraphicsSPI.h:
10:31 PM Changeset in webkit [182518] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Try to fix incremental builds by forcing *InternalSettings* to get
regenerated.

  • testing/InternalSettings.idl:
9:24 PM Changeset in webkit [182517] by Chris Dumez
  • 4 edits
    2 adds in trunk

Open WebSockets should not prevent a page from entering PageCache
https://bugs.webkit.org/show_bug.cgi?id=143505
<rdar://problem/19923085>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Open WebSockets should not prevent a page from entering PageCache. This
is currently causing mobile.nytimes.com to not be page-cacheable.

In this patch, We close open WebSockets when entering the page cache
and fire the "close" events after resuming, similarly to what we did
for XMLHttpRequest in r181480. This gives a chance for the content to
handle the 'close' event (with wasClean being false and code being
1006) in order to reopen the connection if necessary.

Test: http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::canSuspend):
(WebCore::WebSocket::suspend):
(WebCore::WebSocket::resume):
(WebCore::WebSocket::resumeTimerFired):
(WebCore::WebSocket::didClose):

  • Modules/websockets/WebSocket.h:

LayoutTests:

Add a layout test to check that an open WebSocket does not prevent a
page from entering page cache and that a 'close' event is fired after
resuming (restoring from the page cache).

  • http/tests/websocket/tests/hybi/closed-when-entering-page-cache-expected.txt: Added.
  • http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html: Added.
9:15 PM Changeset in webkit [182516] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Add experimental code to use custom font dilation when rendering into non-opaque contexts
https://bugs.webkit.org/show_bug.cgi?id=143508

Reviewed by Sam Weinig.

Add GraphicsContext::setAntialiasedFontDilationEnabled(), and set it to true
when rendering into a compositing layer which is not opaque (at the same location
where we disable font smoothing).

If Settings::antialiasedFontDilationEnabled() is true, when rendering non-smoothed
text (and if CSS hasn't opted into antialiased mode), use custom font dilation
parameters, chosen using a light/medium/dark heuristic, to make this text
match more closely with LCD-smoothed text.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setAntialiasedFontDilationEnabled): Set global state
in FontCascade (which can't easily get at Settings). This it not ideal,
but is temporary.

  • page/Settings.h:

(WebCore::Settings::antialiasedFontDilationEnabled):

  • page/Settings.in: Can't autogenerate this setting any more.
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::setAntialiasedFontDilationEnabled): Set the global.
(WebCore::FontCascade::antialiasedFontDilationEnabled):

  • platform/graphics/FontCascade.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setAntialiasedFontDilationEnabled): Set graphics state
to say that we should do dilation of antialiased text.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContext::antialiasedFontDilationEnabled):

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

(PlatformCALayer::drawLayerContents): If the layer is not opaque, enable the
dilated text code path.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::dilationSizeForTextColor): Heuristic (values chosen empirically) to
computed custom dilation based on foreground color.
(WebCore::FontCascade::drawGlyphs): Set the custom dilation parameters, and the
antialiasing state if we're not doing smoothing, and CSS hasn't opted into the
antialiased path.

  • platform/spi/cg/CoreGraphicsSPI.h: New SPI.
8:40 PM Changeset in webkit [182515] by ap@apple.com
  • 2 edits in trunk/Tools

PageVisibilityStateWithWindowChanges should only be enabled on Yosemite
rdar://problem/20461342

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
8:39 PM Changeset in webkit [182514] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Address kling's in-person comment to notify users when the new run status is saved in the database.

  • public/v2/app.js:

(App.PaneController._selectedItemIsMarkedOutlierDidChange)

  • public/v2/chart-pane.css: Fixed a typo.
6:51 PM Changeset in webkit [182513] by commit-queue@webkit.org
  • 9 edits
    3 deletes in trunk

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

caused debug test failures (Requested by alexchristensen on
#webkit).

Reverted changeset:

"Block popups from content extensions."
https://bugs.webkit.org/show_bug.cgi?id=143497
http://trac.webkit.org/changeset/182511

6:08 PM Changeset in webkit [182512] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] System fonts do not get correct tracking
https://bugs.webkit.org/show_bug.cgi?id=143395

Reviewed by Ryosuke Niwa.

Inside FontPlatformData, we have two CTFonts. If the user has specified
-webkit-system-font, we will pass in a CTFont, and the FontPlatformData
will wrap it. However, we will then roundtrip through CGFont in order
to create a second CTFont. We were basing our tracking and system
font knowledge off of this round-tripped font instead of the original font.

Note that this design is terrible and needs to be overhauled.
FontPlatformData should only have a single platform font inside it.

This patch also caches whether or not a font is a system font.

No new tests because it is impossible to test the tracking of the
system font in a robust way.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font): Rearrange member variables.

  • platform/graphics/Font.h: Move member variables around for better

packing, and cache whether or not the font is a system font.

  • platform/graphics/FontData.h: Add comment
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit): Cache whether or not the font is a system
font.
(WebCore::hasCustomTracking): Use cached value.
(WebCore::canUseFastGlyphAdvanceGetter):
(WebCore::Font::platformWidthForGlyph):

5:38 PM Changeset in webkit [182511] by commit-queue@webkit.org
  • 9 edits
    3 adds in trunk

Block popups from content extensions.
https://bugs.webkit.org/show_bug.cgi?id=143497

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-07
Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/popups.html

  • loader/ResourceLoadInfo.cpp:

(WebCore::readResourceType):

  • loader/ResourceLoadInfo.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/UserContentController.cpp:

(WebCore::UserContentController::actionsForResourceLoad):

  • page/UserContentController.h:

Check content extensions before opening a window.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Added popup test.

LayoutTests:

  • http/tests/contentextensions/popups-expected.txt: Added.
  • http/tests/contentextensions/popups.html: Added.
  • http/tests/contentextensions/popups.html.json: Added.
4:53 PM Changeset in webkit [182510] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5.17-branch/Source

Versioning.

4:42 PM Changeset in webkit [182509] by benjamin@webkit.org
  • 6 edits in trunk

Get the features.json files ready for open contributions
https://bugs.webkit.org/show_bug.cgi?id=143436

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • features.json:

Source/WebCore:

  • features.json:

Tools:

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

(JSONFeaturesChecker.check):
Extend the syntax checking a bit, but leave everything non-mandatory
very loose until we figure what fields are important.

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

More unreviewed fixing API tests.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Don't check for javascript protocol.

4:33 PM Changeset in webkit [182507] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.17.1

New tag.

4:27 PM Changeset in webkit [182506] by bshafiei@apple.com
  • 7 edits in branches/safari-600.5.17-branch/Source

Merged r181628. rdar://problem/20394343

4:21 PM Changeset in webkit [182505] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] never update caption user style sheet during parsing
https://bugs.webkit.org/show_bug.cgi?id=143499

Reviewed by Jer Noble.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged): Ignore a

"preferences changed" notification fired while registering for said notification, we
already create and insert the style sheet after a brief delay anyway.

  • page/CaptionUserPreferencesMediaAF.h:
4:14 PM Changeset in webkit [182504] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5.17-branch/Source

Versioning.

4:10 PM Changeset in webkit [182503] by bshafiei@apple.com
  • 1 copy in branches/safari-600.5.17-branch

New Branch.

4:09 PM Changeset in webkit [182502] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r182494.

  • platform/win/ContextMenuItemWin.cpp:

(WebCore::ContextMenuItem::ContextMenuItem): Deleted.

3:56 PM Changeset in webkit [182501] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setFixedLayoutSize:]):

3:49 PM Changeset in webkit [182500] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Unreviewed fixing API tests.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • platform/URL.cpp:

(WebCore::URL::init):

  • platform/URL.h:

(WebCore::URL::protocolIsData):
(WebCore::URL::protocolIsJavaScript): Deleted.
Revert part of r182492 that changed URL.h.

3:37 PM Changeset in webkit [182499] by timothy_horton@apple.com
  • 10 edits
    1 add in trunk

Expose and test fixedLayoutSize via modern WebKit SPI
https://bugs.webkit.org/show_bug.cgi?id=143500

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isFixedLayoutEnabled]):
(-[WKWebView _setFixedLayoutEnabled:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):

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

(-[WKView _isFixedLayoutEnabled]):
(-[WKView _setFixedLayoutEnabled:]):
(-[WKView _fixedLayoutSize]):
(-[WKView _setFixedLayoutSize:]):
Add API for adjusting the fixed layout size, and whether or not we use it.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Repair a mistake I made in r139822, where I brought odd TILED_BACKING_STORE-only
logic (which disables scrollbars if fixedLayoutSize is enabled) to the rest of the ports.
Put it back as TILED_BACKING_STORE-only.

Persist the fixedLayoutSize through view creation; we already persist the enabled state,
but not the size, which doesn't make any sense.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::fixedLayoutSize):

  • WebProcess/WebPage/WebPage.h:

Add a fixedLayoutSize() getter.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/FixedLayoutSize.mm: Added.

(-[FixedLayoutSizeNavigationDelegate webView:didFinishNavigation:]):
(TEST):
Add a test that verifies that fixedLayoutSize works at all, that
it persists through a navigation, and that turning it back off reverts to
laying out at the size of the view.

3:09 PM Changeset in webkit [182498] by fpizlo@apple.com
  • 20 edits
    1 add in trunk/Source/JavaScriptCore

Constant folding of typed array properties should be handled by AI rather than strength reduction
https://bugs.webkit.org/show_bug.cgi?id=143496

Reviewed by Geoffrey Garen.

Handling constant folding in AI is better because it precludes us from having to fixpoint the CFA
phase and whatever other phase did the folding in order to find all constants.

This also removes the TypedArrayWatchpoint node type because we can just set the watchpoint
directly.

This also fixes a bug in FTL lowering of GetTypedArrayByteOffset. The bug was previously not
found because all of the tests for it involved the property getting constant folded. I found that
the codegen was bad because an earlier version of the patch broke that constant folding. This
adds a new test for that node type, which makes constant folding impossible by allocating a new
typed array every type. The lesson here is: if you write a test for something, run the test with
full IR dumps to make sure it's actually testing the thing you want it to test.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::tryGetFoldableViewForChild1): Deleted.

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

(JSC::DFG::Node::hasTypedArray): Deleted.
(JSC::DFG::Node::typedArray): Deleted.

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::foldTypedArrayPropertyToConstant): Deleted.
(JSC::DFG::StrengthReductionPhase::prepareToFoldTypedArray): Deleted.

  • dfg/DFGWatchpointCollectionPhase.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetTypedArrayByteOffset):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):

  • tests/stress/fold-typed-array-properties.js:

(foo):

  • tests/stress/typed-array-byte-offset.js: Added.

(foo):

2:42 PM Changeset in webkit [182497] by andersca@apple.com
  • 7 edits in trunk/Source/WebCore

More work on making the application cache storage be per page
https://bugs.webkit.org/show_bug.cgi?id=143498

Reviewed by Andreas Kling.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::create):
(WebCore::ApplicationCacheStorage::singleton):

  • loader/appcache/ApplicationCacheStorage.h:
  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::applicationCacheStorage):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration): Deleted.

  • page/PageConfiguration.h:
2:42 PM Changeset in webkit [182496] by rniwa@webkit.org
  • 14 edits
    1 add in trunk/Websites/perf.webkit.org

Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Added UI to mark a data point as an outlier as well as a button to toggle the visibility of outliers.
Added a new privileged API /privileged-api/update-run-status to store this boolean flag.

  • init-database.sql: Added run_marked_outlier column to test_runs table.
  • public/admin/tests.php:
  • public/api/runs.php:

(main): Only emit Cache-Control and Expires headers in v1 UI.
(RunsGenerator::format_run): Emit markedOutlier.

  • public/include/admin-header.php:
  • public/include/db.php:

(Database::is_true): Made it static.

  • public/include/manifest.php:

(Manifest::platforms):

  • public/index.html: Call into /api/runs/ with ?cache=true.
  • public/privileged-api/update-run-status.php: Added.

(main): Updates the newly added column in test_runs table.

  • public/v2/app.js:

(App.Pane._fetch):
(App.Pane.refetchRuns): Extracted from App.Pane._fetch.
(App.Pane._didFetchRuns): Renamed from _updateChartData.
(App.Pane._setNewChartData): Added. Pick the right time series based based on the value of showOutlier.
Cloning chartData is necessary when toggling the outlier visibility or using statistics tools because
the interactive chart component only observes changes to chartData and not individual properties of it.
(App.Pane._highlightPointsMarkedAsOutlier): Added. Highlight points marked as outliers.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Call to _setNewChartData replaced the code to
clone chartData here.

(App.PaneController.actions.toggleShowOutlier): Toggle the visibility of points marked as outliers by
invoking App.Pane._setNewChartData.
(App.PaneController._detailsChanged): Don't hide the analysis pane when details changed since keep
opening the pane for marking points as outliers would be annoying.
(App.PaneController._updateCanAnalyze): Update 'cannotMarkOutlier' as well as 'cannotAnalyze'.
(App.PaneController.selectedMeasurement): Added.
(App.PaneController.showOutlierTitle): Added.
(App.PaneController._selectedItemIsMarkedOutlierDidChange): Added. Call out to setMarkedOutlier to
mark the selected point as an outlier via the newly added privileged API.

  • public/v2/chart-pane.css: Updated styles.
  • public/v2/data.js:

(PrivilegedAPI._post): Report the semantic errors.
(Measurement.prototype.markedOutlier): Added.
(Measurement.prototype.setMarkedOutlier): Added. Uses PrivilegedAPI to update the database.
(RunsData.prototype.timeSeriesByCommitTime): Added a new argument, includeOutliers, to indicate
whether the time series should include measurements marked as outliers or not.
(RunsData.prototype.timeSeriesByBuildTime): Ditto.
(RunsData.prototype._timeSeriesByTimeInternal): Extracted from timeSeriesByCommitTime and
timeSeriesByBuildTime to share code. Now ignores measurements marked as outliers if needed.

  • public/v2/index.html: Added an icon for showing and hiding outliers. Also added a checkbox to

mark individual points as outliers.

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._selectClosestPointToMouseAsCurrentItem): Re-enable the distance
heuristics that takes vertical closeness into account. This heuristics is more useful when marking
some points as outliers. This heuristics was disabled because the behavior was unpredictable but
with the arrow key navigation support, this is no longer an issue.

  • public/v2/manifest.js:

(App.Manifest._formatFetchedData): Added showOutlier to the chart data. This function dynamically
updates the time series in this chart data in order to include or exclude outliers.

2:34 PM Changeset in webkit [182495] by mmirman@apple.com
  • 33 edits
    1 add in trunk

Source and stack information should get appended only to native errors
Source/JavaScriptCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Appending stack, source, line, and column information to an object whenever that object is thrown
is incorrect because it violates the ecma script standard for the behavior of throw. Suppose for example
that the object being thrown already has one of these properties or is frozen. Adding the properties
would then violate the frozen contract or overwrite those properties. Other browsers do not do this,
and doing this causes unnecessary performance hits in code with heavy use of the throw construct as
a control flow construct rather than just an error reporting mechanism.

Because WebCore adds "native" errors which do not inherit from any JSC native error,
appending the error properties as a seperate call after construction of the error is required
to avoid having to manually truncate the stack and gather local source information due to
the stack being extended by a nested call to construct one of the native jsc error.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • interpreter/Interpreter.h:
  • parser/ParserError.h:

(JSC::ParserError::toErrorObject):

  • runtime/CommonIdentifiers.h:
  • runtime/Error.cpp:

(JSC::createError):
(JSC::createEvalError):
(JSC::createRangeError):
(JSC::createReferenceError):
(JSC::createSyntaxError):
(JSC::createTypeError):
(JSC::createNotEnoughArgumentsError):
(JSC::createURIError):
(JSC::createOutOfMemoryError):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset): Added.
(JSC::addErrorInfo): Added special case for appending complete error info
to a newly constructed error object.

  • runtime/Error.h:
  • runtime/ErrorConstructor.cpp:

(JSC::Interpreter::constructWithErrorConstructor):
(JSC::Interpreter::callErrorConstructor):

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToError): Moved from VM.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset):
(JSC::ErrorInstance::finishCreation):

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::create):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::finishCreation):

  • runtime/ExceptionFuzz.cpp:

(JSC::doExceptionFuzzing):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):
(JSC::createInvalidInParameterError):
(JSC::createInvalidInstanceofParameterError):
(JSC::createNotAConstructorError):
(JSC::createNotAFunctionError):
(JSC::createNotAnObjectError):
(JSC::throwOutOfMemoryError):
(JSC::createStackOverflowError): Deleted.
(JSC::createOutOfMemoryError): Deleted.

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

(JSC::constructArrayBuffer):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):

  • runtime/NativeErrorConstructor.cpp:

(JSC::Interpreter::constructWithNativeErrorConstructor):
(JSC::Interpreter::callNativeErrorConstructor):

  • runtime/VM.cpp:

(JSC::VM::throwException):
(JSC::appendSourceToError): Moved to Error.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index): Deleted.

  • tests/stress/freeze_leek.js: Added.

Source/WebCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Covered by existing tests.

Sets line, column, source and stack information for DOMExceptions as
expected by the webinspector for native errors.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::setDOMException):

LayoutTests:

and should be added after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Fixes tests to throw new Errors such that they will contain line, column, and stack information
as expected, and fixes the column in the error in the expected output.

  • http/tests/w3c/resources/testharness.js: Other browsers don't expect stack information

with this test, but we do, and so the AssertionError should include stack information gathered from Error.
This could also have been fixed by changing expectations, but its a good idea to check the stack anyway.

  • js/dom/exception-linenums-in-html-1.html: Throw "new Error()" rather than "{}".
  • js/dom/exception-linenums-in-html-2.html: ditto.
  • js/dom/exception-linenums-in-html-3.html: ditto.
  • js/dom/script-tests/stack-trace.js: ditto.

(throwError): ditto.
(h): ditto.
(inlineableThrow): ditto.
(dfgThing.get willThrow): ditto.
(dfgThing.willThrowFunc): ditto.

  • js/dom/stack-trace-expected.txt: fixed error column expectation.
  • js/exception-properties-expected.txt: ditto.
  • js/script-tests/exception-linenums.js:

(exceptionInFunction): throw "new Error()" rather than "{}".
(firstPropIsGetter.get getter): ditto
(secondPropIsGetter.get getter): ditto
(firstPropIsSetter.set setter): ditto
(secondPropIsSetter.set setter): ditto

  • js/script-tests/exception-properties.js: now checking that column, line, and sourceURL are existant on a "new Error"

since we now add these at error construction rather than at error throwing.

  • platform/mac/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt: fixed expectation to match.
  • platform/mac/http/tests/media/media-source/mediasource-sourcebuffer-mode-expected.txt: ditto.
2:29 PM Changeset in webkit [182494] by beidson@apple.com
  • 10 edits in trunk/Source

ContextMenuItem refactoring
https://bugs.webkit.org/show_bug.cgi?id=143485

Reviewed by Beth Dakin.

Source/WebCore:

  • platform/ContextMenuItem.h:

(WebCore::ContextMenuItem::isNull):

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::ContextMenuItem):

  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::platformDescription):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::releasePlatformDescription): Deleted.
(WebCore::ContextMenuItem::getPlatformDescription): Deleted.

  • platform/mac/ContextMenuMac.mm:

(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::insertItem):
(WebCore::platformMenuDescription):

  • platform/win/ContextMenuItemWin.cpp:

(WebCore::ContextMenuItem::ContextMenuItem):

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::contextMenuItemSelected):

Source/WebKit2:

  • Shared/mac/NativeContextMenuItem.mm:

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

2:28 PM Changeset in webkit [182493] by Joseph Pecoraro
  • 15 edits in trunk

Web Inspector: ES6: Show Symbol properties on Objects
https://bugs.webkit.org/show_bug.cgi?id=141279

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Runtime.json:

Give PropertyDescriptor a reference to the Symbol RemoteObject
if the property is a symbol property.

  • inspector/InjectedScriptSource.js:

Enumerate symbol properties on objects.

Source/WebInspectorUI:

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

(WebInspector.PropertyDescriptor.get symbol):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.wrappedCallback):
Update new PropertyDescriptor call site.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement._logSymbolProperty):
Provide a context menu for rows with Symbol properties to log
the Symbol property, and therefore get a reference to it.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.comparePropertyDescriptors):
Better handle symbol properties in sorting.

  • UserInterface/Views/TypePropertiesSection.js:

(WebInspector.TypePropertiesSection.PropertyComparator):
Return better value when values are equal.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/model/remote-object-get-properties.html:
  • inspector/model/remote-object.html:

Update tests to include objects with Symbol properties.

2:17 PM Changeset in webkit [182492] by achristensen@apple.com
  • 7 edits in trunk/Source/WebCore

Optimize content extensions interpreting speed.
https://bugs.webkit.org/show_bug.cgi?id=143490

Reviewed by Brady Eidson.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Measure total time added by content extensions.

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
When jumping to the root, don't re-add all the actions.

  • contentextensions/DFABytecodeCompiler.h:
  • platform/URL.cpp:

(WebCore::URL::init):

  • platform/URL.h:

(WebCore::URL::protocolIsJavaScript): Added.

2:11 PM Changeset in webkit [182491] by Simon Fraser
  • 9 edits in trunk/Source

Add a new setting, AntialiasedFontDilationEnabled, exposed via WK2.
https://bugs.webkit.org/show_bug.cgi?id=143495

Reviewed by Tim Horton.
Source/WebCore:

Add a new Setting, antialiasedFontDilationEnabled, which defaults to true. This
will be used in an upcoming patch.

  • page/Settings.in:

Source/WebKit2:

Exposed the antialiasedFontDilationEnabled setting via WK C SPI and Objective-C SPI.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAntialiasedFontDilationEnabled):
(WKPreferencesGetAntialiasedFontDilationEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _antialiasedFontDilationEnabled]):
(-[WKPreferences _setAntialiasedFontDilationEnabled:]):

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

(WebKit::WebPage::updatePreferences):

1:50 PM Changeset in webkit [182490] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.25.1/Source/WebCore

Merged r182292. rdar://problem/20407648

1:48 PM Changeset in webkit [182489] by aestes@apple.com
  • 7 edits in trunk/Source/WebCore

[Content Filtering] Add logging
https://bugs.webkit.org/show_bug.cgi?id=143470

Reviewed by Daniel Bates.

Added a new ContentFiltering logging channel, and started logging some useful diagnostic messages.

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::~ContentFilter):
(WebCore::ContentFilter::willSendRequest):
(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::responseReceived):
(WebCore::ContentFilter::dataReceived):
(WebCore::ContentFilter::notifyFinished):
(WebCore::ContentFilter::didDecide):

  • platform/Logging.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::enabled):
(WebCore::NetworkExtensionContentFilter::unblockHandler):
(WebCore::NetworkExtensionContentFilter::handleDecision):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::enabled):
(WebCore::ParentalControlsContentFilter::updateFilterState):

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::enabled):
(WebCore::MockContentFilter::unblockHandler):
(WebCore::MockContentFilter::maybeDetermineStatus):

1:45 PM Changeset in webkit [182488] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.25.1/Source

Versioning.

1:42 PM Changeset in webkit [182487] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.25.1

New tag.

1:23 PM Changeset in webkit [182486] by eric.carlson@apple.com
  • 16 edits in trunk/Source/WebCore

[Mac] video playing to external device should not be interrupted
https://bugs.webkit.org/show_bug.cgi?id=143492

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePanelTransitionEnd): Drive-by fix to make sure the controls are

not hidden if the opacity timer is primed before they go into a state where they should
never be hidden.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayToWirelessPlaybackTarget): Make it const.
(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): New.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::canPlayToWirelessPlaybackTarget): New. Short-circuit call to

client when we already know the answer.

(WebCore::HTMLMediaSession::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::stopPlayingToPlaybackTarget): Ditto.

  • html/HTMLMediaSession.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::canPlayToWirelessPlaybackTarget): Deleted, moved inline and neutered

because only HTMLMediaSession needs to use them.

(WebCore::MediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::MediaSession::stopPlayingToPlaybackTarget): Ditto.

  • platform/audio/MediaSession.h:

(WebCore::MediaSession::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaSession::startPlayingToPlaybackTarget):
(WebCore::MediaSession::stopPlayingToPlaybackTarget):
(WebCore::MediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSessionClient::isPlayingToWirelessPlaybackTarget):

  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::sessionShouldBeginPlayingToWirelessPlaybackTarget): New.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): Don't interrupt an active session

playing to a target device.

  • platform/audio/MediaSessionManager.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::isPlayingToWirelessPlaybackTarget): New, passthrough.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::isPlayingToWirelessPlaybackTarget):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayToWirelessPlaybackTarget):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Explicitly call

when passed a nil or inactive target context.

(WebCore::MediaPlayerPrivateAVFoundationObjC::startPlayingToPlaybackTarget): Add logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::stopPlayingToPlaybackTarget): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): New. Return

true when playing with an active context.

(WebCore::playerKVOProperties): "outputContext" is not observable.

1:14 PM Changeset in webkit [182485] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Should only propagate pressure events with relevant phases
https://bugs.webkit.org/show_bug.cgi?id=143494
-and corresponding-
rdar://problem/20453738

Reviewed by Tim Horton.

We only care about the changed, began, and ended phases.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):

12:50 PM Changeset in webkit [182484] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
12:41 PM Changeset in webkit [182483] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Make it possible to enable LLVM FastISel
https://bugs.webkit.org/show_bug.cgi?id=143489

Reviewed by Michael Saboff.

The decision to enable FastISel is made by Options.h|cpp, but the LLVM library can disable it if it finds that it is built
against a version of LLVM that doesn't support it. Thereafter, JSC::enableLLVMFastISel is the flag that tells the system
if we should enable it.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • llvm/InitializeLLVM.cpp:

(JSC::initializeLLVMImpl):

  • llvm/InitializeLLVM.h:
  • llvm/InitializeLLVMLinux.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/InitializeLLVMMac.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/InitializeLLVMPOSIX.cpp:

(JSC::getLLVMInitializerFunctionPOSIX):
(JSC::initializeLLVMPOSIX): Deleted.

  • llvm/InitializeLLVMPOSIX.h:
  • llvm/InitializeLLVMWin.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/LLVMAPI.cpp:
  • llvm/LLVMAPI.h:
  • llvm/library/LLVMExports.cpp:

(initCommandLine):
(initializeAndGetJSCLLVMAPI):

  • runtime/Options.cpp:

(JSC::Options::initialize):

11:49 AM CommitterTips edited by Michael Catanzaro
WebKit2 owners exist now, so don't advise reviewers otherwise (diff)
11:35 AM Changeset in webkit [182482] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: HierarchicalPathNavigationItem's additionalClassNames should be _additionalClassNames
https://bugs.webkit.org/show_bug.cgi?id=143487

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames):

11:06 AM Changeset in webkit [182481] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Bots complain about missing /etc/catalog
https://bugs.webkit.org/show_bug.cgi?id=143484

Reviewed by Chris Dumez.

The libxml2 build on Mac, iOS, and Windows does not provide the set
of default catalog files. We do not actually need these for our
purposes, but we get warnings and some bot flakiness because they
are not present.

We can avoid both problems the same way the Mac and iOS ports do,
by setting the XML_CATALOG_FILES environment variable to 'empty string',
which avoid the warnings and bot problems.

  • Scripts/webkitpy/port/win.py:

(WinPort.setup_environ_for_server): Added.

10:50 AM Changeset in webkit [182480] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r181643 - [GTK] Wrong transfer annotations used in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=142780

Reviewed by Gustavo Noronha Silva.

We are using transfer none for all methods returning a GObject DOM
Object. That's not true. Only objects derived from Node are
automatically released by the DOM object cache and can be transfer
none. All other objects are added to the cache only to avoid
creating the same wrapper twice for the same core object, but
caller should release the returned reference.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GetTransferTypeForReturnType):
(GenerateFunction):

10:38 AM Changeset in webkit [182479] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Source

Merge r180214 - [GTK] GObject DOM bindings object are cached forever
https://bugs.webkit.org/show_bug.cgi?id=141558

Reviewed by Sergio Villar Senin.

Source/WebCore:

Rework the DOMObjectCache to avoid having to manually clear the
objects when the frame is destroyed, using a FrameDestructionObserver
instead. When a new object associated to a Frame is added to the
cache, a FrameDestructionObserver is created for the frame if
needed, and the DOM object is tracked by the observer too. When
the frame is detached from the page all its objects are cleared,
and if the aren't additional references, the object is finalized
and removed from the cache normally.
This patch also simplifies and modernizes the code to make it
easier to read an maintain.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::DOMObjectCacheData): Add constructor
to initialize its members and simplify the callers.
(WebKit::DOMObjectCacheData::clearObject): Remove the references
added by the cache, ensuring the GObject is not finalized until
the method returns.
(WebKit::DOMObjectCacheData::refObject): Adds a reference owned by
the cache.
(WebKit::domObjectCacheFrameObservers): Map a frame to a FrameDestructionObserver.
(WebKit::getOrCreateDOMObjectCacheFrameObserver): Create a new
FrameDestructionObserver for the given Frame or return the
existing one.
(WebKit::domObjects): Map wrapped object to wrapper object.
(WebKit::DOMObjectCache::forget): Remove the wrapped object from
the cache.
(WebKit::DOMObjectCache::get): Return the wrapped object if it is
in the cache, increasing the cache references.
(WebKit::DOMObjectCache::put): Add the wrapper object to the cache
for the given wrapped object. If it's a Node and has a frame add
the node to the FrameDestructionObserver corresponding to the frame.
(WebKit::getFrameFromHandle): Deleted.
(WebKit::weakRefNotify): Deleted.
(WebKit::DOMObjectCache::clearByFrame): Deleted.
(WebKit::DOMObjectCache::~DOMObjectCache): Deleted.

  • bindings/gobject/DOMObjectCache.h:

Merge r181631 - [GTK] WebKitDOM objects leaking
https://bugs.webkit.org/show_bug.cgi?id=118788

Reviewed by Darin Adler and Sergio Villar Senin.

Source/WebCore:

Use a DOMwindowObserver class, derived from DOMWindowProperty to
be notified when the window object is detached from the frame to
clear the DOM objects associated to that frame in that case too.

  • bindings/gobject/DOMObjectCache.cpp:
10:22 AM Changeset in webkit [182478] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Re-add JSReadableStream and JSReadableStreamReader the Xcode project to
make Xcode happy.

  • WebCore.xcodeproj/project.pbxproj:
10:18 AM Changeset in webkit [182477] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix; make calls to new SPI conditional on iOS version.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

10:07 AM Changeset in webkit [182476] by achristensen@apple.com
  • 5 edits
    3 adds in trunk/Tools

Use content extensions in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143446

Patch by Sam Weinig <sam@webkit.org> on 2015-04-06
Reviewed by Alex Christensen.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate showExtensionsManager:]):
(-[BrowserAppDelegate userContentContoller]):

  • MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
  • MiniBrowser/mac/ExtensionManagerWindowController.m: Added.

(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController windowDidLoad]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
  • MiniBrowser/mac/MainMenu.xib:
9:32 AM Changeset in webkit [182475] by Carlos Garcia Campos
  • 11 edits
    2 deletes in releases/WebKitGTK/webkit-2.4/Tools

Merge r176563 - [GTK] Use custom JavaScript instead of DBus to implement WebProcess tests
https://bugs.webkit.org/show_bug.cgi?id=138834

Reviewed by Sergio Villar Senin.

It makes everyting simpler and the tests run faster too, since we
don't need to spawn the private bus and wait until the DBus name
is registered. The web extension registers a new JavaSCript class
with a status method to run the tests, similar to the DBus
method. In the UI process side, tests use webkit_web_view_run_java_script()
instead of sending a DBus message.

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::create):
(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):
(WebKitDOMNodeFilterTest::webPageFromArgs): Deleted.
(WebKitDOMNodeFilterTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::create):
(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::webPageFromArgs): Deleted.
(WebKitDOMNodeTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::create):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):
(WebKitDOMXPathNSResolverTest::webPageFromArgs): Deleted.
(WebKitDOMXPathNSResolverTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::create):
(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):
(WebKitFrameTest::webPageFromArgs): Deleted.
(WebKitFrameTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMNodeHierarchyNavigation):
(testWebKitDOMNodeInsertion):
(testWebKitDOMNodeTagNames):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp:

(runTest):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp:

(testWebKitDOMXPathNSResolverNative):
(testWebKitDOMXPathNSResolverCustom):
(beforeAll):
(afterAll):
(runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp:

(webkitFrameTestRun):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(testsMap):
(WebProcessTest::add):
(WebProcessTest::create):
(runTest):
(windowObjectClearedCallback):
(webkit_web_extension_initialize):
(methodCallCallback): Deleted.
(webkit_web_extension_initialize_with_user_data): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.cpp: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.h: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::runWebProcessTest):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
9:05 AM Changeset in webkit [182474] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Tools

Merge r178644 - [GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Reviewed by Žan Doberšek.

Rework the test to make sure the snapshot is always created at the
desired size.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/snapshot.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSnapshot): Use a fixed size for the document, and
disable scrollbars to make sure the visible area is always the
WebView size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::showInWindowAndWaitUntilMapped): Add optional width
and height parameters to create the window with a given size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
9:01 AM Changeset in webkit [182473] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Tools

Merge r173832 - [GTK] Test /webkit2/WebKitWebView/can-show-mime-type fails if evince browser plugin is installed
https://bugs.webkit.org/show_bug.cgi?id=136998

Reviewed by Philippe Normand.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewCanShowMIMEType): Remove the check of PDF as
unsupported MIME type.

7:53 AM Changeset in webkit [182472] by svillar@igalia.com
  • 6 edits
    2 adds in trunk

[CSS Grid Layout] Update track sizes after distributing extra space
https://bugs.webkit.org/show_bug.cgi?id=141422

Reviewed by Antti Koivisto.

Source/WebCore:

Both old and new tracks sizing algorithms instruct us to update
the sizes of the content sized tracks only after distributing the
extra space for all the items in the same span group. So far we
were doing it inside distributeSpaceToTracks(), i.e., once for
every single item. That is wrong because it makes the algorithm
order dependent.

Our old implementation looked something like this (pseudocode):

resolveContentBasedTrackSizingFunctions()

foreach item

resolveContentBasedTrackSizingFunctionsForItems() (x4)

distributeSpaceToTracks()

updateTrackSizes()

Now it's done this way (pseudocode):

resolveContentBasedTrackSizingFunctions()

foreach spanGroup

resolveContentBasedTrackSizingFunctionsForItems() (x4)

foreach item in spanGroup

distributeSpaceToTracks()

updateTrackSizes()

As it can be seen the update of track sizes only happens after
processing all the items of a given span group. In order to
accomplish this a new field was added to GridTrack called
tempIncrease which stores per-track increases while distributing
the extra space among the items in the same span group. That
temporal increase could eventually be used to update the
plannedIncrease which is the one we use to finally set the new
size of the track.

This change makes our implementation closer to the spec, removes
the order dependency and ensures that every track satisfies their
min track sizing functions before starting to consider the max
track sizing functions.

Test: fast/css-grid-layout/grid-update-sizes-after-distributing-all.html

  • rendering/RenderGrid.cpp:

(WebCore::GridTrack::plannedSize):
(WebCore::GridTrack::setPlannedSize): New setter.
(WebCore::GridTrack::tempSize): New attribute.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
RenderGrid::distributeSpaceToTracks() no longer updates the track
sizes so we have to do it after the call returns.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Call RenderGrid::resolveContentBasedTrackSizingFunctionsForItems()
passing a span group instead of a single item.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
It now receives a span group instead of a single item. Apart from
that we need an extra function to get the unaltered track size (as
the current one returns the base size whenever the growth limit is
infinity).
(WebCore::RenderGrid::distributeSpaceToTracks): This no longer
updates track sizes but only the track's planned size;

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
  • fast/css-grid-layout/grid-content-sized-columns-resolution.html:
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all-expected.txt: Added.
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all.html: Added.
6:28 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:28 AM Changeset in webkit [182471] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r178725 - Fix failed to build for Linux/MIPS64EL
https://bugs.webkit.org/show_bug.cgi?id=124370

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-01-20
Reviewed by Darin Adler.

Add MIPS64EL support.

  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
6:25 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:24 AM Changeset in webkit [182470] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

[GTK] [WebKit1] Crash under WebCore::ScrollView::contentsToWindow()
https://bugs.webkit.org/show_bug.cgi?id=142343

Patch by Milan Crha <mcrha@redhat.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

Return early from frameRectsChanged() if the plugin widget doesn't
have a parent.

  • platform/gtk/GtkPluginWidget.cpp:

(WebCore::GtkPluginWidget::frameRectsChanged):

6:10 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:09 AM Changeset in webkit [182469] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit/gtk

[GTK] Memory leak from webkit_web_policy_decision_new()
https://bugs.webkit.org/show_bug.cgi?id=141564

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • webkit/webkitwebpolicydecision.cpp:
6:03 AM Changeset in webkit [182468] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r180141 - [GTK] Loading page into WebView shows g_closure_unref warning
https://bugs.webkit.org/show_bug.cgi?id=127474

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • bindings/gobject/GObjectEventListener.cpp:

(WebCore::GObjectEventListener::gobjectDestroyed):

6:01 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:01 AM Changeset in webkit [182467] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r178231 - Calling clearSelection on a detached RenderObject leads to segfault.
https://bugs.webkit.org/show_bug.cgi?id=140275

Reviewed by Simon Fraser.

We collect selection rects and compute selection gaps in order to
paint/clear selection. With certain content, we need to be able
to walk the tree up to a particular container to compute the selection rect.
However this container might not be available when the selection is part of a detached tree.
This is a null-check fix to ensure we don't crash in such cases, but in the long run
selection gaps and rect should be cached between two layouts so that we don't need to
keep collecting/recomputing them. Tracked here: webkit.org/b/140321

Source/WebCore:

Test: editing/selection/clearselection-on-detached-subtree-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalHeightForContent):

  • rendering/RenderView.cpp:

(WebCore::RenderView::clearSelection):

LayoutTests:

  • editing/selection/clearselection-on-detached-subtree-crash-expected.txt: Added.
  • editing/selection/clearselection-on-detached-subtree-crash.html: Added.
5:57 AM Changeset in webkit [182466] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/LayoutTests

[GTK] Gardening 7th April
https://bugs.webkit.org/show_bug.cgi?id=143467

Unreviewed

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

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/deleting/regional-indicators-expected.txt: Rebaselined after r182137.
  • platform/gtk/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Rebaselined after r181889.
  • platform/gtk/inspector-protocol/debugger/regress-133182-expected.txt: Added. Rebaselined after r181810.
5:27 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:27 AM Changeset in webkit [182465] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176254 - AX: [ATK] Crash getting the orientation of a MenuListOption after the MenuList was removed from the document
https://bugs.webkit.org/show_bug.cgi?id=138727

Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityMenuListOption::elementRect() returns the value of the
grandparent MenuList, asserting that the grandparent exists with that
role. But it is possible to have an existing MenuListOption and remove
the element which had been backing that MenuList from the document.
Adding null checks prior to the assertions prevents our crashing if the
parent or grandparent was removed.

Test: platform/gtk/accessibility/combobox-descendants-orientation-crash.html

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::elementRect):

LayoutTests:

  • platform/gtk/accessibility/combobox-descendants-orientation-crash-expected.txt: Added.
  • platform/gtk/accessibility/combobox-descendants-orientation-crash.html: Added.
5:25 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:25 AM Changeset in webkit [182464] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176091 - AX: [ATK] Do not return ATK_ROLE_UNKNOWN for null or otherwise invalid accessible objects
https://bugs.webkit.org/show_bug.cgi?id=137867

Reviewed by Chris Fleizach.

Source/WebCore:

Return ATK_ROLE_INVALID for null or otherwise invalid accessible objects.

Test: platform/gtk/accessibility/detached-object-role.html

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetRole):

Tools:

Add ATK_ROLE_INVALID to roleToString. Remove the null AtkRole check in
AccessibilityUIElement::role: ATK_ROLE_INVALID = 0, and we need to be
able to test for the presence of ATK_ROLE_INVALID.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::role):

LayoutTests:

  • platform/gtk/accessibility/detached-object-role-expected.txt: Added.
  • platform/gtk/accessibility/detached-object-role.html: Added.
5:23 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:23 AM Changeset in webkit [182463] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176076 - AX: [ATK] Accessible focus events are emitted when the selection is changed in non-focused combo boxes
https://bugs.webkit.org/show_bug.cgi?id=137866

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Check that the AccessibilityMenuList is really focused before notifying
the platform that it is focused. Likewise, only notify the platform of
an AccessibilityMenuListOption focus gain if the AccessibilityMenuList
containing that option is expanded.

Test: platform/gtk/accessibility/menu-list-unfocused-notifications.html

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests:

  • platform/gtk/accessibility/menu-list-unfocused-notifications-expected.txt: Added.
  • platform/gtk/accessibility/menu-list-unfocused-notifications.html: Added.
5:12 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:12 AM Changeset in webkit [182462] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175347 - Notify Settings object when its Page object goes away.
https://bugs.webkit.org/show_bug.cgi?id=138183
rdar://problem/18786900

Reviewed by Andreas Kling.

I could not make a test for this issue.

  • page/Page.cpp:

(WebCore::Page::~Page):

  • page/Settings.cpp:

(WebCore::setImageLoadingSettings):
(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingEnabled):
(WebCore::Settings::setTextAutosizingWindowSizeOverride):
(WebCore::Settings::setTextAutosizingFontScaleFactor):
(WebCore::Settings::setMediaTypeOverride):
(WebCore::Settings::setScriptEnabled):
(WebCore::Settings::setUserStyleSheetLocation):
(WebCore::Settings::setMinDOMTimerInterval):
(WebCore::Settings::minDOMTimerInterval):
(WebCore::Settings::domTimerAlignmentInterval):
(WebCore::Settings::setUsesPageCache):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::setDNSPrefetchingEnabled):
(WebCore::Settings::setStorageBlockingPolicy):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
(WebCore::Settings::setFontFallbackPrefersPictographs):

  • page/Settings.h:

(WebCore::Settings::pageDestroyed):

4:58 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
4:18 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
4:18 AM Changeset in webkit [182461] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175277 - FrameProgressTracker expects Page to not have detached
https://bugs.webkit.org/show_bug.cgi?id=138061

Reviewed by Alexey Proskuryakov.

In some cases, a Page may be detached from a Frame before its
FrameLoader is torn down, causing FrameProgressTracker's destructor
to hit a null pointer.

No new tests; it is impossible to reliably simulate the null pointer
case without intrusive code changes.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):

3:49 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:49 AM Changeset in webkit [182460] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175158 - WebContent crash at WebCore::RenderTextControl::textFormControlElement const.
https://bugs.webkit.org/show_bug.cgi?id=138035

Reviewed by Antti Koivisto.

NULL-check element().renderer() before using it.

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::didSetValueByUserEdit):

3:33 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:33 AM Changeset in webkit [182459] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source

Merge r172759 - TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
https://bugs.webkit.org/show_bug.cgi?id=70610

Patch by Magnus Granberg <zorry@gentoo.org> on 2014-08-19
Reviewed by Darin Adler.

Source/JavaScriptCore:

Setup %ebx so we can use the plt.

  • jit/ThunkGenerators.cpp:

Source/WTF:

Add PLT if we're building with PIC.

  • wtf/InlineASM.h:
3:08 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [182458] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

REGRESSION(r177885): [GTK][WK1] Cannot compile 2.4.8 when WK2 is disabled
https://bugs.webkit.org/show_bug.cgi?id=140241

Patch by Tomas Popela <tpopela@redhat.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

We have to compile the PluginPackageNone.cpp and PluginViewNone.cpp
just when WebKit2 is enabled and we are not building for X11.

  • GNUmakefile.list.am:
2:29 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
2:28 AM Changeset in webkit [182457] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4

configure check for clang version is incorrect
https://bugs.webkit.org/show_bug.cgi?id=126324

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

  • Source/autotools/CheckSystemAndBasicDependencies.m4:

Change compiler version checks of Clang and GCC so that they
handle major/minor versions correctly.

2:23 AM Changeset in webkit [182456] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.4/Source

Unreviewed. Fix the build with newer GLib.

Source/WebCore:

Use WTF::GMutexLocker.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockBufferMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekMainCb):
(webKitWebSrcSeekDataCb):
(webKitWebSrcSetMediaPlayer):
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived):
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

Source/WTF:

  • wtf/gobject/GMutexLocker.h: Move to the WTF namespace.
1:11 AM Changeset in webkit [182455] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

web-platform-tests server should retrieve the modules file relatively to its docroot path
https://bugs.webkit.org/show_bug.cgi?id=142742

Reviewed by Darin Adler.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._install_modules): Compute the modules description file path according wpt server doc root path.

1:06 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
12:45 AM Changeset in webkit [182454] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.6.6

WebKitGTK+ 2.6.6

12:44 AM Changeset in webkit [182453] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.6.6 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.6.6.
12:26 AM Changeset in webkit [182452] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

put_by_val_direct need to check the property is index or not for using putDirect / putDirectIndex
https://bugs.webkit.org/show_bug.cgi?id=140426

Reviewed by Darin Adler.

In the put_by_val_direct operation, we use JSObject::putDirect.
However, it only accepts non-index property. For index property, we need to use JSObject::putDirectIndex.
This patch checks toString-ed Identifier is index or not to choose putDirect / putDirectIndex.

  • dfg/DFGOperations.cpp:

(JSC::DFG::putByVal):
(JSC::DFG::operationPutByValInternal):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/Identifier.h:

(JSC::isIndex):
(JSC::parseIndex):

  • tests/stress/dfg-put-by-val-direct-with-edge-numbers.js: Added.

(lookupWithKey):
(toStringThrowsError.toString):

Apr 6, 2015:

11:52 PM Changeset in webkit [182451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Merge r182450 - [GTK] Fix HPPA build
https://bugs.webkit.org/show_bug.cgi?id=143453

Reviewed by Darin Adler.

Add HPPA to the list of supported CPUs.

  • CMakeLists.txt:
11:25 PM Changeset in webkit [182450] by berto@igalia.com
  • 4 edits in trunk

[GTK] Fix HPPA build
https://bugs.webkit.org/show_bug.cgi?id=143453

Reviewed by Darin Adler.

Add HPPA to the list of supported CPUs.

  • CMakeLists.txt:
11:22 PM Changeset in webkit [182449] by Chris Dumez
  • 8 edits
    4 adds in trunk

Bing video search result pages are not PageCacheable
https://bugs.webkit.org/show_bug.cgi?id=143463
<rdar://problem/20440916>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Bing video search result pages are not PageCacheable (tested on iOS).
It both:

  • is bad for power usage as it causes a reload when clicking one of the results then navigating back in history.
  • degrades user experience because the results page uses infinite scrolling and the scroll position is not properly restored when navigating back, not to mention the user has to wait for the reload to complete.

The issue was that the bing search page was doing a ping load when
clicking on one of the search results. The ping load was done by
create an image and its 'src' attribute to the ping URL. This load
usually did not have time to complete when navigating away so we would
cancel it and the main document would end up with an error that would
prevent the page from entering the page cache. We already have code
making sure load cancellations do not prevent page caching as long as
the loads are for XHR or images. However, the latter check was broken
in the case where the ResourceRequest's cachePartition was non-empty.
This is because the check was using the MemoryCache::ResourceForUrl()
API which rarely does what we want because it will request a dummy
ResourceRequest (without cachePartition) and then call
MemoryCache::resourceForRequest(). This patch updates the check
to use resourceForRequest() directly as we have the ResourceRequest
at this point.

This patch also gets rid of the MemoryCache::ResourceForUrl() API as
it rarely does what we want and it is bug prone. It was only used in
2 places, one of them causing this bug and the other in Internals.

Tests: http/tests/navigation/page-cache-pending-image-load-cache-partition.html

http/tests/navigation/page-cache-pending-image-load.html

  • loader/DocumentLoader.cpp:

(WebCore::areAllLoadersPageCacheAcceptable):
Use MemoryCache::resourceForRequest() instead of resourceForUrl() as
we have the ResourceRequest and calling resourceForUrl() would loose
the cachePartition.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::resourceForURL): Deleted.
Drop this API as it is bug prone and rarely does what we want.

  • testing/Internals.cpp:

(WebCore::Internals::isLoadingFromMemoryCache):
Update call to create a dummy ResourceRequest and call
resourceForRequest() instead of resourceForUrl(), as this API no
longer exists. The new code also set the cachePartition on the
dummy request so that this function actually behaves as expected
if the cachePartition in the memory cache is non-empty.

Source/WebKit/mac:

Fix the iOS / WK1 build by using MemoryCache::resourceForRequest()
instead of resourceForUrl().

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

LayoutTests:

Add layout tests to confirm that a pending image load does not prevent
a page from entering the page cache. There are 2 tests, once that cover
the case where the request's cachePartion is empty (passing without the
fix), and another where the request's cachePartition is non-empty
(which only passes with the fix).

  • http/tests/navigation/page-cache-pending-image-load-cache-partition-expected.txt: Added.
  • http/tests/navigation/page-cache-pending-image-load-cache-partition.html: Added.
  • http/tests/navigation/page-cache-pending-image-load-expected.txt: Added.
  • http/tests/navigation/page-cache-pending-image-load.html: Added.
5:29 PM Changeset in webkit [182448] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/contentfiltering/block-after-redirect.html fails on Windows
https://bugs.webkit.org/show_bug.cgi?id=143460

  • platform/win/TestExpectations: Marked test as ImageOnlyFailure.
5:05 PM Changeset in webkit [182447] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Create the web inspector process pool lazily
https://bugs.webkit.org/show_bug.cgi?id=143456
rdar://problem/20146520

Reviewed by Mark Lam.

Add and implement WebInspectorProxy::isInspectorProcessPool instead of always creating the inspector process pool
when trying to determine if a given process pool is the inspector process pool.

This should speed up initialization somewhat and avoid creating a storage manager for example.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorProcessPool):
(WebKit::WebInspectorProxy::isInspectorProcessPool):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

4:24 PM Changeset in webkit [182446] by achristensen@apple.com
  • 5 edits
    3 deletes in trunk/Tools

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

broke 32 bit build (Requested by alexchristensen on #webkit).

Reverted changeset:

"Use content extensions in MiniBrowser."
https://bugs.webkit.org/show_bug.cgi?id=143446
http://trac.webkit.org/changeset/182445

Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-06

4:15 PM Changeset in webkit [182445] by achristensen@apple.com
  • 5 edits
    3 adds in trunk/Tools

Use content extensions in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143446

Patch by Sam Weinig <sam@webkit.org> on 2015-04-06
Reviewed by Alex Christensen.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate showExtensionsManager:]):
(-[BrowserAppDelegate userContentContoller]):

  • MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
  • MiniBrowser/mac/ExtensionManagerWindowController.m: Added.

(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController windowDidLoad]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
  • MiniBrowser/mac/MainMenu.xib:
3:53 PM WindowsWithoutCygwin edited by mmaxfield@apple.com
(diff)
3:48 PM Changeset in webkit [182444] by mark.lam@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

In the 64-bit DFG and FTL, Array::Double case for HasIndexedProperty should set its result to true when all is well.
<https://webkit.org/b/143396>

Reviewed by Filip Pizlo.

The DFG was neglecting to set the result boolean. The FTL was setting it with
an inverted value. Both of these are now resolved.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileHasIndexedProperty):

  • tests/stress/for-in-array-mode.js: Added.

(.):
(test):

3:39 PM Changeset in webkit [182443] by mmaxfield@apple.com
  • 2 edits in trunk/WebKitLibraries

[Win] [SVG -> OTF Converter] Turn off on Windows until I can get the tests under control

Unreviewed.

  • win/tools/vsprops/FeatureDefines.props:
3:33 PM Changeset in webkit [182442] by beidson@apple.com
  • 17 edits
    1 add
    2 deletes in trunk/Source/WebKit2

Combine ActionMenuHitTestResult with WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=143444

Reviewed by Beth Dakin.

  • Shared/mac/ActionMenuHitTestResult.h: Removed.
  • Shared/mac/ActionMenuHitTestResult.mm: Removed.
  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):

  • Shared/WebHitTestResult.h:
  • Shared/mac/WebHitTestResult.mm: Added.

(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]):
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:userData:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didPerformActionMenuHitTest):

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

(WebKit::PageClientImpl::didPerformActionMenuHitTest):

  • UIProcess/mac/WKActionMenuController.h:
  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController willDestroyView:]):
(-[WKActionMenuController _clearActionMenuState]):
(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
(-[WKActionMenuController _hitTestResultDataImage]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _copyImage:]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
(-[WKActionMenuController _webHitTestResult]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _hitTestResultImage]): Deleted.

  • UIProcess/mac/WKImmediateActionController.h:
  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForText]):
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):

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

[GTK] install-dependencies should prefer dnf to yum
https://bugs.webkit.org/show_bug.cgi?id=143441

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-04-06
Reviewed by Martin Robinson.

Test for the existance of dnf before yum, and only try to use yum if dnf does not exist.

  • gtk/install-dependencies:
3:16 PM Changeset in webkit [182440] by aestes@apple.com
  • 2 edits in trunk/Tools

[iOS] 'make clean' fails in Tools/WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=143455

Reviewed by Dan Bernstein.

This Makefile adds '-target WebKitTestRunnerApp' to OTHER_OPTIONS during iOS builds, but the top-level
Makefile.shared adds '-alltargets' for clean builds, and xcodebuild does not allow both -target and -alltargets.

  • WebKitTestRunner/Makefile: Don't add '-target WebKitTestRunerApp' to OTHER_OPTIONS on clean builds.
3:02 PM Changeset in webkit [182439] by jer.noble@apple.com
  • 12 edits
    1 add in trunk/Source

Synchronize fullscreen animation between processes.
https://bugs.webkit.org/show_bug.cgi?id=143131

Reviewed by Simon Fraser.

Source/WebCore:

Rather than attempt to synchcronize animations across the WebProcess / UIProcess boundary,
do the bounds-change animation in-process by applying a sublayer transformation to the
video layer. This gives the same visual effect as a synchronized bounds animation, but
without needing a synchronization fence. Resolve the difference between the transformation
and bounds by doing a fence-synchronized bounds change after the current animation is
scheduled to complete.

To do this calculation correctly, WebAVPlayer needs to query both the effective
videoLayerFrame and the videoLayerGravity. To that end, add getter methods for
videoLayerFrame() and videoLayerGravity().

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::videoFullscreenGravity):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer dealloc]): Cancel outstanding performSelector requests.
(-[WebAVVideoLayer setBounds:]): Add a scale transform to simulate a bonuds change.
(-[WebAVVideoLayer resolveBounds]): Reset the scale transform and set the bounds.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Set the initial video frame bounds.
(-[WebAVPlayerController layoutSublayersOfLayer:]): Deleted.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::videoLayerFrame): Added; simple getter.
(WebVideoFullscreenModelVideoElement::videoLayerGravity): Ditto.

Source/WebKit2:

Support synchronize resizing by animating within the UIProcess. Since setVideoLayerFrameFenced() is now only
ever called from within a 0-duration transaction, make that the official contract of the function and wrap
the WebProcess side of that method in its own 0-duration transaction.

  • Platform/spi/ios/BackBoardServicesSPI.h: Added.
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Remember the initial rect.
(WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Use a different synchronization fence primative.

Save the cached frame value.

(WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity): Save the cached gravity value.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Wrap in a 0-length transaction.

2:08 PM Changeset in webkit [182438] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Perf dashboard should be able to trigger A/B testing jobs for iOS
https://bugs.webkit.org/show_bug.cgi?id=143398

Reviewed by Chris Dumez.

Fix various bugs in the perf dashboard so that it can schedule A/B testing jobs for iOS.

Also generalized sync-with-buildbot.py slightly to meet the requirements of iOS builders.

  • public/api/triggerables.php:

(main): Avoid spitting a warning when $id_to_triggerable doesn't contain the triggerable.

  • public/v2/analysis.js:

(App.AnalysisTask.triggerable): Log an error when failed to fetch triggerables for debugging purposes.

  • public/v2/app.js:

(App.AnalysisTaskController.updateRootConfigurations): Show 'None' when a revision is missing from
some of the data points. This will happen when we modify the list of projects we build for iOS.
(App.AnalysisTaskController.actions.createTestGroup): Gracefully fail by showing alerts when an user
attempts to create an invalid test group; when there is already another test group of the same or when
only either configuration specifies the revision for some repository.
(App.AnalysisTaskController._updateRootsBySelectedPoints): Fixed a typo: sets[i] -> set.

  • public/v2/index.html: Don't show the form to create a new test group if it's not available.
  • tools/sync-with-buildbot.py:

(find_request_updates):
(schedule_request): iOS builders take a JSON that contains the list of roots. Generate this JSON when
a dictionary of the form {rootsExcluding: WebKit?} is specified. Also replaced the way we refer to
a revision from $-based text replacements to an explicit dictionary of the form {root: "WebKit"}.
(request_id_from_build): Don't hard code the parameter name here. Retrieve the name from the config.

1:49 PM Changeset in webkit [182437] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

[WK2][iOS] Regression(r182323): ASSERTION FAILED: WebCore::SQLiteDatabaseTracker::hasTransactionInProgress() in NetworkCache::Statistics::initialize()
https://bugs.webkit.org/show_bug.cgi?id=143451
<rdar://problem/20437994>

Reviewed by Anders Carlsson.

Initialize WebProcess::m_webSQLiteDatabaseTracker and
NetworkProcess::m_webSQLiteDatabaseTracker in their respective class
constructors instead of doing it later in the initializeWebProcess() /
initializeNetworkProcess() methods.

If we do it later, it can happen that the tracker gets set after
a SQLiteTransactionInProgressAutoCounter initialization and before
the actual transaction. When this happens, the
SQLiteTransactionInProgressAutoCounter variable fails to increment the
transaction count. Then when the transaction is executed,
SQLiteDatabaseTracker::hasTransactionInProgress() can return false.
This would lead to possible assertions on start up on iOS.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
1:39 PM Changeset in webkit [182436] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Simple line layout: RunResolver::Iterator class cleanup.
https://bugs.webkit.org/show_bug.cgi?id=143445

Reviewed by Antti Koivisto.

  1. SimpleLineLayout::Run is an intermediate structure and should not be publicly accessible through RunResolver::Iterator.

RunResolver::Run is the class to use to access run properties.

  1. Also move advance()/advanceLine() to private. Callers should use LineResolver to advance on lines.

No change in functionality.

  • rendering/SimpleLineLayoutResolver.h:
1:26 PM Changeset in webkit [182435] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

https://trac.webkit.org/changeset/182338 introduced a build failure that I
attempted to fix with https://trac.webkit.org/changeset/182341 , but that disabled
the feature accidentally. This should do the right thing.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):

12:58 PM Changeset in webkit [182434] by ap@apple.com
  • 2 edits in trunk/Tools

WebKit1.SetAndUpdateCacheModelPreferencesChangeMix fails on some machines
https://bugs.webkit.org/show_bug.cgi?id=143450

Reviewed by Anders Carlsson.

  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: (TestWebKitAPI::TEST):

Make sure that the view is actually closed, regardless of anything else that happens beneath.
Also, removed unnecessary get() calls.

12:07 PM Changeset in webkit [182433] by Yusuke Suzuki
  • 21 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] DFG and FTL should be aware of that StringConstructor behavior for symbols becomes different from ToString
https://bugs.webkit.org/show_bug.cgi?id=143424

Reviewed by Geoffrey Garen.

In ES6, StringConstructor behavior becomes different from ToString abstract operations in the spec. (and JSValue::toString).

ToString(symbol) throws a type error.
However, String(symbol) produces SymbolDescriptiveString(symbol).

So, in DFG and FTL phase, they should not inline StringConstructor to ToString.

Now, in the template literals patch, ToString DFG operation is planned to be used.
And current ToString behavior is aligned to the spec (and JSValue::toString) and it's better.
So intead of changing ToString behavior, this patch adds CallStringConstructor operation into DFG and FTL.
In CallStringConstructor, all behavior in DFG analysis is the same.
Only the difference from ToString is, when calling DFG operation functions, it calls
operationCallStringConstructorOnCell and operationCallStringConstructor instead of
operationToStringOnCell and operationToString.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToStringOrCallStringConstructor):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::fixupToString): Deleted.

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::LowerDFGToLLVM::compileToString): Deleted.

  • runtime/StringConstructor.cpp:

(JSC::stringConstructor):
(JSC::callStringConstructor):

  • runtime/StringConstructor.h:
  • tests/stress/symbol-and-string-constructor.js: Added.

(performString):

11:37 AM Changeset in webkit [182432] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

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

This will disturb network cache efficacy logging, we should
reland this later. (Requested by cdumez on #webkit).

Reverted changeset:

"[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key"
https://bugs.webkit.org/show_bug.cgi?id=143348
http://trac.webkit.org/changeset/182296

10:00 AM Changeset in webkit [182431] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Use a RenderObject bit for isRenderFlowThread()
https://bugs.webkit.org/show_bug.cgi?id=143439

Reviewed by Darin Adler.

Turning isRenderFlowThread() into a bit in rare data rather than a virtual function reduces
the time under RenderLayer::scrollTo() on a large overflow:scroll table from 56% to 44%.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):

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

(WebCore::RenderObject::setIsRenderFlowThread):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isDragging):
(WebCore::RenderObject::hasReflection):
(WebCore::RenderObject::isRenderFlowThread):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):

9:32 AM Changeset in webkit [182430] by Carlos Garcia Campos
  • 6 edits
    2 deletes in releases/WebKitGTK/webkit-2.8/Source

Merge r182175 - [GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217

Reviewed by Martin Robinson.

Source/WebCore:

Remove DragIcon class since it's no longer needed with GTK+3 and
the GTK+2 code there is unused. GTK+ knows what to do with a cairo
surface, I guess we migrated the GTK+2 code to GTK+3 without
realizing that using the surface was enough.

  • PlatformGTK.cmake:
  • platform/gtk/DragIcon.cpp: Removed.
  • platform/gtk/DragIcon.h: Removed.

Source/WebKit2:

Use gtk_drag_set_icon_surface() to set the drag icon image,
instead of DragIcon class.

  • UIProcess/API/gtk/WebKitWebView.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

  • UIProcess/gtk/DragAndDropHandler.h:
9:30 AM Changeset in webkit [182429] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182051 - Inline continuation code should not take anonymous containing wrapper granted.
https://bugs.webkit.org/show_bug.cgi?id=133312

Reviewed by Dave Hyatt.

It's wrong to assume that when RenderInline is part of an inline continuation, its containing block
is an anonymous wrapper and its sibling might be a block level renderer.
When the inline continuation is no longer needed, for example when the block level renderer that initiated the continuation
is detached from the render tree, the inline renderes still continue to form continuation.(however they no longer require
anonymous wrappers)

Source/WebCore:

Test: fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation-expected.txt: Added.
  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html: Added.
9:28 AM Changeset in webkit [182428] by ap@apple.com
  • 18 edits
    1 delete in trunk

Reduce the dependency on Flash in regression tests
https://bugs.webkit.org/show_bug.cgi?id=143391

Reviewed by Anders Carlsson.

Tools:

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::decidePolicyForPluginLoad):

Only allow QuickTime and the test plug-in.

LayoutTests:

  • accessibility/inline-block-assertion.html:
  • accessibility/plugin.html:
  • compositing/geometry/empty-embed-rects.html:
  • fast/history/resources/subframe-with-plugin.html:
  • fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html:
  • fast/loader/loadInProgress.html:
  • fast/replaced/border-radius-clip.html:
  • fast/replaced/embed-display-none.html:
  • plugins/crash-restoring-plugin-page-from-page-cache.html:
  • plugins/object-embed-plugin-scripting.html:
  • plugins/resources/plugin-frame.html:

Use TestNetscapePlugin, as the tests don't appear to have any real need for Flash.

  • plugins/iframe-shims.html: Removed. This was a test for a chromium only feature

that never existed in WebKit.

  • platform/mac/TestExpectations:
  • platform/wincairo/TestExpectations:

Removed the deleted plugins/iframe-shims.html.

  • platform/mac-wk2/TestExpectations: Skip snapshotting tests that use Flash,

because they make WebKitTestRunner crash now. Marked all other snapshotting tests
as Pass/Failure, because they don't really make any sense, and are only useful for
finsing crashes.

  • platform/wk2/TestExpectations: Skipped a few remaining tests that use Flash.

These tests still run (and pass) under WebKit1, regardless of whether Flash is
installed, so they don't seem like very accurate tests.

9:28 AM Changeset in webkit [182427] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r182051 - Inline continuation code should not take anonymous containing wrapper granted.
https://bugs.webkit.org/show_bug.cgi?id=133312

Reviewed by Dave Hyatt.

It's wrong to assume that when RenderInline is part of an inline continuation, its containing block
is an anonymous wrapper and its sibling might be a block level renderer.
When the inline continuation is no longer needed, for example when the block level renderer that initiated the continuation
is detached from the render tree, the inline renderes still continue to form continuation.(however they no longer require
anonymous wrappers)

Source/WebCore:

Test: fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation-expected.txt: Added.
  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html: Added.
9:16 AM Changeset in webkit [182426] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.6

Merge r180020 - Drop the quirks-mode exception for CSS MIME types
https://bugs.webkit.org/show_bug.cgi?id=141501

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Drop the quirks-mode exception for CSS MIME types.
This matches Firefox's behavior.

This patch is based on the following Blink revision:
http://src.chromium.org/viewvc/blink?view=revision&revision=189669

Tests:

  • http/tests/misc/css-accept-any-type.html
  • http/tests/security/cross-origin-css.html
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::setCSSStyleSheet):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::sheetText):
(WebCore::CachedCSSStyleSheet::canUseSheet):

  • loader/cache/CachedCSSStyleSheet.h:

LayoutTests:

Update a couple of layout tests now that we dropped the quirks-mode
exception for CSS MIME types.

  • http/tests/misc/css-accept-any-type-expected.txt:
  • http/tests/misc/css-accept-any-type.html:
  • http/tests/security/cross-origin-css-expected.txt:
  • http/tests/security/cross-origin-css.html:
9:04 AM Changeset in webkit [182425] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r178725 - Fix failed to build for Linux/MIPS64EL
https://bugs.webkit.org/show_bug.cgi?id=124370

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-01-20
Reviewed by Darin Adler.

Add MIPS64EL support.

  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
8:49 AM Changeset in webkit [182424] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test update after r182369.

New test does not pass on Windows.

  • platform/win/TestExpectations: Skip.
8:30 AM Changeset in webkit [182423] by mmaxfield@apple.com
  • 6 edits in trunk

[Win] [SVG -> OTF Converter] Support the SVG -> OTF Font Converter
https://bugs.webkit.org/show_bug.cgi?id=143402

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-04-06
Reviewed by Darin Adler.

Source/WebCore:

There are a few pieces to the converter that Windows requires that we haven't already
implemented:

  1. Checksums were being calculated with the wrong endianness
  2. Windows requires a format 4 'cmap' subtable in addition to the format 12 one we already

were using

  1. Windows requires a reference to a Private DICT inside the CFF table, even if the DICT

is of 0 length.

Covered by all our existing SVG font tests.

  • svg/SVGFontFaceElement.h: Add capHeight accessor.
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::capHeight): Ditto.

  • svg/SVGToOTFConversion.cpp: Update the conversion process according to the above

requirements.
(WebCore::SVGToOTFFontConverter::appendFormat12CMAPTable):
(WebCore::SVGToOTFFontConverter::appendFormat4CMAPTable):
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Use helpers.
(WebCore::SVGToOTFFontConverter::appendHHEATable): Use member variables.
(WebCore::SVGToOTFFontConverter::appendOS2Table): Update to version 2.
(WebCore::SVGToOTFFontConverter::appendCFFTable): Create a reference to a
zero-sized Private DICT
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Populate member
variables.
(WebCore::SVGToOTFFontConverter::calculateChecksum): Flip endianness

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: Enable the define.
8:25 AM Changeset in webkit [182422] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Merge r181864 - Source/WebKit2:
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again.
https://bugs.webkit.org/show_bug.cgi?id=133692
rdar://problem/17255947

Reviewed by Alexey Proskuryakov.

Add plug-in destruction protectors around message receiver code that can call out to NPObjects or JavaScript
where we need the plug-in to stay around after the call.

  • Shared/Plugins/NPObjectMessageReceiver.cpp:

(WebKit::NPObjectMessageReceiver::invoke):
(WebKit::NPObjectMessageReceiver::invokeDefault):
(WebKit::NPObjectMessageReceiver::getProperty):
(WebKit::NPObjectMessageReceiver::setProperty):
(WebKit::NPObjectMessageReceiver::construct):

LayoutTests:
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again
https://bugs.webkit.org/show_bug.cgi?id=133692
rdar://problem/17255947

Reviewed by Alexey Proskuryakov.

  • platform/mac-wk2/TestExpectations:

Unskip test.

8:23 AM Changeset in webkit [182421] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r181835 - DFG OSR exit shouldn't assume that the frame count for exit is greater than the frame count in DFG
https://bugs.webkit.org/show_bug.cgi?id=142948

Reviewed by Sam Weinig.

It's necessary to ensure that the stack pointer accounts for the extent of our stack usage
since a signal may clobber the area below the stack pointer. When the DFG is executing,
the stack pointer accounts for the DFG's worst-case stack usage. When we OSR exit back to
baseline, we will use a different amount of stack. This is because baseline is a different
compiler. It will make different decisions. So it will use a different amount of stack.

This gets tricky when we are in the process of doing an OSR exit, because we are sort of
incrementally transforming the stack from how it looked in the DFG to how it will look in
baseline. The most conservative approach would be to set the stack pointer to the max of
DFG and baseline.

When this code was written, a reckless assumption was made: that the stack usage in
baseline is always at least as large as the stack usage in DFG. Based on this incorrect
assumption, the code first adjusts the stack pointer to account for the baseline stack
usage. This sort of usually works, because usually baseline does happen to use more stack.
But that's not an invariant. Nobody guarantees this. We will never make any changes that
would make this be guaranteed, because that would be antithetical to how optimizing
compilers work. The DFG should be allowed to use however much stack it decides that it
should use in order to get good performance, and it shouldn't try to guarantee that it
always uses less stack than baseline.

As such, we must always assume that the frame size for DFG execution (i.e.
frameRegisterCount) and the frame size in baseline once we exit (i.e.
requiredRegisterCountForExit) are two independent quantities and they have no
relationship.

Fortunately, though, this code can be made correct by just moving the stack adjustment to
just before we do conversions. This is because we have since changed the OSR exit
algorithm to first lift up all state from the DFG state into a scratch buffer, and then to
drop it out of the scratch buffer and into the stack according to the baseline layout. The
point just before conversions is the point where we have finished reading the DFG frame
and will not read it anymore, and we haven't started writing the baseline frame. So, at
this point it is safe to set the stack pointer to account for the frame size at exit.

This is benign because baseline happens to create larger frames than DFG.

  • dfg/DFGOSRExitCompiler32_64.cpp:

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

  • dfg/DFGOSRExitCompiler64.cpp:

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

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::adjustAndJumpToTarget):

8:19 AM Changeset in webkit [182420] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r181773 - Source/WebCore:
REGRESSION (r109593): Clicking after last inline element could cause a crash.
https://bugs.webkit.org/show_bug.cgi?id=142880
rdar://problem/17222294

Reviewed by Ryosuke Niwa.

Test: editing/selection/click-after-last-inline-crash.html

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::closestLeafChildForLogicalLeftPosition):

8:18 AM Changeset in webkit [182419] by Carlos Garcia Campos
  • 9 edits
    4 adds in releases/WebKitGTK/webkit-2.6

Merge r181691 - Flex and grid items should be painted as inline-blocks
https://bugs.webkit.org/show_bug.cgi?id=142266

Reviewed by Darin Adler.

Source/WebCore:

Based on Blink r157004 by <cbiesinger@chromium.org>.
https://src.chromium.org/viewvc/blink?revision=157004&view=revision

Both flexbox and grid specs define that the painting order of flex/grid
items is the same as inline blocks. See
http://dev.w3.org/csswg/css-flexbox/#painting and
http://dev.w3.org/csswg/css-grid/#z-order.

Extracted inline blocks painting code from InlineElementBox and moved to
a helper method that will be reused for flexboxes and grids.

Tests: css3/flexbox/flex-item-text-background-not-interleaved.html

fast/css-grid-layout/grid-item-text-background-not-interleaved.html

  • rendering/InlineElementBox.cpp:

(WebCore::InlineElementBox::paint): Move code to
RenderElement::paintAsInlineBlock().

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintChild): Add new argument to paint children
as inline blocks.

  • rendering/RenderBlock.h: Define PaintType enmu and modify paintChild()

signature to add the new argument.

  • rendering/RenderElement.cpp:

(WebCore::paintPhase): Paint element in a phase.
(WebCore::RenderElement::paintAsInlineBlock): Code extracted from
InlineElementBox::paint().

  • rendering/RenderElement.h: Add new method signature.
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::paintChildren): Call
RenderBlock::paintChild() with the new argument.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::paintChildren): Ditto.

LayoutTests:

  • css3/flexbox/flex-item-text-background-not-interleaved-expected.html: Added.
  • css3/flexbox/flex-item-text-background-not-interleaved.html: Added.
  • fast/css-grid-layout/float-not-protruding-into-next-grid-item-expected.html:

Add some vertical space to avoid issues with backgrounds.

  • fast/css-grid-layout/float-not-protruding-into-next-grid-item.html:

Ditto.

  • fast/css-grid-layout/grid-item-text-background-not-interleaved-expected.html: Added.
  • fast/css-grid-layout/grid-item-text-background-not-interleaved.html: Added.
8:09 AM Changeset in webkit [182418] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181787 - [GTK] Crash due to empty drag image during drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=142671

Reviewed by Philippe Normand.

Return early from ImageBuffer constructor if an empty size is
given. This is a speculative fix for a crash while starting a drag
and drop operation, that I haven't been able to reproduce.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::ImageBuffer):

8:07 AM Changeset in webkit [182417] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r181600 - AX: Crash viewing http://www.last.fm/
https://bugs.webkit.org/show_bug.cgi?id=142309

Reviewed by Chris Fleizach.

Source/WebCore:

The crash occurs when a not-yet-rendered object emits a children-changed
signal. If an assistive technology is listening, AT-SPI2 will attempt to
create and cache the state set for the child being added and the creation
of the state set assumes a rendered object.

Test: platform/gtk/accessibility/no-notification-for-unrendered-iframe-children.html

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::attachWrapper):

LayoutTests:

This test doesn't verify the absence of the crash because the crash seems
to require that an assistive technology is listening for events, and that
AT-SPI2 is caching the tree for that assistive technology -- something we
cannot count on being the case on our bots. (I suspect that the reason non-
assistive technology users of Epiphany were getting hit by this is because
Caribou was listening for events in the background, thus they were AT users
without realizing it. That Caribou issue is in theory now resolved.) What
this test does verify is the absence of children-changed:add accessibility
signals for non-rendered objects, which is the source of the crash given
the aforementioned environment.

  • platform/gtk/accessibility/no-notification-for-unrendered-iframe-children-expected.txt: Added.
  • platform/gtk/accessibility/no-notification-for-unrendered-iframe-children.html: Added.
8:06 AM Changeset in webkit [182416] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r181599 - ASSERT(m_plugin) on plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html
https://bugs.webkit.org/show_bug.cgi?id=142637

Reviewed by Dean Jackson.

  • WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::pluginSnapshotTimerFired):

m_plugin can be legitimately null.

8:05 AM Changeset in webkit [182415] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181565 - URLs visited during private browsing show up in WebpageIcons.db
rdar://problem/11254910 and https://bugs.webkit.org/show_bug.cgi?id=142733

Patch by Sam Weinig. Reviewed by Brady Eidson.

  • loader/icon/IconController.cpp:

(WebCore::IconController::startLoader): Bail early here if the page is using an ephemeral session.
(WebCore::IconController::continueLoadWithDecision): Instead of here.

8:03 AM Changeset in webkit [182414] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181449 - Stop using single-include headers that are only available since GStreamer >= 1.2.

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

Patch by Sebastian Dröge <sebastian@centricular.com> on 2015-03-12
Reviewed by Philippe Normand.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
  • platform/graphics/gstreamer/GStreamerUtilities.cpp:
  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/ImageGStreamer.h:

Instead of using single-include headers for the GStreamer libraries,
directly include the headers we need. The single-include headers were
only added in 1.2, and this would be the only reason why we would
depend on 1.2.

7:56 AM Changeset in webkit [182413] by Carlos Garcia Campos
  • 7 edits
    1 add in releases/WebKitGTK/webkit-2.6/Source

Merge r181305 - 8-bit version of weakCompareAndSwap() can cause an infinite loop.
https://webkit.org/b/142513>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Added a test that exercises the 8-bit CAS from multiple threads. The threads
will contend to set bits in a large array of bytes using the CAS function.

  • API/tests/CompareAndSwapTest.cpp: Added.

(Bitmap::Bitmap):
(Bitmap::numBits):
(Bitmap::clearAll):
(Bitmap::concurrentTestAndSet):
(setBitThreadFunc):
(testCompareAndSwap):

  • API/tests/testapi.c:

(main):

Source/WTF:

Presently, Bitmap::concurrentTestAndSet() uses the 8-bit version of
weakCompareAndSwap() (which compares and swaps an uint8_t value).
Bitmap::concurrentTestAndSet() has a loop that checks if a bit in the
byte of interest has been set. If not, it will call the 8-bit CAS
function to set the bit.

Under the covers, for ARM, the 8-bit CAS function actually works with a
32-bit CAS. The 8-bit CAS will first fetch the 32-bit value in memory
that should contain the 8-bit value, and check if it contains the
expected byte. If the value in memory doesn't have the expected byte,
it will return early to its caller. The expectation is that the caller
will reload the byte from memory and call the 8-bit CAS again.

Unfortunately, this code path that returns early does not have a
compiler fence. Without a compiler fence, the C++ compiler can
optimize away the reloading of the expected byte value, leaving it
unchanged. As a result, we'll have a infinite loop here that checks a
value that will never change, and the loop will not terminate until the
value changes.

The fix is to eliminate the early return check in the 8-bit CAS, and
have it always call down to the 32-bit CAS. The 32-bit CAS has a
compiler fence which will prevent this issue.

  • wtf/Atomics.h:

(WTF::weakCompareAndSwap):

6:35 AM Changeset in webkit [182412] by Carlos Garcia Campos
  • 18 edits in releases/WebKitGTK/webkit-2.6/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.
6:13 AM Changeset in webkit [182411] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

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.
5:54 AM Changeset in webkit [182410] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r180505 - Crash in DFGFrozenValue
https://bugs.webkit.org/show_bug.cgi?id=141883

Reviewed by Benjamin Poulain.

If a value might be a cell, then we have to have Graph freeze it rather than trying to
create the FrozenValue directly. Creating it directly is just an optimization for when you
know for sure that it cannot be a cell.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/regress-141883.js: Added. Hacked the original test to be faster while still crashing before this fix.
5:47 AM Changeset in webkit [182409] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180503 - [GStreamer] Redundant track language notifications
https://bugs.webkit.org/show_bug.cgi?id=141908

Reviewed by Žan Doberšek.

Invoke languageChanged only if the language code actually
changed.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

5:45 AM Changeset in webkit [182408] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6

Merge r180502 - [GTK] Fails to compile with cmake 3.2.x
https://bugs.webkit.org/show_bug.cgi?id=141796

With cmake 3.2.x we have to explicitly ask for X11 otherwise the
X11_X11_LIB variable won't be set thus the X11 linker flags won't be
added and the build will fail.

Patch by Tomas Popela <tpopela@redhat.com> on 2015-02-23
Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake:
5:42 AM Changeset in webkit [182407] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r180434 - RunLoop::dispatch() should drop the mutex before calling wakeUp().
https://bugs.webkit.org/show_bug.cgi?id=141820

Reviewed by Alexey Proskuryakov.

RunLoop::wakeUp() calls into CoreFoundation which could take time,
so scope the mutex just to protect m_functionQueue.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::dispatch):

5:40 AM Changeset in webkit [182406] by Yusuke Suzuki
  • 28 edits in trunk/Source

Return Optional<uint32_t> from PropertyName::asIndex
https://bugs.webkit.org/show_bug.cgi?id=143422

Reviewed by Darin Adler.

Source/JavaScriptCore:

PropertyName::asIndex returns uint32_t and use UINT_MAX as NotAnIndex.
But it's not obvious to callers.

This patch changes

  1. PropertyName::asIndex() to return Optional<uint32_t> and
  2. function name asIndex() to parseIndex().

It forces callers to check the value is index or not explicitly.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFor):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectPutById):

  • jit/Repatch.cpp:

(JSC::emitPutTransitionStubAndGetOldStructure):

  • jsc.cpp:
  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSort):

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::getOwnPropertySlot):
(JSC::GenericArguments<Type>::put):
(JSC::GenericArguments<Type>::deleteProperty):
(JSC::GenericArguments<Type>::defineOwnProperty):

  • runtime/Identifier.h:

(JSC::parseIndex):
(JSC::Identifier::isSymbol):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::putDirectAccessor):
(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::putDirectMayBeIndex):
(JSC::JSObject::defineOwnProperty):

  • runtime/JSObject.h:

(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::putDirectInternal):

  • runtime/JSString.cpp:

(JSC::JSString::getStringPropertyDescriptor):

  • runtime/JSString.h:

(JSC::JSString::getStringPropertySlot):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):

  • runtime/PropertyName.h:

(JSC::parseIndex):
(JSC::toUInt32FromCharacters): Deleted.
(JSC::toUInt32FromStringImpl): Deleted.
(JSC::PropertyName::asIndex): Deleted.

  • runtime/PropertyNameArray.cpp:

(JSC::PropertyNameArray::add):

  • runtime/StringObject.cpp:

(JSC::StringObject::deleteProperty):

  • runtime/Structure.cpp:

(JSC::Structure::prototypeChainMayInterceptStoreTo):

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::item):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):
(GenerateImplementation):

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

(WebCore::JSFloat64Array::getOwnPropertySlot):
(WebCore::JSFloat64Array::getOwnPropertyDescriptor):
(WebCore::JSFloat64Array::put):

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

(WebCore::JSTestEventTarget::getOwnPropertySlot):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::put):

5:38 AM Changeset in webkit [182405] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r180328 - REGRESSION(r174761) Dangling spanner pointer in RenderMultiColumnSpannerPlaceholder.
https://bugs.webkit.org/show_bug.cgi?id=138224

Reviewed by Dave Hyatt.

It's wrong to call flowThreadRelativeWillBeRemoved(child).
RenderMultiColumnFlowThread::removeFlowChildInfo() does not mean that the child is actually about to be removed.
Should this introduce any regressions, we need to deal with those separately.

Source/WebCore:

Test: fast/multicol/crash-when-spanner-gets-moved-around.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): Deleted.

  • rendering/RenderMultiColumnFlowThread.h:

LayoutTests:

  • fast/multicol/crash-when-spanner-gets-moved-around-expected.txt: Added.
  • fast/multicol/crash-when-spanner-gets-moved-around.html: Added.
5:33 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:33 AM Changeset in webkit [182404] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/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):

5:30 AM Changeset in webkit [182403] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180997 - [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:29 AM Changeset in webkit [182402] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180141 - [GTK] Loading page into WebView shows g_closure_unref warning
https://bugs.webkit.org/show_bug.cgi?id=127474

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • bindings/gobject/GObjectEventListener.cpp:

(WebCore::GObjectEventListener::gobjectDestroyed):

5:27 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:20 AM Changeset in webkit [182401] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181074 - [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):

5:15 AM Changeset in webkit [182400] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r181159 - [GTK] Test /webkit2/WebKitWebView/sync-request-on-max-conns might fail after finished
https://bugs.webkit.org/show_bug.cgi?id=142385

Reviewed by Sergio Villar Senin.

Use stack allocated GMainLoopSources to make sure they are
cancelled automatically if the test finishes before they have
been processed.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):

5:14 AM Changeset in webkit [182399] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

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.
5:11 AM Changeset in webkit [182398] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

Merge r180565 - Crash loading local file with WebPageProxy::loadAlternateHTMLString
https://bugs.webkit.org/show_bug.cgi?id=141867

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-24
Reviewed by Anders Carlsson.

Source/WebKit2:

WebPageProxy::loadAlternateHTMLString needs to assume read access to unreachableURL as well
as baseURL, because unreachableURL will get added to the back/forward list, causing us to
crash later on when we notice the unexpected URL received in checkURLReceivedFromWebProcess.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):

Tools:

  • TestWebKitAPI/Tests/WebKit2/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:

(TestWebKitAPI::loadAlternateHTMLString): Split most of this test into a function so it can
be shared with the new test.
(TestWebKitAPI::TEST): Add a cross-platform test for this crash.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp: Add a GTK+ test for this crash.

(testLoadAlternateHTMLForLocalPage):
(beforeAll):

5:08 AM Changeset in webkit [182397] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181643 - [GTK] Wrong transfer annotations used in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=142780

Reviewed by Gustavo Noronha Silva.

We are using transfer none for all methods returning a GObject DOM
Object. That's not true. Only objects derived from Node are
automatically released by the DOM object cache and can be transfer
none. All other objects are added to the cache only to avoid
creating the same wrapper twice for the same core object, but
caller should release the returned reference.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GetTransferTypeForReturnType):
(GenerateFunction):

5:03 AM Changeset in webkit [182396] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

Merge r181631 - [GTK] WebKitDOM objects leaking
https://bugs.webkit.org/show_bug.cgi?id=118788

Reviewed by Darin Adler and Sergio Villar Senin.

Source/WebCore:

Use a DOMwindowObserver class, derived from DOMWindowProperty to
be notified when the window object is detached from the frame to
clear the DOM objects associated to that frame in that case too.

  • bindings/gobject/DOMObjectCache.cpp:

Tools:

Update DOMObjectCache unit test to check that DOM objects are also
released when new contents are loaded in the web view, and the old
document is detached from the frame.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMObjectCache):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(runTest):

5:00 AM Changeset in webkit [182395] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r180215 - Unreviewed. Fix /webkit2/WebKitDOMNode/dom-cache after r180214.

I forgot to add the return of a bool function.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::testDOMCache):

4:59 AM Changeset in webkit [182394] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.6

Merge r180214 - [GTK] GObject DOM bindings object are cached forever
https://bugs.webkit.org/show_bug.cgi?id=141558

Reviewed by Sergio Villar Senin.

Source/WebCore:

Rework the DOMObjectCache to avoid having to manually clear the
objects when the frame is destroyed, using a FrameDestructionObserver
instead. When a new object associated to a Frame is added to the
cache, a FrameDestructionObserver is created for the frame if
needed, and the DOM object is tracked by the observer too. When
the frame is detached from the page all its objects are cleared,
and if the aren't additional references, the object is finalized
and removed from the cache normally.
This patch also simplifies and modernizes the code to make it
easier to read an maintain.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::DOMObjectCacheData): Add constructor
to initialize its members and simplify the callers.
(WebKit::DOMObjectCacheData::clearObject): Remove the references
added by the cache, ensuring the GObject is not finalized until
the method returns.
(WebKit::DOMObjectCacheData::refObject): Adds a reference owned by
the cache.
(WebKit::domObjectCacheFrameObservers): Map a frame to a FrameDestructionObserver.
(WebKit::getOrCreateDOMObjectCacheFrameObserver): Create a new
FrameDestructionObserver for the given Frame or return the
existing one.
(WebKit::domObjects): Map wrapped object to wrapper object.
(WebKit::DOMObjectCache::forget): Remove the wrapped object from
the cache.
(WebKit::DOMObjectCache::get): Return the wrapped object if it is
in the cache, increasing the cache references.
(WebKit::DOMObjectCache::put): Add the wrapper object to the cache
for the given wrapped object. If it's a Node and has a frame add
the node to the FrameDestructionObserver corresponding to the frame.
(WebKit::getFrameFromHandle): Deleted.
(WebKit::weakRefNotify): Deleted.
(WebKit::DOMObjectCache::clearByFrame): Deleted.
(WebKit::DOMObjectCache::~DOMObjectCache): Deleted.

  • bindings/gobject/DOMObjectCache.h:

Tools:

Add checks for all DOM objects to ensure they are not leaked. Also
add a dedicated test for the DOM Object Cache.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::testDOMCache):
(registerTests):

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::evaluateFooChildTextAndCheckResult):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMObjectCache):
(beforeAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(documentLoadedCallback):

4:06 AM Changeset in webkit [182393] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.6

Merge r180211 - [GTK] WebKitFrame objects are never released
https://bugs.webkit.org/show_bug.cgi?id=141641

Reviewed by Martin Robinson.

Source/WebKit2:

Use a FrameDestructionObserver derived class to wrap our
WebKitFrame objects and delete them when the frame is destroyed,
instead of using willDestroyFrame callback of WKBundlePageLoaderClient
that has never worked.

  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp:

(webkitFrameGetWebFrame):

  • WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(webkitFrameGetOrCreate):
(webkitFrameDestroy):
(webkitWebPageCreate):
(willDestroyFrame): Deleted.

Tools:

Add a way to check GObjects leaks for WebProcess tests and check
WebKitFrame objects are not leaked.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(WebProcessTest::assertObjectIsDeletedWhenTestFinishes):
(runTest):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
4:03 AM Changeset in webkit [182392] by Carlos Garcia Campos
  • 14 edits
    2 deletes in releases/WebKitGTK/webkit-2.6/Tools

Merge r176563 - [GTK] Use custom JavaScript instead of DBus to implement WebProcess tests
https://bugs.webkit.org/show_bug.cgi?id=138834

Reviewed by Sergio Villar Senin.

It makes everyting simpler and the tests run faster too, since we
don't need to spawn the private bus and wait until the DBus name
is registered. The web extension registers a new JavaSCript class
with a status method to run the tests, similar to the DBus
method. In the UI process side, tests use webkit_web_view_run_java_script()
instead of sending a DBus message.

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::create):
(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):
(WebKitDOMNodeFilterTest::webPageFromArgs): Deleted.
(WebKitDOMNodeFilterTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::create):
(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::webPageFromArgs): Deleted.
(WebKitDOMNodeTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::create):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):
(WebKitDOMXPathNSResolverTest::webPageFromArgs): Deleted.
(WebKitDOMXPathNSResolverTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::create):
(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):
(WebKitFrameTest::webPageFromArgs): Deleted.
(WebKitFrameTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMNodeHierarchyNavigation):
(testWebKitDOMNodeInsertion):
(testWebKitDOMNodeTagNames):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp:

(runTest):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp:

(testWebKitDOMXPathNSResolverNative):
(testWebKitDOMXPathNSResolverCustom):
(beforeAll):
(afterAll):
(runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp:

(webkitFrameTestRun):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(testsMap):
(WebProcessTest::add):
(WebProcessTest::create):
(runTest):
(windowObjectClearedCallback):
(webkit_web_extension_initialize):
(methodCallCallback): Deleted.
(webkit_web_extension_initialize_with_user_data): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.cpp: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.h: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::runWebProcessTest):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
3:06 AM Changeset in webkit [182391] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r179248 - [GTK] Unit test /webkit2/WebKitWebView/page-visibility from WebKit2Gtk/TestWebKitWebView fails
https://bugs.webkit.org/show_bug.cgi?id=131731

Reviewed by Žan Doberšek.

A web page loaded offscreen is in prerender state not hidden.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/page-visibility.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewPageVisibility):

3:02 AM Changeset in webkit [182390] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r178644 - [GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Reviewed by Žan Doberšek.

Rework the test to make sure the snapshot is always created at the
desired size.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/snapshot.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSnapshot): Use a fixed size for the document, and
disable scrollbars to make sure the visible area is always the
WebView size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::showInWindowAndWaitUntilMapped): Add optional width
and height parameters to create the window with a given size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
2:56 AM Changeset in webkit [182389] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r179397 - [GTK] Resize the redirected XComposite again after leaving accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140935

Reviewed by Sergio Villar Senin.

Since r178414 we don't resize the redirected XComposite window
until we enter accelerated compositing mode, but after leaving it
the redirected window keeps its size. We should resize it to 1x1
again and free the XPixmap and cairo surface to save that memory
while not in accelerated compositing mode.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Notify
the WebKitWebViewBase.
(WebKit::PageClientImpl::exitAcceleratedCompositingMode): Ditto.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseEnterAcceleratedCompositingMode): Resize the
XComposite window to the current drawing area size.
(webkitWebViewBaseExitAcceleratedCompositingMode): Resize the
XComposite window to and empty size.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
Do not initialize m_size since we now handle the empty size as a
especial case. Make sure we always create the X window with at
least 1x1 size.
(WebKit::RedirectedXCompositeWindow::resize): Resize the window to
at least 1x1, but when en empty size is given, call
cleanupPixmapAndPixmapSurface() to release those resources.
(WebKit::RedirectedXCompositeWindow::surface): Create the cairo
surface with at least 1x1 size.

2:55 AM Changeset in webkit [182388] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2] API::Array::copy() should move the resulting Vector<> of copies into the Array::create() call
https://bugs.webkit.org/show_bug.cgi?id=143413

Reviewed by Darin Adler.

Move the Vector<> object containing the copied elements into the Array::create()
call, avoiding copying all the elements again.

While here, change the Vector<> parameters for Array::create() and the Array
constructor to rvalue references. This will ensure that the passed-in object
is moved into the Array::create() call if possible, or explicitly copied
otherwise. The constructor is moved into the header for inlining opportunities
and the unnecessary parameter in the create(Vector<>&&) method declaration
removed.

  • Shared/API/APIArray.cpp:

(API::Array::create):
(API::Array::copy):
(API::Array::Array): Deleted.

  • Shared/API/APIArray.h:
2:39 AM Changeset in webkit [182387] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r179744 - ASSERTION FAILED: !m_adoptionIsRequired in WTF::RefCountedBase::ref
https://bugs.webkit.org/show_bug.cgi?id=141035

Reviewed by Sergio Villar Senin.

Rename PrinterListGtk::singleton() as PrinterListGtk::getOrCreate(), and
make it return nullptr when the shared PrinterListGtk object is
still being created. This can happen if the nested loop used by
gtk_enumerate_printers dispatches a GSource that starts a new
synchronous print operation. In that case we just ignore the
second print operation, since there's already one ongoing.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print): Return early if
PrinterListGtk::getOrCreate() return nullptr.

  • WebProcess/WebPage/gtk/PrinterListGtk.cpp:

(WebKit::PrinterListGtk::getOrCreate): Return nullptr if the
PrinterListGtk is still enumerating the printers.
(WebKit::PrinterListGtk::PrinterListGtk): Initialize
m_enumeratingPrinters to true before calling
gtk_enumerate_printers, and to false once it finishes.
(WebKit::PrinterListGtk::singleton): Deleted.
(WebKit::PrinterListGtk::enumeratePrintersFunction): Deleted.

  • WebProcess/WebPage/gtk/PrinterListGtk.h:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Add an

assertion here since PrinterListGtk::getOrCreate() should never
return nullptr at this point.

2:06 AM Changeset in webkit [182386] by youenn.fablet@crf.canon.fr
  • 7 edits
    1 add
    1 delete in trunk

W3C test importer should generate the modules installed dynamically to run wpt tests
https://bugs.webkit.org/show_bug.cgi?id=142738

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Renamed WPTModules to web-platform-test-modules.json
Updated TestRepositories to ask the importer to generate web-platform-test-modules.json at import time.

  • resources/TestRepositories:
  • resources/WPTModules: Removed.
  • resources/web-platform-tests-modules.json: Added.

Tools:

The test importer can now generate the submodules description file based on information extracted from the corresponding git repository.
The implementation is done within TestDownloader and it is activated for the WPT repository.
LayoutTests/imported/w3c/resources/WPTModules is renamed as LayoutTests/imported/w3c/resources/web-platform-tests-modules.json for that reason.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._install_modules): Updated to cope with path as array.

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader._git_submodules_status): Added so that it can be overriden for unit tests.
(TestDownloader):
(TestDownloader._git_submodules_description): Computes submodule description.
(TestDownloader.generate_git_submodules_description): Write submodule description in a file.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.do_import): Added the possibility to post process the tests.
(TestImporter):
(TestImporter.generate_git_submodules_description_for_all_repositories): Enable generating module description file.
(TestImporter.should_convert_test_harness_links): Updated according new options format.

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.import_downloaded_tests): Making use of TestDownloaderMock.
(TestImporterTest.import_downloaded_tests.TestDownloaderMock): Added to override submodule status gathering.
(TestImporterTest.import_downloaded_tests.TestDownloaderMock.init):
(TestImporterTest.import_downloaded_tests.TestDownloaderMock._git_submodules_status):
(TestImporterTest.test_submodules_generation): Added to check that modules description files works.

2:01 AM Changeset in webkit [182385] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181744 - [GTK] Scrollbars look bad with GTK+ 3.16
https://bugs.webkit.org/show_bug.cgi?id=140800

Reviewed by Sergio Villar Senin.

Take margin into account when rendering scrollbars. This fixes the
huge scrollbars rendered with GTK+ 3.16. We don't need to check
the GTK+ version because in previous versions the marging were 0,
so the same code just works.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::adjustRectAccordingToMargin):
(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):

1:43 AM Changeset in webkit [182384] by Carlos Garcia Campos
  • 6 edits
    2 deletes in releases/WebKitGTK/webkit-2.6/Source

Merge r182175 - [GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217

Reviewed by Martin Robinson.

Source/WebCore:

Remove DragIcon class since it's no longer needed with GTK+3 and
the GTK+2 code there is unused. GTK+ knows what to do with a cairo
surface, I guess we migrated the GTK+2 code to GTK+3 without
realizing that using the surface was enough.

  • PlatformGTK.cmake:
  • platform/gtk/DragIcon.cpp: Removed.
  • platform/gtk/DragIcon.h: Removed.

Source/WebKit2:

Use gtk_drag_set_icon_surface() to set the drag icon image,
instead of DragIcon class.

  • UIProcess/API/gtk/WebKitWebView.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

  • UIProcess/gtk/DragAndDropHandler.h:
1:37 AM Changeset in webkit [182383] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Unreviewed. Fix typo in API doc comment.

  • UIProcess/API/gtk/WebKitUserContent.cpp:
1:34 AM Changeset in webkit [182382] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r179866 - [GTK] GMutexLocker build issue
https://bugs.webkit.org/show_bug.cgi?id=141381

Reviewed by Žan Doberšek.

Source/WebCore:

Use always WTF::GMutexLocker because newer glib versions have a
GMutexLocker in the public API.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockSampleMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekDataCb):
(webKitWebSrcSetMediaPlayer):
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived):
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

Source/WTF:

Remove using WTF::GMutexLocker from the header, since newer glib
versions have a GMutexLocker in the public API.

  • wtf/gobject/GMutexLocker.h:
12:51 AM Changeset in webkit [182381] by Carlos Garcia Campos
  • 10 edits
    2 moves in releases/WebKitGTK/webkit-2.6

Merge r179111 - [GTK] gtkdoc does not appear in DevHelp
https://bugs.webkit.org/show_bug.cgi?id=139369

.:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

Expect the gtkdoc to be generated in folders named with the API version.

  • Source/PlatformGTK.cmake:

Source/WebCore:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

  • PlatformGTK.cmake: Include the API version in the gtkdoc filenames.

Source/WebKit2:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

  • PlatformGTK.cmake: Include the API version in the gtkdoc filenames.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types.

Tools:

Patch by Michael Catanzaro <Michael Catanzaro> and Carlos Garcia Campos <cgarcia@igalia.com> on 2015-01-26
Reviewed by Philippe Normand.

  • gtk/generate-gtkdoc: Create the generators in the main function

and use them to get the local cross renference dependencies. Also
pass the generator module name to webkitdom.write_doc_files().
(get_gtkdoc_module_paths): Receive a list of local cross reference
dependencies.
(get_generator_for_config): Set the main_sgml_file property of the
GtkDoc object from the configuration file.
(generate_documentation): Generate the documentation for the given
generator.
(generate_documentation_for_config): Deleted.

  • gtk/manifest.txt.in: Expect the API version in the gtkdoc filenames.
  • gtk/webkitdom.py:

(write_doc_files): Receive the module name used to build the
-sections.txt filename.

12:46 AM Changeset in webkit [182380] by Carlos Garcia Campos
  • 4 edits
    1 move in releases/WebKitGTK/webkit-2.6

Merge r178672 - [GTK] Generate the make dist manifest from a CMake template file
https://bugs.webkit.org/show_bug.cgi?id=139387

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-19
Reviewed by Martin Robinson.

.:

Generate manifest.txt from manifest.txt.in. Only expose the dist and
distcheck targets for developer builds, as they won't work when
building from a tarball because the manifest is not distributed.

  • Source/PlatformGTK.cmake:

Tools:

Remove the code that performs variable substitution on manifest.txt.
Replace the custom variables used in that file with CMake variables.

  • gtk/make-dist.py:

(Manifest.add_directory):
(Manifest.get_full_source_path):
(Manifest.process_line):
(Manifest.resolve_variables): Deleted.
(Manifest.get_full_tarball_path): Deleted.

  • gtk/manifest.txt.in: Renamed from Tools/gtk/manifest.txt.
12:39 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
12:22 AM Changeset in webkit [182379] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

FileList constructor should move the passed-in Vector<> rvalue reference into the member variable
https://bugs.webkit.org/show_bug.cgi?id=143412

Reviewed by Darin Adler.

  • fileapi/FileList.h:

(WebCore::FileList::FileList): An explicit move of the passed-in rvalue
reference into the member variable is required, otherwise a copy is
performed since an rvalue reference is just an lvalue.

12:21 AM Changeset in webkit [182378] by zandobersek@gmail.com
  • 5 edits in trunk/Source

Source/WebCore:
UserScript, UserStyleSheet constructors should take in Vector<String> rvalue references
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Have the UserScript and UserStyleSheet constructors take in Vector<String>
rvalue references for the whitelist and blacklist parameters. Both classes
store these Vector<String> objects, so the referenced objects can simply be
moved into the member variable.

Because the constructor is now demanding an rvalue, it's up to the caller
to move in the desired object if possible, or create an explicit copy
otherwise.

  • page/UserScript.h:

(WebCore::UserScript::UserScript):

  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):

Source/WebKit2:
UserScript, UserStyleSheet constructors should take in Vector<String> rvalues
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Move the whitelist and blacklist Vector<String> objects into the
UserScript and UserStyleSheet constructors in ArgumentCoder<T>::decode
functions.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::decode):

Apr 5, 2015:

10:24 PM Changeset in webkit [182377] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Content Filtering] Only pass http(s) requests to -[NEFilterSource willSendRequest:...]
https://bugs.webkit.org/show_bug.cgi?id=143437

Reviewed by Dan Bernstein.

No new tests. We can't test NEFilterSource directly.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::willSendRequest): Immediately allow requests with url schemes other than http and https.

9:48 PM Changeset in webkit [182376] by aestes@apple.com
  • 1 edit
    6 copies
    4 moves
    6 adds in trunk/LayoutTests

[Content Filtering] Add some additional unblock tests
https://bugs.webkit.org/show_bug.cgi?id=143435

Reviewed by Dan Bernstein.

  • contentfiltering/block-after-add-data-then-allow-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-add-data-then-allow-unblock.html: Added.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.html: Renamed from LayoutTests/contentfiltering/allow-after-unblock-request-expected.html.
  • contentfiltering/block-after-add-data-then-deny-unblock.html: Added.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock.html: Renamed from LayoutTests/contentfiltering/allow-after-unblock-request.html.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock.html: Renamed from LayoutTests/contentfiltering/block-after-unblock-request.html.
  • contentfiltering/block-after-response-then-allow-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-response-then-allow-unblock.html: Added.
  • contentfiltering/block-after-response-then-deny-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-response-then-deny-unblock.html: Added.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.html: Copied from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-will-send-request-then-allow-unblock.html: Added.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.html: Renamed from LayoutTests/contentfiltering/block-after-unblock-request-expected.html.
  • contentfiltering/block-after-will-send-request-then-deny-unblock.html: Added.
9:01 PM Changeset in webkit [182375] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add String/Array "includes" parameter display string
https://bugs.webkit.org/show_bug.cgi?id=143434

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-05
Reviewed by Darin Adler.

  • UserInterface/Models/NativeFunctionParameters.js:
8:29 PM Changeset in webkit [182374] by Darin Adler
  • 2 edits in trunk/Source/WebCore

FrameView code uses page() without null checking
https://bugs.webkit.org/show_bug.cgi?id=143425
rdar://problem/18920601

Reviewed by Anders Carlsson.

While we don't have tests that cover this, we are seeing crashes coming in
that indicate the shouldEnableSpeculativeTilingDuringLoading function is
being called when the page is null. This patch adds null checks to all the
places in FrameView that use page() without doing null checking.

  • page/FrameView.cpp:

(WebCore::FrameView::layout): If page is null, don't try to do the
auto-sizing logic that involves the textAutosizingWidth value from the page.
(WebCore::FrameView::setFixedVisibleContentRect): Get settings from the
frame rather than the page to avoid possible null-dereference.
(WebCore::FrameView::scrollPositionChanged): Check the page for null when
getting the event throttling delay.
(WebCore::FrameView::updateLayerFlushThrottling): Check the page for null,
and return early if it is null.
(WebCore::shouldEnableSpeculativeTilingDuringLoading): Check the page for
null, and return false if it is null.
(WebCore::FrameView::performPostLayoutTasks): Guard the code that calls
didLayout on the page client by a check if the page is null.
(WebCore::FrameView::pagination): Don't call Page::pagination on a null
page here.
(WebCore::FrameView::visibleContentScaleFactor): Use a scale factor of 1
if the page is null.
(WebCore::FrameView::setVisibleScrollerThumbRect): Don't call through to
the page client if the page is null.
(WebCore::FrameView::scrollbarStyleChanged): Ditto.
(WebCore::FrameView::setScrollPinningBehavior): Check the page for null
before asking it for the scrolling coordinator.

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

Free up some bits in RenderObject by moving rarely used bits into a side table
https://bugs.webkit.org/show_bug.cgi?id=143432

Reviewed by Darin Adler.

Add a side table (global hash) on RenderObject to store data that is rarely
used. Move the "isDragging" and "hasReflection" bits there. Re-use one of
those bits for "hasRareData", and leave the other unused (I have plans for it).

  • rendering/RenderBlock.cpp:

(WebCore::getBlockRareData): Renamed for consistency.
(WebCore::ensureBlockRareData): Renamed to avoid conflict with RenderObject::ensureRareData().
(WebCore::RenderBlock::cachedFlowThreadContainingBlock):
(WebCore::RenderBlock::cachedFlowThreadContainingBlockNeedsUpdate):
(WebCore::RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate):
(WebCore::RenderBlock::updateCachedFlowThreadContainingBlock):
(WebCore::RenderBlock::locateFlowThreadContainingBlock):
(WebCore::RenderBlock::paginationStrut):
(WebCore::RenderBlock::pageLogicalOffset):
(WebCore::RenderBlock::setPaginationStrut):
(WebCore::RenderBlock::setPageLogicalOffset):
(WebCore::getRareData): Deleted.
(WebCore::ensureRareData): Deleted.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::~RenderObject): Assert that rare data hasn't been resurrected
since willBeDestroyed().
(WebCore::RenderObject::willBeDestroyed): Clear the rare data.
(WebCore::RenderObject::setIsDragging): If setting, ensure that we have rare data and
set the bit. Otherwise, only clear the bit of we have rare data.
(WebCore::RenderObject::setHasReflection): Ditto.
(WebCore::RenderObject::rareDataMap):
(WebCore::RenderObject::rareData):
(WebCore::RenderObject::ensureRareData):
(WebCore::RenderObject::clearRareData):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isDragging): Fast-fail on the hasRareData() bit, then do the
slower lookup in rare data.
(WebCore::RenderObject::hasReflection): Ditto.
(WebCore::RenderObject::setEverHadLayout): Moved up to group with other bit setters.
(WebCore::RenderObject::hasRareData):
(WebCore::RenderObject::setHasRareData):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
(WebCore::RenderObject::setHasReflection): Deleted. Out of line now.
(WebCore::RenderObject::setIsDragging): Deleted. Ditto.

6:56 PM Changeset in webkit [182372] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression: Map instances don't expand
https://bugs.webkit.org/show_bug.cgi?id=143428

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-05
Reviewed by Brian Burg.

Fix uses of "this" in super() calls. Also fix a style name
that no longer exists and was intended to be inlined.

  • UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:

(WebInspector.IndexedDatabaseObjectStoreTreeElement):

  • UserInterface/Views/IndexedDatabaseTreeElement.js:

(WebInspector.IndexedDatabaseTreeElement):

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:

(WebInspector.ObjectTreeMapEntryTreeElement):

6:43 PM Changeset in webkit [182371] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r181778): Crash after scrolling Google search result page
https://bugs.webkit.org/show_bug.cgi?id=143431

Reviewed by Simon Fraser.

I can't reproduce this crash, nor was I able to make a regression test,
but the crash data makes it clear this is a null dereference.

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::scrollWasUpdated): Check the result
of Frame::view for null. We know this is only called when there is a
valid FrameView, but it can be called after Frame::m_view is already null.

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

URI encoding/escaping should use efficient string building instead of calling snprintf().
<https://webkit.org/b/143426>

Reviewed by Gavin Barraclough.

I saw 0.5% of main thread time in snprintf() on <http://polymerlabs.github.io/benchmarks/>
which seemed pretty silly. This change gets that down to nothing in favor of using our
existing JSStringBuilder and HexNumber.h facilities.

These APIs are well-exercised by our existing test suite.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::globalFuncEscape):

5:23 PM Changeset in webkit [182369] by aestes@apple.com
  • 20 edits
    12 adds in trunk

[Content Filtering] Tell the filter about requests and redirects
https://bugs.webkit.org/show_bug.cgi?id=143414
rdar://problem/19239549

Reviewed by Darin Adler.

Source/WebCore:

Tests: contentfiltering/allow-after-will-send-request.html

contentfiltering/block-after-will-send-request.html
http/tests/contentfiltering/allow-after-redirect.html
http/tests/contentfiltering/block-after-redirect.html

NEFilterSource supports making filter decisions based on NSURLRequests, so this patch adds support for telling
ContentFilter about the original main resource request as well as redirect requests.

  • bindings/js/JSMockContentFilterSettingsCustom.cpp: Updated decisionPoint values to include AfterWillSendRequest and AfterRedirect.

(WebCore::JSMockContentFilterSettings::decisionPoint):
(WebCore::JSMockContentFilterSettings::setDecisionPoint):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::willSendRequest): Called willSendRequest() on each filter using forEachContentFilterUntilBlocked().
(WebCore::ContentFilter::redirectReceived): Called willSendRequest().

  • loader/ContentFilter.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Called ContentFilter::willSendRequest() if there is a content filter.
Asserted that this is not a redirect, and that ContentFilter does not set the request to null.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequest): Called redirectReceived() instead of willSendRequest().

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::redirectReceived): Renamed from willSendRequest(), since this function is only called during redirects.
(WebCore::CachedRawResource::willSendRequest): Deleted.

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::redirectReceived): Renamed from willSendRequest(), since this function is only called during redirects.
(WebCore::CachedResource::willSendRequest): Deleted.

  • loader/cache/CachedResource.h:
  • platform/PlatformContentFilter.h:
  • platform/cocoa/NetworkExtensionContentFilter.h:
  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::willSendRequest): Called responseReceived() if there was a redirectResponse.
Then called -[NEFilterSource willSendRequest:decisionHandler:].

  • platform/cocoa/ParentalControlsContentFilter.h:
  • platform/spi/cocoa/NEFilterSourceSPI.h: Added a #define for NEFilterSourceOptionsPageData.
  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::willSendRequest): Added support for willSendRequest.

  • testing/MockContentFilter.h: Added decision points for AfterWillSendRequest and AfterRedirect.
  • testing/MockContentFilterSettings.h:
  • testing/MockContentFilterSettings.idl:

LayoutTests:

  • contentfiltering/allow-after-will-send-request-expected.html: Added.
  • contentfiltering/allow-after-will-send-request.html: Added.
  • contentfiltering/block-after-will-send-request-expected.html: Added.
  • contentfiltering/block-after-will-send-request.html: Added.
  • http/tests/contentfiltering/allow-after-redirect-expected.html: Added.
  • http/tests/contentfiltering/allow-after-redirect.html: Added.
  • http/tests/contentfiltering/block-after-redirect-expected.html: Added.
  • http/tests/contentfiltering/block-after-redirect.html: Added.
  • http/tests/contentfiltering/resources/fail.html: Added.
  • http/tests/contentfiltering/resources/pass.html: Added.
4:41 PM Changeset in webkit [182368] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

documentation for ES Promises points to the wrong one
https://bugs.webkit.org/show_bug.cgi?id=143263

Patch by Masataka Yakura <masataka.yakura@gmail.com> on 2015-04-05
Reviewed by Darin Adler.

  • features.json:
4:31 PM Changeset in webkit [182367] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove DocumentLoader::requestURL().
https://bugs.webkit.org/show_bug.cgi?id=140001

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-05
Reviewed by Darin Adler.

No new tests, no behavior change.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::documentURL):
(WebCore::DocumentLoader::requestURL): Deleted.

  • loader/DocumentLoader.h:
  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

3:24 PM Changeset in webkit [182366] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

[Mac] Spins seen in WKSetApplicationInformationItem, so it should not be called on the main thread
https://bugs.webkit.org/show_bug.cgi?id=143423
rdar://problem/18773785

Reviewed by Alexey Proskuryakov.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::origin): Factored out this helper function from updateActivePages below, so
the function below is easier to read.
(WebKit::WebProcess::updateActivePages): Refactored to use the new origin function.
Use dispatch_async to call WKSetApplicationInformationItem without blocking.

1:44 PM Changeset in webkit [182365] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Use constants of sqlite3 directly for status of SQL result in webdatabase
https://bugs.webkit.org/show_bug.cgi?id=143329

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-04-05
Reviewed by Darin Adler.

Source/WebCore:

In webdatabase, it has used own constant vairables as well as using sqlite3 constants directly.
It causes to use if~else statement which consumes more cpu cycles compared to switch~case. This
patch makes to use constants of sqlite3. Additionally if~else statment is changed to switch~case
to save cpu cycles.

No new tests, no behavior changes.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performGetTableNames):

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::retrieveTextResultFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::quotaForOriginNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):

  • Modules/webdatabase/SQLStatementBackend.cpp:

(WebCore::SQLStatementBackend::execute):

  • Modules/webdatabase/SQLStatementBackend.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
Change to use a reference instead of a pointer in arguemnt of execute().

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::storeUpdatedType):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
(WebCore::ApplicationCacheStorage::storeNewestCache):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::remove):
(WebCore::ApplicationCacheStorage::getManifestURLs):
(WebCore::ApplicationCacheStorage::cacheGroupSize):
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord):
(WebCore::ApplicationCacheStorage::checkForMaxSizeReached):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::checkIntegrity):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::pruneUnretainedIcons):
(WebCore::readySQLiteStatement):
(WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
(WebCore::IconDatabase::removePageURLFromSQLDatabase):
(WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
(WebCore::IconDatabase::addIconURLToSQLDatabase):
(WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
(WebCore::IconDatabase::removeIconFromSQLDatabase):
(WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::setMaximumSize):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::getFileNameForNewDatabase):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::step):
(WebCore::SQLiteStatement::returnIntResults):
(WebCore::SQLiteStatement::returnInt64Results):

Source/WebKit:

In webdatabase, it has used own constants vairables as well as using sqlite3 constants directly.
It causes to use if~else statement which consumes more cpu cycles compared to switch~case. This
patch makes to use constants of sqlite3.

  • Storage/StorageAreaSync.cpp:

(WebCore::StorageAreaSync::performImport):
(WebCore::StorageAreaSync::sync):
(WebCore::StorageAreaSync::deleteEmptyDatabase):

  • Storage/StorageTracker.cpp:

(WebCore::StorageTracker::syncImportOriginIdentifiers):
(WebCore::StorageTracker::syncSetOriginDetails):
(WebCore::StorageTracker::syncDeleteAllOrigins):
(WebCore::StorageTracker::syncDeleteOrigin):
(WebCore::StorageTracker::databasePathForOrigin):

  • WebKit.vcxproj/WebKit/WebKitCommon.props: Add sqlite include path.

Source/WebKit2:

In webdatabase, it has used own constant variables as well as using sqlite3 constants directly.
If sqlite3 constants are changed in the library, we should modify many files as well. Besides
it can cause to use if~else statement which consumes more cpu cycles compared to switch~case.

  • DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:

(WebKit::SQLiteIDBCursor::createSQLiteStatement):
(WebKit::SQLiteIDBCursor::resetAndRebindStatement):
(WebKit::SQLiteIDBCursor::bindArguments):
(WebKit::SQLiteIDBCursor::internalAdvanceOnce):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::createOrMigrateRecordsTableIfNecessary):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::extractExistingMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::updateKeyGeneratorNumber):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore):

  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::executeSQLStatement):
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):

  • UIProcess/Storage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::importItems):
(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
(WebKit::LocalStorageDatabase::databaseIsEmpty):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers):
(WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier):
(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):
(WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier):

  • WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp:

(webkitSoupCookieJarSqliteLoad):
(webkitSoupCookieJarSqliteInsertCookie):
(webkitSoupCookieJarSqliteDeleteCookie):

1:17 PM Changeset in webkit [182364] by Simon Fraser
  • 39 edits in trunk/Source

Remove "go ahead and" from comments
https://bugs.webkit.org/show_bug.cgi?id=143421

Reviewed by Darin Adler, Benjamin Poulain.

Remove the phrase "go ahead and" from comments where it doesn't add
anything (which is almost all of them).

Source/JavaScriptCore:

  • interpreter/JSStack.cpp:

(JSC::JSStack::growSlowCase):

Source/WebCore:

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::deleteOriginLockFor):

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::isSupportedFormat):

  • css/CSSPrimitiveValue.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::detachFromFrame):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::addIncrementalDataBuffer):

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::performURLImport):

  • page/PageOverlay.cpp:

(WebCore::PageOverlay::fadeAnimationTimerFired):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::scrollContents):

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::create):

  • platform/graphics/GraphicsContext.cpp:
  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/network/HTTPParsers.cpp:

(WebCore::parseHTTPRefresh):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::blockSelectionGaps):
(WebCore::RenderBlock::absoluteRects):
(WebCore::RenderBlock::absoluteQuads):
(WebCore::RenderBlock::addFocusRingRects):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::handleAfterSideOfBlock):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::appendRunsForObject):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::sizesLogicalWidthToFitContent):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleWillChange):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::dirtyRange):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleText):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::nextLineBreak):

  • style/StyleResolveTree.cpp:

(WebCore::Style::resolveLocal):

  • xml/XMLHttpRequestProgressEventThrottle.cpp:

(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::append):

Source/WebKit/mac:

  • WebView/WebDynamicScrollBarsView.mm:

(-[WebDynamicScrollBarsView updateScrollers]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView insertText:]):

Source/WebKit2:

  • Platform/unix/EnvironmentUtilities.cpp:

(WebKit::EnvironmentUtilities::stripValuesEndingWithString):

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::didClose):

  • UIProcess/API/mac/WKView.mm:

(-[WKView insertText:replacementRange:]):
(-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):

11:45 AM Changeset in webkit [182363] by Antti Koivisto
  • 8 edits in trunk

Bloom filter should support longer hashes
https://bugs.webkit.org/show_bug.cgi?id=143419

Reviewed by Dan Bernstein.

Source/WebKit2:

Use the hash digest directly in the contents filter instead of going via shortHash.

  • NetworkProcess/cache/NetworkCacheKey.h:

(WebKit::NetworkCache::Key::hash):
(WebKit::NetworkCache::Key::shortHash): Deleted.
(WebKit::NetworkCache::Key::toShortHash): Deleted.

No longer needed.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::addToContentsFilter):
(WebKit::NetworkCache::Storage::mayContain):

  • NetworkProcess/cache/NetworkCacheStorage.h:

Source/WTF:

It currently supports 'unsigned' hash only which is inconvenient and doesn't have enough independent bits for larger filters.

Support arbitrarily sized hashes of type std::array<uint8_t, hashSize> (like SHA1::Digest and MD5::Digest).

  • wtf/BloomFilter.h:

(WTF::BloomFilter<keyBits>::keysFromHash):
(WTF::BloomFilter<keyBits>::mayContain):
(WTF::BloomFilter<keyBits>::add):

Tools:

  • TestWebKitAPI/Tests/WTF/BloomFilter.cpp:

(TestWebKitAPI::generateRandomDigests):
(TestWebKitAPI::TEST):

11:39 AM Changeset in webkit [182362] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Network cache Bloom filter is too big
https://bugs.webkit.org/show_bug.cgi?id=143400

Follow-up: Fix an ineffective assert.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::setMaximumSize): Average resource size is closer to 50KB than 50MB.

11:35 AM Changeset in webkit [182361] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Rename Cache::setMaximumSize to setCapacity
https://bugs.webkit.org/show_bug.cgi?id=143418

Reviewed by Dan Bernstein.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::setCapacity):
(WebKit::NetworkCache::Cache::setMaximumSize): Deleted.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::update):
(WebKit::NetworkCache::Storage::setCapacity):
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::setMaximumSize): Deleted.

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformSetCacheModel):

11:18 AM Changeset in webkit [182360] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Skip fast/fixed-layout/fixed-layout.html on Windows.

  • platform/win/TestExpectations:
9:52 AM Changeset in webkit [182359] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: ObjectTree array index hints are clipped when shown in popover
https://bugs.webkit.org/show_bug.cgi?id=143309

Reviewed by Brian Burg.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index .index-name):
Add left margin that equals the width of the expand/collapse icon.

8:34 AM Changeset in webkit [182358] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Gardening on 5th April. Mark 2 tests to ImageOnlyFailure.
https://bugs.webkit.org/show_bug.cgi?id=143417

Unreviewed. Mark 2 tests to ImageOnlyFailure.

  • platform/efl/TestExpectations:
8:18 AM Changeset in webkit [182357] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Network cache Bloom filter is too big
https://bugs.webkit.org/show_bug.cgi?id=143400

Reviewed by Chris Dumez.

It is currently 1MB.

This patch switches the cache from a counting filter (CountingBloomFilter) to a bit filter (BloomFilter).

It also reduces the filter size from 220 to 218 elements which is good for ~26000 cache entries while
still keeping false positive rate below 1%. The current cache capacity allows around 4000 entries
with typical web contents.

The new filter size is 32KB.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::synchronize):

Turn initialization function into general purpose synchronization function.

(WebKit::NetworkCache::Storage::addToContentsFilter):

Collect newly added hashes so we don't miss entries that were added during synchronization.

(WebKit::NetworkCache::Storage::mayContain):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
(WebKit::NetworkCache::Storage::setMaximumSize):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
(WebKit::NetworkCache::Storage::shrink):

Non-counting Bloom filter does not support removals so this requires a new strategy.

Shrink code now simply deletes entries. The filter is updated by calling synchronize() at the end.
While we could synchronize the filter during traversal it is better to just have one function for that.

(WebKit::NetworkCache::Storage::initialize): Deleted.

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::mayContain):
(WebKit::NetworkCache::Storage::cacheMayContain): Deleted.

12:52 AM Changeset in webkit [182356] by aestes@apple.com
  • 28 edits in trunk

[Content Filtering] Blocked page is not always displayed when it should be
https://bugs.webkit.org/show_bug.cgi?id=143410
Source/WebCore:

rdar://problem/20211099

Reviewed by Andreas Kling.

These tests now pass: contentfiltering/block-after-add-data.html

contentfiltering/block-after-response.html

There were several problems with how ContentFilter loaded replacement data:
(1) Replacement data was delivered to DocumentLoader as if it were the original document's data. This assumes

that the original data was a UTF-8 encoded HTML document, which is not always true. We had a way to reset
the encoding, but not the content type.

(2) Replacement data was never delivered when the filter blocks in DocumentLoader::responseReceived().
(3) The main resource load was cancelled before the replacement data could be rendered when the filter blocks

in DocumentLoader::dataReceived().

The result was that only when the load was blocked after DocumentLoader::notifyFinished() would the replacement
data be shown properly, and only when problem (1) wasn't occurring.

This patch addresses these issues by using the substitute data mechanism to deliver replacement data. By using
substitute data, we can ensure that the original load is cancelled at the earliest opportunity and that the
replacement data is loaded with the proper content type and encoding.

Accomplishing this required changing the way ContentFilter interacts with DocumentLoader. Instead of placing
ContentFilter hooks throughout DocumentLoader, this patch makes ContentFilter itself the client of the
CachedRawResource for the duration of the filtering. If the filter decides to allow the load, DocumentLoader
adds itself as a client causing CachedRawResource to deliver to it the response and buffered data. If the
filter decides to block the load, DocumentLoader schedules a substitute data load. An added benefit of this
approach is that ContentFilter can reuse CachedRawResource's original data buffer instead of keeping its own.

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::createIfNeeded): Changed to take a DecisionFunction rather than a ResourceResponse and DocumentLoader.
(WebCore::ContentFilter::ContentFilter): Ditto.
(WebCore::ContentFilter::~ContentFilter): Removed ourself as a CachedRawResource client if needed.
(WebCore::ContentFilter::startFilteringMainResource): Became the client of the CachedRawResource in order to start the filtering process.
(WebCore::ContentFilter::unblockHandler): Returned the unblock handler.
(WebCore::ContentFilter::replacementData): Returned the replacement data.
(WebCore::ContentFilter::unblockRequestDeniedScript): Returned the unblock request denied script.
(WebCore::ContentFilter::responseReceived): Called responseReceived() on each filter using forEachContentFilterUntilBlocked().
(WebCore::ContentFilter::dataReceived): Ditto for dataReceived().
(WebCore::ContentFilter::notifyFinished): Ditto for finishedLoading().
(WebCore::ContentFilter::forEachContentFilterUntilBlocked): For each filter that needs more data, called the function.
If the filter blocked the load, called didDecide() with State::Blocked.
If all filters allowed the load, called didDecide() with State::Allowed.
(WebCore::ContentFilter::didDecide): Set m_state and called m_decisionFunction().
(WebCore::ContentFilter::addData): Deleted.
(WebCore::ContentFilter::finishedAddingData): Deleted.
(WebCore::ContentFilter::needsMoreData): Deleted.
(WebCore::ContentFilter::didBlockData): Deleted.
(WebCore::ContentFilter::getReplacementData): Deleted.

  • loader/ContentFilter.h:

(WebCore::ContentFilter::type):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader): Called ContentFilter::createIfNeeded() if not loading substitute data.
(WebCore::DocumentLoader::finishedLoading): Removed old ContentFilter code.
(WebCore::DocumentLoader::responseReceived): Ditto.
(WebCore::DocumentLoader::commitData): Ditto.
(WebCore::DocumentLoader::dataReceived): Ditto.
(WebCore::DocumentLoader::detachFromFrame): Set m_contentFilter to nullptr.
(WebCore::DocumentLoader::startLoadingMainResource): Called becomeMainResourceClientIfFilterAllows() instead of
becoming m_mainResource's client.
(WebCore::DocumentLoader::clearMainResource): Set m_contentFilter to nullptr.
(WebCore::DocumentLoader::becomeMainResourceClientIfFilterAllows): If ContentFilter is initialized, called
ContentFilter::startFilteringMainResource(). Otherwise added ourself as a client of m_mainResource.
(WebCore::DocumentLoader::installContentFilterUnblockHandler): Added a helper for creating and notifying
FrameLoaderClient of the unblock handler.
(WebCore::DocumentLoader::contentFilterDidDecide): Set m_contentFilter to nullptr. If the content filter
allowed the load, then added ourself as the CachedRawResource's client. Otherwise, installed the unblock handler
and scheduled a substitute data load with the replacement data.

  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::prepareForLoadStart): Removed call to PolicyChecker::prepareForLoadStart().

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledSubstituteDataLoad::ScheduledSubstituteDataLoad): Added a ScheduledNavigation subclass that
calls FrameLoader::load() with a FrameLoadRequest containing substitute data.
(WebCore::NavigationScheduler::scheduleSubstituteDataLoad): Scheduled a substitute data load.

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Reset m_contentFilterUnblockHandler if it couldn't handle the request.
(WebCore::PolicyChecker::prepareForLoadStart): Deleted.

  • loader/PolicyChecker.h:
  • platform/ContentFilterUnblockHandler.h:

(WebCore::ContentFilterUnblockHandler::unreachableURL):
(WebCore::ContentFilterUnblockHandler::setUnreachableURL):
(WebCore::ContentFilterUnblockHandler::unblockURLScheme): Renamed to ContentFilter::urlScheme().

  • platform/PlatformContentFilter.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler): Added a helper to wrap the unblock handler with an outer DecisionHandlerFunction.
(WebCore::ContentFilterUnblockHandler::encode): Added m_unreachableURL to the encoding.
(WebCore::ContentFilterUnblockHandler::decode): Ditto for the decoding.
(WebCore::ContentFilterUnblockHandler::canHandleRequest): Changed to call ContentFilter::urlScheme().

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

(replacementDataFromDecisionInfo): Added a helper to extract replacement data from the decisionInfo dictionary.
(WebCore::NetworkExtensionContentFilter::enabled): Renamed from canHandleReponse(); only checks if the filter is enabled.
(WebCore::NetworkExtensionContentFilter::create): Created a new object.
(WebCore::NetworkExtensionContentFilter::NetworkExtensionContentFilter): Created a NEFilterSource immediately when using the modern API.
(WebCore::NetworkExtensionContentFilter::responseReceived): Created a NEFilterSource when using the legacy API.
Called -[NEFilterSource receivedResponse:decisionHandler:] when using the modern API.
(WebCore::NetworkExtensionContentFilter::addData): Stopped buffering the original data.
(WebCore::NetworkExtensionContentFilter::replacementData): Returned a SharedBuffer instead of a char* and int&.
(WebCore::NetworkExtensionContentFilter::canHandleResponse): Deleted.
(WebCore::createNEFilterSource): Deleted.
(WebCore::NetworkExtensionContentFilter::getReplacementData): Deleted.

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

(WebCore::ParentalControlsContentFilter::enabled): Renamed from canHandleReponse(); only checks if the filter is enabled.
(WebCore::ParentalControlsContentFilter::create): Created a new object.
(WebCore::ParentalControlsContentFilter::ParentalControlsContentFilter): Initialized m_filterState to kWFEStateBuffering.
(WebCore::canHandleResponse): Added a helper to check if the response can be filtered.
(WebCore::ParentalControlsContentFilter::responseReceived): If !canHandleResponse(), set m_filterState to kWFEStateAllowed and return.
Otherwise created a new WebFilterEvaluator with the response.
(WebCore::ParentalControlsContentFilter::addData): Called updateFilterState().
(WebCore::ParentalControlsContentFilter::finishedAddingData): Ditto.
(WebCore::ParentalControlsContentFilter::needsMoreData): Changed to check m_filterState.
(WebCore::ParentalControlsContentFilter::didBlockData): Ditto.
(WebCore::ParentalControlsContentFilter::replacementData): Returned a SharedBuffer instead of a char* and int&.
(WebCore::ParentalControlsContentFilter::updateFilterState): Updated m_filterState by calling -[WebFilterEvaluator filterState].
(WebCore::ParentalControlsContentFilter::canHandleResponse): Deleted.
(WebCore::ParentalControlsContentFilter::getReplacementData): Deleted.

  • platform/spi/cocoa/NEFilterSourceSPI.h:
  • platform/spi/cocoa/WebFilterEvaluatorSPI.h:
  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::enabled): Renamed from canHandleReponse(); only checks if the filter is enabled.
(WebCore::MockContentFilter::create): Created a new object.
(WebCore::MockContentFilter::responseReceived): Called maybeDetermineStatus().
(WebCore::MockContentFilter::addData): Stopped buffering the original data.
(WebCore::MockContentFilter::replacementData): Returned a SharedBuffer instead of a char* and int&.
(WebCore::MockContentFilter::unblockHandler): Asserted that we blocked data.
(WebCore::MockContentFilter::canHandleResponse): Deleted.
(WebCore::MockContentFilter::MockContentFilter): Deleted.
(WebCore::MockContentFilter::getReplacementData): Deleted.

  • testing/MockContentFilter.h:
  • testing/MockContentFilterSettings.cpp:

(WebCore::MockContentFilterSettings::unblockRequestURL): Changed to use a StringBuilder.

Source/WebKit2:

Reviewed by Andreas Kling.

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::didStartProvisionalLoad): Stopped clearing m_contentFilterUnblockHandler here.
(WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): Started doing it here instead.

LayoutTests:

Reviewed by Andreas Kling.

  • TestExpectations: Unskipped block-after-add-data.html.
  • contentfiltering/block-after-add-data-expected.html: Added a passing expectation.
  • contentfiltering/block-after-response-expected.html: Ditto.
Note: See TracTimeline for information about the timeline view.