WebKit.git
4 years agoAlways use v3 UI for dashboards and analysis task pages
rniwa@webkit.org [Fri, 13 May 2016 07:33:28 +0000 (07:33 +0000)]
Always use v3 UI for dashboards and analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=157647

Reviewed by Darin Adler.

Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
analysis task pages to the corresponding v3 pages.

Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.

* public/index.html:
(init.showCharts): Redirect to v3 UI once the chart list has been parsed.
(init.redirectChartsToV3): Added.
* public/v2/index.html:

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

4 years agoRevert r199691.
commit-queue@webkit.org [Fri, 13 May 2016 07:31:59 +0000 (07:31 +0000)]
Revert r199691.
https://bugs.webkit.org/show_bug.cgi?id=157645
<rdar://problem/26235373>

Patch by Tina Liu <iting_liu@apple.com> on 2016-05-13
Reviewed by Darin Adler.

Source/WebCore:

* plugins/PluginStrategy.h:

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

Source/WebKit2:

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPrivateBrowsingPluginLoadClientPolicy): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForPrivateBrowsing): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

4 years agoShow a spinner while fetching data on summary page
rniwa@webkit.org [Fri, 13 May 2016 07:31:58 +0000 (07:31 +0000)]
Show a spinner while fetching data on summary page
https://bugs.webkit.org/show_bug.cgi?id=157658

Reviewed by Darin Adler.

Show a spinner while fetching JSON files on the summary page.

* public/v3/components/base.js:
(ComponentBase.prototype.renderReplace): Added a new implementation that simply calls the static version.
(ComponentBase.renderReplace): Made this static.

* public/v3/pages/summary-page.js:
(SummaryPage.prototype._constructRatioGraph): Show a spinner icon when SummaryPageConfigurationGroup's
isFetching returns true.
(SummaryPage.cssTemplate): Force the height of each cell to be 2.5rem so that the height of cell doesn't
change when a spinner is replaced by a ratio bar graph.

(SummaryPageConfigurationGroup): Added this._isFetching as an instance variable.
(SummaryPageConfigurationGroup.prototype.isFetching): Added.
(SummaryPageConfigurationGroup.prototype.fetchAndComputeSummary): Set this._isFetching while waiting for
the promises to resolve after 50ms. We don't immediately set this._isFetching to avoid FOC when all JSON
files have been cached.

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

4 years agoDrop WorkerGlobalScope's custom GetOwnPropertySlot() implementation
cdumez@apple.com [Fri, 13 May 2016 06:28:36 +0000 (06:28 +0000)]
Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation
https://bugs.webkit.org/show_bug.cgi?id=157662

Reviewed by Darin Adler.

Drop WorkerGlobalScope's custom GetOwnPropertySlot() implementation as
it is no longer needed after <http://trac.webkit.org/changeset/196678>.

JSC::getStaticPropertySlot() now properly checks for overrides *before*
checking the static table.

No new tests, no web-exposed behavior change.

* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::getOwnPropertySlotDelegate): Deleted.
* workers/WorkerGlobalScope.idl:

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

4 years agoCoordinatedGraphicsLayer::syncLayerState() should set the m_layerState.contentsOpaque...
zandobersek@gmail.com [Fri, 13 May 2016 05:52:11 +0000 (05:52 +0000)]
CoordinatedGraphicsLayer::syncLayerState() should set the m_layerState.contentsOpaque flag
https://bugs.webkit.org/show_bug.cgi?id=157575

Reviewed by Darin Adler.

* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::syncLayerState): The contentsOpaque flag in the
layer's CoordinatedGraphicsLayerState object should also be set to the current value
of the layer. This is the only flag in the union of 9 members that's not being updated
in this method.

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

4 years ago[TexMap] Handle TextureMapperShaderProgram objects through references
zandobersek@gmail.com [Fri, 13 May 2016 05:48:23 +0000 (05:48 +0000)]
[TexMap] Handle TextureMapperShaderProgram objects through references
https://bugs.webkit.org/show_bug.cgi?id=157619

Reviewed by Antonio Gomes.

TextureMapper code always expects valid TextureMapperShaderProgram
objects to be created, so it doesn't make sense to access these
objects through raw pointers or RefPtr<>s.

* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawBorder):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawEdgeTriangles):
(WebCore::TextureMapperGL::drawUnitRect):
(WebCore::TextureMapperGL::draw):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::beginClip):
* platform/graphics/texmap/TextureMapperGL.h:

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

4 years agoVideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
zandobersek@gmail.com [Fri, 13 May 2016 05:46:21 +0000 (05:46 +0000)]
VideoSinkGStreamer: plug a GstBuffer leak in webkitVideoSinkRequestRender()
https://bugs.webkit.org/show_bug.cgi?id=157617

Reviewed by Darin Adler.

Unref the newly-created GstBuffer object after creating the new GstSample
that's based on it. gst_sample_new() doesn't take the ownership of it.

Also, don't unref the GstBuffer object that's passed in to the
webkitVideoSinkRequestRender() function in case the allocation of the
replacement buffer fails. We don't have any ownership over that buffer
and it's not unreffed anywhere else in this function.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRequestRender):

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

4 years agoWeb Inspector: Remove "Extra Scripts" folder from Resources sidebar if all children...
mattbaker@apple.com [Fri, 13 May 2016 04:20:37 +0000 (04:20 +0000)]
Web Inspector: Remove "Extra Scripts" folder from Resources sidebar if all children removed
https://bugs.webkit.org/show_bug.cgi?id=157656

Reviewed by Timothy Hatcher.

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
Remove parent folder after last script tree element removed.

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

4 years agoWeb Inspector: Can't filter Rendering Frames by duration
mattbaker@apple.com [Fri, 13 May 2016 04:19:21 +0000 (04:19 +0000)]
Web Inspector: Can't filter Rendering Frames by duration
https://bugs.webkit.org/show_bug.cgi?id=157654

Reviewed by Timothy Hatcher.

* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Call filterDidChange on the grid, not the base class.
TimelineView.filterDidChange exists to let TimelineViews perform
additional work when the grid filter changes (see LayoutTimelineView).
(WebInspector.RenderingFrameTimelineView):

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

4 years agoWeb Inspector: Deleting nodes in DOM Tree sometimes changes selection to parent inste...
commit-queue@webkit.org [Fri, 13 May 2016 04:15:56 +0000 (04:15 +0000)]
Web Inspector: Deleting nodes in DOM Tree sometimes changes selection to parent instead of sibling
https://bugs.webkit.org/show_bug.cgi?id=157649

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._updateChildren): Deleted.
When pressing delete, we remove the node via DOM.removeNode()
and remove the DOMTreeElement when we receive a successful response.
However, the backend could send a DOM.childNodeRemoved event before
the response from DOM.removeNode, and the frontend would have a race
between DOMTreeUpdater's timeout and the removeNode callback.

In DOMTreeUpdater's path, DOMTreeElement updateChildren would notice
a removed node and set the selection to the parent node.

In the DOM.removeNode path, TreeOutline would update the selection
based on availability of a previousSibling/nextSibling/parent.

Remove the custom code in DOMTreeElement updateChildren, so that it
can just do the normal TreeOutline behavior via removeChildAtIndex.

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

4 years agoSource/WebCore:
mmaxfield@apple.com [Fri, 13 May 2016 01:55:40 +0000 (01:55 +0000)]
Source/WebCore:
[Cocoa] Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

CoreGraphics can only draw one text shadow at a time. We work around that by drawing
the text multiple times, one for each shadow. However, we want to make sure that the
original text isn't also drawn multiple times, so we bump up the shadow offsets so
the text and the shadow don't intersect, and then we clip out the original text (so
only the shadow remains).

Unfortunately, this clipping requires knowing where the visual extent of the text is,
which WebKit currently has trouble with. In particular, we often use layout extents
in lieu of visual extents, which is a problem when the glyphs draw outside of their
layout boxes. In this case, it causes us to think the text shadow is much smaller
than it really is, so our clipping operation clips to an area which is too small.

A quick solution to this is to inflate the clip rect by an amount proportional to the
font size, and offset the text shadow accordingly. If this amount is large enough,
this bug will occur on few enough sites that it is reasonable to consider this bug
fixed without the real solution of educating WebKit properly about the difference
between text layout rects and text visual extent rects.

Test: fast/text/multiple-text-shadow-overflow-layout-rect.html

* rendering/TextPainter.cpp:
(WebCore::ShadowApplier::ShadowApplier):

LayoutTests:
Text shadow sometimes clipped unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=108929

Reviewed by Dean Jackson.

Add a font which draws dramatically far outside of its layout rect.

* fast/text/multiple-text-shadow-overflow-layout-rect-expected.html: Added.
* fast/text/multiple-text-shadow-overflow-layout-rect.html: Added.
* fast/text/resources/font-overflow-layout-rect.svg: Added.

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

4 years agoREGRESSION: Web Inspector: Fails to load sourceMappingURL with relative URL
commit-queue@webkit.org [Fri, 13 May 2016 01:24:50 +0000 (01:24 +0000)]
REGRESSION: Web Inspector: Fails to load sourceMappingURL with relative URL
https://bugs.webkit.org/show_bug.cgi?id=157650
<rdar://problem/26133763>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Controllers/SourceMapManager.js:
Wrong order of arguments. The intent was to pass the incoming
baseURL as the partialURL, because if it was not absolute by
that point we could make it relative to the main resource.
However we accidentally put the main resource as the partial
portion, which would just always return the main resource url.
Swap the order, so that if the incoming base is absolute
(such as a resource.url) that will be used, but if the
incoming base is relative (e.g. an incomplete sourceURL) we
can make it absolute with the main resource.

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

4 years agoWeb Inspector: Uncaught exception when removing selected Timeline instrument
mattbaker@apple.com [Fri, 13 May 2016 00:55:57 +0000 (00:55 +0000)]
Web Inspector: Uncaught exception when removing selected Timeline instrument
https://bugs.webkit.org/show_bug.cgi?id=157639
<rdar://problem/26252938>

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
Remove timeline tree element before modifying state. Removing the tree
element triggers a SelectionDidChange event, which can have side effects.

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

4 years agoMarking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky...
ryanhaddad@apple.com [Fri, 13 May 2016 00:48:00 +0000 (00:48 +0000)]
Marking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky timeout on mac
https://bugs.webkit.org/show_bug.cgi?id=152487

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

4 years agoREGRESSION(r200601): Crash when using local() and unicode-range in @font-face blocks
mmaxfield@apple.com [Fri, 13 May 2016 00:24:03 +0000 (00:24 +0000)]
REGRESSION(r200601): Crash when using local() and unicode-range in @font-face blocks
https://bugs.webkit.org/show_bug.cgi?id=157646

Reviewed by Geoffrey Garen.

Source/WebCore:

I simply forgot a null check.

Test: fast/text/isLoading-crash-failed-font.html

* css/CSSSegmentedFontFace.cpp:

LayoutTests:

