JSDOMWindow should disable property caching after a certain point
https://bugs.webkit.org/show_bug.cgi?id=132751

Reviewed by Filip Pizlo.

Source/JavaScriptCore:
This is part of removing HasImpureGetOwnPropertySlot from JSDOMWindow. After the lookup in the static
hash table for JSDOMWindow fails we want to disable property caching even if the code that follows thinks
that it has provided a cacheable value.

* runtime/PropertySlot.h:
(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::isCacheable):
(JSC::PropertySlot::disableCaching):

Source/WebCore:
No new tests.

This is part of removing HasImpureGetOwnPropertySlot from JSDOMWindow. After the lookup in the static
hash table for JSDOMWindow fails we want to disable property caching even if the code that follows thinks
that it has provided a cacheable value.

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


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168558 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Subpixel rendering[iOS]: Top bar on apple.com/support jiggles when the swoosh animates.
https://bugs.webkit.org/show_bug.cgi?id=132750
<rdar://problem/16803281>

Reviewed by Simon Fraser.

This patch ensures that GraphicsLayer and RemoteLayerBackingStore have the same dimensions.

Remove integral enclosing when we set the size on RemoteLayerBackingStore. It makes the layer's size
different from the backingstore when the passed value is fractional.
We scale and integral round this value to size the shareable bitmap later. Rounding ensures that
the final size value matches what we calculated at GraphicsLayerCA::updateGeometry()

Currently not testable.

Source/WebCore:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::computePixelAlignment): include device scale factor to be able calculate the final content scale.
* platform/graphics/ca/GraphicsLayerCA.h:

Source/WebKit2:
* Shared/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::size):
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::ensureBackingStore):
(WebKit::RemoteLayerBackingStore::setNeedsDisplay): use enclosing here to ensure we cover the entire backing store.
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::drawInContext):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateBackingStore):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS WK2] Fixed elements can go outside the document on pinching
https://bugs.webkit.org/show_bug.cgi?id=132759
<rdar://problem/16870835>

Reviewed by Benjamin Poulain.

Constrain the rect used to position fixed position objects when pinching (when
the scale goes below the minimumScale). Do so in such a way that there's a smooth
transition between rubber-banding and pinching.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateScrollViewBackground]): Use a nicer form for std::max<>.
(-[WKWebView _updateVisibleContentRects]): Pass the minimum scale.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _updateVisibleContentRects]): Ditto.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(adjustedUnexposedEdge): Helper to adjust the left/top.
(adjustedUnexposedMaxEdge): Helper to adjust the right/bottom.
(fixedPositionRectFromExposedRect):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:minimumScale:inStableState:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[fullscreen] cursor should auto-hide when over video
https://bugs.webkit.org/show_bug.cgi?id=132758

Reviewed by Brent Fulgham.

Cursors were not auto-hiding over fullscreen video. There was
a small error in the CSS we load for fullscreen content.

* css/fullscreen.css: Don't hide when video is a child of the fullscreen element - hide when it *is* the fullscreen element.
(video:-webkit-full-screen):
(:-webkit-full-screen video:hover): Deleted.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168561 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix some issues with scrolling tree logging
https://bugs.webkit.org/show_bug.cgi?id=132762

Reviewed by Tim Horton.

Only dump viewport constraints when they change, and dump the primary layer on
scrolling nodes.

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingTreeTextStream::dump): Dump the primary layer.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168562 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (WebKit2): Tapping in search field at wikipedia.org doesn’t bring up the keyboard.
https://bugs.webkit.org/show_bug.cgi?id=132761
<rdar://problem/16857491>

Reviewed by Benjamin Poulain.

The interactionAssistant accessor should never create an instance of
UIWKTextInteractionAssistant, but simply return the value of _textInteractionAssistant.
The text interaction assistant should only be created when needed so that the rest of
the code could reliably check if we are interacting with text or not.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView interactionAssistant]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DYEBench should show 95th percentile right next to the mean with ±
https://bugs.webkit.org/show_bug.cgi?id=132729

Reviewed by Darin Adler.

Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
but this was confusing for some people. Show it right next to mean in the same row separated by ±.

* DoYouEvenBench/Full.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Allow Remote Inspector to entitlement check UIProcess through WebProcess
https://bugs.webkit.org/show_bug.cgi?id=132409

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:
Proxy applications are applications which hold WebViews for other
applications. The WebProcess (Web Content Service) is a proxy application.
For legacy reasons we were supporting a scenario where proxy applications
could potentially host WebViews for more then one other application. That
was never the case for WebProcess and it is now a scenario we don't need
to worry about supporting.

With this change, a proxy application more naturally only holds WebViews
for a single parent / host application. The proxy process can set the
parent pid / audit_token data on the RemoteInspector singleton, and
that data will be sent on to webinspectord later on to be validated.
In the WebProcess<->UIProcess relationship that information is known
and set immediately. In the Legacy iOS case that information is set
soon after, but not immediately known at the point the WebView is created.

This allows us to simplify the RemoteInspectorDebuggable interface.
We no longer need a pid per-Debuggable.

* inspector/remote/RemoteInspector.h:
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::RemoteInspector):
(Inspector::RemoteInspector::setParentProcessInformation):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::listingForDebuggable):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):
Handle new proxy application setup message, and provide an API
for a proxy application to set the parent process information.

* inspector/remote/RemoteInspectorConstants.h:
New setup and response message for proxy applications to pass
their parent / host application information to webinspectord.

* inspector/remote/RemoteInspectorDebuggable.cpp:
(Inspector::RemoteInspectorDebuggable::info):
* inspector/remote/RemoteInspectorDebuggable.h:
(Inspector::RemoteInspectorDebuggableInfo::RemoteInspectorDebuggableInfo):
(Inspector::RemoteInspectorDebuggableInfo::hasParentProcess): Deleted.
pid per debuggable is no longer needed.

Source/WebCore:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::parentProcessIdentifier): Deleted.
* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::parentProcessIdentifier): Deleted.
* page/PageDebuggable.h:
pid per debuggable is no longer needed.

Source/WebKit/mac:
Simplify the legacy iOS UIWebViewController case by passing on
the host process pid and audit_token.

* WebView/WebView.mm:
(-[WebView _setHostApplicationProcessIdentifier:auditToken:]):
(-[WebView setHostApplicationBundleId:name:]): Deleted.
(-[WebView hostApplicationBundleId]): Deleted.
(-[WebView hostApplicationName]): Deleted.
* WebView/WebViewData.h:
* WebView/WebViewData.mm:
(-[WebViewPrivate dealloc]):
* WebView/WebViewPrivate.h:

Source/WebKit2:
* WebProcess/WebCoreSupport/WebInspectorClient.h:
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::parentProcessIdentifier): Deleted.
pid per debuggable is no longer needed.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Immediately pass the parent process pid and audit_token on
to the RemoteInspector singleton when the process is created
so that it can be sent to webinspectord.

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