Timeline



Feb 6, 2015:

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

ASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
https://bugs.webkit.org/show_bug.cgi?id=140750

Reviewed by Simon Fraser.

There's a short period of time when RenderObject::layer() still returns a valid pointer
even though we already cleared the hasLayer() flag.
Do not use the layer as repaint container in such cases.

Source/WebCore:

Test: compositing/repaint-container-assertion-when-toggling-compositing.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingLayer):

LayoutTests:

  • compositing/repaint-container-assertion-when-toggling-compositing-expected.txt: Added.
  • compositing/repaint-container-assertion-when-toggling-compositing.html: Added.
8:35 PM Changeset in webkit [179775] by dburkart@apple.com
  • 2 edits in trunk/Tools

dashboard: BuildbotTesterQueueView crashesOnly logic is wrong
https://bugs.webkit.org/show_bug.cgi?id=141349

Reviewed by Alexey Proskuryakov.

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

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype.update):

7:06 PM Changeset in webkit [179774] by Chris Dumez
  • 5 edits in trunk/Source

Have SQLiteStatement::database() return a reference
https://bugs.webkit.org/show_bug.cgi?id=141348

Reviewed by Andreas Kling.

Have SQLiteStatement::database() return a reference as it can never
return null.

Source/WebCore:

  • loader/icon/IconDatabase.cpp:

(WebCore::readySQLiteStatement):

  • platform/sql/SQLiteStatement.h:

(WebCore::SQLiteStatement::database):

Source/WebKit2:

  • DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:

(WebKit::SQLiteIDBCursor::internalAdvanceOnce):

5:38 PM Changeset in webkit [179773] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Add youtube-nocookie URL to isYouTubeURL predicate
https://bugs.webkit.org/show_bug.cgi?id=141347
<rdar://problem/19430657>

Reviewed by Eric Carlson.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::isYouTubeURL): Update for additional youtube-nocookie site.

5:24 PM Changeset in webkit [179772] by Said Abou-Hallawa
  • 5 edits
    2 adds in trunk
5:11 PM Changeset in webkit [179771] by Simon Fraser
  • 4 edits
    2 adds in trunk

Convert the compositing overlap map to use LayoutRects
https://bugs.webkit.org/show_bug.cgi?id=141346
Source/WebCore:

rdar://problem/18206365

Reviewed by Zalan Bujtas.

If two compositing layers were adjoining but not overlapping, but happened to
have non-integral offsets, then using enclosing IntRects in the overlap map
would cause us to think they are overlapping, and create unnecessary backing store.

Fix by converting the overlap map to use LayoutRects.

Test: compositing/layer-creation/subpixel-adjacent-layers-overlap.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::OverlapMapContainer::add):
(WebCore::OverlapMapContainer::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::add):
(WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::RectList::append):
(WebCore::RenderLayerCompositor::OverlapMap::RectList::intersects):
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

Reviewed by Zalan Bujtas.

Test with adjacent layers on non-pixel boundaries.

  • compositing/layer-creation/subpixel-adjacent-layers-overlap-expected.txt: Added.
  • compositing/layer-creation/subpixel-adjacent-layers-overlap.html: Added.
5:08 PM Changeset in webkit [179770] by akling@apple.com
  • 31 edits in trunk/Source

Ref-ify various getters that return HTMLCollection.
<https://webkit.org/b/141336>

Reviewed by Anders Carlsson.

Make all the getters that return HTMLCollection objects (and never return nullptr)
return Ref instead of RefPtr.

Removed a couple of useless null checks that were exposed by this change.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::getDocumentLinks):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::namedItemGetter):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::nameGetter):

  • dom/Document.cpp:

(WebCore::Document::ensureCachedCollection):
(WebCore::Document::images):
(WebCore::Document::applets):
(WebCore::Document::embeds):
(WebCore::Document::plugins):
(WebCore::Document::scripts):
(WebCore::Document::links):
(WebCore::Document::forms):
(WebCore::Document::anchors):
(WebCore::Document::all):
(WebCore::Document::windowNamedItems):
(WebCore::Document::documentNamedItems):
(WebCore::Document::iconURLs):

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

(WebCore::Element::ensureCachedHTMLCollection):

  • dom/Element.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::suggestions):

  • html/HTMLDataListElement.cpp:

(WebCore::HTMLDataListElement::options):

  • html/HTMLDataListElement.h:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::children):

  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::elements):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::elements):

  • html/HTMLFormElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setupDateTimeChooserParameters):

  • html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::areas):

  • html/HTMLMapElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::selectedOptions):
(WebCore::HTMLSelectElement::options):

  • html/HTMLSelectElement.h:
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::rows):
(WebCore::HTMLTableElement::tBodies):

  • html/HTMLTableElement.h:
  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::insertCell):
(WebCore::HTMLTableRowElement::deleteCell):
(WebCore::HTMLTableRowElement::cells):

  • html/HTMLTableRowElement.h:
  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::insertRow):
(WebCore::HTMLTableSectionElement::deleteRow):
(WebCore::HTMLTableSectionElement::rows):

  • html/HTMLTableSectionElement.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::updateTickMarkValues):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks):

4:45 PM Changeset in webkit [179769] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.7

New tag.

4:39 PM Changeset in webkit [179768] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[iOS] Implement audio track selection in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=131236
<rdar://problem/16552632>

Reviewed by Eric Carlson.

  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::selectAudioMediaOption): Provide implementation.
(WebVideoFullscreenModelVideoElement::updateLegibleOptions): Add audio track information
to menu displayed to user.

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

DFG SSA shouldn't have SetArgument nodes
https://bugs.webkit.org/show_bug.cgi?id=141342

Reviewed by Mark Lam.

I was wondering why we kept the SetArgument around for captured
variables. It turns out we did so because we thought we had to, even
though we didn't have to. The node is meaningless in SSA.

  • dfg/DFGSSAConversionPhase.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

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

3:31 PM Changeset in webkit [179766] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

The delta value in the chart pane sometimes doens't show '+' for a positive delta
https://bugs.webkit.org/show_bug.cgi?id=141340

Reviewed by Andreas Kling.

The bug was caused by computeStatus prefixing the value delta with '+' if it's greater than 0 after
it had already been formatted. Fixed the bug by using a formatter that always emits a sign symbol.

  • public/v2/app.js:

(App.Pane.computeStatus):
(App.createChartData):

2:55 PM Changeset in webkit [179765] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. currentPoint wasn't defined when selectedPoints was used to find points.

  • public/v2/app.js:

(App.PaneController._updateDetails):

2:47 PM Changeset in webkit [179764] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed. Commit the forgotten change.

  • public/include/manifest.php:
2:43 PM Changeset in webkit [179763] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

New perf dashboard should have multiple dashboard pages
https://bugs.webkit.org/show_bug.cgi?id=141339

Reviewed by Chris Dumez.

Added the support for multiple dashboard pages. Also added the status of the latest data point.
e.g. "5% better than target"

  • public/v2/app.css: Tweaked the styles to work around the fact Ember.js creates empty script elements.

Also hid the border lines around charts on the dashboard page for a cleaner look.

  • public/v2/app.js:

(App.IndexRoute): Added. Navigate to /dashboard/<defaultDashboardName> once the manifest.json is loaded.
(App.IndexRoute.beforeModel): Added.
(App.DashboardRoute): Added.
(App.DashboardRoute.model): Added. Return the dashboard specified by the name.
(App.CustomDashboardRoute): Added. This route is used for a customized dashboard specified by "grid".
(App.CustomDashboardRoute.model): Create a dashboard model from "grid" query parameter.
(App.CustomDashboardRoute.renderTemplate): Use the dashboard template.
(App.DashboardController): Renamed from App.IndexController.
(App.DashboardController.modelChanged): Renamed from gridChanged. Removed the code to deal with "grid"
and "defaultDashboard" as these are taken care of by newly added routers.
(App.DashboardController.computeGrid): Renamed from updateGrid. No longer updates "grid" since this is
now done in actions.toggleEditMode.
(App.DashboardController.actions.toggleEditMode): Navigate to CustomDashboardRoute when start editing
an existing dashboard.

(App.Pane.computeStatus): Moved from App.PaneController so that to be called in App.Pane.latestStatus.
Also moved the code to compute the delta with respect to the previous data point from _updateDetails.
(App.Pane._relativeDifferentToLaterPointInTimeSeries): Ditto.
(App.Pane.latestStatus): Added. Used by the dashboard template to show the status of the latest result.

(App.createChartData): Added deltaFormatter to show less significant digits for differences.

(App.PaneController._updateDetails): Updated per changes to computeStatus.

  • public/v2/chart-pane.css: Added style rules for the status labels on the dashboard.
  • public/v2/data.js:

(TimeSeries.prototype.lastPoint): Added.

  • public/v2/index.html: Prefetch manifest.json as soon as possible, show the latest data points' status

on the dashboard, and enumerate all predefined dashboards.

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._relayoutDataAndAxes): Slightly adjust the offset at which we show unit
for the dashboard page.

  • public/v2/manifest.js:

(App.Dashboard): Inherit from App.NameLabelModel now that each predefined dashboard has a name.
(App.MetricSerializer.normalizePayload): Parse all predefined dashboards instead of a single dashboard.
IDs are generated for each dashboard for forward compatibility.
(App.Manifest):
(App.Manifest.dashboardByName): Added.
(App.Manifest.defaultDashboardName): Added.
(App.Manifest._fetchedManifest): Create dashboard model objects for all predefined ones.

2:14 PM Changeset in webkit [179762] by commit-queue@webkit.org
  • 8 edits
    1 copy
    1 add in trunk

[MSE] Implement Append Error algorithm.
https://bugs.webkit.org/show_bug.cgi?id=139439

Patch by Bartlomiej Gajda <b.gajda@samsung.com> on 2015-02-06
Reviewed by Jer Noble.

If Source Buffer has not received first init segment, then it shall call endOfStream after receiving
Media Segment, as per Media Source spec. (from 17 July 2014) in paragraph 3.5.1 point 6.1.
Source/WebCore:

Based this change on Editor's Draft 12 December 2014, as it clarifies order of events.

Test: media/media-source/media-source-append-media-segment-without-init.html

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::appendError):

  • Modules/mediasource/SourceBuffer.h:

LayoutTests:

Added test which after creating SourceBuffer sends media sample, without any init segments.
Updated existing tests, so they correctly expect updateend and error as per Append Error algorithm.

  • media/media-source/media-source-append-failed-expected.txt:
  • media/media-source/media-source-append-failed.html:
  • media/media-source/media-source-append-media-segment-without-init-expected.txt: Added.
  • media/media-source/media-source-append-media-segment-without-init.html: Added.
  • media/media-source/media-source-multiple-initialization-segments-expected.txt:
  • media/media-source/media-source-multiple-initialization-segments.html:
2:08 PM Changeset in webkit [179761] by bshafiei@apple.com
  • 3 edits in branches/safari-600.5-branch/Source/WebCore

Merged r179758. rdar://problem/19738407

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

Merged r179758. rdar://problem/19738407

2:01 PM Changeset in webkit [179759] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4-branch/Source

Versioning.

1:54 PM Changeset in webkit [179758] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION: Lookup doesn't work in RTL
https://bugs.webkit.org/show_bug.cgi?id=141338
<rdar://problem/19738407>

Reviewed by Dan Bernstein.

  • editing/Editor.cpp:

(WebCore::Editor::scanSelectionForTelephoneNumbers):

  • editing/mac/DictionaryLookup.mm:

(WebCore::rangeExpandedAroundPositionByCharacters):
Positions are independent of writing direction, so we don't
need to (and shouldn't) do anything special for RTL here.

1:48 PM Changeset in webkit [179757] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Correct expectations for inspector/css/selector-dynamic-specificity.html.

"Slow Pass Timeout" is not currently valid - if we expect a flaky timeout, we need
to expect it within the regular period of time with "Pass Timeout".

  • platform/mac-wk2/TestExpectations:
1:39 PM Changeset in webkit [179756] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

It should be possible to use the DFG SetArgument node to indicate that someone set the value of a local out-of-band
https://bugs.webkit.org/show_bug.cgi?id=141337

Reviewed by Mark Lam.

This mainly involved ensuring that SetArgument behaves just like SetLocal from a CPS standpoint, but with a special case for those SetArguments that
are associated with the prologue.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::run):
(JSC::DFG::CPSRethreadingPhase::canonicalizeSet):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):
(JSC::DFG::CPSRethreadingPhase::specialCaseArguments):
(JSC::DFG::CPSRethreadingPhase::canonicalizeSetLocal): Deleted.
(JSC::DFG::CPSRethreadingPhase::canonicalizeSetArgument): Deleted.

1:33 PM Changeset in webkit [179755] by jonowells@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=140586

Reviewed by Timothy Hatcher.

Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
stylesheet so that the content will update correctly.

  • UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.

(WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):

  • UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.

(WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.

  • UserInterface/Models/Resource.js: Drive-by removal of unused variable.
  • UserInterface/Models/SourceCode.js:

(WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
(WebInspector.SourceCode.prototype._processContent): Handle parameters.text correctly.

1:21 PM Changeset in webkit [179754] by ap@apple.com
  • 8 edits in trunk

Report network process crashes during layout tests
https://bugs.webkit.org/show_bug.cgi?id=139646

Reviewed by Anders Carlsson.

Source/WebKit2:

Added a way to get network process pid, modeled after how we do this for web process.

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextGetNetworkProcessIdentifier):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::networkProcessCrashed): Don't reset m_networkProcess until
after calling the client, so that the client could retrieve its pid.
(WebKit::WebProcessPool::networkProcessIdentifier):

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::networkProcessName):
(WTR::TestController::networkProcessDidCrash):

  • WebKitTestRunner/TestController.h:
12:57 PM Changeset in webkit [179753] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

MachineThreads should be ref counted.
<https://webkit.org/b/141317>

Reviewed by Filip Pizlo.

The VM's MachineThreads registry object is being referenced from other
threads as a raw pointer. In a scenario where the VM is destructed on
the main thread, there is no guarantee that another thread isn't still
holding a reference to the registry and will eventually invoke
removeThread() on it on thread exit. Hence, there's a possible use
after free scenario here.

The fix is to make MachineThreads ThreadSafeRefCounted, and have all
threads that references keep a RefPtr to it to ensure that it stays
alive until the very last thread is done with it.

  • API/tests/testapi.mm:

(useVMFromOtherThread): - Renamed to be more descriptive.
(useVMFromOtherThreadAndOutliveVM):

  • Added a test that has another thread which uses the VM outlive the VM to confirm that there is no crash.

However, I was not actually able to get the VM to crash without this
patch because I wasn't always able to the thread destructor to be
called. With this patch applied, I did verify with some logging that
the MachineThreads registry is only destructed after all threads
have removed themselves from it.

(threadMain): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::~Heap):
(JSC::Heap::gatherStackRoots):

  • heap/Heap.h:

(JSC::Heap::machineThreads):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::Thread::Thread):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeCurrentThread):

  • heap/MachineStackMarker.h:
12:46 PM Changeset in webkit [179752] by timothy@apple.com
  • 5 edits in trunk/Source/WebKit2

Support overriding the deviceScaleFactor per WKWebView/WKView
https://bugs.webkit.org/show_bug.cgi?id=141311

Reviewed by Tim Horton.

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

(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):

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

(-[WKView _intrinsicDeviceScaleFactor]):
(-[WKView _setOverrideDeviceScaleFactor:]):
(-[WKView _overrideDeviceScaleFactor]):

12:25 PM Changeset in webkit [179751] by commit-queue@webkit.org
  • 7 edits in trunk/Source

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

caused missing symbols in non-WebKit clients of WTF::Vector
(Requested by kling on #webkit).

Reverted changeset:

"Remove WTF::fastMallocGoodSize()."
https://bugs.webkit.org/show_bug.cgi?id=141020
http://trac.webkit.org/changeset/179743

10:56 AM Changeset in webkit [179750] by mjs@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r179706): Caused memory corruption on some tests (Requested by _ap_ on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=141324

Reviewed by Alexey Proskuryakov.

No new tests. This is caught by existing tests under ASAN, and I don't know how to reproduce
it without ASAN.

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Give up
and just always invalidate the next line. It's too hard to come up
with the condition that catches all needed cases, doesn't itself
cause a crash, and isn't overzealous. And we do this for the
previous line anyway. Also clean up the code a bit since it
confusingly reuses a variable, and declares it uninitialized, for
no good reason.

10:50 AM Changeset in webkit [179749] by ap@apple.com
  • 3 edits in trunk/LayoutTests

http/tests/xmlhttprequest/event-listener-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=33342

Tweaked test output a little, hopefully this will shed some light on what happens in failure case.

  • http/tests/xmlhttprequest/event-listener-gc-expected.txt:
  • http/tests/xmlhttprequest/event-listener-gc.html:
9:58 AM Changeset in webkit [179748] by matthew_hanson@apple.com
  • 14 edits in branches/safari-600.5-branch

Rollout r179133. rdar://problem/19526158

8:27 AM Changeset in webkit [179747] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

run-jsc-stress-tests --remote should create remote directory before copying the bundle
https://bugs.webkit.org/show_bug.cgi?id=141329

Reviewed by Michael Saboff.

  • Scripts/run-jsc-stress-tests:
8:04 AM Changeset in webkit [179746] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove BytecodeGenerator::preserveLastVar() and replace it with a more robust mechanism for preserving non-temporary registers
https://bugs.webkit.org/show_bug.cgi?id=141211

Reviewed by Mark Lam.

Previously, the way non-temporary registers were preserved (i.e. not reclaimed anytime
we did newTemporary()) by calling preserveLastVar() after all non-temps are created. It
would raise the refcount on the last (highest-numbered) variable created, and rely on
the fact that register reclamation started at higher-numbered registers and worked its
way down. So any retained register would block any lower-numbered registers from being
reclaimed.

Also, preserveLastVar() sets a thing called m_firstConstantIndex. It's unused.

This removes preserveLastVar() and makes addVar() retain each register it creates. This
is more explicit, since addVar() is the mechanism for creating non-temporary registers.

To make this work I had to remove an assertion that Register::setIndex() can only be
called when the refcount is zero. This method might be called after a var is created to
change its index. This previously worked because preserveLastVar() would be called after
we had already made all index changes, so the vars would still have refcount zero. Now
they have refcount 1. I think it's OK to lose this assertion; I can't remember this
assertion ever firing in a way that alerted me to a serious issue.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::preserveLastVar): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::addVar):

  • bytecompiler/RegisterID.h:

(JSC::RegisterID::setIndex):

6:50 AM Changeset in webkit [179745] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] Remove WebKitWebView::close-notification signal
https://bugs.webkit.org/show_bug.cgi?id=141330

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

In favor of a WebKitNotification::closed signal and
webkit_notification_close() method that both applications and
WebKit can use to close a notification. This also fixes the
onclose event that was not fired when the notification was
closed. It also brings back padding space in WebKitWebViewClass.

  • UIProcess/API/gtk/WebKitNotification.cpp:

(webkit_notification_class_init): Add WebKitNotification::closed signal.
(webkit_notification_close): Emit WebKitNotification::closed.

  • UIProcess/API/gtk/WebKitNotification.h:
  • UIProcess/API/gtk/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::notificationCloseCallback): Callback
for WebKitNotification::closed signal that notifies the WebProcess
and removes the notification from the map.
(WebKitNotificationProvider::show): Connect to WebKitNotification::closed.
(WebKitNotificationProvider::cancelNotificationByID): Call webkit_notification_close().

  • UIProcess/API/gtk/WebKitNotificationProvider.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(notifyNotificationClosed): The user closed the annotation, call
webkit_notification_close().
(webNotificationClosed): The WebKitNotification has been closed,
close the libnotify notification if it hasn't been closed yet.
(webkitWebViewShowNotification): Create the libnotifiy
notification if needed and associate it to the WebKitNotification
as user data. Connect to the closed signal of both, the libnotifiy
notification and the WebKit notification.
(webkitWebViewCloseNotification): Deleted.
(webkit_web_view_class_init): Remove close-notification signal and
the default hanlder.
(webkitWebViewEmitCloseNotification): Deleted.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add webkit_notification_close.

Tools:

Update notifications unit tests according to the API changes, and
add a test case to check that onclose event is fired when a
notification is closed by the user.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewNotification):

6:46 AM Changeset in webkit [179744] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

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:03 AM Changeset in webkit [179743] by akling@apple.com
  • 7 edits in trunk/Source

Remove WTF::fastMallocGoodSize().
<https://webkit.org/b/141020>

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::grow):

Source/WTF:

bmalloc's good-size API just returns exactly whatever you pass it,
so it's of no utility to us anymore.

This gets rid of a bunch of pointless out-of-line calls in Vector
construction and growth.

  • wtf/Compression.cpp:

(WTF::GenericCompressedData::create):

  • wtf/FastMalloc.cpp:

(WTF::fastMallocGoodSize): Deleted.

  • wtf/FastMalloc.h:
  • wtf/Vector.h:

(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):

12:31 AM Changeset in webkit [179742] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141325

  • platform/mac-wk2/TestExpectations: Mark it as such.
12:14 AM Changeset in webkit [179741] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector/css/selector-dynamic-specificity.html is very slow on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=141252

  • platform/mac-wk2/TestExpectations: Add weaker expectations for debug builds.

Feb 5, 2015:

8:32 PM Changeset in webkit [179740] by ap@apple.com
  • 4 edits in trunk/LayoutTests

Test gardening for issues uncovered by disabling retries on debug bots.

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:07 PM Changeset in webkit [179739] by diorahman@rockybars.com
  • 2 edits in trunk/Source/WebCore

Remove duplicate loop after r179532
https://bugs.webkit.org/show_bug.cgi?id=141300

Reviewed by Benjamin Poulain.

No new tests, no behavior changed.

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesLangPseudoClass):

7:55 PM Changeset in webkit [179738] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk

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

caused 2 layout tests to fail (Requested by zalan on #webkit).

Reverted changeset:

"[MSE] Implement Append Error algorithm."
https://bugs.webkit.org/show_bug.cgi?id=139439
http://trac.webkit.org/changeset/179725

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

[iOS] Run a full garbage collection on memory warning.
<https://webkit.org/b/141313>
<rdar://problem/19738024>

Reviewed by Chris Dumez.

Make sure that we run a full GC when trying to free up memory, as this might
be our last chance to execute before the kernel suspends this process.

This aligns WebKit2 with the old WebKit1 behavior.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):

6:21 PM Changeset in webkit [179736] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Null deref in ViewGestureController::beginSwipeGesture when swiping while script is navigating
https://bugs.webkit.org/show_bug.cgi?id=141308
<rdar://problem/18460046>

Reviewed by Simon Fraser.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::trackSwipeGesture):
If script navigates (history.back, probably other cases too) while in the middle of
building up enough scroll events to start a swipe, it can destroy the history item
that we were planning to swipe to. If this happens, bail from the swipe.

6:04 PM Changeset in webkit [179735] by Lucas Forschler
  • 5 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r179567. rdar://problem/19432892

5:40 PM Changeset in webkit [179734] by Lucas Forschler
  • 12 edits in branches/safari-600.1.4.15-branch

Merge patch from rdar://problem/19432653.

5:34 PM Changeset in webkit [179733] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Unskip 4 passing tests regarding webgl.

Those tests were marked with *CRASH* on r179465 though, it looks
wrong.

  • platform/efl/TestExpectations:
5:24 PM Changeset in webkit [179732] by ap@apple.com
  • 3 edits in trunk/Source/WebKit2

Don't pass architecture to development plug-in XPC services
https://bugs.webkit.org/show_bug.cgi?id=141309

Reviewed by Anders Carlsson.

We now have separate services for 32-bit and 64-bit.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:

(WebKit::reexec):
(WebKit::XPCServiceEventHandler):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToReExecService):

5:23 PM Changeset in webkit [179731] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Move commits viewer to the end of details view
https://bugs.webkit.org/show_bug.cgi?id=141315

Rubber-stamped by Andreas Kling.

Show the difference instead of the old value per kling's request.

  • public/v2/app.js:

(App.PaneController._updateDetails):

  • public/v2/index.html:
5:15 PM Changeset in webkit [179730] by Lucas Forschler
  • 5 edits
    2 deletes in branches/safari-600.1.4.15-branch