* fast/text/isLoading-crash-failed-font-expected.txt: Added.
* fast/text/isLoading-crash-failed-font.html: Added.

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

4 years agoUnreviewed build fix for r200799.
jiewen_tan@apple.com [Thu, 12 May 2016 23:40:15 +0000 (23:40 +0000)]
Unreviewed build fix for r200799.

* WebView/WebView.mm:

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

4 years agoREGRESSION (r199313): ICBC app: text field In the webview is not tappable
jiewen_tan@apple.com [Thu, 12 May 2016 23:22:47 +0000 (23:22 +0000)]
REGRESSION (r199313): ICBC app: text field In the webview is not tappable
https://bugs.webkit.org/show_bug.cgi?id=157396
<rdar://problem/25931513>

Reviewed by David Kilzer.

Source/WebCore:

Add a quirk for WebKit1 apps.

* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame):
Even though the HTML spec suggests that we should navigate to about:blank
for subframes/iframes, of which the src cannot be resolved to an valid URL,
many existing WebKit1 apps are relying on invalid URLs to bridge their WebView
codes and their native Objective-C codes. Therefore, a quirk is added to
escape the URL validation for existing WebKit1 apps.
(WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank):
* loader/SubframeLoader.h:
* page/Settings.in:

Source/WebKit/mac:

Add a quirk for WebKit1 apps.

* WebView/WebView.mm:
(shouldConvertInvalidURLsToBlank):
(-[WebView _preferencesChanged:]):

LayoutTests:

The previous test is actually bogus, and therefore modify it to do the
real task.

* fast/loader/iframe-src-invalid-url-expected.txt:
* fast/loader/iframe-src-invalid-url.html:
* platform/ios-simulator-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

4 years agoBaseline and DFG's JSC_report...CompileTimes needs CodeBlock hashes.
mark.lam@apple.com [Thu, 12 May 2016 22:55:39 +0000 (22:55 +0000)]
Baseline and DFG's JSC_report...CompileTimes needs CodeBlock hashes.
https://bugs.webkit.org/show_bug.cgi?id=157643

Reviewed by Keith Miller.

* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

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

4 years agoUnreviewed, fix ChangeLog title for r199634
mattbaker@apple.com [Thu, 12 May 2016 22:51:22 +0000 (22:51 +0000)]
Unreviewed, fix ChangeLog title for r199634

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

4 years agoPrevent clicks in the placeholder from playing or pausing the video in a MediaDocument.
adachan@apple.com [Thu, 12 May 2016 22:13:10 +0000 (22:13 +0000)]
Prevent clicks in the placeholder from playing or pausing the video in a MediaDocument.
https://bugs.webkit.org/show_bug.cgi?id=157625

Reviewed by Jer Noble.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.handlePlaceholderClick):

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

4 years agoWeb Inspector: Timeline Reset button only resets the one active Script TimelineView
commit-queue@webkit.org [Thu, 12 May 2016 22:09:03 +0000 (22:09 +0000)]
Web Inspector: Timeline Reset button only resets the one active Script TimelineView
https://bugs.webkit.org/show_bug.cgi?id=157638

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.reset):
Reset should reset all the views.

(WebInspector.ScriptClusterTimelineView.prototype.get navigationSidebarTreeOutline): Deleted.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline): Deleted.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineScopeBar): Deleted.
Remove dead code. Nobody calls these getters.

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

4 years agoWeb Inspector: Layout timeline popovers are inconsistently shown
commit-queue@webkit.org [Thu, 12 May 2016 22:08:28 +0000 (22:08 +0000)]
Web Inspector: Layout timeline popovers are inconsistently shown
https://bugs.webkit.org/show_bug.cgi?id=157640
<rdar://problem/26253394>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
Fix the bug by clearing _showPopoverTimeout when we show the popover.

(WebInspector.TimelineDataGrid.prototype._hidePopover):
Modernize the code to use arrow functions and avoid binds.

(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
Updating with presentNewContentWithFrame animates the popover to the correct
position instead of jumping and ending up at the wrong location.

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

4 years agoWeb Inspector: Remove forced layouts caused by DOMTreeElement during Timeline recording
commit-queue@webkit.org [Thu, 12 May 2016 22:06:57 +0000 (22:06 +0000)]
Web Inspector: Remove forced layouts caused by DOMTreeElement during Timeline recording
https://bugs.webkit.org/show_bug.cgi?id=157641

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.updateSelection): Deleted.
This triggers forced layout and I could never actually get it to trigger anyways.
Its history is from the original import, so I don't know why it was added to begin with.
Just remove it.

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

4 years agoUnreviewed, rolling out r200718.
commit-queue@webkit.org [Thu, 12 May 2016 21:52:46 +0000 (21:52 +0000)]
Unreviewed, rolling out r200718.
https://bugs.webkit.org/show_bug.cgi?id=157637

Data grid column dividers are misaligned (Requested by NVI on
#webkit).

Reverted changeset:

"Web Inspector: Contents of Duration column are covered by
always on (legacy) scroll bars"
https://bugs.webkit.org/show_bug.cgi?id=157590
http://trac.webkit.org/changeset/200718

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

4 years agoDrop toJS() overload taking a PassRefPtr<> parameter
cdumez@apple.com [Thu, 12 May 2016 21:13:13 +0000 (21:13 +0000)]
Drop toJS() overload taking a PassRefPtr<> parameter
https://bugs.webkit.org/show_bug.cgi?id=157627

Reviewed by Alex Christensen.

Update our implementation stop stop returning PassRefPtrs to the
JS bindings and drop the toJS() overload taking a PassRefPtr<>
parameter

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::buffered):
* Modules/mediasource/SourceBuffer.h:
* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::getChannelData):
* Modules/webaudio/AudioBuffer.h:
* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::create):
* animation/DocumentTimeline.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Deleted.
(WebCore::toJSNewlyCreated): Deleted.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getRGBColorValue):
* css/CSSPrimitiveValue.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::error):
* html/HTMLMediaElement.h:
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelableElement.h:
* html/canvas/WebGLGetInfo.cpp:
(WebCore::WebGLGetInfo::getWebGLBuffer):
(WebCore::WebGLGetInfo::getWebGLFloatArray):
(WebCore::WebGLGetInfo::getWebGLFramebuffer):
(WebCore::WebGLGetInfo::getWebGLIntArray):
(WebCore::WebGLGetInfo::getWebGLProgram):
(WebCore::WebGLGetInfo::getWebGLRenderbuffer):
(WebCore::WebGLGetInfo::getWebGLTexture):
(WebCore::WebGLGetInfo::getWebGLUnsignedByteArray):
(WebCore::WebGLGetInfo::getWebGLUnsignedIntArray):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObjectOES):
(WebCore::WebGLGetInfo::getWebGLVertexArrayObject):
* html/canvas/WebGLGetInfo.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContextBase::createBuffer):
(WebCore::WebGLRenderingContextBase::createFramebuffer):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::createProgram):
(WebCore::WebGLRenderingContextBase::createRenderbuffer):
(WebCore::WebGLRenderingContextBase::createShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::videoFrameToImage):
* html/canvas/WebGLRenderingContextBase.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::create):
* html/track/TextTrackCue.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::create):
* html/track/VTTCue.h:
* page/DOMSelection.cpp:
(WebCore::DOMSelection::getRangeAt):
* page/DOMSelection.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::matchMedia):
(WebCore::DOMWindow::styleMedia):
(WebCore::DOMWindow::getComputedStyle):
(WebCore::DOMWindow::getMatchedCSSRules):
(WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
(WebCore::DOMWindow::webkitConvertPointFromPageToNode):
(WebCore::DOMWindow::open):
* page/DOMWindow.h:
* page/Location.cpp:
(WebCore::Location::ancestorOrigins):
* page/Location.h:

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

4 years agoTouch.prototype is undefined on iOS
rniwa@webkit.org [Thu, 12 May 2016 19:54:51 +0000 (19:54 +0000)]
Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>

Reviewed by Chris Dumez.

Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.
* bindings/js/ios/TouchConstructors.cpp:
* page/DOMWindow.idl:

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

4 years agoindexForVisiblePosition should use the root editable element as the scope
rniwa@webkit.org [Thu, 12 May 2016 19:51:14 +0000 (19:51 +0000)]
indexForVisiblePosition should use the root editable element as the scope
https://bugs.webkit.org/show_bug.cgi?id=157611

Reviewed by Darin Adler.

Source/WebCore:

Use the highest editing host instead of the document node as the scope in indexForVisiblePosition
when it's called inside an editable region. This refactoring is necessary to unblock the work to support
undo/redo in VoiceOver after r199030.

We have to workaround a bug in indexForVisiblePosition that it could return a slightly higher index than
the expected value because TextIterator emits an extra new line after a block element with a large margin
at the bottom. Unfortunately, fixing this requires a lot of code changes since the rest of the editing
code assumes this behavior and/or happens to cancel it out with some other quirks.

* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::doApply):
* editing/htmlediting.cpp:
(WebCore::indexForVisiblePosition):

LayoutTests:

Rebaselined tests with progressions.

* editing/execCommand/crash-indenting-list-item-expected.txt: Now preseves the selection at the beginning of
the editable region instead of moving it to the end.
* editing/execCommand/format-block-multiple-paragraphs-in-pre-expected.txt: Now preserves selection in more test
cases. This test is the one that required the workaround in ApplyBlockElementCommand::doApply. One of the test
cases would regress and clear the selection without it.
* editing/execCommand/indent-pre-list-expected.txt: Now preserves the selection instead of clearing it.

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

4 years agoWebKitAdditions needs to be notified before the WebView is dealloc'd
bdakin@apple.com [Thu, 12 May 2016 19:29:48 +0000 (19:29 +0000)]
WebKitAdditions needs to be notified before the WebView is dealloc'd
https://bugs.webkit.org/show_bug.cgi?id=157633
-and corresponding-
rdar://problem/26134539

Reviewed by Anders Carlsson.

* WebView/WebView.mm:
(-[WebView dealloc]):
* WebView/WebViewInternal.h:

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

4 years agoUse SecTask SPI to retrieve code signing identifier for user directory suffix
dbates@webkit.org [Thu, 12 May 2016 19:14:48 +0000 (19:14 +0000)]
Use SecTask SPI to retrieve code signing identifier for user directory suffix
https://bugs.webkit.org/show_bug.cgi?id=157570
Source/WebKit2:

<rdar://problem/25706517>

Reviewed by Darin Adler.

It is sufficient to make use of the SecTask SPI to retrieve the code signing
identifier of the embedding client for use in the user directory suffix. This
avoids the need to allow Code Signing Services to have access to the bundle
of the embedding client.

* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox): Use the code signing identifier of the
embedding client as part of the user directory suffix if available.
* Shared/mac/CodeSigning.h: Update comment and include header wtf/spi/darwin/XPCSPI.h
for the definition of xpc_connection_t. Renamed codeSigningIdentifier() to codeSigningIdentifierForCurrentProcess()
to convey that it returns the code signing identifier for the current process. Repurposed
the name codeSigningIdentifier for the variant of this function that takes a xpc_connection_t.
* Shared/mac/CodeSigning.mm:
(WebKit::codeSigningIdentifier): Added. Uses the audit token associated with the specified
XPC connection to get the code signing identifier for the embedding client.
(WebKit::codeSigningIdentifierForCurrentProcess): Renamed; formerly named codeSigningIdentifier.
Implemented in terms of the SecTask API.
(WebKit::secCodeForCurrentProcess): Deleted.
(WebKit::secCodeForProcess): Deleted.
(WebKit::secCodeSigningInformation): Deleted.
(WebKit::appleSignedOrMacAppStoreSignedOrAppleDeveloperSignedRequirement): Deleted.
(WebKit::secCodeSigningIdentifier): Deleted.
(WebKit::codeSigningIdentifierForProcess): Deleted.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService): Update code due to renaming.

Source/WTF:

Reviewed by Darin Adler.
<rdar://problem/25706517>

Forward declare SPI SecTaskCopySigningIdentifier().

* wtf/spi/cocoa/SecuritySPI.h:

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

4 years agoCleanup RenderObject::containingBlock.
zalan@apple.com [Thu, 12 May 2016 18:44:24 +0000 (18:44 +0000)]
Cleanup RenderObject::containingBlock.
https://bugs.webkit.org/show_bug.cgi?id=157628

Reviewed by Chris Dumez.

No change in functionality.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):

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

4 years agoWeb Inspector: 11% of time in TimelineRecording spent updating DataGrid that is not...
mattbaker@apple.com [Thu, 12 May 2016 17:57:32 +0000 (17:57 +0000)]
Web Inspector: 11% of time in TimelineRecording spent updating DataGrid that is not visible
https://bugs.webkit.org/show_bug.cgi?id=157612
<rdar://problem/26239051>

Reviewed by Timothy Hatcher.

During recording, a timeline view is constantly having its cached time
values updated. These updates should only trigger forced layouts if the
view supports live data.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.set zeroTime):
Drive-by fix, add call to _filterTimesDidChange.
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
(WebInspector.TimelineView.prototype.set currentTime):
Don't update layout directly.
(WebInspector.TimelineView.prototype._timesDidChange):
Force a layout if the view supports live data. When not recording,
a layout is always performed.
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype._filterTimesDidChange.delayedWork): Deleted.
Changed to an arrow function.
(WebInspector.TimelineView.prototype._filterTimesDidChange): Deleted.
Renamed _timesDidChange, since the method now does more than throttle
a filterDidChange call.

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

4 years agoAdjust "main content" video heuristic
eric.carlson@apple.com [Thu, 12 May 2016 17:53:38 +0000 (17:53 +0000)]
Adjust "main content" video heuristic
https://bugs.webkit.org/show_bug.cgi?id=157532
Source/WebCore:

<rdar://problem/25840861>

Reviewed by Darin Adler.

Test: media/video-main-content-autoplay.html, plus existing tests updated.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager): Use isElementLargeEnoughForMainContent.
(WebCore::isMainContent): Ditto.
(WebCore::isElementLargeEnoughForMainContent): Check video area and aspect ratio.
(WebCore::MediaElementSession::mainContentCheckTimerFired): Call result.setToNonUserAgentShadowAncestor
  so it doesn't hit test the video controls in the shadow DOM.

LayoutTests:

Reviewed by Darin Adler.

* media/video-main-content-allow.html:
* media/video-main-content-autoplay-expected.txt: Added.
* media/video-main-content-autoplay.html: Added.
* media/video-main-content-deny-too-small.html:

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

4 years ago[curl] ASSERTION FAILED: isLocalFile() || url == m_string in fast/dom/34176.html
commit-queue@webkit.org [Thu, 12 May 2016 16:21:07 +0000 (16:21 +0000)]
[curl] ASSERTION FAILED: isLocalFile() || url == m_string in fast/dom/34176.html
https://bugs.webkit.org/show_bug.cgi?id=157059

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-05-12
Reviewed by Darin Adler.

Fix incorrect usage of URL constructor. CURLINFO_EFFECTIVE_URL
does not conform to URL's ParsedURLString.  Created a new utility
function to convert CURLINFO_EFFECTIVE_URL to a URL, and replaced
all codes converting CURLINFO_EFFECTIVE_URL with it.

Test: fast/dom/34176.html

* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader): Use getCurlEffectiveURL
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::getCurlEffectiveURL): Added.
(WebCore::handleLocalReceiveResponse): Use getCurlEffectiveURL
(WebCore::getProtectionSpace): Ditto.
(WebCore::headerCallback): Ditto.
(WebCore::ResourceHandleManager::downloadTimerCallback): Ditto.
* platform/network/curl/ResourceHandleManager.h: Add a declaration
of getCurlEffectiveURL.

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

4 years agoAvoid unnecessary null checks in toJS() when the implementation returns a reference...
cdumez@apple.com [Thu, 12 May 2016 16:07:13 +0000 (16:07 +0000)]
Avoid unnecessary null checks in toJS() when the implementation returns a reference or Ref<>
https://bugs.webkit.org/show_bug.cgi?id=157604

Reviewed by Darin Adler.

Avoid unnecessary null checks in toJS() when the implementation returns
a C++ reference or Ref<>. To achieve this, the following changes were
made:
1. Have toJS() overload that takes a raw pointer call the one that
   takes in a C++ reference, instead of the other way around. This way,
   we only do the null check when passing a raw pointer in.
2. Stop calling WTF::getPtr() on the value returned by the
   implementation because this causes us to call toJS() with a raw
   pointer every time.
3. Add an toJS() overload in JSDOMBinding.h that takes a Ref<T> in and
   that calls toJS() with a C++ reference internally. This way, we
   bypass the null check if the implementation returns a Ref<T>.

Further refactoring could be done but I try to keep the size of this
patch as small as possible. toJS() should probably take the ExecState
and the globalObject by reference, for e.g.

* bindings/js/JSAnimationTimelineCustom.cpp:
(WebCore::toJS):
* bindings/js/JSBlobCustom.cpp:
(WebCore::toJS):
(WebCore::constructJSBlob): Deleted.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::attributeChanged):
* bindings/js/JSDOMBinding.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/js/JSDOMFormDataCustom.cpp:
(WebCore::constructJSDOMFormData):
* bindings/js/JSDOMMimeTypeArrayCustom.cpp:
(WebCore::JSDOMMimeTypeArray::nameGetter):
* bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
(WebCore::JSDOMNamedFlowCollection::nameGetter):
* bindings/js/JSDOMPluginArrayCustom.cpp:
(WebCore::JSDOMPluginArray::nameGetter):
* bindings/js/JSDOMPluginCustom.cpp:
(WebCore::JSDOMPlugin::nameGetter):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::toJS):
* bindings/js/JSDOMWindowBase.h:
(WebCore::toJS):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
(WebCore::JSDocument::createTouchList):
(WebCore::JSDocument::prepend): Deleted.
* bindings/js/JSDocumentFragmentCustom.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/js/JSEventTargetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSFileReaderCustom.cpp:
(WebCore::JSFileReader::result):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::namedItems):
(WebCore::callHTMLAllCollection):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
(WebCore::toJS):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
(WebCore::JSHTMLElement::pushEventHandlerScope):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::namedItems):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::nameGetter):
* bindings/js/JSIDBCursorCustom.cpp:
(WebCore::JSIDBCursor::source):
(WebCore::toJS):
* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::createObjectStore):
(WebCore::JSIDBDatabase::transaction):
* bindings/js/JSIDBRequestCustom.cpp:
(WebCore::JSIDBRequest::result):
(WebCore::JSIDBRequest::source):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::construct):
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSMediaSessionCustom.cpp:
(WebCore::constructJSMediaSession):
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
(WebCore::toJS):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
(WebCore::toJSNewlyCreated):
(WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase):
(WebCore::getOutOfLineCachedWrapper): Deleted.
* bindings/js/JSNodeCustom.h:
(WebCore::toJS):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSNodeListCustom.h:
(WebCore::toJS):
* bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJS):
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state):
* bindings/js/JSRTCStatsResponseCustom.cpp:
(WebCore::JSRTCStatsResponse::nameGetter):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTrackCustom.h:
* bindings/js/JSTrackEventCustom.cpp:
(WebCore::JSTrackEvent::track):
* bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::constructJSWorker):
* bindings/js/ReadableStreamController.cpp:
(WebCore::createReadableStream):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(NativeToJSValue):
(GenerateConstructorDefinition):
(ceilingToPowerOf2): Deleted.
(ConstructorHasProperties): Deleted.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestActiveDOMObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithArrayParam):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallback.h:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::callbackWithArrayParam):
(WebCore::JSTestCallbackFunction::callbackWithStringList):
(WebCore::JSTestCallbackFunction::callbackRequiresThisToPass):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestCustomNamedGetter::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestEventConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestEventTarget::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestException::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestException.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGenerateIsReachable::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGlobalObject::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestGlobalObject.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestInterface::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestInterface.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestMediaQueryListListener::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNamedConstructor::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::construct):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestNondeterministic::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestNondeterministic.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetElementById):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestObj::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverloadedConstructors::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestOverrideBuiltins::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestTypedefs::toWrapped): Deleted.
* bindings/scripts/test/JS/JSTestTypedefs.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSattribute::toWrapped): Deleted.
* bindings/scripts/test/JS/JSattribute.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSreadonly::toWrapped): Deleted.
* bindings/scripts/test/JS/JSreadonly.h:
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* html/HTMLMediaElement.cpp:
(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

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

4 years agoWeb Inspector: Windows Perl fails to run copy-user-interface-resources.pl
commit-queue@webkit.org [Thu, 12 May 2016 15:47:45 +0000 (15:47 +0000)]
Web Inspector: Windows Perl fails to run copy-user-interface-resources.pl
https://bugs.webkit.org/show_bug.cgi?id=157620
<rdar://problem/26241548>

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-05-12
Reviewed by Timothy Hatcher.

There are two problems on Windows platform. 'cat' command is
missing and can not execute shebang.

* Scripts/copy-user-interface-resources.pl: Invoke Perl scripts
with explicitly specifying Perl command instead of relying on
shebang.  Add a new subroutine 'appendFile' to concatenate files
instread of 'cat' command.

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

4 years agoWeb Inspector: 3.8% of timeline recording spent in NavigationSidebarPanel _updateCont...
commit-queue@webkit.org [Thu, 12 May 2016 15:43:43 +0000 (15:43 +0000)]
Web Inspector: 3.8% of timeline recording spent in NavigationSidebarPanel _updateContentOverflowShadowVisibility for background tab
https://bugs.webkit.org/show_bug.cgi?id=157616

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Don't update or schedule and update if we aren't visible.
When we are shown we will force an update.

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

4 years agoWeb Inspector: Reduce rAF churn in DefaultDashboardView on pages with lots of resources
commit-queue@webkit.org [Thu, 12 May 2016 15:42:37 +0000 (15:42 +0000)]
Web Inspector: Reduce rAF churn in DefaultDashboardView on pages with lots of resources
https://bugs.webkit.org/show_bug.cgi?id=157618

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplaySoon):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
Previously we were scheduling multiple rAFs that would all fire with
the same data, each time a resource was added. Coalesce into one.

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

