WebKit-https.git
5 years agostd::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
carlosgc@webkit.org [Mon, 28 Apr 2014 08:16:15 +0000 (08:16 +0000)]
std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Patch by Zan Dobersek <zdobersek@igalia.com> on 2014-04-28
Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

* css/CSSParser.cpp:
(WebCore::filterProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):

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

5 years agostd::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
zandobersek@gmail.com [Mon, 28 Apr 2014 08:12:08 +0000 (08:12 +0000)]
std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

* css/CSSParser.cpp:
(WebCore::filterProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):

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

5 years ago[GTK] TextTrack kind and mode attributes are enums since r166180
carlosgc@webkit.org [Mon, 28 Apr 2014 08:06:54 +0000 (08:06 +0000)]
[GTK] TextTrack kind and mode attributes are enums since r166180
https://bugs.webkit.org/show_bug.cgi?id=132228

Reviewed by Martin Robinson.

We don't support enum values yet in GObject DOM bindings, but they
are internally strings anyway, so we can keep the old
implementations using strings as custom functions until we
properly support enums.

* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_text_track_get_kind):
(webkit_dom_text_track_get_mode):
(webkit_dom_text_track_set_mode):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols:

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

5 years ago[GTK] TextTrack::addCue can raise an exception since r163974
carlosgc@webkit.org [Mon, 28 Apr 2014 08:03:00 +0000 (08:03 +0000)]
[GTK] TextTrack::addCue can raise an exception since r163974
https://bugs.webkit.org/show_bug.cgi?id=132227

Reviewed by Martin Robinson.

webkit_dom_text_track_add_cue() now receives a GError paramater
which is an API break. Add
webkit_dom_text_track_add_cue_with_error and keep
webkit_dom_text_track_add_cue as deprecated to keep API
compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_text_track_add_cue):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:
* bindings/gobject/webkitdom.symbols:
* bindings/scripts/CodeGeneratorGObject.pm:
(GetEffectiveFunctionName):

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

5 years ago[GTK] TextTrackCue API changed in r163649
carlosgc@webkit.org [Mon, 28 Apr 2014 07:57:18 +0000 (07:57 +0000)]
[GTK] TextTrackCue API changed in r163649
https://bugs.webkit.org/show_bug.cgi?id=132226

Reviewed by Martin Robinson.

TextTrackCue is now a base class and part of its API was moved to
the derived class VTTCue. Update the GObject DOM bindings to keep
backwards compatibility.

* PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
favor of VTTCue API.
(webkit_dom_text_track_cue_get_vertical): Ditto.
(webkit_dom_text_track_cue_set_vertical): Ditto.
(webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_get_line): Ditto.
(webkit_dom_text_track_cue_set_line): Ditto.
(webkit_dom_text_track_cue_get_position): Ditto.
(webkit_dom_text_track_cue_set_position): Ditto.
(webkit_dom_text_track_cue_get_size): Ditto.
(webkit_dom_text_track_cue_set_size): Ditto.
(webkit_dom_text_track_cue_get_align): Ditto.
(webkit_dom_text_track_cue_set_align): Ditto.
(webkit_dom_text_track_cue_get_text): Ditto.
(webkit_dom_text_track_cue_set_text): Ditto.
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
* bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
base class to generate DataCue or VTTCue objects.
* bindings/gobject/WebKitDOMPrivate.h:
* bindings/gobject/webkitdom.symbols: Add DataCue symbols.
* bindings/scripts/CodeGeneratorGObject.pm:
(IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.

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

5 years ago[GTK] GObject introspection links to installed libs when using jhbuild
carlosgc@webkit.org [Mon, 28 Apr 2014 07:51:42 +0000 (07:51 +0000)]
[GTK] GObject introspection links to installed libs when using jhbuild
https://bugs.webkit.org/show_bug.cgi?id=132220

Reviewed by Martin Robinson.

The problem is that gobject-introspection is linking the temporary
binaries adding the library paths present LDFLAGS environment
variable first, taking precedence over the libraries in the build
dir. Since the libraries paths of the dependencies are already
correctly deduced by gobject-introspection using ldd, we can
just unset the LDFLAGS variable before calling g-ir-scanner to
make sure the libraries in the build dir take predence.

* PlatformGTK.cmake:

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

5 years ago[EFL] Remove indexedDB's dependency on leveldb and disable indexedDB
ryuan.choi@samsung.com [Mon, 28 Apr 2014 06:15:33 +0000 (06:15 +0000)]
[EFL] Remove indexedDB's dependency on leveldb and disable indexedDB
https://bugs.webkit.org/show_bug.cgi?id=132176

Patch by Joonghun Park <jh718.park@samsung.com> on 2014-04-27
Reviewed by Gyuyoung Kim.

.:
EFL port will use sqlite to support indexedDB. So, this patch removes levelDB dependency for now.

* Source/cmake/OptionsEfl.cmake:

Tools:
EFL port will use sqlite to support indexedDB. So, this patch removes levelDB dependency
and turn off indexedDB feature until the sqlite implementation is introduced.

* Scripts/webkitperl/FeatureList.pm:

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

5 years agoStore the containing region map inside the flow thread
abucur@adobe.com [Mon, 28 Apr 2014 05:52:35 +0000 (05:52 +0000)]
Store the containing region map inside the flow thread
https://bugs.webkit.org/show_bug.cgi?id=131647

Reviewed by Mihnea Ovidenie.

Source/WebCore:
The patch moves the containing region map inside the flow thread where
it can be better handled in case the region chain changes and the map
needs to be cleared.

As a result of this move we are able to also cleanup the lines region
information of a block flow when it is removed from the tree.

Test: fast/regions/inline-strike-through.html

* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::removeFlowChildInfo):
(WebCore::RenderFlowThread::invalidateRegions):
(WebCore::RenderFlowThread::removeLineRegionInfo):
(WebCore::RenderFlowThread::checkLinesConsistency):
(WebCore::RenderFlowThread::containingRegionMap):
* rendering/RenderFlowThread.h:
* rendering/RootInlineBox.cpp:
(WebCore::containingRegionMap):
(WebCore::RootInlineBox::~RootInlineBox):
(WebCore::RootInlineBox::paint):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::clearContainingRegion):
(WebCore::RootInlineBox::setContainingRegion):

LayoutTests:
Add a test that verifies the containing region map is properly cleared
when the region chain changes.

* fast/regions/inline-strike-through-expected.txt: Added.
* fast/regions/inline-strike-through.html: Added.

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

5 years agoREGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com...
darin@apple.com [Mon, 28 Apr 2014 04:19:10 +0000 (04:19 +0000)]
REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
https://bugs.webkit.org/show_bug.cgi?id=132241
rdar://problem/16501924

Reviewed by Andreas Kling.

Source/WebCore:
Test: fast/text/simple-lines-hover-underline.html

