WebKit-https.git
5 years agoSharing SharedBuffer between WebCore and ImageIO is racy and crash prone
psolanki@apple.com [Thu, 24 Jul 2014 21:37:43 +0000 (21:37 +0000)]
Sharing SharedBuffer between WebCore and ImageIO is racy and crash prone
https://bugs.webkit.org/show_bug.cgi?id=135069
<rdar://problem/17470655>

Reviewed by Simon Fraser.

When passing image data to ImageIO for decoding, we pass an NSData subclass that is a wraper
around SharedBuffer. This can be a problem when ImageIO tries to access the data on the CA
thread. End result is data corruption on large image loads and potential crashes. The fix is
to have SharedBuffer create a copy of its data if the data has been passed to ImageIO and
might be accessed concurrently.

Since Vector is not refcounted, we do this by having a new refcounted object in SharedBuffer
that contains the buffer and we pass that in our NSData subclass WebCoreSharedBufferData.
Code that would result in the Vector memory moving e.g. append(), resize(), now checks to
see if the buffer was shared and if so, will create a new copy of the vector. This ensures
that the main thread does not end up invalidating the vector memory that we have passed it
to ImageIO.

No new tests because no functional changes.

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::makePurgeable):
    Remove early return - createPurgeableMemory() has the correct check now.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::adoptVector):
(WebCore::SharedBuffer::createPurgeableBuffer):
    Don't create purgeable buffer if we are sharing the buffer.
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Added.
    Create a new copy of the data if we have shared the buffer and if appending to it would
    exceed the capacity of the vector resulting in memmove.
(WebCore::SharedBuffer::appendToInternalBuffer): Added.
(WebCore::SharedBuffer::clearInternalBuffer): Added.
(WebCore::SharedBuffer::buffer):
    Create a new copy of the buffer if we have shared it.
(WebCore::SharedBuffer::getSomeData):
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::singleDataArrayBuffer):
(WebCore::SharedBuffer::maybeAppendDataArray):
* platform/mac/SharedBufferMac.mm:
    Pass the InternalBuffer object to WebCoreSharedBufferData
(-[WebCoreSharedBufferData dealloc]):
(-[WebCoreSharedBufferData initWithSharedBufferInternalBuffer:]):
(-[WebCoreSharedBufferData length]):
(-[WebCoreSharedBufferData bytes]):
(WebCore::SharedBuffer::createNSData):
    Call createCFData() instead of duplicating code.
(WebCore::SharedBuffer::createCFData):
    If the data is in purgeable memory, make a copy of it since m_buffer was cleared when
    creating the purgeable buffer.
(-[WebCoreSharedBufferData initWithSharedBuffer:]): Deleted.

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

5 years agoCommitters should mail webkit-committers not webkit-reviewers for reactivation
bjonesbe@adobe.com [Thu, 24 Jul 2014 21:12:53 +0000 (21:12 +0000)]
Committers should mail webkit-committers not webkit-reviewers for reactivation
https://bugs.webkit.org/show_bug.cgi?id=135203

Reviewed by Ryosuke Niwa.

Only reviewers can send mail to webkit-reviewers. Amend the policy so that committers should
send mail to webkit-committers instead of webkit-reviewers.

* coding/commit-review-policy.html:

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

5 years agoNeed to explicitly support location services in webcontent profile
oliver@apple.com [Thu, 24 Jul 2014 20:18:06 +0000 (20:18 +0000)]
Need to explicitly support location services in webcontent profile
https://bugs.webkit.org/show_bug.cgi?id=135251
<rdar://17798346>

Reviewed by Dan Bernstein.

Switching to uikit-app means that we remove the implicit support
for location services. This makes us explicitly opt-in.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 years agoCrash at [WKContentView _applicationWillEnterForeground:] + 28
timothy_horton@apple.com [Thu, 24 Jul 2014 20:13:34 +0000 (20:13 +0000)]
Crash at [WKContentView _applicationWillEnterForeground:] + 28
<rdar://problem/17797103>

Reviewed by Sam Weinig.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationWillEnterForeground:]):
Drawing area can be null; null check it!
It's ok if we don't hide the content in this case, because if the drawing area is null,
it doesn't have any layers in the tree anyway.

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

5 years ago[Curl] Enable file logging.
commit-queue@webkit.org [Thu, 24 Jul 2014 19:23:51 +0000 (19:23 +0000)]
[Curl] Enable file logging.
https://bugs.webkit.org/show_bug.cgi?id=135202

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-24
Reviewed by Alex Christensen.

The Curl api offers the possibility to write log messages to file. Enable this for debugging purposes.

* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::ResourceHandleManager::initializeHandle):
* platform/network/curl/ResourceHandleManager.h:

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

5 years agoSort WebCore.exp.in after r171252
commit-queue@webkit.org [Thu, 24 Jul 2014 16:20:49 +0000 (16:20 +0000)]
Sort WebCore.exp.in after r171252
https://bugs.webkit.org/show_bug.cgi?id=135239

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-24
Reviewed by Csaba Osztrogonác.

* WebCore.exp.in:

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

5 years ago[New Multicolumn] Assertion failure when an input element has multicolumn style
mihnea@adobe.com [Thu, 24 Jul 2014 12:23:04 +0000 (12:23 +0000)]
[New Multicolumn] Assertion failure when an input element has multicolumn style
https://bugs.webkit.org/show_bug.cgi?id=135234

Reviewed by Andrei Bucur.

Source/WebCore:
Restrict the assertion in RenderBlock::canComputeRegionRangeForBox
only to RenderNamedFlowThread objects since for RenderMultiColumnFlowThread
objects we can compute a range of regions during their parent block layout.

Test: fast/multicol/newmulticol/input-as-multicol.html

* rendering/RenderBlock.cpp:
(WebCore::canComputeRegionRangeForBox):

LayoutTests:
* fast/multicol/newmulticol/input-as-multicol-expected.txt: Added.
* fast/multicol/newmulticol/input-as-multicol.html: Added.

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

5 years ago[iOS WK2] Some help.apple.com pages not scrollable
simon.fraser@apple.com [Thu, 24 Jul 2014 05:17:43 +0000 (05:17 +0000)]
[iOS WK2] Some help.apple.com pages not scrollable
https://bugs.webkit.org/show_bug.cgi?id=135228
<rdar://problem/17790792>

Reviewed by Benjamin Poulain.

On pages which size their document to the device size, the WKContentView size
never changes after it's created. In this situation, we never set a bounds
on the _rootContentView, so it remains zero-sized which breaks hit testing
on all enclosed UIScrollViews for overflow:scroll.

Fix by making the _rootContentView and the _inspectorIndicationView use autosizing
so they are always the size of their parent view, and remove the explicit setting
of their bounds.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:configuration:webView:]):
(-[WKContentView setShowingInspectorIndication:]):
(-[WKContentView _didCommitLayerTree:]):

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

5 years ago[iOS][WK2] r171124 is incorrect when the virtual keyboard is up
benjamin@webkit.org [Thu, 24 Jul 2014 05:02:10 +0000 (05:02 +0000)]
[iOS][WK2] r171124 is incorrect when the virtual keyboard is up
https://bugs.webkit.org/show_bug.cgi?id=135187

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-23
Reviewed by Simon Fraser.

Unfortunately, restricting the input into the document rect does not work.
When the keyboard is up, the keyboard bounds can overlap the WKWebView, and
the valid range should account for that.

Instead of playing with the keyboard rect, we can limit the scroll position
inside the valid range of UIScrollView. The keyboard always adjusts the UIScrollView
range as needed to give access to the content. Using that range is a bit more permissive
because the page could scroll to reveal content in the content inset defined by the client
of the API (this could actually be quite useful for hybrid apps).

There was already a function to change the content offset in the valid scrollview
range: changeContentOffsetBoundedInValidRange(), I extracted the range check
to contentOffsetBoundedInValidRange() for the needs of -[WKWebView _scrollToContentOffset:].

So...contentOffsetBoundedInValidRange() is cool, but it is not in the right coordinate
system. The scroll position we get from the WebProcess is in document coordinates, while
contentOffsetBoundedInValidRange() works with the UIScrollView coordinates.
To fix that, we scale the input position to get to the same scale as UIScrollView, then
apply the insets with the weirdly named [WKWebView _adjustedContentOffset:].

* UIProcess/API/Cocoa/WKWebView.mm:
(contentOffsetBoundedInValidRange):
(changeContentOffsetBoundedInValidRange):
(-[WKWebView _scrollToContentOffset:]):

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

5 years agoTransparent fullscreen background when video is not present.
commit-queue@webkit.org [Thu, 24 Jul 2014 04:38:03 +0000 (04:38 +0000)]
Transparent fullscreen background when video is not present.
https://bugs.webkit.org/show_bug.cgi?id=135226

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-23
Reviewed by Simon Fraser.

Set background to black just before beginning the animation to fullscreen.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): set background color black.

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

5 years agoScriptController::updateDocument ASSERT mutating map while iterating map
commit-queue@webkit.org [Thu, 24 Jul 2014 02:39:53 +0000 (02:39 +0000)]
ScriptController::updateDocument ASSERT mutating map while iterating map
https://bugs.webkit.org/show_bug.cgi?id=135211

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-07-23
Reviewed by Oliver Hunt.

Avoid iterating over m_windowShells in more places. This prevents
the possibility of a collection during JSC allocation which might
cause a mutation to m_windowShells (HTMLMediaElement destruction).

Have ScriptController defriend ScriptCachedFrameData by providing
a getter for the list of window shells.

* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::windowShells):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::attachDebugger):
(WebCore::ScriptController::updateDocument):
* bindings/js/ScriptController.h:

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

5 years agoUnreviewed, rolling out r171498.
commit-queue@webkit.org [Thu, 24 Jul 2014 01:13:14 +0000 (01:13 +0000)]
Unreviewed, rolling out r171498.
https://bugs.webkit.org/show_bug.cgi?id=135223

It will regress some scroll position restoration on navigation
(r167916). (Requested by smfr on #webkit).

Reverted changeset:

"[iOS WK2] Header bar on nytimes articles lands in the wrong
place after rubberbanding"
https://bugs.webkit.org/show_bug.cgi?id=135221
http://trac.webkit.org/changeset/171498

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

5 years agoREGRESSION (r171376): Sometimes we detect less than the whole phone number
timothy_horton@apple.com [Thu, 24 Jul 2014 00:24:09 +0000 (00:24 +0000)]
REGRESSION (r171376): Sometimes we detect less than the whole phone number
https://bugs.webkit.org/show_bug.cgi?id=135220
<rdar://problem/17783423>

Reviewed by Brady Eidson.

* editing/Editor.cpp:
(WebCore::Editor::scanSelectionForTelephoneNumbers):
Use the visible selection's start and end instead of base and extent, because they'll
always be in the right order in the case of a directional selection (base can be *after* extent
if you select from right to left). This fixes the code that expands the selection.

Pass the *entire* expanded selection to DataDetectors, instead of using TextIterator.
This way, we will find each number only once, and will never get part of a phone number once
and then the whole phone number later.

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

5 years ago[iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
simon.fraser@apple.com [Thu, 24 Jul 2014 00:23:03 +0000 (00:23 +0000)]
[iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
https://bugs.webkit.org/show_bug.cgi?id=135221

Reviewed by Tim Horton.

Source/WebCore:

Add a function on GraphicsLayer to force a flush of the layer position
to the underlying graphics system, so that when layers cease being
scroll-coordinated, we can ensure that their layers are repositioned
in the correct location.

* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::forcePositionUpdate):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::forcePositionUpdate):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):

Source/WebKit2:

The call to didCommitLayerTree() can cause one or two visible rect updates,
via changes to the UIScrollView contentSize and contentOffset. As a result, we
would notify the scrolling tree about a viewport change, but using the old
scrolling tree rather than the new one, so we could move layers around for
nodes which are about to be removed from the tree.

Fix by m_webPageProxy->didCommitLayerTree() after the scrolling tree has been
committed.

* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

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

5 years agoGet rid of SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator
psolanki@apple.com [Thu, 24 Jul 2014 00:08:10 +0000 (00:08 +0000)]
Get rid of SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator
https://bugs.webkit.org/show_bug.cgi?id=135219

Reviewed by Anders Carlsson.

No new tests because no functional changes.

* loader/ResourceBuffer.h:
* loader/mac/ResourceBuffer.mm:
(WebCore::ResourceBuffer::createNSData):
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator::NSDataRetainPtrWithoutImplicitConversionOperator): Deleted.
* platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createNSData):

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

5 years agoBuild fix after r171361.
rniwa@webkit.org [Wed, 23 Jul 2014 23:20:22 +0000 (23:20 +0000)]
Build fix after r171361.

* public/js/helper-classes.js:
(.this.formattedBuildTime):

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

5 years agoSubpixel rendering: Cleanup RenderLayerCompositor::deviceScaleFactor()
zalan@apple.com [Wed, 23 Jul 2014 22:55:37 +0000 (22:55 +0000)]
Subpixel rendering: Cleanup RenderLayerCompositor::deviceScaleFactor()
https://bugs.webkit.org/show_bug.cgi?id=135208

Reviewed by Simon Fraser.

Use m_renderView.document() to retrieve device scale factor value. m_renderView.document()
is always available while this->page() is not.

No change in behavior.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateTransform):
(WebCore::RenderLayerBacking::computeTransformOriginForPainting):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::deviceScaleFactor):

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

5 years agoAdd a pseudo target to create sandbox override roots
oliver@apple.com [Wed, 23 Jul 2014 22:03:54 +0000 (22:03 +0000)]
Add a pseudo target to create sandbox override roots
https://bugs.webkit.org/show_bug.cgi?id=135216
<rdar://17785560>

Reviewed by Alexey Proskuryakov.

Just a duplicate of the standard ios sandbox target, targetting
the profile overrides directory.  This means we can make roots
that "Just Work".

* WebKit2.xcodeproj/project.pbxproj:

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

5 years ago[WinCairo] Gstreamer rendering is not working.
commit-queue@webkit.org [Wed, 23 Jul 2014 21:56:30 +0000 (21:56 +0000)]
[WinCairo] Gstreamer rendering is not working.
https://bugs.webkit.org/show_bug.cgi?id=135201

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-23
Reviewed by Alex Christensen.

WinCairo does not support accelerated rendering yet.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
(WebCore::MediaPlayerPrivateGStreamerBase::supportsAcceleratedRendering):

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

5 years agoIncorrect commit for sandbox profile
oliver@apple.com [Wed, 23 Jul 2014 21:43:43 +0000 (21:43 +0000)]
Incorrect commit for sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135214
<rdar://17739108>

Reviewed by Anders Carlsson.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 years agoWeb Inspector: InspectorBackend's promise-based agent API does not support multiple...
burg@cs.washington.edu [Wed, 23 Jul 2014 21:16:33 +0000 (21:16 +0000)]
Web Inspector: InspectorBackend's promise-based agent API does not support multiple return values
https://bugs.webkit.org/show_bug.cgi?id=135207

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:
The promise wrapper implementation assumed that the protocol callback supplies a single 'payload'
return value, but InspectorBackend will actually unpack multiple return values as multiple
callback arguments. Set a special flag so it will not try to apply multiple return values.

It would read better if multiple return values could be spread to the resolve callback, but
multiple argument support are not required by the Promises specification, so we won't use them.

* UserInterface/Controllers/ReplayManager.js: Fix uses of promise return values.
(WebInspector.ReplayManager):
* UserInterface/Models/ReplaySession.js:
* UserInterface/Models/ReplaySessionSegment.js:
(WebInspector.ReplaySessionSegment):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):

LayoutTests:
* http/tests/inspector/replay/replay-test.js: fix uses of promise API return values.

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

5 years agoUnreviewed, rolling out r171455.
commit-queue@webkit.org [Wed, 23 Jul 2014 20:59:40 +0000 (20:59 +0000)]
Unreviewed, rolling out r171455.
https://bugs.webkit.org/show_bug.cgi?id=135209