4 years agoUse reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
annulen@yandex.ru [Thu, 12 May 2016 14:48:03 +0000 (14:48 +0000)]
Use reference instead of pointer in FrameLoaderClient::saveViewStateToItem.
https://bugs.webkit.org/show_bug.cgi?id=157624

Reviewed by Darin Adler.

Source/WebCore:

No new tests needed.

* loader/EmptyClients.h:
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::saveViewStateToItem):
* WebView/WebFrame.mm:
(-[WebFrame _saveViewState]):

Source/WebKit/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::saveViewStateToItem):
* WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::saveViewStateToItem):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

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

4 years agoCorrectly handle prefixed and unprefixed variants in CSSStyleDeclaration
commit-queue@webkit.org [Thu, 12 May 2016 12:47:21 +0000 (12:47 +0000)]
Correctly handle prefixed and unprefixed variants in CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=157569
<rdar://problem/26223115>

Patch by Antoine Quint <graouts@apple.com> on 2016-05-12
Reviewed by Dean Jackson.

Source/WebCore:

Tests: fast/css/prefixed-unprefixed-variant-style-declaration.html
       fast/css/shorthand-omitted-initial-value-overrides-shorthand.html

We essentially revert the code added with https://bugs.webkit.org/show_bug.cgi?id=110011
which duplicated properties that had a prefixed or unprefixed variant. What we do now is
to return the value of the prefixed or unprefixed variant through a CSSStyleDeclaration,
but only return the properties specified by the author when reading from the `cssText` property.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant): Deleted.
* css/CSSParser.h:
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

* css/CSSPropertyNames.in:
Treat transition properties as we do animation properties.

* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
Make these two methods call into the matching getXXXInternal() variant instead
of going through the property set directly so that they would correctly pick up
on the prefixed or unprefixed variant should there be one when the specified property
is not specified directly.

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
We used to simply return the value for the given property from the property set, which
we still do but now also check if there is prefixed or unprefixed variant for the provided
property in case it was absent.

* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::removeShorthandProperty):
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

(WebCore::StyleProperties::asText):
Drive-by fix to also handle the animation-play-state and -webkit-animation-play-state properties
when serializing to the shorthand.

(WebCore::MutableStyleProperties::removeProperty): Deleted.
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty): Deleted.
(WebCore::MutableStyleProperties::setProperty): Deleted.
(WebCore::getIndexInShorthandVectorForPrefixingVariant): Deleted.
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty): Deleted.
(WebCore::MutableStyleProperties::setPrefixingVariantProperty): Deleted.
* css/StyleProperties.h:
Remove all code adding duplicated properties for the prefixed or unprefixed
variant of properties that exist in both forms.

LayoutTests:

* animations/fill-mode-forwards-zero-duration.html:
* animations/play-state-start-paused.html:
These two tests incorrectly expected a shorthand property not to reset
longhand properties that it covers to their initial values even if left
out of the shorthand.

* animations/unprefixed-properties-expected.txt:
* animations/unprefixed-properties.html:
This test incorrectly expected that setting an unprefixed property only would
lead to reading the prefixed property through the CSSOM return the empty string,
rather than the value set on the unprefixed property.

* fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt: Added.
* fast/css/prefixed-unprefixed-variant-style-declaration.html: Added.
New test checking that setting one of two of a property's unprefixed and prefixed
variants correctly allows to read the style through the CSS OM for both variants,
while only serializing the property that was set through cssText.

* fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt: Added.
* fast/css/shorthand-omitted-initial-value-overrides-shorthand.html: Added.
New test checking that setting a longhand property and then the shorthand for that
longhand correctly resets the initial values, even if they were omitted in the shorthand.

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

4 years agoUnreviewed, rolling out r200766.
commit-queue@webkit.org [Thu, 12 May 2016 12:26:55 +0000 (12:26 +0000)]
Unreviewed, rolling out r200766.
https://bugs.webkit.org/show_bug.cgi?id=157623

it is breaking yosemite builds (Requested by youenn on
#webkit).

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200766

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

4 years agoWeb Inspector: Improve snapshot selection in heap allocations overview graph
mattbaker@apple.com [Thu, 12 May 2016 10:34:16 +0000 (10:34 +0000)]
Web Inspector: Improve snapshot selection in heap allocations overview graph
https://bugs.webkit.org/show_bug.cgi?id=157588
<rdar://problem/26231245>

Reviewed by Joseph Pecoraro.

Heap snapshot icon selection now uses the built-in record selection
behavior provided by TimelineOverview/TimelineOverviewGraph. The marker
representing the selected heap snapshot now has a "selected" style, and
clicking an icon when the HeapAllocationsTimeline is not selected causes
the timeline to become selected.

* UserInterface/Images/HeapSnapshotSelected.svg: Added.
New art for selected snapshot icon.

* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
(.timeline-overview-graph.heap-allocations > img.snapshot.selected):
(.timeline-overview-graph.heap-allocations:not(.selected) > img.snapshot.selected):
Selected icon styles for selected/unselected overview graph.

* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph):
Track selected image element.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
Associate image elements with their snapshot record, and reuse image
elements between layouts. Image element click handler can just set the
selectedRecord in the TimelineOverviewGraph base class.

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.updateSelectedRecord):
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
Refresh snapshot icon styles when selected record changes.

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.selectRecord):
Show snapshot list if no record selected.
(WebInspector.HeapAllocationsTimelineView.prototype.userSelectedRecordFromOverview): Deleted.
No longer needed.

* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateFrameMarker):
No need to call dispatchSelectedRecordChangedEvent manually anymore,
method has been removed from base class.

* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent): Deleted.
No longer needed. Event dispatched automatically by the rAF callback.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Allow switching to another timeline, if the selected record does not
belong to the current timeline.

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

4 years agoDOMPromise should only restrict the resolution type
youenn.fablet@crf.canon.fr [Thu, 12 May 2016 09:36:00 +0000 (09:36 +0000)]
DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::formData):
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didReceiveResponse):
* Modules/fetch/FetchResponse.h:
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::didCreateStream):
* Modules/streams/ReadableStreamSource.h:
* Modules/webaudio/AudioContext.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toJS):
(WebCore::jsPair):
* bindings/js/JSDOMPromise.cpp:
(WebCore::fulfillPromiseWithJSON):
* bindings/js/JSDOMPromise.h:
(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* css/FontFace.h:
* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):
* css/FontFaceSet.h:
* html/HTMLMediaElement.h:

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

4 years ago[css-grid] Incorrect parsing when using just 'span" as grid-line value
rego@igalia.com [Thu, 12 May 2016 09:12:13 +0000 (09:12 +0000)]
[css-grid] Incorrect parsing when using just 'span" as grid-line value
https://bugs.webkit.org/show_bug.cgi?id=157615

Reviewed by Sergio Villar Senin.

Source/WebCore:

The spec is pretty clear about this:
https://drafts.csswg.org/css-grid/#typedef-grid-row-start-grid-line

The possible options when using "span" to reference a grid line are:
  [ span && [ <integer> || <custom-ident> ] ]

Thus, "span" keyword alone produces an invalid declaration.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridPosition):

LayoutTests:

Add new test case in grid-item-column-row-get-set.html.

Updated other tests that were using "span" alone, with 2 approaches:
- In some of them changing "span" by "span 1" making it valid.
- In other changing the expected result to "auto", as it's invalid now.

* fast/css-grid-layout/grid-item-area-get-set.html:
* fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html:
* fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
* fast/css-grid-layout/grid-item-column-row-get-set.html:
* fast/css-grid-layout/grid-item-end-after-get-set-expected.txt:
* fast/css-grid-layout/grid-item-end-after-get-set.html:
* fast/css-grid-layout/grid-item-negative-position-resolution.html:
* fast/css-grid-layout/grid-item-start-before-get-set-expected.txt:
* fast/css-grid-layout/grid-item-start-before-get-set.html:

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

4 years agoRemove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
ossy@webkit.org [Thu, 12 May 2016 09:03:19 +0000 (09:03 +0000)]
Remove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards
https://bugs.webkit.org/show_bug.cgi?id=157564

Reviewed by Darin Adler.

.:

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:
* parser/Parser.cpp:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

4 years agoWeb Inspector: CRASH getting internal properties of function with no bound arguments...
commit-queue@webkit.org [Thu, 12 May 2016 07:28:42 +0000 (07:28 +0000)]
Web Inspector: CRASH getting internal properties of function with no bound arguments causes
https://bugs.webkit.org/show_bug.cgi?id=157613
<rdar://problem/26238754>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
Gracefully handle a JSBoundFunction with no bound arguments.
In this case boundArgs is JSValue() which we don't want to
expose as the value of the internal property.

LayoutTests:

* inspector/runtime/getProperties-expected.txt:
* inspector/runtime/getProperties.html:
Include coverage for a bound function with no bound arguments.

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

4 years agoWeb Inspector: 3.5% of time in toFixed in TimelineRecordBar updating element positions
commit-queue@webkit.org [Thu, 12 May 2016 07:23:53 +0000 (07:23 +0000)]
Web Inspector: 3.5% of time in toFixed in TimelineRecordBar updating element positions
https://bugs.webkit.org/show_bug.cgi?id=157608

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-12
Reviewed by Timothy Hatcher.

Avoid using toFixed to do an approximation comparison of two floating point numbers.
Instead keep in Numbers by just doing the approximation with Math.round(num * 100).
Since toFixed was doing stringification it was very expensive.

* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype._updateElementPosition):
(WebInspector.TimelineRecordBar):
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype._updateElementPosition):
(WebInspector.TimelineRecordFrame):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._updatePositionOfElement):

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

4 years agoTextIteratorStopsOnFormControls is never used
rniwa@webkit.org [Thu, 12 May 2016 06:47:34 +0000 (06:47 +0000)]
TextIteratorStopsOnFormControls is never used
https://bugs.webkit.org/show_bug.cgi?id=157609

Reviewed by Alex Christensen.

Removed SurroundingText.cpp and TextIteratorStopsOnFormControls from TextIterator as they're no longer used.

* editing/SurroundingText.cpp: Removed.
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
(WebCore::TextIterator::exitNode):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
(WebCore::SimplifiedBackwardsTextIterator::advance):
(WebCore::characterSubrange):
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
* editing/TextIterator.h:
(WebCore::SimplifiedBackwardsTextIterator::atEnd):
* editing/TextIteratorBehavior.h:

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

