WebKit-https.git
5 years agoAdd test for r169820.
roger_fong@apple.com [Thu, 17 Jul 2014 19:20:31 +0000 (19:20 +0000)]
Add test for r169820.
        https://bugs.webkit.org/show_bug.cgi?id=135002.

        Reviewed by Dean Jackson.

        * platform/mac-wk2/plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view-expected.txt: Added.
        * plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view.html: Added.

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

5 years agoSometimes purgeable (or empty!) tiles are shown on screen when resuming the app
timothy_horton@apple.com [Thu, 17 Jul 2014 19:19:37 +0000 (19:19 +0000)]
Sometimes purgeable (or empty!) tiles are shown on screen when resuming the app
https://bugs.webkit.org/show_bug.cgi?id=135018
<rdar://problem/17615038>

Reviewed by Simon Fraser.

* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::hideContentUntilNextUpdate):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate):
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::detachRootLayer):
Add a mechanism to "hide" drawing area content until the next commit,
by detaching the root layer. RemoteLayerTreeHost will automatically reattach
it at the next commit.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
Add a parameter to viewStateDidChange specifying whether dispatching the change
to the Web process is deferrable or not. We will also automatically use "Immediate" if
the view is coming in-window, like we did before.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationWillEnterForeground:]):
Make use of the aforementioned new mechanisms to ensure that we immediately dispatch
view state changes when coming into the foreground, and will have removed the root layer
if a commit didn't come in while waitForDidUpdateViewState blocks.

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

5 years agoDFG Flush(SetLocal) store elimination is overzealous for captured variables in the...
fpizlo@apple.com [Thu, 17 Jul 2014 18:17:43 +0000 (18:17 +0000)]
DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw
https://bugs.webkit.org/show_bug.cgi?id=134988
<rdar://problem/17706349>

Reviewed by Oliver Hunt.

Luckily, we also don't need this optimization to be super powerful: the only place
where it really matters is for getting rid of the redundancy between op_enter and
op_init_lazy_reg, and in that case, there is a small set of possible nodes between the
two things. This change updates the store eliminator to know about only that small,
obviously safe, set of nodes over which we can store-eliminate.

This shouldn't have any performance impact in the DFG because this optimization kicks
in relatively rarely already. And once we tier up into the FTL, we get a much better
store elimination over LLVM IR, so this really shouldn't matter at all.

The tricky part of this patch is that there is a close relative of this optimization,
for uncaptured variables that got flushed. This happens for arguments to inlined calls.
I make this work by splitting it into two different store eliminators.

Note that in the process of crafting the tests, I realized that we were incorrectly
DCEing NewArrayWithSize. That's not cool, since that can throw an exception for
negative array sizes. If we ever did want to DCE this node, we'd need to lower the node
to a check node followed by the actual allocation.

* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::uncapturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::capturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::SetLocalStoreEliminationResult::SetLocalStoreEliminationResult): Deleted.
* dfg/DFGNodeType.h:
* tests/stress/capture-escape-and-throw.js: Added.
(foo.f):
(foo):
* tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added.
(foo):
(bar):

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

5 years agoDon't send geolocation permission requests when the page is not visible
weinig@apple.com [Thu, 17 Jul 2014 17:35:35 +0000 (17:35 +0000)]
Don't send geolocation permission requests when the page is not visible
<rdar://problem/17208715>
https://bugs.webkit.org/show_bug.cgi?id=134989

Reviewed by Darin Adler.

Instead of eagerly requesting geolocation permission for pages that aren't visible,
store a set of pending requests, and send them only once the page has become visible.

* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::requestPermission):
(WebCore::GeolocationController::cancelPermissionRequest):
(WebCore::GeolocationController::viewStateDidChange):
(WebCore::provideGeolocationTo):
* Modules/geolocation/GeolocationController.h:
Store pending requests to be fired once the page is visible.

* WebCore.xcodeproj/project.pbxproj:
Add ViewStateChangeObserver.h

* page/Page.cpp:
(WebCore::Page::addViewStateChangeObserver):
(WebCore::Page::removeViewStateChangeObserver):
(WebCore::Page::setViewState):
* page/Page.h:
Add a set of registered view state observers, and notify them when the
view state changes.

* page/ViewStateChangeObserver.h: Added.
(WebCore::ViewStateChangeObserver::~ViewStateChangeObserver):
Add an observer that can register with the page for view state changes.

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

5 years agoplugins/quicktime-plugin-replacement.html is flaky
ap@apple.com [Thu, 17 Jul 2014 17:33:37 +0000 (17:33 +0000)]
plugins/quicktime-plugin-replacement.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=135015

* platform/mac/TestExpectations: Marked as such.

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

5 years agoSome inspector-protocol test expectations gardening.
ap@apple.com [Thu, 17 Jul 2014 17:26:21 +0000 (17:26 +0000)]
Some inspector-protocol test expectations gardening.

Moved cross-platform expectations for inspector-protocol/debugger/setBreakpoint-dfg*
tests to a cross-platform file, and added a Mac expectation for
inspector-protocol/profiler/console-profile.html.

* TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:

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

5 years agoFlaky Test: media/video-ended-event-negative-playback.html
ap@apple.com [Thu, 17 Jul 2014 17:07:27 +0000 (17:07 +0000)]
Flaky Test: media/video-ended-event-negative-playback.html
https://bugs.webkit.org/show_bug.cgi?id=134490

* platform/mac/TestExpectations: Marking as such.

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

5 years agoEnable legacy fullscreen API in media controls
jer.noble@apple.com [Thu, 17 Jul 2014 16:27:32 +0000 (16:27 +0000)]
Enable legacy fullscreen API in media controls
https://bugs.webkit.org/show_bug.cgi?id=134985

Reviewed by Eric Carlson.

Source/WebCore:
Allow clients who have not enabled HTML5 Fullscreen APIs to still use fullscreen mode
with <video> elements by using the legacy, video-element-specific fullscreen APIs in
the <video> media controls.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller):
(Controller.prototype.handleReadyStateChange):
(Controller.prototype.isFullScreen):
(Controller.prototype.handlePlayButtonClicked):
(Controller.prototype.updateFullscreenButton):
(Controller.prototype.handleFullscreenButtonClicked):

LayoutTests:
Rebaseline expected results.

* platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt:
* platform/mac/fast/layers/video-layer-expected.txt:
* platform/mac/media/media-controls-clone-expected.txt:
* platform/mac/webarchive/loading/video-in-webarchive-expected.txt:

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

5 years ago[CSS Grid Layout] Add element.style coverage for grid-auto-flow
rego@igalia.com [Thu, 17 Jul 2014 15:58:13 +0000 (15:58 +0000)]
[CSS Grid Layout] Add element.style coverage for grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=134966

Reviewed by Sergio Villar Senin.

As follow-up patch after r170996 we're adding new test cases for
grid-auto-flow to check the correct behavior of element.style.

* fast/css-grid-layout/grid-auto-flow-get-set-expected.txt: Updated
expectations accordingly.
* fast/css-grid-layout/grid-auto-flow-get-set.html: Updated test to add
checks for element.style.
* fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:
(checkGridAutoFlowSetCSSValue): Add new helper method to check
grid-auto-flow property.
(checkGridAutoFlowSetJSValue): Ditto.

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

5 years ago[EFL][WK2] Add a "focus,notfound" signal.
commit-queue@webkit.org [Thu, 17 Jul 2014 10:55:57 +0000 (10:55 +0000)]
[EFL][WK2] Add a "focus,notfound" signal.
https://bugs.webkit.org/show_bug.cgi?id=134674

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-07-17
Reviewed by Gyuyoung Kim.

Add a "focus,notfound" signal to handover focus control to application
because there are no elements of webview to focus on the given direction.

Application can decide to move the focus to next widget of ewk_view or something else
by using this signal.

* UIProcess/API/efl/EwkViewCallbacks.h:
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added keyDown and keyUp function.
(EWK2UnitTest::EWK2UnitTestBase::waitUntilDirectionChanged):
(EWK2UnitTest::EWK2UnitTestBase::keyDown):
(EWK2UnitTest::EWK2UnitTestBase::keyUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(EWK2ViewTest::FocusNotFoundCallback):
(TEST_F):
* UIProcess/efl/PageUIClientEfl.cpp: Removed unnecessary calls to evas_object_focus_set().
(WebKit::PageUIClientEfl::takeFocus):

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

5 years ago[GObject] StrictTypeChecking extended attribute fails for methods with sequence<T>.
commit-queue@webkit.org [Thu, 17 Jul 2014 09:29:49 +0000 (09:29 +0000)]
[GObject] StrictTypeChecking extended attribute fails for methods with sequence<T>.
https://bugs.webkit.org/show_bug.cgi?id=121698

Patch by Vineet Chaudhary <code.vineet@gmail.com> on 2014-07-17
Reviewed by Antonio Gomes.

GodeGenerator was including wrong heeaders as WebKitDOMlong[] for methods with
array parameters and StrictTypeChecking extended attribute.
No new tests. TestObj.idl covers the tests.

* bindings/scripts/CodeGenerator.pm:
(GetArrayOrSequenceType):
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_strict_function_with_array):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
(webkit_dom_test_typedefs_func):
(webkit_dom_test_typedefs_nullable_array_arg):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/TestObj.idl:

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