completely broke selection highlight invalidation (Requested
by thorton on #webkit).

Reverted changeset:

"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171455

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

5 years agoUnreviewed iOS build fix after r171355.
joepeck@webkit.org [Wed, 23 Jul 2014 20:34:14 +0000 (20:34 +0000)]
Unreviewed iOS build fix after r171355.

* TestWebKitAPI/Configurations/Base.xcconfig:
Since all the Tests/WebKit2Cocoa tests are already explicitly skipped on iOS,
simplify to skipping all the tests in the directory. PlatformUtilities are not
building on iOS, which means we are missing necessary Util functions.

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

5 years agoCompile window-inactive and fullscreen pseudoclasses in css selectors.
achristensen@apple.com [Wed, 23 Jul 2014 20:19:37 +0000 (20:19 +0000)]
Compile window-inactive and fullscreen pseudoclasses in css selectors.
https://bugs.webkit.org/show_bug.cgi?id=135200

Reviewed by Benjamin Poulain.

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
Removed the check of context.hasSelectionPseudo for a window-inactive pseudoclass.
Moved logic to SelectorCheckerTestFunctions.h to share with the selector compiler.
* css/SelectorCheckerTestFunctions.h:
(WebCore::isWindowInactive):
(WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
(WebCore::matchesFullScreenAncestorPseudoClass):
(WebCore::matchesFullScreenDocumentPseudoClass):
Added from SelectorChecker.cpp.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
Added unoptimized pseudoclass cases for window-inactive and fullscreen pseudoclasses.
Explicitly listed uncompiled pseudoclasses for future work instead of using a default.

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

5 years ago<rdar://problem/17782623> [iOS] Client-certificate authentication isn’t working with...
mitz@apple.com [Wed, 23 Jul 2014 20:18:47 +0000 (20:18 +0000)]
<rdar://problem/17782623> [iOS] Client-certificate authentication isn’t working with some certificates
https://bugs.webkit.org/show_bug.cgi?id=135206

Reviewed by Anders Carlsson.

* Shared/cf/ArgumentCodersCF.cpp:
(IPC::copyPersistentRef): Added this helper function. It differs from
SecKeyCopyPersistentRef in that if multiple copies of the key exist in the keychain, it
ensures that we get a reference to the copy that is in the keychain access group that the
Networking process can use.
(IPC::encode): Use copyPersistentRef.

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

5 years agoBuild fix after r171482.
bfulgham@apple.com [Wed, 23 Jul 2014 18:39:41 +0000 (18:39 +0000)]
Build fix after r171482.

Rubberstamped by Joe Pecoraro.

* runtime/Identifier.h: Make header declarations match
implementation file.

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

5 years ago../JavaScriptCore: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows
bfulgham@apple.com [Wed, 23 Jul 2014 18:18:34 +0000 (18:18 +0000)]
../JavaScriptCore: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows
https://bugs.webkit.org/show_bug.cgi?id=135199

Reviewed by Mark Lam.

* jsc.cpp:
(WTF::RuntimeArray::deleteProperty): Stop using ugly
compiler work-around on Windows; use NO_RETURN_DUE_TO_CRASH
codepath instead.
* runtime/Identifier.h: Add NO_RETURN_DUE_TO_CRASH
to header so function declaration matches implementation.

../WebCore: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
https://bugs.webkit.org/show_bug.cgi?id=13519

Reviewed by Mark Lam.

* svg/SVGZoomAndPan.h: Add NO_RETURN_DUE_TO_CRASH to
header so function declarations match implementation.

../WTF: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
https://bugs.webkit.org/show_bug.cgi?id=13519

Reviewed by Mark Lam.

* wtf/Assertions.h: Add MSVC to list of compilers supporting this macro.
* wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH.

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

5 years agoJSDOMWindowShell leaks on pages with media elements
commit-queue@webkit.org [Wed, 23 Jul 2014 17:57:17 +0000 (17:57 +0000)]
JSDOMWindowShell leaks on pages with media elements
https://bugs.webkit.org/show_bug.cgi?id=135178

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-07-23
Reviewed by Oliver Hunt.

The DOMWindowWorld for HTMLMediaElements with MEDIA_CONTROLS_SCRIPT
was not getting cleared and removed.

* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell):
Iterate over a copy of the values. A sweep / garbage collection caused by
any JSC allocation during iteration could trigger a mutation of the m_windowShells
table that was being iterating. So instead iterate a list that won't mutate.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
If we had an isolated world, release as much memory as possible.

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

5 years agoEnsure we compute the min and max height of replaced elements to 'none' or 0 when...
bjonesbe@adobe.com [Wed, 23 Jul 2014 17:56:18 +0000 (17:56 +0000)]
Ensure we compute the min and max height of replaced elements to 'none' or 0 when appropriate.
https://bugs.webkit.org/show_bug.cgi?id=135181

Reviewed by David Hyatt.

Source/WebCore:
If a replaced element has a percentage min or max height specified then that height value should
compute to 'none' for max-height and 0 for min-height when its containing block
does not have a height 'specified explicitly'.

This is based on a Blink patch by Robert Hogan.

Tests: css2.1/20110323/max-height-percentage-003.html
       fast/replaced/max-height-percentage-quirks.html
       fast/replaced/min-height-percentage-quirks.html
       fast/replaced/min-height-percentage.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::logicalHeightComputesAsNone):
(WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
* rendering/RenderBox.h:

LayoutTests:
* css2.1/20110323/max-height-percentage-003-expected.html: Added.
* css2.1/20110323/max-height-percentage-003.html: Added.
* fast/replaced/max-height-percentage-quirks-expected.html: Added.
* fast/replaced/max-height-percentage-quirks.html: Added.
* fast/replaced/min-height-percentage-expected.html: Added.
* fast/replaced/min-height-percentage-quirks-expected.html: Added.
* fast/replaced/min-height-percentage-quirks.html: Added.
* fast/replaced/min-height-percentage.html: Added.

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

5 years agoRemove CSS_EXCLUSIONS compile flag and leftover code
bjonesbe@adobe.com [Wed, 23 Jul 2014 17:35:29 +0000 (17:35 +0000)]
Remove CSS_EXCLUSIONS compile flag and leftover code
https://bugs.webkit.org/show_bug.cgi?id=135175

Reviewed by Zoltan Horvath.

At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
stubs. This removes the flag and the useless code.

.:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:
* Configurations/FeatureDefines.xcconfig:

Source/WebCore:
No new tests, just removing code.

* Configurations/FeatureDefines.xcconfig:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled): Deleted.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setCSSExclusionsEnabled): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:

WebKitLibraries:
* win/tools/vsprops/FeatureDefines.props:
* win/tools/vsprops/FeatureDefinesCairo.props:

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

5 years ago[MSE][Mac] Support abort() in SourceBufferPrivateAVFObjC.
jer.noble@apple.com [Wed, 23 Jul 2014 16:20:14 +0000 (16:20 +0000)]
[MSE][Mac] Support abort() in SourceBufferPrivateAVFObjC.
https://bugs.webkit.org/show_bug.cgi?id=135163

Reviewed by Brent Fulgham.

Recreate the parser when asked to abort().

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::abort):

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

5 years agoMigrate accessibility/ to using nullptr instead of 0
mmaxfield@apple.com [Wed, 23 Jul 2014 14:57:15 +0000 (14:57 +0000)]
Migrate accessibility/ to using nullptr instead of 0
https://bugs.webkit.org/show_bug.cgi?id=135185

Reviewed by Simon Fraser.

No new tests because there is no behavior change.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::rootObjectForFrame):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::rootObjectForFrame):
(WebCore::AXObjectCache::rootAXEditableElement):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
(WebCore::AccessibilityImageMapLink::parentObject):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
(WebCore::AccessibilityListBox::elementAccessibilityHitTest):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
(WebCore::AccessibilityListBoxOption::parentObject):
(WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
* accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::AccessibilityMockObject):
* accessibility/AccessibilityMockObject.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::detach):
(WebCore::AccessibilityNodeObject::firstChild):
(WebCore::AccessibilityNodeObject::lastChild):
(WebCore::AccessibilityNodeObject::previousSibling):
(WebCore::AccessibilityNodeObject::nextSibling):
(WebCore::AccessibilityNodeObject::parentObject):
(WebCore::AccessibilityNodeObject::document):
(WebCore::AccessibilityNodeObject::anchorElement):
(WebCore::nativeActionElement):
(WebCore::AccessibilityNodeObject::actionElement):
(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::labelForElement):
(WebCore::AccessibilityNodeObject::menuItemElementForMenu):
(WebCore::AccessibilityNodeObject::menuButtonForMenu):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::renderListItemContainerForNode):
(WebCore::AccessibilityObject::accessibilityObjectForPosition):
(WebCore::AccessibilityObject::document):
(WebCore::AccessibilityObject::page):
(WebCore::AccessibilityObject::documentFrameView):
(WebCore::AccessibilityObject::anchorElementForNode):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::firstAnonymousBlockChild):
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::focusedUIElement):
(WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::node):
(WebCore::AccessibilityObject::renderer):
(WebCore::AccessibilityObject::selectedRadioButton):
(WebCore::AccessibilityObject::selectedTabItem):
(WebCore::AccessibilityObject::accessibilityHitTest):
(WebCore::AccessibilityObject::firstChild):
(WebCore::AccessibilityObject::lastChild):
(WebCore::AccessibilityObject::previousSibling):
(WebCore::AccessibilityObject::nextSibling):
(WebCore::AccessibilityObject::parentObjectIfExists):
(WebCore::AccessibilityObject::observableObject):
(WebCore::AccessibilityObject::titleUIElement):
(WebCore::AccessibilityObject::correspondingLabelForControlElement):
(WebCore::AccessibilityObject::correspondingControlForLabelElement):
(WebCore::AccessibilityObject::scrollBar):
(WebCore::AccessibilityObject::anchorElement):
(WebCore::AccessibilityObject::actionElement):
(WebCore::AccessibilityObject::widget):
(WebCore::AccessibilityObject::widgetForAttachmentView):
(WebCore::AccessibilityObject::activeDescendant):
(WebCore::AccessibilityObject::mathRadicandObject):
(WebCore::AccessibilityObject::mathRootIndexObject):
(WebCore::AccessibilityObject::mathUnderObject):
(WebCore::AccessibilityObject::mathOverObject):
(WebCore::AccessibilityObject::mathNumeratorObject):
(WebCore::AccessibilityObject::mathDenominatorObject):
(WebCore::AccessibilityObject::mathBaseObject):
(WebCore::AccessibilityObject::mathSubscriptObject):
(WebCore::AccessibilityObject::mathSuperscriptObject):
(WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
* accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::progressElement):
(WebCore::AccessibilityProgressIndicator::meterElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::renderBoxModelObject):
(WebCore::AccessibilityRenderObject::firstChild):
(WebCore::AccessibilityRenderObject::lastChild):
(WebCore::startOfContinuations):
(WebCore::childBeforeConsideringContinuations):
(WebCore::AccessibilityRenderObject::previousSibling):
(WebCore::AccessibilityRenderObject::nextSibling):
(WebCore::nextContinuation):
(WebCore::AccessibilityRenderObject::renderParentObject):
(WebCore::AccessibilityRenderObject::parentObject):
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::node):
(WebCore::AccessibilityRenderObject::labelElementContainer):
(WebCore::AccessibilityRenderObject::internalLinkElement):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::topRenderer):
(WebCore::AccessibilityRenderObject::document):
(WebCore::AccessibilityRenderObject::widget):
(WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
(WebCore::AccessibilityRenderObject::documentFrameView):
(WebCore::AccessibilityRenderObject::widgetForAttachmentView):
(WebCore::AccessibilityRenderObject::rootEditableElementForPosition):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
(WebCore::AccessibilityRenderObject::observableObject):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::setAccessibleName):
(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
(WebCore::AccessibilityRenderObject::mathRadicandObject):
(WebCore::AccessibilityRenderObject::mathRootIndexObject):
(WebCore::AccessibilityRenderObject::mathNumeratorObject):
(WebCore::AccessibilityRenderObject::mathDenominatorObject):
(WebCore::AccessibilityRenderObject::mathUnderObject):
(WebCore::AccessibilityRenderObject::mathOverObject):
(WebCore::AccessibilityRenderObject::mathBaseObject):
(WebCore::AccessibilityRenderObject::mathSubscriptObject):
(WebCore::AccessibilityRenderObject::mathSuperscriptObject):
* accessibility/AccessibilitySVGRoot.cpp:
(WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::detach):
(WebCore::AccessibilityScrollView::scrollBar):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::addChildScrollbar):
(WebCore::AccessibilityScrollView::clearChildren):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::accessibilityHitTest):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
* accessibility/AccessibilityScrollbar.cpp:
(WebCore::AccessibilityScrollbar::document):
* accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::clearChildren):
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::titleUIElement):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::headerObjectForSection):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::parentTable):
(WebCore::AccessibilityTableRow::headerObject):
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
(rendererForView):
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::detachFromParent):
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase detach]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(CreateCGColorIfDifferent):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(rendererForView):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* accessibility/win/AccessibilityObjectWrapperWin.h:
(WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):

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

5 years agoASSERTION FAILED: generatingElement() in WebCore::RenderNamedFlowFragment::regionOver...
mihnea@adobe.com [Wed, 23 Jul 2014 12:12:36 +0000 (12:12 +0000)]
ASSERTION FAILED: generatingElement() in WebCore::RenderNamedFlowFragment::regionOversetState
https://bugs.webkit.org/show_bug.cgi?id=135153

Reviewed by David Hyatt.

Source/WebCore:
Even though the CSSRegions spec defines the behaviour of a multicolumn region,
we currently do not support this functionality. This patch ensures that a multicolumn
element does not become a region. In the future, when we will implement the multicolumn
as region functionality, http://dev.w3.org/csswg/css-regions/#multi-column-regions, we
will remove this restriction.

Test: fast/regions/multicol-as-region-prevented.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):

LayoutTests:
* fast/regions/multicol-as-region-prevented-expected.html: Added.
* fast/regions/multicol-as-region-prevented.html: Added.

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

5 years ago[CMake] Avoid building WebCore with ANGLE's OpenGL/EGL headers
zandobersek@gmail.com [Wed, 23 Jul 2014 11:30:28 +0000 (11:30 +0000)]
[CMake] Avoid building WebCore with ANGLE's OpenGL/EGL headers
https://bugs.webkit.org/show_bug.cgi?id=135167

Reviewed by Martin Robinson.

* CMakeLists.txt: Don't add ANGLE/include to the WebCore_INCLUDE_DIRECTORIES list
as this results in ANGLE's OpenGL and EGL headers being included, instead of the
headers that are provided by the system. Only the ANGLESupport library should be built
with that specific header inclusion path.

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

5 years agoUnreviewed, rolling out r171367.
commit-queue@webkit.org [Wed, 23 Jul 2014 10:31:37 +0000 (10:31 +0000)]
Unreviewed, rolling out r171367.
https://bugs.webkit.org/show_bug.cgi?id=135192

broke three API tests (Requested by thorton on #webkit).

Reverted changeset:

"JSLock release should only modify the AtomicStringTable if it
modified in acquire"
https://bugs.webkit.org/show_bug.cgi?id=135143
http://trac.webkit.org/changeset/171367

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

5 years agoREGRESSION (r171239): Much more time spent taking snapshots during the PLT
timothy_horton@apple.com [Wed, 23 Jul 2014 10:24:45 +0000 (10:24 +0000)]
REGRESSION (r171239): Much more time spent taking snapshots during the PLT
https://bugs.webkit.org/show_bug.cgi?id=135177
<rdar://problem/17764847>

Reviewed by Dan Bernstein.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
* WebProcess/WebPage/WebPage.h:
Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
Only send it when the current history item for the main frame changes.

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

5 years ago[EFL] Fix build after r171454
m.pakula@samsung.com [Wed, 23 Jul 2014 09:59:42 +0000 (09:59 +0000)]
[EFL] Fix build after r171454
https://bugs.webkit.org/show_bug.cgi?id=135191

Reviewed by Csaba Osztrogonác.

* MiniBrowser/efl/CMakeLists.txt: Add path to new EWebKit2.h location .

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

5 years agoREGRESSION (r169105): Crash in selection
abucur@adobe.com [Wed, 23 Jul 2014 07:52:10 +0000 (07:52 +0000)]
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303

Reviewed by David Hyatt.

Source/WebCore:

When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.

To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.

Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.

Test: fast/regions/selection/crash-deselect.html

* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
* rendering/RenderSelectionInfo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::setSubtreeSelection): Deleted.
* rendering/RenderView.h:
* rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
* rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

LayoutTests:

Added test for the crash that occurred in some cases when selecting.

* fast/regions/selection/crash-deselect-expected.txt: Added.
* fast/regions/selection/crash-deselect.html: Added.

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

5 years ago[EFL] EWebKit2.h should contain version information
ryuan.choi@samsung.com [Wed, 23 Jul 2014 07:21:35 +0000 (07:21 +0000)]
[EFL] EWebKit2.h should contain version information
https://bugs.webkit.org/show_bug.cgi?id=135189

Reviewed by Gyuyoung Kim.

