WebKit-https.git
6 years agoMove commits viewer to the end of details view
rniwa@webkit.org [Fri, 6 Feb 2015 01:23:31 +0000 (01:23 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove commits viewer to the end of details view
rniwa@webkit.org [Fri, 6 Feb 2015 01:14:40 +0000 (01:14 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCodeCache is not thread safe when adding the same source from two different threads
msaboff@apple.com [Fri, 6 Feb 2015 01:12:00 +0000 (01:12 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse deleteEmptyDirectory() in NetworkCacheStorage::clear()
cdumez@apple.com [Fri, 6 Feb 2015 01:07:51 +0000 (01:07 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix ASSERTION FAILED: !root->needsLayout() in FrameView::layout()
commit-queue@webkit.org [Fri, 6 Feb 2015 01:05:08 +0000 (01:05 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[MSE] Implement Append Error algorithm.
commit-queue@webkit.org [Fri, 6 Feb 2015 00:57:41 +0000 (00:57 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] Unreviewed gardening.
zalan@apple.com [Fri, 6 Feb 2015 00:33:49 +0000 (00:33 +0000)]
[Mac] Unreviewed gardening.
Mark inspector/css/selector-specificity.html flaky with Crash too (already marked with Timeout).

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDashboard doesn't consider building ASan a productive step
ap@apple.com [Fri, 6 Feb 2015 00:30:27 +0000 (00:30 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS] Remove False Positive dispatch_source Leak in WebMemoryPressureHandler singleton
commit-queue@webkit.org [Thu, 5 Feb 2015 23:47:35 +0000 (23:47 +0000)]
[iOS] Remove False Positive dispatch_source Leak in WebMemoryPressureHandler singleton
https://bugs.webkit.org/show_bug.cgi?id=141307

Patch by Joseph Pecoraro <pecoraro@apple.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTestExpectations gardening.
ap@apple.com [Thu, 5 Feb 2015 23:36:06 +0000 (23:36 +0000)]
TestExpectations gardening.

* platform/win/TestExpectations: These two canvas tests fail on Windows only.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTestExpectations gardening.
ap@apple.com [Thu, 5 Feb 2015 23:35:19 +0000 (23:35 +0000)]
TestExpectations gardening.

* TestExpectations: Updated expectations for tests that pass.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTestExpectations gardening.
ap@apple.com [Thu, 5 Feb 2015 23:27:55 +0000 (23:27 +0000)]
TestExpectations gardening.

* platform/mac/TestExpectations: Updated expectatiosn for tests that sometimes pass.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS] webkitpy.xcode.simulator.Runtime.from_identifier() returns wrong result for...
dbates@webkit.org [Thu, 5 Feb 2015 23:15:30 +0000 (23:15 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago<rdar://problem/18216390> ASSERTION FAILED: !m_visibleDescendantStatusDirty in WebCor...
ap@apple.com [Thu, 5 Feb 2015 23:01:36 +0000 (23:01 +0000)]
<rdar://problem/18216390> ASSERTION FAILED: !m_visibleDescendantStatusDirty in WebCore::RenderLayer::isVisuallyNonEmpty()

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

* TestExpectations: Marked it as flakily crashing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] 64-bit build fix after r179702 and r179709
bfulgham@apple.com [Thu, 5 Feb 2015 22:58:56 +0000 (22:58 +0000)]
[Win] 64-bit build fix after r179702 and r179709

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
jonowells@apple.com [Thu, 5 Feb 2015 22:47:40 +0000 (22:47 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayoutTestRelay does not install DumpRenderTree.app/WebKitTestRunnerApp.app
dbates@webkit.org [Thu, 5 Feb 2015 22:46:30 +0000 (22:46 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNew perf dashboard should compare results to baseline and target
rniwa@webkit.org [Thu, 5 Feb 2015 22:34:13 +0000 (22:34 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed attempt to fix Windows build after r179702.
cdumez@apple.com [Thu, 5 Feb 2015 22:17:38 +0000 (22:17 +0000)]
Unreviewed attempt to fix Windows build after r179702.

Export a couple of extra symbols.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSwitch to file backed buffer when resource is cached to disk
antti@apple.com [Thu, 5 Feb 2015 22:17:22 +0000 (22:17 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[WK2] Properly check for mmap() error case
cdumez@apple.com [Thu, 5 Feb 2015 22:13:10 +0000 (22:13 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179707 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCrash due to failing to dirty a removed text node's line box
mjs@apple.com [Thu, 5 Feb 2015 21:55:45 +0000 (21:55 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoClean up WebInspectorProxy and use simpler inspector levels design
burg@cs.washington.edu [Thu, 5 Feb 2015 21:52:11 +0000 (21:52 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[WK2][Cocoa] Populate m_contentsFilter bloom filter from the main dispatch queue...
cdumez@apple.com [Thu, 5 Feb 2015 21:48:16 +0000 (21:48 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179704 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse deleteFile() in NetworkCacheStorageCocoa.mm
cdumez@apple.com [Thu, 5 Feb 2015 21:46:11 +0000 (21:46 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179703 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFree memory read under MemoryCache::pruneLiveResourcesToSize()
cdumez@apple.com [Thu, 5 Feb 2015 21:29:19 +0000 (21:29 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179702 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: eliminate some unnecessary layout/painting in timeline overview and...
burg@cs.washington.edu [Thu, 5 Feb 2015 20:12:38 +0000 (20:12 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] Mark another group of assertion failures.
bfulgham@apple.com [Thu, 5 Feb 2015 19:49:37 +0000 (19:49 +0000)]
[Win] Mark another group of assertion failures.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179700 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] HLS <video> will not fire 'progress' events, only 'stalled'.
jer.noble@apple.com [Thu, 5 Feb 2015 19:37:11 +0000 (19:37 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179699 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDisable retries on Mac debug testers
ap@apple.com [Thu, 5 Feb 2015 19:29:55 +0000 (19:29 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179698 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] Unreviewed gardening.
zalan@apple.com [Thu, 5 Feb 2015 18:40:16 +0000 (18:40 +0000)]
[Mac] Unreviewed gardening.
Mark compositing/reflections/masked-reflection-on-composited.html flaky.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179697 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/xmlhttprequest/event-listener-gc.html is flaky
ap@apple.com [Thu, 5 Feb 2015 18:36:25 +0000 (18:36 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179696 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove InstanceInvalidationGuard/UpdateBlocker to SVGElement from SVGElementInstance
bfulgham@apple.com [Thu, 5 Feb 2015 18:07:10 +0000 (18:07 +0000)]
Move InstanceInvalidationGuard/UpdateBlocker to SVGElement from SVGElementInstance
https://bugs.webkit.org/show_bug.cgi?id=141148

Patch by Darin Adler <darin@apple.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179695 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNeed a way to force $xcodeSDK in webkitdirs.pm
mitz@apple.com [Thu, 5 Feb 2015 17:56:25 +0000 (17:56 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemind ourselves to remove work-around code
bfulgham@apple.com [Thu, 5 Feb 2015 17:25:29 +0000 (17:25 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] More Unreviewed gardening.
bfulgham@apple.com [Thu, 5 Feb 2015 17:04:52 +0000 (17:04 +0000)]
[Win] More Unreviewed gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179692 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDo not destroy RenderQuote's text fragment child when quotation mark string is changing.
zalan@apple.com [Thu, 5 Feb 2015 16:50:44 +0000 (16:50 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179691 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAvoid copying std::functions across threads in NetworkCacheStorage
antti@apple.com [Thu, 5 Feb 2015 14:31:07 +0000 (14:31 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179690 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Media iOS] Add a debug setting to always show the optimized fullscreen button
dino@apple.com [Thu, 5 Feb 2015 13:34:41 +0000 (13:34 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179689 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed EFL gardening. Set all tests of svg/W3C-SVG-1.1 and svg/W3C-SVG-1.1-SE...
gyuyoung.kim@samsung.com [Thu, 5 Feb 2015 13:02:26 +0000 (13:02 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179688 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Streams API] Implement a barebone ReadableStream interface
calvaris@igalia.com [Thu, 5 Feb 2015 10:19:05 +0000 (10:19 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179687 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed build fix.
rniwa@webkit.org [Thu, 5 Feb 2015 09:54:49 +0000 (09:54 +0000)]
Unreviewed build fix.

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove Mountain Lion specific test expectations
ossy@webkit.org [Thu, 5 Feb 2015 09:25:03 +0000 (09:25 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179684 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCrash in uninitialized deconstructing variable.
saambarati1@gmail.com [Thu, 5 Feb 2015 08:58:38 +0000 (08:58 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] Reactive (some) Media tests. Test results gardening.
bfulgham@apple.com [Thu, 5 Feb 2015 05:20:54 +0000 (05:20 +0000)]
[Win] Reactive (some) Media tests. Test results gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179673 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoVersioning.
bshafiei@apple.com [Thu, 5 Feb 2015 04:59:14 +0000 (04:59 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agofilter-build-webkit: reduce more unfiltered output
commit-queue@webkit.org [Thu, 5 Feb 2015 04:53:52 +0000 (04:53 +0000)]
filter-build-webkit: reduce more unfiltered output
https://bugs.webkit.org/show_bug.cgi?id=141282

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-02-04
Reviewed by Daniel Bates.

* Scripts/filter-build-webkit:
Report CompileDTraceScript and Preprocess lines as successful.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179670 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] Unreviewed project file corrections.
bfulgham@apple.com [Thu, 5 Feb 2015 04:35:43 +0000 (04:35 +0000)]
[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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS] Selection callout does not follow selection when double-tap scrolling
commit-queue@webkit.org [Thu, 5 Feb 2015 04:28:40 +0000 (04:28 +0000)]
[iOS] Selection callout does not follow selection when double-tap scrolling
https://bugs.webkit.org/show_bug.cgi?id=141214

Patch by Joseph Pecoraro <pecoraro@apple.com> 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:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179668 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWin Gardening (Activate Media tests)
bfulgham@apple.com [Thu, 5 Feb 2015 04:07:08 +0000 (04:07 +0000)]
Win Gardening (Activate Media tests)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, fix a build break on EFL port since r179648.
gyuyoung.kim@samsung.com [Thu, 5 Feb 2015 03:52:02 +0000 (03:52 +0000)]
Unreviewed, fix a build break on EFL port since r179648.

* heap/MachineStackMarker.cpp: EFL port doesn't use previousThread variable.
(JSC::MachineThreads::tryCopyOtherThreadStacks):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179666 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNew perf dashboard doesn't preserve the number of days when clicking on a dashboard...
rniwa@webkit.org [Thu, 5 Feb 2015 03:36:21 +0000 (03:36 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179661 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNew perf dashboard erroneously clears zoom when poping history items
rniwa@webkit.org [Thu, 5 Feb 2015 03:33:08 +0000 (03:33 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179660 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: ES6: Improved Console Support for Symbol Objects
joepeck@webkit.org [Thu, 5 Feb 2015 03:11:29 +0000 (03:11 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUndo gardening: Restoring the expected ERROR message since that is not the cause...
mark.lam@apple.com [Thu, 5 Feb 2015 01:05:49 +0000 (01:05 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179654 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS] add method to toggle playback when in the background
eric.carlson@apple.com [Thu, 5 Feb 2015 00:57:30 +0000 (00:57 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179653 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGardening: Changed expected ERROR message to WARNING to make test bots happy.
mark.lam@apple.com [Thu, 5 Feb 2015 00:50:01 +0000 (00:50 +0000)]
Gardening: Changed expected ERROR message to WARNING to make test bots happy.

Rubber stamped by Simon Fraser.

* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::tryCopyOtherThreadStacks):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoBotwatcher's Dashboard is cramped
dburkart@apple.com [Thu, 5 Feb 2015 00:37:36 +0000 (00:37 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agor179576 introduce a deadlock potential during GC thread suspension.
mark.lam@apple.com [Thu, 5 Feb 2015 00:32:47 +0000 (00:32 +0000)]
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:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179648 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNew perf dashboard shows null as the aggregator name if no aggregation is done
rniwa@webkit.org [Thu, 5 Feb 2015 00:32:27 +0000 (00:32 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179647 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoOptimized equal() functions in StringImpl.h are not ASan compatible
ap@apple.com [Wed, 4 Feb 2015 23:38:42 +0000 (23:38 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179644 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/misc/detached-frame-console.html is flaky
ap@apple.com [Wed, 4 Feb 2015 23:28:17 +0000 (23:28 +0000)]
http/tests/misc/detached-frame-console.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=141267

* TestExpectations: Mark it as such.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179642 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac][EME] Support ClearKey encryption with AES128-encrypted HLS
jer.noble@apple.com [Wed, 4 Feb 2015 23:27:11 +0000 (23:27 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179641 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Clean up Object Property Descriptor Collection
commit-queue@webkit.org [Wed, 4 Feb 2015 22:58:01 +0000 (22:58 +0000)]
Web Inspector: Clean up Object Property Descriptor Collection
https://bugs.webkit.org/show_bug.cgi?id=141222

Patch by Joseph Pecoraro <pecoraro@apple.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179640 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWKTR should not use -mainScreen to pick a color profile
simon.fraser@apple.com [Wed, 4 Feb 2015 22:53:13 +0000 (22:53 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179639 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r179618.
commit-queue@webkit.org [Wed, 4 Feb 2015 22:42:49 +0000 (22:42 +0000)]
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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179638 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayoutTestHelper should set the color profile of all displays
simon.fraser@apple.com [Wed, 4 Feb 2015 22:38:46 +0000 (22:38 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179637 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Insertion bar (caret) is hidden behind the placeholder text in the...
commit-queue@webkit.org [Wed, 4 Feb 2015 22:29:01 +0000 (22:29 +0000)]
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 <nvasilyev@apple.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179636 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: console.table with columnName filter for non-existent property should...
commit-queue@webkit.org [Wed, 4 Feb 2015 22:27:19 +0000 (22:27 +0000)]
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 <pecoraro@apple.com> 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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179635 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS WK2] Layers that are created and destroyed in the same transaction shouldn't...
simon.fraser@apple.com [Wed, 4 Feb 2015 22:04:52 +0000 (22:04 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179630 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agotest-webkitpy fails on Mac without iphoneos SDK
dbates@webkit.org [Wed, 4 Feb 2015 22:04:41 +0000 (22:04 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoW3C test importer should sort the list of files when generating the w3c-import.log
youenn.fablet@crf.canon.fr [Wed, 4 Feb 2015 22:02:15 +0000 (22:02 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179628 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTables don't repaginate properly when the pagination height changes or the pagination...
hyatt@apple.com [Wed, 4 Feb 2015 21:39:00 +0000 (21:39 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179627 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWhen using SVG as an image, we should load datauri images when these images are not...
commit-queue@webkit.org [Wed, 4 Feb 2015 20:55:21 +0000 (20:55 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Mac] Unreviewed gardening.
zalan@apple.com [Wed, 4 Feb 2015 20:51:29 +0000 (20:51 +0000)]
[Mac] Unreviewed gardening.
Mark http/tests/media/video-preload.html flaky.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179625 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix a misplaced include in CaptionUserPreferencesMediaAF
timothy_horton@apple.com [Wed, 4 Feb 2015 20:41:02 +0000 (20:41 +0000)]
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!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179624 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed build fix after r179611.
rniwa@webkit.org [Wed, 4 Feb 2015 20:36:04 +0000 (20:36 +0000)]
Unreviewed build fix after r179611.

* public/v2/interactive-chart.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179623 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agotest-webkitpy fails on Mac without iphoneos SDK
dbates@webkit.org [Wed, 4 Feb 2015 20:26:23 +0000 (20:26 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179622 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTypeSet can use 1 byte instead of 4 bytes for its m_seenTypes member variable
saambarati1@gmail.com [Wed, 4 Feb 2015 20:03:52 +0000 (20:03 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179621 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[WebAudio] AudioBufferSourceNodes should accurately play backwards if given a negativ...
jer.noble@apple.com [Wed, 4 Feb 2015 19:37:36 +0000 (19:37 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179618 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agorun-webkit-tests doesn't always capture ASan violation reports
ap@apple.com [Wed, 4 Feb 2015 18:38:57 +0000 (18:38 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoPerf dashboard doesn’t show the right unit for Safari UI tests
rniwa@webkit.org [Wed, 4 Feb 2015 18:16:39 +0000 (18:16 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179613 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agovideo.attribute should not return true just because of fullscreen
eric.carlson@apple.com [Wed, 4 Feb 2015 18:16:06 +0000 (18:16 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179612 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoInteractive chart component provides two duplicate API for highlighting points
rniwa@webkit.org [Wed, 4 Feb 2015 18:08:38 +0000 (18:08 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[webkitpy] Add platform specific Skipped file mechanism for performance tests
rniwa@webkit.org [Wed, 4 Feb 2015 18:07:06 +0000 (18:07 +0000)]
[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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179610 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove concept of makeUsableFromMultipleThreads().
mark.lam@apple.com [Wed, 4 Feb 2015 18:00:05 +0000 (18:00 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179609 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWhen tests fail on leaks bot so much that there are no leaks detected, dashboard...
ap@apple.com [Wed, 4 Feb 2015 18:00:00 +0000 (18:00 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179608 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoinspector/css/selector-dynamic-specificity.html is very slow on Yosemite
ap@apple.com [Wed, 4 Feb 2015 17:59:01 +0000 (17:59 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179607 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewew. Marked web-platform-tests as Skip until wpt server can be abruptly shutdo...
youenn.fablet@crf.canon.fr [Wed, 4 Feb 2015 17:49:18 +0000 (17:49 +0000)]
Unreviewew. Marked web-platform-tests as Skip until wpt server can be abruptly shutdown whenever needed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179606 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoBuild with seccomp filters broken since r179409
commit-queue@webkit.org [Wed, 4 Feb 2015 17:49:05 +0000 (17:49 +0000)]
Build with seccomp filters broken since r179409
https://bugs.webkit.org/show_bug.cgi?id=141206

Patch by Michael Catanzaro <mcatanzaro@igalia.com> 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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179605 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[iOS WK2] Assert in ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren()...
simon.fraser@apple.com [Wed, 4 Feb 2015 17:13:59 +0000 (17:13 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL][WK2] Manage failing API tests
gyuyoung.kim@samsung.com [Wed, 4 Feb 2015 17:03:58 +0000 (17:03 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179603 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Media] Fullscreen button should always come last in inline controls (141245)
dino@apple.com [Wed, 4 Feb 2015 16:36:00 +0000 (16:36 +0000)]
[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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179602 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION: AirPlay button not visible but present in inline toolbar
dino@apple.com [Wed, 4 Feb 2015 16:34:27 +0000 (16:34 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179601 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Marking webb-platform-tests as failed until wpt server can be proper
youenn.fablet@crf.canon.fr [Wed, 4 Feb 2015 08:39:25 +0000 (08:39 +0000)]
Unreviewed. Marking webb-platform-tests as failed until wpt server can be proper
ly relaunched.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179600 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd removeFirst(value) / removeAll(value) methods to WTF::Vector
cdumez@apple.com [Wed, 4 Feb 2015 08:39:20 +0000 (08:39 +0000)]
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179599 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] More test results gardening.
bfulgham@apple.com [Wed, 4 Feb 2015 07:37:18 +0000 (07:37 +0000)]
[Win] More test results gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179598 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCrash when printing snapshotted plugins
mjs@apple.com [Wed, 4 Feb 2015 07:01:23 +0000 (07:01 +0000)]
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179597 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed attempt to fix GTK/EFL build after r179588.
cdumez@apple.com [Wed, 4 Feb 2015 06:51:46 +0000 (06:51 +0000)]
Unreviewed attempt to fix GTK/EFL build after r179588.

Add new files to CMakeLists.txt.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179596 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Win] Unreviewed. Activate more tests.
bfulgham@apple.com [Wed, 4 Feb 2015 06:42:59 +0000 (06:42 +0000)]
[Win] Unreviewed. Activate more tests.

* platform/win/TestExpectations: Unskip the DOM4 constructor and cursor visibility
tests (since they work).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179595 268f45cc-cd09-0410-ab3c-d52691b4dbfc