Checked that this does not hurt performance by running the
run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
getting at the data member directly.
(WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
(WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
(WebCore::RenderBlockFlow::lineCount): Ditto.
(WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
(WebCore::RenderBlockFlow::hasLines): Ditto.
(WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
(WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
createLineBoxes function.
(WebCore::RenderBlockFlow::createLineBoxes): Ditto.

* rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
Added a private createLineBoxes function.

LayoutTests:
* fast/text/simple-lines-hover-underline-expected.html: Added.
* fast/text/simple-lines-hover-underline.html: Added.

* fast/text/simple-lines-hover.html: Removed an unneeded style element with a style rule that
does nothing.

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

5 years agoREGRESSION (r164702): Double tap doesn't stay under the new element once the animatio...
timothy_horton@apple.com [Mon, 28 Apr 2014 04:07:29 +0000 (04:07 +0000)]
REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
https://bugs.webkit.org/show_bug.cgi?id=132239
<rdar://problem/16192842>

Reviewed by Darin Adler.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scalePage):
The change in r167864 broke iOS animated resize, because it was depending on
the dynamic size update code not running if the scale wasn't going to change.
So, as a band-aid we should bail from doing that work if the scales aren't different.
In the long term we should try to untangle this code and make it less platform dependent.

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

5 years ago[MediaStream] .ended shouldn't be part of MediaStream IDL
commit-queue@webkit.org [Mon, 28 Apr 2014 02:37:42 +0000 (02:37 +0000)]
[MediaStream] .ended shouldn't be part of MediaStream IDL
https://bugs.webkit.org/show_bug.cgi?id=132104

Patch by Praveen R Jadhav <praveen.j@samsung.com> on 2014-04-27
Reviewed by Eric Carlson.

Source/WebCore:
.ended attribute is spec'ed out of MediaStream IDL. Instead, .active
is introduced to handle more scenarios. This patch replaces all 'ended'
attribute calls with corresponding 'active' attributes.

MediaStream-add-remove-tracks.html is updated.

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack): Replaced ended() with active().
(WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
is retained which propagates oninactive event.
(WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
(WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
(WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
(WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
(WebCore::MediaStream::ended): Deleted.
(WebCore::MediaStream::setEnded): Deleted.
(WebCore::MediaStream::streamDidEnd): Deleted.
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
with setActive().
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
(WebCore::MediaStreamPrivate::setActive): Updated comment from bug
https://bugs.webkit.org/show_bug.cgi?id=131973
(WebCore::MediaStreamPrivate::setEnded): Deleted.
* platform/mediastream/MediaStreamPrivate.h:
(WebCore::MediaStreamPrivate::ended): Deleted.

LayoutTests:
.ended is not part of MediaStream IDL. Updated test case.

* fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
* fast/mediastream/MediaStream-add-remove-tracks.html:

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

5 years agoTouchEvent is not handled after releasing any point among touched points.
eunmi15.lee@samsung.com [Mon, 28 Apr 2014 02:09:02 +0000 (02:09 +0000)]
TouchEvent is not handled after releasing any point among touched points.
https://bugs.webkit.org/show_bug.cgi?id=132043

Reviewed by Benjamin Poulain.

Handle TouchEvent until all touched points are released by setting
trackingTouchEvents variable to false when all points are released.

* UIProcess/WebPageProxy.cpp:
(WebKit::areAllTouchPointsReleased):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):

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

5 years agoDon't use DispatchMessageEvenWhenWaitingForSyncReply for messages from NetworkProcess
ap@apple.com [Mon, 28 Apr 2014 01:55:35 +0000 (01:55 +0000)]
Don't use DispatchMessageEvenWhenWaitingForSyncReply for messages from NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=132144

Reviewed by Darin Adler.

* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::willSendRequest):
(WebKit::AsynchronousNetworkLoaderClient::canAuthenticateAgainstProtectionSpace):
Dont use the IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. It's not needed,
almost never works in NetworkProcess, but may cause trouble if it did.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): Removed
setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage()
function call, because there are no more any messages in NetworkProcess it could affect.

* Platform/IPC/Connection.cpp: (IPC::Connection::dispatchMessage): Added a FIXME
for an unrelated bug Anders and myself noticed while looking into this.

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

5 years ago[Cocoa] -[WKWebProcessPlugInController parameters] returns nil if no parameters have...
mitz@apple.com [Sun, 27 Apr 2014 23:13:05 +0000 (23:13 +0000)]
[Cocoa] -[WKWebProcessPlugInController parameters] returns nil if no parameters have been set yet
https://bugs.webkit.org/show_bug.cgi?id=132223

Reviewed by Sam Weinig.

* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::bundleParameters): Create the WKWebProcessBundleParameters if
needed.

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

5 years agoREGRESSION (r164702): Double tap doesn't stay under the new element once the animatio...
timothy_horton@apple.com [Sun, 27 Apr 2014 22:47:54 +0000 (22:47 +0000)]
REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
https://bugs.webkit.org/show_bug.cgi?id=132239
<rdar://problem/16192842>

Reviewed by Sam Weinig.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scalePage):
The early-return added to WebPage::scalePage breaks callers who depend
on being able to call scalePage() with the same scale but a different
origin and having that change take effect.

Page::setPageScaleFactor already has the requisite logic, so move
the early return down after that call, and guard only notification
of page scale changes.

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

5 years ago[iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
aestes@apple.com [Sun, 27 Apr 2014 22:28:29 +0000 (22:28 +0000)]
[iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=132215

Reviewed by Dan Bernstein.

Source/WebCore:
* WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
* platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
* platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.
(WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.

Source/WebKit2:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Called QuickLookHandle::create() directly.
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/ios/WebResourceLoaderIOS.mm: Removed.

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

5 years agoREGRESSION (167840): Layout Test fast/events/shadow-event-path[-2].html is failing
timothy_horton@apple.com [Sun, 27 Apr 2014 21:33:46 +0000 (21:33 +0000)]
REGRESSION (167840): Layout Test fast/events/shadow-event-path[-2].html is failing

* TestExpectations:
Mark as failing until the shared JS file can be recovered.

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

5 years ago[iOS WebKit2] Add support for text autosizing
weinig@apple.com [Sun, 27 Apr 2014 20:43:52 +0000 (20:43 +0000)]
[iOS WebKit2] Add support for text autosizing
<rdar://problem/16545245>
https://bugs.webkit.org/show_bug.cgi?id=132237

Reviewed by Tim Horton.

../WebCore:
Move text autosizing width from Frame to Page, as it is a Page level concept.

* WebCore.exp.in:
* page/Frame.cpp:
(WebCore::Frame::textAutosizingWidth): Deleted.
(WebCore::Frame::setTextAutosizingWidth): Deleted.
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::textAutosizingWidth):
(WebCore::Page::setTextAutosizingWidth):

../WebKit/mac:
* WebView/WebFrame.mm:
(-[WebFrame _setTextAutosizingWidth:]):
Forward setting of the text autosizing width to the Page.

../WebKit2:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::textAutosizingWidth):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Pass the text autosizing width from the UIProcess to WebProcess.

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

5 years agoWebKit2 View Gestures (Zoom): Pages with 'background-attachment: fixed' don't behave...
timothy_horton@apple.com [Sun, 27 Apr 2014 20:42:54 +0000 (20:42 +0000)]
WebKit2 View Gestures (Zoom): Pages with 'background-attachment: fixed' don't behave correctly when zoomed
https://bugs.webkit.org/show_bug.cgi?id=132225
<rdar://problem/15729975>

Reviewed by Darin Adler.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::layerForTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::shadowLayerForTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
Factor out code to choose which layer (and shadow layer) to apply the transient zoom to.
If we have a contentsContainmentLayer (because we have composited background-attachment: fixed),
it applies page scale, so we should apply the transient zoom to that layer
instead of the RenderView's main GraphicsLayer.

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

5 years agoUnreviewed. iOS build fix.
psolanki@apple.com [Sun, 27 Apr 2014 19:47:36 +0000 (19:47 +0000)]
Unreviewed. iOS build fix.

* UIProcess/ios/SmartMagnificationController.h:

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

5 years agoUnreviewed GTK gardening. Adding failure expectations for 6 failing reference tests.
zandobersek@gmail.com [Sun, 27 Apr 2014 18:32:57 +0000 (18:32 +0000)]
Unreviewed GTK gardening. Adding failure expectations for 6 failing reference tests.

* platform/gtk/TestExpectations:

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

5 years agoUnreviewed. Updating one bindings test baseline after r167855.
zandobersek@gmail.com [Sun, 27 Apr 2014 17:03:32 +0000 (17:03 +0000)]
Unreviewed. Updating one bindings test baseline after r167855.

* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::~JSTestCallback):

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

5 years agoWebpages can trigger loads with invalid URLs
darin@apple.com [Sun, 27 Apr 2014 16:06:27 +0000 (16:06 +0000)]
Webpages can trigger loads with invalid URLs
https://bugs.webkit.org/show_bug.cgi?id=132224
rdar://problem/16697142

Reviewed by Alexey Proskuryakov.

Invalid URLs can be a way to trick the user about what website they
are looking at.  Still trying to figure out a good way to regression-test this.

* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
the navigation scheduler.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData): Ditto.

* loader/NavigationScheduler.cpp:
(WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
than a string.
(WebCore::ScheduledURLNavigation::url): Ditto.
(WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
(WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
(WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
(WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
prevents navigation to any URL that is invalid, except for JavaScript URLs,
which need not be valid.
(WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
(WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
String. Also got rid of empty string check since empty URLs are also invalid,
and so shouldScheduleNavigation will take care of it.
(WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.

* loader/NavigationScheduler.h: Take URL instead of String. Also removed some
unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
already noncopyable because it has a reference for a data member, and the
disabler doesn't have any real reason to be noncopyable.

* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
String to the NavigationScheduler.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow): Ditto.

* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
of a String.
* page/SecurityOrigin.h: Updated for above change.

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

5 years agoScriptExecutionContext::Task should work well with C++11 lambdas
zandobersek@gmail.com [Sun, 27 Apr 2014 14:07:03 +0000 (14:07 +0000)]
ScriptExecutionContext::Task should work well with C++11 lambdas
https://bugs.webkit.org/show_bug.cgi?id=129795

Reviewed by Darin Adler.

Instead of having classes that subclass ScriptExecutionContext::Task and override
the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
which would contain the code currently kept in the performTask() methods.

This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
cleanup tasks, the Task object can be implicitly constructed by using the initializer list
constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
object in the std::function wrapper, along with a boolean member that indicates whether the
task is of cleanup nature.

* Modules/quota/StorageErrorCallback.cpp:
(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
(WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
* Modules/quota/StorageErrorCallback.h:
(WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
* Modules/webdatabase/Database.cpp:
(WebCore::Database::~Database):
(WebCore::Database::runTransaction):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::DerefContextTask::create): Deleted.
(WebCore::DerefContextTask::performTask): Deleted.
(WebCore::DerefContextTask::isCleanupTask): Deleted.
(WebCore::DerefContextTask::DerefContextTask): Deleted.
(WebCore::callTransactionErrorCallback): Deleted.
(WebCore::DeliverPendingCallbackTask::create): Deleted.
(WebCore::DeliverPendingCallbackTask::performTask): Deleted.
(WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseCreationCallbackTask::create): Deleted.
(WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
* Modules/webdatabase/SQLCallbackWrapper.h:
(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
* bindings/js/JSCallbackData.h:
(WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
(WebCore::DeleteCallbackDataTask::create): Deleted.
(WebCore::DeleteCallbackDataTask::performTask): Deleted.
(WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
* bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
(WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
(WebCore::JSGlobalObjectTask::performTask): Deleted.
* bindings/js/JSDOMGlobalObjectTask.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackImplementation):
* dom/CrossThreadTask.h:
(WebCore::CrossThreadTask1::performTask):
(WebCore::CrossThreadTask2::performTask):
(WebCore::CrossThreadTask3::performTask):
(WebCore::CrossThreadTask4::performTask):
(WebCore::CrossThreadTask5::performTask):
(WebCore::CrossThreadTask6::performTask):
(WebCore::CrossThreadTask7::performTask):
(WebCore::CrossThreadTask8::performTask):
(WebCore::createCallbackTask):
(WebCore::CrossThreadTask1::create): Deleted.
(WebCore::CrossThreadTask2::create): Deleted.
(WebCore::CrossThreadTask3::create): Deleted.
(WebCore::CrossThreadTask4::create): Deleted.
(WebCore::CrossThreadTask5::create): Deleted.
(WebCore::CrossThreadTask6::create): Deleted.
(WebCore::CrossThreadTask7::create): Deleted.
(WebCore::CrossThreadTask8::create): Deleted.
* dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
(WebCore::Document::postTask):
(WebCore::Document::pendingTasksTimerFired):
(WebCore::PerformTaskContext::PerformTaskContext): Deleted.
(WebCore::Document::didReceiveTask): Deleted.
* dom/Document.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
(WebCore::ScriptExecutionContext::timerAlignmentInterval):
(WebCore::ProcessMessagesSoonTask::create): Deleted.
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
(WebCore::ScriptExecutionContext::Task::~Task): Deleted.
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
(WebCore::ScriptExecutionContext::Task::performTask):
(WebCore::ScriptExecutionContext::Task::isCleanupTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
* dom/StringCallback.cpp:
(WebCore::StringCallback::scheduleCallback):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::postListenerTask):
(WebCore::CallCacheListenerTask::create): Deleted.
(WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::postTaskToLoader):
(WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
(WebCore::SharedWorkerConnectTask::create): Deleted.
(WebCore::SharedWorkerConnectTask::performTask): Deleted.
* workers/WorkerEventQueue.cpp:
(WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::dispatch):
(WebCore::WorkerEventQueue::enqueueEvent):
(WebCore::WorkerEventQueue::cancelEvent):
(WebCore::WorkerEventQueue::close):
* workers/WorkerEventQueue.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::close):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
* workers/WorkerGlobalScope.h:
* workers/WorkerLoaderProxy.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskToLoader):
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::workerThreadCreated):
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
(WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
(WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
(WebCore::WorkerMessagingProxy::reportPendingActivity):
(WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::MessageWorkerTask::create): Deleted.
(WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
(WebCore::MessageWorkerTask::performTask): Deleted.
(WebCore::WorkerExceptionTask::create): Deleted.
(WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
(WebCore::WorkerExceptionTask::performTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
(WebCore::WorkerTerminateTask::create): Deleted.
(WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
(WebCore::WorkerTerminateTask::performTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::create): Deleted.
(WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::create): Deleted.
(WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::create): Deleted.
(WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
* workers/WorkerMessagingProxy.h:
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTask):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
(WebCore::WorkerRunLoop::Task::create):
(WebCore::WorkerRunLoop::Task::performTask):
(WebCore::WorkerRunLoop::Task::Task):
* workers/WorkerRunLoop.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
(WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::create): Deleted.
(WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.

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

5 years agoMove cross-port WebKit2 code to std::unique_ptr
zandobersek@gmail.com [Sun, 27 Apr 2014 13:40:14 +0000 (13:40 +0000)]
Move cross-port WebKit2 code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129670

Reviewed by Darin Adler.

Replace uses of OwnPtr, PassOwnPtr in cross-port WebKit2 code with std::unique_ptr.

* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::addSupplement):
* NetworkProcess/SynchronousNetworkLoaderClient.cpp:
(WebKit::SynchronousNetworkLoaderClient::didReceiveBuffer):
* NetworkProcess/SynchronousNetworkLoaderClient.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
* Platform/IPC/Connection.h:
* Platform/IPC/MessageReceiver.h:
* Platform/Module.h:
* Platform/WorkQueue.h:
* Platform/efl/ModuleEfl.cpp:
(WebKit::Module::load):
* Platform/mac/LayerHostingContext.mm:
* Shared/APIURL.h:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* Shared/Plugins/NPRemoteObjectMap.cpp:
* Shared/ShareableBitmap.h:
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/InspectorServer/WebSocketServer.cpp:
(WebKit::WebSocketServer::didAcceptConnection):
(WebKit::WebSocketServer::didCloseWebSocketServerConnection):
* UIProcess/InspectorServer/WebSocketServer.h:
* UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
(WebKit::connectionCallback):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::createDownloadProxy):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Notifications/WebNotificationManagerProxy.h:
* UIProcess/Plugins/WebPluginSiteDataManager.cpp:
(WebKit::WebPluginSiteDataManager::getSitesWithData):
(WebKit::WebPluginSiteDataManager::clearSiteData):
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins):
(WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins):
* UIProcess/Plugins/WebPluginSiteDataManager.h:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::callCallbackFunction):
(WebKit::StorageManager::getOriginsInternal):
* UIProcess/WebPageProxy.cpp:
(WebKit::ExceededDatabaseQuotaRecords::areBeingProcessed):
(WebKit::ExceededDatabaseQuotaRecords::createRecord):
(WebKit::ExceededDatabaseQuotaRecords::add):
(WebKit::ExceededDatabaseQuotaRecords::next):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::processNextQueuedWheelEvent):
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createDownloadProxy):
* UIProcess/WebProcessProxy.h:
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::PluginDestructionProtector::PluginDestructionProtector):
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::deliverData):
* WebProcess/Plugins/Netscape/NetscapePluginStream.h:
* WebProcess/Plugins/PluginProcessConnectionManager.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::initialize):
(WebKit::PluginProxy::didCreatePluginInternal):
(WebKit::PluginProxy::didFailToCreatePluginInternal):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::createWebEvent):
(WebKit::PluginView::handleEvent):
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebCoreSupport/WebPopupMenu.h:
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::EventDispatcher):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::beginPrinting):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.h:
(WebKit::WebProcess::addSupplement):

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

5 years agoCoalesce responses on network process side
antti@apple.com [Sun, 27 Apr 2014 11:53:43 +0000 (11:53 +0000)]
Coalesce responses on network process side
https://bugs.webkit.org/show_bug.cgi?id=132229

Reviewed by Andreas Kling.

Source/WebCore:

* WebCore.exp.in:

Source/WebKit2:

To reduce IPC we should coalesce response data in the network process and send it over with single IPC call.

* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::AsynchronousNetworkLoaderClient):
(WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
(WebKit::AsynchronousNetworkLoaderClient::didReceiveBuffer):
(WebKit::AsynchronousNetworkLoaderClient::didFinishLoading):
(WebKit::AsynchronousNetworkLoaderClient::didFail):
(WebKit::AsynchronousNetworkLoaderClient::dispatchPartialCoalescedResponse):
(WebKit::AsynchronousNetworkLoaderClient::clearCoalescedResponse):
(WebKit::AsynchronousNetworkLoaderClient::responseCoalesceTimerFired):

    Coalesce the response. Completed response is sent on didFinishLoading. If the coalesce timer fires
    before that the data accumulated so far is dispatched.

* NetworkProcess/AsynchronousNetworkLoaderClient.h:
* NetworkProcess/NetworkResourceLoader.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveCompleteResponse):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:

    Add a new message type that covers didReceiveResponse, didReceiveBuffer and didFinishLoading in a single message.

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

5 years agoRoll out changes not part of the patch reviewed for Bug 132089
ddkilzer@apple.com [Sun, 27 Apr 2014 08:15:13 +0000 (08:15 +0000)]
Roll out changes not part of the patch reviewed for Bug 132089
<http://webkit.org/b/132089>

* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadOrRedirectSubframe):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):

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

5 years agoFrame and page lifetime fixes in WebCore::createWindow
darin@apple.com [Sun, 27 Apr 2014 04:09:45 +0000 (04:09 +0000)]
Frame and page lifetime fixes in WebCore::createWindow
https://bugs.webkit.org/show_bug.cgi?id=132089

Reviewed by Sam Weinig.

Speculative fix because I was unable to reproduce the crash that was
reported with the test case attached to this bug.

* loader/FrameLoader.cpp:
(WebCore::createWindow): Changed code to remove the assumption that calls
out will not destroy the page or frame. Use RefPtr for the frame, and
added early exits if frame->page() becomes null at any point before we
use a page pointer.

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

5 years agoLocal files should not be allowed to read pasteboard data during drag
ap@apple.com [Sun, 27 Apr 2014 02:48:19 +0000 (02:48 +0000)]
Local files should not be allowed to read pasteboard data during drag
https://bugs.webkit.org/show_bug.cgi?id=131767

Reviewed by Sam Weinig.

Source/WebCore:
Test: fast/files/local-file-drag-security.html

* page/DragController.cpp:
(WebCore::DragController::dragExited):
(WebCore::DragController::tryDHTMLDrag):
Make an old Dashboard quirk really Dashboard only.

LayoutTests:
* fast/files/local-file-drag-security-expected.txt: Added.
* fast/files/local-file-drag-security.html: Added.
* platform/wk2/TestExpectations:

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

5 years agoREGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loadi...
timothy_horton@apple.com [Sun, 27 Apr 2014 02:43:31 +0000 (02:43 +0000)]
REGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loading 20 pages
https://bugs.webkit.org/show_bug.cgi?id=132204
<rdar://problem/16735622>

Reviewed by Dan Bernstein and Sam Weinig.

* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::pruneSnapshots):
(WebKit::ViewSnapshotStore::recordSnapshot):
Fix a bug where the count of snapshots with live images was too high
because we were failing to decrement it when replacing a snapshot of
an existing item with a fresh one.

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

5 years ago[Cocoa] Rename a bundle form delegate method
mitz@apple.com [Sat, 26 Apr 2014 23:29:56 +0000 (23:29 +0000)]
[Cocoa] Rename a bundle form delegate method
https://bugs.webkit.org/show_bug.cgi?id=132221

Reviewed by Adele Peterson.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Renamed.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Check for the method
under the old (“new”) name and under the new name.

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

5 years agoREGRESSION (r164133): Selection doesn't paint when scrolling some pages
darin@apple.com [Sat, 26 Apr 2014 21:28:20 +0000 (21:28 +0000)]
REGRESSION (r164133): Selection doesn't paint when scrolling some pages
https://bugs.webkit.org/show_bug.cgi?id=132172

Source/WebCore:
rdar://problem/16719473

Reviewed by Brent Fulgham.

Tests: fast/dynamic/remove-invisible-node-inside-selection.html
       fast/dynamic/remove-node-inside-selection.html

* editing/FrameSelection.cpp:
(WebCore::clearRenderViewSelection): Changed to take a Node& because having
this take a Position& was unnecessary and strange, when really it just needs
to take a document as an argument.
(WebCore::DragCaretController::nodeWillBeRemoved): Updated for the above.
(WebCore::FrameSelection::respondToNodeModification): Added code to set the
m_pendingSelectionUpdate flag and call RenderView::setNeedsLayout so the
selection will be recomputed after it's temporarily cleared when one of
the selected nodes is removed.

LayoutTests:

Reviewed by Brent Fulgham.

* fast/dynamic/remove-invisible-node-inside-selection-expected.html: Added.
* fast/dynamic/remove-invisible-node-inside-selection.html: Added.
* fast/dynamic/remove-node-inside-selection-expected.html: Added.
* fast/dynamic/remove-node-inside-selection.html: Added.

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

5 years agoInline (C++) GetByVal with numeric indices more aggressively.
akling@apple.com [Sat, 26 Apr 2014 06:00:43 +0000 (06:00 +0000)]
Inline (C++) GetByVal with numeric indices more aggressively.
<https://webkit.org/b/132218>

We were already inlining the string indexed GetByVal path pretty well,
while the path for numeric indices got neglected. No more!

~9.5% improvement on Dromaeo/dom-traverse.html on my MBP:

    Before: 199.50 runs/s
     After: 218.58 runs/s

Reviewed by Phil Pizlo.

* dfg/DFGOperations.cpp:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::get):

    ALWAYS_INLINE all the things.

* runtime/JSObject.h:
(JSC::JSObject::getPropertySlot):

    Avoid fetching the Structure more than once. We have the same
    optimization in the string-indexed code path.

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

5 years ago[Cocoa] Synthesized getter for WKNavigationAction's _userInitiated property has the...
mitz@apple.com [Sat, 26 Apr 2014 05:53:06 +0000 (05:53 +0000)]
[Cocoa] Synthesized getter for WKNavigationAction's _userInitiated property has the wrong name
https://bugs.webkit.org/show_bug.cgi?id=132219

Reviewed by Sam Weinig.

* UIProcess/API/Cocoa/WKNavigationActionInternal.h:

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

5 years agoREGRESSION (r167689): Hovering file name in a file input causes a crash
rniwa@webkit.org [Sat, 26 Apr 2014 04:41:42 +0000 (04:41 +0000)]
REGRESSION (r167689): Hovering file name in a file input causes a crash
https://bugs.webkit.org/show_bug.cgi?id=132214

Reviewed by Andreas Kling.

Source/WebCore:
The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
accessing path.contextAt(0) even if the event path was empty.

Fixed the bug by exiting early when the event path is empty.

Test: fast/events/shadow-event-path-2.html

* dom/EventDispatcher.cpp:
(WebCore::callDefaultEventHandlersInTheBubblingOrder):

LayoutTests:
Add a regression test.

* fast/events/shadow-event-path-2-expected.txt: Added.
* fast/events/shadow-event-path-2.html: Added.
* fast/events/shadow-event-path.html:

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

5 years ago[iOS] getAssistedNodeInformation crashes getting the bounding box if it doesn't have...
dino@apple.com [Sat, 26 Apr 2014 03:54:33 +0000 (03:54 +0000)]
[iOS] getAssistedNodeInformation crashes getting the bounding box if it doesn't have a renderer
https://bugs.webkit.org/show_bug.cgi?id=132217
<rdar://problem/16671662>

Patch by Simon Fraser <simon.fraser@apple.com> on 2014-04-25
Reviewed by Dean Jackson.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation): Check that m_assistedNode has
a renderer before asking for its bounding box.

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

5 years agoBump jQuery to same version that dromaeo.com uses.
akling@apple.com [Sat, 26 Apr 2014 03:30:52 +0000 (03:30 +0000)]
Bump jQuery to same version that dromaeo.com uses.

Rubber-stamped by Ryosuke Niwa.

* Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
* Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
* Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
* Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
* Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
* Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
* Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:

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

5 years agoREGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
timothy_horton@apple.com [Sat, 26 Apr 2014 00:31:23 +0000 (00:31 +0000)]
REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails

* English.lproj/mediaControlsLocalizedStrings.js:
Add 'Live Broadcast' to the localized strings list.

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

5 years ago[iOS][WK2] Add an intermediary view to do the target transform and adjustment transform
benjamin@webkit.org [Sat, 26 Apr 2014 00:12:29 +0000 (00:12 +0000)]
[iOS][WK2] Add an intermediary view to do the target transform and adjustment transform
https://bugs.webkit.org/show_bug.cgi?id=132175

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-25
Reviewed by Enrica Casucci.

Some utility views of WKContentView account for the transforms between the content view
and the utility view.

Since the dynamic resize relies on setting subLayerTransforms, it is getting in the way.

This patch adds a layer in between for the animation. That way the content view remains
unscaled.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):

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

5 years agoREGRESSION (iOS WebKit2): Selection is not being repainted during live resize.
enrica@apple.com [Sat, 26 Apr 2014 00:06:15 +0000 (00:06 +0000)]
REGRESSION (iOS WebKit2): Selection is not being repainted during live resize.
https://bugs.webkit.org/show_bug.cgi?id=132216
<rdar://problem/16628819>

Reviewed by Benjamin Poulain.

Since the selection is drawn in the UIProcess on iOS,
we need to update the selection rects and force a repaint
during a live resize.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionAppearance):

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