Generate EWebKit2.h to contain the version information.

* PlatformEfl.cmake:
* UIProcess/API/efl/EWebKit2.h.in: Renamed from Source/WebKit2/UIProcess/API/efl/EWebKit2.h.

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

5 years ago[EFL] Do not generate forwarding header for ewk headers
ryuan.choi@samsung.com [Wed, 23 Jul 2014 07:19:00 +0000 (07:19 +0000)]
[EFL] Do not generate forwarding header for ewk headers
https://bugs.webkit.org/show_bug.cgi?id=135147

Reviewed by Gyuyoung Kim.

Source/WebKit2:
Only EWebKit2.h and ewk_text_checker.h are generated as forwarding header.
This is unnecessary.

* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
* UIProcess/API/efl/tests/test_ewk2_context_menu.cpp:
* UIProcess/API/efl/tests/test_ewk2_window_features.cpp:
* UIProcess/efl/TextCheckerClientEfl.h:

Tools:
* WebKitTestRunner/EventSenderProxy.h:

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

5 years ago[EFL] Build fix after the [ftlopt] branch merge.
llango.u-szeged@partner.samsung.com [Wed, 23 Jul 2014 07:08:03 +0000 (07:08 +0000)]
[EFL] Build fix after the [ftlopt] branch merge.

Reviewed by Csaba Osztrogonác.

* dfg/DFGBranchDirection.h:
(JSC::DFG::branchDirectionToString):
* dfg/DFGStructureClobberState.h:
(JSC::DFG::merge):

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

5 years agoThis test is slow so we shouldn't run it in the slower variants (like ftl-eager/dfg...
fpizlo@apple.com [Wed, 23 Jul 2014 06:24:26 +0000 (06:24 +0000)]
This test is slow so we shouldn't run it in the slower variants (like ftl-eager/dfg-eager).

* js/regress/script-tests/getter-richards.js:

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

5 years agoUnreviewed, rolling out r171366.
commit-queue@webkit.org [Wed, 23 Jul 2014 06:02:58 +0000 (06:02 +0000)]
Unreviewed, rolling out r171366.
https://bugs.webkit.org/show_bug.cgi?id=135190