4 years ago[JSC] Make sure StringRange is passed to Vector by register
commit-queue@webkit.org [Thu, 12 May 2016 06:34:41 +0000 (06:34 +0000)]
[JSC] Make sure StringRange is passed to Vector by register
https://bugs.webkit.org/show_bug.cgi?id=157603

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-11
Reviewed by Darin Adler.

This is bizarre, but on my SDK, Vector::append(StringRange)
is passing the values on the stack.
The two integers are written to the stack, the address given
to append(), then append() reads it back and store it.

This patch changes the code to use constructAndAppend(), ensuring
the values are used directly.

On my machine, this helps Sunspider and Octane.
This might be something wrong with my SDK but the fix is so easy
that we might as well do this.

* runtime/StringPrototype.cpp:
(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):

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

4 years agoARMv7Assembler: suppress a -Wnarrowing warning when compiling with GCC
commit-queue@webkit.org [Thu, 12 May 2016 06:23:19 +0000 (06:23 +0000)]
ARMv7Assembler: suppress a -Wnarrowing warning when compiling with GCC
https://bugs.webkit.org/show_bug.cgi?id=157576

Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-05-11
Reviewed by Csaba Osztrogon√°c.

* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::revertJumpTo_movT3movtcmpT2): Explicitly cast the
`OP_CMP_reg_T2 | left` value to uint16_t, avoiding a narrowing conversion
warning that's being reported when compiling with GCC. The warning is sprung
due to RegisterID (which is the type of `left`) being an enum based on int,
even when the enum itself only declares 23 values.

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

4 years agoKill Node::ancestorElement()
cdumez@apple.com [Thu, 12 May 2016 04:35:15 +0000 (04:35 +0000)]
Kill Node::ancestorElement()
https://bugs.webkit.org/show_bug.cgi?id=157599

Reviewed by Darin Adler.

Kill Node::ancestorElement() and use Node::parentElement() instead. If
our parent is not an Element then none of our ancestors will be.

* dom/Node.cpp:
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupPrefix):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::convertToPage):
(WebCore::Node::convertFromPage):
(WebCore::Node::ancestorElement): Deleted.
* dom/Node.h:

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

4 years agoWeb Inspector: 4% of time in TimelineOverviewGraph adding/removing classList styles...
commit-queue@webkit.org [Thu, 12 May 2016 04:32:54 +0000 (04:32 +0000)]
Web Inspector: 4% of time in TimelineOverviewGraph adding/removing classList styles on TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=157607

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Brian Burg.

This gets us down to about 0.5% of time.

* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.set records):
Only modify the classLists when the record changes.

(WebInspector.TimelineRecordBar.prototype.refresh):
Set unfinished once for either the uses active or not uses active cases.

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

4 years agoWeb Inspector: `this` in Scope Chain Sidebar does not have preview, looks poor
commit-queue@webkit.org [Thu, 12 May 2016 02:13:51 +0000 (02:13 +0000)]
Web Inspector: `this` in Scope Chain Sidebar does not have preview, looks poor
https://bugs.webkit.org/show_bug.cgi?id=157602

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Timothy Hatcher.

* inspector/InjectedScriptSource.js:
(InjectedScript.CallFrameProxy):
Include a preview when creating the RemoteObject for `this`.

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

4 years agoAbsolute positioned element is not placed properly when parent becomes the containing...
zalan@apple.com [Thu, 12 May 2016 02:09:59 +0000 (02:09 +0000)]
Absolute positioned element is not placed properly when parent becomes the containing block.
https://bugs.webkit.org/show_bug.cgi?id=157455
<rdar://problem/26212568>

Reviewed by Simon Fraser.

When a container becomes a containing block, we need to check if there are any positioned boxes in its subtree
in order to "re-parent" them. It basically means that we remove them from RenderBlock::positionedDescendants map
and they'll get re-inserted during the next layout correctly.
This patch fixes the case when a container becomes the containing block by setting the transform property and its positioned
child gets misplaced.

Source/WebCore:

Test: fast/block/containing-block-changes.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
* rendering/RenderBlock.h:

LayoutTests:

* fast/block/containing-block-changes-expected.html: Added.
* fast/block/containing-block-changes.html: Added.

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

4 years agoWeb Inspector: Unexpected unread notification icon next to Log after clearing via...
commit-queue@webkit.org [Thu, 12 May 2016 01:04:50 +0000 (01:04 +0000)]
Web Inspector: Unexpected unread notification icon next to Log after clearing via clear()
https://bugs.webkit.org/show_bug.cgi?id=157598

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Timothy Hatcher.

We always show ConsoleCommand and ConsoleCommandResult messages no matter
what the filter is. So it doesn't make sense to mark the "log" filter
as having an unread notification for a ConsoleCommandResult when we can
see the result.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._markScopeBarItemUnread):

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

4 years agoWeb Inspector: Console unread indicators should be cleared however the console clears
commit-queue@webkit.org [Thu, 12 May 2016 00:49:44 +0000 (00:49 +0000)]
Web Inspector: Console unread indicators should be cleared however the console clears
https://bugs.webkit.org/show_bug.cgi?id=157594

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Timothy Hatcher.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._clearLog):
Move code that clears unread indicators from clearLog to logCleared
to handle all possible clear cases.

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

4 years agoWeb Inspector: Contents of Duration column are covered by always on (legacy) scroll...
nvasilyev@apple.com [Thu, 12 May 2016 00:47:07 +0000 (00:47 +0000)]
Web Inspector: Contents of Duration column are covered by always on (legacy) scroll bars
https://bugs.webkit.org/show_bug.cgi?id=157590

Reviewed by Timothy Hatcher.

* UserInterface/Views/DataGrid.css:
(.data-grid .data-container):
Always show vertical scrollbars.

(.data-grid > .header-wrapper):
(.data-grid > .header-wrapper::-webkit-scrollbar):
Show invisible scrollbar for DataGrid's header to align the header table with the content.

(.data-grid.no-header > .header-wrapper > table.header):
(.data-grid.no-header > table.header): Deleted.
(.data-grid th): Deleted.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
`overflow-y: scroll` doesn't work on a table element. Wrap table in a div.

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

4 years agoUnreviewed, rolling out r200700, r200703, and r200713.
rniwa@webkit.org [Thu, 12 May 2016 00:31:49 +0000 (00:31 +0000)]
Unreviewed, rolling out r200700, r200703, and r200713.
https://bugs.webkit.org/show_bug.cgi?id=157601

Broke iOS builds (Requested by rniwa on #webkit).

Reverted changesets:

"Touch.prototype is undefined on iOS"
https://bugs.webkit.org/show_bug.cgi?id=157560
http://trac.webkit.org/changeset/200700

"iOS build fix attempt after r200700."
http://trac.webkit.org/changeset/200703

"iOS clean build fix after r200700."
http://trac.webkit.org/changeset/200713

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-11

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

4 years agoWeb Inspector: Make it possible to do special styling on selected TimelineOverviewGraphs
mattbaker@apple.com [Thu, 12 May 2016 00:01:36 +0000 (00:01 +0000)]
Web Inspector: Make it possible to do special styling on selected TimelineOverviewGraphs
https://bugs.webkit.org/show_bug.cgi?id=157593
<rdar://problem/26232886>

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState):
(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
Select the new overview graph and deselect the old one.

* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get selected):
(WebInspector.TimelineOverviewGraph.prototype.set selected):
New property, toggles "selected" class on the graph element.

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

4 years agoAdd a failing expectation on iOS for the test added in r200712
rniwa@webkit.org [Wed, 11 May 2016 23:36:59 +0000 (23:36 +0000)]
Add a failing expectation on iOS for the test added in r200712
since there is no support for eventSender on iOS.

* platform/ios-simulator/TestExpectations:

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

4 years agoUnreviewed, correct the title of the ChangeLog for r200667.
keith_miller@apple.com [Wed, 11 May 2016 23:25:31 +0000 (23:25 +0000)]
Unreviewed, correct the title of the ChangeLog for r200667.

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

4 years agoiOS clean build fix after r200700.
rniwa@webkit.org [Wed, 11 May 2016 23:03:21 +0000 (23:03 +0000)]
iOS clean build fix after r200700.

* bindings/js/JSDOMWindowCustom.cpp:

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

4 years agoMoving focus by tab could erroneously focus a non-focusable shadow host
rniwa@webkit.org [Wed, 11 May 2016 22:42:23 +0000 (22:42 +0000)]
Moving focus by tab could erroneously focus a non-focusable shadow host
https://bugs.webkit.org/show_bug.cgi?id=157585

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by findFocusableElementDescendingDownIntoFrameDocument erroneously returning a shadow host
that contains a focusable element instead of traversing it through to find a focusable element within. Fixed
the bug calling findFocusableElementWithinScope which traverses shadow trees to find a focusable element unlike
findFocusableElementOrScopeOwner which returns a focusable element or a shadow host.

Also done some refactoring for clarity.

Test: fast/shadow-dom/focus-on-iframe.html

* page/FocusController.cpp:
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): See above.

(WebCore::FocusController::findFocusableElementAcrossFocusScope): Declare outerScope as late as possible.
(WebCore::nextElementWithGreaterTabIndex): Merged if conditions for clarity.
(WebCore::previousElementWithLowerTabIndex): Removed the check for isNonFocusableShadowHost since
isFocusableOrHasShadowTreeWithoutCustomFocusLogic returns true whenever isNonFocusableShadowHost returns true.

LayoutTests:

Added a regression test for moving focus across iframes.

Also expanded negative-tabindex-on-shadow-host.html to cover reverse traversal.

* fast/shadow-dom/focus-on-iframe-expected.txt: Added.
* fast/shadow-dom/focus-on-iframe.html: Added.
* fast/shadow-dom/negative-tabindex-on-shadow-host-expected.txt:
* fast/shadow-dom/negative-tabindex-on-shadow-host.html:

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

4 years agoUpdating bindings tests results after r200699
ryanhaddad@apple.com [Wed, 11 May 2016 22:20:40 +0000 (22:20 +0000)]
Updating bindings tests results after r200699

Unreviewed test gardening.

* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):

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

4 years agoJSC test stress/reflect-set.js failing after 200694
joepeck@webkit.org [Wed, 11 May 2016 22:11:22 +0000 (22:11 +0000)]
JSC test stress/reflect-set.js failing after 200694
https://bugs.webkit.org/show_bug.cgi?id=157586

Unreviewed test rebaseline.

* tests/stress/reflect-set.js:
Update the expected error message. We are in strict mode, so the
improved error message makes sense.

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

4 years agoWeb Inspector: "Selected Element" is hard to read when searching for "Element"
nvasilyev@apple.com [Wed, 11 May 2016 21:55:26 +0000 (21:55 +0000)]
Web Inspector: "Selected Element" is hard to read when searching for "Element"
https://bugs.webkit.org/show_bug.cgi?id=157542
<rdar://problem/26207464>

Reviewed by Timothy Hatcher.

Change the style of highlighted text to match Xcode.