5 years agoSet prepare-Changelog flag so that it no longer runs check-webkit-style by default
jcraig@apple.com [Fri, 25 Apr 2014 23:48:10 +0000 (23:48 +0000)]
Set prepare-Changelog flag so that it no longer runs check-webkit-style by default
https://bugs.webkit.org/show_bug.cgi?id=132209

Reviewed by Daniel Bates.

Set default to --no-style to avoid additional spew from false positives in check-webkit-style.
Run check-webkit-style before generating changelogs to avoid additional spurious errors.

* Scripts/prepare-ChangeLog:
(main):

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

5 years agoWeb Inspector: DOM Tree debugger popover obscures dashboard
commit-queue@webkit.org [Fri, 25 Apr 2014 23:43:15 +0000 (23:43 +0000)]
Web Inspector: DOM Tree debugger popover obscures dashboard
https://bugs.webkit.org/show_bug.cgi?id=132205

Patch by Jonathan Wells <jonowells@apple.com> on 2014-04-25
Reviewed by Timothy Hatcher.

* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard.visible): Change z-index to 1. Force stacking context.
* UserInterface/Views/Popover.css:
(.popover): Add z-index: 100.

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

5 years agoNeed earlier cell test
oliver@apple.com [Fri, 25 Apr 2014 23:14:16 +0000 (23:14 +0000)]
Need earlier cell test
https://bugs.webkit.org/show_bug.cgi?id=132211