Broke three API tests (Requested by ap on #webkit).

Reverted changeset:

"REGRESSION (r171239): Much more time spent taking snapshots
during the PLT"
https://bugs.webkit.org/show_bug.cgi?id=135177
http://trac.webkit.org/changeset/171366

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

5 years ago[Win] Build fix for bot.
bfulgham@apple.com [Wed, 23 Jul 2014 05:18:09 +0000 (05:18 +0000)]
[Win] Build fix for bot.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Declare 'wvtt' locally, rather
than relying on potentially unavailable declaration.

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

5 years ago[Win] Build fix after r171370.
bfulgham@apple.com [Wed, 23 Jul 2014 05:16:24 +0000 (05:16 +0000)]
[Win] Build fix after r171370.

* WebCoreSupport/WebEditorClient.h: Add override
for new 'overflowScrollPositionChanged'.

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

5 years agoBuild fix for non-clang compile.
bfulgham@apple.com [Wed, 23 Jul 2014 04:58:08 +0000 (04:58 +0000)]
Build fix for non-clang compile.

* jsc.cpp:
(WTF::RuntimeArray::put): Remove incorrect return statement
I added.

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

5 years agoBuild fix for non-clang compile.
bfulgham@apple.com [Wed, 23 Jul 2014 04:53:54 +0000 (04:53 +0000)]
Build fix for non-clang compile.

* jsc.cpp:
(WTF::RuntimeArray::deleteProperty): Need (fake) return
value when NO_RETURN_DUE_TO_CRASH is not defined.

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

5 years ago[Win] Build fix for Windows bots
bfulgham@apple.com [Wed, 23 Jul 2014 04:40:55 +0000 (04:40 +0000)]
[Win] Build fix for Windows bots

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Provide missing
structure definition when needed by bot.

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

5 years agoMerge r169628 from ftlopt.
fpizlo@apple.com [Wed, 23 Jul 2014 04:33:37 +0000 (04:33 +0000)]
Merge r169628 from ftlopt.

    2014-06-04  Matthew Mirman  <mmirman@apple.com>

    Added system for inlining native functions via the FTL.
    https://bugs.webkit.org/show_bug.cgi?id=131515

    Reviewed by Filip Pizlo.

    Also fixed the build to not compress the bitcode and to
    include all of the relevant runtime. With GCC_GENERATE_DEBUGGING_SYMBOLS = NO,
    the produced bitcode files are a 100th the size they were before.
    Now we can include all of the relevant runtime files with only a 3mb overhead.
    This is the same overhead as for two compressed files before,
    but done more efficiently (on both ends) and with less code.

    Deciding whether to inline native functions is left up to LLVM.
    The entire module containing the function is linked into the current
    compiled JS so that inlining the native functions shouldn't make them smaller.

    Rather than loading Runtime.symtbl at runtime FTLState.cpp now generates a file
    InlineRuntimeSymbolTable.h which statically builds the symbol table hash table.

    * JavaScriptCore.xcodeproj/project.pbxproj: Added back runtime files to compile.
    * build-symbol-table-index.py: Changed bitcode suffix.
    Added inclusion of only tested symbols.
    Added output to InlineRuntimeSymbolTable.h.
    * build-symbol-table-index.sh: Changed bitcode suffix.
    * copy-llvm-ir-to-derived-sources.sh: Removed gzip compression.
    * tested-symbols.symlst: Added.
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::handleCall):
    Now sets the knownFunction of the call node if such a function exists
    and emits a check that during runtime the callee is in fact known.
    * dfg/DFGNode.h:
    Added functions to set the known function of a call node.
    (JSC::DFG::Node::canBeKnownFunction): Added.
    (JSC::DFG::Node::hasKnownFunction): Added.
    (JSC::DFG::Node::knownFunction): Added.
    (JSC::DFG::Node::giveKnownFunction): Added.
    * ftl/FTLAbbreviatedTypes.h: Added a typedef for LLVMMemoryBufferRef
    * ftl/FTLAbbreviations.h: Added some abbreviations.
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Added. Hardcoded threshold to 275.
    (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Added.
    (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Added.
    (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Added.
    (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
    Added call to possiblyCompileInlineableNativeCall
    * ftl/FTLOutput.h:
    (JSC::FTL::Output::allocaName):  Added. Useful for debugging.
    * ftl/FTLState.cpp:
    (JSC::FTL::State::State): Added an include for InlineRuntimeSymbolTable.h
    * ftl/FTLState.h: Added symbol table hash table.
    * ftl/FTLCompile.cpp:
    (JSC::FTL::compile): Added inlining and dead function elimination passes.
    * heap/HandleStack.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
    * llvm/InitializeLLVMMac.mm: Deleted.
    * llvm/InitializeLLVMMac.cpp: Added.
    * llvm/LLVMAPIFunctions.h: Added macros to include Bitcode parsing and linking functions.
    * llvm/LLVMHeaders.h: Added includes for Bitcode parsing and linking.
    * runtime/BundlePath.h: Added.
    * runtime/BundlePath.mm: Added.
    * runtime/DateInstance.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
    * runtime/DateInstance.h: ditto.
    * runtime/DateConversion.h: ditto.
    * runtime/ExceptionHelpers.h: ditto.
    * runtime/JSCJSValue.h: ditto.
    * runtime/JSArray.h: ditto.
    * runtime/JSDateMath.h: ditto.
    * runtime/JSObject.h: ditto.
    * runtime/JSObject.h: ditto.
    * runtime/RegExp.h: ditto.
    * runtime/Structure.h: ditto.
    * runtime/Options.h:  Added maximumLLVMInstructionCountForNativeInlining.

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

5 years agoArray.concat() should work on runtime arrays too.
mark.lam@apple.com [Wed, 23 Jul 2014 04:18:35 +0000 (04:18 +0000)]
Array.concat() should work on runtime arrays too.
<https://webkit.org/b/135179>

Reviewed by Geoffrey Garen.

* jsc.cpp:
(WTF::RuntimeArray::create):
(WTF::RuntimeArray::~RuntimeArray):
(WTF::RuntimeArray::destroy):
(WTF::RuntimeArray::getOwnPropertySlot):
(WTF::RuntimeArray::getOwnPropertySlotByIndex):
(WTF::RuntimeArray::put):
(WTF::RuntimeArray::deleteProperty):
(WTF::RuntimeArray::getLength):
(WTF::RuntimeArray::createPrototype):
(WTF::RuntimeArray::createStructure):
(WTF::RuntimeArray::finishCreation):
(WTF::RuntimeArray::RuntimeArray):
(WTF::RuntimeArray::lengthGetter):
(GlobalObject::finishCreation):
(functionCreateRuntimeArray):
- Added support to create a runtime array for testing purpose.
* runtime/ArrayPrototype.cpp:
(JSC::getLength):
- Added fast case for when the array object is a JSArray.
(JSC::arrayProtoFuncJoin):
- Added a needed but missing exception check.
(JSC::arrayProtoFuncConcat):
- Use getLength() to compute the array length instead of assuming that
  the array is a JSArray instance.
* tests/stress/regexp-matches-array.js: Added.
(testArrayConcat):
* tests/stress/runtime-array.js: Added.
(testArrayConcat):

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

5 years ago[Win] Build fix for EWS bots.
bfulgham@apple.com [Wed, 23 Jul 2014 03:52:51 +0000 (03:52 +0000)]
[Win] Build fix for EWS bots.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Forward declare
structure definition.

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

5 years agoFix Windows (return a value!)
bfulgham@apple.com [Wed, 23 Jul 2014 03:39:55 +0000 (03:39 +0000)]
Fix Windows (return a value!)

* jsc.cpp:
(functionQuit): Satisfy compiler's need for
a return value.

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

5 years agoFix Windows (sleep -> Sleep)
bfulgham@apple.com [Wed, 23 Jul 2014 03:29:23 +0000 (03:29 +0000)]
Fix Windows (sleep -> Sleep)

* jsc.cpp:
(WTF::jscExit):

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

5 years ago[Win] Fix Crash when handling Legible Output callbacks
bfulgham@apple.com [Wed, 23 Jul 2014 03:19:23 +0000 (03:19 +0000)]
[Win] Fix Crash when handling Legible Output callbacks
https://bugs.webkit.org/show_bug.cgi?id=134946

Reviewed by Dean Jackson.

Relanding after adding fixes to support build bots.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
Windows-specific 'ASSERT_NOT_REACHED' code path.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Added.
(WebCore::AVFWrapper::createPlayerItem): Updated to request native
samples from AVFoundationCF.

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

5 years agoReduce the size of the root WebContent sandbox profile
oliver@apple.com [Wed, 23 Jul 2014 02:37:51 +0000 (02:37 +0000)]
Reduce the size of the root WebContent sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135182
<rdar://problem/17739108>

Reviewed by Alexey Proskuryakov.

Switch from apple-ui-app to uikit-app as the root of the webcontent
profile.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 years agoCopying and pasting trivial H2 content causes a crash in firstPositionInNode
mmaxfield@apple.com [Wed, 23 Jul 2014 02:19:55 +0000 (02:19 +0000)]
Copying and pasting trivial H2 content causes a crash in firstPositionInNode
https://bugs.webkit.org/show_bug.cgi?id=134897

Reviewed by Ryosuke Niwa.

Source/WebCore:
ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder() attempts
to move pasted headings out of existed headings, with out regard to if the existing
heading is the contenteditable root.

Test: editing/pasteboard/heading-crash.html

* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):

LayoutTests:
Copy and paste text from one heading to another. Make sure there is no crash.

* editing/pasteboard/heading-crash-expected.txt: Added.
* editing/pasteboard/heading-crash.html: Added.

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

5 years agoFix Windows.
fpizlo@apple.com [Wed, 23 Jul 2014 02:19:26 +0000 (02:19 +0000)]
Fix Windows.

* jsc.cpp:
(WTF::jscExit):

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

5 years agoFix 32-bit.
fpizlo@apple.com [Wed, 23 Jul 2014 01:43:35 +0000 (01:43 +0000)]
Fix 32-bit.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

5 years agoMerge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from...
fpizlo@apple.com [Wed, 23 Jul 2014 01:19:50 +0000 (01:19 +0000)]
Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt.

Source/JavaScriptCore:

Note that r169753 is merged out of order because it fixes a bug in r169588.

    2014-06-10  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] Structure::dfgShouldWatchIfPossible() is unsound
    https://bugs.webkit.org/show_bug.cgi?id=133624

    Reviewed by Mark Hahnenberg.

    * runtime/Structure.h:
    (JSC::Structure::dfgShouldWatchIfPossible): Make it sound and add some verbiage.

    2014-06-04  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] AI should be able track structure sets larger than 1
    https://bugs.webkit.org/show_bug.cgi?id=128073

    Reviewed by Oliver Hunt.

    This makes two major changes to how AI (abstract interpreter) proves that a value has
    some structure:

    - StructureAbstractValue can now track an arbitrary number of structures. A set whose
      size is greater than one means that the value may have any of the structures, and we
      don't know which - but we do know that it cannot be any structure not in the set. The
      structure abstract value can still be TOP, which means the set of all structures. We
      artificially limit the set size to StructureAbstractValue::polymorphismLimit to guard
      memory explosion on pathological programs. This limit is big enough that it wouldn't
      kick in for normal code, since we have other heuristics that limit the number of
      structures that we would allow an inline cache to know about.

    - We eagerly set watchpoints on all watchable structures and then we assume that
      watchable structures are being watched, and that the watchpoint will jettison the code.
      This allows tracking of watchable structures to be far simpler than before. Previously,
      a structure being tracked as "future possible" was predicated on it being watchable but
      we might not actually watch it. This makes algebra over sets of future possible
      structures quite weird. But watching all watchable structures means that we simple say
      that a structure set can be in the following states: unclobbered, which means it's just
      a set of structures and it doesn't matter what is watchable or what isn't because we've
      proven that the value must have one of these structures right now; and clobbered, which
      means that we have a set of structures, plus all possible structures temporarily, with
      invalidation removing the "plus all possible structures". Clobbering a set means that
      if any of its structures are unwatchable, the set just becomes TOP; but if all
      structures in the set are watchable then we just set the clobbered bit to add the "plus
      all possible structures temporarily" thing. This precisely tracks the exact meaning of
      watchability and invalidation points.

    Slight SunSpider slow-down, neutral on Octane, slight AsmBench speed-up. I believe that
    we will ultimately undo the SunSpider slow-down by making further improvements to the set
    representation. I believe that Octane perfromance will ultimately improve once we remove
    remaining singleton special-cases. The ultimate goal of this is to remove the need to
    try quite so desperately hard to make everything monomorphic as we do currently.

    * CMakeLists.txt:
    * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * bytecode/StructureSet.cpp:
    (JSC::StructureSet::clear):
    (JSC::StructureSet::remove):
    (JSC::StructureSet::filter):
    (JSC::StructureSet::copyFromOutOfLine):
    (JSC::StructureSet::StructureSet): Deleted.
    (JSC::StructureSet::operator=): Deleted.
    (JSC::StructureSet::copyFrom): Deleted.
    * bytecode/StructureSet.h:
    (JSC::StructureSet::StructureSet):
    (JSC::StructureSet::operator=):
    (JSC::StructureSet::isEmpty):
    (JSC::StructureSet::genericFilter):
    (JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine):
    (JSC::StructureSet::ContainsOutOfLine::operator()):
    (JSC::StructureSet::copyFrom):
    (JSC::StructureSet::deleteStructureListIfNecessary):
    (JSC::StructureSet::setEmpty):
    (JSC::StructureSet::getReservedFlag):
    (JSC::StructureSet::setReservedFlag):
    * dfg/DFGAbstractInterpreter.h:
    (JSC::DFG::AbstractInterpreter::setBuiltInConstant):
    * dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberCapturedVars):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberStructures):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::setDidClobber):
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):
    * dfg/DFGAbstractValue.cpp:
    (JSC::DFG::AbstractValue::observeTransitions):
    (JSC::DFG::AbstractValue::setMostSpecific):
    (JSC::DFG::AbstractValue::set):
    (JSC::DFG::AbstractValue::filter):
    (JSC::DFG::AbstractValue::shouldBeClear):
    (JSC::DFG::AbstractValue::normalizeClarity):
    (JSC::DFG::AbstractValue::checkConsistency):
    (JSC::DFG::AbstractValue::assertIsWatched):
    (JSC::DFG::AbstractValue::dumpInContext):
    (JSC::DFG::AbstractValue::setFuturePossibleStructure): Deleted.
    * dfg/DFGAbstractValue.h:
    (JSC::DFG::AbstractValue::clear):
    (JSC::DFG::AbstractValue::clobberStructures):
    (JSC::DFG::AbstractValue::clobberStructuresFor):
    (JSC::DFG::AbstractValue::observeInvalidationPoint):
    (JSC::DFG::AbstractValue::observeInvalidationPointFor):
    (JSC::DFG::AbstractValue::observeTransition):
    (JSC::DFG::AbstractValue::TransitionObserver::TransitionObserver):
    (JSC::DFG::AbstractValue::TransitionObserver::operator()):
    (JSC::DFG::AbstractValue::TransitionsObserver::TransitionsObserver):
    (JSC::DFG::AbstractValue::TransitionsObserver::operator()):
    (JSC::DFG::AbstractValue::isHeapTop):
    (JSC::DFG::AbstractValue::setType):
    (JSC::DFG::AbstractValue::operator==):
    (JSC::DFG::AbstractValue::merge):
    (JSC::DFG::AbstractValue::validate):
    (JSC::DFG::AbstractValue::hasClobberableState):
    (JSC::DFG::AbstractValue::assertIsWatched):
    (JSC::DFG::AbstractValue::observeIndexingTypeTransition):
    (JSC::DFG::AbstractValue::makeTop):
    (JSC::DFG::AbstractValue::bestProvenStructure): Deleted.
    * dfg/DFGAllocator.h:
    * dfg/DFGArgumentsSimplificationPhase.cpp:
    (JSC::DFG::ArgumentsSimplificationPhase::run):
    * dfg/DFGArrayMode.cpp:
    (JSC::DFG::ArrayMode::alreadyChecked):
    * dfg/DFGAtTailAbstractState.h:
    (JSC::DFG::AtTailAbstractState::structureClobberState):
    (JSC::DFG::AtTailAbstractState::setStructureClobberState):
    (JSC::DFG::AtTailAbstractState::setFoundConstants):
    (JSC::DFG::AtTailAbstractState::haveStructures): Deleted.
    (JSC::DFG::AtTailAbstractState::setHaveStructures): Deleted.
    * dfg/DFGBasicBlock.cpp:
    (JSC::DFG::BasicBlock::BasicBlock):
    * dfg/DFGBasicBlock.h:
    * dfg/DFGBranchDirection.h:
    (JSC::DFG::branchDirectionToString):
    (WTF::printInternal):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::handlePutById):
    * dfg/DFGCFAPhase.cpp:
    (JSC::DFG::CFAPhase::performBlockCFA):
    * dfg/DFGCSEPhase.cpp:
    (JSC::DFG::CSEPhase::checkStructureElimination):
    (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
    (JSC::DFG::CSEPhase::performNodeCSE):
    * dfg/DFGClobberize.h:
    (JSC::DFG::clobberize):
    * dfg/DFGCommon.cpp:
    (JSC::DFG::startCrashing):
    (JSC::DFG::isCrashing):
    * dfg/DFGCommon.h:
    * dfg/DFGCommonData.cpp:
    (JSC::DFG::CommonData::notifyCompilingStructureTransition):
    * dfg/DFGConstantFoldingPhase.cpp:
    (JSC::DFG::ConstantFoldingPhase::foldConstants):
    (JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
    (JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
    (JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
    * dfg/DFGDesiredWatchpoints.cpp:
    (JSC::DFG::DesiredWatchpoints::consider):
    (JSC::DFG::DesiredWatchpoints::addLazily): Deleted.
    * dfg/DFGDesiredWatchpoints.h:
    (JSC::DFG::GenericDesiredWatchpoints::reallyAdd):
    (JSC::DFG::GenericDesiredWatchpoints::areStillValid):
    (JSC::DFG::GenericDesiredWatchpoints::isWatched):
    (JSC::DFG::DesiredWatchpoints::isWatched):
    (JSC::DFG::WatchpointForGenericWatchpointSet::WatchpointForGenericWatchpointSet): Deleted.
    (JSC::DFG::GenericDesiredWatchpoints::addLazily): Deleted.
    (JSC::DFG::GenericDesiredWatchpoints::isStillValid): Deleted.
    (JSC::DFG::GenericDesiredWatchpoints::shouldAssumeMixedState): Deleted.
    (JSC::DFG::GenericDesiredWatchpoints::isValidOrMixed): Deleted.
    (JSC::DFG::DesiredWatchpoints::isStillValid): Deleted.
    (JSC::DFG::DesiredWatchpoints::shouldAssumeMixedState): Deleted.
    (JSC::DFG::DesiredWatchpoints::isValidOrMixed): Deleted.
    * dfg/DFGDoesGC.cpp:
    (JSC::DFG::doesGC):
    * dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    (JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):
    (JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
    * dfg/DFGGraph.cpp:
    (JSC::DFG::Graph::~Graph):
    (JSC::DFG::Graph::dump):
    (JSC::DFG::Graph::dumpBlockHeader):
    (JSC::DFG::Graph::tryGetFoldableView):
    (JSC::DFG::Graph::visitChildren):
    (JSC::DFG::Graph::assertIsWatched):
    (JSC::DFG::Graph::handleAssertionFailure):
    * dfg/DFGGraph.h:
    (JSC::DFG::Graph::convertToConstant):
    (JSC::DFG::Graph::masqueradesAsUndefinedWatchpointIsStillValid):
    (JSC::DFG::Graph::addStructureTransitionData): Deleted.
    * dfg/DFGInPlaceAbstractState.cpp:
    (JSC::DFG::InPlaceAbstractState::beginBasicBlock):
    (JSC::DFG::InPlaceAbstractState::initialize):
    (JSC::DFG::InPlaceAbstractState::endBasicBlock):
    (JSC::DFG::InPlaceAbstractState::reset):
    (JSC::DFG::InPlaceAbstractState::merge):
    * dfg/DFGInPlaceAbstractState.h:
    (JSC::DFG::InPlaceAbstractState::structureClobberState):
    (JSC::DFG::InPlaceAbstractState::setStructureClobberState):
    (JSC::DFG::InPlaceAbstractState::setFoundConstants):
    (JSC::DFG::InPlaceAbstractState::haveStructures): Deleted.
    (JSC::DFG::InPlaceAbstractState::setHaveStructures): Deleted.
    * dfg/DFGLivenessAnalysisPhase.cpp:
    (JSC::DFG::LivenessAnalysisPhase::run):
    * dfg/DFGNode.h:
    (JSC::DFG::Node::hasTransition):
    (JSC::DFG::Node::transition):
    (JSC::DFG::Node::hasStructure):
    (JSC::DFG::StructureTransitionData::StructureTransitionData): Deleted.
    (JSC::DFG::Node::convertToStructureTransitionWatchpoint): Deleted.
    (JSC::DFG::Node::hasStructureTransitionData): Deleted.
    (JSC::DFG::Node::structureTransitionData): Deleted.
    * dfg/DFGNodeType.h:
    * dfg/DFGPlan.cpp:
    (JSC::DFG::Plan::compileInThreadImpl):
    * dfg/DFGPredictionPropagationPhase.cpp:
    (JSC::DFG::PredictionPropagationPhase::propagate):
    * dfg/DFGSafeToExecute.h:
    (JSC::DFG::safeToExecute):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
    (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
    * dfg/DFGSpeculativeJIT.h:
    (JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):
    * dfg/DFGSpeculativeJIT32_64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * dfg/DFGSpeculativeJIT64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * dfg/DFGStructureAbstractValue.cpp: Added.
    (JSC::DFG::StructureAbstractValue::assertIsWatched):
    (JSC::DFG::StructureAbstractValue::clobber):
    (JSC::DFG::StructureAbstractValue::observeTransition):
    (JSC::DFG::StructureAbstractValue::observeTransitions):
    (JSC::DFG::StructureAbstractValue::add):
    (JSC::DFG::StructureAbstractValue::merge):
    (JSC::DFG::StructureAbstractValue::mergeSlow):
    (JSC::DFG::StructureAbstractValue::mergeNotTop):
    (JSC::DFG::StructureAbstractValue::filter):
    (JSC::DFG::StructureAbstractValue::filterSlow):
    (JSC::DFG::StructureAbstractValue::contains):
    (JSC::DFG::StructureAbstractValue::isSubsetOf):
    (JSC::DFG::StructureAbstractValue::isSupersetOf):
    (JSC::DFG::StructureAbstractValue::overlaps):
    (JSC::DFG::StructureAbstractValue::equalsSlow):
    (JSC::DFG::StructureAbstractValue::dumpInContext):
    (JSC::DFG::StructureAbstractValue::dump):
    * dfg/DFGStructureAbstractValue.h:
    (JSC::DFG::StructureAbstractValue::StructureAbstractValue):
    (JSC::DFG::StructureAbstractValue::operator=):
    (JSC::DFG::StructureAbstractValue::clear):
    (JSC::DFG::StructureAbstractValue::makeTop):
    (JSC::DFG::StructureAbstractValue::assertIsWatched):
    (JSC::DFG::StructureAbstractValue::observeInvalidationPoint):
    (JSC::DFG::StructureAbstractValue::top):
    (JSC::DFG::StructureAbstractValue::isClear):
    (JSC::DFG::StructureAbstractValue::isTop):
    (JSC::DFG::StructureAbstractValue::isNeitherClearNorTop):
    (JSC::DFG::StructureAbstractValue::isClobbered):
    (JSC::DFG::StructureAbstractValue::merge):
    (JSC::DFG::StructureAbstractValue::filter):
    (JSC::DFG::StructureAbstractValue::operator==):
    (JSC::DFG::StructureAbstractValue::size):
    (JSC::DFG::StructureAbstractValue::at):
    (JSC::DFG::StructureAbstractValue::operator[]):
    (JSC::DFG::StructureAbstractValue::onlyStructure):
    (JSC::DFG::StructureAbstractValue::isSupersetOf):
    (JSC::DFG::StructureAbstractValue::makeTopWhenThin):
    (JSC::DFG::StructureAbstractValue::setClobbered):
    (JSC::DFG::StructureAbstractValue::add): Deleted.
    (JSC::DFG::StructureAbstractValue::addAll): Deleted.
    (JSC::DFG::StructureAbstractValue::contains): Deleted.
    (JSC::DFG::StructureAbstractValue::isSubsetOf): Deleted.
    (JSC::DFG::StructureAbstractValue::doesNotContainAnyOtherThan): Deleted.
    (JSC::DFG::StructureAbstractValue::isClearOrTop): Deleted.
    (JSC::DFG::StructureAbstractValue::last): Deleted.
    (JSC::DFG::StructureAbstractValue::speculationFromStructures): Deleted.
    (JSC::DFG::StructureAbstractValue::isValidOffset): Deleted.
    (JSC::DFG::StructureAbstractValue::hasSingleton): Deleted.
    (JSC::DFG::StructureAbstractValue::singleton): Deleted.
    (JSC::DFG::StructureAbstractValue::dumpInContext): Deleted.
    (JSC::DFG::StructureAbstractValue::dump): Deleted.
    (JSC::DFG::StructureAbstractValue::topValue): Deleted.
    * dfg/DFGStructureClobberState.h: Added.
    (JSC::DFG::merge):
    (WTF::printInternal):
    * dfg/DFGTransition.cpp: Added.
    (JSC::DFG::Transition::dumpInContext):
    (JSC::DFG::Transition::dump):
    * dfg/DFGTransition.h: Added.
    (JSC::DFG::Transition::Transition):
    * dfg/DFGTypeCheckHoistingPhase.cpp:
    (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
    (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
    * dfg/DFGWatchableStructureWatchingPhase.cpp: Added.
    (JSC::DFG::WatchableStructureWatchingPhase::WatchableStructureWatchingPhase):
    (JSC::DFG::WatchableStructureWatchingPhase::run):
    (JSC::DFG::WatchableStructureWatchingPhase::tryWatch):
    (JSC::DFG::performWatchableStructureWatching):
    * dfg/DFGWatchableStructureWatchingPhase.h: Added.
    * dfg/DFGWatchpointCollectionPhase.cpp:
    (JSC::DFG::WatchpointCollectionPhase::handle):
    (JSC::DFG::WatchpointCollectionPhase::handleEdge): Deleted.
    * ftl/FTLCapabilities.cpp:
    (JSC::FTL::canCompile):
    * ftl/FTLIntrinsicRepository.h:
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::ftlUnreachable):
    (JSC::FTL::LowerDFGToLLVM::createPhiVariables):
    (JSC::FTL::LowerDFGToLLVM::compileBlock):
    (JSC::FTL::LowerDFGToLLVM::compileNode):
    (JSC::FTL::LowerDFGToLLVM::compileUpsilon):
    (JSC::FTL::LowerDFGToLLVM::compilePhi):
    (JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
    (JSC::FTL::LowerDFGToLLVM::compileValueRep):
    (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
    (JSC::FTL::LowerDFGToLLVM::compileGetArgument):
    (JSC::FTL::LowerDFGToLLVM::compileGetLocal):
    (JSC::FTL::LowerDFGToLLVM::compileSetLocal):
    (JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
    (JSC::FTL::LowerDFGToLLVM::compileArithMul):
    (JSC::FTL::LowerDFGToLLVM::compileArithDiv):
    (JSC::FTL::LowerDFGToLLVM::compileArithMod):
    (JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
    (JSC::FTL::LowerDFGToLLVM::compileArithAbs):
    (JSC::FTL::LowerDFGToLLVM::compileArithNegate):
    (JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
    (JSC::FTL::LowerDFGToLLVM::compilePutStructure):
    (JSC::FTL::LowerDFGToLLVM::compileGetById):
    (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentsLength):
    (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
    (JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
    (JSC::FTL::LowerDFGToLLVM::compileGetByVal):
    (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
    (JSC::FTL::LowerDFGToLLVM::compileArrayPush):
    (JSC::FTL::LowerDFGToLLVM::compileArrayPop):
    (JSC::FTL::LowerDFGToLLVM::compileNewArray):
    (JSC::FTL::LowerDFGToLLVM::compileNewArrayBuffer):
    (JSC::FTL::LowerDFGToLLVM::compileAllocatePropertyStorage):
    (JSC::FTL::LowerDFGToLLVM::compileReallocatePropertyStorage):
    (JSC::FTL::LowerDFGToLLVM::compileToString):
    (JSC::FTL::LowerDFGToLLVM::compileMakeRope):
    (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
    (JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
    (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
    (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
    (JSC::FTL::LowerDFGToLLVM::compileSwitch):
    (JSC::FTL::LowerDFGToLLVM::compare):
    (JSC::FTL::LowerDFGToLLVM::boolify):
    (JSC::FTL::LowerDFGToLLVM::terminate):
    (JSC::FTL::LowerDFGToLLVM::lowInt32):
    (JSC::FTL::LowerDFGToLLVM::lowInt52):
    (JSC::FTL::LowerDFGToLLVM::opposite):
    (JSC::FTL::LowerDFGToLLVM::lowCell):
    (JSC::FTL::LowerDFGToLLVM::lowBoolean):
    (JSC::FTL::LowerDFGToLLVM::lowDouble):
    (JSC::FTL::LowerDFGToLLVM::lowJSValue):
    (JSC::FTL::LowerDFGToLLVM::speculate):
    (JSC::FTL::LowerDFGToLLVM::isArrayType):
    (JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
    (JSC::FTL::LowerDFGToLLVM::callCheck):
    (JSC::FTL::LowerDFGToLLVM::buildExitArguments):
    (JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
    (JSC::FTL::LowerDFGToLLVM::setInt52):
    (JSC::FTL::LowerDFGToLLVM::crash):
    (JSC::FTL::LowerDFGToLLVM::compileStructureTransitionWatchpoint): Deleted.
    * ftl/FTLOutput.cpp:
    (JSC::FTL::Output::crashNonTerminal): Deleted.
    * ftl/FTLOutput.h:
    (JSC::FTL::Output::crash): Deleted.
    * jit/JITOperations.h:
    * jsc.cpp:
    (WTF::jscExit):
    (functionQuit):
    (main):
    (printUsageStatement):
    (CommandLine::parseArguments):
    * runtime/Structure.h:
    (JSC::Structure::dfgShouldWatchIfPossible):
    (JSC::Structure::dfgShouldWatch):
    * tests/stress/arrayify-to-structure-contradiction.js: Added.
    (foo):
    * tests/stress/ftl-getmyargumentslength-inline.js: Added.
    (foo):
    * tests/stress/multi-put-by-offset-multiple-transitions.js: Added.
    (foo):
    (Foo):
    * tests/stress/throw-from-ftl-in-loop.js: Added.
    * tests/stress/throw-from-ftl.js: Added.
    (foo):

    2014-06-03  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] Unreviewed, roll out r169578. The build system needs some more love.

    * InlineRuntimeSymbolTable.h: Removed.
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * build-symbol-table-index.py:
    * build-symbol-table-index.sh:
    * copy-llvm-ir-to-derived-sources.sh:
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::handleCall):
    * dfg/DFGNode.h:
    (JSC::DFG::Node::canBeKnownFunction): Deleted.
    (JSC::DFG::Node::hasKnownFunction): Deleted.
    (JSC::DFG::Node::knownFunction): Deleted.
    (JSC::DFG::Node::giveKnownFunction): Deleted.
    * ftl/FTLAbbreviatedTypes.h:
    * ftl/FTLCompile.cpp:
    (JSC::FTL::compile):
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
    (JSC::FTL::LowerDFGToLLVM::lower):
    (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
    (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Deleted.
    (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Deleted.
    (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Deleted.
    (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Deleted.
    * ftl/FTLState.cpp:
    (JSC::FTL::State::State):
    * ftl/FTLState.h:
    * heap/HandleStack.h:
    * llvm/InitializeLLVM.h:
    * llvm/InitializeLLVMMac.cpp: Removed.
    * llvm/InitializeLLVMMac.mm: Added.
    (JSC::initializeLLVMImpl):
    * llvm/LLVMAPIFunctions.h:
    * llvm/LLVMHeaders.h:
    * runtime/BundlePath.h: Removed.
    * runtime/BundlePath.mm: Removed.
    * runtime/DateConversion.h:
    * runtime/DateInstance.h:
    * runtime/ExceptionHelpers.h:
    * runtime/JSArray.h:
    * runtime/JSCJSValue.h:
    (JSC::JSValue::toFloat):
    * runtime/JSDateMath.h:
    * runtime/JSObject.h:
    * runtime/JSWrapperObject.h:
    * runtime/Options.h:
    * runtime/RegExp.h:
    * runtime/StringObject.h:
    * runtime/Structure.h:
    * tested-symbols.symlst: Removed.

    2014-06-03  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] FTL native inlining tests take far too long
    https://bugs.webkit.org/show_bug.cgi?id=133498

    Unreviewed test gardening.

    Added a new exceptions test since the other one appears to not work.

    * tests/stress/ftl-library-exception.js:
    * tests/stress/ftl-library-inline-gettimezoneoffset.js: Added.
    (foo):
    * tests/stress/ftl-library-inlining-exceptions-dataview.js: Added.
    (foo):
    * tests/stress/ftl-library-inlining-exceptions.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-exceptions.js.
    * tests/stress/ftl-library-inlining-loops.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-loops.js.
    * tests/stress/ftl-library-inlining-random.js:
    * tests/stress/ftl-library-substring.js:

    2014-06-03  Matthew Mirman  <mmirman@apple.com>

    [ftlopt] Added system for inlining native functions via the FTL.
    https://bugs.webkit.org/show_bug.cgi?id=131515

    Reviewed by Filip Pizlo.

    Also fixed the build to not compress the bitcode and to
    include all of the relevant runtime. With GCC_GENERATE_DEBUGGING_SYMBOLS = NO,
    the produced bitcode files are a 100th the size they were before.
    Now we can include all of the relevant runtime files with only a 3mb overhead.
    This is the same overhead as for two compressed files before,
    but done more efficiently (on both ends) and with less code.

    Deciding whether to inline native functions is left up to LLVM.
    The entire module containing the function is linked into the current
    compiled JS so that inlining the native functions shouldn't make them smaller.

    Rather than loading Runtime.symtbl at runtime FTLState.cpp now includes a file
    InlineRuntimeSymbolTable.h which statically builds the symbol table hash table.
    Currently build-symbol-table-index.py updates this file from the
    contents of tested-symbols.symlst when done building as a matter of convenience.
    However, in order to include the new contents of the file in the build
    you'd need to build twice.  This will be fixed in future versions.

    * JavaScriptCore.xcodeproj/project.pbxproj: Added back runtime files to compile.
    * build-symbol-table-index.py: Changed bitcode suffix.
    Added inclusion of only tested symbols.
    Added output to InlineRuntimeSymbolTable.h.
    * build-symbol-table-index.sh: Changed bitcode suffix.
    * copy-llvm-ir-to-derived-sources.sh: Removed gzip compression.
    * tested-symbols.symlst: Added.
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::handleCall):
    Now sets the knownFunction of the call node if such a function exists
    and emits a check that during runtime the callee is in fact known.
    * dfg/DFGNode.h:
    Added functions to set the known function of a call node.
    (JSC::DFG::Node::canBeKnownFunction): Added.
    (JSC::DFG::Node::hasKnownFunction): Added.
    (JSC::DFG::Node::knownFunction): Added.
    (JSC::DFG::Node::giveKnownFunction): Added.
    * ftl/FTLAbbreviatedTypes.h: Added a typedef for LLVMMemoryBufferRef
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Added. Hardcoded threshold to 275.
    (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Added.
    (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Added.
    (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Added.
    (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
    Added call to possiblyCompileInlineableNativeCall
    * ftl/FTLOutput.h:
    (JSC::FTL::Output::allocaName):  Added. Useful for debugging.
    * ftl/FTLState.cpp:
    (JSC::FTL::State::State): Added an include for InlineRuntimeSymbolTable.h
    * ftl/FTLState.h: Added symbol table hash table.
    * ftl/FTLCompile.cpp:
    (JSC::FTL::compile): Added inlining and dead function elimination passes.
    * heap/HandleStack.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
    * InlineRuntimeSymbolTable.h: Added.
    * llvm/InitializeLLVMMac.mm: Deleted.
    * llvm/InitializeLLVMMac.cpp: Added.
    * llvm/LLVMAPIFunctions.h: Added macros to include Bitcode parsing and linking functions.
    * llvm/LLVMHeaders.h: Added includes for Bitcode parsing and linking.
    * runtime/BundlePath.h: Added.
    * runtime/BundlePath.mm: Added.
    * runtime/DateInstance.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
    * runtime/DateInstance.h: ditto.
    * runtime/DateConversion.h: ditto.
    * runtime/ExceptionHelpers.h: ditto.
    * runtime/JSCJSValue.h: ditto.
    * runtime/JSArray.h: ditto.
    * runtime/JSDateMath.h: ditto.
    * runtime/JSObject.h: ditto.
    * runtime/JSObject.h: ditto.
    * runtime/RegExp.h: ditto.
    * runtime/Structure.h: ditto.
    * runtime/Options.h:  Added maximumLLVMInstructionCountForNativeInlining.
    * tests/stress/ftl-library-inlining-random.js: Added.
    * tests/stress/ftl-library-substring.js: Added.

    2014-05-21  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] DFG::clobberize should be blind to the effects of GC
    https://bugs.webkit.org/show_bug.cgi?id=133166

    Reviewed by Goeffrey Garen.

    Move the computation of where GCs happen to DFG::doesGC().

    Large (>5x) speed-up on programs that do loop-invariant string concatenations.

    * CMakeLists.txt:
    * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * dfg/DFGAbstractHeap.h:
    * dfg/DFGClobberize.h:
    (JSC::DFG::clobberize):
    (JSC::DFG::clobberizeForAllocation): Deleted.
    * dfg/DFGDoesGC.cpp: Added.
    (JSC::DFG::doesGC):
    * dfg/DFGDoesGC.h: Added.
    * dfg/DFGStoreBarrierElisionPhase.cpp:
    (JSC::DFG::StoreBarrierElisionPhase::handleNode):
    (JSC::DFG::StoreBarrierElisionPhase::couldCauseGC): Deleted.

    2014-05-16  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] A StructureSet with one element should only require one word and no allocation
    https://bugs.webkit.org/show_bug.cgi?id=133014

    Reviewed by Oliver Hunt.

    This makes it more efficient to use StructureSet in situations where the common case is
    just one structure.

    I also took the opportunity to use the same set terminology we use in BitVector: merge,
    filter, exclude, contains, etc.

    Eventually, this will be used to implement StructureAbstractValue as well.

    * CMakeLists.txt:
    * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * bytecode/StructureSet.cpp: Added.
    (JSC::StructureSet::StructureSet):
    (JSC::StructureSet::operator=):
    (JSC::StructureSet::clear):
    (JSC::StructureSet::add):
    (JSC::StructureSet::remove):
    (JSC::StructureSet::contains):
    (JSC::StructureSet::merge):
    (JSC::StructureSet::filter):
    (JSC::StructureSet::exclude):
    (JSC::StructureSet::isSubsetOf):
    (JSC::StructureSet::overlaps):
    (JSC::StructureSet::operator==):
    (JSC::StructureSet::speculationFromStructures):
    (JSC::StructureSet::arrayModesFromStructures):
    (JSC::StructureSet::dumpInContext):
    (JSC::StructureSet::dump):
    (JSC::StructureSet::addOutOfLine):
    (JSC::StructureSet::containsOutOfLine):
    (JSC::StructureSet::copyFrom):
    (JSC::StructureSet::OutOfLineList::create):
    (JSC::StructureSet::OutOfLineList::destroy):
    * bytecode/StructureSet.h:
    (JSC::StructureSet::StructureSet):
    (JSC::StructureSet::~StructureSet):
    (JSC::StructureSet::onlyStructure):
    (JSC::StructureSet::isEmpty):
    (JSC::StructureSet::size):
    (JSC::StructureSet::at):
    (JSC::StructureSet::operator[]):
    (JSC::StructureSet::last):
    (JSC::StructureSet::OutOfLineList::list):
    (JSC::StructureSet::OutOfLineList::OutOfLineList):
    (JSC::StructureSet::deleteStructureListIfNecessary):
    (JSC::StructureSet::isThin):
    (JSC::StructureSet::pointer):
    (JSC::StructureSet::singleStructure):
    (JSC::StructureSet::structureList):
    (JSC::StructureSet::set):
    (JSC::StructureSet::clear): Deleted.
    (JSC::StructureSet::add): Deleted.
    (JSC::StructureSet::addAll): Deleted.
    (JSC::StructureSet::remove): Deleted.
    (JSC::StructureSet::contains): Deleted.
    (JSC::StructureSet::containsOnly): Deleted.
    (JSC::StructureSet::isSubsetOf): Deleted.
    (JSC::StructureSet::overlaps): Deleted.
    (JSC::StructureSet::singletonStructure): Deleted.
    (JSC::StructureSet::speculationFromStructures): Deleted.
    (JSC::StructureSet::arrayModesFromStructures): Deleted.
    (JSC::StructureSet::operator==): Deleted.
    (JSC::StructureSet::dumpInContext): Deleted.
    (JSC::StructureSet::dump): Deleted.
    * dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::emitPrototypeChecks):
    (JSC::DFG::ByteCodeParser::handleGetById):
    (JSC::DFG::ByteCodeParser::parseBlock):
    * dfg/DFGCSEPhase.cpp:
    (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
    * dfg/DFGNode.h:
    (JSC::DFG::Node::convertToStructureTransitionWatchpoint):
    * dfg/DFGTypeCheckHoistingPhase.cpp:
    (JSC::DFG::TypeCheckHoistingPhase::noticeStructureCheck):

Source/WTF:

    2014-06-04  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] AI should be able track structure sets larger than 1
    https://bugs.webkit.org/show_bug.cgi?id=128073

    Reviewed by Oliver Hunt.

    * wtf/Bag.h:
    (WTF::Bag::Node::Node):
    (WTF::Bag::add):

LayoutTests:

    2014-06-04  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] AI should be able track structure sets larger than 1
    https://bugs.webkit.org/show_bug.cgi?id=128073

    Reviewed by Oliver Hunt.

    * js/regress/get-by-id-bimorphic-check-structure-elimination-expected.txt: Added.
    * js/regress/get-by-id-bimorphic-check-structure-elimination-simple-expected.txt: Added.
    * js/regress/get-by-id-bimorphic-check-structure-elimination-simple.html: Added.
    * js/regress/get-by-id-bimorphic-check-structure-elimination.html: Added.
    * js/regress/get-by-id-check-structure-elimination-expected.txt: Added.
    * js/regress/get-by-id-check-structure-elimination.html: Added.
    * js/regress/get-by-id-quadmorphic-check-structure-elimination-simple-expected.txt: Added.
    * js/regress/get-by-id-quadmorphic-check-structure-elimination-simple.html: Added.
    * js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination-simple.js: Added.
    * js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination.js: Added.
    * js/regress/script-tests/get-by-id-check-structure-elimination.js: Added.
    * js/regress/script-tests/get-by-id-quadmorphic-check-structure-elimination-simple.js: Added.

    2014-06-03  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] FTL native inlining tests take far too long
    https://bugs.webkit.org/show_bug.cgi?id=133498

    Unreviewed test gardening.

    Move long-running tests that focus on correctness into JSC/tests/stress.
    Speed up the performance tests by reducing allocation and call overhead.

    * js/regress/ftl-library-inlining-exceptions-expected.txt: Removed.
    * js/regress/ftl-library-inlining-exceptions.html: Removed.
    * js/regress/ftl-library-inlining-folding-expected.txt: Removed.
    * js/regress/ftl-library-inlining-folding.html: Removed.
    * js/regress/ftl-library-inlining-loops-expected.txt: Removed.
    * js/regress/ftl-library-inlining-loops.html: Removed.
    * js/regress/script-tests/ftl-library-inlining-dataview.js:
    (foo): Deleted.
    * js/regress/script-tests/ftl-library-inlining-exceptions.js: Removed.
    * js/regress/script-tests/ftl-library-inlining-folding.js: Removed.
    * js/regress/script-tests/ftl-library-inlining-loops.js: Removed.
    * js/regress/script-tests/ftl-library-inlining.js:
    (foo): Deleted.

    2014-06-03  Matthew Mirman  <mmirman@apple.com>

    [ftlopt] Added system for inlining native functions via the FTL.
    https://bugs.webkit.org/show_bug.cgi?id=131515

    Reviewed by Filip Pizlo.

    Adds microbenchmarks.

    * js/regress/script-tests/ftl-library-inlining.js: Added.
    * js/regress/ftl-library-inlining-expected.txt: Added.
    * js/regress/ftl-library-inlining.html: Added.
    * js/regress/script-tests/ftl-library-inlining-dataview.js: Added.
    * js/regress/ftl-library-inlining-dataview-expected.txt: Added.
    * js/regress/ftl-library-inlining-dataview.html: Added.
    * js/regress/script-tests/ftl-library-inlining-exceptions.js: Added.
    * js/regress/ftl-library-inlining-exceptions-expected.txt: Added.
    * js/regress/ftl-library-inlining-exceptions.html: Added.
    * js/regress/script-tests/ftl-library-inlining-folding.js: Added.
    * js/regress/ftl-library-inlining-folding-expected.txt: Added.
    * js/regress/ftl-library-inlining-folding-expected.html: Added.
    * js/regress/script-tests/ftl-library-inlining-loops.js: Added.
    * js/regress/ftl-library-inlining-loops-expected.txt: Added.
    * js/regress/ftl-library-inlining-loops.html: Added.

    2014-05-21  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] DFG::clobberize should be blind to the effects of GC
    https://bugs.webkit.org/show_bug.cgi?id=133166

    Reviewed by Geoffrey Garen.

    * js/regress/hoist-make-rope-expected.txt: Added.
    * js/regress/hoist-make-rope.html: Added.
    * js/regress/script-tests/hoist-make-rope.js: Added.
    (foo):

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

5 years agoRemove dead APIs from TiledBackingStore
ryuan.choi@samsung.com [Wed, 23 Jul 2014 01:12:32 +0000 (01:12 +0000)]
Remove dead APIs from TiledBackingStore
https://bugs.webkit.org/show_bug.cgi?id=135158

Reviewed by Gyuyoung Kim.

setContentsFrozen and related code of TiledBackingStore are not used since Qt port is removed.

* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::setContentsScale):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::startTileBufferUpdateTimer):
(WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
(WebCore::TiledBackingStore::commitScaleChange): Deleted.
(WebCore::TiledBackingStore::isBackingStoreUpdatesSuspended): Deleted.
(WebCore::TiledBackingStore::isTileBufferUpdatesSuspended): Deleted.
(WebCore::TiledBackingStore::setContentsFrozen): Deleted.
* platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::contentsFrozen): Deleted.

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

5 years agoFix window-inactive css selectors when using querySelector.
commit-queue@webkit.org [Wed, 23 Jul 2014 01:01:55 +0000 (01:01 +0000)]
Fix window-inactive css selectors when using querySelector.
https://bugs.webkit.org/show_bug.cgi?id=135149

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-22
Reviewed by Tim Horton.

Source/WebCore:
Test: fast/selectors/querySelector-window-inactive.html

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
Removed default and implemented case PseudoClassWindowInactive.

LayoutTests:
* fast/selectors/querySelector-window-inactive-expected.txt: Added.
* fast/selectors/querySelector-window-inactive.html: Added.
* platform/wk2/TestExpectations:
Added querySelector-window-inactive.html to list of tests that do not work in WK2 because of setWindowIsKey.

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

5 years agoREGRESSION (r171016): Reproducible infinite spin selecting phone number
timothy_horton@apple.com [Wed, 23 Jul 2014 00:36:13 +0000 (00:36 +0000)]
REGRESSION (r171016): Reproducible infinite spin selecting phone number
https://bugs.webkit.org/show_bug.cgi?id=135183
<rdar://problem/17727342>

Reviewed by Ryosuke Niwa.

* editing/Editor.cpp:
(WebCore::Editor::scanRangeForTelephoneNumbers):
Make use of TextIterator::subrange, which knows how to make a subrange from character positions,
instead of assuming that our character positions translate directly to positions in the incoming range.
Make use of DocumentMarkerController::addMarker, which takes a range and applies the marker to
all text nodes inside the range as appropriate.
Fix naming of the shadowed 'length' local.
Fix a typo in the comment.

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

5 years ago[iOS] [OSX] Don't transcode WOFF on platforms that support it natively
mmaxfield@apple.com [Wed, 23 Jul 2014 00:35:27 +0000 (00:35 +0000)]
[iOS] [OSX] Don't transcode WOFF on platforms that support it natively
https://bugs.webkit.org/show_bug.cgi?id=134904

Reviewed by Andreas Kling.

No new tests because there is no behavior change.

* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData):

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

5 years agoUnreviewed build fix on EFL port after r171356.
jinwoo7.song@samsung.com [Wed, 23 Jul 2014 00:14:06 +0000 (00:14 +0000)]
Unreviewed build fix on EFL port after r171356.

Implement a dummy platformMediaCacheDirectory() to avoid undefined reference error.

* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformMediaCacheDirectory):

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

5 years agoUnreviewed build fix attempt on the EFL port after r171362.
ryuan.choi@samsung.com [Tue, 22 Jul 2014 23:52:08 +0000 (23:52 +0000)]
Unreviewed build fix attempt on the EFL port after r171362.

Build break because of -Werror=return-type

* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::makesCalls):

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

5 years ago[Win] Crash after plugin is unloaded.
commit-queue@webkit.org [Tue, 22 Jul 2014 23:33:09 +0000 (23:33 +0000)]
[Win] Crash after plugin is unloaded.
https://bugs.webkit.org/show_bug.cgi?id=119044

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-22
Reviewed by Darin Adler.

We need to invalidate all runtime objects when a plugin view is destroyed, in case the plugin is unloaded,
and one of these runtime objects accesses the plugin function table upon destruction afterwards, which will cause a crash.
If we use the weak pointer to the runtime object when invalidating, it will be null if it's in the WeakImpl::Dead state.
This means the runtime object will not be invalidated, possibly causing a crash if the plugin is unloaded.
It should be safe to use the raw pointer to the runtime object when invalidating, since finalized runtime objects
will be removed from the set of runtime objects in the method RootObject::finalize().

* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::invalidate): Make sure all runtime objects are invalidated by getting the raw runtime object pointer from the hash key.

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

5 years agoREGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track...
enrica@apple.com [Tue, 22 Jul 2014 23:28:37 +0000 (23:28 +0000)]
REGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track scrolling.
https://bugs.webkit.org/show_bug.cgi?id=135180
<rdar://problem/16721055>

Reviewed by Simon Fraser.

Source/WebCore:
AsyncScrollingCoordinator will force a selection update on iOS
when scrolling terminates in an overflow scroll.

* loader/EmptyClients.h:
* page/EditorClient.h:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
(WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):

Source/WebKit/mac:
* WebCoreSupport/WebEditorClient.h:

Source/WebKit2:
Adds notifications to the WKContentView to know when scrolling starts and ends
in an overflow scroll. When scrolling starts, we hide the selection and we restore
it when scrolling ends, though not before the selection information in the editor
state has been updated.
It also adds a new method to the EditorClient class to force the
selection update when scrolling is completed.

* UIProcess/PageClient.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndScroll):
* UIProcess/Scrolling/RemoteScrollingTree.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollWillStart):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollDidEnd):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::overflowScrollWillStartScroll):
(WebKit::PageClientImpl::overflowScrollDidEndScroll):
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _overflowScrollingWillBegin]):
(-[WKContentView _overflowScrollingDidEnd]):
(-[WKContentView _updateChangedSelection]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::overflowScrollWillStartScroll):
(WebKit::WebPageProxy::overflowScrollDidEndScroll):
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::updateSelection):

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

5 years ago[iOS][WK2] WebPageProxy should not do anything when responding to an animated resize...
benjamin@webkit.org [Tue, 22 Jul 2014 22:32:40 +0000 (22:32 +0000)]
[iOS][WK2] WebPageProxy should not do anything when responding to an animated resize is the page is not in a valid state
https://bugs.webkit.org/show_bug.cgi?id=135169
<rdar://problem/17740149>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-22
Reviewed by Tim Horton.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
Neither m_dynamicViewportSizeUpdateWaitingForTarget nor m_dynamicViewportSizeUpdateWaitingForLayerTreeCommit should
be modified if there is not WebProcess to respond to DynamicViewportSizeUpdate.

(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
We should not attempt to synchronize anything if the page was closed before the end of the dynamic viewport
update.

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

5 years agoJSLock release should only modify the AtomicStringTable if it modified in acquire
joepeck@webkit.org [Tue, 22 Jul 2014 22:09:34 +0000 (22:09 +0000)]
JSLock release should only modify the AtomicStringTable if it modified in acquire
https://bugs.webkit.org/show_bug.cgi?id=135143

Reviewed by Pratik Solanki.

* runtime/JSLock.cpp:
(JSC::JSLock::willDestroyVM):
(JSC::JSLock::willReleaseLock):
Only set the AtomicStringTable when there was a VM, to balance JSLock::didAcquireLock.

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

5 years agoREGRESSION (r171239): Much more time spent taking snapshots during the PLT
timothy_horton@apple.com [Tue, 22 Jul 2014 21:46:43 +0000 (21:46 +0000)]
REGRESSION (r171239): Much more time spent taking snapshots during the PLT
https://bugs.webkit.org/show_bug.cgi?id=135177
<rdar://problem/17764847>

Reviewed by Dan Bernstein.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
* WebProcess/WebPage/WebPage.h:
Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
Only send it when the current history item for the main frame changes.

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

5 years agoAdd accountsd access to network sandbox profile
oliver@apple.com [Tue, 22 Jul 2014 21:32:28 +0000 (21:32 +0000)]
Add accountsd access to network sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135176
<rdar://17656487>

Reviewed by Anders Carlsson.

This is available to the webcontent process already, but is also
needed for the networking process.

* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

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

5 years agoFix cloop build.
fpizlo@apple.com [Tue, 22 Jul 2014 21:30:48 +0000 (21:30 +0000)]
Fix cloop build.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeExitSiteData):

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

5 years agoRemove unused com.apple.webkit.* rules from profiles
oliver@apple.com [Tue, 22 Jul 2014 21:25:24 +0000 (21:25 +0000)]
Remove unused com.apple.webkit.* rules from profiles
https://bugs.webkit.org/show_bug.cgi?id=135174
<rdar://17755931>

Reviewed by Anders Carlsson.

We never send these rules so we should just remove use of them
from the profiles.

* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 years agoMerge r168635, r168780, r169005, r169014, and r169143 from ftlopt.
fpizlo@apple.com [Tue, 22 Jul 2014 21:08:50 +0000 (21:08 +0000)]
Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt.

    2014-05-20  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] DFG bytecode parser should turn GetById with nothing but a Getter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
    https://bugs.webkit.org/show_bug.cgi?id=133105

    Reviewed by Michael Saboff.

Source/JavaScriptCore:

    - GetByIdStatus now knows about getters and can report intelligent things about them.
      As is usually the case with how we do these things, GetByIdStatus knows more about
      getters than the DFG can actually handle: it'll report details about polymorphic
      getter calls even though the DFG won't be able to handle those. This is fine; the DFG
      will see those statuses and bail to a generic slow path.

    - The DFG::ByteCodeParser now knows how to set up and do handleCall() for a getter call.
      This can, and usually does, result in inlining of getters!

    - CodeOrigin and OSR exit know about inlined getter calls. When you OSR out of an
      inlined getter, we set the return PC to a getter return thunk that fixes up the stack.
      We use the usual offset-true-return-PC trick, where OSR exit places the true return PC
      of the getter's caller as a phony argument that only the thunk knows how to find.

    - Removed a bunch of dead monomorphic chain support from StructureStubInfo.

    - A large chunk of this change is dragging GetGetterSetterByOffset, GetGetter, and
      GetSetter through the DFG and FTL. GetGetterSetterByOffset is like GetByOffset except
      that we know that we're returning a GetterSetter cell. GetGetter and GetSetter extract
      the getter, or setter, from the GetterSetter.

    This is a ~2.5x speed-up on the getter microbenchmarks that we already had. So far none
    of the "real" benchmarks exercise getters enough for this to matter. But I noticed that
    some of the variants of the Richards benchmark in other languages - for example
    Wolczko's Java translation of a C++ translation of Deutsch's Smalltalk version - use
    getters and setters extensively. So, I created a getter/setter JavaScript version of
    Richards and put it in regress/script-tests/getter-richards.js. That sees about a 2.4x
    speed-up from this patch, which is very reassuring.

    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::printGetByIdCacheStatus):
    (JSC::CodeBlock::findStubInfo):
    * bytecode/CodeBlock.h:
    * bytecode/CodeOrigin.cpp:
    (WTF::printInternal):
    * bytecode/CodeOrigin.h:
    (JSC::InlineCallFrame::specializationKindFor):
    * bytecode/GetByIdStatus.cpp:
    (JSC::GetByIdStatus::computeFor):
    (JSC::GetByIdStatus::computeForStubInfo):
    (JSC::GetByIdStatus::makesCalls):
    (JSC::GetByIdStatus::computeForChain): Deleted.
    * bytecode/GetByIdStatus.h:
    (JSC::GetByIdStatus::makesCalls): Deleted.
    * bytecode/GetByIdVariant.cpp:
    (JSC::GetByIdVariant::~GetByIdVariant):
    (JSC::GetByIdVariant::GetByIdVariant):
    (JSC::GetByIdVariant::operator=):
    (JSC::GetByIdVariant::dumpInContext):
    * bytecode/GetByIdVariant.h:
    (JSC::GetByIdVariant::GetByIdVariant):
    (JSC::GetByIdVariant::callLinkStatus):
    * bytecode/PolymorphicGetByIdList.cpp:
    (JSC::GetByIdAccess::fromStructureStubInfo):
    (JSC::PolymorphicGetByIdList::from):
    * bytecode/SpeculatedType.h:
    * bytecode/StructureStubInfo.cpp:
    (JSC::StructureStubInfo::deref):
    (JSC::StructureStubInfo::visitWeakReferences):
    * bytecode/StructureStubInfo.h:
    (JSC::isGetByIdAccess):
    (JSC::StructureStubInfo::initGetByIdChain): Deleted.
    * dfg/DFGAbstractHeap.h:
    * dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::addCall):
    (JSC::DFG::ByteCodeParser::handleCall):
    (JSC::DFG::ByteCodeParser::handleInlining):
    (JSC::DFG::ByteCodeParser::handleGetByOffset):
    (JSC::DFG::ByteCodeParser::handleGetById):
    (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
    (JSC::DFG::ByteCodeParser::parse):
    * dfg/DFGCSEPhase.cpp:
    (JSC::DFG::CSEPhase::getGetterSetterByOffsetLoadElimination):
    (JSC::DFG::CSEPhase::getInternalFieldLoadElimination):
    (JSC::DFG::CSEPhase::performNodeCSE):
    (JSC::DFG::CSEPhase::getTypedArrayByteOffsetLoadElimination): Deleted.
    * dfg/DFGClobberize.h:
    (JSC::DFG::clobberize):
    * dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    * dfg/DFGJITCompiler.cpp:
    (JSC::DFG::JITCompiler::linkFunction):
    * dfg/DFGNode.h:
    (JSC::DFG::Node::hasStorageAccessData):
    * dfg/DFGNodeType.h:
    * dfg/DFGOSRExitCompilerCommon.cpp:
    (JSC::DFG::reifyInlinedCallFrames):
    * dfg/DFGPredictionPropagationPhase.cpp:
    (JSC::DFG::PredictionPropagationPhase::propagate):
    * dfg/DFGSafeToExecute.h:
    (JSC::DFG::safeToExecute):
    * dfg/DFGSpeculativeJIT32_64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * dfg/DFGSpeculativeJIT64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * ftl/FTLAbstractHeapRepository.cpp:
    * ftl/FTLAbstractHeapRepository.h:
    * ftl/FTLCapabilities.cpp:
    (JSC::FTL::canCompile):
    * ftl/FTLLink.cpp:
    (JSC::FTL::link):
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::LowerDFGToLLVM::compileNode):
    (JSC::FTL::LowerDFGToLLVM::compileGetGetter):
    (JSC::FTL::LowerDFGToLLVM::compileGetSetter):
    * jit/AccessorCallJITStubRoutine.h:
    * jit/JIT.cpp:
    (JSC::JIT::assertStackPointerOffset):
    (JSC::JIT::privateCompile):
    * jit/JIT.h:
    * jit/JITPropertyAccess.cpp:
    (JSC::JIT::emit_op_get_by_id):
    * jit/ThunkGenerators.cpp:
    (JSC::arityFixupGenerator):
    (JSC::baselineGetterReturnThunkGenerator):
    (JSC::baselineSetterReturnThunkGenerator):
    (JSC::arityFixup): Deleted.
    * jit/ThunkGenerators.h:
    * runtime/CommonSlowPaths.cpp:
    (JSC::setupArityCheckData):
    * tests/stress/exit-from-getter.js: Added.
    * tests/stress/poly-chain-getter.js: Added.
    (Cons):
    (foo):
    (test):
    * tests/stress/poly-chain-then-getter.js: Added.
    (Cons1):
    (Cons2):
    (foo):
    (test):
    * tests/stress/poly-getter-combo.js: Added.
    (Cons1):
    (Cons2):
    (foo):
    (test):
    (.test):
    * tests/stress/poly-getter-then-chain.js: Added.
    (Cons1):
    (Cons2):
    (foo):
    (test):
    * tests/stress/poly-getter-then-self.js: Added.
    (foo):
    (test):
    (.test):
    * tests/stress/poly-self-getter.js: Added.
    (foo):
    (test):
    (getter):
    * tests/stress/poly-self-then-getter.js: Added.
    (foo):
    (test):
    * tests/stress/weird-getter-counter.js: Added.
    (foo):
    (test):

    2014-05-17  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] Factor out how CallLinkStatus uses exit site data
    https://bugs.webkit.org/show_bug.cgi?id=133042

    Reviewed by Anders Carlsson.

    This makes it easier to use CallLinkStatus from clients that are calling into after
    already holding some of the relevant locks. This is necessary because we use a "one lock
    at a time" policy for CodeBlock locks: if you hold one then you're not allowed to acquire
    any of the others. So, any code that needs to lock multiple CodeBlock locks needs to sort
    of lock one, do some stuff, release it, then lock another, and then do more stuff. The
    exit site data corresponds to the stuff you do while holding the baseline lock, while the
    CallLinkInfo method corresponds to the stuff you do while holding the CallLinkInfo owner's
    lock.

    * bytecode/CallLinkStatus.cpp:
    (JSC::CallLinkStatus::computeFor):
    (JSC::CallLinkStatus::computeExitSiteData):
    (JSC::CallLinkStatus::computeDFGStatuses):
    * bytecode/CallLinkStatus.h:
    (JSC::CallLinkStatus::ExitSiteData::ExitSiteData):

    2014-05-17  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] InlineCallFrame::isCall should be an enumeration
    https://bugs.webkit.org/show_bug.cgi?id=133034

    Reviewed by Sam Weinig.

    Once we start inlining getters and setters, we'll want InlineCallFrame to be able to tell
    us that the inlined call was a getter call or a setter call. Initially I thought I would
    have a new field called "kind" that would have components NormalCall, GetterCall, and
    SetterCall. But that doesn't make sense, because for GetterCall and SetterCall, isCall
    would have to be true. Hence, It makes more sense to have one enumeration that is Call,
    Construct, GetterCall, or SetterCall. This patch is a first step towards this.

    It's interesting that isClosureCall should probably still be separate, since getter and
    setter inlining could inline closure calls.

    * bytecode/CodeBlock.h:
    (JSC::baselineCodeBlockForInlineCallFrame):
    * bytecode/CodeOrigin.cpp:
    (JSC::InlineCallFrame::dumpInContext):
    (WTF::printInternal):
    * bytecode/CodeOrigin.h:
    (JSC::InlineCallFrame::kindFor):
    (JSC::InlineCallFrame::specializationKindFor):
    (JSC::InlineCallFrame::InlineCallFrame):
    (JSC::InlineCallFrame::specializationKind):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
    * dfg/DFGOSRExitPreparation.cpp:
    (JSC::DFG::prepareCodeOriginForOSRExit):
    * runtime/Arguments.h:
    (JSC::Arguments::finishCreation):

    2014-05-13  Filip Pizlo  <fpizlo@apple.com>

    [ftlopt] DFG should not exit due to inadequate profiling coverage when it can trivially fill in the profiling coverage due to variable constant inference and the better prediction modeling of typed array GetByVals
    https://bugs.webkit.org/show_bug.cgi?id=132896

    Reviewed by Geoffrey Garen.

    This is a slight win on SunSpider, but it's meant to ultimately help us on
    embenchen/lua. We already do well on that benchmark but our convergence is slower than
    I'd like.

    * dfg/DFGArrayMode.cpp:
    (JSC::DFG::ArrayMode::refine):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::parseBlock):
    * dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    * dfg/DFGPredictionPropagationPhase.cpp:
    (JSC::DFG::PredictionPropagationPhase::propagate):

    2014-05-08  Filip Pizlo  <fpizlo@apple.com>

    jsSubstring() should be lazy
    https://bugs.webkit.org/show_bug.cgi?id=132556

    Reviewed by Andreas Kling.

    jsSubstring() is now lazy by using a special rope that is a substring instead of a
    concatenation. To make this patch super simple, we require that a substring's base is
    never a rope. Hence, when resolving a rope, we either go down a non-recursive substring
    path, or we go down a concatenation path which may see exactly one level of substrings in
    its fibers.

    This is up to a 50% speed-up on microbenchmarks and a 10% speed-up on Octane/regexp.

    Relanding this with assertion fixes.

    * heap/MarkedBlock.cpp:
    (JSC::MarkedBlock::specializedSweep):
    * runtime/JSString.cpp:
    (JSC::JSRopeString::visitFibers):
    (JSC::JSRopeString::resolveRopeInternal8):
    (JSC::JSRopeString::resolveRopeInternal16):
    (JSC::JSRopeString::clearFibers):
    (JSC::JSRopeString::resolveRope):
    (JSC::JSRopeString::resolveRopeSlowCase8):
    (JSC::JSRopeString::resolveRopeSlowCase):
    * runtime/JSString.h:
    (JSC::JSRopeString::finishCreation):
    (JSC::JSRopeString::append):
    (JSC::JSRopeString::create):
    (JSC::JSRopeString::offsetOfFibers):
    (JSC::JSRopeString::fiber):
    (JSC::JSRopeString::substringBase):
    (JSC::JSRopeString::substringOffset):
    (JSC::JSRopeString::notSubstringSentinel):
    (JSC::JSRopeString::substringSentinel):
    (JSC::JSRopeString::isSubstring):
    (JSC::JSRopeString::setIsSubstring):
    (JSC::jsSubstring):
    * runtime/RegExpMatchesArray.cpp:
    (JSC::RegExpMatchesArray::reifyAllProperties):
    * runtime/StringPrototype.cpp:
    (JSC::stringProtoFuncSubstring):

Source/WTF:

    * wtf/Bag.h:
    (WTF::Bag::iterator::operator!=):

LayoutTests:

    * js/regress/getter-no-activation-expected.txt: Added.
    * js/regress/getter-no-activation.html: Added.
    * js/regress/script-tests/getter-no-activation.js: Added.
    * js/regress/getter-richards-expected.txt: Added.
    * js/regress/getter-richards.html: Added.
    * js/regress/script-tests/getter-richards.js: Added.

    2014-05-08  Filip Pizlo  <fpizlo@apple.com>

    jsSubstring() should be lazy
    https://bugs.webkit.org/show_bug.cgi?id=132556

    Reviewed by Andreas Kling.

    These tests get 35-50% faster.

    * js/regress/script-tests/substring-concat-weird.js: Added.
    (foo):
    * js/regress/script-tests/substring-concat.js: Added.
    (foo):
    * js/regress/script-tests/substring.js: Added.
    (foo):
    * js/regress/substring-concat-expected.txt: Added.
    * js/regress/substring-concat-weird-expected.txt: Added.
    * js/regress/substring-concat-weird.html: Added.
    * js/regress/substring-concat.html: Added.
    * js/regress/substring-expected.txt: Added.
    * js/regress/substring.html: Added.

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

5 years agoPerf dashboard spends 2s processing JSON data during the page loads
rniwa@webkit.org [Tue, 22 Jul 2014 20:57:54 +0000 (20:57 +0000)]
Perf dashboard spends 2s processing JSON data during the page loads
https://bugs.webkit.org/show_bug.cgi?id=135152

Reviewed by Andreas Kling.

In the Apple internal dashboard, we were spending as much as 2 seconds
converting raw JSON data into proper JS objects while loading the dashboard.

This caused the apparent unresponsiveness of the dashboard despite of the fact
charts themselves updated almost instantaneously.

* public/index.html:
* public/js/helper-classes.js:
(TestBuild): Compute the return values of formattedTime and formattedBuildTime
lazily as creating new Date objects and running string replace is expensive.
(TestBuild.formattedTime):
(TestBuild.formattedBuildTime):
(PerfTestRuns.setResults): Added. Pushing each result was the biggest bottle neck.
(PerfTestRuns.addResult): Deleted.

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

5 years ago[Mac] Cocoa throws exception when the return type of NSAccessibilityLinkedUIElementsA...
mmaxfield@apple.com [Tue, 22 Jul 2014 20:51:13 +0000 (20:51 +0000)]
[Mac] Cocoa throws exception when the return type of NSAccessibilityLinkedUIElementsAttribute is not an array
https://bugs.webkit.org/show_bug.cgi?id=135165

Reviewed by Simon Fraser.

Source/WebCore:
Return an empty array instead of nil.

Updated tests.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:
Updating tests.

* accessibility/parent-delete-expected.txt:
* accessibility/transformed-element-expected.txt:
* platform/mac/accessibility/aria-columnrowheaders-expected.txt:
* platform/mac/accessibility/bounds-for-range-expected.txt:
* platform/mac/accessibility/document-attributes-expected.txt:
* platform/mac/accessibility/document-links-expected.txt:
* platform/mac/accessibility/image-link-expected.txt:
* platform/mac/accessibility/image-map2-expected.txt:
* platform/mac/accessibility/internal-link-anchors-expected.txt:
* platform/mac/accessibility/internal-link-anchors2-expected.txt:
* platform/mac/accessibility/lists-expected.txt:
* platform/mac/accessibility/plugin-expected.txt:
* platform/mac/accessibility/table-attributes-expected.txt:
* platform/mac/accessibility/table-cell-spans-expected.txt:
* platform/mac/accessibility/table-cells-expected.txt:
* platform/mac/accessibility/table-detection-expected.txt:
* platform/mac/accessibility/table-one-cell-expected.txt:
* platform/mac/accessibility/table-sections-expected.txt:
* platform/mac/accessibility/table-with-rules-expected.txt:
* platform/mac-mountainlion/accessibility/lists-expected.txt:

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

5 years agoUnreviewed, rolling out r171357.
commit-queue@webkit.org [Tue, 22 Jul 2014 20:28:40 +0000 (20:28 +0000)]
Unreviewed, rolling out r171357.
https://bugs.webkit.org/show_bug.cgi?id=135173

broke Windows build. (Requested by bfulgham on #webkit).

Reverted changeset:

"[Win] Fix Crash when handling Legible Output callbacks"
https://bugs.webkit.org/show_bug.cgi?id=134946
http://trac.webkit.org/changeset/171357

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

5 years ago[Mac] accessibility/aria-columnrowheaders.html doesn't test lengths of arrays
mmaxfield@apple.com [Tue, 22 Jul 2014 20:22:40 +0000 (20:22 +0000)]
[Mac] accessibility/aria-columnrowheaders.html doesn't test lengths of arrays
https://bugs.webkit.org/show_bug.cgi?id=135166

Reviewed by Chris Fleizach.

Using debug() interprets strings like "<array of size 0>" as markup, thereby not
showing it in the expected output. Instead, we should use innerText (which is
what all the other accessibility tests use).

* platform/mac/accessibility/aria-columnrowheaders-expected.txt:
* platform/mac/accessibility/aria-columnrowheaders.html:

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

5 years ago[Win] Fix Crash when handling Legible Output callbacks
bfulgham@apple.com [Tue, 22 Jul 2014 20:00:26 +0000 (20:00 +0000)]
[Win] Fix Crash when handling Legible Output callbacks
https://bugs.webkit.org/show_bug.cgi?id=134946

Reviewed by Dean Jackson.

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
Windows-specific 'ASSERT_NOT_REACHED' code path.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Added.
(WebCore::AVFWrapper::createPlayerItem): Updated to request native
samples from AVFoundationCF.

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

5 years agoProvide networking process with access to its HSTS db
oliver@apple.com [Tue, 22 Jul 2014 19:58:25 +0000 (19:58 +0000)]
Provide networking process with access to its HSTS db
https://bugs.webkit.org/show_bug.cgi?id=135121
<rdar://17654369>

Reviewed by Alexey Proskuryakov.

Add an extension parameter to pass the hsts database file.
This requires us to create the Caches/com.apple.WebKit.Networking
directory in the UI process, as the network sandbox
does not allow it to create the containing directory.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::networkingHSTSDatabasePath):
* UIProcess/WebContext.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath):

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