* UserInterface/Views/LogContentView.css:
(.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-text .highlighted):
* UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .tree-outline .item.selected .highlighted):
* UserInterface/Views/Variables.css:
(:root):

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

4 years agoWeb Inspector: Hide filter bar in TimelineViews where it is not needed or not yet...
commit-queue@webkit.org [Wed, 11 May 2016 21:53:26 +0000 (21:53 +0000)]
Web Inspector: Hide filter bar in TimelineViews where it is not needed or not yet working
https://bugs.webkit.org/show_bug.cgi?id=157583

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Timothy Hatcher.

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.get showsFilterBar):
(WebInspector.HeapAllocationsTimelineView.prototype.layout):
(WebInspector.HeapAllocationsTimelineView.prototype.updateFilter):
Filter bar not yet hooked up for HeapSnapshot views.
Make filtering work for the main timeline grid.
It doesn't use the normal TimelineView filter based on selected range.
This is intentional because it may be the case that a snapshot happens
outside the selected time range (via the navigation bar button) and
we want to show it. Otherwise a user might be confused why it is not
showing up in the list.

* UserInterface/Views/MemoryTimelineView.js:
(WebInspector.MemoryTimelineView.prototype.get showsFilterBar):
Filter bar not needed in the Memory timeline view.

* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.get showsFilterBar):
Filter bar works for the Events timeline view.

* UserInterface/Views/ScriptProfileTimelineView.js:
(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar):
Filter bar not yet hooked up for Profile views.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateFilterBar):
Update the filter bar when the selection path components change, since
that triggers when arbitrarily deep sub-content-views change.

* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get showsFilterBar):
Default is yes.

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

4 years agoFix the ChangeLog.
andersca@apple.com [Wed, 11 May 2016 21:51:01 +0000 (21:51 +0000)]
Fix the ChangeLog.

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

4 years agoWe have two different types of contextual menus in iBooks
andersca@apple.com [Wed, 11 May 2016 21:49:37 +0000 (21:49 +0000)]
We have two different types of contextual menus in iBooks
https://bugs.webkit.org/show_bug.cgi?id=157587
rdar://problem/25904169

Reviewed by Darin Adler.

* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):

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

4 years agoBeef up JSC profiler event log
fpizlo@apple.com [Wed, 11 May 2016 21:41:03 +0000 (21:41 +0000)]
Beef up JSC profiler event log
https://bugs.webkit.org/show_bug.cgi?id=157584

Reviewed by Saam Barati.

Also log more about compilation.

* bytecode/ExecutionCounter.cpp: Changed the meaning of codeBlock to be the codeBlock that is doing the profiling. This will now get the baseline version if it needs it. This is needed for logging the threshold checking event.
(JSC::applyMemoryUsageHeuristics):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold):
* dfg/DFGJITCode.cpp: Pass the right codeBlock.
(JSC::DFG::JITCode::checkIfOptimizationThresholdReached):
(JSC::DFG::JITCode::optimizeNextInvocation):
(JSC::DFG::JITCode::dontOptimizeAnytimeSoon):
(JSC::DFG::JITCode::optimizeSoon):
(JSC::DFG::JITCode::forceOptimizationSlowPathConcurrently):
* dfg/DFGPlan.cpp: Log things about compile times and whether the compiler succeeded or failed.
(JSC::DFG::Plan::computeCompileTimes):
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
* jit/ExecutableAllocatorFixedVMPool.cpp: Make it possible to look at memory usage, though separately from the log, for now.
(JSC::ExecutableAllocator::allocate):
* runtime/Options.h:

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

4 years agoUnreviewed attempt to fix the Windows build after r200699.
cdumez@apple.com [Wed, 11 May 2016 21:15:41 +0000 (21:15 +0000)]
Unreviewed attempt to fix the Windows build after r200699.

* bindings/js/JSIDBObjectStoreCustom.cpp:

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

4 years agoiOS build fix attempt after r200700.
rniwa@webkit.org [Wed, 11 May 2016 21:07:18 +0000 (21:07 +0000)]
iOS build fix attempt after r200700.

* bindings/js/ios/TouchConstructors.cpp:

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

4 years agoWeb Automation: add command to asynchronously load the Web Inspector frontend in...
bburg@apple.com [Wed, 11 May 2016 20:57:08 +0000 (20:57 +0000)]
Web Automation: add command to asynchronously load the Web Inspector frontend in the background
https://bugs.webkit.org/show_bug.cgi?id=157509

Reviewed by Timothy Hatcher and Joseph Pecoraro.

In order to make it easier to debug code that executes as a result of an automation
command, this patch adds a new Automation command to asynchronously load the debugger
and Inspector frontend. It is designed for use by automation clients to implement an
auto-inspection feature to aid in debugging automation scripts.

* UIProcess/Automation/Automation.json: Add new command.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectBrowsingContext): Added.
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Added.
This message is forwarded by WebInspectorProxy to the inspected page's session.

* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
Force the active automation window to become key and bring to front prior to
sending each NSEvent. This way, if the Inspector pauses while a command executes,
the automation window will get back focus when the Inspector unpauses just before
the next synthesized mouse or keyboard NSEvent is sent to its NSWindow.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::frontendLoaded):
Forward to the inspected page's session.

* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in: Add notification of the frontend's load.

* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::frontendLoaded):
Kick off notifying the automation session in UIProcess that the inspector loaded.

(WebKit::WebInspectorUI::closeWindow):
In some circumstances, the Web Inspector can be loaded without showing
the window. If this hidden page closes, make sure the frontend host gets
a chance to disconnect its InspectorFrontendClient. Normally this happens
when the window closes, but unshown Inspectors do not get window instances.

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

4 years agoAir may decide to put the result register of an arithmetic snippet in the tag register
sbarati@apple.com [Wed, 11 May 2016 20:54:09 +0000 (20:54 +0000)]
Air may decide to put the result register of an arithmetic snippet in the tag register
https://bugs.webkit.org/show_bug.cgi?id=157548

Reviewed by Filip Pizlo.

This patch adds a new ValueRep to B3 called LateRegister. The semantics
are similar to Register in that it can be used to pin an argument to
a particular register. It differs from ValueRep::Register in that the semantics of
LateRegister are that it is used after the result of the node its an argument to
is computed. This means that a LateRegister argument will interfere with the result
of a node. LateRegister is not a valid result ValueRep.

This was needed because there was a bug where B3/Air would assign the
result of a patchpoint to the TagTypeNumber register. This broke our
code when we would box a double into a JSValue in a snippet when the
result is the same as the TagTypeNumber register. To fix the issue,
we pass TagMaskRegister and TagTypeNumberRegister as ValueRep::LateRegister
arguments to various patchpoints.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::fillStackmap):
* b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::admitsStack):
* b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):
* b3/B3Validate.cpp:
* b3/B3ValueRep.cpp:
(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(JSC::B3::ValueRep::emitRestore):
(JSC::B3::ValueRep::recoveryForJSValue):
(WTF::printInternal):
* b3/B3ValueRep.h:
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::lateReg):
(JSC::B3::ValueRep::stack):
(JSC::B3::ValueRep::operator==):
(JSC::B3::ValueRep::isSomeRegister):
(JSC::B3::ValueRep::isReg):
* b3/testb3.cpp:
(JSC::B3::testSpillUseLargerThanDef):
(JSC::B3::testLateRegister):
(JSC::B3::zero):
(JSC::B3::run):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):

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

4 years agoTouch.prototype is undefined on iOS
rniwa@webkit.org [Wed, 11 May 2016 20:09:37 +0000 (20:09 +0000)]
Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>

Reviewed by Chris Dumez.

Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.
* page/DOMWindow.idl:

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

4 years agoChange IDBObjectStore.createIndex to take an IDL dictionary
darin@apple.com [Wed, 11 May 2016 20:04:58 +0000 (20:04 +0000)]
Change IDBObjectStore.createIndex to take an IDL dictionary
https://bugs.webkit.org/show_bug.cgi?id=157520

Reviewed by Chris Dumez.

Source/WebCore:

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::IDBKeyPath): Ditto.
(WebCore::IDBKeyPath::isValid): Ditto.
(WebCore::IDBKeyPath::operator==): Ditto.
(WebCore::IDBKeyPath::encode): Ditto.
(WebCore::IDBKeyPath::decode): Ditto.

* Modules/indexeddb/IDBKeyPath.h: Use pragma once. Make constructors non-explicit so
we can just pass a string or vector and have it turn into an IDBKeyPath. Added an enum
class named Type here and use it instead of IndexedDB::KeyPathType.

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor): Remove unneeded local variable.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::doDelete): Ditto.
(WebCore::IDBObjectStore::createIndex): Changed argument type to take IndexParameters
instead of two seaparate booleans. Also updated to use IDBKeyPath::Type.

* Modules/indexeddb/IDBObjectStore.h: Removed include of IndexedDB, using a forward
decalration instead. Marked the class final. Added an IndexParameters struct and used
it for the argument to createIndex.

* Modules/indexeddb/IDBObjectStore.idl: Stopped using Custom for put, add, and
createIndex functions. Stopped using Dictionary for createIndex, using IDBIndexParameters
instead as in the specification. Added IDBIndexParameters dictionary definition.

* Modules/indexeddb/IndexedDB.h: Use pragma once. Removed KeyPathType.

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::injectIDBKeyIntoScriptValue): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Ditto.
(WebCore::canInjectIDBKeyIntoScriptValue): Ditto.
(WebCore::createKeyPathArray): Ditto.
(WebCore::toJS): Ditto.
* bindings/js/JSIDBObjectStoreCustom.cpp:
(WebCore::putOrAdd): Deleted.
(WebCore::JSIDBObjectStore::putFunction): Deleted.
(WebCore::JSIDBObjectStore::add): Deleted.
(WebCore::JSIDBObjectStore::createIndex): Deleted.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression): Fixed code that generates a type check for
wrappers to only check types is knows how to check: wrappers and arrays, including
typed arrays. This prevents it from trying to check dictionaries.

* inspector/InspectorIndexedDBAgent.cpp: Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.

LayoutTests:

* storage/indexeddb/deleteIndex-bug110792-expected.txt: Updated result.
Test is still marked as flaky, but this is the proper expectation now.
Discovered this when I accidentally reset results for the whole directory.
* storage/indexeddb/deleteIndex-bug110792-private-expected.txt: Ditto.

* storage/indexeddb/index-basics-expected.txt: Updated to expect the simpler
type error that is generated by the bindings code as opposed to the hand written
binding. If we want to make this fancier like this for all bindings we can do
that the future in the bindings script.
* storage/indexeddb/index-basics-private-expected.txt: Ditto.
* storage/indexeddb/index-basics-workers-expected.txt: Ditto.

* storage/indexeddb/keypath-basics-expected.txt: Updated for the change that
expects null and undefined the be legal key paths. See below.
* storage/indexeddb/keypath-basics-private-expected.txt: Ditto.