Reviewed by Mark Lam.

Source/JavaScriptCore:
Move cell test to before the function call repatch
location, as the repatch logic for 32bit assumes that the
caller will already have performed a cell check.

* jit/JITCall32_64.cpp:
(JSC::JIT::compileOpCall):

LayoutTests:
Tests

* js/regress/polymorphic-array-call-expected.txt: Added.
* js/regress/polymorphic-array-call.html: Added.
* js/regress/script-tests/polymorphic-array-call.js: Added.
(func.C.this.m):
(func.C):
(func):

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

5 years agoUn-fast-allocate JSGlobalObjectRareData because Windows doesn't build and I'm not...
akling@apple.com [Fri, 25 Apr 2014 23:08:01 +0000 (23:08 +0000)]
Un-fast-allocate JSGlobalObjectRareData because Windows doesn't build and I'm not in the mood.

* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::JSGlobalObjectRareData::JSGlobalObjectRareData):
(JSC::JSGlobalObject::JSGlobalObjectRareData::~JSGlobalObjectRareData): Deleted.

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

5 years agoAdd a selection overlay.
beidson@apple.com [Fri, 25 Apr 2014 22:22:14 +0000 (22:22 +0000)]
Add a selection overlay.
<rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200

Reviewed by David Hyatt.

Source/WebCore:
No new tests (WK2 feature in development).

* WebCore.xcodeproj/project.pbxproj:

Add a SelectionRectGathterer class.
It creates a Notifier (given a RenderView) then accepts Rects from the RenderView.
When the Notifier is destroyed, the appropriate EditorClient is notified of the gathered rects.
* editing/SelectionRectGatherer.cpp: Added.
(WebCore::SelectionRectGatherer::SelectionRectGatherer):
(WebCore::SelectionRectGatherer::addRect):
(WebCore::SelectionRectGatherer::addRects):
(WebCore::SelectionRectGatherer::Notifier::Notifier):
(WebCore::SelectionRectGatherer::Notifier::~Notifier):
(WebCore::SelectionRectGatherer::clearAndCreateNotifier):
* editing/SelectionRectGatherer.h: Added.

* page/EditorClient.h:
(WebCore::EditorClient::selectionRectsDidChange):

* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Clear the gatherer’s rects then create a Notifier.
(WebCore::RenderView::setSubtreeSelection): Give all the selection rects to be painted to
  the SelectionRectGatherer.
* rendering/RenderView.h:

Source/WebKit2:
* WebKit2.xcodeproj/project.pbxproj:

* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::selectionRectsDidChange): Pass the new selection rects on
  to the selection overlay controller.
* WebProcess/WebCoreSupport/WebEditorClient.h:

* WebProcess/WebPage/SelectionOverlayController.cpp: Added.
(WebKit::SelectionOverlayController::SelectionOverlayController):
(WebKit::SelectionOverlayController::createOverlayIfNeeded):
(WebKit::SelectionOverlayController::destroyOverlay):
(WebKit::SelectionOverlayController::pageOverlayDestroyed):
(WebKit::SelectionOverlayController::willMoveToWebPage):
(WebKit::SelectionOverlayController::didMoveToWebPage):
(WebKit::SelectionOverlayController::selectionRectsDidChange):
(WebKit::SelectionOverlayController::drawRect):
(WebKit::SelectionOverlayController::mouseEvent):
* WebProcess/WebPage/SelectionOverlayController.h: Added.
(WebKit::SelectionOverlayController::create):
* WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm: Added.
(WebKit::SelectionOverlayController::drawRect):
(WebKit::SelectionOverlayController::mouseEvent):
(WebKit::SelectionOverlayController::handleClick):
(WebKit::SelectionOverlayController::clearHighlight):

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::selectionOverlayController):
* WebProcess/WebPage/WebPage.h:

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

5 years agoUpdate WKSI for https://webkit.org/b/132195
dino@apple.com [Fri, 25 Apr 2014 22:18:36 +0000 (22:18 +0000)]
Update WKSI for https://webkit.org/b/132195
<rdar://problem/16175750>

Sorry, I forgot to update the header. This should fix
the Mac builds.

* WebKitSystemInterface.h:

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

5 years agoSupport "Live" streams in media controls.
jer.noble@apple.com [Fri, 25 Apr 2014 22:18:23 +0000 (22:18 +0000)]
Support "Live" streams in media controls.
https://bugs.webkit.org/show_bug.cgi?id=131390

Reviewed by Brent Fulgham.

Source/WebCore:
Test: http/tests/media/hls/video-controls-live-stream.html

Support "Live" streams by adding an isLive property to our media controls.

* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-status-display):
(video:-webkit-full-screen::-webkit-media-controls-status-display):
* Modules/mediacontrols/mediaControlsApple.js:
(Controller): isLive defaults to false.
(Controller.prototype.setIsLive): Set the isLive property and conditionally reconfigure the controls.
(Controller.prototype.configureInlineControls): Don't add the timeline if we are live.
(Controller.prototype.configureFullScreenControls): Ditto.
(Controller.prototype.updateStatusDisplay): Added.
(Controller.prototype.handleLoadStart): Call updateStatusDisplay().
(Controller.prototype.handleError): Ditto.
(Controller.prototype.handleAbort): Ditto.
(Controller.prototype.handleSuspend): Ditto.
(Controller.prototype.handleStalled): Ditto.
(Controller.prototype.handleWaiting): Ditto.
(Controller.prototype.updateDuration): Ditto.
(Controller.prototype.updateReadyState): Ditto.

LayoutTests:
* http/tests/media/hls/video-controls-live-stream-expected.txt: Added.
* http/tests/media/hls/video-controls-live-stream.html: Added.
* http/tests/media/resources/hls/test-live.php: Added.
* http/tests/media/resources/hls/test-vod.m3u8: Added.
* http/tests/media/resources/hls/test.ts: Added.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* 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/wincairo/TestExpectations:

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

5 years agoREGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails...
timothy_horton@apple.com [Fri, 25 Apr 2014 22:02:49 +0000 (22:02 +0000)]
REGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails on WebKit1 bots
https://bugs.webkit.org/show_bug.cgi?id=132207

* platform/mac-wk1/TestExpectations:
Mark as failing in WebKit1.

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

5 years agoRemove duplicate member variable in WKAutocorrectionRects and WKAutocorrectionContext.
enrica@apple.com [Fri, 25 Apr 2014 21:47:00 +0000 (21:47 +0000)]
Remove duplicate member variable in WKAutocorrectionRects and WKAutocorrectionContext.
https://bugs.webkit.org/show_bug.cgi?id=132206

Reviewed by Benjamin Poulain.

* UIProcess/ios/WKContentViewInteraction.mm:

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

5 years agoAllow a platform-specific size enumeration to be passed into popup-menu display
dino@apple.com [Fri, 25 Apr 2014 21:42:48 +0000 (21:42 +0000)]
Allow a platform-specific size enumeration to be passed into popup-menu display
https://bugs.webkit.org/show_bug.cgi?id=132195

Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.

Platforms like OS X use a set of predefined sizes for built-in controls
used for <select>: normal, small and mini. Expose that information to
the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
into the platform code in WebKitSystemInterface.