5 years ago[Cocoa] WKScriptMessageHandlers don't seem to function properly after navigating
weinig@apple.com [Tue, 22 Jul 2014 19:48:24 +0000 (19:48 +0000)]
[Cocoa] WKScriptMessageHandlers don't seem to function properly after navigating
https://bugs.webkit.org/show_bug.cgi?id=135148

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
* runtime/CommonIdentifiers.h:
Add a common identifier for the string "webkit".

Source/WebCore:
The "webkit" property on the window was not getting installed for subsequent
loads due to intricate dance playing setting the JSDOMWindow where the DOMWindow
object is not yet in a Frame when the JSDOMWindow is created. Since we were
adding the "webkit" property on construction, the property was returning null
thinking it had no Frame and was in a bad state. We can fix this by making the
"webkit" property behave like all the other window properties moving its getting
to JSDOMWindow::getOwnPropertySlot.

Added API test (WebKit2Cocoa/UserContentController).

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::finishCreation):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowWebKit):
(WebCore::JSDOMWindow::getOwnPropertySlot):

Tools:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm: Added.
(-[SimpleNavigationDelegate webView:didFinishNavigation:]):
(-[ScriptMessageHandler userContentController:didReceiveScriptMessage:]):

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

5 years agoASSERTION FAILED: info.spillFormat() & DataFormatJS in JSC::DFG::SpeculativeJIT:...
fpizlo@apple.com [Tue, 22 Jul 2014 19:46:41 +0000 (19:46 +0000)]
ASSERTION FAILED: info.spillFormat() & DataFormatJS in JSC::DFG::SpeculativeJIT::fillSpeculateCell
https://bugs.webkit.org/show_bug.cgi?id=135155
<rdar://problem/17763909>