Rollout r179711 (179657 on trunk).

5:14 PM Changeset in webkit [179729] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Move commits viewer to the end of details view
https://bugs.webkit.org/show_bug.cgi?id=141315

Reviewed by Andreas Kling.

Improved the way list of commits are shown per kling's request.

  • public/v2/app.js:

(App.PaneController._updateDetails): Always show the old value even when a single point is selected.

  • public/v2/chart-pane.css: Updated the style for the commits viewer.
  • public/v2/commits-viewer.js:

(App.CommitsViewerComponent): Added "visible" property to hide the list of commits.
(App.CommitsViewerComponent.actions.toggleVisibility): Added. Toggles "visible" property.

  • public/v2/index.html: Updated the template for commits viewer to support "visible" property. Also

moved the commits viewers out of the details tables so that they don't interleave revision data.

5:12 PM Changeset in webkit [179728] by msaboff@apple.com
  • 15 edits
    1 delete in trunk/Source/JavaScriptCore

CodeCache is not thread safe when adding the same source from two different threads
https://bugs.webkit.org/show_bug.cgi?id=141275

Reviewed by Mark Lam.

The issue for this bug is that one thread, takes a cache miss in CodeCache::getGlobalCodeBlock,
but in the process creates a cache entry with a nullptr UnlinkedCodeBlockType* which it
will fill in later in the function. During the body of that function, it allocates
objects that may garbage collect. During that garbage collection, we drop the all locks.
While the locks are released by the first thread, another thread can enter the VM and might
have exactly the same source and enter CodeCache::getGlobalCodeBlock() itself. When it
looks up the code block, it sees it as a cache it and uses the nullptr UnlinkedCodeBlockType*
and crashes. This fixes the problem by not dropping the locks during garbage collection.
There are other likely scenarios where we have a data structure like this code cache in an
unsafe state for arbitrary reentrance.

Moved the functionality of DelayedReleaseScope directly into Heap. Changed it into
a simple list that is cleared with the new function Heap::releaseDelayedReleasedObjects.
Now we accumulate objects to be released and release them when all locks are dropped or
when destroying the Heap. This eliminated the dropping and reaquiring of locks associated
with the old scope form of this list.

Given that all functionality of DelayedReleaseScope is now used and referenced by Heap
and the lock management no longer needs to be done, just made the list a member of Heap.
We do need to guard against the case that releasing an object can create more objects
by calling into JS. That is why releaseDelayedReleasedObjects() is written to remove
an object to release so that we aren't recursively in Vector code. The other thing we
do in releaseDelayedReleasedObjects() is to guard against recursive calls to itself using
the m_delayedReleaseRecursionCount. We only release at the first entry into the function.
This case is already tested by testapi.mm.

  • heap/DelayedReleaseScope.h: Removed file
  • API/JSAPIWrapperObject.mm:
  • API/ObjCCallbackFunction.mm:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doSweep):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::tryAllocateHelper):
(JSC::MarkedAllocator::tryAllocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::sweep):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::didFinishIterating):

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

(JSC::Heap::collectAllGarbage):
(JSC::Heap::zombifyDeadObjects):
Removed references to DelayedReleaseScope and DelayedReleaseScope.h.

  • heap/Heap.cpp:

(JSC::Heap::Heap): Initialized m_delayedReleaseRecursionCount.
(JSC::Heap::lastChanceToFinalize): Call releaseDelayedObjectsNow() as the VM is going away.
(JSC::Heap::releaseDelayedReleasedObjects): New function that released the accumulated
delayed release objects.

  • heap/Heap.h:

(JSC::Heap::m_delayedReleaseObjects): List of objects to be released later.
(JSC::Heap::m_delayedReleaseRecursionCount): Counter to indicate that
releaseDelayedReleasedObjects is being called recursively.

  • heap/HeapInlines.h:

(JSC::Heap::releaseSoon): Changed location of list to add delayed release objects.

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):
Call Heap::releaseDelayedObjectsNow() when releasing the lock.

5:07 PM Changeset in webkit [179727] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Use deleteEmptyDirectory() in NetworkCacheStorage::clear()
https://bugs.webkit.org/show_bug.cgi?id=141314

Reviewed by Antti Koivisto.

Use deleteEmptyDirectory() in NetworkCacheStorage::clear() to simplify
the code a little bit.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::clear):

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

Fix ASSERTION FAILED: !root->needsLayout() in FrameView::layout()
https://bugs.webkit.org/show_bug.cgi?id=141032

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

This patch moves the !root->needsLayout() assert statement above
updateLayerPositionsAfterLayout() that can modify dirty bit system
when we have RenderMarquee.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

4:57 PM Changeset in webkit [179725] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[MSE] Implement Append Error algorithm.
https://bugs.webkit.org/show_bug.cgi?id=139439

Patch by Bartlomiej Gajda <b.gajda@samsung.com> on 2015-02-05
Reviewed by Jer Noble.

If Source Buffer has not received first init segment, then it shall call endOfStream after receiving
Media Segment, as per Media Source spec. (from 17 July 2014) in paragraph 3.5.1 point 6.1.
Source/WebCore:

Based this change on Editor's Draft 12 December 2014, as it clarifies order of events.

Test: media/media-source/media-source-append-media-segment-without-init.html

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::appendError):

  • Modules/mediasource/SourceBuffer.h:

LayoutTests:

Added test which after creating SourceBuffer sends media sample, without any init segments.

  • media/media-source/media-source-append-media-segment-without-init-expected.txt: Added.
  • media/media-source/media-source-append-media-segment-without-init.html: Added.
4:53 PM Changeset in webkit [179724] by Lucas Forschler
  • 10 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r179627. rdar://problem/19432897

4:33 PM Changeset in webkit [179723] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.
Mark inspector/css/selector-specificity.html flaky with Crash too (already marked with Timeout).

  • platform/mac/TestExpectations:
4:32 PM Changeset in webkit [179722] by Lucas Forschler
  • 16 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r179366. rdar://problem/19432900

4:30 PM Changeset in webkit [179721] by ap@apple.com
  • 2 edits in trunk/Tools

Dashboard doesn't consider building ASan a productive step
https://bugs.webkit.org/show_bug.cgi?id=141312

Reviewed by Simon Fraser.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
3:47 PM Changeset in webkit [179720] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Remove False Positive dispatch_source Leak in WebMemoryPressureHandler singleton
https://bugs.webkit.org/show_bug.cgi?id=141307

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-05
Reviewed by Anders Carlsson.

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

(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
We want to keep the dispatch_source around, so just tie it to the
singleton so that it is not reported as a leak.

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

TestExpectations gardening.

  • platform/win/TestExpectations: These two canvas tests fail on Windows only.
3:35 PM Changeset in webkit [179718] by ap@apple.com
  • 2 edits in trunk/LayoutTests

TestExpectations gardening.

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

TestExpectations gardening.

  • platform/mac/TestExpectations: Updated expectatiosn for tests that sometimes pass.
3:15 PM Changeset in webkit [179716] by dbates@webkit.org
  • 2 edits in trunk/Tools

[iOS] webkitpy.xcode.simulator.Runtime.from_identifier() returns wrong result for non-existent runtime
https://bugs.webkit.org/show_bug.cgi?id=141306

Reviewed by Alexey Proskuryakov.

The function webkitpy.xcode.simulator.Runtime.from_identifier always returns a Runtime object
corresponding to the last-most runtime parsed from the output of simctl list for any non-
existent runtime.

  • Scripts/webkitpy/xcode/simulator.py:

(Runtime.from_identifier):

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

<rdar://problem/18216390> ASSERTION FAILED: !m_visibleDescendantStatusDirty in WebCore::RenderLayer::isVisuallyNonEmpty()

fullscreen/full-screen-iframe-legacy.html is another affected test.

2:58 PM Changeset in webkit [179714] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] 64-bit build fix after r179702 and r179709

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
2:47 PM Changeset in webkit [179713] by jonowells@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
https://bugs.webkit.org/show_bug.cgi?id=141225

Reviewed by Timothy Hatcher.

Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
payload, including manual calls in the case where the source map content is in a data URI. Also
WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
resource loading error messages in the resource content view.

  • UserInterface/Models/Resource.js: drive-by style fix.
  • UserInterface/Models/SourceCode.js:

(WebInspector.SourceCode.prototype._processContent):
Properly handle error string.

  • UserInterface/Models/SourceMapResource.js:

(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.

(WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
This function now handles NetworkAgent errors only.

2:46 PM Changeset in webkit [179712] by dbates@webkit.org
  • 3 edits in trunk/Tools

LayoutTestRelay does not install DumpRenderTree.app/WebKitTestRunnerApp.app
https://bugs.webkit.org/show_bug.cgi?id=139746
<rdar://problem/19283658>

Reviewed by Alexey Proskuryakov.

Fixes an issues where LayoutTestRelay may fail to install DumpRenderTree.app/WebKitTestRunnerApp.app
if the simulator device is not in state Booted.

Currently run-webkit-test --ios-sim executes LayoutTestRelay immediately after
launching/relaunching the iOS Simulator app and a simulator app can only be installed
on a device that is in the Booted state. LayoutTestRelay may run before the
device is booted and hence fail to install DumpRenderTree.app/WebKitTestRunnerApp.app.
We should defer executing LayoutTestRelay until the simulator device booted by
iOS Simulator is in the Booted state.

  • Scripts/webkitpy/port/ios.py: Import webkitpy.xcode.simulator.Simulator to avoid prefixing

Simulator methods with the module name, simulator.
(IOSSimulatorPort.setup_test_run): Wait for the simulator device to be in the Booted state
after launching iOS Simulator. Also, wait until the simulator device is in the Shutdown state
before launching iOS Simulator to boot it.
(IOSSimulatorPort.testing_device): Fix up caller since we now import webkitpy.xcode.simulator.Simulator.
(IOSSimulatorPort.simulator_path): Deleted; moved this function to class Simulator and renamed to device_directory().

  • Scripts/webkitpy/xcode/simulator.py:

(Device.init): Remove parameter state and an instance variable of the same name, which represented
the state of the device when we created this object as part of parsing the output of simctl list. Callers
interested in the state of the device are more likely interested in the current state of the device as
opposed to the state of the device when the Device object was created.
(Device.state): Added; turn around and call Simulator.device_state() for the current state of the device.
(Device.path): Extracted implementation into Simulator.device_directory() so that it can be called
from both this function and Simulator.device_state().
(Device.create): Use Simulator.wait_until_device_is_in_state() to simplify the implementation of this function.
(Simulator.DeviceState): Added; class of constants.
(Simulator.wait_until_device_is_in_state): Added; this function does not return until the specified
device is in the specified state.
(Simulator.device_state): Added; parses the state of the device from the appropriate CoreSimulator device.plist file.
(Simulator.device_directory): Added.
(Simulator._parse_devices): Do not pass argument state to Device constructor as it no longer accepts it.

2:35 PM Changeset in webkit [179711] by Lucas Forschler
  • 5 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r179567. rdar://problem/19432892

2:34 PM Changeset in webkit [179710] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

New perf dashboard should compare results to baseline and target
https://bugs.webkit.org/show_bug.cgi?id=141286

Reviewed by Chris Dumez.

Compare the selected value against baseline and target values as done in v1. e.g. "5% below target"
Also use d3.format to format the selected value to show four significant figures.

  • public/v2/app.js:

(App.Pane.searchCommit):
(App.Pane._fetch): Create time series here via createChartData so that _computeStatus can use them
to compute the status text without having to recreate them.
(App.createChartData): Added.
(App.PaneController._updateDetails): Use 3d.format on current and old values.
(App.PaneController._computeStatus): Added. Computes the status text.
(App.PaneController._relativeDifferentToLaterPointInTimeSeries): Added.
(App.AnalysisTaskController._fetchedManifest): Use createChartData as done in App.Pane._fetch. Also
format the values using chartData.formatter.

  • public/v2/chart-pane.css: Enlarge the status text. Show the status text in red if it's worse than

the baseline and in blue if it's better than the target.

  • public/v2/data.js:

(TimeSeries.prototype.findPointAfterTime): Added.

  • public/v2/index.html: Added a new tbody for the status text and the selected value. Also fixed

the bug that we were not showing the old value's unit.

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._constructGraphIfPossible): Use chartData.formatter. Also cleaned up
the code to show the baseline and the target lines.

  • public/v2/manifest.js:

(App.Manifest.fetchRunsWithPlatformAndMetric): Added smallerIsBetter.

2:17 PM Changeset in webkit [179709] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed attempt to fix Windows build after r179702.

Export a couple of extra symbols.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
2:17 PM Changeset in webkit [179708] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Switch to file backed buffer when resource is cached to disk
https://bugs.webkit.org/show_bug.cgi?id=141295

Reviewed by Chris Dumez.

Wire the DidCacheResource mechanism to the new disk cache.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):

Send DidCacheResource message to the web process so it can switch the resource to file backing.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::store):
(WebKit::NetworkCache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::DispatchPtr::DispatchPtr):

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::mapFile):
(WebKit::decodeEntry):
(WebKit::retrieveActive):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):

Map files larger than a memory page after a successful store.

(WebKit::NetworkCacheStorage::update):
(WebKit::encodeEntry): Deleted.

2:13 PM Changeset in webkit [179707] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2] Properly check for mmap() error case
https://bugs.webkit.org/show_bug.cgi?id=141304

Reviewed by Anders Carlsson.

mmap() returns MAP_FAILED, which is (void*)-1, not a null pointer in
case of failure. This patch updates several wrong error checks in
WebKit2.

  • Platform/IPC/ArgumentEncoder.cpp:

(IPC::allocBuffer):
(IPC::ArgumentEncoder::reserve):

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::sendOutgoingMessage):

1:55 PM Changeset in webkit [179706] by mjs@apple.com
  • 3 edits
    2 adds in trunk

Crash due to failing to dirty a removed text node's line box
https://bugs.webkit.org/show_bug.cgi?id=136544

Reviewed by David Hyatt.
Source/WebCore:


Test: fast/text/remove-text-node-linebox-not-dirty-crash.html

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Make the check for dirtying the next
line box a bit more inclusive to avoid a case of a line box for a destroyed render object not
being dirtied. In particular, when the text node's parent has no line boxes but contains BRs.

LayoutTests:

  • fast/text/remove-text-node-linebox-not-dirty-crash-expected.txt: Added.
  • fast/text/remove-text-node-linebox-not-dirty-crash.html: Added.
1:52 PM Changeset in webkit [179705] by Brian Burg
  • 10 edits in trunk/Source/WebKit2

Clean up WebInspectorProxy and use simpler inspector levels design
https://bugs.webkit.org/show_bug.cgi?id=141135

Reviewed by Timothy Hatcher.

Inspector levels used to be managed by keeping a set of WebPageGroup
instances and doing pointer comparisons to check whether the inspected
view is itself a web inspector instance. This is unnecessary, as we
can maintain a mapping from WebPageProxy* to its corresponding level.

When an inspector instance is created, it is inserted into the mapping
along with its level. An inspector's level is 1 unless its inspected page
is in the mapping, then it is one greater that the inspected page's level.

The level is provided by inspectorLevel(), rather than a member variable.
WebInspectorProxy is created in the constructor of WebPageProxy. Thus, there
would be no chance to add the inspector page's level to the mapping before the
next level inspector tries to look it up when initializing its members.

This patch introduces other miscellaneous cleanups, such as naming m_page
to m_inspectedPage, using Ref and using an enum class for the attachment side.

  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorGetPage):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(resizeWebKitWebViewBaseFromAllocation):

  • UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
  • UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::pageLevelMap):
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorLevel):
(WebKit::WebInspectorProxy::inspectorPageGroupIdentifier):
(WebKit::WebInspectorProxy::inspectorPagePreferences):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::isFront):
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::show):
(WebKit::WebInspectorProxy::hide):
(WebKit::WebInspectorProxy::close):
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::attachBottom):
(WebKit::WebInspectorProxy::attachRight):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::togglePageProfiling):
(WebKit::WebInspectorProxy::isInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::remoteFrontendConnected):
(WebKit::WebInspectorProxy::remoteFrontendDisconnected):
(WebKit::WebInspectorProxy::dispatchMessageFromRemoteFrontend):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::didClose):
(WebKit::WebInspectorPageGroups::singleton): Deleted.
(WebKit::WebInspectorPageGroups::inspectorLevel): Deleted.
(WebKit::WebInspectorPageGroups::isInspectorPageGroup): Deleted.
(WebKit::WebInspectorPageGroups::inspectorPageGroupLevel): Deleted.
(WebKit::WebInspectorPageGroups::inspectorPageGroupForLevel): Deleted.
(WebKit::WebInspectorPageGroups::createInspectorPageGroup): Deleted.
(WebKit::WebInspectorProxy::~WebInspectorProxy): Deleted.
(WebKit::WebInspectorProxy::inspectorPageGroup): Deleted.
(WebKit::WebInspectorProxy::setAttachedWindowHeight): Deleted.
(WebKit::WebInspectorProxy::enableRemoteInspection): Deleted.
(WebKit::WebInspectorProxy::open): Deleted.

  • UIProcess/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::create):
(WebKit::WebInspectorProxy::inspectedPage):
(WebKit::WebInspectorProxy::page): Deleted.

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::dockButtonClicked):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter attachRight:]):
(-[WKWebInspectorProxyObjCAdapter attachBottom:]):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::windowFrameDidChange):
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(-[WKWebInspectorProxyObjCAdapter close]): Deleted.

1:48 PM Changeset in webkit [179704] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][Cocoa] Populate m_contentsFilter bloom filter from the main dispatch queue NetworkCacheStorage::initialize()
https://bugs.webkit.org/show_bug.cgi?id=141297

Reviewed by Antti Koivisto.

Populate m_contentsFilter bloom filter from the main dispatch queue
NetworkCacheStorage::initialize() to avoid thread-safety issues.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::initialize):

1:46 PM Changeset in webkit [179703] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Use deleteFile() in NetworkCacheStorageCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=141299

Reviewed by Antti Koivisto.

Use deleteFile() in NetworkCacheStorageCocoa.mm to simplify the code
a bit.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):

1:29 PM Changeset in webkit [179702] by Chris Dumez
  • 7 edits
    2 adds in trunk

Free memory read under MemoryCache::pruneLiveResourcesToSize()
https://bugs.webkit.org/show_bug.cgi?id=141292
<rdar://problem/19725522>

Reviewed by Antti Koivisto.

In MemoryCache::pruneLiveResourcesToSize(), we were iterating over the
m_liveDecodedResources ListHashSet and possibly calling
CachedResource::destroyDecodedData() on the current value. Doing so
would cause a call to ListHashSet::remove() to remove the value pointed
by the current iterator, thus invalidating our iterator.

In this patch, we increment the ListHashSet iterator *before* calling
CachedResource::destroyDecodedData(), while the current iterator is
still valid. Note that this is safe because unlike iteration of most
WTF Hash data structures, iteration is guaranteed safe against mutation
of the ListHashSet, except for removal of the item currently pointed to
by a given iterator.

Test: http/tests/cache/memory-cache-pruning.html

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):

12:12 PM Changeset in webkit [179701] by Brian Burg
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
https://bugs.webkit.org/show_bug.cgi?id=141293

Reviewed by Timothy Hatcher.

The timeline overview's ruler was forcing repaints of divider labels even if the labels
had not changed since the last requestAnimationFrame. Bail out early if nothing changed.

The timeline overview and its graphs were updating layout using requestAnimationFrame
even when the TimelineContentView is not visible. Fix this by propagating visibility
changes to subviews, and not updating layout when hidden.

The above change also fixes an assertion sometimes encountered when the timeline view
tries to cache an element's offset width, but cannot because it isn't visible.

  • UserInterface/Views/TimelineContentView.js:

(WebInspector.TimelineContentView.prototype.shown):
(WebInspector.TimelineContentView.prototype.hidden):

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.get visible):
(WebInspector.TimelineOverview.prototype.shown):
(WebInspector.TimelineOverview.prototype.hidden):
(WebInspector.TimelineOverview.prototype._needsLayout):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype.get visible):
(WebInspector.TimelineOverviewGraph.prototype.shown):
(WebInspector.TimelineOverviewGraph.prototype.hidden):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.updateLayout):

11:49 AM Changeset in webkit [179700] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Mark another group of assertion failures.

  • platform/win/TestExpectations:
11:37 AM Changeset in webkit [179699] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

[Mac] HLS <video> will not fire 'progress' events, only 'stalled'.
https://bugs.webkit.org/show_bug.cgi?id=141284

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/media/hls/hls-progress.html

totalBytes() will always return 0 for HLS streams, which will cause didLoadingProgress() to always
return false. Skip this optimization.

Drive-by fix: duration() will always return 0 for this class as well. Use durationMediaTime() instead.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress):

LayoutTests:

  • http/tests/media/hls/hls-progress-expected.txt: Added.
  • http/tests/media/hls/hls-progress.html: Added.
11:29 AM Changeset in webkit [179698] by ap@apple.com
  • 2 edits in trunk/Tools

Disable retries on Mac debug testers
https://bugs.webkit.org/show_bug.cgi?id=141296

Reviewed by Simon Fraser.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
10:40 AM Changeset in webkit [179697] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.
Mark compositing/reflections/masked-reflection-on-composited.html flaky.

  • platform/mac/TestExpectations:
10:36 AM Changeset in webkit [179696] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/xmlhttprequest/event-listener-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=33342

Reviewed by Anders Carlsson.

Speculative fix.

  • http/tests/xmlhttprequest/print-content-type.cgi: Make the resource uncacheable,

so that it doesn't load too quickly.

10:07 AM Changeset in webkit [179695] by Brent Fulgham
  • 58 edits in trunk/Source/WebCore

Move InstanceInvalidationGuard/UpdateBlocker to SVGElement from SVGElementInstance
https://bugs.webkit.org/show_bug.cgi?id=141148

Patch by Darin Adler <Darin Adler> on 2015-02-05
Reviewed by Brent Fulgham and Anders Carlsson.

Inspired by this change Rob Buis made in Blink:

http://src.chromium.org/viewvc/blink?view=revision&revision=173343

I actually wrote the whole thing and then discovered we did it almost identically.

  • svg/SVGAnimatedTypeAnimator.cpp:

(WebCore::SVGElementAnimatedPropertyList::setInstanceUpdatesBlocked): Added this
helper function to get around a circular header dependency.

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction): Use setInstanceUpdatesBlocked.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removedFrom): Use invalidateInstances.
(WebCore::SVGElement::finishParsingChildren): Ditto.
(WebCore::SVGElement::svgAttributeChanged): Ditto.
(WebCore::SVGElement::childrenChanged): Ditto.
(WebCore::SVGElement::setInstanceUpdatesBlocked): Added an assertion that will
catch anyone who nests InstanceUpdateBlocker by accident.
(WebCore::SVGElement::invalidateInstances): Moved this here from
SVGElementInstance::invalidateAllInstancesOfElement. I had already modified this
so it had nothing to do with SVGElementInstance, so it was a simple matter of
converting this into a member function. Added a FIXME about the mysterious
updateStyleIfNeeded that makes multiple tests fail if it's removed.

  • svg/SVGElement.h: Added public InstanceUpdateBlocker class, protected

InstanceInvalidationGuard class, and private invalidateInstances function.
Unlike the ones in SVGElementInstance these use references so they are then
not copyable without using the WTF_MAKE_NONCOPYABLE macro.

  • svg/SVGElementInstance.cpp:

(WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Deleted.
(WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker): Deleted.
(WebCore::SVGElementInstance::InstanceUpdateBlocker::~InstanceUpdateBlocker): Deleted.

  • svg/SVGElementInstance.h: Removed InvalidationGuard, InstanceUpdateBlocker, and

invalidateAllInstancesOfElement. Didn't do any further cleanup since we soon will
delete this entire file.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::svgAttributeChanged): Updated to use new name and reference
instead of pointer.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::applyCSSPropertyToTargetAndInstances): Ditto.
(WebCore::removeCSSPropertyFromTargetAndInstances): Ditto.
(WebCore::notifyTargetAndInstancesAboutAnimValChange): Ditto.

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation): Ditto.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::svgAttributeChanged): Ditto.

  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::svgAttributeChanged): Ditto.

  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged): Ditto.

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::svgAttributeChanged): Ditto.

  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::svgAttributeChanged): Ditto.

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::svgAttributeChanged): Ditto.

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::svgAttributeChanged): Ditto.

  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::svgAttributeChanged): Ditto.

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::svgAttributeChanged): Ditto.

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged): Ditto.

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::svgAttributeChanged): Ditto.

  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::svgAttributeChanged): Ditto.

  • svg/SVGFEMergeNodeElement.cpp:

(WebCore::SVGFEMergeNodeElement::svgAttributeChanged): Ditto.

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::svgAttributeChanged): Ditto.

  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::svgAttributeChanged): Ditto.

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::svgAttributeChanged): Ditto.

  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::svgAttributeChanged): Ditto.

  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::svgAttributeChanged): Ditto.

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::svgAttributeChanged): Ditto.

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged): Ditto.

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged): Ditto.

  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::svgAttributeChanged): Ditto.

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::svgAttributeChanged): Ditto.

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged): Ditto.

  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::svgAttributeChanged): Ditto.

  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::svgAttributeChanged): Ditto.

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::svgAttributeChanged): Ditto.

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::svgAttributeChanged): Ditto.

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged): Ditto.

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::svgAttributeChanged): Ditto.

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::svgAttributeChanged): Ditto.

  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::svgAttributeChanged): Ditto.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged): Ditto.

  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::svgAttributeChanged): Ditto.

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::svgAttributeChanged): Ditto.

  • svg/SVGSymbolElement.cpp:

(WebCore::SVGSymbolElement::svgAttributeChanged): Ditto.

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::svgAttributeChanged): Ditto.

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::svgAttributeChanged): Ditto.

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::svgAttributeChanged): Ditto.

  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::svgAttributeChanged): Ditto.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged): Ditto.

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::svgAttributeChanged): Ditto.

9:56 AM Changeset in webkit [179694] by mitz@apple.com
  • 2 edits in trunk/Tools

Need a way to force $xcodeSDK in webkitdirs.pm
https://bugs.webkit.org/show_bug.cgi?id=141291

Reviewed by Anders Carlsson.

  • Scripts/webkitdirs.pm:

(setXcodeSDK): Added.

9:25 AM Changeset in webkit [179693] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Remind ourselves to remove work-around code
https://bugs.webkit.org/show_bug.cgi?id=141289

Unreviewed gardening: Add a reminder FIXME to CSSParser
so we can remove the MSVC-specific hack in the future.

  • css/CSSParser.cpp:
9:04 AM Changeset in webkit [179692] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More Unreviewed gardening.

  • platform/win/TestExpectations:
8:50 AM Changeset in webkit [179691] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Do not destroy RenderQuote's text fragment child when quotation mark string is changing.
https://bugs.webkit.org/show_bug.cgi?id=141271
rdar://problem/18169375

Reviewed by Antti Koivisto.

Similar approach as https://codereview.chromium.org/679593004/

This patch ensures that laying out a RenderQuote does not force a sibling RenderQuote's
child renderer(RenderText) to be destroyed.
BreakingContext holds a pointer to the next renderer on the line (BreakingContext::m_nextObject).
While laying out the line, initiated by BreakingContext, placing the current renderer could end up destroying the "next" renderer.
This happens when the pseudo after quotation mark(RenderQuote) becomes floated, the sibling <q>'s pseudo
before text needs to be changed (from " to ') so that we don't end up with 2 sets of the same opening
strings.
The fix is to reuse the RenderTextFragment object instead of destroy/recreate it.

Source/WebCore:

Test: fast/css/content/quote-crash-when-floating.html

  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::RenderQuote):
(WebCore::fragmentChild):
(WebCore::RenderQuote::updateText):

  • rendering/RenderQuote.h:
  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::setText):
(WebCore::RenderTextFragment::setContentString):

  • rendering/RenderTextFragment.h:

LayoutTests:

  • fast/css/content/quote-crash-when-floating-expected.txt: Added.
  • fast/css/content/quote-crash-when-floating.html: Added.
6:31 AM Changeset in webkit [179690] by Antti Koivisto
  • 4 edits in trunk/Source/WebKit2

Avoid copying std::functions across threads in NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=141273

Reviewed by Andreas Kling.

The current approach is risky. There is possiblity that captured variables are
deleted in an unexpected thread.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::retrieve):

The capture trick here is no longer needed.

  • NetworkProcess/cache/NetworkCacheStorage.h:

For each cache operation we create Retrive/Store/UpdateOperation object kept alive by the active operation map.
This object captures all parameters of the operation including the lambda. When the operation completes
the object is removed from the map in the main thread, ensuring safe destruction.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
(WebKit::NetworkCacheStorage::dispatchPendingRetrieveOperations):
(WebKit::retrieveActive):

Instead of maintaining a separate write cache we just look through the active write and update maps.

(WebKit::NetworkCacheStorage::retrieve):

Use fixed sized priority array rather than a dynamic one. Vector<Deque<std::unique_ptr>> doesn't quite work.

(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::clear):

5:34 AM Changeset in webkit [179689] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[Media iOS] Add a debug setting to always show the optimized fullscreen button
https://bugs.webkit.org/show_bug.cgi?id=141277
<rdar://problem/19724471>

Reviewed by Eric Carlson.

Add a debug option so that we can test the optimized fullscreen
control on media that doesn't support it.

  • Modules/mediacontrols/mediaControlsiOS.js: Add gSimulateOptimizedFullscreenAvailable.

(ControllerIOS.prototype.createControls): Check the setting.
(ControllerIOS.prototype.configureInlineControls): Ditto.
(ControllerIOS.prototype.formatTime): Drive-by whitespace cleanup.
(ControllerIOS.prototype.handleBaseGestureChange):
(ControllerIOS.prototype.handleWrapperTouchStart):
(ControllerIOS.prototype.handleOptimizedFullscreenTouchEnd):
(ControllerIOS.prototype.handlePresentationModeChange): Drive-by variable renaming.

5:02 AM Changeset in webkit [179688] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Set all tests of svg/W3C-SVG-1.1 and svg/W3C-SVG-1.1-SE to flaky.
Because all tests looks like flaky now. This will be handled on Bug 137138. Additionally
duplicated tests are removed.

  • platform/efl/TestExpectations:
2:19 AM Changeset in webkit [179687] by calvaris@igalia.com
  • 33 edits
    11 adds in trunk

[Streams API] Implement a barebone ReadableStream interface
https://bugs.webkit.org/show_bug.cgi?id=141045

Reviewed by Benjamin Poulain.

.:

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake: Made streams API compilation on by default.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

This patch implements the ReadableStream IDL (https://streams.spec.whatwg.org/#rs-model).
No functionality is yet added.
ReadableStreamSource is expected to be implemented for native sources (such as HTTP sources)
as well as JavaScript source through ReadableStreamJSSource.

Test: streams/readablestream-constructor.html

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/streams/ReadableStream.cpp: Added.

(WebCore::ReadableStream::create):
(WebCore::ReadableStream::ReadableStream):
(WebCore::ReadableStream::~ReadableStream):
(WebCore::ReadableStream::state):
(WebCore::ReadableStream::closed):
(WebCore::ReadableStream::ready):

  • Modules/streams/ReadableStream.h: Added.
  • Modules/streams/ReadableStream.idl: Added.
  • Modules/streams/ReadableStreamSource.h: Added.
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.vcxproj/WebCoreCommon.props:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSReadableStreamCustom.cpp: Added.

(WebCore::JSReadableStream::read):
(WebCore::JSReadableStream::ready):
(WebCore::JSReadableStream::closed):
(WebCore::JSReadableStream::cancel):
(WebCore::JSReadableStream::pipeTo):
(WebCore::JSReadableStream::pipeThrough):
(WebCore::constructJSReadableStream):

  • bindings/js/ReadableStreamJSSource.cpp: Added.

(WebCore::ReadableStreamJSSource::create):
(WebCore::ReadableStreamJSSource::ReadableStreamJSSource):
(WebCore::ReadableStreamJSSource::setInternalError):

  • bindings/JSReadableStreamJSSource.h: Added.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm: Added streams-api compilation switch.

LayoutTests:

Added readablestream-constructor test that checks ReadableStream properties and state.
Rebased global-constructor-attributes.html expectations to add ReadableStream description.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
  • streams/readablestream-constructor-expected.txt: Added.
  • streams/readablestream-constructor.html: Added.
1:54 AM Changeset in webkit [179686] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix.

  • public/v2/app.js:

(App.IndexController.gridChanged): Use store.createRecord to create a custom dashboard as required by Ember.js

1:25 AM Changeset in webkit [179685] by Lucas Forschler
  • 3 edits in branches/safari-600.1.4.15-branch

Merged r178953. rdar://problem/19651478

1:25 AM Changeset in webkit [179684] by Csaba Osztrogonác
  • 4 edits in trunk/LayoutTests

Remove Mountain Lion specific test expectations
https://bugs.webkit.org/show_bug.cgi?id=141243

Reviewed by Alexey Proskuryakov.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:59 AM Changeset in webkit [179683] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.15-branch/LayoutTests

Merged r178953. rdar://problem/19651478

12:58 AM Changeset in webkit [179682] by saambarati1@gmail.com
  • 6 edits in trunk

Crash in uninitialized deconstructing variable.
https://bugs.webkit.org/show_bug.cgi?id=141070

Reviewed by Michael Saboff.

Source/JavaScriptCore:

According to the ES6 spec, when a destructuring pattern occurs
as the left hand side of an assignment inside a var declaration
statement, the assignment must also have a right hand side value.
"var {x} = {};" is a legal syntactic statement, but,
"var {x};" is a syntactic error.

Section 13.2.2 of the latest draft ES6 spec specifies this requirement:
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-variable-statement

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVarDeclaration):
(JSC::Parser<LexerType>::parseVarDeclarationList):
(JSC::Parser<LexerType>::parseForStatement):

  • parser/Parser.h:

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
12:58 AM Changeset in webkit [179681] by Lucas Forschler
  • 3 edits in branches/safari-600.1.4.15-branch/LayoutTests

Merged r178795. rdar://problem/19651478

12:55 AM Changeset in webkit [179680] by Lucas Forschler
  • 11 edits
    1 copy in branches/safari-600.1.4.15-branch

Merged r178768. rdar://problem/19651478

12:19 AM Changeset in webkit [179679] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r179329.

Feb 4, 2015:

11:49 PM Changeset in webkit [179678] by Lucas Forschler
  • 6 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merged r178661. rdar://problem/19718944

11:04 PM Changeset in webkit [179677] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r178363. rdar://problem/19718916

10:42 PM Changeset in webkit [179676] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r178311. rdar://problem/19718965

10:18 PM Changeset in webkit [179675] by Lucas Forschler
  • 4 edits
    4 copies in branches/safari-600.1.4.15-branch

Merged r177165. rdar://problem/19718875

9:41 PM Changeset in webkit [179674] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r177089. rdar://problem/19718905

9:20 PM Changeset in webkit [179673] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Reactive (some) Media tests. Test results gardening.

  • platform/win/TestExpectations:
8:59 PM Changeset in webkit [179672] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

8:57 PM Changeset in webkit [179671] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.17

New tag.

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

filter-build-webkit: reduce more unfiltered output
https://bugs.webkit.org/show_bug.cgi?id=141282

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-04
Reviewed by Daniel Bates.

  • Scripts/filter-build-webkit:

Report CompileDTraceScript and Preprocess lines as successful.

8:35 PM Changeset in webkit [179669] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Unreviewed project file corrections.

Correct some parsing errors caused by recent manual editing of
the project files.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
8:28 PM Changeset in webkit [179668] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Selection callout does not follow selection when double-tap scrolling
https://bugs.webkit.org/show_bug.cgi?id=141214

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-04
Reviewed by Benjamin Poulain.

Implement the delegate that gets called after UIScrollView
setContentOffset animations. When scrolling to a rect, do the normal
willScroll, didScroll actions to update the selection assistant.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToRect:origin:minimumScrollDistance:]):
(-[WKWebView scrollViewDidEndScrollingAnimation:]):

8:07 PM Changeset in webkit [179667] by Brent Fulgham
  • 1 edit
    3 adds in trunk/LayoutTests/platform/win

Win Gardening (Activate Media tests)

7:52 PM Changeset in webkit [179666] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix a build break on EFL port since r179648.

  • heap/MachineStackMarker.cpp: EFL port doesn't use previousThread variable.

(JSC::MachineThreads::tryCopyOtherThreadStacks):

7:40 PM Changeset in webkit [179665] by matthew_hanson@apple.com
  • 14 edits in branches/safari-600.5-branch

Merge r179133. rdar://problem/19526158

7:40 PM Changeset in webkit [179664] by matthew_hanson@apple.com
  • 8 edits
    2 adds in branches/safari-600.5-branch

Merge r179071. rdar://problem/19451292

7:40 PM Changeset in webkit [179663] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Merge r179070. rdar://problem/19451292

7:40 PM Changeset in webkit [179662] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.5-branch

Merge r178875. rdar://problem/19617631

7:36 PM Changeset in webkit [179661] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

New perf dashboard doesn't preserve the number of days when clicking on a dashboard chart
https://bugs.webkit.org/show_bug.cgi?id=141280

Reviewed by Chris Dumez.

Fixed the bug by passing in "since" as a query parameter to the charts page.

Also fixed the styling issue that manifests when a JSON fetching fails on "Dashboard" page.

  • public/v2/app.css: Fixed CSS rules for error messages shown in the place of charts.
  • public/v2/app.js:

(App.IndexController): Changed the default number of days from one month to one week.
(App.IndexController._sharedDomainChanged): Set "since" property on the controller.

  • public/v2/index.html: Pass in "since" property on the controller as a query parameter.
7:33 PM Changeset in webkit [179660] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

New perf dashboard erroneously clears zoom when poping history items
https://bugs.webkit.org/show_bug.cgi?id=141278

Reviewed by Chris Dumez.

The bug was caused by _sharedZoomChanged updating overviewSelection without updating mainPlotDomain.

Updating overviewSelection resulted in _overviewSelectionChanged, which observes changes to overviewSelection,
to schedule a call to propagateZoom, which in turn overrode "sharedZoom" we just parsed from the query string.

  • public/v2/app.js:

(App.PaneController._overviewSelectionChanged): Don't schedule propagateZoom if the selected domain is already
shown in the main plot.
(App.PaneController._sharedZoomChanged): Set both overviewSelection and mainPlotDomain to avoid overriding
"sharedZoom" via propagateZoom inside _overviewSelectionChanged.

7:11 PM Changeset in webkit [179659] by Joseph Pecoraro
  • 9 edits in trunk

Web Inspector: ES6: Improved Console Support for Symbol Objects
https://bugs.webkit.org/show_bug.cgi?id=141173

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Runtime.json:

New type, "symbol".

  • inspector/InjectedScriptSource.js:

Handle Symbol objects in a few places. They don't have properties
and they cannot be implicitly converted to strings.

Source/WebInspectorUI:

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.prototype._isSymbol):
Symbols have an objectId because it is a non-primitive that cannot be passed
by value, however it cannot have properties, so handle some cases.

  • UserInterface/Views/LogContentView.css:

(.console-formatted-symbol):
Give Symbol's their own color.

LayoutTests:

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

Update the RemoteObject test to include Symbols.

6:36 PM Changeset in webkit [179658] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-600.5-branch

Merge r178490. rdar://problem/19687156

6:36 PM Changeset in webkit [179657] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-600.5-branch

Merge r179571. rdar://problem/19673708

6:36 PM Changeset in webkit [179656] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.5-branch

Merge r176750. rdar://problem/19617755

6:36 PM Changeset in webkit [179655] by matthew_hanson@apple.com
  • 4 edits
    3 adds in branches/safari-600.5-branch

Merge r175236. rdar://problem/19451378

5:05 PM Changeset in webkit [179654] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Undo gardening: Restoring the expected ERROR message since that is not the cause of the bot unhappiness.

Not reviewed.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):

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

[iOS] add method to toggle playback when in the background
https://bugs.webkit.org/show_bug.cgi?id=141270

Reviewed by Dean Jackson.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController togglePlaybackEvenWhenInBackground:]): Added.

4:50 PM Changeset in webkit [179652] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Changed expected ERROR message to WARNING to make test bots happy.

Rubber stamped by Simon Fraser.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):

4:38 PM Changeset in webkit [179651] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.4.6

New Tag.

4:37 PM Changeset in webkit [179650] by dburkart@apple.com
  • 9 edits in trunk/Tools

Botwatcher's Dashboard is cramped
https://bugs.webkit.org/show_bug.cgi?id=140273

Reviewed by Alexey Proskuryakov.

Add a heading key which will allow for arbitrary headings in builder queues.

4:36 PM Changeset in webkit [179649] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-600.4.6

Remove tag.

4:32 PM Changeset in webkit [179648] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

r179576 introduce a deadlock potential during GC thread suspension.
<https://webkit.org/b/141268>

Reviewed by Michael Saboff.

http://trac.webkit.org/r179576 introduced a potential for deadlocking.
In the GC thread suspension loop, we currently delete
MachineThreads::Thread that we detect to be invalid. This is unsafe
because we may have already suspended some threads, and one of those
suspended threads may still be holding the C heap lock which we need
for deleting the invalid thread.

The fix is to put the invalid threads in a separate toBeDeleted list,
and delete them only after GC has resumed all threads.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::removeCurrentThread):

  • Undo refactoring removeThreadWithLockAlreadyAcquired() out of removeCurrentThread() since it is no longer needed.

(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • Put invalid Threads on a threadsToBeDeleted list, and delete those Threads only after all threads have been resumed.

(JSC::MachineThreads::removeThreadWithLockAlreadyAcquired): Deleted.

  • heap/MachineStackMarker.h:
4:32 PM Changeset in webkit [179647] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

New perf dashboard shows null as the aggregator name if no aggregation is done
https://bugs.webkit.org/show_bug.cgi?id=141256

Reviewed by Chris Dumez.

Don't show the aggregator name if there isn't one.

  • public/v2/manifest.js:

(App.Metric.label):

4:21 PM Changeset in webkit [179646] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.4.6

New Tag.

4:00 PM Changeset in webkit [179645] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r176750. rdar://problem/19718932

3:38 PM Changeset in webkit [179644] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Optimized equal() functions in StringImpl.h are not ASan compatible
https://bugs.webkit.org/show_bug.cgi?id=141258

Reviewed by Daniel Bates.

  • wtf/text/StringImpl.h: (WTF::equal): Add custom implementations for ASan.
3:29 PM Changeset in webkit [179643] by Lucas Forschler
  • 3 edits in branches/safari-600.1.4.15-branch

Merged r175641. rdar://problem/19718883

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

http/tests/misc/detached-frame-console.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141267

3:27 PM Changeset in webkit [179641] by jer.noble@apple.com
  • 20 edits
    3 copies
    10 adds in trunk

[Mac][EME] Support ClearKey encryption with AES128-encrypted HLS
https://bugs.webkit.org/show_bug.cgi?id=140825

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/clearkey/clear-key-hls-aes128.html

Add support for ClearKey encryption when used with an AES-128 encrypted HLS stream.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::installedCDMFactories): Add the CDMPrivateClearKey factory.

  • Modules/encryptedmedia/CDMPrivateClearKey.cpp:

(WebCore::CDMPrivateClearKey::supportsKeySystem): Support the "org.w3c.clearkey" key system.
(WebCore::CDMPrivateClearKey::supportsKeySystemAndMimeType): Ditto.
(WebCore::CDMPrivateClearKey::supportsMIMEType): Ditto.
(WebCore::CDMPrivateClearKey::createSession): Create a CDMSessionClearKey.

  • Modules/encryptedmedia/CDMPrivateClearKey.h:

(WebCore::CDMPrivateClearKey::create): Simple factory.
(WebCore::CDMPrivateClearKey::~CDMPrivateClearKey): Virtual destructor.
(WebCore::CDMPrivateClearKey::CDMPrivateClearKey): Simple destructor.

  • Modules/encryptedmedia/CDMSessionClearKey.cpp: Added.

(WebCore::clearKeyVM): Static method returning the VM to be used by JSON parsing.
(WebCore::CDMSessionClearKey::CDMSessionClearKey): Simple constructor.
(WebCore::CDMSessionClearKey::~CDMSessionClearKey): Simple destructor.
(WebCore::CDMSessionClearKey::generateKeyRequest): Store the initData, ensure that it consists of a UTF8-encoded key

URI, and return same.

(WebCore::CDMSessionClearKey::releaseKeys): Purged all cached keys.
(WebCore::CDMSessionClearKey::update): Parse raw JSON-encoded JWK keys, rejecting non-AES, non-oct keys.
(WebCore::CDMSessionClearKey::cachedKeyForKeyID): Return cached keys.

  • Modules/encryptedmedia/CDMSessionClearKey.h:

Add support for the "org.w3c.clearkey" CDM to MediaPlayerPrivateAVFoundationObjC, and do so in a platform-agnostic
way by simply asking for raw key data from MediaPlayerClient when notified that a key has been added.

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

(WebCore::keySystemIsSupported):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
(WebCore::fulfillRequestWithKeyData): Added utility method.
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::keyAdded):

Pipe a keyAdded() notification down to MediaPlayer and a cachedKeyForKeyId() request up to CDMSessionClearKey:

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::cachedKeyForKeyId):
(WebCore::MediaKeySession::addKeyTimerFired):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::keyAdded):
(WebCore::MediaKeys::cachedKeyForKeyId):

  • Modules/encryptedmedia/MediaKeys.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::keyAdded):

  • html/HTMLMediaElement.h:
  • platform/graphics/CDMSession.h:

(WebCore::CDMSession::cachedKeyForKeyID):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::keyAdded):
(WebCore::MediaPlayer::cachedKeyForKeyId):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerCachedKeyForKeyId):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::keyAdded):

Add new files to project:

  • WebCore.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:

LayoutTests:

  • http/tests/media/clearkey/clear-key-hls-aes128-expected.txt: Added.
  • http/tests/media/clearkey/clear-key-hls-aes128.html: Added.
  • http/tests/media/clearkey/support.js: Added.

(stringToUInt8Array):
(uInt8ArrayToString):
(base64EncodeUint8Array):

  • http/tests/media/resources/hls/clearkey/crypt0.key: Added.
  • http/tests/media/resources/hls/clearkey/iframe_index.m3u8: Added.
  • http/tests/media/resources/hls/clearkey/main0.ts: Added.
  • http/tests/media/resources/hls/clearkey/prog_index.m3u8: Added.
  • media/video-test.js:

(waitForEventOnceOn):

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

Web Inspector: Clean up Object Property Descriptor Collection
https://bugs.webkit.org/show_bug.cgi?id=141222

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

  • inspector/InjectedScriptSource.js:

Use a list of options when determining which properties to collect
instead of a few booleans with overlapping responsibilities.

2:53 PM Changeset in webkit [179639] by Simon Fraser
  • 3 edits in trunk/Tools

WKTR should not use -mainScreen to pick a color profile
https://bugs.webkit.org/show_bug.cgi?id=141265

Reviewed by Tim Horton.

-[NSScreen mainScreen] depends on the active window, so use the first screen
(which is the one we put the window on anyway).

Do some cleanup in DRT that makes the code look similar.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

2:42 PM Changeset in webkit [179638] by commit-queue@webkit.org
  • 4 edits
    4 deletes in trunk

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