Source/WebCore:
* platform/PopupMenuStyle.h: Add a menu size enum.
(WebCore::PopupMenuStyle::PopupMenuStyle):
(WebCore::PopupMenuStyle::menuSize):
* platform/mac/WebCoreSystemInterface.h: Pass in NSControlSize as a parameter
to WKPopupMenu.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* rendering/RenderMenuList.cpp:
(RenderMenuList::menuStyle): Ask the RenderTheme to calculate the size
of the menu button, so that it can be added to the PopupMenuStyle.
* rendering/RenderTheme.h: New method to retrieve the menu size.
(WebCore::RenderTheme::popupMenuSize): Convert an NSControlSize into a PopupMenuSize.
* rendering/RenderThemeMac.h: Override the base function, and add a
controlSizeForCell helper.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::controlSizeForCell): Used by this new
code and the old setControlSizeForCell to calculate the NSControlSize
that would be used for the button.
(WebCore::RenderThemeMac::setControlSize): Call the new helper.
(WebCore::RenderThemeMac::popupMenuSize): Return the value from the helper.

Source/WebKit/mac:
* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show): Convert the WebCore menu size type into the
WebCoreSystemInterface type.

Source/WebKit2:
* Shared/PlatformPopupMenuData.cpp: Encode and decode the PopupMenuSize enum.
(WebKit::PlatformPopupMenuData::encode):
(WebKit::PlatformPopupMenuData::decode):
* Shared/PlatformPopupMenuData.h: Add PopupMenuSize member variable.
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu): Convert the PopupMenuSize
into a WKControlSize, and pass that into WKPopupMenu.
* WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
(WebKit::WebPopupMenu::setUpPlatformData): Add the PopupMenuSize to
the PlatformPopupMenuData.

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

5 years agoUpdate WKSI for https://webkit.org/b/132195
dino@apple.com [Fri, 25 Apr 2014 21:40:06 +0000 (21:40 +0000)]
Update WKSI for https://webkit.org/b/132195
<rdar://problem/16175750>

Reviewed by Jessie Berlin.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceMavericks.a:
* libWebKitSystemInterfaceMountainLion.a:

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

5 years agoWindows build fix attempt.
akling@apple.com [Fri, 25 Apr 2014 21:32:40 +0000 (21:32 +0000)]
Windows build fix attempt.

* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::JSGlobalObjectRareData::~JSGlobalObjectRareData):

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

5 years agoREGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loadi...
timothy_horton@apple.com [Fri, 25 Apr 2014 21:28:04 +0000 (21:28 +0000)]
REGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loading 20 pages
https://bugs.webkit.org/show_bug.cgi?id=132204
<rdar://problem/16729123>

Reviewed by Anders Carlsson.

* UIProcess/mac/ViewSnapshotStore.h:
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::pruneSnapshots):
(WebKit::ViewSnapshotStore::recordSnapshot):
Keep track of the number of snapshots that actually have live images; the
size of the snapshot map no longer represents that.
Also, fix the crash by using the UUID from the current item instead of from
the (potentially null) most distant item; r167775 accidentally typo'd this.

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

5 years agoREGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout...
commit-queue@webkit.org [Fri, 25 Apr 2014 21:17:45 +0000 (21:17 +0000)]
REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
https://bugs.webkit.org/show_bug.cgi?id=132194

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-04-25
Reviewed by Martin Robinson.

Source/WebCore:
Properly resolving the grid-template shorthand for the corresponding longhand
properties.

No new tests, grid-template-shorthand-get-set.html already covers this case.

* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):

LayoutTests:
* TestExpectations: Unskip fast/css-grid-layout/grid-template-shorthand-get-set.html.

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

5 years agoColumn rules not respecting scroll offsets.
hyatt@apple.com [Fri, 25 Apr 2014 21:05:59 +0000 (21:05 +0000)]
Column rules not respecting scroll offsets.
https://bugs.webkit.org/show_bug.cgi?id=109683

Reviewed by Dean Jackson.

Source/WebCore:
Added fast/multicol/scrolling-column-rules.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules):
Make paintColumnRules virtual so that it works with both column implementations.

(WebCore::RenderBlock::paintObject):
Changed to call paintColumnRules with the adjusted scroll offset and to do it after
bailing on the root background only check.

* rendering/RenderBlock.h:
paintColumnRules is now virtual.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::paintColumnRules):
(WebCore::RenderBlockFlow::paintBoxDecorations): Deleted.
* rendering/RenderBlockFlow.h:
Got rid of paintBoxDecorations override since it failed when hasBoxDecorations was false
anyway. Override paintColumnRules instead to paint at the right time.

LayoutTests:
* fast/multicol/scrolling-column-rules.html: Added.
* platform/mac/fast/multicol/scrolling-column-rules-expected.png: Added.
* platform/mac/fast/multicol/scrolling-column-rules-expected.txt: Added.

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

5 years agoCrash in platform/mac/accessibility/table-visible-rows.html
msaboff@apple.com [Fri, 25 Apr 2014 20:34:47 +0000 (20:34 +0000)]
Crash in platform/mac/accessibility/table-visible-rows.html
https://bugs.webkit.org/show_bug.cgi?id=132146

Reviewed by Mark Lam.

Changed to use a local JSValueRef array temporary instead of a
std::make_unique<JSValueRef[]> when making an array of JSValues so that the temporary
JSValues are visited during garbage collection when the stack is scanned.  Otherwise,
the temporary values could be collected.

* DumpRenderTree/AccessibilityUIElement.cpp:
(convertElementsToObjectArray):
* WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::EventSendingController::contextClick):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::convertElementsToObjectArray):

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

5 years agoCrash applying editing commands from iframe onload event
jhoneycutt@apple.com [Fri, 25 Apr 2014 20:30:07 +0000 (20:30 +0000)]
Crash applying editing commands from iframe onload event

<https://bugs.webkit.org/show_bug.cgi?id=132103>
<rdar://problem/15696351>

Source/WebCore:
This patch merges the Chromium bug workaround from
<http://src.chromium.org/viewvc/blink?revision=162080&view=revision>,
which prevents reentrancy in CompositeEditCommand::apply().

Reviewed by Darin Adler.

Test: editing/apply-style-iframe-crash.html

* editing/CompositeEditCommand.cpp:
(WebCore::HTMLNames::ReentrancyGuard::isRecursiveCall):
(WebCore::HTMLNames::ReentrancyGuard::Scope::Scope):
(WebCore::HTMLNames::ReentrancyGuard::Scope::~Scope):
(WebCore::CompositeEditCommand::apply):
If this is a recursive call, return early.

LayoutTests:
Reviewed by Darin Adler.

* editing/apply-style-iframe-crash-expected.txt: Added.
* editing/apply-style-iframe-crash.html: Added.

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

5 years ago[New Multicolumn] fast/multicol/hit-test-* layout tests all fail
hyatt@apple.com [Fri, 25 Apr 2014 20:20:48 +0000 (20:20 +0000)]
[New Multicolumn] fast/multicol/hit-test-* layout tests all fail
https://bugs.webkit.org/show_bug.cgi?id=132081

Reviewed by Dean Jackson.

Source/WebCore:
Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html

* rendering/RenderBlock.h:
Make offsetForContents public, since I need to call it from RenderMultiColumnSet.

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::populate):
Stop an ASSERT in the new columns code on the hit tests by making sure layout state is
disabled when moving children around.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::positionForPoint):
Refactor this function to call a helper function instead, translateRegionPointToFlowThread.

(WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
This function is logical (unlike the mistaken physical function I first implemented in
positionForPoint).

(WebCore::RenderMultiColumnSet::updateHitTestResult):
* rendering/RenderMultiColumnSet.h:
Overridden to fill in the correct local coordinate when the HTML document is inside a paginated
RenderView. Note that column spans don't actually work, but once we move over to a
non-column based pagination API, that will become irrelevant.

LayoutTests:
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-above-or-below-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-above-or-below.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-block-axis-flipped-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-block-axis-flipped.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-end-of-column-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-end-of-column-with-line-height-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-end-of-column-with-line-height.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-end-of-column.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-float-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-float.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-between-pages-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-between-pages-flipped-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-between-pages-flipped.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-between-pages.html: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-block-axis-expected.txt: Added.
* fast/multicol/newmulticol/compare-with-old-impl/hit-test-gap-block-axis.html: Added.

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

5 years agoRefactor debugging code to use BreakpointActions instead of Vector<ScriptBreakpointAc...
mark.lam@apple.com [Fri, 25 Apr 2014 19:45:06 +0000 (19:45 +0000)]
Refactor debugging code to use BreakpointActions instead of Vector<ScriptBreakpointAction>.
<https://webkit.org/b/132201>

Reviewed by Joseph Pecoraro.

BreakpointActions is Vector<ScriptBreakpointAction>.  Let's just consistently use
BreakpointActions everywhere.

* inspector/ScriptBreakpoint.h:
(Inspector::ScriptBreakpoint::ScriptBreakpoint):
* inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::setBreakpoint):
(Inspector::ScriptDebugServer::getActionsForBreakpoint):
* inspector/ScriptDebugServer.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol):
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::removeBreakpoint):
* inspector/agents/InspectorDebuggerAgent.h:

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

5 years agoFigure out how many cores are available for realsies.
fpizlo@apple.com [Fri, 25 Apr 2014 19:41:56 +0000 (19:41 +0000)]
Figure out how many cores are available for realsies.

Rubber stamped by Andreas Kling.

HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin
to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't.
HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting
facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit
wants since it uses this information to decide how many threads to launch for various
things.

* wtf/NumberOfCores.cpp:
(WTF::numberOfProcessorCores):

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

5 years agoDFG worklist scanning should not treat the key as a separate entity
fpizlo@apple.com [Fri, 25 Apr 2014 19:39:09 +0000 (19:39 +0000)]
DFG worklist scanning should not treat the key as a separate entity
https://bugs.webkit.org/show_bug.cgi?id=132167

Reviewed by Mark Hahnenberg.

This simplifies the interface to the GC and will enable more optimizations.

* dfg/DFGCompilationKey.cpp:
(JSC::DFG::CompilationKey::visitChildren): Deleted.
* dfg/DFGCompilationKey.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::visitChildren):
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::visitChildren):

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

5 years agoRemove unused parameter from codeblock linking function
oliver@apple.com [Fri, 25 Apr 2014 18:51:20 +0000 (18:51 +0000)]
Remove unused parameter from codeblock linking function
https://bugs.webkit.org/show_bug.cgi?id=132199

Reviewed by Anders Carlsson.

No change in behaviour. This is just a small change to make it
slightly easier to reason about what the offsets in UnlinkedFunctionExecutable
actually mean.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::link):
* bytecode/UnlinkedCodeBlock.h:
* runtime/Executable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):

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

5 years agoREGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout...
timothy_horton@apple.com [Fri, 25 Apr 2014 18:17:46 +0000 (18:17 +0000)]
REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
https://bugs.webkit.org/show_bug.cgi?id=132194