5 years agoCSS JIT: Clean up return path
utatane.tea@gmail.com [Thu, 17 Jul 2014 07:58:05 +0000 (07:58 +0000)]
CSS JIT: Clean up return path
https://bugs.webkit.org/show_bug.cgi?id=135011

Reviewed by Benjamin Poulain.

Clean up the existing CSS JIT return path before adding new early return path
for pseudo elements.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
* cssjit/StackAllocator.h:
(WebCore::StackAllocator::StackReference::StackReference):
(WebCore::StackAllocator::StackReference::isValid):
(WebCore::StackAllocator::popAndDiscard): Deleted.

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

5 years agoFix Versioning after r171175.
lforschler@apple.com [Thu, 17 Jul 2014 07:55:59 +0000 (07:55 +0000)]
Fix Versioning after r171175.

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

5 years agoVersioning.
lforschler@apple.com [Thu, 17 Jul 2014 07:41:24 +0000 (07:41 +0000)]
Versioning.

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

5 years agoFix Versioning after r171118.
lforschler@apple.com [Thu, 17 Jul 2014 07:14:48 +0000 (07:14 +0000)]
Fix Versioning after r171118.

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

5 years agoWeb Inspector: TextContentView calls the wrong super function in shown()
commit-queue@webkit.org [Thu, 17 Jul 2014 04:07:41 +0000 (04:07 +0000)]
Web Inspector: TextContentView calls the wrong super function in shown()
https://bugs.webkit.org/show_bug.cgi?id=135001

Patch by Saam Barati <sbarati@apple.com> on 2014-07-16
Reviewed by Timothy Hatcher.
TextContentView calls ResourceContentView.shown instead of ContentView.shown.
It should call ContentView.shown because ContentView is its prototype.

* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.shown):

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

5 years agoReintroduce the SPI _websiteDataURLForContainerWithURL: that was removed in r171160
beidson@apple.com [Thu, 17 Jul 2014 03:31:38 +0000 (03:31 +0000)]
Reintroduce the SPI _websiteDataURLForContainerWithURL: that was removed in r171160
https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by David Kilzer.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _websiteDataURLForContainerWithURL:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

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

5 years agoVersioning.
lforschler@apple.com [Thu, 17 Jul 2014 03:04:11 +0000 (03:04 +0000)]
Versioning.

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

5 years ago[GTK] Unreviewed GTK gardening.
clopez@igalia.com [Thu, 17 Jul 2014 02:52:46 +0000 (02:52 +0000)]
[GTK] Unreviewed GTK gardening.

* platform/gtk/TestExpectations: Report and mark new failures. Update some expectations.
* platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Rebaseline after r171033.
* platform/gtk/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Added. Rebaseline after r171046.

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

5 years agoUnreviewed gardening. Skip some text track tests that fail only on release wk1 builds.
roger_fong@apple.com [Thu, 17 Jul 2014 02:50:57 +0000 (02:50 +0000)]
Unreviewed gardening. Skip some text track tests that fail only on release wk1 builds.

* platform/mac-wk1/TestExpectations:

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

5 years agoA test that hangs at cleanup stage confuses webkitpy hugely
ap@apple.com [Thu, 17 Jul 2014 02:26:41 +0000 (02:26 +0000)]
A test that hangs at cleanup stage confuses webkitpy hugely
https://bugs.webkit.org/show_bug.cgi?id=122475
<rdar://problem/17184354>

Reviewed by Anders Carlsson.

Source/WebKit2:
Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
new process for the same WebPageProxy would hit assertions.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

Tools:
Terminate WebContent process if it freezes between tests. Ideally, we should report
this somehow, but this is better than blaming the wrong test.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::terminateWebContentProcess):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):

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

5 years agoUnreviewed. Skip in-band text track test on Mountain Lion.
roger_fong@apple.com [Thu, 17 Jul 2014 01:59:50 +0000 (01:59 +0000)]
Unreviewed. Skip in-band text track test on Mountain Lion.

* platform/mac/TestExpectations:
In-band text tracks not supported on ML.

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

5 years agoSubpixel rendering: Adjust cliprect with devicePixelFractionFromRenderer() before...
zalan@apple.com [Thu, 17 Jul 2014 01:47:10 +0000 (01:47 +0000)]
Subpixel rendering: Adjust cliprect with devicePixelFractionFromRenderer() before painting.
https://bugs.webkit.org/show_bug.cgi?id=134950
<rdar://problem/17617994>

Reviewed by Simon Fraser.

The cliprect coming from the graphics layer needs to be adjusted with the subpixel gap
from renderer. This is symmetric with the offsetting we do, when the dirty rect is sent off to the GraphicsLayer.
It puts us back to the correct coordinating system for intersecting with renderers.

Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):

LayoutTests:
* compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position-expected.html: Added.
* compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html: Added.

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

5 years ago[iOS] Update order file paths for WebKit and WebKit2
ddkilzer@apple.com [Thu, 17 Jul 2014 01:38:06 +0000 (01:38 +0000)]
[iOS] Update order file paths for WebKit and WebKit2
<http://webkit.org/b/134993>
<rdar://problem/17557776>

Reviewed by Darin Adler.

Source/WebKit/mac:
* Configurations/Base.xcconfig: Rename WebKit.order to
WebKitLegacy.order.

Source/WebKit2:
* Configurations/Base.xcconfig: Add order file for iOS
named WebKit.order.

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

5 years agoFix a typo noticed by Darin.
simon.fraser@apple.com [Thu, 17 Jul 2014 01:10:22 +0000 (01:10 +0000)]
Fix a typo noticed by Darin.

* rendering/RenderBox.cpp:
(WebCore::shouldApplyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::shouldAppyContainersClipAndOffset): Deleted.

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

5 years agoImprove showTree() logging
simon.fraser@apple.com [Thu, 17 Jul 2014 01:04:22 +0000 (01:04 +0000)]
Improve showTree() logging
https://bugs.webkit.org/show_bug.cgi?id=134997

Reviewed by Tim Horton.

Have the debug showTree(), which dumps the Node/Element tree, show which nodes need
style recalc, and print element renderers.

* dom/Node.cpp:
(WebCore::Node::showNode):

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

5 years ago[iOS] Expose the points on WebEventRegion
simon.fraser@apple.com [Thu, 17 Jul 2014 01:04:20 +0000 (01:04 +0000)]
[iOS] Expose the points on WebEventRegion
https://bugs.webkit.org/show_bug.cgi?id=134978

Reviewed by Tim Horton.

Expose WebEventRegion's points so that UIKit can get at them.

* page/ios/WebEventRegion.h:
* page/ios/WebEventRegion.mm:
(-[WebEventRegion p1]):
(-[WebEventRegion p2]):
(-[WebEventRegion p3]):
(-[WebEventRegion p4]):

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

5 years agoAdd WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websi...
beidson@apple.com [Thu, 17 Jul 2014 00:20:21 +0000 (00:20 +0000)]
Add WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websiteDataURLForContainerWithURL: SPI

Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

* WebCore.exp.in:
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier): Add a form of createFromDatabaseIdentifier
    that can fail and return a nullptr.
(WebCore::SecurityOrigin::createFromDatabaseIdentifier): Use maybeCreateFromDatabaseIdentifier before creating
    the empty origin.
* page/SecurityOrigin.h:

Source/WebKit/mac:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

* WebCoreSupport/WebSecurityOrigin.mm:
(+[WebSecurityOrigin webSecurityOriginFromDatabaseIdentifier:]): Added.
(-[WebSecurityOrigin initWithURL:]): Update using RefPtr API to avoid a ref().
* WebCoreSupport/WebSecurityOriginPrivate.h:

Source/WebKit2:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

Change _websiteDataURLForContainerWithURL: SPI to include an optional bundle identifier argument:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _websiteDataURLForContainerWithURL:bundleIdentifierIfNotInContainer:]):
(+[WKProcessPool _websiteDataURLForContainerWithURL:]): Deleted.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

Add a big shiny comment in a few key places:
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::initializeDatabaseProcess):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
(WebKit::WebContext::ensureDatabaseProcess):

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

5 years agoREGRESSION (iOS WebKit2): Cannot scroll while dragging a selection.
enrica@apple.com [Thu, 17 Jul 2014 00:00:34 +0000 (00:00 +0000)]
REGRESSION (iOS WebKit2): Cannot scroll while dragging a selection.
https://bugs.webkit.org/show_bug.cgi?id=134992
<rdar://problem/17528020>

Reviewed by Benjamin Poulain.

This patch exposes the scroller and the visible content rect so that
UIKit can implement autoscroll when dragging the selections.
It also changes that way we do hit testing to allow hit test outside
the clipping region and fixes the way we compute the selection rectangle
for the block selection, ensuring that we consider also non text elements
like images.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView scroller]):
(-[WKContentView visibleRect]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionBoxForRange):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::WebPage::changeBlockSelection):

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

5 years agoCaptions container should not clip content.
roger_fong@apple.com [Wed, 16 Jul 2014 23:34:23 +0000 (23:34 +0000)]
Captions container should not clip content.
https://bugs.webkit.org/show_bug.cgi?id=134840.
<rdar://problem/14553608>.

Reviewed by Simon Fraser.

Tests: media/track/track-in-band-subtitles-too-large.html
       media/track/track-long-word-container-sizing.html

* Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-text-track-container):
Set word break property of WebCTT cues to normal to make it consistent with in-band cues.
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
Set -webkit-min-content on min-width/min-height property of the text track display.
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
Do the same for WebVTT cues.

* media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt: Rebaseline.
* media/track/captions-webvtt/long-word-small-track-display.vtt: Added.
* media/track/track-in-band-subtitles-too-large-expected.txt: Added.
* media/track/track-in-band-subtitles-too-large.html: Added.
* media/track/track-long-word-container-sizing-expected.txt: Added.
* media/track/track-long-word-container-sizing.html: Added.

We no longer break in the middle of a word, this test is no longer useful.
* media/track/captions-webvtt/long-word.vtt: Removed.
* media/track/track-word-breaking-expected.txt: Removed.
* media/track/track-word-breaking.html: Removed.

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

5 years ago[Mac] replace AVPlayerItem on the main thread
eric.carlson@apple.com [Wed, 16 Jul 2014 23:11:49 +0000 (23:11 +0000)]
[Mac] replace AVPlayerItem on the main thread
https://bugs.webkit.org/show_bug.cgi?id=134983

Reviewed by Jer Noble.

No new tests, this fixes a problem with a thread configuration not present in the
test environment.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setAVPlayerItem): New, when called off of
    the main thread, dispatch to the main thread before setting AVPlayerItem.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setAVPlayerItem.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Ditto.

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

5 years ago<rdar://problem/17669097> REGRESSION (r170155): Sandbox violations using a wrong
ap@apple.com [Wed, 16 Jul 2014 23:08:26 +0000 (23:08 +0000)]
<rdar://problem/17669097> REGRESSION (r170155): Sandbox violations using a wrong
CFNetwork cache path in WebContent process

Rubber-stamped by Sam Weinig.

Before r170155, we incorrectly checked usesNetworkProcess(), which always returns
false at this point in initialization sequence. But we did the right thing, as we
always need to set the cache path, even when network process is used for most loading.

* WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

5 years agoDispatch top content inset changes immediately if synchronously waiting for view...
timothy_horton@apple.com [Wed, 16 Jul 2014 22:36:24 +0000 (22:36 +0000)]
Dispatch top content inset changes immediately if synchronously waiting for view state changes
​https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>

Reviewed by Simon Fraser.

* UIProcess/API/mac/WKView.mm:
(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Move the check from _setTopContentInset: to _dispatchSetTopContentInset
that ensures that we only send the message if the top content inset changed.

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

5 years ago[iOS][WK2] Synchronize the dynamic viewport updates with their layer tree commit
benjamin@webkit.org [Wed, 16 Jul 2014 22:26:56 +0000 (22:26 +0000)]
[iOS][WK2] Synchronize the dynamic viewport updates with their layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134965
Related to <rdar://problem/17082607>

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

Dynamic viewport update relies on the _resizeAnimationTransformAdjustments being applied
to the page at the new size during the transition.

Because of the races between the LayerTree Commit and DynamicViewportSizeUpdate, the transform
can be applied to the wrong set of tiles.
This is mostly a problem for unresponsive WebProcess or when the synchronization is done
immediately.

There is at least one more case that is not handled: if synchronizeDynamicViewportUpdate()
completely fails to get the new page, the UIProcess is in a somewhat messy state.
I will look into that separately than the layer tree synchronization.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::synchronizeDynamicViewportUpdate):
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::nextTransactionID):
(WebKit::RemoteLayerTreeDrawingArea::currentTransactionID): Deleted.

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

5 years ago[MSE] http/tests/media/media-source/mediasource-buffered.html is flakey
jer.noble@apple.com [Wed, 16 Jul 2014 20:51:19 +0000 (20:51 +0000)]
[MSE] http/tests/media/media-source/mediasource-buffered.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=134949

Reviewed by Eric Carlson.

Depending on which SourceBuffer is successfully parsed first, the order of activeSourceBuffers
may change from run to run, breaking the http/tests/media/media-source/mediasource-buffered.html
test. Make the order of activeSourceBuffers the same as (a subset of) sourceBuffers, by replacing
calls to activeSourceBuffers->add() and with a new call to regenerateActiveSourceBuffers(), which
swaps the contents of the SourceBufferList with a new, ordered Vector.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::sourceBufferDidChangeAcitveState):
(WebCore::MediaSource::regenerateActiveSourceBuffers):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::swap):
* Modules/mediasource/SourceBufferList.h:

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

5 years agoCSP: Drop 'script-nonce' directive.
mkwst@chromium.org [Wed, 16 Jul 2014 20:31:06 +0000 (20:31 +0000)]
CSP: Drop 'script-nonce' directive.
https://bugs.webkit.org/show_bug.cgi?id=134926

Reviewed by Darin Adler.

Source/WebCore:
This patch drops the outdated 'script-nonce' Content Security
Policy directive. It was removed from the spec, and replaced in
CSP2 with a new 'script-src' syntax. We should implement that
instead.

Until then, removing the outdated syntax will ensure that no one
ends up relying on it in WebKit's implementation.

This should have limited web-visible impact, as the feature is
behind the CSP_NEXT flag, which is not enabled by default.

* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::allowJavaScriptURLs):
(WebCore::CSPDirectiveList::allowInlineEventHandlers):
(WebCore::CSPDirectiveList::addDirective):
(WebCore::NonceDirective::NonceDirective): Deleted.
(WebCore::NonceDirective::allows): Deleted.
(WebCore::NonceDirective::parse): Deleted.
(WebCore::CSPDirectiveList::checkNonce): Deleted.
(WebCore::CSPDirectiveList::checkNonceAndReportViolation): Deleted.
(WebCore::CSPDirectiveList::allowScriptNonce): Deleted.
(WebCore::isAllowedByAllWithNonce): Deleted.
(WebCore::ContentSecurityPolicy::allowScriptNonce): Deleted.
(WebCore::ContentSecurityPolicy::reportInvalidNonce): Deleted.
* page/ContentSecurityPolicy.h:

LayoutTests:
Dropping the nonce tests, as we're removing the functionality.

* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-expected.txt: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed.html: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked.html: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked-expected.txt: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked.html: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed-expected.txt: Removed.
* http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html: Removed.

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

5 years agoREGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRu...
jer.noble@apple.com [Wed, 16 Jul 2014 19:10:22 +0000 (19:10 +0000)]
REGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRunningChanged()
https://bugs.webkit.org/show_bug.cgi?id=134986

Reviewed by Eric Carlson.

Add a WeakPtrFactory to AudioHardwareListenerMac, so that if CoreAudio calls our block after
being unregistered, we can bail early instead of calling into a deleted object.

* platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
* platform/audio/mac/AudioHardwareListenerMac.h:

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