Off-by-one error causing flaky behavior in webaudio
/audiobuffersource-negative-playbackrate.html (Requested by
jernoble_ on #webkit).

Reverted changeset:

"[WebAudio] AudioBufferSourceNodes should accurately play
backwards if given a negative playbackRate."
https://bugs.webkit.org/show_bug.cgi?id=140955
http://trac.webkit.org/changeset/179618

2:38 PM Changeset in webkit [179637] by Simon Fraser
  • 2 edits in trunk/Tools

LayoutTestHelper should set the color profile of all displays
https://bugs.webkit.org/show_bug.cgi?id=141260

Reviewed by Tim Horton.

WebKitTestRunner can (erroneously) grab the colorspace of the "main" screen.
which is the screen with the active window. Make things more robust by changing
the colorspace of all displays, not just the main screen, when running layout tests.

  • DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig: Enable ARC
  • DumpRenderTree/mac/LayoutTestHelper.m:

(originalColorProfileURLs):
(colorProfileURLForDisplay):
(displayUUIDStrings):
(saveDisplayColorProfiles):
(setDisplayColorProfile):
(restoreDisplayColorProfiles):
(installLayoutTestColorProfile):
(restoreUserColorProfile):
(main):
Store display color profiles by map of UUID strings to URLs (NSUUID and CFUUID are not
toll-free bridged, sadly). Use the map to restore all profiles on exit.
Convert to use more Obj-C types.

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

Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
https://bugs.webkit.org/show_bug.cgi?id=139659

Patch by Nikita Vasilyev <Nikita Vasilyev> on 2015-02-04
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
Use non-monospace font to fit the placeholder text on a single line and
match the color if the native placeholder.

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

Web Inspector: console.table with columnName filter for non-existent property should still show column
https://bugs.webkit.org/show_bug.cgi?id=141066

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

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::addToFrontend):
When a user provides a second argument, e.g. console.table(..., columnNames),
then pass that second argument to the frontend.

  • inspector/InjectedScriptSource.js:

Add a FIXME about the old, unused path now.

Source/WebInspectorUI:

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
(WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
If a second argument was provided to console.table, try to extract a list
of string names to use for the object properties. Output a table with
the provided column names, in the specified order. Also, use this
opportunity to mark missing properties with an em dash.

2:25 PM Changeset in webkit [179634] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r174085. rdar://problem/19718895

2:05 PM Changeset in webkit [179633] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.5-branch

Merge r179072. rdar://problem/19670526

2:05 PM Changeset in webkit [179632] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.5-branch/Source/WebKit2

Merge r179066. rdar://problem/19670515

2:04 PM Changeset in webkit [179631] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.5-branch

Merge r179065. rdar://problem/19670601

2:04 PM Changeset in webkit [179630] by Simon Fraser
  • 3 edits in trunk/Source/WebKit2

[iOS WK2] Layers that are created and destroyed in the same transaction shouldn't be encoded
https://bugs.webkit.org/show_bug.cgi?id=141228

Reviewed by Tim Horton.

With UI-side compositing, it was possible for layers to get created and
destroyed in the same transaction (e.g. two layouts before a single layer
tree commit). When that happened we would encode layer creation properties
but not encode layer properties, since the layer would be unreachable.

Fix by removing deleted layers from the created layers list, which is
converted into a map for easy searching.

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

(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
(WebKit::RemoteLayerTreeContext::buildTransaction):

2:04 PM Changeset in webkit [179629] by dbates@webkit.org
  • 2 edits in trunk/Tools

test-webkitpy fails on Mac without iphoneos SDK
https://bugs.webkit.org/show_bug.cgi?id=141255
<rdar://problem/19619691>

I inadvertently committed the wrong exception message. Fix up the exception message
to instruct a person to install the iOS SDK when it cannot be found.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.determine_full_port_name):

2:02 PM Changeset in webkit [179628] by youenn.fablet@crf.canon.fr
  • 14 edits in trunk

W3C test importer should sort the list of files when generating the w3c-import.log
https://bugs.webkit.org/show_bug.cgi?id=141156

Reviewed by Bem Jones-Bey.

LayoutTests/imported/w3c:

Updated web-platform-tests logs according importer file sorting.

  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/fonts/w3c-import.log:
  • web-platform-tests/images/w3c-import.log:
  • web-platform-tests/tools/runner/css/w3c-import.log:
  • web-platform-tests/tools/runner/fonts/w3c-import.log:
  • web-platform-tests/tools/runner/w3c-import.log:
  • web-platform-tests/tools/scripts/w3c-import.log:
  • web-platform-tests/tools/sslutils/w3c-import.log:
  • web-platform-tests/tools/w3c-import.log:
  • web-platform-tests/tools/webdriver/webdriver/w3c-import.log:

Tools:

Sort explicitly the list of imported files written in the w3c-import.log.
Removed logging of the import date.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.write_import_log):

1:39 PM Changeset in webkit [179627] by hyatt@apple.com
  • 10 edits
    2 adds in trunk

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.

Tables don't repaginate properly when the pagination height changes or the pagination offset changes.
https://bugs.webkit.org/show_bug.cgi?id=141207
<rdar://problem/18387659>

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/multicol/table-dynamic-movement.html

Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it.

Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table
ended up getting marked for relayout.

Make sure rows do the right thing as well.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):

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

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTable.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):

LayoutTests:

  • fast/multicol/table-dynamic-movement-expected.html: Added.
  • fast/multicol/table-dynamic-movement.html: Added.
12:55 PM Changeset in webkit [179626] by commit-queue@webkit.org
  • 12 edits
    1 move
    14 adds in trunk

When using SVG as an image, we should load datauri images when these images are not in the image cache.
https://bugs.webkit.org/show_bug.cgi?id=99677.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-04
Reviewed by Darin Adler.
Source/WebCore:

Data URI sub-resources are not loaded because the networking context of FrameLoader
attached to the SubResourceLoader is set to null. This is done intentionally to
disallow any resource from loading external sub-resources. For example if an <img>
tag has its 'src' attribute points to an svg file, this svg is not allowed to load
an external image through the 'xlink' attribute of an <image> element. This restriction
is not valid if the value of the 'xlink' attribute is a data URI. In this case the image
should be loaded into memory since there is no network traffic involved. All we need
to do is to decode the data part of the URI.

The fix is to pass the root FrameLoader, which has a valid NetworkingContext, through
the FrameLoaderClient, to the ResourceHandle::create() which uses the NetworkingContext
to decode the data and fire the load events of the data URI resources.

Tests: svg/as-image/svg-image-with-data-uri-background.html

svg/as-image/svg-image-with-data-uri-from-canvas.html
svg/as-image/svg-image-with-data-uri-images-disabled.html
svg/as-image/svg-image-with-data-uri-reloading.html
svg/as-image/svg-image-with-data-uri-use-data-uri.svg
svg/as-image/svg-image-with-svg-data-uri.html

  • accessibility/AccessibilityRenderObject.cpp:

Remove unreferenced header file.

  • loader/FrameLoaderClient.h:

Define the null virtual function dataProtocolLoader() which should return the FrameLoader
for loading data URI resources.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::dataProtocolFrameLoader):

  • loader/ResourceLoader.h:

Add ResourceLoader::dataProtocolFrameLoader() which returns the root FrameLoader. The
root FrameLoader is used to get a valid NetworkingContext which can be passed to
ResourceHandle::create() when url().protocolIsData().

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::load):
(WebCore::CachedImage::finishLoading):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldPerformImageLoad):
(WebCore::CachedResourceLoader::shouldDeferImageLoad):

  • loader/cache/CachedResourceLoader.h:

Allow loading data URI sub-resources as long as loading images is not disabled. Also we
need to call setDataProtocolLoader() before calling setData() for the isSVGImage case,
setData() will create a page by calling Page::createPageFromBuffer() via SVGImage::dataChanged(),
and we need to pass the correct FrameLoaderClient to the created FrameLoader of the main

frame of this page.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::SVGImage):
(WebCore::SVGImage::dataChanged):

  • svg/graphics/SVGImage.h:

Create a new FrameLoaderClient of type SVGFrameLoaderClient and set it in pageConfiguration
which is used when creating the page from the SVG data URI.

  • WebCore.xcodeproj/project.pbxproj:
  • svg/graphics/SVGImageChromeClient.h: Removed.
  • svg/graphics/SVGImageClients.h: Added.

Add a new class SVGImageChromeClient which overrides the function dataProtocolLoader().
Rename the header file SVGImageChromeClient.h to be SVGImageClients.h since it now
includes the classes SVGImageChromeClient and SVGFrameLoaderClient.

LayoutTests:

  • svg/as-image/resources/image-with-nested-data-uri-images.svg: Added.

This SVG has a tree of depth = 5 of nested data URI images. All the data URI images are
SVG images expect the innermost one which is a png data URI image.

  • svg/as-image/resources/image-with-nested-rects.svg: Added.

This SVG produces the same drawing as image-with-nested-data-uri-images.svg does but
it uses <rect> SVG elements instead.

  • svg/as-image/svg-image-with-data-uri-background-expected.html: Added.
  • svg/as-image/svg-image-with-data-uri-background.html: Added.

Test the data URI SVG as a css background image.

  • svg/as-image/svg-image-with-data-uri-from-canvas-expected.html: Added.
  • svg/as-image/svg-image-with-data-uri-from-canvas.html: Added.

Test the data URI image when it is the result of drawing an SVG image on a canvas object.

  • svg/as-image/svg-image-with-data-uri-images-disabled-expected.html: Added.
  • svg/as-image/svg-image-with-data-uri-images-disabled.html: Added.

Ensure the data uri images are not loaded if imagesEnabled is turned off.

  • svg/as-image/svg-image-with-data-uri-reloading-expected.html: Added.
  • svg/as-image/svg-image-with-data-uri-reloading.html: Added.

Test the data URI SVG when reloading the page.

  • svg/as-image/svg-image-with-data-uri-use-data-uri-expected.svg: Added.
  • svg/as-image/svg-image-with-data-uri-use-data-uri.svg: Added.

Test the data URI image when it is referenced from an SVG <use> tag.

  • svg/as-image/svg-image-with-svg-data-uri-expected.html: Added.
  • svg/as-image/svg-image-with-svg-data-uri.html: Added.

Test the data URI image when it is referenced from an HTML <img> tag.

12:51 PM Changeset in webkit [179625] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.
Mark http/tests/media/video-preload.html flaky.

  • platform/mac/TestExpectations:
12:41 PM Changeset in webkit [179624] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix a misplaced include in CaptionUserPreferencesMediaAF
https://bugs.webkit.org/show_bug.cgi?id=141239

Reviewed by Jer Noble.

  • page/CaptionUserPreferencesMediaAF.cpp:

CoreText is a system header, and there's already a good spot for it!

12:36 PM Changeset in webkit [179623] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix after r179611.

  • public/v2/interactive-chart.js:
12:26 PM Changeset in webkit [179622] by dbates@webkit.org
  • 4 edits in trunk/Tools

test-webkitpy fails on Mac without iphoneos SDK
https://bugs.webkit.org/show_bug.cgi?id=141255
<rdar://problem/19619691>

Reviewed by David Kilzer and Alexey Proskuryakov.

Fixes an issue where test-webkitpy fails on a Mac without the iOS SDK. We should
should not require the iphoneos SDK to be installed to run the webkitpy tests.

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

(PlatformInfo.xcode_sdk_version): Added; return the version of the specified SDK, if
installed. We take advantage of the behavior that xcrun --show-sdk-version only writes
to standard output if the SDK is installed to return the empty string if the SDK is
not installed.

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

(MockPlatformInfo.xcode_sdk_version): Added.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.determine_full_port_name): Modified to call PlatformInfo.xcode_sdk_version()
to get the version of the iphoneos SDK, if installed.

12:03 PM Changeset in webkit [179621] by saambarati1@gmail.com
  • 4 edits in trunk/Source/JavaScriptCore

TypeSet can use 1 byte instead of 4 bytes for its m_seenTypes member variable
https://bugs.webkit.org/show_bug.cgi?id=141204

Reviewed by Darin Adler.

There is no need to use 32 bits to store a TypeSet::RuntimeType set
bit-vector when the largest value for a single TypeSet::RuntimeType
is 0x80. 8 bits is enough to represent the set of seen types.

  • dfg/DFGFixupPhase.cpp:

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

  • runtime/TypeSet.cpp:

(JSC::TypeSet::doesTypeConformTo):

  • runtime/TypeSet.h:

(JSC::TypeSet::seenTypes):

11:41 AM Changeset in webkit [179620] by ddkilzer@apple.com
  • 3 edits in branches/safari-600.5-branch

Merged r175641. rdar://problem/19617601

11:41 AM Changeset in webkit [179619] by ddkilzer@apple.com
  • 4 edits
    2 adds in branches/safari-600.5-branch

Merged r174085. rdar://problem/19617658

11:37 AM Changeset in webkit [179618] by jer.noble@apple.com
  • 4 edits
    4 adds in trunk

[WebAudio] AudioBufferSourceNodes should accurately play backwards if given a negative playbackRate.
https://bugs.webkit.org/show_bug.cgi?id=140955

Reviewed by Eric Carlson.

Source/WebCore:

Tests: webaudio/audiobuffersource-negative-playbackrate-interpolated.html

webaudio/audiobuffersource-negative-playbackrate.html

Add support for playing an AudioBufferSourceNode at a negative playbackRate. Change the meaning of
start() to set the initial playback position at the end of the play range if the rate of playback
is negtive.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::AudioBufferSourceNode): Allow the playbackRate AudioParam to range from [-32, 32].
(WebCore::AudioBufferSourceNode::renderFromBuffer): Change variable names from "start" and "end" to "min" and "max"

for clarity. Add a non-interpolated and interpolated render step for negative playback.

(WebCore::AudioBufferSourceNode::start): Drive-by fix: default value of grainDuration is not 0.02.
(WebCore::AudioBufferSourceNode::startPlaying): Start playing at the end of the buffer for negative playback.
(WebCore::AudioBufferSourceNode::totalPitchRate): Allow the pitch to be negative.

LayoutTests:

  • webaudio/audiobuffersource-negative-playbackrate-expected.wav: Added.
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-expected.wav: Added.
  • webaudio/audiobuffersource-negative-playbackrate-interpolated.html: Added.
  • webaudio/audiobuffersource-negative-playbackrate.html: Added.

Get rid of extra HRTF padding as it's now unnecessary.

  • webaudio/resources/note-grain-on-testing.js:

(createSignalBuffer):
(verifyStartAndEndFrames):

11:03 AM Changeset in webkit [179617] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merged r178969. rdar://problem/19701455

10:38 AM Changeset in webkit [179616] by ap@apple.com
  • 2 edits in trunk/Tools

run-webkit-tests doesn't always capture ASan violation reports
https://bugs.webkit.org/show_bug.cgi?id=141231

Reviewed by Darin Adler.

  • Scripts/webkitpy/port/driver.py:

(Driver.run_test): Don't look for CrashReporter crash logs if a log was provided
by the driver already (as is the case with ASan violations, which are printed to
stderr).
(Driver._check_for_address_sanitizer_violation): Check if the line is a start of ASan
report.
(Driver._read_block): Give ASan enough time to symbolicate a crash, and put it into
a separate variable for reporting.

10:30 AM Changeset in webkit [179615] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Merged r172257. rdar://problem/19651179

10:20 AM Changeset in webkit [179614] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

10:16 AM Changeset in webkit [179613] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Perf dashboard doesn’t show the right unit for Safari UI tests
https://bugs.webkit.org/show_bug.cgi?id=141238

Reviewed by Darin Adler.

Safari UI tests use custom metrics that end with "Time". This patch teaches the perf dashboard how to
get the unit for a given metric based on the suffix of the metric name instead of hard-coding the mapping
between metrics and their units.

  • public/js/helper-classes.js:

(PerfTestRuns): Use the suffix of the metric name to compute the unit.

  • public/v2/manifest.js:

(App.Manifest.fetchRunsWithPlatformAndMetric): Ditto. Also set "useSI" property iff for "bytes".

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._constructGraphIfPossible): Respect useSI. Use toPrecision(3) otherwise.
(App.InteractiveChartComponent._relayoutDataAndAxes): Place the unit vertically on the left of ticks.

10:16 AM Changeset in webkit [179612] by eric.carlson@apple.com
  • 7 edits in trunk

video.attribute should not return true just because of fullscreen
https://bugs.webkit.org/show_bug.cgi?id=141219

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, updated media/video-fullscreeen-only-controls.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveControls):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.isFullScreen):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::controls): Don't consider fullscreen status.
(WebCore::HTMLMediaElement::configureMediaControls): Create controls if a video element

isn't allowed to play inline, or if it is in fullscreen.

LayoutTests:

  • media/video-fullscreeen-only-controls-expected.txt: Update.
  • media/video-fullscreeen-only-controls.html: Ditto.
10:08 AM Changeset in webkit [179611] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Interactive chart component provides two duplicate API for highlighting points
https://bugs.webkit.org/show_bug.cgi?id=141234

Reviewed by Chris Dumez.

Prior to this patch, the interactive chart component supported highlightedItems for finding commits
on the main charts page and markedPoints to show the two end points in the analysis task page.

This patch merges markedPoints into highlightedItems.

  • public/v2/app.js:

(App.AnalysisTaskController._fetchedRuns): Use highlightedItems.

  • public/v2/chart-pane.css:
  • public/v2/index.html: Ditto.
  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._constructGraphIfPossible): Make this._highlights an array instead of
array of arrays. Also call _highlightedItemsChanged at the end to fix the bug that we never highlight
items if highlightedItems was set before the initial layout.
(App.InteractiveChartComponent._relayoutDataAndAxes):
(App.InteractiveChartComponent._updateHighlightPositions): Now that highlights are circles instead of
vertical lines, just set cx and cy as done for other "dots".
(App.InteractiveChartComponent._highlightedItemsChanged): Exit early only if _clippedContainer wasn't
already set; i.e. _constructGraphIfPossible hasn't been called. Also updated the logic to accommodate
the fact this._highlights is an array of elements instead of an array of arrays of elements. Finally,
set the radius of highlight circles here.

10:07 AM Changeset in webkit [179610] by rniwa@webkit.org
  • 3 edits in trunk/Tools

[webkitpy] Add platform specific Skipped file mechanism for performance tests
https://bugs.webkit.org/show_bug.cgi?id=141152

Reviewed by Csaba Osztrogonác.

Support a test-expectation-like syntax in performance tests' skipped files.
e.g. [Mac] Parsed/BadTest.html will skip Parsed/BadTest.html on Mac ports.

  • Scripts/webkitpy/port/base.py:

(Port.skipped_perf_tests): Implemented the syntax support by a regular expression.

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_skipped_perf_tests): Test the new syntax.

10:00 AM Changeset in webkit [179609] by mark.lam@apple.com
  • 8 edits in trunk/Source

Remove concept of makeUsableFromMultipleThreads().
<https://webkit.org/b/141221>

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

Currently, we rely on VM::makeUsableFromMultipleThreads() being called before we
start acquiring the JSLock and entering the VM from different threads.
Acquisition of the JSLock will register the acquiring thread with the VM's thread
registry if not already registered. However, it will only do this if the VM's
thread specific key has been initialized by makeUsableFromMultipleThreads().

This is fragile, and also does not read intuitively because one would expect to
acquire the JSLock before calling any methods on the VM. This is exactly what
JSGlobalContextCreateInGroup() did (i.e. acquire the lock before calling
makeUsableFromMultipleThreads()), but is wrong. The result is that the invoking
thread will not have been registered with the VM during that first entry into
the VM.

The fix is to make it so that we initialize the VM's thread specific key on
construction of the VM's MachineThreads registry instead of relying on
makeUsableFromMultipleThreads() being called. With this, we can eliminate
makeUsableFromMultipleThreads() altogether.

Performance results are neutral in aggregate.

  • API/JSContextRef.cpp:

(JSGlobalContextCreateInGroup):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::gatherConservativeRoots):
(JSC::MachineThreads::makeUsableFromMultipleThreads): Deleted.

  • heap/MachineStackMarker.h:
  • runtime/VM.cpp:

(JSC::VM::sharedInstance):

  • runtime/VM.h:

(JSC::VM::makeUsableFromMultipleThreads): Deleted.

Source/WebCore:

No new tests.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

10:00 AM Changeset in webkit [179608] by ap@apple.com
  • 2 edits in trunk/Tools

When tests fail on leaks bot so much that there are no leaks detected, dashboard erroneously shows green
https://bugs.webkit.org/show_bug.cgi?id=141236

Reviewed by Sam Weinig.

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

(BuildbotLeaksQueueView.prototype.update.appendLeaksQueueStatus):

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

inspector/css/selector-dynamic-specificity.html is very slow on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=141252

  • platform/mac-wk2/TestExpectations: Added an expectation.
9:49 AM Changeset in webkit [179606] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

Unreviewew. Marked web-platform-tests as Skip until wpt server can be abruptly shutdown whenever needed.

9:49 AM Changeset in webkit [179605] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Build with seccomp filters broken since r179409
https://bugs.webkit.org/show_bug.cgi?id=141206

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-04
Reviewed by Darin Adler.

Fix build by renaming SeccompBrokerClient::shared to SeccompBrokerClient::singleton.

  • Shared/linux/SeccompFilters/SeccompBroker.cpp:

(WebKit::SeccompBrokerClient::singleton):
(WebKit::SeccompBroker::initialize):
(WebKit::SeccompBrokerClient::shared):
(WebKit::SeccompBroker::runLoop):

9:13 AM Changeset in webkit [179604] by Simon Fraser
  • 32 edits in trunk/Source

[iOS WK2] Assert in ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren() on tab switching
https://bugs.webkit.org/show_bug.cgi?id=141223
rdar://problem/18458993

Reviewed by Tim Horton.
Source/WebCore:

It's possible to submit a RemoteLayerTree transaction that contains data
about a created layer, but doesn't have any properties for that layer. This
happens when the newly created layer isn't reached during the traversal that
gathers layer properties (i.e. it's not rooted). However, whether we create
a scrolling layer or not requires having properties; they are missing, so we
create a normal layer, but then the scrolling tree commit asserts that we
should have a scrolling layer.

Fix by making scrolling layers have a corresponding layer type, which is
stored in layer creation properties. This required exposing layer types
up through GraphicsLayer, but that allows for some nice cleanup:

  1. No need to have the hokey shouldUseTiledBacking() GraphicsLayerClient hack for creating the page tiled layer.
  2. The notion of "custom behaviors" can be removed from GraphicsLayer entirely.

Not testable because it requires tab switching.

  • WebCore.exp.in:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::initialize):
(WebCore::GraphicsLayer::setCustomBehavior): Deleted.
(WebCore::GraphicsLayer::customBehavior): Deleted.

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::shouldUseTiledBacking): Deleted.

  • platform/graphics/GraphicsLayerFactory.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayer::create):
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::initialize):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
(WebCore::GraphicsLayerCA::updateCustomBehavior): Deleted.
(WebCore::GraphicsLayerCA::setCustomBehavior): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::moveAnimations):
(WebCore::GraphicsLayerCA::copyAnimations):

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

(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::commonInit):
(PlatformCALayerMac::updateCustomBehavior): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateScrollingLayers):
(WebCore::RenderLayerBacking::shouldUseTiledBacking): Deleted.

  • rendering/RenderLayerBacking.h:

Source/WebKit2:

It's possible to submit a RemoteLayerTree transaction that contains data
about a created layer, but doesn't have any properties for that layer. This
happens when the newly created layer isn't reached during the traversal that
gathers layer properties (i.e. it's not rooted). However, whether we create
a scrolling layer or not requires having properties; they are missing, so we
create a normal layer, but then the scrolling tree commit asserts that we
should have a scrolling layer.

Fix by making scrolling layers have a corresponding layer type, which is
stored in layer creation properties. This required exposing layer types
up through GraphicsLayer, but that allows for some nice cleanup:

  1. No need to have the hokey shouldUseTiledBacking() GraphicsLayerClient hack for creating the page tiled layer.
  2. The notion of "custom behaviors" can be removed from GraphicsLayer entirely.
  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

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

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

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

(WebKit::PlatformCALayerRemote::customBehavior): Deleted.
(WebKit::PlatformCALayerRemote::updateCustomBehavior): Deleted.

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

(WebKit::RemoteLayerTreeContext::createGraphicsLayer):

9:03 AM Changeset in webkit [179603] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebKit2

[EFL][WK2] Manage failing API tests
https://bugs.webkit.org/show_bug.cgi?id=141250

Reviewed by Csaba Osztrogonác.

  • PlatformEfl.cmake: Skip to test test_ewk2_storage_manager.
  • UIProcess/API/efl/tests/test_ewk2_view.cpp: Disable 2 unit test functions.

(TEST_F):

8:36 AM Changeset in webkit [179602] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[Media] Fullscreen button should always come last in inline controls (141245)
https://bugs.webkit.org/show_bug.cgi?id=141245
<rdar://problem/19714622>

Reviewed by Eric Carlson.

Make sure the optimizedFullscreen button is inserted before the
normal fullscreen button.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.configureInlineControls):