Reviewed by Oliver Hunt.

The DFG fillSpeculate code paths all need to be mindful of the fact that they may be stumbling upon a
contradiction, and that this is OK. In this case, we were speculating cell on an int.

* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
* tests/stress/regress-135155.js: Added.
(run.t.length):
(run):

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

5 years ago[Win] Fix Leak in WebCore::createGlobalImageFileDescriptor
bfulgham@apple.com [Tue, 22 Jul 2014 19:36:46 +0000 (19:36 +0000)]
[Win] Fix Leak in WebCore::createGlobalImageFileDescriptor
https://bugs.webkit.org/show_bug.cgi?id=134423
<rdar://problem/17492758>

Reviewed by Geoffrey Garen.

* platform/win/PasteboardWin.cpp:
(WebCore::createGlobalImageFileDescriptor): Unlock and release the
HGLOBAL when exiting early.

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

5 years ago[iOS][WK2] UI helpers that zoom on an element ignore the viewport's allowsUserScaling
benjamin@webkit.org [Tue, 22 Jul 2014 19:25:45 +0000 (19:25 +0000)]
[iOS][WK2] UI helpers that zoom on an element ignore the viewport's allowsUserScaling
https://bugs.webkit.org/show_bug.cgi?id=135140
<rdar://problem/17754921>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-22
Reviewed by Tim Horton.