5 years ago[MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
jer.noble@apple.com [Wed, 16 Jul 2014 18:05:09 +0000 (18:05 +0000)]
[MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
https://bugs.webkit.org/show_bug.cgi?id=134941

Reviewed by Eric Carlson.

Source/WebCore:
Only do our modified-order change of the readyState if the error parameter is empty,
as that's the only case where a duration change will cause an inadvertant readyState
change.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::streamEndedWithError):

LayoutTests:
Update media/media-source/media-source-end-of-stream.html to use an empty parameter, rather
than an empty string parameter, to endOfStream().

* media/media-source/media-source-end-of-stream-expected.txt:
* media/media-source/media-source-end-of-stream.html:

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

5 years agoRemove svn:executable property erroneously added in <http://trac.webkit.org/changeset...
ap@apple.com [Wed, 16 Jul 2014 16:42:00 +0000 (16:42 +0000)]
Remove svn:executable property erroneously added in <trac.webkit.org/changeset/171144> somehow.

* ChangeLog: Removed property svn:executable.
* svg/SVGSVGElement.h: Removed property svn:executable.
* svg/animation/SVGSMILElement.h: Removed property svn:executable.

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

5 years agoREGRESSION (r170653): Web Content service’s Info.plist has wrong format
mitz@apple.com [Wed, 16 Jul 2014 16:33:04 +0000 (16:33 +0000)]
REGRESSION (r170653): Web Content service’s Info.plist has wrong format
https://bugs.webkit.org/show_bug.cgi?id=134973

Reviewed by Alexey Proskuryakov.

* WebKit2.xcodeproj/project.pbxproj: Updated the Add CFBundle Localization Info.plist Key
script build phases to convert Info.plist back to binary format if the
PLIST_FILE_OUTPUT_FORMAT build setting requires it.

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

5 years agoSubstitute CGRectZero for NSZeroRect in -[DOMNode hrefFrame].
dbates@webkit.org [Wed, 16 Jul 2014 15:38:55 +0000 (15:38 +0000)]
Substitute CGRectZero for NSZeroRect in -[DOMNode hrefFrame].

Rubber-stamped by Zalan Bujtas.

The method -[DOMNode hrefFrame] returns a CGRect. So, when we don't have a renderer
we should return CGRectZero instead of a NSZeroRect.

* bindings/objc/DOM.mm:
(-[DOMNode hrefFrame]): Also, fix up some code style issues.

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

5 years agomutable pointers from const methods, timeContainer().
commit-queue@webkit.org [Wed, 16 Jul 2014 15:03:37 +0000 (15:03 +0000)]
mutable pointers from const methods, timeContainer().
https://bugs.webkit.org/show_bug.cgi?id=134757

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-07-16
Reviewed by Alexey Proskuryakov.

Avoid return mutable pointers from const methods.
No new tests, no behavior change.

* svg/SVGSVGElement.h:
* svg/animation/SVGSMILElement.h:
(WebCore::SVGSMILElement::timeContainer):

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

5 years ago[EFL] Unreviewed EFL gardening.
jinwoo7.song@samsung.com [Wed, 16 Jul 2014 12:24:25 +0000 (12:24 +0000)]
[EFL] Unreviewed EFL gardening.

Rebaseline tests after r168575, r170138 and r170418.

* platform/efl/fast/dynamic/text-combine-expected.png: Rebaseline after r170418.
* platform/efl/fast/dynamic/text-combine-expected.txt: Rebaseline after r170418.
* platform/efl/fast/forms/control-restrict-line-height-expected.png: Rebaseline after r168575.
* platform/efl/fast/forms/control-restrict-line-height-expected.txt: Rebaseline after r168575.
* platform/efl/fast/forms/placeholder-position-expected.png: Rebaseline after r168575.
* platform/efl/fast/forms/placeholder-position-expected.txt: Rebaseline after r168575.
* platform/efl/fast/repaint/japanese-rl-selection-clear-expected.png: Rebaseline after r170418.
* platform/efl/fast/repaint/japanese-rl-selection-clear-expected.txt: Added. Rebaseline after r170418.
* platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.png: Rebaseline after r170418.
* platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.txt: Added. Rebaseline after r170418.
* platform/efl/fast/text/international/wrap-CJK-001-expected.txt: Added. Rebaseline after r170418.
* platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.png: Rebaseline after r170418.
* platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt: Rebaseline after r170418.

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

5 years agoChange style check path with EFL WK2's path in checker_unittest.py
gyuyoung.kim@samsung.com [Wed, 16 Jul 2014 11:20:52 +0000 (11:20 +0000)]
Change style check path with EFL WK2's path in checker_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=134967

Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/style/checker_unittest.py: Change ewk_view.h path.
(GlobalVariablesTest.test_path_rules_specifier):

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

5 years agoUnreviewed. Added myself to the list of committers.
clopez@igalia.com [Wed, 16 Jul 2014 10:26:40 +0000 (10:26 +0000)]
Unreviewed. Added myself to the list of committers.

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

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

5 years ago[EFL] Unreviewed EFL gardening after r170138.
jinwoo7.song@samsung.com [Wed, 16 Jul 2014 09:48:57 +0000 (09:48 +0000)]
[EFL] Unreviewed EFL gardening after r170138.

* platform/efl/accessibility/image-map2-expected.txt: Updated.
* platform/efl/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Updated.

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

5 years ago[CMAKE] ENABLE_ENCRYPTED_MEDIA_V2 should depend on ENABLE_VIDEO
ryuan.choi@samsung.com [Wed, 16 Jul 2014 06:04:05 +0000 (06:04 +0000)]
[CMAKE] ENABLE_ENCRYPTED_MEDIA_V2 should depend on ENABLE_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=134963

Reviewed by Gyuyoung Kim.

ENCRYPTED_MEDIA_V2 requires VIDEO enabled.

* Source/cmake/WebKitFeatures.cmake: Added the dependency for ENABLE_ENCRYPTED_MEDIA_V2.

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

5 years agoCSS: Generalize CSS First Letter treatment
utatane.tea@gmail.com [Wed, 16 Jul 2014 04:44:38 +0000 (04:44 +0000)]
CSS: Generalize CSS First Letter treatment
https://bugs.webkit.org/show_bug.cgi?id=134936

Reviewed by Benjamin Poulain.

first-letter pseudo element rule is handled differently from the other rules
such as first-line. This patch removes this special handling in SelectorChecker
and handles it in RulesFeatureSet.

* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
* css/RuleFeature.h:
(WebCore::RuleFeatureSet::RuleFeatureSet):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
* css/StyleResolver.h:
(WebCore::StyleResolver::usesFirstLetterRules):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
(WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::setUsesFirstLetterRules): Deleted.

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

5 years ago[EFL] Remove EFL WK1 directory from the checker.py
ryuan.choi@samsung.com [Wed, 16 Jul 2014 04:33:44 +0000 (04:33 +0000)]
[EFL] Remove EFL WK1 directory from the checker.py
https://bugs.webkit.org/show_bug.cgi?id=134954

Reviewed by Gyuyoung Kim.

* Scripts/webkitpy/style/checker.py:

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

5 years agoAdding myself to contributors.json breaks a webkitpy test
clopez@igalia.com [Wed, 16 Jul 2014 04:31:23 +0000 (04:31 +0000)]
Adding myself to contributors.json breaks a webkitpy test
https://bugs.webkit.org/show_bug.cgi?id=134958

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/tool/bot/irc_command_unittest.py:
(IRCCommandTest.test_whois): Be more specific and include also the
first name when asking for the whois of Xan in the unit test.

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

5 years agoFix r171124
benjamin@webkit.org [Wed, 16 Jul 2014 03:56:41 +0000 (03:56 +0000)]
Fix r171124

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-15

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
On landing, I changed the min/max branches to shrunkTo/expandedTo, but the return value
of those was ignored.

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

5 years agoWeb Inspector: Modernize UI styles and better sync with platform styles
jonowells@apple.com [Wed, 16 Jul 2014 03:07:03 +0000 (03:07 +0000)]
Web Inspector: Modernize UI styles and better sync with platform styles
https://bugs.webkit.org/show_bug.cgi?id=134846

Reviewed by Timothy Hatcher.

Updated styles to better match the OS UI design. Updated the forward/back button.
Moved several rules to selectors that support older OS designs. Added global platform
data to support this patch.

* UserInterface/Images/BackArrow.svg: Added.
* UserInterface/Images/BackArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/BackArrow.svg.
* UserInterface/Images/ForwardArrow.svg: Added.
* UserInterface/Images/ForwardArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/ForwardArrow.svg.

* UserInterface/Base/ImageUtilities.js: Updated image version
(.generateImage.generateModernImage):
(.generateImage.generateLegacyImage):
(.generateImage):
Updated image generation to support modern look. Updated versioning scheme and version.

* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString):
(WebInspector.contentLoaded.WebInspector.Platform.toString):
(WebInspector.contentLoaded):
Added global platform information.

* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Updated back and forward buttons.

* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Updated images for the find banner.

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Added new images.

* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .label):
(body.mac-platform.legacy .toolbar .item.button > .label):
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(body.mac-platform.legacy .style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child):
(.style-declaration-section + .style-declaration-section): Deleted.
(.style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
* UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li.elements-drag-over .selection):
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection):
(.dom-tree-outline:focus li.selected .selection):
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection):
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(body.mac-platform.legacy .toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container):
(.toolbar .dashboard):
(body.window-inactive .toolbar .dashboard):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard):
* UserInterface/Views/DataGrid.css:
(.data-grid th):
(body.mac-platform.legacy .data-grid th):
(.data-grid tr.selected):
(body.mac-platform.legacy .data-grid tr.selected):
(.data-grid:focus tr.selected):
(body.mac-platform.legacy .data-grid:focus tr.selected):
* UserInterface/Views/DetailsSection.css:
(.details-section):
(body.mac-platform.legacy .details-section):
(.details-section .details-section):
(body.mac-platform.legacy .details-section .details-section):
(.details-section .details-section:last-child):
(.details-section .details-section:first-child):
(.details-section > .header):
(body.mac-platform.legacy .details-section > .header):
(.details-section .details-section > .header):
(body.mac-platform.mountain-lion .details-section .details-section > .header):
(.details-section .details-section.collaspsed > .header):
(.details-section.computed-style-properties:not(.collapsed) > .header):
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header):
(.details-section > .content > .group):
(body.mac-platform.legacy .details-section > .content > .group):
(.details-section > .content > .group:last-child):
(.details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
(.details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
* UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
* UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
* UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
* UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li.selected):
(body.mac-platform.legacy .scope-bar > li.selected):
* UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):
* UserInterface/Views/Sidebar.css:
(.sidebar):
(body.mac-platform.legacy .sidebar):
(body.mac-platform.legacy.window-inactive .sidebar):
(body.mac-platform.legacy .sidebar.right):
(body.window-inactive .sidebar): Deleted.
(.sidebar.right): Deleted.
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
Style updates for new look and feel.

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

5 years agoFix non-iOS builds.
simon.fraser@apple.com [Wed, 16 Jul 2014 03:06:15 +0000 (03:06 +0000)]
Fix non-iOS builds.

* rendering/RenderBox.cpp:
(WebCore::shouldAppyContainersClipAndOffset):

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

5 years ago[iOS] Fix touches inside accelerated overflow:scroll
simon.fraser@apple.com [Wed, 16 Jul 2014 02:58:21 +0000 (02:58 +0000)]
[iOS] Fix touches inside accelerated overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=134961
<rdar://problem/16088789>

Reviewed by Benjamin Poulain.

When individual elements inside an overflow:scroll with -webkit-overflow-scrolling: touch
had touch event listeners, we would fail to take the scroll offset into account when
building the touch event region, causing touches on those elements to fail after scrolling.

Touch event region building uses RenderObject::absoluteClippedOverflowRect(), and that
code path tries to fix up repaint rects to work correctly in composited overflow:scroll.
However, that broke the touch region computation.