8:34 AM Changeset in webkit [179601] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: AirPlay button not visible but present in inline toolbar
https://bugs.webkit.org/show_bug.cgi?id=141244
<rdar://problem/19328322>

Reviewed by Eric Carlson.

Replace the use of mask-image with a background-image (which matches
what the other buttons are doing).

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls):
(video::-webkit-media-controls-wireless-playback-picker-button):
(audio::-webkit-media-controls-wireless-playback-picker-button):
(video::-webkit-media-controls-wireless-playback-picker-button.active):
(audio::-webkit-media-controls-wireless-playback-picker-button.active):

12:39 AM Changeset in webkit [179600] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

Unreviewed. Marking webb-platform-tests as failed until wpt server can be proper
ly relaunched.

12:39 AM Changeset in webkit [179599] by Chris Dumez
  • 23 edits in trunk

Add removeFirst(value) / removeAll(value) methods to WTF::Vector
https://bugs.webkit.org/show_bug.cgi?id=141192

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Use new Vector::removeFirst(value) / removeAll(value) API to simplify the
code a bit.

  • inspector/InspectorValues.cpp:

(Inspector::InspectorObjectBase::remove):

Source/WebCore:

Use new Vector::removeFirst(value) / removeAll(value) API to simplify the
code a bit.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::unregisterClient):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::removeImgElement):
(WebCore::removeFromVector): Deleted.

  • page/Chrome.cpp:

(WebCore::Chrome::unregisterPopupOpeningObserver):

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::uninstallPageOverlay):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::removeFromParent):

  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimations::remove):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::addSearchResult):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::removeCaption):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::subtreeChildWillBeRemoved):

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::unschedule):

Source/WebKit2:

Use new Vector::removeFirst(value) / removeAll(value) API to simplify the
code a bit.

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:

(WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol):

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::removeObserver):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):

  • WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:

(EwkExtension::remove):

Source/WTF:

Add removeFirst(value) / removeAll(value) convenience methods to
WTF::Vector to reduce complexity a bit at call sites.

I am planning to add overloads for these taking a lambda function for
matching in a follow-up patch as well. I have seen quite a few
Vector::remove(index) call sites that would benefit from it.

  • wtf/Vector.h:

(WTF::OverflowHandler>::removeFirst):
(WTF::OverflowHandler>::removeAll):

Tools:

Add API tests for Vector::removeFirst(value) and
Vector::removeAll(value).

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

Feb 3, 2015:

11:37 PM Changeset in webkit [179598] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More test results gardening.

  • platform/win/TestExpectations:
11:01 PM Changeset in webkit [179597] by mjs@apple.com
  • 4 edits
    2 adds in trunk

Crash when printing snapshotted plugins
https://bugs.webkit.org/show_bug.cgi?id=141212

Reviewed by Simon Fraser.

Source/WebCore:

Test: plugins/snapshotting/print-snapshotted-plugin.html

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::childShouldCreateRenderer): New
method. If the current renderer is a snapshotted plugin, only
allow children to create renderers if they are part of the
snapshot shadow dom. Otherwise RenderEmbeddedObject invariants
will be violated. This DOM class can have many other renderers, but they
can just follow their own rules.
(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay): Make this
const-correct, and don't create UA shadow DOM as a side effect if it doesn't
already exist.

  • html/HTMLPlugInImageElement.h:

LayoutTests:

This test would crash without the fix due to a bad cast to RenderBox. <object>
is not prepared to have rendered inline children when rendering a plugin.

  • plugins/snapshotting/print-snapshotted-plugin-expected.txt: Added.
  • plugins/snapshotting/print-snapshotted-plugin.html: Added.
10:51 PM Changeset in webkit [179596] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed attempt to fix GTK/EFL build after r179588.

Add new files to CMakeLists.txt.

  • CMakeLists.txt:
10:42 PM Changeset in webkit [179595] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed. Activate more tests.

  • platform/win/TestExpectations: Unskip the DOM4 constructor and cursor visibility

tests (since they work).

10:40 PM Changeset in webkit [179594] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix. Turn on feature flags for items
we currently ship/test on Mac.

  • win/tools/vsprops/FeatureDefines.props: Activate ENABLE_DOM4_EVENTS_CONSTRUCTOR

and CURSOR_VISIBILITY.

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

Regression(r179584): Assertion hit in toResourceLoadPriority() on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=141230

Reviewed by Alexey Proskuryakov.

Handle -1 priority value again in toResourceLoadPriority() as it seems to
be returned by CFNetwork on some configurations.

No new tests, already covered by existing tests.

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):

10:16 PM Changeset in webkit [179592] by shiva.jm@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix build warning in WebKit2/Platform/IPC module.
https://bugs.webkit.org/show_bug.cgi?id=141229

Reviewed by Chris Dumez.

Fix build warning by using UNUSED_PARAM macro.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):

9:40 PM Changeset in webkit [179591] by rniwa@webkit.org
  • 9 edits in trunk/Websites/perf.webkit.org

Don’t use repository names as id’s.
https://bugs.webkit.org/show_bug.cgi?id=141226

Reviewed by Chris Dumez.

Not using repository names as their id's reduces the need to fetch the entire repositories table.
Since names of repositories are available in manifest.json, we can resolve their names in the front end.

  • Websites/perf.webkit.org/public/api/runs.php:

(parse_revisions_array): No longer uses $repository_id_to_name.
(main): No longer populates $repository_id_to_name.

  • Websites/perf.webkit.org/public/api/triggerables.php:

(main): Don't resolve repository names.

  • Websites/perf.webkit.org/public/include/manifest.php:

(ManifestGenerator::repositories): Use repositories ids as keys in the result and include their names.
(ManifestGenerator::bug_trackers): Don't resolve repository names.

  • Websites/perf.webkit.org/public/js/helper-classes.js:

(TestBuild): Renamed repositoryName to repositoryId.
(TestBuild.revision): Ditto.
(TestBuild.formattedRevisions): Ditto. Continue to use the repository name in the formatted result
since this is the text shown to human.

  • Websites/perf.webkit.org/public/v2/app.js:

(App.pane.searchCommit): Renamed repositoryName to repositoryId.
(App.PaneController._updateDetails): Ditto.
(App.AnalysisTaskController.updateRoots): Ditto.

  • Websites/perf.webkit.org/public/v2/data.js:

(Measurement): Ditto.
(Measurement.prototype.commitTimeForRepository): Ditto.
(Measurement.prototype.formattedRevisions): Ditto.

  • Websites/perf.webkit.org/public/v2/index.html: Use the repository name and the repository id as

select element's label and value respectively.

9:06 PM Changeset in webkit [179590] by sun.shin@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Add LG Electronics to team.html
https://bugs.webkit.org/show_bug.cgi?id=141227

Reviewed by Andreas Kling.

  • team.html:
8:06 PM Changeset in webkit [179589] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR
https://bugs.webkit.org/show_bug.cgi?id=141217

  • UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:

Include, not import.

8:02 PM Changeset in webkit [179588] by timothy_horton@apple.com
  • 12 edits
    12 adds in trunk

Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR
https://bugs.webkit.org/show_bug.cgi?id=141217

Reviewed by Sam Weinig.

  • Shared/API/c/WKBase.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKFrameInfoRef.cpp: Added.

(WKFrameInfoGetTypeID):

  • UIProcess/API/C/WKFrameInfoRef.h: Added.
  • UIProcess/API/C/WKNavigationActionRef.cpp: Added.

(WKNavigationActionGetTypeID):

  • UIProcess/API/C/WKNavigationActionRef.h: Added.
  • UIProcess/API/C/WKNavigationRef.cpp: Added.

(WKNavigationGetTypeID):

  • UIProcess/API/C/WKNavigationRef.h: Added.
  • UIProcess/API/C/WKNavigationResponseRef.cpp: Added.

(WKNavigationResponseGetTypeID):
(WKNavigationResponseCanShowMIMEType):

  • UIProcess/API/C/WKNavigationResponseRef.h: Added.

Add tiny C wrappers around API::{FrameInfo, NavigationAction, Navigation, NavigationResponse}.

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::decidePolicyForPluginLoad):
Add a default implementation of decidePolicyForPluginLoad.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKPage.h:

Add WKPageSetPageNavigationClient, which connects API::NavigationClient to
the new WKPageNavigationClient C SPI.

  • UIProcess/API/C/WKPageNavigationClient.h: Added.

Add WKPageNavigationClient, which one can use in place of WKPageLoaderClient
and WKPagePolicyClient and which has the same semantics as the Modern ObjC API
(including things like API::Navigation as WKNavigationRef, etc.)

  • UIProcess/API/C/WKPageLoaderClient.h:
  • UIProcess/API/C/WKPageRenderingProgressEvents.h: Added.
  • UIProcess/API/C/WKPageRenderingProgressEventsInternal.h: Added.

(pageRenderingProgressEvents):

  • UIProcess/API/C/WKPluginLoadPolicy.h: Added.

Pull some enums out into their own files (WKPageRenderingProgressEvents is
duplicated from the Modern ObjC API's _WKRenderingProgressEvents, WKPluginLoadPolicy
is pulled out of WKPageLoaderClient).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findPlugin):
Add an equivalent of pluginLoadPolicy to the NavigationClient.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebKitTestRunner/TestController.cpp:

(WTR::copyWebCryptoMasterKey):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptions):
(WTR::TestController::didCommitNavigation):
(WTR::TestController::didFinishNavigation):
(WTR::TestController::canAuthenticateAgainstProtectionSpace):
(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::decidePolicyForPluginLoad):
(WTR::TestController::decidePolicyForNavigationAction):
(WTR::TestController::decidePolicyForNavigationResponse):
(WTR::TestController::didCommitLoadForFrame): Deleted.
(WTR::TestController::didFinishLoadForFrame): Deleted.

  • WebKitTestRunner/TestController.h:

Adopt WKPageNavigationClient and adjust to its semantics (navigations are main-frame-only, etc.)

6:00 PM Changeset in webkit [179587] by rniwa@webkit.org
  • 1 edit
    1 add in trunk/LayoutTests

Commit the forgotten expected result supposed to be added in r179569.

  • editing/inserting/smart-quote-with-all-configurations-expected.txt: Added.
5:58 PM Changeset in webkit [179586] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Every PageOverlayClientImpl leaks
https://bugs.webkit.org/show_bug.cgi?id=141224
<rdar://problem/19652939>

Reviewed by Simon Fraser.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayCreate):

  • WebProcess/WebPage/WebPageOverlay.cpp:

(WebKit::WebPageOverlay::create):
(WebKit::WebPageOverlay::WebPageOverlay):
(WebKit::WebPageOverlay::pageOverlayDestroyed):
(WebKit::WebPageOverlay::willMoveToPage):
(WebKit::WebPageOverlay::didMoveToPage):
(WebKit::WebPageOverlay::drawRect):
(WebKit::WebPageOverlay::mouseEvent):
(WebKit::WebPageOverlay::didScrollFrame):
(WebKit::WebPageOverlay::actionContextForResultAtPoint):
(WebKit::WebPageOverlay::dataDetectorsDidPresentUI):
(WebKit::WebPageOverlay::dataDetectorsDidChangeUI):
(WebKit::WebPageOverlay::dataDetectorsDidHideUI):
(WebKit::WebPageOverlay::copyAccessibilityAttributeStringValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeBoolValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeNames):

  • WebProcess/WebPage/WebPageOverlay.h:

(WebKit::WebPageOverlay::client):
Keep the PageOverlayClientImpl as a unique_ptr instead of a leaked reference,
ensuring that it's cleaned up when the WebPageOverlay is torn down.

5:26 PM Changeset in webkit [179585] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Declare $repository_id_to_name in the global scope.

  • public/api/runs.php:
5:23 PM Changeset in webkit [179584] by Chris Dumez
  • 19 edits in trunk/Source

Drop ResourceLoadPriorityUnresolved resource load priority and use Optional<> instead
https://bugs.webkit.org/show_bug.cgi?id=141186

Reviewed by Antti Koivisto.

Source/WebCore:

Drop ResourceLoadPriorityUnresolved resource load priority value and use
Optional<ResourceLoadPriority> when needed instead. If the Optional
doesn't have a value, then it means it is unresolved. Having
ResourceLoadPriorityUnresolved in ResourceLoadPriority was confusing
because this value is only valid in CachedResourceRequest, it is not
a valid value in CachedResource or in ResourceRequest. After this
refactoring, it now becomes more obvious.

Source/WebKit2:

Update code now that ResourceLoadPriorityUnresolved is not longer a
ResourceLoadPriority enum value.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::retrieve):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

5:17 PM Changeset in webkit [179583] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

/api/runs.php should have main function
https://bugs.webkit.org/show_bug.cgi?id=141220

Reviewed by Benjamin Poulain.

Wrapped the code inside main function for clarity.

  • public/api/runs.php:
4:57 PM Changeset in webkit [179582] by sun.shin@webkit.org
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Unreviewed. Add myself as a committer.

4:51 PM Changeset in webkit [179581] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION(176609): Very high memory usage in Canvas/reuse.html performance test
https://bugs.webkit.org/show_bug.cgi?id=139812

Reviewed by Geoffrey Garen.

Update DOMTimerFireState.elementsChangedOutsideViewport to keep only
weak pointers to the Elements, instead of ref'ing them, so as to not
extend their life unnecessarily (by preventing garbage-collection).
The same approach was already adopted in r176496 for
DOMTimer.m_elementsCausingThrottling to address the same issue.

No new tests, already covered by Canvas/reuse.html performance test.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::setScriptMadeNonUserObservableChangesToElement):
(WebCore::DOMTimerFireState::elementsChangedOutsideViewport):

4:23 PM Changeset in webkit [179580] by enrica@apple.com
  • 8 edits in trunk/Source

[iOS] Add support for deleteFromInputWithFlags.
https://bugs.webkit.org/show_bug.cgi?id=141216
rdar://problem/19130081

Reviewed by Benjamin Poulain.

Adopts the new method as soon as it is available.
The patch also removes some obsolete code used for staging.

Source/WebKit/ios:

  • DefaultDelegates/WebDefaultUIKitDelegate.m:

(-[WebDefaultUIKitDelegate addInputString:withFlags:]):
(-[WebDefaultUIKitDelegate deleteFromInput]):
(-[WebDefaultUIKitDelegate deleteFromInputwithFlags:]):
(-[WebDefaultUIKitDelegate addInputString:fromVariantKey:]): Deleted.

  • WebView/WebUIKitDelegate.h:

Source/WebKit/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

Source/WebKit2:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]):

4:18 PM Changeset in webkit [179579] by diorahman@rockybars.com
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
4:18 PM Changeset in webkit [179578] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

[iOS] Selection Callout should not immediately disappear on pages with frequent layouts
https://bugs.webkit.org/show_bug.cgi?id=141210

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-03
Reviewed by Enrica Casucci.

In iOS WebKit2 in order to keep caret refreshes in sync with WebCore layouts
the selection assistant is told to update whenever WebKit's layer tree
commits. Unfortunately, for pages with JavaScript animation that are
frequently doing a layout / layer tree update, this would trigger very
frequent selection updates that would keep the caret from blinking and
dismiss any selection callouts.

This change tracks the last selection drawing information so that we can
avoid informing the assistant of a selection updates unless it has changed
visually or needs to redraw (zoom).

  • Shared/EditorState.cpp:

Remove include already in header.

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

(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(WebKit::operator==):
(WebKit::operator!=):
(-[WKContentView observeValueForKeyPath:ofObject:change:context:]):
When zooming, force the selection update, even though the drawing
information hasn't changed, the views will need to be updated.

(-[WKContentView _updateChangedSelection]):
(-[WKContentView _updateChangedSelection:]):
Monitor EditorState for changes in selection drawing and avoid
informing the selection assistant unless necessary.

4:07 PM Changeset in webkit [179577] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MSE] Setting timestampOffset does not change the timestamps in the actual sample, leading to visual and audible errors.
https://bugs.webkit.org/show_bug.cgi?id=140929

Reviewed by Alexey Proskuryakov.

Fixes http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html.

Only apply the timestamp offset to the actual sample after step 1.6, where we may loop back to
the top, to avoid double-offsetting the same sample.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

4:00 PM Changeset in webkit [179576] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Workaround a thread library bug where thread destructors may not get called.
<https://webkit.org/b/141209>

Reviewed by Michael Saboff.

There's a bug where thread destructors may not get called. As far as
we know, this only manifests on darwin ports. We will work around this
by checking at GC time if the platform thread is still valid. If not,
we'll purge it from the VM's registeredThreads list before proceeding
with thread scanning activity.

Note: it is important that we do this invalid thread detection during
suspension, because the validity (and liveness) of the other thread is
only guaranteed while it is suspended.

  • API/tests/testapi.mm:

(threadMain):

  • Added a test to enter the VM from another thread before we GC on the main thread.
  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::removeThreadWithLockAlreadyAcquired):
(JSC::MachineThreads::removeCurrentThread):

  • refactored removeThreadWithLockAlreadyAcquired() out from removeCurrentThread() so that we can also call it for purging invalid threads.

(JSC::suspendThread):

  • Added a return status to tell if the suspension succeeded or not.

(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • Check if the suspension failed, and purge the thread if we can't suspend it. Failure to suspend implies that the thread has terminated without calling its destructor.
  • heap/MachineStackMarker.h:
3:45 PM Changeset in webkit [179575] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Restore interface before exiting optimized fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=141167

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-02-03
Reviewed by Simon Fraser.

This change allows the user interface to be restored before exiting optimized fullscreen mode.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add declaration.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController playerViewController:restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:]): Added.
(WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): Added.

  • platform/spi/ios/AVKitSPI.h: Add new SPI.
3:41 PM Changeset in webkit [179574] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Prevent flicker when exiting fullscreen by synchronizing transactions.
https://bugs.webkit.org/show_bug.cgi?id=140897

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-02-03
Reviewed by Tim Horton.

Source/WebCore:

Synchronize across CAContexts when moving the video layer between layer hierarchies.
Normally transactions involving multiple CAContexts are not synchronized.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):

  • platform/spi/cocoa/QuartzCoreSPI.h: add additional CAContext SPI declarations.

Source/WebKit2:

Flush transactions before removing layerHost. This allows existing transactions to be completed before the hosting layer disappears.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen):

3:21 PM Changeset in webkit [179573] by Brian Burg
  • 7 edits
    1 delete in trunk/Source/WebKit2

Convert WebInspectorProxy to use WKWebView API for the inspector view
https://bugs.webkit.org/show_bug.cgi?id=141037

Reviewed by Timothy Hatcher.

Use the newer API for PLATFORM(MAC). The main difference is that the
WKWebView's page group cannot be set directly; instead, the group identifier
is passed. Also add some preference setters needed for the inspector.

Refactor some code to not use page groups directly. In a future patch,
the PageGroup-based inspector level system will be simplified. It is
it is no longer necessary to keep a static map of PageGroup instances,
since they are only used to save inspector window preferences. (These used
to prevent all levels of inspector from pausing together when a second-level
inspector hit a breakpoint. This is not necessary with multi-process
web inspectors.)

Also, adjust window resizing behavior when the inspector is docked to
the right. Window width resizes should not affect the width of the inspector
frame. This matches the behavior of height changes when docked to the bottom.

To support 32-bit Mac builds where WKWebView is not defined, share the stub
platformFoo() implementations with PLATFORM(IOS). The stubs are now located
in the platform-independent WebInspectorProxy.cpp.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _logsPageMessagesToSystemConsoleEnabled]): Added.
(-[WKPreferences _setLogsPageMessagesToSystemConsoleEnabled:]): Added.
(-[WKPreferences _allowFileAccessFromFileURLs]): Added.
(-[WKPreferences _setAllowFileAccessFromFileURLs:]): Added.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorPagePreferences):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::setAttachedWindowHeight):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::shouldOpenAttached):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformOpen):
(WebKit::WebInspectorProxy::platformDidClose):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformHide):
(WebKit::WebInspectorProxy::platformIsFront):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetToolbarHeight):
(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/ios/WebInspectorProxyIOS.mm: Removed.
  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorWKWebView _didRelaunchProcess]):
WKWebView doesn't implement this, so remove the super call.
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::createDockButton):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformAttach):
(-[WKWebInspectorWKView _didRelaunchProcess]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
3:02 PM Changeset in webkit [179572] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/xmlhttprequest/event-listener-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=33342

Reviewed by Zalan Bujtas.

This failure means that the GC timer fires after readystatechange event. As a
speculative fix, start the timer before starting the load, so that it's certain to
finish earlier.

  • http/tests/xmlhttprequest/event-listener-gc.html:
2:22 PM Changeset in webkit [179571] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-600.4-branch

Merge r178462. rdar://problem/19673708

1:57 PM Changeset in webkit [179570] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Mark some debug assertion failures to be skipped.

  • platform/win/TestExpectations:
1:52 PM Changeset in webkit [179569] by rniwa@webkit.org
  • 8 edits
    1 add in trunk

Smart quoting could move the caret backwards in some configurations
https://bugs.webkit.org/show_bug.cgi?id=141203
Source/WebCore:

<rdar://problem/17452543>

Reviewed by Enrica Casucci.

The bug was caused by markAndReplaceFor not running the code to preserve the selection after
text replacement only when smart quote is enabled. Furthermore, when smart link was disabled,
we never applied smart quote due to the following condition at line 2502:

if (!(shouldPerformReplacement
shouldCheckForCorrection shouldMarkLink) !doReplacement)

continue;

This condition prevented the code to apply smart quote from running when both continuous
spellchecking, smart link, and text replacement are disabled.

Fixed the bug by treating smart quotes and smart dashes like any other text replacement and set
shouldPerformReplacement to true whenever either one of those text checking options are present.

Smart link didn't have this issue due to the explicit check for shouldMarkLink.

Smart dashes didn't suffer this problem either because dashes replacement happens only once
the caret has moved past the dashes but his patch makes go through the same code path to preserve
the selection as well for consistency.

Test: editing/inserting/smart-quote-with-all-configurations.html

  • editing/Editor.cpp:

(WebCore::Editor::markAndReplaceFor):

LayoutTests:

Reviewed by Enrica Casucci.

Added a regression test for smart quote under all combinations of
spellchecking and substitution configurations.

  • editing/inserting/smart-quote-with-all-configurations-expected.txt: Added.
  • editing/inserting/smart-quote-with-all-configurations.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
1:40 PM Changeset in webkit [179568] by dino@apple.com
  • 3 edits
    4 adds in branches/safari-600.5-branch

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

Merge r178380. <rdar://problem/19465133>

2015-01-13 Dean Jackson <dino@apple.com>

Filters aren't applied to elements in columns after the first
https://bugs.webkit.org/show_bug.cgi?id=140331

Reviewed by Simon Fraser.

The important bits of this change came from Simon.
Filters and clipping were not taking columns into
account when using their offset rectangles. The fix
is to recalculate the rects if you're in such a
situation.

Tests: fast/multicol/clip-in-columns.html

fast/multicol/filter-in-columns.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::hasFilterThatIsPainting): New method used to check if we're about to paint a filter. (WebCore::RenderLayer::setupFilters): Use the new helper if possible. (WebCore::RenderLayer::paintLayerContents): If we're in columns, and we either have a clip or a filter, recalculate the offset rectangles.
  • rendering/RenderLayer.h:
1:37 PM Changeset in webkit [179567] by enrica@apple.com
  • 5 edits
    2 adds in trunk

Additional emoji support.
https://bugs.webkit.org/show_bug.cgi?id=141047
rdar://problem/19045135

Reviewed by Darin Adler.

Source/WebCore:

Adds support for emoji modifiers and group emoji.

Test: editing/deleting/delete-emoji.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/text/TextBreakIterator.cpp:

(WebCore::cursorMovementIterator):

  • rendering/RenderText.cpp:

(WebCore::isEmojiGroupCandidate):
(WebCore::isEmojiModifier):
(WebCore::RenderText::previousOffsetForBackwardDeletion):

LayoutTests:

  • editing/deleting/delete-emoji.html: Added.
  • editing/deleting/delete-emoji-expected.txt: Added.
1:29 PM Changeset in webkit [179566] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Lint cleanup of Windows TestExpectations (Unreviewed)

  • platform/win/TestExpectations:
1:10 PM Changeset in webkit [179565] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Passing invalid values to OfflineAudioContext's constructor should not crash.
https://bugs.webkit.org/show_bug.cgi?id=141197

Reviewed by Darin Adler.

Source/WebCore:

Test: webaudio/offlineaudiocontext-constructor.html

Throw a SYNTAX_ERR exception if passed in a zero for channelCount or numberOfSamples. This avoids
a crash where OfflineAudioDestinationNode is passed a null renderTarget.

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

LayoutTests:

  • webaudio/offlineaudiocontext-constructor-expected.txt: Added.
  • webaudio/offlineaudiocontext-constructor.html: Added.
1:09 PM Changeset in webkit [179564] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk

[MSE] Setting timestampOffset does not change the timestamps in the actual sample, leading to visual and audible errors.
https://bugs.webkit.org/show_bug.cgi?id=140929

Reviewed by Darin Adler.

Source/WebCore:

Test: media/media-source/media-source-timeoffset.html

Changing timestampOffset will correctly offset the presentation and decode times within SourceBuffer and
will correctly modify things like buffered ranges. But those changes need to be reflected in the underlying
MediaSample for decoders to decode and display the samples at the correct times.

Add a method to MediaSample which allows the caller to offset timestamps of the underlying PlatformMediaSample.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Call offsetTimestampsBy() on the sample.

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

(WebCore::MediaSampleAVFObjC::offsetTimestampsBy): Create a new sample with the same underlying data

but with a new timing info array, each timing info offset by the requested amount.

  • platform/mock/mediasource/MockBox.h:

(WebCore::MockBox::offsetTimestampsBy): Offset m_presentationTimestamp and m_decodeTimestamp;

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockMediaSample::offsetTimestampsBy): Pass to MockBox.

LayoutTests:

  • media/media-source/media-source-timeoffset-expected.txt: Added.
  • media/media-source/media-source-timeoffset.html: Added.
1:06 PM Changeset in webkit [179563] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac][EME] Crash in CDMSessionMediaSourceAVFObjC::layerDidReceiveError() - NSError not KVO compliant for key NSUnderlyingError.
https://bugs.webkit.org/show_bug.cgi?id=140529

Reviewed by Darin Adler.

The underlying error should be fetched from the userInfo dictionary, not the error itself.

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

(WebCore::systemCodeForError):

12:23 PM Changeset in webkit [179562] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: ASSERT mainThreadPthread launching remote debuggable JSContext app with Debug JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=141189

Reviewed by Michael Saboff.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::singleton):
Ensure we call WTF::initializeMainThread() on the main thread so that
we can perform automatic String <-> NSString conversions.

12:11 PM Changeset in webkit [179561] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4-branch/Source

Versioning.

12:01 PM Changeset in webkit [179560] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[WIn] Unreviewed test updates.

  • platform/win/TestExpectations:
11:43 AM Changeset in webkit [179559] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed test fix.

  • DumpRenderTree/win/PolicyDelegate.cpp:

(PolicyDelegate::unableToImplementPolicyWithError): The message was missing a linefeed,
so was not matching expected output.

11:42 AM Changeset in webkit [179558] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

Unreviewed. Moving myself to the committer section, or trying to do so...

11:34 AM Changeset in webkit [179557] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests/imported/w3c

Web Platform Tests dirty a few untracked files
https://bugs.webkit.org/show_bug.cgi?id=141185

Reviewed by Darin Adler.

Added the empty file web-platform-tests/_certs/index.txt to .gitignore.

  • web-platform-tests/.gitignore:
10:47 AM Changeset in webkit [179556] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Tests fail because DRT reports '(null)' instead of an empty string
https://bugs.webkit.org/show_bug.cgi?id=141205

Reviewed by Anders Carlsson.

  • DumpRenderTree/win/HistoryDelegate.cpp:

(HistoryDelegate::didNavigateWithNavigationData): Deal with empty BSTR values
properly so that we match expected DumpRenderTree output.

10:28 AM Changeset in webkit [179555] by commit-queue@webkit.org
  • 58 edits in trunk/Source/WebCore

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

Hits debug assertions in 50+ SVG tests (Requested by brrian on
#webkit).

Reverted changeset:

"Move InstanceInvalidationGuard/UpdateBlocker to SVGElement
from SVGElementInstance"
https://bugs.webkit.org/show_bug.cgi?id=141148
http://trac.webkit.org/changeset/179548

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

[GTK] TestWebKitAccessibility is not skipped
https://bugs.webkit.org/show_bug.cgi?id=141179

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

Don't attempt to skip TestWebKitAccessibility. This path is wrong so it was not being
skipped, and it apparently works reliably on the bots.

  • Scripts/run-gtk-tests:

(TestRunner):

10:21 AM Changeset in webkit [179553] by clopez@igalia.com
  • 3 edits in trunk/Tools

run-perf-tests: allow to specify a wrapper command.
https://bugs.webkit.org/show_bug.cgi?id=141172

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Update text to indicate is also valid for WTR.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._parse_args): Add wrapper command.

10:17 AM Changeset in webkit [179552] by Brent Fulgham
  • 3 edits in trunk/Source/JavaScriptCore

[Win] Project file cleanups after r179429.

10:01 AM Changeset in webkit [179551] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Correct version parsing warning in update-webkit
https://bugs.webkit.org/show_bug.cgi?id=141200

Reviewed by Anders Carlsson.

  • Scripts/webkitdirs.pm:

(setupAppleWinEnv): Strip out any specific version build level
from the Cygwin version information.

9:39 AM Changeset in webkit [179550] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Attempt to improve the reliability of HTTP service
https://bugs.webkit.org/show_bug.cgi?id=141191

Reviewed by Darin Adler.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Use default XAMPP pidfile location.
(LayoutTestApacheHttpd._stop_running_server): Delete the abandoned PID file
when stopping the service doesn't do so on its own (for Windows runs).

9:27 AM Changeset in webkit [179549] by jer.noble@apple.com
  • 6 edits
    2 adds in trunk

[Mac] HLS audio is not correctly selected according to system language
https://bugs.webkit.org/show_bug.cgi?id=140398
rdar://problem/19218487

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/hls/hls-audio-tracks-locale-selection.html

When AVMediaSelectionOptions come and go and no explicit track selection choice has
been made, automatically pick the most appropriate track according to the user's
current preferred locale settings.

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

(WebCore::MediaSelectionGroupAVFObjC::MediaSelectionGroupAVFObjC): Set m_shouldSelectOptionAutomatically

to true by default.

(WebCore::MediaSelectionGroupAVFObjC::updateOptions): If m_shouldSelectOptionAutomatically is set

pick the most appropriate media selection option.

(WebCore::MediaSelectionGroupAVFObjC::setSelectedOption): Set m_shouldSelectOptionAutomatically to false.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Remove these automatic selection

requests as they are ineffective when -appliesMediaSelectionCriteriaAutomatically is NO.

LayoutTests:

  • http/tests/media/hls/hls-audio-tracks-locale-selection-expected.txt: Added.
  • http/tests/media/hls/hls-audio-tracks-locale-selection.html: Added.
  • http/tests/media/resources/hls/audio-tracks.m3u8:
8:58 AM Changeset in webkit [179548] by Darin Adler
  • 58 edits in trunk/Source/WebCore

Move InstanceInvalidationGuard/UpdateBlocker to SVGElement from SVGElementInstance
https://bugs.webkit.org/show_bug.cgi?id=141148

Reviewed by Brent Fulgham.

Inspired by this change Rob Buis made in Blink:

http://src.chromium.org/viewvc/blink?view=revision&revision=173343

I actually wrote the whole thing and then discovered we did it almost identically.

  • svg/SVGAnimatedTypeAnimator.cpp:

(WebCore::SVGElementAnimatedPropertyList::setInstanceUpdatesBlocked): Added this
helper function to get around a circular header dependency.

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction): Use setInstanceUpdatesBlocked.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removedFrom): Use invalidateInstances.
(WebCore::SVGElement::finishParsingChildren): Ditto.
(WebCore::SVGElement::svgAttributeChanged): Ditto.
(WebCore::SVGElement::childrenChanged): Ditto.
(WebCore::SVGElement::setInstanceUpdatesBlocked): Added an assertion that will
catch anyone who nests InstanceUpdateBlocker by accident.
(WebCore::SVGElement::invalidateInstances): Moved this here from
SVGElementInstance::invalidateAllInstancesOfElement. I had already modified this
so it had nothing to do with SVGElementInstance, so it was a simple matter of
converting this into a member function. Added a FIXME about the mysterious
updateStyleIfNeeded that makes multiple tests fail if it's removed.

  • svg/SVGElement.h: Added public InstanceUpdateBlocker class, protected

InstanceInvalidationGuard class, and private invalidateInstances function.
Unlike the ones in SVGElementInstance these use references so they are then
not copyable without using the WTF_MAKE_NONCOPYABLE macro.

  • svg/SVGElementInstance.cpp:

(WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Deleted.
(WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker): Deleted.
(WebCore::SVGElementInstance::InstanceUpdateBlocker::~InstanceUpdateBlocker): Deleted.

  • svg/SVGElementInstance.h: Removed InvalidationGuard, InstanceUpdateBlocker, and

invalidateAllInstancesOfElement. Didn't do any further cleanup since we soon will
delete this entire file.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::svgAttributeChanged): Updated to use new name and reference
instead of pointer.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::applyCSSPropertyToTargetAndInstances): Ditto.
(WebCore::removeCSSPropertyFromTargetAndInstances): Ditto.
(WebCore::notifyTargetAndInstancesAboutAnimValChange): Ditto.

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation): Ditto.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::svgAttributeChanged): Ditto.

  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::svgAttributeChanged): Ditto.

  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged): Ditto.

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::svgAttributeChanged): Ditto.

  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::svgAttributeChanged): Ditto.

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::svgAttributeChanged): Ditto.

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::svgAttributeChanged): Ditto.

  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::svgAttributeChanged): Ditto.

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): Ditto.

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::svgAttributeChanged): Ditto.

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged): Ditto.

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::svgAttributeChanged): Ditto.

  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::svgAttributeChanged): Ditto.

  • svg/SVGFEMergeNodeElement.cpp:

(WebCore::SVGFEMergeNodeElement::svgAttributeChanged): Ditto.

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::svgAttributeChanged): Ditto.

  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::svgAttributeChanged): Ditto.

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::svgAttributeChanged): Ditto.

  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::svgAttributeChanged): Ditto.

  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::svgAttributeChanged): Ditto.

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::svgAttributeChanged): Ditto.

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged): Ditto.

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged): Ditto.

  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::svgAttributeChanged): Ditto.

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::svgAttributeChanged): Ditto.

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged): Ditto.

  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::svgAttributeChanged): Ditto.

  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::svgAttributeChanged): Ditto.

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::svgAttributeChanged): Ditto.

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::svgAttributeChanged): Ditto.

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged): Ditto.

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::svgAttributeChanged): Ditto.

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::svgAttributeChanged): Ditto.

  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::svgAttributeChanged): Ditto.

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::svgAttributeChanged): Ditto.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged): Ditto.

  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::svgAttributeChanged): Ditto.

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::svgAttributeChanged): Ditto.

  • svg/SVGSymbolElement.cpp:

(WebCore::SVGSymbolElement::svgAttributeChanged): Ditto.

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::svgAttributeChanged): Ditto.

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::svgAttributeChanged): Ditto.

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::svgAttributeChanged): Ditto.

  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::svgAttributeChanged): Ditto.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged): Ditto.

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::svgAttributeChanged): Ditto.

6:17 AM Changeset in webkit [179547] by Antti Koivisto
  • 4 edits in trunk/Source/WebKit2

Memory cache for resources pending disk write
https://bugs.webkit.org/show_bug.cgi?id=141159

Reviewed by Andreas Kling.

If a resource was requested from the disk cache before it has been written we ended up
loading it again. Add a short lived memory cache to avoid this.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::decodeStorageEntry):

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCacheStorage::Data::isMap):

Add a way to know whether a Data is backed by map or not. SharedMemory does not work correctly
if it is not a map.

  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::NetworkCacheStorage::initialize):

Also do some renaming.

(WebKit::decodeEntry):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):

4:41 AM Changeset in webkit [179546] by Antti Koivisto
  • 5 edits in trunk/Source/WebKit2

Update cache header after revalidation without rewriting the body data
https://bugs.webkit.org/show_bug.cgi?id=141182

Reviewed by Andreas Kling.

Currently we just rewrite the entire entry after revalidation.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::decodeStorageEntry):

Include the strorage entry to the cache response so we can more easily update it.

(WebKit::NetworkCache::update):

Call the storage update function with the new and the exisiting storage entry.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cache/NetworkCacheStorageCocoa.mm:

(WebKit::openFileForKey):

Added an option for opening a file for writing without creating a new one.
Renamed for clarity.

(WebKit::encodeEntryHeader):

Separate header encoding to a function.

(WebKit::encodeEntry):
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):

New update function.
If the page-rounded header size would stay unchanged we can just write the new header over the old one.
In the unlikely event it doesn't we rewrite the whole thing.

(WebKit::createIOChannelForKey): Deleted.

1:48 AM Changeset in webkit [179545] by youenn.fablet@crf.canon.fr
  • 7 edits
    2 copies in trunk

Web platform test server should not need to create init.py files
https://bugs.webkit.org/show_bug.cgi?id=141030

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Updated init.py using TestImporter.
Removed added logs to serve.py to be the same as W3C repository.

  • web-platform-tests/serve.py:
  • web-platform-tests/tools/init.py:
  • web-platform-tests/tools/scripts/init.py: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/init.py.
  • web-platform-tests/tools/webdriver/webdriver/init.py: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/init.py.

Tools:

W3C TestImporter ensures that copied init.py files are not empty.
If needed, a comment is inserted in init.py files.
Added a unit test to check that web-platform-tests tools and scripts python modules can be imported.

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

(FileSystem.getsize):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server_unittest.py:

(TestWebPlatformTestServer.test_start_cmd):
(TestWebPlatformTestServer):
(TestWebPlatformTestServer.test_import_web_platform_test_modules):

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.import_tests):

1:32 AM Changeset in webkit [179544] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

Unreviewed. Moving myself to the committer queue.

1:20 AM Changeset in webkit [179543] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

[EFL] fast/borders/mixed-border-style2.html fails due to missing -expected.txt
https://bugs.webkit.org/show_bug.cgi?id=141080

Unreviewed EFL gardening

Wrong: Test has no expected result
Right: Test has an expected result as well as an image showing

the correct page render

Patch by Piotr Krysiewicz <p.krysiewicz@samsung.com> on 2015-02-03

  • platform/efl/fast/borders/mixed-border-style2-expected.png: Added.
  • platform/efl/fast/borders/mixed-border-style2-expected.txt: Added.
12:45 AM Changeset in webkit [179542] by youenn.fablet@crf.canon.fr
  • 2 edits
    4 adds in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests should contain top level files of the W3C web-platform-tests repository
https://bugs.webkit.org/show_bug.cgi?id=141151

Reviewed by Ryosuke Niwa.

  • web-platform-tests/CONTRIBUTING.md: Added.
  • web-platform-tests/LICENSE: Added.
  • web-platform-tests/README.md: Added.
  • web-platform-tests/server-side.md: Added.
  • web-platform-tests/w3c-import.log:

Feb 2, 2015:

10:14 PM Changeset in webkit [179541] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

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

need further investigation to fix !WK_API_ENABLED (32bit)
build. (Requested by brrian_ on #webkit).

Reverted changeset:

"Convert WebInspectorProxy to use WKWebView API for the
inspector view"
https://bugs.webkit.org/show_bug.cgi?id=141037
http://trac.webkit.org/changeset/179540

9:28 PM Changeset in webkit [179540] by Brian Burg
  • 6 edits in trunk/Source/WebKit2

Convert WebInspectorProxy to use WKWebView API for the inspector view
https://bugs.webkit.org/show_bug.cgi?id=141037

Reviewed by Timothy Hatcher.

Use the newer API for PLATFORM(MAC). The main difference is that the
WKWebView's page group cannot be set directly; instead, the group identifier
is passed. Also add some preference setters needed for the inspector.

Refactor some code to not use page groups directly. In a future patch,
the PageGroup-based inspector level system will be simplified. It is
it is no longer necessary to keep a static map of PageGroup instances,
since they are only used to save inspector window preferences. (These used
to prevent all levels of inspector from pausing together when a second-level
inspector hit a breakpoint. This is not necessary with multi-process
web inspectors.)

Also, adjust window resizing behavior when the inspector is docked to
the right. Window width resizes should not affect the width of the inspector
frame. This matches the behavior of height changes when docked to the bottom.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _logsPageMessagesToSystemConsoleEnabled]): Added.
(-[WKPreferences _setLogsPageMessagesToSystemConsoleEnabled:]): Added.
(-[WKPreferences _allowFileAccessFromFileURLs]): Added.
(-[WKPreferences _setAllowFileAccessFromFileURLs:]): Added.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorPagePreferences): Added.
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::setAttachedWindowHeight):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::shouldOpenAttached):

  • UIProcess/WebInspectorProxy.h: Use default member initializers.
  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorWKWebView _didRelaunchProcess]):
WKWebView doesn't implement this, so remove the super call.
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::createDockButton):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformAttach):
(-[WKWebInspectorWKView _didRelaunchProcess]): Deleted.

9:23 PM Changeset in webkit [179539] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r170576): Storage leaks in parsing of CSS image sizes
https://bugs.webkit.org/show_bug.cgi?id=141026

Reviewed by Brent Fulgham.

Forgot to actually fix the leak in the successful parse case!

  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize): Added a call to destroy.

9:20 PM Changeset in webkit [179538] by fpizlo@apple.com
  • 10 edits
    6 adds in trunk/Source/JavaScriptCore

arguments[-1] should have well-defined behavior
https://bugs.webkit.org/show_bug.cgi?id=141183

Reviewed by Mark Lam.

According to JSC's internal argument numbering, 0 is "this" and 1 is the first argument.
In the "arguments[i]" expression, "this" is not accessible and i = 0 refers to the first
argument. Previously we handled the bounds check in "arguments[i]" - where "arguments" is
statically known to be the current function's arguments object - as follows:

add 1, i
branchAboveOrEqual i, callFrame.ArgumentCount, slowPath


The problem with this is that if i = -1, this passes the test, and we end up accessing
what would be the "this" argument slot. That's wrong, since we should really be bottoming
out in arguments-1, which is usually undefined but could be anything. It's even worse
if the function is inlined or if we're in a constructor - in that case the "this" slot
could be garbage.

It turns out that we had this bug in all of our engines.

This fixes the issue by changing the algorithm to:

load32 callFrame.ArgumentCount, tmp
sub 1, tmp
branchAboveOrEqual i, tmp, slowPath


In some engines, we would have used the modified "i" (the one that had 1 added to it) for
the subsequent argument load; since we don't do this anymore I also had to change some of
the offsets on the BaseIndex arguments load.

This also includes tests that are written in such a way as to get coverage on LLInt and
Baseline JIT (get-my-argument-by-val-wrap-around-no-warm-up), DFG and FTL
(get-my-argument-by-val-wrap-around), and DFG when we're being paranoid about the user
overwriting the "arguments" variable (get-my-argument-by-val-safe-wrap-around). This also
includes off-by-1 out-of-bounds tests for each of these cases, since in the process of
writing the patch I broke the arguments[arguments.length] case in the DFG and didn't see
any test failures.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::offsetOfArguments):
(JSC::AssemblyHelpers::offsetOfArgumentsIncludingThis): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_argument_by_val):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_get_argument_by_val):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/stress/get-my-argument-by-val-out-of-bounds-no-warm-up.js: Added.

(foo):

  • tests/stress/get-my-argument-by-val-out-of-bounds.js: Added.

(foo):

  • tests/stress/get-my-argument-by-val-safe-out-of-bounds.js: Added.

(foo):

  • tests/stress/get-my-argument-by-val-safe-wrap-around.js: Added.

(foo):

  • tests/stress/get-my-argument-by-val-wrap-around-no-warm-up.js: Added.

(foo):

  • tests/stress/get-my-argument-by-val-wrap-around.js: Added.

(foo):

9:06 PM Changeset in webkit [179537] by Brent Fulgham
  • 3 edits in trunk/LayoutTests

[Win] Activate HTTP tests

  • platform/win/TestExpectations:
  • platform/win/fast/dom/adopt-node-crash-2-expected.txt:
8:29 PM Changeset in webkit [179536] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

MultiGetByOffset should be marked NodeMustGenerate
https://bugs.webkit.org/show_bug.cgi?id=140137

Reviewed by Michael Saboff.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetByOffset): We were sloppy - we should also clear NodeMustGenerate once it's a GetByOffset.
(JSC::DFG::Node::convertToMultiGetByOffset): Assert that we converted from something that already had NodeMustGenerate.

  • dfg/DFGNodeType.h: We shouldn't DCE a node that does checks and could be effectful in baseline. Making MultiGetByOffset as NodeMustGenerate prevents DCE. FTL could still DCE the actual loads, but the checks will stay.
  • tests/stress/multi-get-by-offset-dce.js: Added. This previously failed because the getter wasn't called.

(foo):

8:11 PM Changeset in webkit [179535] by benjamin@webkit.org
  • 3 edits
    16 adds in trunk

JIT Compile simple cases of :nth-last-child()
https://bugs.webkit.org/show_bug.cgi?id=141053

Reviewed by Andreas Kling.

Source/WebCore:

This patch adds the code generator for :nth-last-child(), skipping
any :nth-last-child(An+B of selector list).

The code generator is boring here, nothing fancy.
There is no optimization opportunity here so it is basically the same
speed as the code generated by Clang when the simple selector is alone.

The only reason to JIT compile this is to avoid going to slow-path
for every selector that contain :nth-last-child().

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addNthChildType):
The code creating the intermediate representation of :nth-child() is exactly
the same as what we need for :nth-last-child(). I extracted the code from addPseudoClassType()
and share it for both simple selectors.

(WebCore::SelectorCompiler::addPseudoClassType):
I fail :nth-last-child(An+B of selector list). Let's add it later.

(WebCore::SelectorCompiler::minimumRegisterRequirements):
Oops, there was a bug with nthChildOfFilters.

(WebCore::SelectorCompiler::hasAnyCombinators):
(WebCore::SelectorCompiler::computeBacktrackingMemoryRequirements):
(WebCore::SelectorCompiler::computeBacktrackingInformation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::setChildrenAffectedByBackwardPositionalRules):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChild):

LayoutTests:

There was almost no test coverage for :nth-last-child(). I copied the main tests
from :nth-child() and updated the expected results.

This is not ideal because we should have style update tests targetting
backward invalidation... Still better than nothing :)

  • fast/selectors/nth-last-child-as-first-simple-selector-style-update-expected.txt: Added.
  • fast/selectors/nth-last-child-as-first-simple-selector-style-update.html: Added.
  • fast/selectors/nth-last-child-basics-expected.txt: Added.
  • fast/selectors/nth-last-child-basics.html: Added.
  • fast/selectors/nth-last-child-bounds-expected.txt: Added.
  • fast/selectors/nth-last-child-bounds.html: Added.
  • fast/selectors/nth-last-child-chained-expected.txt: Added.
  • fast/selectors/nth-last-child-chained.html: Added.
  • fast/selectors/nth-last-child-on-root-expected.txt: Added.
  • fast/selectors/nth-last-child-on-root.html: Added.
  • fast/selectors/nth-last-child-style-update-expected.txt: Added.
  • fast/selectors/nth-last-child-style-update.html: Added.
  • fast/selectors/nth-last-child-with-backtracking-expected.txt: Added.
  • fast/selectors/nth-last-child-with-backtracking.html: Added.
  • fast/selectors/several-nth-last-child-expected.txt: Added.
  • fast/selectors/several-nth-last-child.html: Added.
7:08 PM Changeset in webkit [179534] by Alan Bujtas
  • 6 edits
    2 moves in trunk/Source/WebCore

Simple line layout: Rename FlowContentsIterator to TextFragmentIterator.
https://bugs.webkit.org/show_bug.cgi?id=141177

Rubber-stamped by Antti Koivisto

FlowContentsIterator is easy to confuse with FlowContents::Iterator.
TextFragmentIterator reflects the functionality better.