* TestExpectations:
Skip the test on debug testers.
Also unmark js/slow-stress/new-spread.html because it is fixed (https://bugs.webkit.org/show_bug.cgi?id=132022)

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

5 years agoMark some things with WTF_MAKE_FAST_ALLOCATED.
akling@apple.com [Fri, 25 Apr 2014 18:15:48 +0000 (18:15 +0000)]
Mark some things with WTF_MAKE_FAST_ALLOCATED.
<https://webkit.org/b/132198>

Use FastMalloc for more things.

Reviewed by Anders Carlsson.

Source/JavaScriptCore:
* builtins/BuiltinExecutables.h:
* heap/GCThreadSharedData.h:
* inspector/JSConsoleClient.h:
* inspector/agents/InspectorAgent.h:
* runtime/CodeCache.h:
* runtime/JSGlobalObject.h:
* runtime/Lookup.cpp:
(JSC::HashTable::createTable):
(JSC::HashTable::deleteTable):
* runtime/WeakGCMap.h:

Source/WebCore:
* bindings/js/ScriptController.h:
* dom/DocumentOrderedMap.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorPageAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.h:
* loader/HistoryController.h:
* page/DeviceClient.h:
* page/DeviceController.h:
* page/EventHandler.h:
* page/Page.h:
* page/scrolling/ScrollingStateNode.h:
* platform/graphics/FontGenericFamilies.h:
* platform/graphics/FontPlatformData.h:

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

5 years ago[CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
stavila@adobe.com [Fri, 25 Apr 2014 17:58:19 +0000 (17:58 +0000)]
[CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
https://bugs.webkit.org/show_bug.cgi?id=132050

Reviewed by Andreas Kling.

The objectShouldPaintInFlowRegion is no longer used only by the painting process
but also for hit-testing, so it was renamed to something more generic (objectShouldFragmentInFlowRegion).

No new tests required, it's just a method rename.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionForPoint):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
(WebCore::RenderFlowThread::objectShouldPaintInFlowRegion): Deleted.
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::ensureOverflowForBox):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):

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

5 years agoiOS build fix after http://trac.webkit.org/changeset/167803
enrica@apple.com [Fri, 25 Apr 2014 17:53:32 +0000 (17:53 +0000)]
iOS build fix after trac.webkit.org/changeset/167803
Unreviewed.

* page/Frame.cpp:
(WebCore::Frame::checkOverflowScroll):
* rendering/RenderBlock.cpp:
(WebCore::positionForPointRespectingEditingBoundaries):

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

5 years ago[New Multicolumn] Add support for offsetLeft and offsetTop.
hyatt@apple.com [Fri, 25 Apr 2014 16:21:38 +0000 (16:21 +0000)]
[New Multicolumn] Add support for offsetLeft and offsetTop.
https://bugs.webkit.org/show_bug.cgi?id=132080

Reviewed by Andrei Bucur.

Source/WebCore:
Added fast/multicol/client-spanners-complex.html and offset-top-left.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
Patch the offsetLeft/Top loop to handle calling into RenderMultiColumnFlowThread
in order to adjust the coordinates for the new multicolumn layout.

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
Modified to use a helper that can be shared by offsetLeft/Top code. This code
ran for client rects, and I'm moving/refactoring it for more sharing.

(WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
(WebCore::RenderMultiColumnFlowThread::physicalTranslationFromFlowToRegion):
* rendering/RenderMultiColumnFlowThread.h:
New functions that beef up what was in mapFromFlowToRegion and fix some bugs
with the translation code.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
Patched to factor in the flow thread portion rect of the specific multicolumn set.

* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMultiColumnFlowThread):
Added for toRenderMultiColumnFlowThread capability.

LayoutTests:
* fast/multicol/client-rects-spanners-complex.html: Added.
* fast/multicol/client-rects-spanners.html:
* fast/multicol/offset-top-left-expected.txt: Added.
* fast/multicol/offset-top-left.html: Added.
* platform/mac/fast/multicol/client-rects-spanners-complex-expected.png: Added.
* platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt: Added.

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

5 years agoScrollingCoordinator is unaware of topContentInset
bfulgham@apple.com [Fri, 25 Apr 2014 15:27:55 +0000 (15:27 +0000)]
ScrollingCoordinator is unaware of topContentInset
https://bugs.webkit.org/show_bug.cgi?id=132158
<rdar://problem/16706152>

Reviewed by Darin Adler.

Source/WebCore:
Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html

The calculation of non-fast-scrollable regions does not currently take
the topContentOffset into account. Consequently, the logic that decides
whether to stay on the scrolling thread, or drop down to an individual
page element, can make the wrong choice. This is especially true for
small scrollable regions (such as <select> elements), where the
topContentInset may be quite close to the size of the scrollable
 element itself.

* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
include the topContentInset value in our calculation.

LayoutTests:
* platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt: Added.
* platform/mac/fast/scrolling/scroll-select-bottom-test.html: Added.

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

5 years agoREGRESSION(r167799): Breaks debug build
commit-queue@webkit.org [Fri, 25 Apr 2014 15:15:52 +0000 (15:15 +0000)]
REGRESSION(r167799): Breaks debug build
https://bugs.webkit.org/show_bug.cgi?id=132194

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-04-25
Reviewed by Andrei Bucur.

Fix the debug bots after r167799

No new tests, no new functionality.

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

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

5 years agoWeb process is crashed during dispatching touchEvent created by JS.
commit-queue@webkit.org [Fri, 25 Apr 2014 14:28:24 +0000 (14:28 +0000)]
Web process is crashed during dispatching touchEvent created by JS.
https://bugs.webkit.org/show_bug.cgi?id=113225

Patch by Miyoung Shin <myid.shin@samsung.com> on 2014-04-25
Reviewed by Benjamin Poulain.

TouchEvent created by JS should have the necessary attributes
of touches, targetTouches and changedTouches.
It should be verified weather there are touchLists before dispatching touch event.

Source/WebCore:
Test: fast/events/touch/create-touch-event-without-touchList.html

* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::updateTouchLists):
(WebCore::addRelatedNodeResolversForTouchList): Deleted.

LayoutTests:
* fast/events/touch/create-touch-event-without-touchList-expected.txt: Added.
* fast/events/touch/create-touch-event-without-touchList.html: Added.

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

5 years ago[GTK] File webkitRelativePath attribute was removed in r163483
commit-queue@webkit.org [Fri, 25 Apr 2014 14:17:54 +0000 (14:17 +0000)]
[GTK] File webkitRelativePath attribute was removed in r163483
https://bugs.webkit.org/show_bug.cgi?id=132193

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed getter as deprecated API to keep backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_file_get_webkit_relative_path):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

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

5 years ago[CSS Regions] Overflow selection doesn't work properly
stavila@adobe.com [Fri, 25 Apr 2014 13:56:12 +0000 (13:56 +0000)]
[CSS Regions] Overflow selection doesn't work properly
https://bugs.webkit.org/show_bug.cgi?id=130715

Reviewed by David Hyatt.

Source/WebCore:
When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
at the top of region B could hit elements that overflow the bottom of region A.

Tests: fast/regions/selection-in-overflow-hit-testing.html
       fast/regions/selection-in-overflow.html
       fast/regions/selection-in-text-after-overflow-hit-testing.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
* dom/Document.cpp:
(WebCore::Document::caretRangeFromPoint):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromHitTestResult):
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::selectionExtentRespectingEditingBoundary):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::handleMouseReleaseEvent):
* page/Frame.cpp:
(WebCore::Frame::visiblePositionForPoint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::positionForPointRespectingEditingBoundaries):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::isChildHitTestCandidate):
(WebCore::RenderBlock::positionForPoint):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::positionForPoint):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionForPoint):
* rendering/RenderBox.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::positionForPoint):
* rendering/RenderFileUploadControl.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::positionForPoint):
* rendering/RenderInline.h:
* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::positionForPoint):
* rendering/RenderLineBreak.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::positionForPoint):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::positionForPoint):
* rendering/RenderObject.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::positionForPoint):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
* rendering/RenderReplaced.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
* rendering/RenderText.h:
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::positionForPoint):
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::positionForPoint):
* rendering/svg/RenderSVGText.h:

LayoutTests:
Added tests for hit-testing and painting selection gaps in the region's overflow area.

* fast/regions/selection-in-overflow-expected.html: Added.
* fast/regions/selection-in-overflow-hit-testing-expected.html: Added.
* fast/regions/selection-in-overflow-hit-testing.html: Added.
* fast/regions/selection-in-overflow.html: Added.
* fast/regions/selection-in-text-after-overflow-hit-testing-expected.html: Added.
* fast/regions/selection-in-text-after-overflow-hit-testing.html: Added.

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

5 years ago[GTK] Iframe seamless support was removed in r163427
commit-queue@webkit.org [Fri, 25 Apr 2014 13:35:26 +0000 (13:35 +0000)]
[GTK] Iframe seamless support was removed in r163427
https://bugs.webkit.org/show_bug.cgi?id=132192

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed get and set methods as deprecated API to keep
backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_processing_instruction_set_data):
(webkit_dom_html_iframe_element_get_seamless):
(webkit_dom_html_iframe_element_set_seamless):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

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

5 years ago[GTK] HTMLInputElement webkitdirectory property was removed in r163483
commit-queue@webkit.org [Fri, 25 Apr 2014 13:24:07 +0000 (13:24 +0000)]
[GTK] HTMLInputElement webkitdirectory property was removed in r163483
https://bugs.webkit.org/show_bug.cgi?id=132191

Patch by Philippe Normand <pnormand@igalia.com> on 2014-04-25
Reviewed by Carlos Garcia Campos.

Add the removed get and set methods as deprecated API to keep
backwards compatibility.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_html_input_element_get_webkitdirectory):
(webkit_dom_html_input_element_set_webkitdirectory):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

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

5 years agoUnreviewed GTK gardening.
commit-queue@webkit.org [Fri, 25 Apr 2014 12:38:58 +0000 (12:38 +0000)]
Unreviewed GTK gardening.

Added test expectations for the following flaky tests:

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-04-25

* platform/gtk/TestExpectations:
    fast/loader/submit-form-while-parsing-2.html
    css3/calc/transitions-dependent.html
    fast/dom/adopt-node-crash-2.html
    fast/multicol/span/span-as-immediate-columns-child-dynamic.html
    platform/gtk/editing/pasteboard/middle-button-paste.html

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

5 years ago[CSS Grid Layout] Implementation of the grid-template shorthand.
commit-queue@webkit.org [Fri, 25 Apr 2014 12:06:53 +0000 (12:06 +0000)]
[CSS Grid Layout] Implementation of the grid-template shorthand.
https://bugs.webkit.org/show_bug.cgi?id=128980

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-04-25
Reviewed by Darin Adler.

Source/WebCore:
This shorthand sets the values for the grid-template-columns,
grid-template-rows and grid-template-areas, so the implementation
tries to reuse as much available parsing functions as possible.

The "parsingGridTrackList" was refactored to return a CSSValue and
let the "parseValue" function to assign the property value. The
"forwardSlash" operator is now valid when the track-list clause is
part of a shorthand. The "parseValue" function checkouts that only
additional clauses are allowed when processing shorthands; the
grid-columns-rows-get-set.html tests was modified to verify this.