Fix by only ignoring the scroll offset for calls to computeRectForRepaint() which
have a non-null repaintContainer (which indicates that we're doing a repaint in the
compositing layer), and for which the repaintContainer is the containing block
which is using composited scrolling. This restores correct behavior to the event region
code which always calls this with a null repaintContainer.

* rendering/RenderBox.cpp:
(WebCore::shouldAppyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):

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

5 years agoUnreviewed, rolling out r171107.
commit-queue@webkit.org [Wed, 16 Jul 2014 02:26:49 +0000 (02:26 +0000)]
Unreviewed, rolling out r171107.
https://bugs.webkit.org/show_bug.cgi?id=134959

This was not the problem! (Requested by kling on #webkit).

Reverted changeset:

"Revert: Run the FastMalloc scavenger thread on iOS as well."
https://bugs.webkit.org/show_bug.cgi?id=134927
http://trac.webkit.org/changeset/171107

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

5 years agoMake css jit benchmark work on IE11.
achristensen@apple.com [Wed, 16 Jul 2014 01:40:54 +0000 (01:40 +0000)]
Make css jit benchmark work on IE11.
https://bugs.webkit.org/show_bug.cgi?id=134956

Reviewed by Benjamin Poulain.

* blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:
Remove an iframe which caused IE11 to try to open content as a URL.

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

5 years agoWKWebView’s FormClient::willSubmitForm should use CompletionHandlerCallChecker
mitz@apple.com [Wed, 16 Jul 2014 01:29:18 +0000 (01:29 +0000)]
WKWebView’s FormClient::willSubmitForm should use CompletionHandlerCallChecker
https://bugs.webkit.org/show_bug.cgi?id=134951

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setFormDelegate:]):

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

5 years ago[iOS][WK2] Scrolling request from the scrolling tree must be limited to offsets in...
benjamin@webkit.org [Wed, 16 Jul 2014 00:14:33 +0000 (00:14 +0000)]
[iOS][WK2] Scrolling request from the scrolling tree must be limited to offsets in the document
https://bugs.webkit.org/show_bug.cgi?id=134952
<rdar://problem/17647116>

Reviewed by Enrica Casucci.

When we received a scroll request, we were taking that offset directly to set the UIScrollView
scroll position. This is a problem if a page request scrolling to an invalid position, we were
still doing it.

This patch limits the position to be inside the document.

-- Why not limit the scroll offset in the WebProcess when we receive the scroll request? --

Some pages rely on the page scale factor changing instantly, because that is how it worked
on WebKit1.

On WebKit2, the WebProcess cannot know the valid range because the obscured insets are changing
dynamically, and the page scale factor can change in response to WebProcess events (the focus
changing for example). To make the page works, the WebProcess does not restrict the scroll position.

In that architecture, the UIProcess has to sanitize the input, which was not done before this patch.

-- Why not use changeContentOffsetBoundedInValidRange()?

The scroll offset as seen by the page is relative to the unobscured rect. While the position used
for history item is a visual position. All we need in this case is a position in the view.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::resendLastVisibleContentRects):

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

5 years agoReduce the overhead of updating the AssemblerBuffer
benjamin@webkit.org [Tue, 15 Jul 2014 23:59:14 +0000 (23:59 +0000)]
Reduce the overhead of updating the AssemblerBuffer
https://bugs.webkit.org/show_bug.cgi?id=134659

Reviewed by Gavin Barraclough.

In r164548, the linker was changed to allow the LinkBuffer to survive its MacroAssembler.
That feature is useful for JSC to get offsets inside a linked buffer in order to jump directly
there.

On ARM, we use branch compaction and we need to keep the "compaction offset" somewher to be able
to get the real address of a lable. That is done by reusing the memory of AssemblerData.

To share the memory between LinkBuffer and the Assembler, r164548 moved the AssemblerData into
a ref-counted object. Unfortunately, the extra complexity related to the new AssemblerData was enough
to make clang give up a bunch of optimizations.

This patch solve (some of) the problems by making AssemblerBuffer and AssemblerData super low overhead structures.
In particular, the grow() function becomes 8 Thumb instructions, which is easily inlined everywhere it is used.

Instead of sharing ownership between the Assembler and LinkBuffer, LinkBuffer now takes full ownership of
the AssemblerData. I feel this is also safer since LinkBuffer is reusing the AssemblerData is a very
specific way that would make it unusable for the Assembler.

-- Technical details --

From LinkBuffer, we don't want to ever access the Assembler after releasing its buffer (or writting anything
into it really). This was obviously already the case, but that was hard to prove from LinkBuffer::copyCompactAndLinkCode().
To make this easier to work with, I changed all the assembler specific function to be static. This way we know
exactly what code access the Assembler instance. The code that does access the instance is then moved
at the beginning, before we modify anything.

The function recordLinkOffsets() that was on the MacroAssembler and copied in Assembler was moved directly
to LinkBuffer. This make the modification of AssemblerData completely explicit, and that code is specific
to LinkBuffer anyway (see LinkBuffer::executableOffsetFor()).

-- Perf impact --

This does not put us exactly at before r164548 due to the missing inline buffer. Still, it is very close.
On ARMv7, this reduces the time spent in Assembler by half. On the CSS JIT, this reduces the compilation
time by ~20%.

I could not measure any difference on x86_64.

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::jumpSizeDelta):
(JSC::ARM64Assembler::canCompact):
(JSC::ARM64Assembler::computeJumpType):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::recordLinkOffsets): Deleted.
* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::ifThenElseConditionBit):
(JSC::ARMv7Assembler::ifThenElse):
(JSC::ARMv7Assembler::jumpSizeDelta):
(JSC::ARMv7Assembler::canCompact):
(JSC::ARMv7Assembler::computeJumpType):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkConditionalBX):
(JSC::ARMv7Assembler::recordLinkOffsets): Deleted.
* assembler/AssemblerBuffer.h:
(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::buffer):
(JSC::AssemblerData::capacity):
(JSC::AssemblerData::grow):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::isAvailable):
(JSC::AssemblerBuffer::data):
(JSC::AssemblerBuffer::releaseAssemblerData):
(JSC::AssemblerBuffer::putIntegral):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append):
(JSC::AssemblerBuffer::grow):
(JSC::AssemblerBuffer::~AssemblerBuffer): Deleted.
(JSC::AssemblerBuffer::storage): Deleted.
* assembler/LinkBuffer.cpp:
(JSC::recordLinkOffsets):
(JSC::LinkBuffer::copyCompactAndLinkCode):
* assembler/LinkBuffer.h:
(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::executableOffsetFor):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::recordLinkOffsets): Deleted.
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::canCompact):
(JSC::MacroAssemblerARMv7::computeJumpType):
(JSC::MacroAssemblerARMv7::jumpSizeDelta):
(JSC::MacroAssemblerARMv7::link):
(JSC::MacroAssemblerARMv7::recordLinkOffsets): Deleted.

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

5 years ago[OSX] [WK1] Crash when exiting fullscreen
mmaxfield@apple.com [Tue, 15 Jul 2014 22:51:14 +0000 (22:51 +0000)]
[OSX] [WK1] Crash when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=134943

Reviewed by Dean Jackson.

AppKit doesn't remove a view from the Key View Loop when removing it from its superview.

This codepath is already "tested" in fullscreen/full-screen-cancel.html, but because of our
testing infrastructure, the broken codepath doesn't actually get hit in DRT. Therefore,
there is no test.

* WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]):

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

5 years ago[iOS] Fix issues drawing subsampled image elements and CSS images
simon.fraser@apple.com [Tue, 15 Jul 2014 22:25:50 +0000 (22:25 +0000)]
[iOS] Fix issues drawing subsampled image elements and CSS images
https://bugs.webkit.org/show_bug.cgi?id=134944
<rdar://problem/17634095>

Reviewed by Dean Jackson.

After r170675 it is important for BitmapImage::draw() to be given a srcRect computed
using the original size of the image, not the subsampled size.

So fix various code paths that end up in image drawing to use the originalSize(),
which requires giving Image a virtual function that just returns size(), and hence has
a FloatSize return value.

Tested by setting a very low subsampling threshold and browsing various sites.

A better longterm fix will happen via bug 134916.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::originalSize):
* platform/graphics/BitmapImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):
* platform/graphics/Image.h:
(WebCore::Image::originalSize):
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage): Just use m_size for initializing the other members.
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):

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

5 years agoVersioning.
lforschler@apple.com [Tue, 15 Jul 2014 21:32:20 +0000 (21:32 +0000)]
Versioning.

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

5 years agoDispatch top content inset changes immediately if synchronously waiting for view...
timothy_horton@apple.com [Tue, 15 Jul 2014 21:26:27 +0000 (21:26 +0000)]
Dispatch top content inset changes immediately if synchronously waiting for view state changes
https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>

Reviewed by Simon Fraser.