UIScrollView makes a difference between min/max zoom and allowUserScaling. To express that,
everything is set up on the LayerTransaction.

For zooming related helpers (find on page, double tap to zoom, etc), the min and max zoom
should be the actual min/max for the current page state.

This patch split the two explicitely.
For layer transactions, the values are taken from the viewport configuration directly.
For everything else, we should use minimumPageScaleFactor/maximumPageScaleFactor. Those two methods
have been updated to take into account allowsUserScaling.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::minimumPageScaleFactor):
(WebKit::WebPage::maximumPageScaleFactor):
(WebKit::WebPage::getAssistedNodeInformation):

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

5 years agoCorrect handling of __VERSION_TEXT__ for 4+-tuple versions
bfulgham@apple.com [Tue, 22 Jul 2014 18:35:32 +0000 (18:35 +0000)]
Correct handling of __VERSION_TEXT__ for 4+-tuple versions
https://bugs.webkit.org/show_bug.cgi?id=135161
<rdar://problem/17763546>

Reviewed by David Kilzer.

Tools:
* Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl:
Add additional test cases to catch errors in multiple-tuple
version string handling.

WebKitLibraries:
Revise the auto-version.pl script to properly handle version
strings with 4 (or more) version tuples. Previously these were
being truncated from the version.

* win/tools/scripts/auto-version.pl:
(splitVersion): Return truncated version of
overall version string.

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

5 years agoExtend exception fuzzing to the LLInt
fpizlo@apple.com [Tue, 22 Jul 2014 18:27:17 +0000 (18:27 +0000)]
Extend exception fuzzing to the LLInt
https://bugs.webkit.org/show_bug.cgi?id=135076

Reviewed by Oliver Hunt.

Source/JavaScriptCore:
* CMakeLists.txt:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* jit/JITOperations.cpp:
(JSC::numberOfExceptionFuzzChecks): Deleted.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
* runtime/CommonSlowPaths.cpp:
* runtime/ExceptionFuzz.cpp: Added.
(JSC::numberOfExceptionFuzzChecks):
(JSC::doExceptionFuzzing):
* runtime/ExceptionFuzz.h: Added.
(JSC::doExceptionFuzzingIfEnabled):

Tools:
* Scripts/jsc-stress-test-helpers/js-exception-fuzz:

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

5 years agoWeb Inspector: Fix unused parameter build warning
commit-queue@webkit.org [Tue, 22 Jul 2014 18:13:46 +0000 (18:13 +0000)]
Web Inspector: Fix unused parameter build warning
https://bugs.webkit.org/show_bug.cgi?id=135151

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-22
Reviewed by Joseph Pecoraro.

Fix unused parameter build warning by removing the parameter name

* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::setJavaScriptProfilingEnabled):

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

5 years ago[Mac] [WK2] selection-gap-fixed-child.html and selection-gap-flipped-fixed-child...
ap@apple.com [Tue, 22 Jul 2014 18:01:03 +0000 (18:01 +0000)]
[Mac] [WK2] selection-gap-fixed-child.html and selection-gap-flipped-fixed-child.html
have been failing since they were added in r148258
https://bugs.webkit.org/show_bug.cgi?id=114573

Landing actual results as expected for WK2. This test isn't meaningful for WK2, because of layers.

* platform/mac-wk2/TestExpectations:
* platform/mac-wk2/fast/repaint/selection-gap-fixed-child-expected.txt: Added.
* platform/mac-wk2/fast/repaint/selection-gap-flipped-fixed-child-expected.txt: Added.

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