* storage/indexeddb/modern/create-index-failures-expected.txt: Removed
expected results that require that we forbid null for the name and key path.
See below.
* storage/indexeddb/modern/create-index-failures-private-expected.txt: Ditto.

* storage/indexeddb/modern/resources/create-index-failures.js: Removed the test
that expects failure when null is passed for the name and key path. In both
cases, the Web IDL and IDB specifications call for the null value to be converted
to the string "null", not an exception.

* storage/indexeddb/resources/keypath-basics.js:
(prepareDatabase): Added tests for both undefined and null. Both are legal values for
the key path argument to createIndex. The Web IDL and IDB specifications call for
them to be converted to the strings "undefined" and "null", not to trigger exceptions.
(testInvalidKeyPaths): Removed tests that expect exceptions when calling createIndex
with undefined and null.

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

4 years agoRebaseline inspector/dom/getAccessibilityPropertiesForNode.html after r200677
ryanhaddad@apple.com [Wed, 11 May 2016 19:59:32 +0000 (19:59 +0000)]
Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html after r200677

Unreviewed test gardening.

* inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

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

4 years agoModern IDB: WebWorker support.
beidson@apple.com [Wed, 11 May 2016 19:58:05 +0000 (19:58 +0000)]
Modern IDB: WebWorker support.
https://bugs.webkit.org/show_bug.cgi?id=149953

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* IndexedDB-private-browsing/idb_webworkers-expected.txt:
* web-platform-tests/IndexedDB/idb_webworkers-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

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

4 years agoUpdate Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take...
cdumez@apple.com [Wed, 11 May 2016 19:02:09 +0000 (19:02 +0000)]
Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=157556

Reviewed by Darin Adler.

Source/WebCore:

Update Node::appendChild() / replaceChild() / removeChild() / insertBefore()
to take references instead of pointers. Do the parameter null checks in the
bindings instead of doing it in the implementation on Node.

Also update the ContainerNode::appendChild() / replaceChild() /
insertBefore() to take C++ references instead of Ref<>&& to avoid
unnecessarily causing ref counting churns at some call sites (including
in the bindings since they are a raw pointer to the nodes). The
implementation on ContainerNode was not actually using WTFMove() on the
Ref<>&& anyway.

* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::cloneChildNodes):
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
* dom/ContainerNode.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/Document.cpp:
(WebCore::Document::setBodyOrFrameset):
* dom/Element.cpp:
(WebCore::Element::setOuterHTML):
* dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::removeChild):
(WebCore::Node::appendChild):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
(WebCore::nodeSetPreTransformedFromNodeOrStringVector): Deleted.
(WebCore::Node::normalize): Deleted.
* dom/Node.h:
* dom/Node.idl:
* dom/NodeOrString.cpp:
(WebCore::convertNodesOrStringsIntoNode):
* dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::Range::processContentsBetweenOffsets):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
(WebCore::Range::insertNode):
(WebCore::Range::surroundContents):
* dom/Range.h:
* dom/Text.cpp:
(WebCore::Text::splitText):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/Editor.cpp:
(WebCore::Editor::setTextAsChildOfElement):
* editing/EditorCommand.cpp:
(WebCore::executeInsertNode):
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readFilenames):
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* editing/markup.cpp:
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::replaceChildrenWithFragment):
(WebCore::replaceChildrenWithText):
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setOuterText):
(WebCore::HTMLElement::insertAdjacent):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::tryCreateImageControls):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTBody):
(WebCore::HTMLTableElement::insertRow):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::tryCreateControls):
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElement::tryCreate):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::updateDisplayTree):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
* inspector/DOMEditor.cpp:
(WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
(WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
(WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::replaceChild):
* inspector/DOMEditor.h:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::innerPatchChildren):
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
(WebCore::DOMPatchSupport::removeChildAndMoveToNew):
* inspector/DOMPatchSupport.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::removeNode):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::moveTo):
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
* page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::cloneTarget):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
* xml/XMLErrors.cpp:
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):

Source/WebKit/win:

* DOMCoreClasses.cpp:
(DOMNode::insertBefore):
(DOMNode::removeChild):

Source/WebKit2:

* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]):
(-[WKDOMNode appendChild:]):
(-[WKDOMNode removeChild:]):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

LayoutTests:

Rebaseline several tests now that the Node API provides more useful
exception messages.

* fast/dom/Document/replaceChild-null-oldChild-expected.txt:
* fast/dom/Document/script-tests/replaceChild-null-oldChild.js:
* fast/dom/incompatible-operations-expected.txt:
* fast/dom/incompatible-operations.html:
* fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
* fast/dom/processing-instruction-appendChild-exceptions.xhtml:
* fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
* js/dom/dot-node-base-exception-expected.txt:
* js/dom/script-tests/dot-node-base-exception.js:

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

4 years agoModern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that...
beidson@apple.com [Wed, 11 May 2016 18:42:03 +0000 (18:42 +0000)]
Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
https://bugs.webkit.org/show_bug.cgi?id=157448

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Previously skipped tests cover new behavior, and are now unskipped).

There's two main parts to this patch:

1 - When an IDBOpenDBRequest is stop()'ed due to page navigation or worker termination,
    we now notify the IDBServer of that.
2 - Lot's of little tweaks to UniqueIDBDatabase to handle shutting down version change
    transactions and/or connections related to the cancelled openDB request.

Fortunately the changes to UniqueIDBDatabase were all well covered by existing tests.

* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::cancelForStop):
(WebCore::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/IDBOpenDBRequest.h:

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::cancelForStop):
* Modules/indexeddb/IDBRequest.h:

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::openDBRequestCancelled):
(WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction):
* Modules/indexeddb/client/IDBConnectionProxy.h:

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionToServer::openDBRequestCancelled):
* Modules/indexeddb/client/IDBConnectionToServer.h:

* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBServer::IDBServer::databaseConnectionClosed):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::openDBRequestCancelled):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange): Deleted.
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
* Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled):
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:

* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

LayoutTests:

* TestExpectations:
* storage/indexeddb/pending-version-change-stuck-private-expected.txt:
* storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt:
* storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt:

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

4 years agoImprove error messages for accessing arguments.callee and similar getters in strict...
commit-queue@webkit.org [Wed, 11 May 2016 18:33:31 +0000 (18:33 +0000)]
Improve error messages for accessing arguments.callee and similar getters in strict mode
https://bugs.webkit.org/show_bug.cgi?id=157545

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-11
Reviewed by Mark Lam.

Source/JavaScriptCore:

* runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
Provide better error GetterSetter in strict mode.

* runtime/JSFunction.cpp:
(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::defineOwnProperty):
Provide better error GetterSetter in strict mode.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorCalleeAndCallerGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInStrictModeGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInClassContextGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerGetterSetter): Deleted.
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncThrowTypeErrorCalleeAndCaller):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInStrictMode):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInClassContext):
(JSC::globalFuncThrowTypeErrorArgumentsAndCaller): Deleted.
* runtime/JSGlobalObjectFunctions.h:
Rename and expose new handles for new error getter setter native functions.

LayoutTests:

* js/basic-strict-mode-expected.txt:
* js/caller-property-expected.txt:
* js/script-tests/caller-property.js:

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

4 years agoUnreviewed, rolling out r200481.
commit-queue@webkit.org [Wed, 11 May 2016 18:13:04 +0000 (18:13 +0000)]
Unreviewed, rolling out r200481.
https://bugs.webkit.org/show_bug.cgi?id=157573

it's bad news for asm.js (Requested by pizlo on #webkit).

Reverted changeset:

"Reduce maximum JIT pool size on X86_64."
http://trac.webkit.org/changeset/200481

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

4 years agoFix a typo in r200330
mmaxfield@apple.com [Wed, 11 May 2016 18:06:03 +0000 (18:06 +0000)]
Fix a typo in r200330

Unreviewed.

* UIProcess/API/Cocoa/WKWebViewConfiguration.h:

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

4 years agoUnreviewed, rolling out r200686.
cdumez@apple.com [Wed, 11 May 2016 17:28:33 +0000 (17:28 +0000)]
Unreviewed, rolling out r200686.

Caused a lot of layout test failures

Reverted changeset:

"Sites served over insecure connections should not be allowed
to use geolocation."
https://bugs.webkit.org/show_bug.cgi?id=157423
http://trac.webkit.org/changeset/200686

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

4 years agoOptimize DataDetection's searchForLinkRemovingExistingDDLinks()
cdumez@apple.com [Wed, 11 May 2016 16:25:53 +0000 (16:25 +0000)]
Optimize DataDetection's searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=157561

Reviewed by Ryosuke Niwa.

Optimize DataDetection's searchForLinkRemovingExistingDDLinks():
1. The first loop was using Node::childNodes() to iterate over the child
   elements. Because of the recursive call, we may end up prepending
   children as we iterate over them. This is an issue because the
   childCount was cached before the loop and vector it would blow away
   the cache inside the NodeList. Switch to using ElementTraversal which
   should be both safer and more efficient. I don't believe we can use
   our nice ElementChildIterator here unfortunately as we would hit
   assertions due the the DOM mutations while iterating.
2. The second loop was using again Node::childNodes() and kept calling
   item(0) to get the first child and move it to make it the previous
   sibling of its old parent. Again, using childNodes() here is super
   inefficient because we keep modifying the children and childNodes()
   returns a live NodeList. The call to NodeList::length() would cache
   all the children in a Vector, only to blow that cache away after
  removing the first child. Switch to using ContainerNode::firstChild().
3. Drop the parentElement parameter as we can just get it from the child.
4. Use tighter typing so we don't end up calling the implementations of
   insertBefore() / removeChild() that are on Node, thus unnecessarily
   doing a is<ContainerNode>() check every time.
5. Pass element by reference instead of pointer as it cannot be null.

* editing/cocoa/DataDetection.mm:
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):

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

4 years agopreprocess-idls.pl not ignoring comments during processing
commit-queue@webkit.org [Wed, 11 May 2016 16:24:31 +0000 (16:24 +0000)]
preprocess-idls.pl not ignoring comments during processing
https://bugs.webkit.org/show_bug.cgi?id=157559

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-05-11
Reviewed by Darin Adler.

Remove comments from IDL file before processing.

* bindings/scripts/preprocess-idls.pl:
(getInterfaceExtendedAttributesFromIDL):

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

4 years agoVideos allowed to play through the Main Content restriction should not pause when...
jer.noble@apple.com [Wed, 11 May 2016 16:20:20 +0000 (16:20 +0000)]
Videos allowed to play through the Main Content restriction should not pause when scrolled off-screen.
https://bugs.webkit.org/show_bug.cgi?id=157555

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-main-content-allow-then-scroll.html

* html/MediaElementSession.cpp:
(WebCore::isMainContent):

LayoutTests:

* media/video-main-content-allow-then-scroll-expected.txt: Added.
* media/video-main-content-allow-then-scroll.html: Added.

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