* UIProcess/API/mac/WKView.mm:
(-[WKView endDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChangesSync]):
(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Send top content inset changes immediately before sync-waiting for new tiles from the Web Process.
This will ensure that the incoming contents have the right top content inset, and we don't
flash between the wrong inset and the right one.

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

5 years ago[Win] Unreviewed build fix after r171069.
bfulgham@apple.com [Tue, 15 Jul 2014 21:17:25 +0000 (21:17 +0000)]
[Win] Unreviewed build fix after r171069.

Add missing AudioHardwareListener implementation on Windows.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

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

5 years agoStores to PropertyTable use the Structure as the owner
mhahnenberg@apple.com [Tue, 15 Jul 2014 21:05:43 +0000 (21:05 +0000)]
Stores to PropertyTable use the Structure as the owner
https://bugs.webkit.org/show_bug.cgi?id=134595

Reviewed by Darin Adler.

Since PropertyTable is the object that does the marking of these references, it should be the owner.

Also removed some unused parameters to other methods that historically used the Structure as the owner.

* runtime/JSPropertyNameIterator.h:
(JSC::StructureRareData::setEnumerationCache):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::copy):
* runtime/PropertyTable.cpp:
(JSC::PropertyTable::clone):
(JSC::PropertyTable::PropertyTable):
* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::copyPropertyTable):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::putSpecificValue):
* runtime/Structure.h:
(JSC::Structure::setObjectToStringValue):
(JSC::Structure::setPreviousID):
* runtime/StructureInlines.h:
(JSC::Structure::setEnumerationCache):
* runtime/StructureRareData.h:
* runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::setPreviousID):
(JSC::StructureRareData::setObjectToStringValue):

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

5 years agoREGRESSION(WK2 iOS): Safari hangs when switching focus from a field using the Tab...
enrica@apple.com [Tue, 15 Jul 2014 20:52:12 +0000 (20:52 +0000)]
REGRESSION(WK2 iOS): Safari hangs when switching focus from a field using the Tab key.
https://bugs.webkit.org/show_bug.cgi?id=134934
<rdar://problem/17224638>

Reviewed by Tim Horton.

* UIProcess/ios/WKContentViewInteraction.mm:

Tab and back tab should be handled as special keys that have
a command associated. The command specifies for each key the relevant
action. This patch implements the commands property to create the association
between key and command and the relevant actions that will execute the same
code executed when the used taps on the < > buttons in the accessory bar.

(-[WKContentView keyCommands]):
(-[WKContentView _nextAccessoryTab:]):
(-[WKContentView _prevAccessoryTab:]):

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

5 years agoMore tidying of the webcontent sandbox profile
oliver@apple.com [Tue, 15 Jul 2014 20:31:50 +0000 (20:31 +0000)]
More tidying of the webcontent sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=134938

Reviewed by Alexey Proskuryakov.

Remove some excessive abilities from the profile and make
the required ones explicit.

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

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

5 years agoScriptExecutable::forEachCodeBlock can dereference null CodeBlocks
mhahnenberg@apple.com [Tue, 15 Jul 2014 19:11:57 +0000 (19:11 +0000)]
ScriptExecutable::forEachCodeBlock can dereference null CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=134928

Reviewed by Andreas Kling.

* bytecode/CodeBlock.h:
(JSC::ScriptExecutable::forEachCodeBlock): Check for null CodeBlocks before calling forEachRelatedCodeBlock.

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

5 years agoRevert: Run the FastMalloc scavenger thread on iOS as well.
akling@apple.com [Tue, 15 Jul 2014 18:34:35 +0000 (18:34 +0000)]
Revert: Run the FastMalloc scavenger thread on iOS as well.
<https://webkit.org/b/134927>
<rdar://problem/17485079>

This appears to be the cause of some elusive crashes, and since I don't
have a way to reproduce them, let's just go back to not running the
scavenger thread on iOS.

Reviewed by Antti Koivisto.

* wtf/FastMalloc.cpp:

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

5 years agoREGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
antti@apple.com [Tue, 15 Jul 2014 14:59:58 +0000 (14:59 +0000)]
REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
https://bugs.webkit.org/show_bug.cgi?id=134888

Reviewed by Mihnea Ovidenie.

Source/WebCore:
Test: fast/regions/flowthread-getranges-box-cast.html

* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.

LayoutTests:
* fast/regions/flowthread-getranges-box-cast-expected.txt: Added.
* fast/regions/flowthread-getranges-box-cast.html: Added.

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

5 years agoBuildfix if LLINT_SLOW_PATH_TRACING is enabled
commit-queue@webkit.org [Tue, 15 Jul 2014 10:49:58 +0000 (10:49 +0000)]
Buildfix if LLINT_SLOW_PATH_TRACING is enabled
https://bugs.webkit.org/show_bug.cgi?id=133790

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-07-15
Reviewed by Mark Lam.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

5 years ago[GTK] Update GObject DOM bindings symbols file after r171014.
commit-queue@webkit.org [Tue, 15 Jul 2014 09:34:16 +0000 (09:34 +0000)]
[GTK] Update GObject DOM bindings symbols file after r171014.
https://bugs.webkit.org/show_bug.cgi?id=134907

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-15
Reviewed by Philippe Normand.

* bindings/gobject/webkitdom.symbols: Update to the current API.

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

5 years agoUnreviwed fix wrong indentation from r171082.
rego@igalia.com [Tue, 15 Jul 2014 09:15:11 +0000 (09:15 +0000)]
Unreviwed fix wrong indentation from r171082.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

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

5 years ago[iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
akling@apple.com [Tue, 15 Jul 2014 03:04:57 +0000 (03:04 +0000)]
[iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
<https://webkit.org/b/134915>

When we're under memory pressure, the last thing we want to be doing is
creating gratuitous new IOSurfaces. Just wait for the gesture to end before
rendering at the new scale.

Reviewed by Tim Horton.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):

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

5 years agoSubpixel rendering: Zero sized compositing container's content positioned off by...
zalan@apple.com [Tue, 15 Jul 2014 02:55:26 +0000 (02:55 +0000)]
Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.
https://bugs.webkit.org/show_bug.cgi?id=134903

Reviewed by Simon Fraser.

The compositing layer boundaries are calculated using its renderer()'s and the renderer()'s
descendants' bounds. However when the renderer() is zero sized, its bounds are omitted.
In such cases, when the child content has offset from the renderer(), the subpixel adjustment
of the compositing layer becomes negative (-meaning that the compositing layer is to the right/bottom
direction from its renderer()). Remove fabs() to be able to express such direction.

Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-zero-sized-container.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:
* compositing/hidpi-compositing-layer-with-zero-sized-container-expected.html: Added.
* compositing/hidpi-compositing-layer-with-zero-sized-container.html: Added.

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

5 years agoFix crash on WebVideoFullscreenManagerProxy construction.
commit-queue@webkit.org [Tue, 15 Jul 2014 02:15:23 +0000 (02:15 +0000)]
Fix crash on WebVideoFullscreenManagerProxy construction.
https://bugs.webkit.org/show_bug.cgi?id=134909

Unreviewed fix crash from r171089

Remove unnecessary dispatch to main queue since it can happen during construction.

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): remove dispatch_async

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

5 years ago[Cocoa] _WKRemoteObjectInterface leaks NSString ivar
commit-queue@webkit.org [Tue, 15 Jul 2014 01:52:32 +0000 (01:52 +0000)]
[Cocoa] _WKRemoteObjectInterface leaks NSString ivar
https://bugs.webkit.org/show_bug.cgi?id=134914

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-07-14
Reviewed by Simon Fraser.

Release our copied NSString in dealloc.

* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface dealloc]):

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

5 years agoProvide some large JPEG images with EXIF orientation for subsampling tests
dino@apple.com [Tue, 15 Jul 2014 01:37:28 +0000 (01:37 +0000)]
Provide some large JPEG images with EXIF orientation for subsampling tests
https://bugs.webkit.org/show_bug.cgi?id=134847

Reviewed by Sam Weinig.

Four images (either 3000x2000 or 2000x3000) that each have EXIF rotation
attributes that should render with an arrow pointing UP. The
orientation-rotate-0.jpg should always render correctly, even if EXIF
rotation is ignored. The others are variations on that image that were
saved in rotated form, then reverted to the correct orientation via EXIF.

* fast/canvas/resources/orientation-rotate-0.jpg: Added.
* fast/canvas/resources/orientation-rotate-180.jpg: Added.
* fast/canvas/resources/orientation-rotate-90-ccw.jpg: Added.
* fast/canvas/resources/orientation-rotate-90-cw.jpg: Added.

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

5 years agoAllow for Int52Rep to see things other than Int32, and make this testable
fpizlo@apple.com [Tue, 15 Jul 2014 00:41:39 +0000 (00:41 +0000)]
Allow for Int52Rep to see things other than Int32, and make this testable
https://bugs.webkit.org/show_bug.cgi?id=134873
<rdar://problem/17641915>

Reviewed by Geoffrey Garen and Mark Hahnenberg.

A major premise of our type inference is that prediction propagation can say whatever it
wants and we'll still have valid IR after Fixup. This previously didn't work with Int52s.
We required some kind of agreement between prediction propagation and fixup over which
data flow paths were Int52 and which weren't.

It turns out that we basically had such an agreement, with the exception of code that was
unreachable due to ForceOSRExit. Then, fixup and prediction propagation would disagree. It
might be nice to fix that bug - but it's only in the case of Int52 that such a thing would
be a bug! Normally, we allow sloppiness in prediction propagation.