The "parseGridTemplateAreas" was refactored too, in order to
process single areas's rows. This is very useful for the
gris-template secondary syntax, which mixes areas and rows values.

Finally, the "parseGirdLineNames" function was modified as well by
defining an new argument to concatenate head/tail custom-ident
elements and ensure the identList is at the heading index, since
it's now possible the parseList was rewound.

The implementation of the grid-template shorthand tries first to
match the <grid-template-columns> / <grid-template-rows> syntax,
failing back to the secondary syntax if needed.  This approach
requires to rewind the parseList but it produces a clearer code.

Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTemplateRowsAndAreas):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTemplateAreasRow):
(WebCore::CSSParser::parseGridTemplateAreas):
* css/CSSParser.h:
* css/CSSParserValues.h:
(WebCore::CSSParserValueList::setCurrentIndex):
* css/CSSPropertyNames.in:
* css/StylePropertyShorthand.cpp:
(WebCore::webkitGridTemplateShorthand):
* css/StylePropertyShorthand.h:

LayoutTests:
Layout Test for the basic functionality of the grid-template shorthand. It was
also added a new javascript file with some utility functions.

This shorthand sets the values for the grid-template-columns,
grid-template-rows and grid-template-areas, so the implementation
tries to reuse as much available parsing functions as possible.

* fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt: Added.
* fast/css-grid-layout/grid-template-shorthand-get-set.html: Added.
* fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js: Added.
(testGridDefinitionsValues):
(testGridDefinitionsSetJSValues):
(testNonGridDefinitionsSetJSValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):

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

5 years agoRemove two unused SVGDocument functions.
akling@apple.com [Fri, 25 Apr 2014 09:23:13 +0000 (09:23 +0000)]
Remove two unused SVGDocument functions.
<https://webkit.org/b/132178>

Reviewed by Antti Koivisto.

* svg/SVGDocument.cpp:
(WebCore::SVGDocument::dispatchZoomEvent): Deleted.
(WebCore::SVGDocument::dispatchScrollEvent): Deleted.
* svg/SVGDocument.h:

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

5 years agoImplement Array.prototype.find()
graouts@webkit.org [Fri, 25 Apr 2014 08:25:59 +0000 (08:25 +0000)]
Implement Array.prototype.find()
https://bugs.webkit.org/show_bug.cgi?id=130966

Reviewed by Oliver Hunt.

Source/JavaScriptCore:
Implement Array.prototype.find() and Array.prototype.findIndex() as proposed in the Harmony spec.

* builtins/Array.prototype.js:
(find):
(findIndex):
* runtime/ArrayPrototype.cpp:

LayoutTests:
* js/Object-getOwnPropertyNames-expected.txt:
* js/array-find-expected.txt: Added.
* js/array-find.html: Added.
* js/array-findIndex-expected.txt: Added.
* js/array-findIndex.html: Added.
* js/script-tests/Object-getOwnPropertyNames.js:
* js/script-tests/array-find.js: Added.
* js/script-tests/array-findIndex.js: Added.

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

5 years agoIncomplete body painting when using blend modes
commit-queue@webkit.org [Fri, 25 Apr 2014 08:04:28 +0000 (08:04 +0000)]
Incomplete body painting when using blend modes
https://bugs.webkit.org/show_bug.cgi?id=131889

Source/WebCore:
The incomplete painting was caused by the transparency layer created for
the root renderer. We can safely skip creating this transparency layer at
the root level, as there is nothing else being painted behind this layer that
could be used erroneously as a backdrop.

Patch by Ion Rosca <rosca@adobe.com> on 2014-04-25
Reviewed by Simon Fraser.

Test: css3/compositing/blend-mode-with-body.html

* rendering/RenderLayer.h:
Changing RenderLayer::paintsWithTransparency so that it will not
return true when the root renderer needs to isolate blending.

LayoutTests:
Patch by Ion Rosca <rosca@adobe.com> on 2014-04-25
Reviewed by Simon Fraser.

* css3/compositing/blend-mode-with-body-expected.html: Added.
* css3/compositing/blend-mode-with-body.html: Added.

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

5 years ago[GTK] Plugin process crashes with GTK2 windowed plugins
carlosgc@webkit.org [Fri, 25 Apr 2014 07:58:31 +0000 (07:58 +0000)]
[GTK] Plugin process crashes with GTK2 windowed plugins
https://bugs.webkit.org/show_bug.cgi?id=132127

Reviewed by Martin Robinson.

It happens sometimes because the socket is used before the plug
has been added. A runtime critical warnings is shown and it
sometimes ends up crashing.

* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPostInitializeWindowed): Do not
show the plug widget until the socket is connected.

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

5 years agoASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in...
darin@apple.com [Fri, 25 Apr 2014 07:55:19 +0000 (07:55 +0000)]
ASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in svg/custom/use-instanceRoot-event-listeners.xhtml
https://bugs.webkit.org/show_bug.cgi?id=132148

Reviewed by Andreas Kling.

Changed how JSCustomMarkFunction generation works. Instead of leaving out
the generated visitChildren function, just generate a call to visitAdditionalChildren.
This eliminates the need to repeat boilerplate.

The fix for the above bug was to correct mistaken logic where JSSVGElementInstance
had a visitChildren that did not properly mark event listeners because it explicitly
did not call through to the base class visitChildren. The new arrangement makes that
mistake impossible.

* bindings/js/JSAttrCustom.cpp:
(WebCore::JSAttr::visitAdditionalChildren): Use this instead of visitChildren.
* bindings/js/JSAudioTrackCustom.cpp:
(WebCore::JSAudioTrack::visitAdditionalChildren): Ditto.
* bindings/js/JSAudioTrackListCustom.cpp:
(WebCore::JSAudioTrackList::visitAdditionalChildren): Ditto.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::JSCSSRule::visitAdditionalChildren): Ditto.
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): Ditto.
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::JSCanvasRenderingContext::visitAdditionalChildren): Ditto.
* bindings/js/JSCryptoKeyPairCustom.cpp:
(WebCore::JSCryptoKeyPair::visitAdditionalChildren): Ditto.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren): Ditto.
* bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannel::visitAdditionalChildren): Ditto.
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::visitAdditionalChildren): Ditto.
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::visitAdditionalChildren): Ditto.
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::visitAdditionalChildren): Ditto.
* bindings/js/JSNodeIteratorCustom.cpp:
(WebCore::JSNodeIterator::visitAdditionalChildren): Ditto.
* bindings/js/JSSVGElementInstanceCustom.cpp:
(WebCore::JSSVGElementInstance::visitAdditionalChildren): Ditto.
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorker::visitAdditionalChildren): Ditto.
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::JSStyleSheet::visitAdditionalChildren): Ditto.
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCue::visitAdditionalChildren): Ditto.
* bindings/js/JSTextTrackCustom.cpp:
(WebCore::JSTextTrack::visitAdditionalChildren): Ditto.
* bindings/js/JSTextTrackListCustom.cpp:
(WebCore::JSTextTrackList::visitAdditionalChildren): Ditto.
* bindings/js/JSTreeWalkerCustom.cpp:
(WebCore::JSTreeWalker::visitAdditionalChildren): Ditto.
* bindings/js/JSVideoTrackCustom.cpp:
(WebCore::JSVideoTrack::visitAdditionalChildren): Ditto.
* bindings/js/JSVideoTrackListCustom.cpp:
(WebCore::JSVideoTrackList::visitAdditionalChildren): Ditto.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::visitAdditionalChildren): Ditto.
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::visitAdditionalChildren): Ditto.
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::visitAdditionalChildren): Ditto.
* bindings/js/JSXPathResultCustom.cpp:
(WebCore::JSXPathResult::visitAdditionalChildren): Ditto.

* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Generate declaration of visitAdditionalChildren.
(GenerateImplementation): Generate call to visitAdditionalChildren.

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

5 years ago[iOS WebKit2] Enable optimization to mmap downloaded resources once they become file...
akling@apple.com [Fri, 25 Apr 2014 07:19:31 +0000 (07:19 +0000)]
[iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
<https://webkit.org/b/132171>
<rdar://problem/16720733>

Source/WebCore:
Add a missing export for the USE(CFNETWORK) + WebKit2 combo.

Reviewed by Antti Koivisto.

* WebCore.exp.in:

Source/WebKit2:
Implement a CFNetwork-based version of NetworkResourceLoader::willCacheResponseAsync()
and activate the DiskCacheMonitor code path. This means that once resources go into
file system cache, we get notified and mmap them from disk, saving heaps of memory.

Reviewed by Antti Koivisto.

* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/mac/DiskCacheMonitor.mm:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::willCacheResponseAsync):

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

5 years ago[iOS WebKit2] RemoteLayerTreeDrawingArea should force CA to garbage collect surfaces.
akling@apple.com [Fri, 25 Apr 2014 06:28:33 +0000 (06:28 +0000)]
[iOS WebKit2] RemoteLayerTreeDrawingArea should force CA to garbage collect surfaces.
<https://webkit.org/b/132160>
<rdar://problem/16110687>

Do an empty CATransaction at the end of RemoteLayerTreeDrawingArea::flushLayers()
to get CA to garbage collect its IOSurfaces. This helps clean up unused surfaces
that we'd otherwise end up hanging on to for a long time.

Reviewed by Tim Horton.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):

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

5 years agoFix typo in comment from last check-in
darin@apple.com [Fri, 25 Apr 2014 06:02:42 +0000 (06:02 +0000)]
Fix typo in comment from last check-in

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

5 years agoFrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
darin@apple.com [Fri, 25 Apr 2014 06:01:34 +0000 (06:01 +0000)]
FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
https://bugs.webkit.org/show_bug.cgi?id=132163
rdar://problem/16720640

Reviewed by Brady Eidson.

Couldn't find a way to test this yet. Would be nice to have a test.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkCompleted): Move protector until after we check
if the frame is already complete. That can happen in practice when this is
called from within the frame's destructor. All the code that runs before the
protector simply checks state and does not require protection.

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

5 years agoMark Supplement instead of RefCountedSupplement in NavigatorContentUtils
gyuyoung.kim@samsung.com [Fri, 25 Apr 2014 03:59:46 +0000 (03:59 +0000)]
Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=132151

Reviewed by Darin Adler.

Though Original goal was to make it sharable across navigator instances, the NavigatorContentUtils
has used RefCountedSupplement<Page> instead of RefCountedSupplement<Navigator>. This patch makes it
use Supplement<Page> because there is no scenario which needs to be shared across navigator instances.

Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.

No new tests, no behavior changes.

* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::from):
(WebCore::NavigatorContentUtils::create):
(WebCore::provideNavigatorContentUtilsTo):
* Modules/navigatorcontentutils/NavigatorContentUtils.h:

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