4 years ago[curl] curl_easy_setopt(CURLOPT_CONNECT_ONLY) should take a long parameter
commit-queue@webkit.org [Wed, 11 May 2016 16:18:41 +0000 (16:18 +0000)]
[curl] curl_easy_setopt(CURLOPT_CONNECT_ONLY) should take a long parameter
https://bugs.webkit.org/show_bug.cgi?id=157562

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-05-11
Reviewed by Darin Adler.

The third argument of a calling curl_easy_setopt is missing.

* platform/network/curl/SocketStreamHandleCurl.cpp:
(WebCore::SocketStreamHandle::startThread): Give the third
argument of curl_easy_setopt.

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

4 years agoSites served over insecure connections should not be allowed to use geolocation.
bfulgham@apple.com [Wed, 11 May 2016 15:52:09 +0000 (15:52 +0000)]
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-11
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/security/insecure-geolocation.html
       http/tests/security/mixedcontent-geolocation-block-insecure-content.html
       http/tests/security/mixedcontent-geolocation.html

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::logError):
(WebCore::Geolocation::startRequest):
Access to Geolocation will be blocked if site is not secure. An error will be logged when access to Geolocation is blocked.
(WebCore::Geolocation::shouldBlockGeolocationRequests)
Returns true if the access to the geolocation should be blocked.
* Modules/geolocation/Geolocation.h:
* dom/SecurityContext.h:
(WebCore::SecurityContext::foundMixedContent):
Returns true if insecure content was accessed over secure connection.
(WebCore::SecurityContext::setFoundMixedContent):
Sets m_foundMixedContent to true if insecure content is accessed over secure connection.
(WebCore::SecurityContext::geolocationAccessed):
Returns true if geolocation was accessed
(WebCore::SecurityContext::setGeolocationAccessed):
Sets m_geolocationAccessed to true if geolocation was accessed.
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::canDisplayInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
(WebCore::MixedContentChecker::canRunInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.

LayoutTests:

* http/tests/security/geolocation-over-insecure-content.html: Added.
* http/tests/security/geolocation-over-mixed-content-block.html: Added.
* http/tests/security/geolocation-over-mixed-content.html: Added.
* http/tests/security/insecure-geolocation-expected.txt: Added.
* http/tests/security/insecure-geolocation.html: Added.
* http/tests/security/mixedcontent-geolocation-block-insecure-content-expected.txt: Added.
* http/tests/security/mixedcontent-geolocation-block-insecure-content.html: Added.
* http/tests/security/mixedcontent-geolocation-expected.txt: Added.
* http/tests/security/mixedcontent-geolocation.html: Added.

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

4 years agoEnsure DOM iterators remain done
youenn.fablet@crf.canon.fr [Wed, 11 May 2016 07:50:49 +0000 (07:50 +0000)]
Ensure DOM iterators remain done
https://bugs.webkit.org/show_bug.cgi?id=157453

Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

Making DOMWrapped::Iterator an Optional.
Setting it to Nullopt on the first time Iterator is returning null.

For set iterators, incrementing a counter which value is used in forEach callbacks and entries iterators.

* bindings/js/JSDOMIterator.h:
(WebCore::JSDOMIterator<JSWrapper>::asJS):
(WebCore::appendForEachArguments):
(WebCore::iteratorForEach):
(WebCore::JSDOMIterator<JSWrapper>::next):

LayoutTests:

* fast/dom/nodeListIterator-expected.txt:
* fast/text/font-face-set-javascript-expected.txt:

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

4 years ago[GTK] accessibility/aria-readonly.html is failing
jdiggs@igalia.com [Wed, 11 May 2016 07:14:31 +0000 (07:14 +0000)]
[GTK] accessibility/aria-readonly.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98357

Reviewed by Chris Fleizach.

Source/WebCore:

Add support for ATK_STATE_READ_ONLY and expose the value of aria-readonly
as an AtkObject attribute. In order to eliminate duplicate checks, remove
isReadOnly() and just use canSetAttributeValue(), moving all the logic into
AccessibilityNodeObject. Add AccessibilityObject::supportsARIAReadOnly() so
that we can explicitly expose the implicit value for aria-readonly on roles
which support this property. Also add support for ATK_STATE_CHECKABLE, both
because this state was missing and because it serves a similar function to
ATK_STATE_EDITABLE for the purpose of verifying exposure of toggle-able
elements that are not read-only.

Test: accessibility/form-control-value-settable.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canSetValueAttribute):
(WebCore::AccessibilityNodeObject::isRequired): Deleted.
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute): Deleted.
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAReadOnly):
(WebCore::AccessibilityObject::ariaReadOnlyValue):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isUnvisited): Deleted.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::isOffScreen): Deleted.
(WebCore::AccessibilityRenderObject::anchorElement): Deleted.
(WebCore::AccessibilityRenderObject::internalLinkElement): Deleted.
(WebCore::AccessibilityRenderObject::textChanged): Deleted.
(WebCore::AccessibilityRenderObject::clearChildren): Deleted.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Deleted.
* accessibility/AccessibilityRenderObject.h:
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(setAtkStateSetFromCoreObject):
(getInterfaceMaskFromObject):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

Source/WebKit/win:

Call AccessibilityNode::canSetValueAttribute() to determine if STATE_SYSTEM_READONLY
should be added and if editable text should be supported.

* AccessibleBase.cpp:
(AccessibleBase::state):
* AccessibleTextImpl.cpp:
(AccessibleText::deleteText):
(AccessibleText::insertText):
(AccessibleText::cutText):
(AccessibleText::pasteText):
(AccessibleText::replaceText):

Tools:

Add checks to isAttributeSettable() for ATK_STATE_READ_ONLY and the 'readonly'
AtkObject attribute along with ATK_STATE_CHECKABLE for toggle-able elements,
ATK_STATE_SELECTABLE for select elements, and ATK_STATE_FOCUSABLE combined
with range verification for inputs which implement AtkValue. The latter two
additions are admittedly a heuristic workaround for platform accessibility
API differences. But they should be sufficient to facilitate cross-platform
testing of isAttributeSettable() for form elements which lack ARIA attributes.

Bump the minimum version of at-spi2-core and at-spi2-atk
to 2.15.4 (earliest version that supports STATE_READ_ONLY).

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::isAttributeSettable):
* gtk/jhbuild.modules:

LayoutTests:

As part of this change, a new AtkObject attribute and state are being exposed.
Update two tests accordingly. Also unskip the previously-failing test. Lastly,
move the Mac form-control-value-settable.html test to the shared test set,
with a minor tweak to check the platform for several elements' expectations.

* accessibility/form-control-value-settable.html: Moved to shared tests.
* accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
* platform/gtk/TestExpectations: Unskipped previously-failing test.
* platform/gtk/accessibility/form-control-value-settable-expected.txt: Added.
* platform/gtk/accessibility/table-detection-expected.txt: Updated.
* platform/mac/accessibility/form-control-value-settable-expected.txt: Moved.

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

4 years agoDon't update media duration at playback end while seeking.
commit-queue@webkit.org [Wed, 11 May 2016 05:40:23 +0000 (05:40 +0000)]
Don't update media duration at playback end while seeking.
https://bugs.webkit.org/show_bug.cgi?id=157557

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-10
Reviewed by Jer Noble.

If JavaScript initiates a media element seek just as the media playback ends, don't update duration
to the current time as the current time is now the new seek time, not the time when playback ended.

* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::didEnd):

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

4 years agoTest gardening after r200646
mmaxfield@apple.com [Wed, 11 May 2016 05:10:38 +0000 (05:10 +0000)]
Test gardening after r200646

Unreviewed.

* TestExpectations:
* fast/text/unicode-range-download.html:

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

4 years agoFix typo CaptionUserPreferences::updateCaptionStyleSheetOveride
commit-queue@webkit.org [Wed, 11 May 2016 05:03:30 +0000 (05:03 +0000)]
Fix typo CaptionUserPreferences::updateCaptionStyleSheetOveride
https://bugs.webkit.org/show_bug.cgi?id=157544

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-05-10
Reviewed by Darin Adler.

* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): Deleted.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):

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

4 years ago[OS X] Compatible with gnu sed grammar due to compile error with gnu sed
commit-queue@webkit.org [Wed, 11 May 2016 04:52:59 +0000 (04:52 +0000)]
[OS X] Compatible with gnu sed grammar due to compile error with gnu sed
https://bugs.webkit.org/show_bug.cgi?id=157526

Patch by Shaw rich <richshaw@126.com> on 2016-05-10
Reviewed by Darin Adler.

* MigrateHeaders.make:

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

4 years agoRemove scrolledContentOffset() from rendering code
simon.fraser@apple.com [Wed, 11 May 2016 04:48:08 +0000 (04:48 +0000)]
Remove scrolledContentOffset() from rendering code
https://bugs.webkit.org/show_bug.cgi?id=157552

Reviewed by Zalan Bujtas.

scrolledContentOffset() is misleading because it returns a scrollPosition().
Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
and fix callers that need to convert to layout size.

* editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollPosition):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
(WebCore::RenderBox::scrolledContentOffset): Deleted.
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::offsetFromContainer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::hitInnerTextElement):

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

4 years agoAnother attempt to fix the build after r200668.
ryanhaddad@apple.com [Wed, 11 May 2016 04:26:04 +0000 (04:26 +0000)]
Another attempt to fix the build after r200668.

Unreviewed build fix.

* TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:
(TEST):

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

4 years agoTried to fix the Mac build after r200668.
mitz@apple.com [Wed, 11 May 2016 03:57:13 +0000 (03:57 +0000)]
Tried to fix the Mac build after r200668.

* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):

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

4 years agoOnly expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
weinig@apple.com [Wed, 11 May 2016 03:37:30 +0000 (03:37 +0000)]
Only expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
for now, since we don't have it fully implemented on Mac.

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes):
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

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

4 years agoTypedArray.prototype.slice should use the byteLength of passed array for memmove
keith_miller@apple.com [Wed, 11 May 2016 02:04:19 +0000 (02:04 +0000)]
TypedArray.prototype.slice should use the byteLength of passed array for memmove
https://bugs.webkit.org/show_bug.cgi?id=157551
<rdar://problem/26179914>

Reviewed by Michael Saboff.

The TypedArray.prototype.slice function would use the byteLength of the passed array
to determine the amount of data to copy. It should have been using the passed length
times the size of each element. This fixes a crash on JavaPoly.com

* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::set):
* tests/stress/typedarray-slice.js:

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

4 years agoREGRESSION(r200447): Unable to build C_LOOP with clang version 800.0.12 or higher
msaboff@apple.com [Wed, 11 May 2016 01:56:00 +0000 (01:56 +0000)]
REGRESSION(r200447): Unable to build C_LOOP with clang version 800.0.12 or higher
https://bugs.webkit.org/show_bug.cgi?id=157549

Reviewed by Keith Miller.

Disable debug annotations for C_LOOP builds.  They are inline assembly directives,
unnecessary and they cause syntax errors.

* offlineasm/asm.rb:

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