This patch allows us to be sloppy with Int52 prediction propagation by giving Int52Rep the
ability to see inputs other than Int32. This fixes the particular ForceOSRExit bug (see
int52-force-osr-exit-path.js for the reduced test case). To make sure that the newly
empowered Int52Rep is actually correct - in case we end up using it on paths other than
ForceOSRExit - this patch introduces an internal intrinsic called fiatInt52() that forces
us to attempt Int52 conversion on the input. This patch adds a bunch of tests that stress
this intrinsic. This means that we're now stressing Int52Rep more so than ever before!

Note that it would still be a bug for prediction propagation to ever cause us to create an
Int52Rep node for a non-Int32 input. But, this will now be a performance bug, rather than
a crash bug.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsic):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::isMachineIntConstant):
* dfg/DFGNode.h:
(JSC::DFG::Node::isMachineIntConstant):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculate):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertMachineInt):
(JSC::DFG::SpeculativeJIT::speculateMachineInt):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepMachineInt):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* dfg/DFGUseKind.cpp:
(WTF::printInternal):
* dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::doubleToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepMachineInt):
* jit/JITOperations.h:
* jsc.cpp:
(GlobalObject::finishCreation):
(functionIdentity):
* runtime/Intrinsic.h:
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::tryConvertToInt52):
(JSC::isInt52):
(JSC::JSValue::isMachineInt):
* tests/stress/dead-fiat-double-to-int52-then-exit-not-int52.js: Added.
(foo):
* tests/stress/dead-fiat-double-to-int52.js: Added.
(foo):
* tests/stress/dead-fiat-int32-to-int52.js: Added.
(foo):
* tests/stress/dead-fiat-value-to-int52-double-path.js: Added.
(foo):
(bar):
* tests/stress/dead-fiat-value-to-int52-then-exit-not-double.js: Added.
(foo):
(bar):
* tests/stress/dead-fiat-value-to-int52-then-exit-not-int52.js: Added.
(foo):
(bar):
* tests/stress/dead-fiat-value-to-int52.js: Added.
(foo):
(bar):
* tests/stress/fiat-double-to-int52-then-exit-not-int52.js: Added.
(foo):
* tests/stress/fiat-double-to-int52-then-fail-to-fold.js: Added.
(foo):
* tests/stress/fiat-double-to-int52-then-fold.js: Added.
(foo):
* tests/stress/fiat-double-to-int52.js: Added.
(foo):
* tests/stress/fiat-int32-to-int52.js: Added.
(foo):
* tests/stress/fiat-value-to-int52-double-path.js: Added.
(foo):
(bar):
* tests/stress/fiat-value-to-int52-then-exit-not-double.js: Added.
(foo):
(bar):
* tests/stress/fiat-value-to-int52-then-exit-not-int52.js: Added.
(foo):
(bar):
* tests/stress/fiat-value-to-int52-then-fail-to-fold.js: Added.
(foo):
* tests/stress/fiat-value-to-int52-then-fold.js: Added.
(foo):
* tests/stress/fiat-value-to-int52.js: Added.
(foo):
(bar):
* tests/stress/int52-force-osr-exit-path.js: Added.
(foo):

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

5 years ago[PlugIns] Check for a non-null snapshot image before trying to decode it
dino@apple.com [Tue, 15 Jul 2014 00:14:34 +0000 (00:14 +0000)]
[PlugIns] Check for a non-null snapshot image before trying to decode it
https://bugs.webkit.org/show_bug.cgi?id=134913
<rdar://problem/17606033>

Reviewed by Tim Horton.

Changeset r169820 introduced a bug where we could examine the pixels of
an image (looking for solid colors) before checking if the image actually
existed.

I added a null check, and moved the code around a bit to avoid checking
for existence three times.

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired): Check that snapshotImage exists
before trying to look at it.

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

5 years ago[iOS] Add tests to ensure CSS :active and :hover are applied when processing touch...
dbates@webkit.org [Tue, 15 Jul 2014 00:14:03 +0000 (00:14 +0000)]
[iOS] Add tests to ensure CSS :active and :hover are applied when processing touch events
https://bugs.webkit.org/show_bug.cgi?id=134905
<rdar://problem/16602779>

Reviewed by Simon Fraser.

.:
Add a manual test to ensure that styles for CSS pseudo-class :hover aren't temporarily cleared
on the tapped element when processing a touchend as a result of finger pressing and releasing
on the same element that is initially positioned outside the visible content area.

* ManualTests/ios/touchstart-touchend-on-same-element-should-not-clear-hover.html: Added.

LayoutTests:
Upstream tests by Andreas Kling for <rdar://problem/14324231>.

Add a DRT test to ensure that we apply the style for the CSS pseudo-class :active when
processing touch events.

* platform/iphone-simulator/fast/events/ontouchstart-active-selector-expected.txt: Added.
* platform/iphone-simulator/fast/events/ontouchstart-active-selector.html: Added.

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

5 years agoFix 32-bit build.
andersca@apple.com [Tue, 15 Jul 2014 00:09:12 +0000 (00:09 +0000)]
Fix 32-bit build.

* UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):

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

5 years agoFlattening dictionaries with oversize backing stores can cause crashes
mhahnenberg@apple.com [Mon, 14 Jul 2014 23:59:15 +0000 (23:59 +0000)]
Flattening dictionaries with oversize backing stores can cause crashes
https://bugs.webkit.org/show_bug.cgi?id=134906

Reviewed by Filip Pizlo.

The collector expects any pointers into CopiedSpace passed to copyLater are within 32 KB
of the CopiedBlock header. This was always the case except for when flattening a dictionary
caused the size of the Butterfly to decrease. This was equivalent to moving the base of the
Butterfly to higher addresses. If the object was reduced sufficiently in size, the base
would no longer be within the first 32 KB of the CopiedBlock and the next collection would
choke on the Butterfly pointer.

This patch fixes this issue by detect this situation during flattening and memmove-ing
the Butterfly down to where the old base was.

* runtime/JSObject.cpp:
(JSC::JSObject::shiftButterflyAfterFlattening):
* runtime/JSObject.h:
(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):
* runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):
* tests/stress/flatten-oversize-dictionary-object.js: Added.
(foo):

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

5 years agoUse the legacy session coder for encoding/decoding session state
andersca@apple.com [Mon, 14 Jul 2014 23:35:47 +0000 (23:35 +0000)]
Use the legacy session coder for encoding/decoding session state
https://bugs.webkit.org/show_bug.cgi?id=134910

Reviewed by Beth Dakin.

* UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):
(WebKit::decodeSessionState):

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

5 years agoRestrict network process to remote connections
oliver@apple.com [Mon, 14 Jul 2014 23:13:56 +0000 (23:13 +0000)]
Restrict network process to remote connections
https://bugs.webkit.org/show_bug.cgi?id=134908

Reviewed by Geoffrey Garen.

Further restrict network client

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

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

5 years agoWebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
commit-queue@webkit.org [Mon, 14 Jul 2014 22:32:01 +0000 (22:32 +0000)]
WebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
https://bugs.webkit.org/show_bug.cgi?id=134890

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14
Reviewed by Eric Carlson.

dispatch_async to the main thread before setting properties that would affect the UI.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): wrap in call to dispatch_async
(WebVideoFullscreenInterfaceAVKit::setDuration): ditto
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
(WebVideoFullscreenInterfaceAVKit::setRate): ditto
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto

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

5 years agocheck-webkit-style should apply C++ rules to Objective-C++ files
dbates@webkit.org [Mon, 14 Jul 2014 22:22:28 +0000 (22:22 +0000)]
check-webkit-style should apply C++ rules to Objective-C++ files
https://bugs.webkit.org/show_bug.cgi?id=134884

Reviewed by Joseph Pecoraro.

Fixes an issue where check-webkit-style doesn't apply applicable C++ rules to
Objective-C++ files.

Currently check-webkit-style doesn't apply the following rules to Objective-C++
files: build/using_std, runtime/max_min_macros, runtime/wtf_move, readability/null.
Instead, we should teach check-webkit-style to apply these rules because, as
its name implies, an Objective-C++ file may contain C++ code.

* Scripts/webkitpy/style/checkers/cpp.py:
(_FileState.__init__): Add instance variable _is_objective_cpp to track whether a file has
extension mm (i.e. an Objective-C++ file).
(_FileState.is_objective_c_or_objective_cpp): Added; returns true if the file
has extension m or mm or if the file has extension h and contains Objective-C directives.
(check_for_null): No change in behavior; don't apply rule to Objective-C++ file.
(check_identifier_name_in_declaration): Substitute _FileState.is_objective_c_or_objective_cpp() for
_FileState.is_c_or_objective_c()
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_null_false_zero): Added test case for Objective-C++ file.
(WebKitStyleTest.test_max_macro): Add test case for Objective-C and Objective-C++ file.
(WebKitStyleTest.test_min_macro): Ditto.
(WebKitStyleTest.test_wtf_move): Add test case for Objective-C++ file.

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

5 years agoASSERT(isMainThread()) under OneShotDisplayLinkHandler
timothy_horton@apple.com [Mon, 14 Jul 2014 22:00:09 +0000 (22:00 +0000)]
ASSERT(isMainThread()) under OneShotDisplayLinkHandler
https://bugs.webkit.org/show_bug.cgi?id=134900

Reviewed by Simon Fraser.

* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[OneShotDisplayLinkHandler displayLinkFired:]):
isMainThread means the Web thread sometimes.

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