5 years agoUnreviewed, rolling out r167700.
rniwa@webkit.org [Fri, 25 Apr 2014 01:24:27 +0000 (01:24 +0000)]
Unreviewed, rolling out r167700.
https://bugs.webkit.org/show_bug.cgi?id=132142

Incorrectly reverted the change in r167547 for
webkit.org/b/131898 (Requested by rniwa on #webkit).

Reverted changeset:

"Cursor doesn't change back to pointer when leaving the Safari
window"
https://bugs.webkit.org/show_bug.cgi?id=132038
http://trac.webkit.org/changeset/167700

Patch by Commit Queue <commit-queue@webkit.org> on 2014-04-24

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

5 years agoWeb Inspector: Dashboard when paused in debugger shows some missing glyph boxes
timothy@apple.com [Fri, 25 Apr 2014 00:54:05 +0000 (00:54 +0000)]
Web Inspector: Dashboard when paused in debugger shows some missing glyph boxes
https://bugs.webkit.org/show_bug.cgi?id=132113

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger > .location .function-name::after): Fix the codepoint for nbsp.

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

5 years agoRename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
beidson@apple.com [Fri, 25 Apr 2014 00:53:01 +0000 (00:53 +0000)]
Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
https://bugs.webkit.org/show_bug.cgi?id=132155

Reviewed by Tim Horton.

Source/JavaScriptCore:
* Configurations/FeatureDefines.xcconfig:

Source/WebCore:
No new tests (No change in behavior).

* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.exp.in:
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSValueKeywords.in:
* dom/Node.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
* html/HTMLImageElement.h:
* html/shadow/ImageControlsRootElement.cpp:
* html/shadow/ImageControlsRootElement.h:
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
* html/shadow/mac/ImageControlsButtonElementMac.h:
* html/shadow/mac/ImageControlsRootElementMac.cpp:
* html/shadow/mac/ImageControlsRootElementMac.h:
* page/ContextMenuContext.cpp:
(WebCore::ContextMenuContext::ContextMenuContext):
* page/ContextMenuContext.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::ContextMenuController::populate):
* page/ContextMenuController.h:
* page/Settings.in:
* platform/ThemeTypes.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::canHaveChildren):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::servicesRolloverButtonCell):
(WebCore::RenderThemeMac::paintImageControlsButton):
(WebCore::RenderThemeMac::imageControlsButtonSize):

Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:
* Misc/WebSharingServicePickerController.h:
* Misc/WebSharingServicePickerController.mm:
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::contextMenuForEvent):
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::operator=):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebContextMenu.cpp:
* WebProcess/WebPage/WebContextMenu.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

5 years agoWeb Inspector: Restore PageDebuggerAgent::enable / disable
timothy@apple.com [Fri, 25 Apr 2014 00:51:14 +0000 (00:51 +0000)]
Web Inspector: Restore PageDebuggerAgent::enable / disable
https://bugs.webkit.org/show_bug.cgi?id=132156

Restore functions that were eroniously removed in r167530.

Reviewed by Joseph Pecoraro.

* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::enable): Added.
(WebCore::PageDebuggerAgent::disable): Added.
* inspector/PageDebuggerAgent.h:

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

5 years agoDropzone effects don't work in non-file documents
ap@apple.com [Fri, 25 Apr 2014 00:48:38 +0000 (00:48 +0000)]
Dropzone effects don't work in non-file documents
https://bugs.webkit.org/show_bug.cgi?id=131770

Reviewed by Darin Adler.

File documents have two quirks that were making dropzone work in these before:
1. An ancient hack for Dashboard allows pasteboard access from JS.
2. On Mac, sandbox doesn't prevent File object creation, as we already have the access.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::hasFileOfType):
(WebCore::DataTransfer::hasStringOfType):
* dom/DataTransfer.h:
Moved these functions from EventHandler to DataTransfer. We can't create a DataTransfer
with Files while dragging, security doesn't permit us to. But we can get the file name.

* fileapi/File.cpp:
(WebCore::createBlobDataForFile):
(WebCore::createBlobDataForFileWithName):
(WebCore::File::contentTypeFromFilePath):
(WebCore::getContentTypeFromFileName): Deleted.
* fileapi/File.h:
Exposed a function to get file type from path without creating a File first.
This is much cheaper than creating a File, and works even when sandbox disallows
read access to content, such as when dragging over a target.

* page/EventHandler.cpp:
(WebCore::hasDropZoneType):
(WebCore::hasFileOfType): Deleted.
(WebCore::hasStringOfType): Deleted.

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

5 years ago[iOS] Add some missing overrides and remove unnecessary virtuals
commit-queue@webkit.org [Fri, 25 Apr 2014 00:17:07 +0000 (00:17 +0000)]
[iOS] Add some missing overrides and remove unnecessary virtuals
https://bugs.webkit.org/show_bug.cgi?id=132153

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-04-24
Reviewed by Darin Adler.

* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:

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

5 years agoREGRESSION: Apparent hang of PCE.js Mac OS System 7.0.1 on ARM64 devices
msaboff@apple.com [Fri, 25 Apr 2014 00:14:14 +0000 (00:14 +0000)]
REGRESSION: Apparent hang of PCE.js Mac OS System 7.0.1 on ARM64 devices
https://bugs.webkit.org/show_bug.cgi?id=132147

Reviewed by Mark Lam.

Fixed or64(), eor32( ) and eor64() to use "src" register when we have a valid logicalImm.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::or64):
(JSC::MacroAssemblerARM64::xor32):
(JSC::MacroAssemblerARM64::xor64):
* tests/stress/regress-132147.js: Added test.

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

5 years agoWeb Inspector: Should update to CodeMirror 4.1
commit-queue@webkit.org [Fri, 25 Apr 2014 00:06:46 +0000 (00:06 +0000)]
Web Inspector: Should update to CodeMirror 4.1
https://bugs.webkit.org/show_bug.cgi?id=132140

Patch by Jonathan Wells <jonowells@apple.com> on 2014-04-24
Reviewed by Timothy Hatcher.

Updated to CodeMirror 4.1, which contains several bugfixes.
Release notes: http://codemirror.net/doc/releases.html#v4

* Tools/PrettyPrinting/codemirror.js:
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/xml.js:
Updated to CodeMirror 4.1.

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

5 years agoUnreviewed, rolling out r167441.
jer.noble@apple.com [Thu, 24 Apr 2014 22:48:32 +0000 (22:48 +0000)]
Unreviewed, rolling out r167441.
https://bugs.webkit.org/show_bug.cgi?id=132152

Caused full screen regressions on vimeo, youtube, and others.
(Requested by jernoble on #webkit).

Reverted changeset:

"Fullscreen media controls are unusable in pagination mode"
https://bugs.webkit.org/show_bug.cgi?id=131705
http://trac.webkit.org/changeset/167441

Patch by Commit Queue <commit-queue@webkit.org> on 2014-04-24

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

5 years agoWeb Inspector: CSS autofill suggests properties instead of values when values are...
commit-queue@webkit.org [Thu, 24 Apr 2014 22:29:16 +0000 (22:29 +0000)]
Web Inspector: CSS autofill suggests properties instead of values when values are needed
https://bugs.webkit.org/show_bug.cgi?id=132090

Patch by Jonathan Wells <jonowells@apple.com> on 2014-04-24
Reviewed by Joseph Pecoraro.

Updates are required to the CodeMirror helpers to be compatible with
CodeMirror 4. Some of those changes have been made to fix an issue
with CSS autofill, CSS code coloring, and also
https://bugs.webkit.org/show_bug.cgi?id=131859. The main issue is that
CodeMirror 4's CSS mode (css.js) stores its parsing modes in a different
data structure. All references to state.stack are obscelete. Many
are fixed here and more will be in an upcoming patch.

* Tools/PrettyPrinting/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions): Corrected "block" state detection.
* UserInterface/External/CodeMirror/less.js: Removed.
* UserInterface/Views/CodeMirrorAdditions.js: Sets default state of "block" correctly.
* UserInterface/Views/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css: Fix styles to match CSS mode changes.

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

5 years agoUnused class forward declarations in Page
cavalcantii@gmail.com [Thu, 24 Apr 2014 22:14:14 +0000 (22:14 +0000)]
Unused class forward declarations in Page
https://bugs.webkit.org/show_bug.cgi?id=132141

Reviewed by Benjamin Poulain.

No new tests, no change on behavior.

* page/Page.h:

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

5 years ago[Mac] don't ask for AVAssetTrack properties before they are available
eric.carlson@apple.com [Thu, 24 Apr 2014 21:46:19 +0000 (21:46 +0000)]
[Mac] don't ask for AVAssetTrack properties before they are available
https://bugs.webkit.org/show_bug.cgi?id=131902
<rdar://problem/16505076>

Reviewed by Brent Fulgham.

No new tests, the behavior this changes can not be tested with a layout test.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
    m_cachedTotalBytes.
(WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
    metadata has been loaded until the track properties we need have been loaded too.
(WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
    of recalculating it every time.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
    total bytes.
(WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.

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

5 years agoWebKit2 View Gestures: Use a single struct for the snapshot, and pass it around
timothy_horton@apple.com [Thu, 24 Apr 2014 21:45:55 +0000 (21:45 +0000)]
WebKit2 View Gestures: Use a single struct for the snapshot, and pass it around
https://bugs.webkit.org/show_bug.cgi?id=132114

Reviewed by Simon Fraser.

Have only a single map in ViewSnapshotStore, from back-forward item
to ViewSnapshotStore::Snapshot, and return the Snapshot struct when looking
up snapshots (via getSnapshot()), so that future patches can persist additional
information along with the snapshot.

* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::retrieveSnapshotForItem):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
Adopt getSnapshot() instead of snapshotAndRenderTreeSize().
Move retrieveSnapshotForItem out into a separate function (for future use).

* UIProcess/mac/ViewSnapshotStore.h:
(WebKit::ViewSnapshotStore::disableSnapshotting):
(WebKit::ViewSnapshotStore::enableSnapshotting):
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::pruneSnapshots):
(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::getSnapshot):
(WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize): Deleted.
Make Snapshot struct public.
Get rid of the separate map of back-forward items to render tree sizes.
When evicting, instead of removing the entry, clear out its snapshot image;
this way, we can keep other snapshot metadata around.

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

5 years ago[iOS WebKit2] Should properly handle focus redirect (keyboard state changes when...
enrica@apple.com [Thu, 24 Apr 2014 21:44:42 +0000 (21:44 +0000)]
[iOS WebKit2] Should properly handle focus redirect (keyboard state changes when focus changes).
https://bugs.webkit.org/show_bug.cgi?id=132136
<rdar://problem/16238336>

Reviewed by Benjamin Poulain.

Focusing a field from JavaScript should not make the keyboard or the select picker
appear unless the user has already started interacting with one of the fields in the page.
Adding a parameter to StartAssistingNode to indicate whether the focus change is a result
of a user action.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:userObject:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::dispatchTouchEvent):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleTap):
(WebKit::WebPage::elementDidFocus):

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