No change in functionality.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::LineState::setOverflowedFragment):
(WebCore::SimpleLineLayout::LineState::overflowedFragment):
(WebCore::SimpleLineLayout::LineState::appendFragment):
(WebCore::SimpleLineLayout::begin):
(WebCore::SimpleLineLayout::end):
(WebCore::SimpleLineLayout::preWrap):
(WebCore::SimpleLineLayout::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::splitFragmentToFitLine):
(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
(WebCore::SimpleLineLayout::splitRunsAtRendererBoundary):
(WebCore::SimpleLineLayout::createTextRuns):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp: Renamed from Source/WebCore/rendering/SimpleLineLayoutFlowContentsIterator.cpp.

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragmentIterator):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):
(WebCore::SimpleLineLayout::nextBreakablePosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::findNextBreakablePosition):
(WebCore::SimpleLineLayout::findNextNonWhitespace):
(WebCore::SimpleLineLayout::TextFragmentIterator::findNextNonWhitespacePosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h: Renamed from Source/WebCore/rendering/SimpleLineLayoutFlowContentsIterator.h.

(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::TextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::start):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::end):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::width):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::type):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isCollapsed):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isBreakable):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::TextFragmentIterator::style):
(WebCore::SimpleLineLayout::TextFragmentIterator::segmentForPosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::split):
(WebCore::SimpleLineLayout::TextFragmentIterator::characterAt):
(WebCore::SimpleLineLayout::TextFragmentIterator::isLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isEnd):

6:22 PM Changeset in webkit [179533] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Add diagnostic logging for ResourceResponse's source
https://bugs.webkit.org/show_bug.cgi?id=141170
<rdar://problem/19632080>

Reviewed by Antti Koivisto.

Add diagnostic logging for ResourceResponse's source (network, disk
cache, disk cache after validation) to give us an idea of our network
cache efficacy.

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):
(WebCore::ResourceLoader::didReceiveResponse):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::networkKey):
(WebCore::DiagnosticLoggingKeys::diskCacheKey):
(WebCore::DiagnosticLoggingKeys::diskCacheAfterValidationKey):
(WebCore::DiagnosticLoggingKeys::resourceResponseKey):
(WebCore::DiagnosticLoggingKeys::scriptKey):
(WebCore::DiagnosticLoggingKeys::sourceKey):

  • page/DiagnosticLoggingKeys.h:
6:22 PM Changeset in webkit [179532] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Optimize matchesLangPseudoClass() of :lang()
https://bugs.webkit.org/show_bug.cgi?id=140873

Patch by Dhi Aurrahman <diorahman@rockybars.com> on 2015-02-02
Reviewed by Darin Adler.

Source/WebCore:

Avoid unnecessary memory allocation.

No new tests, no behavior changed.

  • css/SelectorCheckerTestFunctions.h:

(WebCore::equalIgnoringASCIICase):
(WebCore::containslanguageSubtagMatchingRange):
(WebCore::matchesLangPseudoClass):

Source/WTF:

Add some basic equality comparison operators.

  • wtf/text/StringView.h:

(WTF::operator==):
(WTF::operator!=):
(WTF::equal):
(WTF::equalIgnoringASCIICase):

5:47 PM Changeset in webkit [179531] by Brent Fulgham
  • 6 edits in branches/safari-600.5-branch/Source/WebCore

Merge r178661. rdar://problem/19617731

2015-01-19 Brent Fulgham <Brent Fulgham>

Layers need to be already updated before we call adjustViewSize
https://bugs.webkit.org/show_bug.cgi?id=135514

Reviewed by Simon Fraser.

Tested by 'fast/dynamic/layer-no-longer-paginated.html'

Defer painting operations until we have finished layout. This
has a couple of benefits:
(1) We do not attempt to modify render layers during layout.
(2) In WK1 we do not attempt to paint during layout.

Add a new virtual predicate to ScrollView indicating when we are in
layout so that calls to setContentsSize do not attempt
to adjust scrollbars.

Modify FrameView to set its ScrollView state to block paint
operations during layout. Also add a post-layout handler to
complete the scrollbar updates after layout is finished.

  • WebCore.exp.in: Move linker symbol to ScrollView (from FrameView).
  • page/FrameView.cpp: (WebCore::FrameView::layout): (WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange): Added. (WebCore::FrameView::scrollPositionChangedViaPlatformWidget): Removed (Renamed). (WebCore::FrameView::scrollPositionChangedViaPlatformWidgetImpl): Added (Renamed) (WebCore::FrameView::paintContents): Do not paint if we are inside view size adjustment.
  • page/FrameView.h:
  • platform/ScrollView.cpp: (WebCore::ScrollView::scrollPositionChangedViaPlatformWidget): Added. Checks whether we need to defer painting, and calls virtual scrollPositionChangedViaPlatformWidgetImpl if we do not. (WebCore::FrameView::scrollPositionChangedViaPlatformWidgetImpl): Added. (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange): Added. (WebCore::ScrollView::scrollTo): If we should defer painting, cache the the scroll delta and apply it after the layout is complete. (WebCore::ScrollView::completeUpdatesAfterScrollTo): Split off part of 'scrollTo' into its own method so we can reuse it in handleDeferredScrollUpdateAfterContentSizeChange.
  • platform/ScrollView.h: (WebCore::ScrollView::shouldDeferScrollUpdateAfterContentSizeChange): Added.
5:33 PM Changeset in webkit [179530] by roger_fong@apple.com
  • 9 edits in trunk/Source/WebCore

WebGL2: Implement spec section 3.7.1 Setting and getting state (Part 2).
https://bugs.webkit.org/show_bug.cgi?id=141096
<rdar://problem/15002469>
Reviewed by Brent Fulgham.
This patch handles some of the valid arguments that could be passed into getParameter.
The unhandled cases will be implemented as the associated WebGL2 features are implemented.
In addition, getParameter queries that return 64 bit integer currently just return 0 as
we need to use ::glGetInteger64v which is only available in GLES 3.0 headers.
I will be adding these headers in a future patch.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::toJS): Accept a 64 bit integer type.

  • html/canvas/WebGL2RenderingContext.cpp: Handle various parameter inputs.

(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLGetInfo.cpp: Add a 64 bit integer type.

(WebCore::WebGLGetInfo::WebGLGetInfo):
(WebCore::WebGLGetInfo::getInt64):

  • html/canvas/WebGLGetInfo.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getInt64Parameter):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::getInteger64v):

5:18 PM Changeset in webkit [179529] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Make NetworkCache's constructor private
https://bugs.webkit.org/show_bug.cgi?id=141181

Reviewed by Antti Koivisto.

Make NetworkCache's constructor private and mark its destructor as
deleted as it is a singleton class.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::NetworkCache): Deleted.

  • NetworkProcess/cache/NetworkCache.h:
4:58 PM Changeset in webkit [179528] by matthew_hanson@apple.com
  • 1 edit
    1 move in branches/safari-600.5-branch

Merge r178846. rdar://problem/19670542

4:58 PM Changeset in webkit [179527] by matthew_hanson@apple.com
  • 6 edits
    1 add in branches/safari-600.5-branch

Merge r178845. rdar://problem/19670542

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

Merge r178834. rdar://problem/19670539

4:58 PM Changeset in webkit [179525] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-600.5-branch

Merge r178832. rdar://problem/19670627

4:57 PM Changeset in webkit [179524] by matthew_hanson@apple.com
  • 4 edits
    3 adds in branches/safari-600.5-branch

Merge r178831. rdar://problem/19670604

4:57 PM Changeset in webkit [179523] by matthew_hanson@apple.com
  • 7 edits in branches/safari-600.5-branch

Merge r178829. rdar://problem/19670575

4:57 PM Changeset in webkit [179522] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.5-branch/Source/WebCore

Merge r178819. rdar://problem/19670617

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

Merge r178812. rdar://problem/19670533

4:57 PM Changeset in webkit [179520] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.5-branch

Merge r178786. rdar://problem/19670584

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

Merge r178783. rdar://problem/19670695

4:57 PM Changeset in webkit [179518] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.5-branch/Source/WebCore

Merge r178782. rdar://problem/19670695

4:57 PM Changeset in webkit [179517] by matthew_hanson@apple.com
  • 9 edits in branches/safari-600.5-branch

Merge r178781. rdar://problem/19670569

4:57 PM Changeset in webkit [179516] by matthew_hanson@apple.com
  • 10 edits in branches/safari-600.5-branch

Merge r178779. rdar://problem/19670503

4:43 PM Changeset in webkit [179515] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[FTL] inlined GetMyArgumentByVal with no arguments passed causes instant crash
https://bugs.webkit.org/show_bug.cgi?id=141180
rdar://problem/19677552

Reviewed by Benjamin Poulain.

If we do a GetMyArgumentByVal on an inlined call frame that has no arguments, then the
bounds check already terminates execution. This means we can skip the part where we
previously did an out-of-bound array access on the inlined call frame arguments vector.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::safelyInvalidateAfterTermination):
(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
(JSC::FTL::LowerDFGToLLVM::terminate):
(JSC::FTL::LowerDFGToLLVM::didAlreadyTerminate):
(JSC::FTL::LowerDFGToLLVM::crash):

  • tests/stress/get-my-argument-by-val-inlined-no-formal-parameters.js: Added.

(foo):
(bar):

4:40 PM Changeset in webkit [179514] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5-branch/Source

Versioning.

4:38 PM Changeset in webkit [179513] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.4

New tag.

4:18 PM Changeset in webkit [179512] by matthew_hanson@apple.com
  • 1 edit
    1 copy
    1 move
    1 delete in branches/safari-600.5-branch/LayoutTests

Merge r178778. rdar://problem/19670611

4:18 PM Changeset in webkit [179511] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-600.5-branch

Merge r178777. rdar://problem/19670611

3:53 PM Changeset in webkit [179510] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Simple line layout: use std::upper_bound in splitFragmentToFitLine()
https://bugs.webkit.org/show_bug.cgi?id=141146

Reviewed by Antti Koivisto.

Replace the custom binary search implementation with std::upper_bound and
move splitting functionality to TextFragment.

No change in functionality.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::FragmentForwardIterator::FragmentForwardIterator):
(WebCore::SimpleLineLayout::FragmentForwardIterator::operator++):
(WebCore::SimpleLineLayout::FragmentForwardIterator::operator!=):
(WebCore::SimpleLineLayout::FragmentForwardIterator::operator*):
(WebCore::SimpleLineLayout::begin):
(WebCore::SimpleLineLayout::end):
(WebCore::SimpleLineLayout::splitFragmentToFitLine):

  • rendering/SimpleLineLayoutFlowContentsIterator.cpp:

(WebCore::SimpleLineLayout::FlowContentsIterator::runWidth):

  • rendering/SimpleLineLayoutFlowContentsIterator.h:

(WebCore::SimpleLineLayout::FlowContentsIterator::TextFragment::split):

3:42 PM Changeset in webkit [179509] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.5-branch/Source/WebKit2

Merge r178750. rdar://problem/19670673

3:42 PM Changeset in webkit [179508] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.5-branch/Source

Merge r178745. rdar://problem/19670564

3:42 PM Changeset in webkit [179507] by matthew_hanson@apple.com
  • 9 edits
    3 adds in branches/safari-600.5-branch

Merge r178735. rdar://problem/19670597

3:42 PM Changeset in webkit [179506] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-600.5-branch

Merge r178731. rdar://problem/19670592

3:42 PM Changeset in webkit [179505] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.5-branch/Source/JavaScriptCore

Merge r178730. rdar://problem/19670732

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

REGRESSION(r179477): arguments simplification no longer works
https://bugs.webkit.org/show_bug.cgi?id=141169

Reviewed by Mark Lam.

The operations involved in callee/scope access don't exit and shouldn't get in the way
of strength-reducing a Flush to a PhantomLocal. Then the PhantomLocal shouldn't get in
the way of further such strength-reduction. We also need to canonicalize PhantomLocal
before running arguments simplification.

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGPlan.cpp:

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

  • dfg/DFGStrengthReductionPhase.cpp:

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

3:32 PM Changeset in webkit [179503] by fpizlo@apple.com
  • 18 edits
    1 add in trunk/Source/JavaScriptCore

VirtualRegister should really know how to dump itself
https://bugs.webkit.org/show_bug.cgi?id=141171

Reviewed by Geoffrey Garen.

Gives VirtualRegister a dump() method that pretty-prints the virtual register. The rest of
the patch is all about using this new power.

(JSC::constantName):
(JSC::CodeBlock::registerName):

  • bytecode/CodeBlock.h:

(JSC::missingThisObjectMarker): Deleted.

  • bytecode/VirtualRegister.cpp: Added.

(JSC::VirtualRegister::dump):

  • bytecode/VirtualRegister.h:

(WTF::printInternal): Deleted.

  • dfg/DFGArgumentPosition.h:

(JSC::DFG::ArgumentPosition::dump):

  • dfg/DFGFlushedAt.cpp:

(JSC::DFG::FlushedAt::dump):

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGPutLocalSinkingPhase.cpp:
  • dfg/DFGSSAConversionPhase.cpp:

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

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::reportValidationContext):

  • dfg/DFGValueSource.cpp:

(JSC::DFG::ValueSource::dump):

  • dfg/DFGVariableEvent.cpp:

(JSC::DFG::VariableEvent::dump):
(JSC::DFG::VariableEvent::dumpSpillInfo):

  • ftl/FTLExitArgumentForOperand.cpp:

(JSC::FTL::ExitArgumentForOperand::dump):

  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dumpInContext):

  • profiler/ProfilerBytecodeSequence.cpp:

(JSC::Profiler::BytecodeSequence::BytecodeSequence):

3:14 PM Changeset in webkit [179502] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Update flakiness tests on W3C SVG 1.1 tests.

  • platform/efl/TestExpectations:
2:44 PM Changeset in webkit [179501] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
https://bugs.webkit.org/show_bug.cgi?id=141166

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

Add String.prototype.endsWith. Group String extensions together.

  • UserInterface/Models/CSSKeywordCompletions.js:

(WebInspector.CSSKeywordCompletions.forProperty):
If a property name ends in "color", provide CSS color completions.

(WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
This was unused and disagrees slightly with the implementation above.

2:27 PM Changeset in webkit [179500] by ggaren@apple.com
  • 9 edits in trunk/Source

Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
https://bugs.webkit.org/show_bug.cgi?id=140900

Reviewed by Mark Hahnenberg.

Re-landing just the HandleBlock piece of this patch.

Source/JavaScriptCore:

  • heap/HandleBlock.h:
  • heap/HandleBlockInlines.h:

(JSC::HandleBlock::create):
(JSC::HandleBlock::destroy):
(JSC::HandleBlock::HandleBlock):
(JSC::HandleBlock::payloadEnd):

  • heap/HandleSet.cpp:

(JSC::HandleSet::~HandleSet):
(JSC::HandleSet::grow):

Source/WebCore:

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

Source/WTF:

  • wtf/FastMalloc.cpp:

(WTF::fastAlignedMalloc):
(WTF::fastAlignedFree):
(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):

  • wtf/FastMalloc.h:
2:22 PM Changeset in webkit [179499] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] 64-bit build fix after r179492.

  • WebCore.vcxproj/WebCore.vcxproj: Forgot to build these files

as standalone under 64-bit target.

2:21 PM Changeset in webkit [179498] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Unreviewed build fix after r179489.

Correct symbol export definitions for 32-bit and 64-bit builds.
Also add some drive-by fixes for 64-bit symbols.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
2:00 PM Changeset in webkit [179497] by benjamin@webkit.org
  • 14 edits
    17 adds in trunk

Clean up attribute handling: part 2 - attributeNode
https://bugs.webkit.org/show_bug.cgi?id=141109

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-02
Reviewed by Andreas Kling.

Source/WebCore:

Our implementation was covering some old legacy behaviors of Firefox,
even copying bugs in some cases.

The spec (https://dom.spec.whatwg.org) now defines the behavior precisely,
let's move a bit closer to that.

Tests: fast/dom/Element/attribute-ascii-case-insensitive-3.html

fast/dom/Element/attribute-setAttributeNode-multiple-times.html
fast/dom/Element/attribute-setAttributeNodeNS-multiple-times.html
fast/dom/Element/mozilla-dom-base-tests/test_bug1075702.html
fast/dom/Element/mozilla-dom-base-tests/test_bug339494.html
fast/dom/Element/mozilla-dom-base-tests/test_bug364092.xhtml
fast/dom/Element/setAttributeNode-overriding-lowercase-values.html

  • dom/Element.cpp:

(WebCore::findAttrNodeInList):
New getter for the name-without-namespace case.

(WebCore::Element::setAttributeNode):
This one is the tricky one: https://dom.spec.whatwg.org/#dom-element-setattributenode

When setAttributeNode() is used with an AttributeNode without namespace,
getting the old value behaves like getAttribute(), with ASCII lowercase name matching.
When used with a namespace, getting the old value behaves like getAttributeNS().

Setting the value is a whole different story, the name used always keeps
the original case.

Now that's a bit tricky for us because AttributeNodes are just legacy stuff we don't
used internally.

We have 4 cases to handle:
1) The name being set is lowercase, there was no conflicting name on the element.

That's easy, we just override any node that would exist, set the name otherwise.

2) The name is lowercase but there was an existing attribute for it.

-We create a new AttributeNode for the name to represent the old name.
-We check the names are the same with attribute.name().matches(attrNode->qualifiedName())

and override the value.

3) The name has uppercase characters, there is no conflicting name.

We would not find an element to remove, we just use setAttributeInternal() as usual
to add the attribute;

4) The name has uppercase characters, there is a lowercase conflicing name.

This is the weird behavior: we need to nuke the old attribute, then add the new attribute
with a different case.

First we remove the attribute with a lowercase name with removeAttributeInternal().
That becomes the old node.

There might still be an element of the same name as what we are trying to add. We don't want
to add another version of the same attribute. We need to use findAttributeIndexByName() again
to find if there is a conflicting attribute. Then we call setAttributeInternal() which handle
the both the cases where there was an element or not.

(WebCore::Element::setAttributeNodeNS):
This should work like any "NS" method.

(WebCore::Element::removeAttributeNode):
The method removeAttributeNode() is supposed to be exact.

(WebCore::Element::getAttributeNode):
(WebCore::Element::hasAttribute):
(WebCore::Element::attrIfExists):

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

(WebCore::ElementData::findAttributeIndexByNameSlowCase): Deleted.
(WebCore::ElementData::findAttributeIndexByNameForAttributeNode): Deleted.
Kill the slow case, every caller has been updated now.

  • dom/ElementData.h:

(WebCore::ElementData::findAttributeIndexByName):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::matchesIgnoringCaseForLocalName): Deleted.

LayoutTests:

Improve the coverage a little.

Not everything is right yet: some getters return an empty string when they
should return null.

  • fast/dom/Element/attribute-ascii-case-insensitive-1-expected.txt:

This is now fixed :)

  • fast/dom/Element/attribute-ascii-case-insensitive-3-expected.txt: Added.
  • fast/dom/Element/attribute-ascii-case-insensitive-3.html: Added.

Test prefixed-like attribute defined through the parser.

  • fast/dom/Element/attribute-setAttributeNode-multiple-times-expected.txt: Added.
  • fast/dom/Element/attribute-setAttributeNode-multiple-times.html: Added.

Make sure we don't accumulate nodes.

  • fast/dom/Element/attribute-setAttributeNodeNS-multiple-times-expected.txt: Added.
  • fast/dom/Element/attribute-setAttributeNodeNS-multiple-times.html: Added.

Same without the crazy setter.

  • fast/dom/Element/script-tests/getAttribute-check-case-sensitivity.js:
  • fast/dom/Element/getAttribute-check-case-sensitivity-expected.txt:

With the latest spec, getting a node with any uppercase character through
getAttributeNode() always fails. Update the test to use .getAttributeNodeNS()
were needed.

  • fast/dom/Element/mozilla-dom-base-tests/test_bug1075702-expected.txt: Added.
  • fast/dom/Element/mozilla-dom-base-tests/test_bug1075702.html: Added.
  • fast/dom/Element/mozilla-dom-base-tests/test_bug339494-expected.txt: Added.
  • fast/dom/Element/mozilla-dom-base-tests/test_bug339494.html: Added.
  • fast/dom/Element/mozilla-dom-base-tests/test_bug364092-expected.txt: Added.
  • fast/dom/Element/mozilla-dom-base-tests/test_bug364092.xhtml: Added.

(testGetAttributeNodeMixedCase):
(testAttribNodeNamePreservesCaseGetNode):
(testAttribNodeNamePreservesCaseGetNode2):
Some related tests from Gecko, for completeness.

  • fast/dom/Element/setAttributeNode-case-insensitivity-expected.txt:
  • fast/dom/Element/setAttributeNode-case-insensitivity.html:

Test that the getAttribute part of setAttributeNode() do not ignore the prefix. The spec
says to use the name, not the localname.

  • fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt:
  • fast/dom/Element/setAttributeNode-for-existing-attribute.html:

This test was for legacy behavior that came from Firefox. Firefox does not do that anymore.
Keep the test around for regression catching, but add a sentence explaining the 'incorrect'
behavior.

  • fast/dom/Element/setAttributeNode-overriding-lowercase-values-1-expected.txt: Added.
  • fast/dom/Element/setAttributeNode-overriding-lowercase-values-1.html: Added.
  • fast/dom/Element/setAttributeNode-overriding-lowercase-values-2-expected.txt: Added.
  • fast/dom/Element/setAttributeNode-overriding-lowercase-values-2.html: Added.

Some coverage for the name overriding craziness.

1:55 PM Changeset in webkit [179496] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Rebaseline test with new expected results.

  • http/tests/inspector-protocol/access-inspected-object-expected.txt:
1:39 PM Changeset in webkit [179495] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Memory is written to after deallocated, in GraphicsLayer::setMaskLayer.
https://bugs.webkit.org/show_bug.cgi?id=141168

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-02-02
Reviewed by Brent Fulgham.

Visual Studio detected that a deallocated heap block had been modified in GraphicsLayer::setMaskLayer,
when called from RenderLayerBacking::updateChildClippingStrategy.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateChildClippingStrategy):

1:25 PM Changeset in webkit [179494] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Make decoded image data purgeable ASAP.
<https://webkit.org/b/140298>
<rdar://problem/19623377>

Reviewed by Antti Koivisto.

Re-landing this patch since it turned out to not be the cause of
the memory regression we saw around that revision.

Mark decoded images as "transient" which makes CoreGraphics mark
the backing stores as purgeable shortly after they're used.

The decoded representation will remain in CoreGraphics's caches
indefinitely unless the kernel gets starved and needs the pages.

Most resources will now reach a state where the encoded data is
mmap'ed from disk cache (once the entire resource is downloaded)
and the decoded data is purgeable.

This also has the side effect of making the MemoryCache more
palatial since the decoded data cost can be deducted for images,
allowing us to cache more resources.

Note that the worst case for this new behavior would be something
like hovering below 100% memory utilization and constantly having
to drop and re-decode images. While churny, it still beats
crashing the process, plus there's tiling to remove many of the
reasons we'd need the decoded data.

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageSource::createFrameAtIndex):

1:07 PM Changeset in webkit [179493] by Joseph Pecoraro
  • 11 edits in trunk/Source

Web Inspector: Support console.table
https://bugs.webkit.org/show_bug.cgi?id=141058

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

Include the firstLevelKeys filter when generating previews.

  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):
Differentiate console.table logs to system log.

Source/WebCore:

  • inspector/CommandLineAPIModuleSource.js:

Include "table(foo)" as an alias of "console.table(foo)" on
the command line.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:

New "Index", "(Index)", "Value", table header strings.

  • UserInterface/Views/ConsoleMessage.js:

Add "Table", but add FIXMEs to consider using the protocol generated enums.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._format):
Special case console.table messages.