5 years agoFix the build.
timothy_horton@apple.com [Mon, 14 Jul 2014 21:57:59 +0000 (21:57 +0000)]
Fix the build.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _frameOrBoundsChanged]):

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

5 years ago[UNIX] Log error description when failing to create shared memory file.
commit-queue@webkit.org [Mon, 14 Jul 2014 21:37:21 +0000 (21:37 +0000)]
[UNIX] Log error description when failing to create shared memory file.
https://bugs.webkit.org/show_bug.cgi?id=134892

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-14
Reviewed by Darin Adler.

* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::create): Print the string describing the error number (errno).

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

5 years agoFix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
commit-queue@webkit.org [Mon, 14 Jul 2014 21:29:08 +0000 (21:29 +0000)]
Fix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
https://bugs.webkit.org/show_bug.cgi?id=134679

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-14
Reviewed by Darin Adler.

* html/ImageData.cpp:
* platform/graphics/cairo/ImageBufferCairo.cpp:

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

5 years ago[CSS Grid Layout] Support sparse in auto-placement algorithm
rego@igalia.com [Mon, 14 Jul 2014 21:23:49 +0000 (21:23 +0000)]
[CSS Grid Layout] Support sparse in auto-placement algorithm
https://bugs.webkit.org/show_bug.cgi?id=134544

Reviewed by Sergio Villar Senin.

Source/WebCore:
This patch implements sparse mode for auto-placement algorithm, which is
the default mode in the new grid-auto-flow syntax. It keeps track of the
auto-placement cursor in
RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
when auto-positioned items are placed.
If we're in dense mode it resets the cursor after each item (which keeps
the old behavior that was using dense mode by default).

GridIterator has been adapted to look for empty areas from a given
position in both directions.

Test: fast/css-grid-layout/grid-auto-flow-sparse.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
add an optional argument for the varying index. This allows to look for
empty areas in both axis.
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
auto-placement cursor and rested after each item if we're in dense mode.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
cursor to look for empty areas from the last auto-positioned item
placed.
* rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header
to receive the auto-placement cursor.

LayoutTests:
Test cases have been adapted accordingly, adding new cases to cover both
sparse and dense options.

* fast/css-grid-layout/grid-auto-flow-resolution-expected.txt:
* fast/css-grid-layout/grid-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-flow-sparse-expected.txt: Added.
* fast/css-grid-layout/grid-auto-flow-sparse.html: Added.
* fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
* fast/css-grid-layout/grid-item-auto-placement-automatic-span-expected.txt:
* fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
* fast/css-grid-layout/grid-item-auto-placement-definite-span-expected.txt:
* fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
* fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
* fast/css-grid-layout/resources/grid.css:
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowDense):

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

5 years ago[iOS] Some videos play as inline audio-only content
bfulgham@apple.com [Mon, 14 Jul 2014 21:22:10 +0000 (21:22 +0000)]
[iOS] Some videos play as inline audio-only content
https://bugs.webkit.org/show_bug.cgi?id=134898.
<rdar://problem/17629379>

Reviewed by Eric Carlson.

Add a new 'presentationType' accessor that indicates if the media
element is playing in 'audio' mode. This can happen if a video
element plays an HLS stream that starts off in audio-only mode.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::presentationType): Added.
* html/HTMLMediaElement.h:
* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::presentationType): Added.
* platform/audio/MediaSession.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
Use the presentationType, rather than the mediaType to control
inline playback behavior.
* platform/audio/ios/AudioDestinationIOS.h:
(WebCore::AudioDestinationMac::presentationType): Add presentationType.
* platform/audio/mac/AudioDestinationMac.h:
(WebCore::AudioDestinationMac::presentationType): Ditto.

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

5 years ago[iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the...
benjamin@webkit.org [Mon, 14 Jul 2014 21:07:43 +0000 (21:07 +0000)]
[iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the wrong orientation
https://bugs.webkit.org/show_bug.cgi?id=134875

Reviewed by Tim Horton.

On animated resize, the size of the DrawingAreaProxy was changed before the layout parameters were
changed. This in turn caused the WebProcess's DrawingArea to flush the layer tree while still
at the wrong orientation.

This patch fixes the issue by making a special case for animated resize:
-While starting animated resize, _frameOrBoundsChanged can be called several times in response to
 the API's client changing the WKWebView. In that case, we do not update the drawing area.
-After the "updateBlock" is executed and the size have been changed, the dynamic viewport update
 is computed, the dynamicViewportSizeUpdate is sent to the WebProcess, followed by the message
 DrawingArea::updateGeometry(). Since both messages are asynchronous, they are received in that
 order, and the updateGeometry() is always done after the viewport configuration has been updated.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView setMinimumSize:]): Deleted.

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

5 years ago[iOS][WK2] Fix withinEpsilon()
benjamin@webkit.org [Mon, 14 Jul 2014 21:02:19 +0000 (21:02 +0000)]
[iOS][WK2] Fix withinEpsilon()
https://bugs.webkit.org/show_bug.cgi?id=134798

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-14
Reviewed by Darin Adler.

Move the function back to WKWebView, it is no longer needed in WKContentView.

Use the real types as input to properly verify that the two inputs are within
a small value of the 32bit floating point.

The epsilon we use is always on 32 bits float because we want to avoid doing work for changes
that would not make any difference on float.

The source of those small changes comes from the fact UIProcess does a lot of processing
on CGFloat, which are double on 64bits architecture, while the WebProcess use 32bits floating point
for scale. When we are getting updates from the WebProcess, we should ignore any small differences
caused by the computations done with less precision.

* UIProcess/API/Cocoa/WKWebView.mm:
(withinEpsilon):
* UIProcess/ios/WKContentViewInteraction.h:
(withinEpsilon): Deleted.

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

5 years agoRemove some dead code from FTLJITFinalizer
benjamin@webkit.org [Mon, 14 Jul 2014 20:55:14 +0000 (20:55 +0000)]
Remove some dead code from FTLJITFinalizer
https://bugs.webkit.org/show_bug.cgi?id=134874

Reviewed by Geoffrey Garen.

Not sure what that code was for...but it does not do anything :)

* ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
The pointer of the label is computed but never used.

* ftl/FTLJITFinalizer.h:
* ftl/FTLLink.cpp:
(JSC::FTL::link):
The label is never set to anything.

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

5 years ago[Feature Queries] Enable Feature Queries on Mac
betravis@adobe.com [Mon, 14 Jul 2014 20:12:31 +0000 (20:12 +0000)]
[Feature Queries] Enable Feature Queries on Mac
https://bugs.webkit.org/show_bug.cgi?id=134404

Reviewed by Antti Koivisto.

Source/JavaScriptCore:
Enable Feature Queries on Mac and resume running the
feature tests.

* Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebCore:
Enable Feature Queries on Mac and resume running the
feature tests.

* Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit/mac:
Enable Feature Queries on Mac and resume running the
feature tests.

* Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit2:
Enable Feature Queries on Mac and resume running the
feature tests.

* Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.

LayoutTests:
Resume running the Feature Queries tests on Mac.

* platform/mac/TestExpectations: Unskip the tests.

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

5 years ago<rdar://problem/17305458> Cannot interact with video controls in ePubs
hyatt@apple.com [Mon, 14 Jul 2014 19:51:28 +0000 (19:51 +0000)]
<rdar://problem/17305458> Cannot interact with video controls in ePubs
Bug 134836 - [New Multicolumn] Crawl to check for compositing between us and the enclosingPaginationLayer
https://bugs.webkit.org/show_bug.cgi?id=134836

Reviewed by Dean Jackson.

The paginatedAndComposited bit being set in updateLayerPositions just didn't work, since compositing states
can change without triggering that function. This patch just gets rid of the bit and does a crawl every time
to check. This ensures that changes in compositing states don't necessitate any changes in pagination,
since the lookup will always check the current compositing state.

The new function that does this check is hasCompositedLayerInEnclosingPaginationChain.

I have been unable to reproduce this issue, and this is therefore a purely speculative fix. I have no test
case to provide because of this.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hasCompositedLayerInEnclosingPaginationChain):
(WebCore::RenderLayer::updatePagination):
* rendering/RenderLayer.h:

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

5 years agoMove composite bounds calculation to RenderLayerBacking.
zalan@apple.com [Mon, 14 Jul 2014 19:15:24 +0000 (19:15 +0000)]
Move composite bounds calculation to RenderLayerBacking.
https://bugs.webkit.org/show_bug.cgi?id=134864

Reviewed by Darin Adler.

No change in functionality.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
* rendering/RenderLayerCompositor.cpp: it was just proxying the calculateLayerBounds()
to the RenderLayer.
(WebCore::RenderLayerCompositor::calculateCompositedBounds): Deleted.
* rendering/RenderLayerCompositor.h:

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

5 years agoMake shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid...
andersca@apple.com [Mon, 14 Jul 2014 19:14:21 +0000 (19:14 +0000)]
Make shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid breaking ABI
https://bugs.webkit.org/show_bug.cgi?id=134889

Reviewed by Beth Dakin.

Source/WebKit2:
* UIProcess/API/C/WKPage.cpp:
* UIProcess/API/C/WKPageLoaderClient.h:

Tools:
Bump loader version number to 5.

* TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp:
(TestWebKitAPI::setPageLoaderClient):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::createWebViewWithOptions):

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