5 years agoSource/WebCore: Clicking on links while accessibility is enabled sometimes crashes
mmaxfield@apple.com [Tue, 22 Jul 2014 17:50:31 +0000 (17:50 +0000)]
Source/WebCore: Clicking on links while accessibility is enabled sometimes crashes
https://bugs.webkit.org/show_bug.cgi?id=135074

Reviewed by Chris Fleizach.

When an accessibility request comes in from the system, we call updateBackingStore() on the
relevant AccessibilityObject, which triggers a relayout of the entire document. This relayout
might delete that accessibility node and its parent, which would cause the node to be deleted.
After the stack unwinds, we then call a member function on the node without checking for this
condition.

Test: accessibility/parent-delete.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore): Retain the node for the duration of the
function.

LayoutTests: Clicking on links while accessibility is enabled does not render as expected
https://bugs.webkit.org/show_bug.cgi?id=135074

Reviewed by Chris Fleizach.

Delete a node and its parent, then call allAttributes() on the accessibility representation of
the deleted child and make sure there is no crash.

* accessibility/parent-delete-expected.txt: Added
* accessibility/parent-delete.html: Added

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

5 years agoFix unused parameter build warning in UIProcess module
commit-queue@webkit.org [Tue, 22 Jul 2014 17:32:38 +0000 (17:32 +0000)]
Fix unused parameter build warning in UIProcess module
https://bugs.webkit.org/show_bug.cgi?id=135154

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-22
Reviewed by Alexey Proskuryakov.

Fix unused parameter build warning in UIProcess module by using UNUSED_PARAM macro.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):

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

5 years agoDon't create new UIWindow for video fullscreen.
commit-queue@webkit.org [Tue, 22 Jul 2014 17:19:21 +0000 (17:19 +0000)]
Don't create new UIWindow for video fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=135038

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-22
Reviewed by Darin Adler.

Source/WebCore:
* WebCore.exp.in:
* platform/ios/WebVideoFullscreenControllerAVKit.h: use UIView instead of UIScreen.
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController enterFullscreen:]): provide parent UIView.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: remove UIWindow.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): ditto
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): ditto
(WebVideoFullscreenInterfaceAVKit::invalidate): ditto
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto

Source/WebKit/mac:
Provide UIView to WebVideoFullscreenController

* WebView/WebView.mm:
(-[WebView _enterFullscreenForNode:]): pass UIView instead of nil

Source/WebKit2:
Use root UIView to parent fullscreen interface.

* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): pass parent UIView
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::screenRectForNode): Use client rect instead of screen rect.

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

5 years agomedia/track/track-in-band-subtitles-too-large.html and
ap@apple.com [Tue, 22 Jul 2014 16:38:48 +0000 (16:38 +0000)]
media/track/track-in-band-subtitles-too-large.html and
media/track/track-long-word-container-sizing.html fail on Mac (dependent on other tests?)
https://bugs.webkit.org/show_bug.cgi?id=135160

Correcting test expectations - the failures are not WK1 only.

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

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

5 years ago[GTK] Rollout r170529 due to ~10% performance regression on the
clopez@igalia.com [Tue, 22 Jul 2014 15:02:12 +0000 (15:02 +0000)]
[GTK] Rollout r170529 due to ~10% performance regression on the
perf test Animation/balls.
https://bugs.webkit.org/show_bug.cgi?id=134972

Reviewed by Martin Robinson.

Reverted changeset:
"Increase priority on SharedTimer source."
https://trac.webkit.org/r170529

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

5 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Tue, 22 Jul 2014 13:47:49 +0000 (13:47 +0000)]
Unreviewed EFL gardening

* platform/efl/TestExpectations: Update incorrect test expectations for passing and crashing tests.

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

5 years agoTurn width/height to presentation attributes
krit@webkit.org [Tue, 22 Jul 2014 13:27:38 +0000 (13:27 +0000)]
Turn width/height to presentation attributes
https://bugs.webkit.org/show_bug.cgi?id=135046

Patch by Dirk Schulze <krit@webkit.org> on 2014-07-18
Reviewed by Dean Jackson.

Source/WebCore:
The elements <svg>, <image>, <pattern>, <mask> and <foreignObject> have the
'width' and 'height' attributes. So far they can just be set by SVG DOM or
setAttribute. Furthermore, animations just work with SVG Animation - No support
for CSS Animations and CSS Transitions. We started to turn the width and height
attributes on SVG roots to presentation attributes already. A presentation
attribute is a CSS property that can also be set by DOM (or now by SVG DOM).

This patch turns all width and height attributes to presentation attributes. It
basically allows authors to style width and height with CSS as well. Width and
height can now be set with CSS style sheets and can be animated with CSS.

To some degree it made it possible to remove code duplication. However, since
SVG DOM requires us to use SVGLength types and since we did not turn all
SVG attributes to the CSS length values (and our internal Length struct) yet,
we still need a hybrid - a bridge between SVGLength (for SVG DOM) and Length (for
RenderStyle). Once we move all attributes to use the Length struct, we can make SVGLength
a wrapper for Length and can move more code to the render tree.

The current challenge is to synchronize SVG DOM, normal DOM and RenderStyle.
With this patch we handle most part in RenderStyle. SVG DOM changes are
synchronized to DOM and RenderStyle will call needsStyleRecalc. Furthermore,
SVG Animations will continue to animate the SVG DOM (and synchronize the changes
back to RenderStyle) if the element has a JS property for the currently animated
attribute.

Short example:

    <rect>
        <animate attributeName="width">
    </rect>

The <rect> element has the SVG DOM property 'width'. Therefore, we animate the SVG DOM
property and synchronize RenderStyle.

    <ellipse>
        <animate attributeName="width">
    </ellipse>

The <ellipse> element does NOT have the SVG DOM property 'width'. Therefore, we
animate the CSS property directly. With synchronizing RenderStyle in all cases, we
make sure that the CSS cascade works even on animating on multiple SVG hierarchy
levels (animation of 'width' on <g> and inheriting the property value on a child
<rect>).

With using presentation attributes, we also inherit the CSS property parsing for
SVG attributes. <rect width="  100px  "> is possible now. (Note the trailing whitespaces.)
This follows a recent resolution of the SVG WG.

Since we turned width and height to presentation attributes, the layout optimization
selfHasRelativeLengths() in the DOM can't be used anymore. selfHasRelativeLengths() was
intended to solve a problem where we did not layout relatively position/sized elements
when the parent changes its size. However, as a side effect it did not call layout
for absolutely positioned/sized elements since the layout does not change. I run
all performance tests that we have and even wrote a test with hundreds of elements
that would be affected by this optimization. The differences were inside the sigma
of a normal test run. (Means I couldn't measure a performance difference.)
Therefore, it is not worth it to keep the "optimization" around and I will probably
remove it entirely for all basic shapes but <path> and <polygon> in future patches.

Tests: svg/css/parse-height.html
       svg/css/parse-width.html
       svg/css/width-height-presentation-attribute-expected.svg
       svg/css/width-height-presentation-attribute.svg

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): We never calculated the computed
    value of width/height for SVG elements and returned auto instead. This is based
    on a rule of CSS 2 and needs to be fixed in CSS3.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyLength::applyValue): Length always incorporates the zoom level.
    In SVG we still apply the zoom after all operations by scaling the context. We need
    to take this in account for Length and don't apply zoom on SVG inline elements.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::useSVGZoomRulesForLength):
    See above.
* css/StyleResolver.h:
* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement): Do not call width() and height() on
    SVG DOM but use the values of RenderStyle instead.
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromRectElement): Ditto.
* svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::resetAnimatedType): We need to differ between CSS properties
    with and without SVG DOM on the current element. In the later case we animate the
    SVG DOM and need to synch RenderStyle.
(WebCore::SVGAnimateElement::clearAnimatedType): Ditto.
(WebCore::SVGAnimateElement::applyResultsToTarget): Ditto.
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): This checks if the CSS property
    has to be synched with SVG DOM.
(WebCore::SVGAnimationElement::shouldApplyAnimation): Ditto.
* svg/SVGAnimationElement.h:
* svg/SVGElement.cpp:
(WebCore::populateAttributeNameToCSSPropertyIDMap): Add width and heigth to the CSS property
    list for presentation attributes.
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): CSS properties with
    SVG DOM synchronization need to be treated differently. Collect them in a separate map.
(WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Caller for the map.
(WebCore::SVGElement::animatedPropertyTypeForAttribute): We need to check both maps here:
    CSS properties and CSS properties with SVG DOM synch.
(WebCore::SVGElement::isAnimatableCSSProperty): Ditto.
(WebCore::SVGElement::isPresentationAttributeWithSVGDOM): Just return true if the property name
    is in the map of properties with SVG DOM for the current element.
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGPresentationAttributeStyle): Call needsStyleRecalc.
* svg/SVGFilterElement.cpp: Make width/height presentation attribute.
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::selfHasRelativeLengths): Deleted.
* svg/SVGFilterElement.h: Ditto.
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
(WebCore::SVGForeignObjectElement::selfHasRelativeLengths): Deleted.
* svg/SVGForeignObjectElement.h:
* svg/SVGImageElement.cpp: Ditto.
(WebCore::SVGImageElement::svgAttributeChanged):
(WebCore::SVGImageElement::isPresentationAttribute): Deleted.
(WebCore::SVGImageElement::collectStyleForPresentationAttribute): Deleted.
(WebCore::SVGImageElement::selfHasRelativeLengths): Deleted.
* svg/SVGImageElement.h:
* svg/SVGLength.h: Transform an Length value to an absolute value by taking the SVG viewport
    into account. (An SVG viewport is not the same as the CSS viewport.)
* svg/SVGLengthContext.cpp: Ditto.
(WebCore::SVGLengthContext::valueForLength):
* svg/SVGLengthContext.h:
* svg/SVGMaskElement.cpp: Make width/height presentation attribute.
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::selfHasRelativeLengths): Deleted.
* svg/SVGMaskElement.h:
* svg/SVGPatternElement.cpp: Ditto.
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::selfHasRelativeLengths): Deleted.
* svg/SVGPatternElement.h:
* svg/SVGRectElement.cpp: Ditto.
(WebCore::SVGRectElement::svgAttributeChanged):
(WebCore::SVGRectElement::selfHasRelativeLengths): Deleted.
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp: Ditto.
(WebCore::SVGSVGElement::svgAttributeChanged): Clean up redundant layout calls.
(WebCore::SVGSVGElement::isPresentationAttribute): Deleted.
(WebCore::SVGSVGElement::collectStyleForPresentationAttribute): Deleted.
* svg/SVGSVGElement.h:
* svg/properties/SVGAnimatedProperty.cpp: Synchronize SVG DOM with DOM.
(WebCore::SVGAnimatedProperty::commitChange):

LayoutTests:
We already had a lot of tests for animating width/height as property.
So far they assumed that this is not possible. They simply needed to
be updated.

Furthermore, I added reference tests to test different inheritance
scenarios of CSS properties and setting them to elements.

A parsing test makes sure that the global property values inherit is
supported as well as CSS parsing rules for SVG attributes.
Negative tests test not-allowed behavior.

* platform/mac/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
* svg/animations/attributeTypes-expected.txt:
* svg/animations/resources/attributeTypes.svg:
* svg/animations/script-tests/attributeTypes.js:
(sample1):
(sample2):
(sample3):
* svg/css/getComputedStyle-basic-expected.txt:
* svg/css/parse-height-expected.txt: Added.
* svg/css/parse-height.html: Added.
* svg/css/parse-width-expected.txt: Added.
* svg/css/parse-width.html: Added.
* svg/css/width-height-presentation-attribute-expected.svg: Added.
* svg/css/width-height-presentation-attribute.svg: Added.
* svg/custom/mask-excessive-malloc-expected.txt:
* svg/hixie/error/015-expected.txt:

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

5 years agoFix my email address in contributors.json
jochen@chromium.org [Tue, 22 Jul 2014 09:48:29 +0000 (09:48 +0000)]
Fix my email address in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=135156

Reviewed by Gyuyoung Kim.

* Scripts/webkitpy/common/config/contributors.json:

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

5 years ago[GStreamer] [GTK] WebKit does not build with GStreamer 1.4
commit-queue@webkit.org [Tue, 22 Jul 2014 08:50:51 +0000 (08:50 +0000)]
[GStreamer] [GTK] WebKit does not build with GStreamer 1.4
https://bugs.webkit.org/show_bug.cgi?id=135114

.:
Fix build with GStreamer 1.4

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2014-07-22
Reviewed by Philippe Normand.

* Source/cmake/FindGStreamer.cmake: Check version 1.4.0 for the
gst-mpegts component instead of the unstable 1.3.x verstions.

Source/WebCore:
Patch by Adrian Perez de Castro <aperez@igalia.com> on 2014-07-22
Reviewed by Philippe Normand.

Fix build with GStreamer 1.4

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
Change GstMpegTs-prefixed types to use the GstMpegts prefix.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Ditto.

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

5 years agoUnreviewed iOS build fix after r171321.
psolanki@apple.com [Tue, 22 Jul 2014 06:12:13 +0000 (06:12 +0000)]
Unreviewed iOS build fix after r171321.

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

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

5 years ago[EFL] Add Ewk prefix to enums of ewk_navigation_policy
ryuan.choi@samsung.com [Tue, 22 Jul 2014 04:35:30 +0000 (04:35 +0000)]
[EFL] Add Ewk prefix to enums of ewk_navigation_policy
https://bugs.webkit.org/show_bug.cgi?id=135144

Reviewed by Gyuyoung Kim.

All public enums of ewebkit should start with Ewk prefix.
This patch added Ewk prefix to Ewk_Event_Mouse_Button and Ewk_Event_Modifiers.
In addition, added missing description and default value for Ewk_Event_Modifier.

* UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
(toEwkEventMouseButton):
(toEwkEventModifiers):
(EwkNavigationPolicyDecision::mouseButton):
(EwkNavigationPolicyDecision::modifiers):
(ewk_navigation_policy_mouse_button_get):
(ewk_navigation_policy_modifiers_get):
(toEventMouseButton): Deleted.
(toEventModifierKeys): Deleted.
* UIProcess/API/efl/ewk_navigation_policy_decision.h:
* UIProcess/API/efl/ewk_navigation_policy_decision_private.h:

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

5 years ago[iOS][WK2] Improve event throttling for Scroll Events
benjamin@webkit.org [Tue, 22 Jul 2014 03:59:34 +0000 (03:59 +0000)]
[iOS][WK2] Improve event throttling for Scroll Events
https://bugs.webkit.org/show_bug.cgi?id=135082
<rdar://problem/17445266>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-21
Reviewed by Simon Fraser.

Source/WebCore:
This patch is composed of two parts. The first part in the WebKit layer
track an approximate measurement of the main thread responsiveness.
The second part in WebCore use that information to avoid sending events
if a page is unresponsive.

In WebCore, this patch only consider scroll events so far. Hopefully the concept
should be easy to generalize.

* loader/EmptyClients.h:
* page/ChromeClient.h:
Chrome client provides us with one information: how long an incoming event should be delayed.
Every port is free to implement whatever logic is suitable for them.

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::delayedScrollEventTimerFired):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::sendScrollEvent):
* page/FrameView.h:
Scroll events do not have any associated information so they can be coalesced by just skipping
all input hapenning during the throttling delay.

The implementation is done by using a timer to delay the events.

Source/WebKit2:
In the WebKit layer, we want a measure that is representative of the responsiveness.

In this patch, I use the total delay between a VisibleContentRectUpdate being dispatched
by the UIProcess, and the time RemoteLayerTreeDrawingArea flushes the layer tree.

The value used for eventThrottlingDelay() is computed by averaging the new value with
the old values with a 80/20 split, favoring the old data. Favoring historical data
over the last timing avoid excessively throttling for a single slow frame.

The computation of m_estimatedMainThreadLatency can be improved in the future, this is
a first cut keeping things simple.

With m_estimatedMainThreadLatency in our hands, we can compute our eventThrottlingDelay().
If m_estimatedMainThreadLatency is smaller than a single frame timespan, we have a fast page
and nothing is throttled.

If is it more than a frame, we throttle such that we can at least render two frames
per event dispatch based on the historical data.

The exact values will need some tweaking, but this set ensures well written pages get
60 events per seconds, while slow pages do not waste too much time on events.

* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::eventThrottlingDelay):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
* WebProcess/WebPage/ViewUpdateDispatcher.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didFlushLayerTreeAtTime):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::eventThrottlingDelay):
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

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