(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
(WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
Factor out ProjectPreview printing. Also, replace newlines in strings
with return characters, like we did elsewhere.

(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
Ultimately try to create a DataGrid from the output. Search first
for rich object data in the list. If no rich object data is found
just check for simple values. If the table is lossy, also do
a log of the object in case the user wants to see more data.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
The for..in enumeration is unordered and may not give us the
column ordering we wanted. So include an optional preferred
column names list to get the preferred order.

(WebInspector.DataGrid.createSortableDataGrid):
Numerous bug fixes here. Accidental globals, typos, and sorting failures.

(WebInspector.DataGrid.prototype.autoSizeColumns):
(WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
Create a generic method to get the text for a datagrid node in a column.
This is important for getting the text from console.table previews which
contains Nodes.

  • UserInterface/Views/LogContentView.css:

(.console-messages:focus .console-item.selected .data-grid tr.selected):
(.console-item .data-grid tr.selected):
DataGrid selection colors while in the console which may or may
not have selected console items.

1:04 PM Changeset in webkit [179492] by roger_fong@apple.com
  • 5 edits in trunk/Source/WebCore

[Win] Build fix following r179482.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • bindings/js/JSBindingsAllInOne.cpp:
  • platform/graphics/GraphicsContext3D.h:
12:54 PM Changeset in webkit [179491] by fpizlo@apple.com
  • 4 edits in trunk

.:
Revert accidental change in r179490.

  • Makefile.shared:

Source/WebKit2:
Revert accidental (and super bad) change in r179490.

  • WebProcess/com.apple.WebProcess.sb.in:
12:52 PM Changeset in webkit [179490] by fpizlo@apple.com
  • 5 edits in trunk

BinarySwitch should be faster on average
https://bugs.webkit.org/show_bug.cgi?id=141046

Reviewed by Anders Carlsson.

This optimizes our binary switch using math. It's strictly better than what we had before
assuming we bottom out in some case (rather than fall through), assuming all cases get
hit with equal probability. The difference is particularly large for large switch
statements. For example, a switch statement with 1000 cases would previously require on
average 13.207 branches to get to some case, while now it just requires 10.464.

This is also a progression for the fall-through case, though we could shave off another
1/6 branch on average if we wanted to - though it would regress taking a case (not falling
through) by 1/6 branch. I believe it's better to bias the BinarySwitch for not falling
through.

This also adds some randomness to the algorithm to minimize the likelihood of us
generating a switch statement that is always particularly bad for some input. Note that
the randomness has no effect on average-case performance assuming all cases are equally
likely.

This ought to have no actual performance change because we don't rely on binary switches
that much. The main reason why this change is interesting is that I'm finding myself
increasingly relying on BinarySwitch, and I'd like to know that it's optimal.

  • jit/BinarySwitch.cpp:

(JSC::BinarySwitch::BinarySwitch):
(JSC::BinarySwitch::~BinarySwitch):
(JSC::BinarySwitch::build):

  • jit/BinarySwitch.h:
12:50 PM Changeset in webkit [179489] by Chris Dumez
  • 29 edits in trunk/Source

Access MemoryCache singleton using MemoryCache::singleton()
https://bugs.webkit.org/show_bug.cgi?id=141104

Reviewed by Andreas Kling.

Access MemoryCache singleton using MemoryCache::singleton() static
member function, instead of a free function, as per the recent
coding style discussion on WebKit-dev.

12:40 PM Changeset in webkit [179488] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Ambiguous naming: Do not call replacedContentRect()'s return value paint rect.
https://bugs.webkit.org/show_bug.cgi?id=141125

Reviewed by Simon Fraser.

It's the content box rect with the object-fit adjustment.

No change in functionality.

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintReplaced):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::replacedContentRect):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::splitFragmentToFitLine):

12:29 PM Changeset in webkit [179487] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Build fix after r179476.
https://bugs.webkit.org/show_bug.cgi?id=141026

Reviewed by Anders Carlsson.

MSVC has a compiler bug that forces us to make some explicit statements about how
the passed pointer values are handled.

  • css/CSSParser.cpp:

(WebCore::CSSParser::SourceSize::SourceSize):
(WebCore::CSSParser::sourceSize):

  • css/CSSParser.h:
12:28 PM Changeset in webkit [179486] by fpizlo@apple.com
  • 2 edits in trunk

Unreviewed, revert accidental change to Makefile.shared in r179478

  • Makefile.shared:
12:13 PM Changeset in webkit [179485] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Get rid of invalidSelectorVector, use Bison's error recovery instead
https://bugs.webkit.org/show_bug.cgi?id=141147

Reviewed by Darin Adler.

  • css/CSSGrammar.y.in:

Instead of reducing a null selector, we can use a real parsing error
to get out of invalid selector endings.

When that happens, Bison will pop the stack until it can reduce any
valid error recovery rules.

The problem is to make sure there is no floating values because
none of the reduce block between the error and the recovery would
be executed.

In this case, "nth_selector_ending" is a non-recursive production of
the NTHCHILDFUNCTIONS. In turn, NTHCHILDFUNCTIONS are productions
of the non-recursive "pseudo". "pseudo" is only used as a trivial
production of "specifier". "specifier" is only used by "specifier_list".

"specifier_list" has error recovery code -> no production could have
generated a floating values between "specifier_list" and "nth_selector_ending".

12:10 PM Changeset in webkit [179484] by benjamin@webkit.org
  • 1 edit
    8 adds in trunk/LayoutTests

Multiple CSS plus selector not working after checkbox:checked
https://bugs.webkit.org/show_bug.cgi?id=110594

Reviewed by Darin Adler.

I fixed the bug not so long ago.

This patch adds coverage for :checked since internal states
tend to have tricky update behaviors.

  • fast/selectors/checked-direct-adjacent-style-update-1-expected.txt: Added.
  • fast/selectors/checked-direct-adjacent-style-update-1.html: Added.
  • fast/selectors/checked-direct-adjacent-style-update-2-expected.txt: Added.
  • fast/selectors/checked-direct-adjacent-style-update-2.html: Added.
  • fast/selectors/checked-direct-adjacent-style-update-3-expected.txt: Added.
  • fast/selectors/checked-direct-adjacent-style-update-3.html: Added.
  • fast/selectors/checked-direct-adjacent-style-update-4-expected.txt: Added.
  • fast/selectors/checked-direct-adjacent-style-update-4.html: Added.
12:07 PM Changeset in webkit [179483] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
https://bugs.webkit.org/show_bug.cgi?id=141064

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

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Source/WebInspectorUI:

  • UserInterface/Models/CSSCompletions.js:
  • UserInterface/Models/CSSKeywordCompletions.js:

(WebInspector.CSSKeywordCompletions.addCustomCompletions):
(WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
If a property is specified with custom values, extend the
keyword completions map to make those values available
in autocompletion.

12:05 PM Changeset in webkit [179482] by roger_fong@apple.com
  • 15 edits in trunk

WebGL2: Implement spec section 3.7.1 Setting and getting state (Part 1).
https://bugs.webkit.org/show_bug.cgi?id=141096
<rdar://problem/15002469>

Reviewed by Brent Fulgham.

This patch implements the WebGL2 versions of getParameter, getIndexedParameter and isEnabled.
It also removes the WebGL1 implementations from WebGLRenderingContextBase and moves it to WebGLRenderingContext.
I’ve stubbed out most of the parameters for now, some of which will be implemented in Part 2,
and the rest as the our WebGL2 implementation progresses.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::toJS):
(WebCore::JSWebGL2RenderingContext::getIndexedParameter):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::validateCapability):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::validateCapability):

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getParameter): Deleted.
(WebCore::WebGLRenderingContextBase::validateCapability): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:
  • platform/graphics/GraphicsContext3D.h:

Two read format parameters were moved from the WebGL2 spec to the WebGL1 spec. Update tests accordingly.

  • fast/canvas/webgl/constants.html:
  • fast/canvas/webgl/webgl-specific-expected.txt:
  • fast/canvas/webgl/webgl-specific.html:
  • webgl/1.0.2/resources/webgl_test_files/conformance/misc/webgl-specific.html:
11:47 AM Changeset in webkit [179481] by dbates@webkit.org
  • 9 edits in trunk

[iOS] ASSERTION FAILED: m_scriptExecutionContext->isContextThread() in ContextDestructionObserver::observeContext
https://bugs.webkit.org/show_bug.cgi?id=141057
<rdar://problem/19068790>

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedIndicateMessage): Modified to call WTF::callOnWebThreadOrDispatchAsyncOnMainThread().
(Inspector::dispatchAsyncOnQueueSafeForAnyDebuggable): Deleted; moved logic to common helper function,
WTF::callOnWebThreadOrDispatchAsyncOnMainThread() so that it can be called from both RemoteInspector::receivedIndicateMessage()
and CryptoKeyRSA::generatePair().

Source/WebCore:

Fixes an issue where we would create-/delete- the RSA crypto keys and dispatch callbacks on the wrong
thread in WebKit1 for iOS. In iOS WebKit1 we should perform such operations on thread WebThread.

This change is covered by existing layout tests.

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

Source/WTF:

  • wtf/MainThread.h:
  • wtf/mac/MainThreadMac.mm:

(WTF::callOnWebThreadOrDispatchAsyncOnMainThread): Added.

LayoutTests:

Un-skip crypto tests. Also, group skip entries for tests crypto/subtle/{rsa-indexeddb, rsa-indexeddb-non-exportable}.html
with other skipped IndexedDB tests.

  • platform/ios-simulator/TestExpectations:
11:40 AM Changeset in webkit [179480] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Prevent crash when accessing WebAVPlayerController.delegate.
https://bugs.webkit.org/show_bug.cgi?id=140893

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-02-02
Reviewed by Darin Adler.

Source/WebCore:

This patch aims to prevent a null delegate access during invalidation by adding null checks before accessing the delegate, by making explicit the recreation of m_playerController, and by consolidating and correcting the teardown sequence.

  • WebCore.exp.in:
  • platform/ios/WebVideoFullscreenInterface.h: add resetMediaState()
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: ditto.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Check for null before accessing delegate.
(-[WebAVPlayerController play:]): ditto.
(-[WebAVPlayerController pause:]): ditto.
(-[WebAVPlayerController togglePlayback:]): ditto.
(-[WebAVPlayerController setPlaying:]): ditto.
(-[WebAVPlayerController beginScrubbing:]): ditto.
(-[WebAVPlayerController endScrubbing:]): ditto.
(-[WebAVPlayerController seekToTime:]): ditto.
(-[WebAVPlayerController beginScanningForward:]): ditto.
(-[WebAVPlayerController endScanningForward:]): ditto.
(-[WebAVPlayerController beginScanningBackward:]): ditto.
(-[WebAVPlayerController endScanningBackward:]): ditto.
(-[WebAVPlayerController seekToBeginning:]): ditto.
(-[WebAVPlayerController seekToEnd:]): ditto.
(-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]): ditto.
(-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]): ditto.
(-[WebAVPlayerController layoutSublayersOfLayer:]): ditto.
(WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): initialize m_playerController
(WebVideoFullscreenInterfaceAVKit::resetMediaState): Added.
(WebVideoFullscreenInterfaceAVKit::setDuration): remove playerController()
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto.
(WebVideoFullscreenInterfaceAVKit::setRate): ditto.
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto.
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto.
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): ditto.
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto.
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto.
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): ditto.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): ditto.
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): consolidated cleanup code from invalidate()
(WebVideoFullscreenInterfaceAVKit::invalidate): consolidate cleanup code.
(WebVideoFullscreenInterfaceAVKit::playerController): Deleted.

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoElement): call resetMediaState()

Source/WebKit2:

Plumb new resetMediaState() through IPC interface WebVideoFullscreenManagerProxy.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::invalidate): remove redundant set to nullptr.

  • WebProcess/ios/WebVideoFullscreenManager.h:
  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::resetMediaState):

11:05 AM Changeset in webkit [179479] by saambarati1@gmail.com
  • 7 edits
    8 adds in trunk

Create tests for JSC's Control Flow Profiler
https://bugs.webkit.org/show_bug.cgi?id=141123

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch creates a control flow profiler testing API in jsc.cpp
that accepts a function and a string as arguments. The string must
be a substring of the text of the function argument. The API returns
a boolean indicating whether or not the basic block that encloses the
substring has executed.

This patch uses this API to test that the control flow profiler
behaves as expected on basic block boundaries. These tests do not
provide full coverage for all JavaScript statements that can create
basic blocks boundaries. Full coverage will come in a later patch.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionHasBasicBlockExecuted):

  • runtime/ControlFlowProfiler.cpp:

(JSC::ControlFlowProfiler::hasBasicBlockAtTextOffsetBeenExecuted):

  • runtime/ControlFlowProfiler.h:
  • tests/controlFlowProfiler: Added.
  • tests/controlFlowProfiler.yaml: Added.
  • tests/controlFlowProfiler/driver: Added.
  • tests/controlFlowProfiler/driver/driver.js: Added.

(assert):

  • tests/controlFlowProfiler/if-statement.js: Added.

(testIf):
(noMatches):

  • tests/controlFlowProfiler/loop-statements.js: Added.

(forRegular):
(forIn):
(forOf):
(whileLoop):

  • tests/controlFlowProfiler/switch-statements.js: Added.

(testSwitch):

  • tests/controlFlowProfiler/test-jit.js: Added.

(tierUpToBaseline):
(tierUpToDFG):
(baselineTest):
(dfgTest):

Tools:

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
10:38 AM Changeset in webkit [179478] by fpizlo@apple.com
  • 46 edits
    2 adds
    5 deletes in trunk

Polymorphic call inlining should be based on polymorphic call inline caching rather than logging
https://bugs.webkit.org/show_bug.cgi?id=140660

Reviewed by Geoffrey Garen.

When we first implemented polymorphic call inlining, we did the profiling based on a call
edge log. The idea was to store each call edge (a tuple of call site and callee) into a
global log that was processed lazily. Processing the log would give precise counts of call
edges, and could be used to drive well-informed inlining decisions - polymorphic or not.
This was a speed-up on throughput tests but a slow-down for latency tests. It was a net win
nonetheless.

Experience with this code shows three things. First, the call edge profiler is buggy and
complex. It would take work to fix the bugs. Second, the call edge profiler incurs lots of
overhead for latency code that we care deeply about. Third, it's not at all clear that
having call edge counts for every possible callee is any better than just having call edge
counts for the limited number of callees that an inline cache would catch.

So, this patch removes the call edge profiler and replaces it with a polymorphic call inline
cache. If we miss the basic call inline cache, we inflate the cache to be a jump to an
out-of-line stub that cases on the previously known callees. If that misses again, then we
rewrite that stub to include the new callee. We do this up to some number of callees. If we
hit the limit then we switch to using a plain virtual call.

Substantial speed-up on V8Spider; undoes the slow-down that the original call edge profiler
caused. Might be a SunSpider speed-up (below 1%), depending on hardware.

Rolling this back in after fixing https://bugs.webkit.org/show_bug.cgi?id=141107.

(JSC::CallEdge::count):
(JSC::CallEdge::CallEdge):

  • bytecode/CallEdgeProfile.cpp: Removed.
  • bytecode/CallEdgeProfile.h: Removed.
  • bytecode/CallEdgeProfileInlines.h: Removed.
  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::unlink):
(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkInfo.h:
  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::CallLinkStatus):
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::isClosureCall):
(JSC::CallLinkStatus::makeClosureCall):
(JSC::CallLinkStatus::dump):
(JSC::CallLinkStatus::computeFromCallEdgeProfile): Deleted.

  • bytecode/CallLinkStatus.h:

(JSC::CallLinkStatus::CallLinkStatus):
(JSC::CallLinkStatus::isSet):
(JSC::CallLinkStatus::variants):
(JSC::CallLinkStatus::size):
(JSC::CallLinkStatus::at):
(JSC::CallLinkStatus::operator[]):
(JSC::CallLinkStatus::canOptimize):
(JSC::CallLinkStatus::edges): Deleted.
(JSC::CallLinkStatus::canTrustCounts): Deleted.

  • bytecode/CallVariant.cpp:

(JSC::variantListWithVariant):
(JSC::despecifiedVariantList):

  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::linkIncomingPolymorphicCall):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::noticeIncomingCall):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isIncomingCallAlreadyLinked): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addCallWithoutSettingResult):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::TierUpCheckInjectionPhase::run):
(JSC::DFG::TierUpCheckInjectionPhase::removeFTLProfiling): Deleted.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • heap/Heap.cpp:

(JSC::Heap::collect):

  • jit/BinarySwitch.h:
  • jit/ClosureCallStubRoutine.cpp: Removed.
  • jit/ClosureCallStubRoutine.h: Removed.
  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

(JSC::operationLinkPolymorphicCallFor):
(JSC::operationLinkClosureCallFor): Deleted.

  • jit/JITStubRoutine.h:
  • jit/JITWriteBarrier.h:
  • jit/PolymorphicCallStubRoutine.cpp: Added.

(JSC::PolymorphicCallNode::~PolymorphicCallNode):
(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallCase::dump):
(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):
(JSC::PolymorphicCallStubRoutine::~PolymorphicCallStubRoutine):
(JSC::PolymorphicCallStubRoutine::variants):
(JSC::PolymorphicCallStubRoutine::edges):
(JSC::PolymorphicCallStubRoutine::visitWeak):
(JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternal):

  • jit/PolymorphicCallStubRoutine.h: Added.

(JSC::PolymorphicCallNode::PolymorphicCallNode):
(JSC::PolymorphicCallCase::PolymorphicCallCase):
(JSC::PolymorphicCallCase::variant):
(JSC::PolymorphicCallCase::codeBlock):

  • jit/Repatch.cpp:

(JSC::linkSlowFor):
(JSC::linkFor):
(JSC::revertCall):
(JSC::unlinkFor):
(JSC::linkVirtualFor):
(JSC::linkPolymorphicCall):
(JSC::linkClosureCall): Deleted.

  • jit/Repatch.h:
  • jit/ThunkGenerators.cpp:

(JSC::linkPolymorphicCallForThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::linkPolymorphicCallThatPreservesRegsThunkGenerator):
(JSC::linkClosureCallForThunkGenerator): Deleted.
(JSC::linkClosureCallThunkGenerator): Deleted.
(JSC::linkClosureCallThatPreservesRegsThunkGenerator): Deleted.

  • jit/ThunkGenerators.h:

(JSC::linkPolymorphicCallThunkGeneratorFor):
(JSC::linkClosureCallThunkGeneratorFor): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

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

(JSC::VM::prepareToDiscardCode):
(JSC::VM::ensureCallEdgeLog): Deleted.

  • runtime/VM.h:
10:15 AM Changeset in webkit [179477] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Converting Flushes and PhantomLocals to Phantoms requires an OSR availability analysis rather than just using the SetLocal's child
https://bugs.webkit.org/show_bug.cgi?id=141107

Reviewed by Michael Saboff.

See the bugzilla for a discussion of the problem. This addresses the problem by ensuring
that Flushes are always strength-reduced to PhantomLocals, and CPS rethreading does a mini
OSR availability analysis to determine the right MovHint value to use for the Phantom.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::CPSRethreadingPhase):
(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::clearVariables):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):
(JSC::DFG::CPSRethreadingPhase::clearVariablesAtHeadAndTail): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertPhantomToPhantomLocal):
(JSC::DFG::Node::convertFlushToPhantomLocal):
(JSC::DFG::Node::convertToPhantomLocal): Deleted.

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • tests/stress/inline-call-that-doesnt-use-all-args.js: Added.

(foo):
(bar):
(baz):

10:12 AM Changeset in webkit [179476] by Darin Adler
  • 11 edits in trunk/Source/WebCore

REGRESSION (r170576): Storage leaks in parsing of CSS image sizes
https://bugs.webkit.org/show_bug.cgi?id=141026

Reviewed by Anders Carlsson.

  • css/CSSGrammar.y.in: Fixed all the shift/reduce conflicts caused

by the ENABLE_PICTURE_SIZES code by removing all the redundant
maybe_space which caused them. Rearranged the productions for
ENABLE_PICTURE_SIZES to tighten up the code quite a bit. Changed
the code to build up the source size vector as a Vector instead of
a special class, and use the SourceSize struct from inside the
CSSParser class.'

  • css/CSSParser.cpp:

(WebCore::CSSParser::setupParser): Changed this to take a StringView.
In the future we can change all the parsing functions to take StringView,
since they don't work with the String in place.
(WebCore::CSSParser::parseSizesAttribute): Changed to return a vector
of SourceSize instead of a SourceSizeList. This is better because it's
a real CSS data structure that does not contain a CSSParserValue.
(WebCore::CSSParser::sourceSize): Added. Helper that creates a
SourceSize, mapping parser data structures into real CSS ones.

  • css/CSSParser.h: Updated for changes above.
  • css/MediaQuery.cpp:

(WebCore::MediaQuery::MediaQuery): Use std::make_unique and the copy
constructor directly instead of using a MediaQuery::copy function.

  • css/MediaQueryExp.cpp: Streamlined the class a little bit.
  • css/MediaQueryExp.h: Removed unneeded includes. Moved functions out

of the class body so the class is easier to read. Removed the unneeded
copy function.

  • css/SourceSizeList.cpp:

(WebCore::SourceSize::match): Changed to use WTF::move instead
of releasing and then re-creating the unique_ptr.
(WebCore::computeLength): Added a comment to explain this function
is using an incorrect strategy. Also added some type checking code
to handle cases where a null or non-primitive CSS value might be
returned. Probably dead code, but we don't want to risk a bad cast.
Worthe cleaning up when we fix the strategy.
(WebCore::SourceSizeList::getEffectiveSize): Updated since the
vector now contains actual SourceSize objects rather than pointers
to SourceSize objects on the heap.

  • css/SourceSizeList.h: Changed the CSSParserValue argument to be

an rvalue reference to make it clearer that we take ownership of it
when it's moved in. Added a move constructor and a destructor. Added
comments explaining that it's not correct design to use a
CSSParserValue here, outside the parser. Changed SourceSizeList's
append function to move a SourceSize in rather than a unique_ptr.
Made getEffectiveSize private. Moved the various inline functions to
the bottom of the file to make the class definitions easier to read.

  • css/SourceSizeList.cpp: Made almost everything about this private

to this source file instead of public in the header.
(WebCore::match): Made this a free function instead of a member function
and made it take the media query expression as an argument.
(WebCore::computeLength): Changed the argument type to CSSValue*,
rather than using CSSParserValue here outside the parser.
(WebCore::parseSizesAttribute): Streamlined and simplified this.
Now that the parser builds the list in the correct order, there was
no need to iterate backwards any more so we could use a modern for
loop.

  • css/SourceSizeList.h: Removed almost everything in this header.
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute): Call the
parseSizesAttribute function as free function since it's no longer
a member of a SourceSizeList class.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
Ditto.

9:06 AM Changeset in webkit [179475] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Remove copy/paste code from run-jsc-stress-tests to determine numberOfTests
https://bugs.webkit.org/show_bug.cgi?id=141158

Reviewed by Darin Adler.

  • Scripts/run-jsc-stress-tests:
12:48 AM Changeset in webkit [179474] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] MiniBrowser should close itself on Ctrl+W or Ctrl+Q
https://bugs.webkit.org/show_bug.cgi?id=141142

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

  • MiniBrowser/gtk/BrowserWindow.c:

(browser_window_init): Quit on Ctrl+W or Ctrl+Q

12:27 AM Changeset in webkit [179473] by Darin Adler
  • 6 edits in trunk/Source/WebCore

Fix some leaks found by the leak bot
https://bugs.webkit.org/show_bug.cgi?id=141149

Reviewed by Alexey Proskuryakov.

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::importKey): Changed argument types to std::unique_ptr for better code clarity.
(WebCore::JSSubtleCrypto::importKey): Use WTF::move instead of release.
(WebCore::JSSubtleCrypto::wrapKey): Fixed leaks by adding missing delete calls to the
case where we get a DOM exception.
(WebCore::JSSubtleCrypto::unwrapKey): Ditto.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorQuery::SelectorQuery): Use WTF::move here. Not clear how this could
have caused the storage leak, but it does seem obviously missing. The leak is pretty big,
implying that we leak almost all CSSSelectorList objects we parse; not sure this fixes it.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse): Added code to
deleted the unguarded pointer if postTaskForModeToWorkerGlobalScope fails.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData): Ditto.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): Ditto.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck): Ditto.

  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionGroupAVFObjC::updateOptions): Added missing adoptNS.

  • platform/graphics/mac/GraphicsContextMac.mm:

(WebCore::GraphicsContext::updateDocumentMarkerResources): Added missing release.

Note: See TracTimeline for information about the timeline view.