timothy_horton@apple.com [Mon, 21 Jul 2014 22:17:24 +0000 (22:17 +0000)]
Random crashes on the Web Thread due to Timers firing on the wrong thread in the UI process
https://bugs.webkit.org/show_bug.cgi?id=135132
<rdar://problem/
17719832>
Reviewed by Simon Fraser.
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
(WebKit::ProcessThrottler::suspendTimerFired):
* UIProcess/ProcessThrottler.h:
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
We can't use WebCore timers in the UI process because of coexistence concerns
(they fire on the Web Thread if there is one!), so use RunLoop::Timer instead.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171317
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Mon, 21 Jul 2014 20:47:03 +0000 (20:47 +0000)]
[MSE] YouTube video decode error when variant-switching
https://bugs.webkit.org/show_bug.cgi?id=135128
Reviewed by Brent Fulgham.
Source/WebCore:
Test: media/media-source/media-source-overlapping-decodetime.html
When variant-switching, the situation can arise where an existing sample with a presentation
timestamp of N and a decode timestamp of M, and a new sample with a presentation timestamp > N
and the same decode timestamp of M, will keep the new sample from being added to the SampleMap.
This can result in a decode error when samples depending on that new, missing sample are enqueued.
The MSE spec is silent on the issue of overlapping decode timestamps. However, it guarantees that
presentation timestamps are non-overlapping. So instead of using just the decode timestamp as a key
for storing the samples in decode order, use both the decode timestamp and the presentation timestamp.
That ensures that samples with different presentation times but equal decode times are both inserted
into the decode queue, and in the correct order.
* Modules/mediasource/SampleMap.cpp:
(WebCore::SampleIsRandomAccess::operator()): Update the parameter type to match the new KeyType.
(WebCore::SampleMap::addSample): Pass both decodeTime and presentationTime as the key to decodeOrder.
(WebCore::SampleMap::removeSample): Ditto.
(WebCore::DecodeOrderSampleMap::findSampleWithDecodeKey): Renamed from findSampleWithDecodeTime.
(WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeKey): renamed from reverseFindSampleWithDecodeTime.
(WebCore::DecodeOrderSampleMap::findSyncSamplePriorToPresentationTime): Use renamed version of above.
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime): Ditto.
(WebCore::DecodeOrderSampleMap::findDependentSamples): Ditto.
(WebCore::DecodeOrderSampleMap::findSampleWithDecodeTime): Deleted.
(WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeTime): Deleted.
* Modules/mediasource/SampleMap.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::reenqueueMediaForTime): Ditto.
LayoutTests:
* media/media-source/media-source-overlapping-decodetime-expected.txt: Added.
* media/media-source/media-source-overlapping-decodetime.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171316
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dino@apple.com [Mon, 21 Jul 2014 19:26:15 +0000 (19:26 +0000)]
Allow MiniBrowser WK1 to do element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=135125
Reviewed by Simon Fraser.
Allow WK1 windows to go fullscreen using the DOM API.
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController awakeFromNib]): Enable the preference for
fullscreen.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171315
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aestes@apple.com [Mon, 21 Jul 2014 19:20:33 +0000 (19:20 +0000)]
[iOS] Handle QuickLook ResourceLoaders in the web process
https://bugs.webkit.org/show_bug.cgi?id=135113
Reviewed by David Kilzer.
Source/WebCore:
No new tests. QuickLook is not testable from WebKit.
* WebCore.exp.in:
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Start loading the ResourceLoader if it is for a QuickLook resource.
* loader/ResourceLoadScheduler.h:
Source/WebKit2:
The QuickLook framework registers a NSURLProtocol to handle loading subresources of the HTML documents it
generates. In order for these loads to succeed, we need to start them in the same process in which QuickLook
generated the main resource.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171314
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 21 Jul 2014 19:20:00 +0000 (19:20 +0000)]
fast/canvas/canvas-putImageData-zero-alpha.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131787
* platform/mac/TestExpectations: Mark it as such.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171313
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jonowells@apple.com [Mon, 21 Jul 2014 19:16:28 +0000 (19:16 +0000)]
Back/Forward arrows (modern) are too large.
https://bugs.webkit.org/show_bug.cgi?id=135073
Reviewed by Joseph Pecoraro.
Changes to adjust new forward and back arrow sizes to be more consistent with the
universal design language. Moved WebInspector.Platform definition to its own file.
Refactored handling of image versions inside ImageUtilities.js.
* UserInterface/Base/ImageUtilities.js:
(.restoreImage):
(.generateImage):
(generateColoredImagesForCSS):
Make the default image versioning smarter.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString): Deleted.
(WebInspector.contentLoaded.WebInspector.Platform.toString): Deleted.
* UserInterface/Base/Platform.js: Added.
Move platform information definition into Platform.js.
* UserInterface/Main.html: Include Platform.js.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/FindBanner.css:
(.find-banner > button > .glyph):
(body.mac-platform.legacy .find-banner > button > .glyph):
(.find-banner > button.segmented.left > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph):
(.find-banner > button.segmented.right > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented):
(body.mac-platform.legacy .find-banner > button.segmented):
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Size of forward and back arrows adjusted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171312
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 21 Jul 2014 19:15:34 +0000 (19:15 +0000)]
Case sensitive file system build fix.
* page/scrolling/ScrollingStateTree.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171311
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Mon, 21 Jul 2014 19:04:14 +0000 (19:04 +0000)]
Build fix.
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171310
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Mon, 21 Jul 2014 18:34:02 +0000 (18:34 +0000)]
Unreviewed hidpi test gardening.
Use Ahem font to ensure font size predictability.
* fast/forms/hidpi-fieldset-on-subpixel-position-when-legend-is-present-expected.html:
* fast/forms/hidpi-fieldset-on-subpixel-position-when-legend-is-present.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171309
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Mon, 21 Jul 2014 18:31:53 +0000 (18:31 +0000)]
Put position:fixed elements into layers when a WK1 view is layer-backed
https://bugs.webkit.org/show_bug.cgi?id=135075
Reviewed by Darin Adler.
Source/WebCore:
This patch adds a new ChromeClient function called
requiresAcceleratedCompositingForViewportConstrainedPosition(). Since a view can
go in and out of layer backing, we need a ChromeClient method that can be
dynamically re-evaluated rather than using the existing settings for enabling
accelerated fixed and fixed that creates a stacking context.
Ensure that fixed elements create a stacking context when
requiresAcceleratedCompositingForViewportConstrainedPosition is true.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
New ChromeClient function.
* page/ChromeClient.h:
Source/WebKit/mac:
Returns true when the WebHTMLView has a layer.
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171308
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 21 Jul 2014 18:26:45 +0000 (18:26 +0000)]
Add helper functions to dump the scrolling state tree from the debugger
https://bugs.webkit.org/show_bug.cgi?id=135101
Reviewed by Darin Adler.
Add debug-only showScrollingStateTree() functions that take a ScrollingStateTree* and ScrollingStateNode*
for use while debugging.
* page/scrolling/ScrollingStateTree.cpp:
(showScrollingStateTree):
* page/scrolling/ScrollingStateTree.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171307
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 21 Jul 2014 18:26:43 +0000 (18:26 +0000)]
[iOS WK1] Single touch div scrolling doesn't work in framesets (breaks Word previews)
https://bugs.webkit.org/show_bug.cgi?id=135103
<rdar://problem/
11830219>
Reviewed by Darin Adler.
After r166117 all layer flushing starts on the root frame; we no longer flush layers
for each frame during painting. However, flushing GraphicsLayers can set some state
on a subframe RenderLayerCompositor that is now never processed, which breaks scroll
layer registration.
Fix by doing a walk of the Frame tree, and calling didFlushLayers() on subframe RenderLayerCompositors
before calling didFlushLayers() on self.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didFlushLayers):
(WebCore::RenderLayerCompositor::notifySubframesAfterLayerFlush):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers): Drive-by nullptr.
* rendering/RenderLayerCompositor.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171306
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Mon, 21 Jul 2014 17:44:26 +0000 (17:44 +0000)]
[Win] Correct auto-version.pl script for two-digit version numbers
https://bugs.webkit.org/show_bug.cgi?id=135119
<rdar://problem/
17743959>
Reviewed by David Kilzer.
The $MAJOR_VERSION must be the first digit of $BUILD_MAJOR_VERSION,
and $MINOR_VERSION must be the remaining digits.
Also correct regexp (line 90) that was allowing version numbers
larger than three digits to be processed.
* win/tools/scripts/auto-version.pl: Correct regular expression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171305
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Mon, 21 Jul 2014 17:30:29 +0000 (17:30 +0000)]
Unreviewed hidpi test gardening.
* fast/inline/hidpi-selection-gap-on-subpixel-position-expected.html:
* fast/inline/hidpi-selection-gap-on-subpixel-position.html: Speculative fix.
* fast/inline/hidpi-selection-gap-overlaps-inline-selection-expected.html:
* fast/inline/hidpi-selection-gap-overlaps-inline-selection.html: Use Ahem.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171304
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Mon, 21 Jul 2014 17:14:15 +0000 (17:14 +0000)]
DatabaseProcess doesn't relaunch after crashing.
<rdar://problem/
17717343> and https://bugs.webkit.org/show_bug.cgi?id=135117
Reviewed by Alexey Proskuryakov.
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didClose): Tell the WebContext.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::databaseProcessCrashed): Notify supplements, then clear the DatabaseProcessProxy pointer.
* UIProcess/WebContext.h:
* UIProcess/WebContextSupplement.h:
(WebKit::WebContextSupplement::processDidClose): Added. No users right now, but the patch in bug 135035 will need this.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171303
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 21 Jul 2014 16:50:23 +0000 (16:50 +0000)]
REGRESSION(r150169): http/tests/cache/willsendrequest-returns-null-for-memory-cache-load.html fails
https://bugs.webkit.org/show_bug.cgi?id=116259
Updating expectations to acknowledge that the test is flaky on WK1 too (it depends
on preceding tests).
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171302
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Mon, 21 Jul 2014 16:41:20 +0000 (16:41 +0000)]
Unreviewed hidpi test gardening.
Use Ahem font to ensure font size predictability.
* fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl-expected.html:
* fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171301
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
m.pakula@samsung.com [Mon, 21 Jul 2014 15:14:33 +0000 (15:14 +0000)]
Unreviewed EFL gardening
Remove passing tests from TestExpectations file.
* platform/efl/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171300
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Mon, 21 Jul 2014 15:03:11 +0000 (15:03 +0000)]
[iOS] a Paused media session is not active
https://bugs.webkit.org/show_bug.cgi?id=135108
Reviewed by Darin Adler.
Activating the shared AudioSession will pause audio playing in another application,
so only report a Playing media sessions as active.
* platform/audio/MediaSessionManager.cpp:
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::activeAudioSessionRequired): Renamed from hasActive to make
clear what it does. Only return true for a session that is Playing.
* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): hasActive renamed to activeAudioSessionRequired.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171299
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Mon, 21 Jul 2014 09:38:26 +0000 (09:38 +0000)]
[GTK] Documentation files are added twice to the tarball
https://bugs.webkit.org/show_bug.cgi?id=135115
Reviewed by Sergio Villar Senin.
* gtk/manifest.txt: Remove duplicated rules.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171298
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Mon, 21 Jul 2014 09:04:59 +0000 (09:04 +0000)]
[GTK] Simplify make-dist command line arguments
https://bugs.webkit.org/show_bug.cgi?id=134832
Reviewed by Martin Robinson.
.:
* Source/PlatformGTK.cmake: Use --version instead of
--tarball-root when running make-dist.py.
Tools:
Remove --tarball-root and -o command line options and add
--version, since the version can be used to build both, the
tarball root and the output filename. When the version it's not
provided, the pkg-config file is used to get the version. Also
change the default value of build-dir to the current directory,
since it's very common to call make-dist.py from the build dir.
* gtk/make-dist.py:
(get_tarball_root_and_output_filename_from_arguments):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171297
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Mon, 21 Jul 2014 08:30:12 +0000 (08:30 +0000)]
[GTK] Reduce the size of the tarball generated by distcheck
https://bugs.webkit.org/show_bug.cgi?id=134802
Reviewed by Martin Robinson.
Add more rules to the manifest to decide what files to add:
- Do not include platform specific directories of other ports.
- Do not include port specific cmake files.
- Do not include Objective-C sources.
- Do not include .orig and .rej files.
- Do not include mac specific sandbox files.
- Only include the resources we actually build.
* gtk/manifest.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171296
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rosca@adobe.com [Mon, 21 Jul 2014 08:26:37 +0000 (08:26 +0000)]
[CSS Blending] Cleanup tests in css3/blending
https://bugs.webkit.org/show_bug.cgi?id=132600
Reviewed by Mihnea Ovidenie.
Summary of changes:
- move common stylesheet classes to blending-style.css.
- remove trailing white spaces.
- replace tabs with spaces.
- remove the 'html' tags for consistency with the most of blending tests.
This patch does not change the txt and png test expectations.
* css3/blending/background-blend-mode-background-attachement-fixed-expected.html:
* css3/blending/background-blend-mode-background-attachement-fixed.html:
* css3/blending/background-blend-mode-background-clip-content-box-expected.html:
* css3/blending/background-blend-mode-background-clip-content-box.html:
* css3/blending/background-blend-mode-background-clip-padding-box-expected.html:
* css3/blending/background-blend-mode-background-clip-padding-box.html:
* css3/blending/background-blend-mode-background-origin-border-box-expected.html:
* css3/blending/background-blend-mode-background-origin-border-box.html:
* css3/blending/background-blend-mode-background-position-percentage-expected.html:
* css3/blending/background-blend-mode-background-position-percentage.html:
* css3/blending/background-blend-mode-background-repeat-no-repeat-expected.html:
* css3/blending/background-blend-mode-background-repeat-no-repeat.html:
* css3/blending/background-blend-mode-background-size-contain-expected.html:
* css3/blending/background-blend-mode-background-size-contain.html:
* css3/blending/background-blend-mode-background-size-cover-expected.html:
* css3/blending/background-blend-mode-background-size-cover.html:
* css3/blending/background-blend-mode-body-image-expected.html:
* css3/blending/background-blend-mode-body-image.html:
* css3/blending/background-blend-mode-body-transparent-color-and-image-expected.html:
* css3/blending/background-blend-mode-body-transparent-color-and-image.html:
* css3/blending/background-blend-mode-body-transparent-image-expected.html:
* css3/blending/background-blend-mode-body-transparent-image.html:
* css3/blending/background-blend-mode-crossfade-image-expected.html:
* css3/blending/background-blend-mode-crossfade-image.html:
* css3/blending/background-blend-mode-data-uri-svg-image-expected.html:
* css3/blending/background-blend-mode-data-uri-svg-image.html:
* css3/blending/background-blend-mode-default-value.html:
* css3/blending/background-blend-mode-different-image-formats.html:
* css3/blending/background-blend-mode-gif-color-2.html:
* css3/blending/background-blend-mode-gif-color.html:
* css3/blending/background-blend-mode-gradient-color.html:
* css3/blending/background-blend-mode-gradient-gradient.html:
* css3/blending/background-blend-mode-gradient-image.html:
* css3/blending/background-blend-mode-image-color-dynamic-expected.html:
* css3/blending/background-blend-mode-image-color-dynamic.html:
* css3/blending/background-blend-mode-image-color.html:
* css3/blending/background-blend-mode-image-image.html:
* css3/blending/background-blend-mode-image-svg.html:
* css3/blending/background-blend-mode-multiple-background-layers.html:
* css3/blending/background-blend-mode-separate-layer-declaration-expected.html:
* css3/blending/background-blend-mode-separate-layer-declaration.html:
* css3/blending/background-blend-mode-single-layer-no-blending.html:
* css3/blending/background-blend-mode-svg-color.html:
* css3/blending/background-blend-mode-svg-expected.html:
* css3/blending/background-blend-mode-svg.html:
* css3/blending/background-blend-mode-tiled-layers.html:
* css3/blending/blend-mode-accelerated-parent-overflow-hidden-expected.html:
* css3/blending/blend-mode-accelerated-parent-overflow-hidden.html:
* css3/blending/blend-mode-accelerated-with-multiple-stacking-contexts.html:
* css3/blending/blend-mode-ancestor-clipping-layer.html:
* css3/blending/blend-mode-background.html:
* css3/blending/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html:
* css3/blending/blend-mode-body-child-background-color-expected.html:
* css3/blending/blend-mode-body-child-background-color.html:
* css3/blending/blend-mode-body-child-isolate-background-color-expected.html:
* css3/blending/blend-mode-body-child-isolate-background-color.html:
* css3/blending/blend-mode-body-child-isolate-html-background-color-expected.html:
* css3/blending/blend-mode-body-child-isolate-html-background-color.html:
* css3/blending/blend-mode-body-child.html:
* css3/blending/blend-mode-body-element-expected.html:
* css3/blending/blend-mode-body-element.html:
* css3/blending/blend-mode-clip-accelerated-blending-canvas.html:
* css3/blending/blend-mode-clip-accelerated-blending-child-expected.html:
* css3/blending/blend-mode-clip-accelerated-blending-child.html:
* css3/blending/blend-mode-clip-accelerated-blending-double-expected.html:
* css3/blending/blend-mode-clip-accelerated-blending-double.html:
* css3/blending/blend-mode-clip-accelerated-blending-with-siblings-expected.html:
* css3/blending/blend-mode-clip-accelerated-blending-with-siblings.html:
* css3/blending/blend-mode-clip-accelerated-transformed-blending-expected.html:
* css3/blending/blend-mode-clip-accelerated-transformed-blending.html:
* css3/blending/blend-mode-clip-rect-accelerated-blending-expected.html:
* css3/blending/blend-mode-clip-rect-accelerated-blending.html:
* css3/blending/blend-mode-html-element-screen.html:
* css3/blending/blend-mode-isolated-group-1.html:
* css3/blending/blend-mode-isolated-group-2.html:
* css3/blending/blend-mode-isolated-group-3.html:
* css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html:
* css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending.html:
* css3/blending/blend-mode-isolation-flags-append-stacking-context-blending.html:
* css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending.html:
* css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending.html:
* css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation.html:
* css3/blending/blend-mode-isolation-flags-turn-off-blending.html:
* css3/blending/blend-mode-isolation-flags-turn-off-stacking-context.html:
* css3/blending/blend-mode-isolation-flags-turn-on-blending.html:
* css3/blending/blend-mode-isolation-flags-turn-on-stacking-context.html:
* css3/blending/blend-mode-isolation-overflow-hidden-expected.html:
* css3/blending/blend-mode-isolation-overflow-hidden.html:
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html:
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html:
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html:
* css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html:
* css3/blending/blend-mode-layers.html:
* css3/blending/blend-mode-overflow.html:
* css3/blending/blend-mode-parent-of-composited-blended-has-layer.html:
* css3/blending/blend-mode-reflection.html:
* css3/blending/blend-mode-simple-composited.html:
* css3/blending/blend-mode-transform-style.html:
* css3/blending/blend-mode-with-accelerated-sibling.html:
* css3/blending/blend-mode-with-body-expected.html:
* css3/blending/blend-mode-with-body.html:
* css3/blending/blend-mode-with-composited-descendant-should-have-layer.html:
* css3/blending/effect-background-blend-mode-stacking.html:
* css3/blending/isolation-isolate-blended-child-expected.html:
* css3/blending/isolation-isolate-blended-child.html:
* css3/blending/repaint/blend-mode-isolate-stacking-context.html:
* css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html:
* css3/blending/repaint/blend-mode-turn-off-isolation.html:
* css3/blending/resources/blending-style.css: Added.
This file contains classes shared by multiple blending tests.
* css3/blending/resources/dump-layer-tree.js: Added.
* css3/blending/script-tests/background-blend-mode-property-parsing.js:
* css3/blending/script-tests/blend-mode-property-parsing-invalid.js:
* css3/blending/script-tests/blend-mode-property-parsing.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171295
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Mon, 21 Jul 2014 08:18:10 +0000 (08:18 +0000)]
Unreviewed. Update GObject DOM bindings test results after r171285.
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
* bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
* bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171294
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rego@igalia.com [Mon, 21 Jul 2014 07:46:35 +0000 (07:46 +0000)]
[CSS Grid Layout] Rename gridAutoFlow[Row|Column] to gridAutoFlow[Row|Column]Sparse
https://bugs.webkit.org/show_bug.cgi?id=135013
Rename CSS styles in grid layout tests to make the name more explicit.
As the default mode for auto-placement algorithm is "sparse".
Reviewed by Darin Adler.
* fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-flow-get-set.html:
* fast/css-grid-layout/grid-auto-flow-resolution.html:
* fast/css-grid-layout/grid-auto-flow-sparse.html:
* fast/css-grid-layout/grid-item-addition-auto-placement-update.html:
* fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
* fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
* fast/css-grid-layout/grid-item-order-auto-flow-resolution.html:
* fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
* fast/css-grid-layout/resources/grid.css:
(.gridAutoFlowColumnSparse):
(.gridAutoFlowRowSparse):
(.gridAutoFlowColumn): Deleted.
(.gridAutoFlowRow): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171293
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jeremyj-wk@apple.com [Mon, 21 Jul 2014 06:16:44 +0000 (06:16 +0000)]
Unreviewed Fix test crashes when cloning video layer since r171286
https://bugs.webkit.org/show_bug.cgi?id=135112
Unreviewed. Fix crashing tests by conditionalizing inline video layer change.
compositing/video/video-reflection.html [ Crash ]
media/video-layer-crash.html [ Crash ]
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add conditional
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): ditto
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171292
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 21 Jul 2014 05:36:59 +0000 (05:36 +0000)]
Fix warnings caused by unused parameter.
https://bugs.webkit.org/show_bug.cgi?id=134975
Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-20
Reviewed by Gyuyoung Kim.
Fix warnings on EwkView.cpp and LegacySessionStateCodingNone.cpp that are caused by unused parameter data.
* UIProcess/API/efl/EwkView.cpp:
(EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
* UIProcess/LegacySessionStateCodingNone.cpp:
(WebKit::decodeLegacySessionState):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171291
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 21 Jul 2014 05:34:22 +0000 (05:34 +0000)]
[EFL] Enable mpg123 feature for gst-plugin-bad.
https://bugs.webkit.org/show_bug.cgi?id=135016
Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-20
Reviewed by Laszlo Gombos.
enable-mpg123 feature is added to jhbuild in order to support playback of mp3 format.
* efl/install-dependencies:
* efl/jhbuild.modules:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171290
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
psolanki@apple.com [Mon, 21 Jul 2014 04:30:19 +0000 (04:30 +0000)]
Reduce the chances of a race condition when sharing SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=135060
<rdar://problem/
17729444>
Reviewed by Darin Adler.
We currently pass a SharedBuffer wrapped in WebCoreSharedBufferData to ImageIO for image
decoding. This is not thread safe since ImageIO will access this buffer on a separate
thread. We access SharedBuffer::buffer() on the other thread which resizes the Vector
m_buffer if m_size is greater than the vector size. Since the code in SharedBuffer::append()
sets m_size before appending the data to the buffer, m_size is out of sync with the m_buffer
size for the entire duration of the Vector append which could be doing a lot of copying if
the resource is large. While this change does not fix the race condition, we can at least
reduce the chances of SharedBuffer::buffer() calling resize() by setting m_size after the
cector has finished appending.
No new tests because no functional changes.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171289
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 21 Jul 2014 03:08:25 +0000 (03:08 +0000)]
Disable ff/rw based on canPlayFastForward and canPlayFastRewind.
https://bugs.webkit.org/show_bug.cgi?id=134894
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-20
Reviewed by Darin Adler.
Source/WebCore:
* WebCore.exp.in: add symbol for canPlayFastReverse
* html/HTMLMediaElement.cpp: Add two new accessors
(WebCore::HTMLMediaElement::nextScanRate): possibly limit scanRate
(WebCore::HTMLMediaElement::canPlayFastForward): added
(WebCore::HTMLMediaElement::canPlayFastReverse): added
* html/HTMLMediaElement.h: declare two new methods
* platform/graphics/MediaPlayer.cpp: Plumb through two new accessors
(WebCore::MediaPlayer::maxFastForwardRate): added
(WebCore::MediaPlayer::minFastReverseRate): added
* platform/graphics/MediaPlayer.h: Declare new methods
* platform/graphics/MediaPlayerPrivate.h: Added two new methods.
(WebCore::MediaPlayerPrivateInterface::maxFastForwardRate): added
(WebCore::MediaPlayerPrivateInterface::minFastReverseRate): added
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: member to cache ff/rw enabled state
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): observe on item canPlayFastForward canPlayFastReverse
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastForwardDidChange): added
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastReverseDidChange): added
(WebCore::itemKVOProperties): observe canPlayFastForward canPlayFastRewind
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): ditto
* platform/ios/WebVideoFullscreenInterface.h: add new method
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: ditto
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm: ditto
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): Set value on WebAVPlayerController.
(-[WebAVPlayerController canScanBackward]): Deleted.
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): Deleted.
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::updateForEventName): update canPlayFastReverse.
Source/WebKit2:
Add setCanPlayFastReverse
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: ditto
* WebProcess/ios/WebVideoFullscreenManager.h: ditto
* WebProcess/ios/WebVideoFullscreenManager.mm: ditto
(WebKit::WebVideoFullscreenManager::setCanPlayFastReverse): ditto
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171288
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
barraclough@apple.com [Mon, 21 Jul 2014 02:34:09 +0000 (02:34 +0000)]
HTMLMediaElement should registerWithDocument on iOS
https://bugs.webkit.org/show_bug.cgi?id=135084
<rdar://problem/
17702531>
Reviewed by Andreas Kling.
Otherwise it won't know when the visibility changes!
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171287
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 21 Jul 2014 02:30:24 +0000 (02:30 +0000)]
Decrease flicker when enter and exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=134919
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-20
Reviewed by Simon Fraser.
Source/WebCore:
Put AVPlayerLayer in a container layer so moving it between inline and fullscreen
is as easy as adding and removing it from a containter layer; no need to do a layout.
Make sure fullscreen layers are transparent before moving moving the AVPlayerLayer
between inline and fullscreen so you don't briefly see the empty fullscreen layers.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::platformLayer): remove fullscreen special case.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): no need to recalc style
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add inline container layer
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
add WebVideoContainerLayer to contain AVPlayerLayer and keep layout correct.
(-[WebVideoContainerLayer setBounds:]): forward setbounds to set child frame.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): create the video container layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): destroy the video container layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): use container layer instead of video layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): use transactions to prevent unwanted animation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): ditto
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::layerTypeForPlatformLayer): WebVideoContainerLayer is a kind of AVPlayerLayer
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController didCleanupFullscreen]): remove video fullscreen layer first
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): make background transparent during transition.
dispatch_async to allow CATransaction to complete before calling didSetupFullscreen()
Source/WebKit2:
Change the sequence of tear down and use transparency to prevent flicker when entering and exiting fullscreen.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: wait to remove layerHost until didCleanupFullscreen
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): removed from here
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): added here
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didSetupFullscreen): use transparent background during transition
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171286
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryuan.choi@samsung.com [Mon, 21 Jul 2014 02:19:48 +0000 (02:19 +0000)]
Move ExceptionCodeDescription.h into the files that actually need it
https://bugs.webkit.org/show_bug.cgi?id=134968
Reviewed by Darin Adler.
No new tests because no functional changes.
* Modules/indexeddb/IDBDatabaseException.cpp:
* Modules/webdatabase/SQLException.cpp:
* bindings/js/JSDOMBinding.cpp:
* bindings/objc/ExceptionHandlers.mm:
* bindings/scripts/CodeGeneratorGObject.pm:
(Generate):
* dom/DOMCoreException.cpp:
* dom/EventException.cpp:
* dom/ExceptionBase.cpp:
* dom/ExceptionCode.h:
* dom/RangeException.cpp:
* fileapi/FileException.cpp:
* inspector/DOMEditor.cpp:
* inspector/InspectorDOMAgent.cpp:
* svg/SVGException.cpp:
* xml/XMLHttpRequestException.cpp:
* xml/XPathException.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171285
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Mon, 21 Jul 2014 00:34:18 +0000 (00:34 +0000)]
Source/WebCore: <rdar://problems/
17742611> -[_WKActivatedElementInfo image] is often empty
https://bugs.webkit.org/show_bug.cgi?id=135107
Reviewed by Sam Weinig.
Test: TestWebKitAPI/Tests/mac/RenderedImageFromDOMNode.mm
* page/FrameView.cpp:
(WebCore::FrameView::paintContents): To work around http://webkit.org/b/135106, replace the
paint root with its nearest ancestor that isn’t an inline with culled line boxes, if needed.
Tools: Test for <rdar://problems/
17742611> -[_WKActivatedElementInfo image] is often empty
https://bugs.webkit.org/show_bug.cgi?id=135107
Reviewed by Sam Weinig.
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/RenderedImageFromDOMNode.mm: Added.
(-[RenderedImageFromDOMNodeFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171284
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 20 Jul 2014 20:11:57 +0000 (20:11 +0000)]
Crashes seen in wheel event handling
https://bugs.webkit.org/show_bug.cgi?id=135102
Reviewed by Beth Dakin.
Speculative fix based on guesses about what could be crashing.
The crash seems to be calling ref on an event target, and my guess is that this
has something to do with latching.
* page/EventHandler.cpp:
(WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
(WebCore::EventHandler::handleWheelEvent): Refactored a little and made some local
variables use RefPtr instead of raw pointers. Also added some comments.
* page/EventHandler.h: Changed argument types to RefPtr.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
Also added a FIXME.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171283
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sun, 20 Jul 2014 18:00:52 +0000 (18:00 +0000)]
Print layerIDs in GraphicsLayer dumps
https://bugs.webkit.org/show_bug.cgi?id=135100
Reviewed by Darin Adler.
When calling showGraphicsLayerTree() from the debugger, it's useful to show
layerIDs so they can be correlated with remote layer tree transactions. So
when dumping with debug info, dump the primary layer ID.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171282
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 20 Jul 2014 16:49:40 +0000 (16:49 +0000)]
Updated Radar link
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171281
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Sun, 20 Jul 2014 16:48:35 +0000 (16:48 +0000)]
<rdar://problem/
17739804> REGRESSION (r171057): Crash in WebPage::getPositionInformation()
https://bugs.webkit.org/show_bug.cgi?id=135099
Reviewed by David Kilzer.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation): Added a null check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171280
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Sun, 20 Jul 2014 16:45:34 +0000 (16:45 +0000)]
[iOS] ignore requests to set volume
https://bugs.webkit.org/show_bug.cgi?id=135081
Applied post-review comments from Darin Adler.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Don't include unreachable
code on iOS.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171279
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 20 Jul 2014 16:16:57 +0000 (16:16 +0000)]
ES6: Implement Math.sign()
https://bugs.webkit.org/show_bug.cgi?id=134980
Patch by Diego Pino Garcia <dpino@igalia.com> on 2014-07-20
Reviewed by Darin Adler.
Source/JavaScriptCore:
* runtime/MathObject.cpp:
(JSC::MathObject::finishCreation):
(JSC::mathProtoFuncSign):
LayoutTests:
* js/script-tests/Object-getOwnPropertyNames.js:
* js/script-tests/math.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171278
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 20 Jul 2014 15:08:06 +0000 (15:08 +0000)]
Checker: Value stored to 'kernResult' is never read (LayoutTestHelper.m:164)
<http://webkit.org/b/135096>
Reviewed by Alexey Proskuryakov.
* DumpRenderTree/mac/LayoutTestHelper.m:
(lockDownDiscreteGraphics): Check the return values of
IOServiceOpen() and IOObjectRelease(), and log if not
KERN_SUCCESS.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171277
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 20 Jul 2014 04:32:27 +0000 (04:32 +0000)]
Web Inspector: TextContentView calls wrong prototype function in the hidden() function
https://bugs.webkit.org/show_bug.cgi?id=135097
Patch by Saam Barati <sbarati@apple.com> on 2014-07-19
Reviewed by Timothy Hatcher.
Corollary bug to: https://bugs.webkit.org/show_bug.cgi?id=135001
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.hidden):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171276
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Sat, 19 Jul 2014 20:15:14 +0000 (20:15 +0000)]
Update.
* Scripts/webkitpy/common/config/watchlist:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171265
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Sat, 19 Jul 2014 18:07:43 +0000 (18:07 +0000)]
<https://webkit.org/b/135085> Ensure that make_names.pl generates the same result when run multiple times.
Perl 5.18 introduced hash randomization. This results in the iteration order of hashes being different
from one run to the next. To ensure identical output we can iterate over the hash keys in sorted order.
Reviewed by Alexey Proskuryakov.
* bindings/scripts/StaticString.pm:
(GenerateStrings):
(GenerateStringAsserts):
* dom/make_names.pl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171264
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
clopez@igalia.com [Sat, 19 Jul 2014 16:16:39 +0000 (16:16 +0000)]
[GTK] Unreviewed GTK gardening.
* platform/gtk/TestExpectations: Report and mark new failures. Update some expectations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171263
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 19 Jul 2014 10:10:50 +0000 (10:10 +0000)]
[WTF] Add the move constructor, move assignment operator for HashTable
https://bugs.webkit.org/show_bug.cgi?id=130772
Reviewed by Darin Adler.
HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
copies when moves can be performed.
* wtf/HashTable.h:
(WTF::KeyTraits>::HashTable):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171262
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 19 Jul 2014 10:08:55 +0000 (10:08 +0000)]
Document::unregisterNodeListforInvalidation() and Document::unregisterCollection() have incorrect assertions
https://bugs.webkit.org/show_bug.cgi?id=134869
Reviewed by Darin Adler.
Both methods should assert that the relevant HashMap is either empty if invalidation originates
from Document::invalidateNodeListAndCollectionCaches() or acutally contains the element that is
being invalidated. In the first case the HashMap is empty because its entries were moved out in
the Document::invalidateNodeListAndCollectionCaches().
This was exposed by r170995 (later rolled out in r170999) which introduced move constructor and
move assignment operators for HashTable. The assertions in the titular methods won't be passing
until r170995 relands.
* dom/Document.cpp:
(WebCore::Document::unregisterNodeListForInvalidation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171261
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 19 Jul 2014 10:02:06 +0000 (10:02 +0000)]
Consistently use uint64_t as the handle parameter type for the SetAcceleratedCompositingWindowId message
https://bugs.webkit.org/show_bug.cgi?id=135047
Reviewed by Darin Adler.
UIProcess' WebPageProxy is handling this parameter as an uint64_t, it should be handled as such
in WebProcess as well.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Also changed the parameter name to match other places.
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::setAcceleratedCompositingWindowId):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171260
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Sat, 19 Jul 2014 05:25:48 +0000 (05:25 +0000)]
[iOS] ignore requests to set volume
https://bugs.webkit.org/show_bug.cgi?id=135081
Reviewed by Jer Noble.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Do nothing on iOS.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171259
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Sat, 19 Jul 2014 04:59:32 +0000 (04:59 +0000)]
Perf dashboard shouldn't show the full git hash
https://bugs.webkit.org/show_bug.cgi?id=135083
Reviewed by Benjamin Poulain.
Detect Git/Mercurial hash by checking the length.
If it's a hash, use the first 8 characters in the label
while retaining the full length to be used in hyperlinks.
* public/js/helper-classes.js:
(.this.formattedRevisions):
(TestBuild):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171258
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Sat, 19 Jul 2014 01:30:35 +0000 (01:30 +0000)]
We don't provide an extension to the temp file used for uploads
https://bugs.webkit.org/show_bug.cgi?id=135079
Reviewed by Sam Weinig.
Make sure didChooseFilesForOpenPanelWithDisplayStringAndIcon vends
extensions for the files passed to the content process.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171257
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Sat, 19 Jul 2014 00:52:18 +0000 (00:52 +0000)]
ASSERTion failures in ViewGestureController indicating that we're copying WebBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=135080
<rdar://problem/
17734714>
Reviewed by Sam Weinig.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::canSwipeInDirection):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171256
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 19 Jul 2014 00:51:09 +0000 (00:51 +0000)]
Revert accidental commit to MiniBrowser to make everything layer backed.
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController windowDidLoad]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171255
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 19 Jul 2014 00:21:56 +0000 (00:21 +0000)]
_WKActivatedElementInfo.title should fallback to innerText if the link doesn't have title attribute.
https://bugs.webkit.org/show_bug.cgi?id=135077
When populate InteractionInformationAtPosition's title value, use a link element's innerText if it
doesn't have title attribute.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-07-18
Reviewed by Dan Bernstein.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171253
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aestes@apple.com [Sat, 19 Jul 2014 00:19:26 +0000 (00:19 +0000)]
[iOS] Tapping "Allow Website" on a restricted page does not bring up the keypad
https://bugs.webkit.org/show_bug.cgi?id=135072
<rdar://problem/
17528188>
Reviewed by David Kilzer.
Source/WebCore:
No new tests. Content filtering is not testable from WebKit.
* WebCore.exp.in: Exported necessary ContentFilter symbols.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::responseReceived): Created a new ContentFilter.
(WebCore::DocumentLoader::dataReceived): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::setContentFilterForBlockedLoad): Deleted.
(WebCore::DocumentLoader::handleContentFilterRequest): Deleted.
* loader/DocumentLoader.h:
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::contentFilterDidBlockLoad):
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy): Removed the check for unblock navigations, as this is now
handled at the WebKit layer.
* platform/ContentFilter.h: ContentFilter no longer needs to be RefCounted, so made various changes in order to
make it compatible with unique_ptr.
* platform/ios/ContentFilterIOS.mm:
(WebCore::scheme): Changed from a public member function to a static inline free function.
(WebCore::ContentFilter::handleUnblockRequestAndDispatchIfSuccessful): Renamed from requestUnblockAndDispatchIfSuccessful.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter): Added a default constructor for use during message decoding.
(WebCore::ContentFilter::addData): Removed calls to ref() and deref(). These were never actually needed since
we were dispatching the block synchronously.
(WebCore::ContentFilter::finishedAddingData): Ditto.
(WebCore::ContentFilter::encode): Encoded m_platformContentFilter to the NSKeyedArchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::decode): Decoded m_platformContentFilter from the NSKeyedUnarchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::create): Deleted.
Source/WebKit/mac:
* WebCoreSupport/WebFrameLoaderClient.h: Override contentFilterDidBlockLoad().
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidStartProvisionalLoad): Reset contentFilterForBlockedLoad to nullptr.
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Check if this is navigation represents an
unblock request and ignore if so.
* WebView/WebFrame.mm:
(-[WebFrame _contentFilterDidHandleNavigationAction:]): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the main frame.
* WebView/WebFrameInternal.h:
Source/WebKit2:
* Shared/WebCoreArgumentCoders.h: Declared an ArgumentCoder for WebCore::ContentFilter.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ContentFilter>::encode): Encoded the ContentFilter using a NSKeyedArchiver.
(IPC::ArgumentCoder<ContentFilter>::decode): Decoded the ContentFilter using a NSKeyedUnarchiver.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::setContentFilterForBlockedLoad().
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad): Reset m_contentFilterForBlockedLoad to nullptr.
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the WebPageProxy.
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::setContentFilterForBlockedLoad):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction): Check if this is navigation represents an unblock
request and ignore if so.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Defined ContentFilterDidBlockLoadForFrame.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): Sent ContentFilterDidBlockLoadForFrame to the WebPageProxy.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171252
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sat, 19 Jul 2014 00:00:52 +0000 (00:00 +0000)]
[iOS WK2] position:fixed in iframes with programmatic scroll could end up in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=135078
Source/WebCore:
<rdar://problem/
17401823>
Reviewed by Tim Horton.
When the UI-side scrolling tree receives a requested scroll position update, it scrolls
the node (e.g. a frame) then traverses child nodes to update them, e.g. for fixed position.
However, we would always use a viewport rect for the main document (from the scrolling tree),
which is not appropriate for subframes. Subframes should just use their own visible
rect to position fixed children.
Test: platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html
* page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
Source/WebKit2:
<rdar://problem/
17401823>
Reviewed by Tim Horton.
Fix the logging of requested scroll position and frame scale factor.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingTreeTextStream::dump):
LayoutTests:
Reviewed by Tim Horton.
Test with position:fixed inside an iframe that scrolls programmatically.
* platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171250
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jhoneycutt@apple.com [Fri, 18 Jul 2014 23:57:40 +0000 (23:57 +0000)]
Add a manual test for r135044
<https://bugs.webkit.org/show_bug.cgi?id=135044>
Rubber-stamped by Andy Estes.
* ManualTests/ios/typing-in-field-that-clears-on-keyup.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171249
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dburkart@apple.com [Fri, 18 Jul 2014 22:39:39 +0000 (22:39 +0000)]
Add a new 'analyze' target to the makefile. This will make use of a new
'PATH_TO_SCAN_BUILD' which, if set will wrap xcodebuild in the clang
static analyzer.
https://bugs.webkit.org/show_bug.cgi?id=135057
<rdar://problem/
10193187>
Reviewed by David Kilzer.
* Makefile:
* Makefile.shared:
* Source/Makefile:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171247
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Fri, 18 Jul 2014 22:24:36 +0000 (22:24 +0000)]
Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/
17682335>
Reviewed by Tim Horton.
[NSScrollView documentVisibleRect] includes content that is within the inset-area
of a view, but WebCore is interested in the content that is fully visible, so we
need to factor the inset sizes out of this rect.
Implement contract() to avoid the awkwardness of calling expand() with negative
values.
* platform/graphics/IntSize.h:
(WebCore::IntSize::contract):
Factor out insets
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171246
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 22:08:19 +0000 (22:08 +0000)]
Fix EFL+GTK.
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171245
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Fri, 18 Jul 2014 20:58:56 +0000 (20:58 +0000)]
media/video-seek-with-negative-playback.html is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=135071
* platform/mac/TestExpectations: Marked it as such.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171242
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 20:54:24 +0000 (20:54 +0000)]
Exception fuzzing should work on iOS
https://bugs.webkit.org/show_bug.cgi?id=135070
Reviewed by Mark Hahnenberg.
Source/JavaScriptCore:
* tests/exceptionFuzz.yaml:
Tools:
* Scripts/jsc-stress-test-helpers/js-exception-fuzz:
(fail):
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171241
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 18 Jul 2014 20:50:11 +0000 (20:50 +0000)]
[Cocoa] Use RetainPtr in _WKRemoteObjectInterface
https://bugs.webkit.org/show_bug.cgi?id=135062
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-07-18
Reviewed by Anders Carlsson.
Switch to RetainPtr instead of manual memory management of ivars.
* Shared/API/Cocoa/_WKRemoteObjectInterface.h:
* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
(-[_WKRemoteObjectInterface identifier]):
(-[_WKRemoteObjectInterface description]):
(-[_WKRemoteObjectInterface dealloc]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171240
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Fri, 18 Jul 2014 20:34:36 +0000 (20:34 +0000)]
Take navigation snapshots whenever the current back-forward item is going to change
https://bugs.webkit.org/show_bug.cgi?id=135058
<rdar://problem/
17464515>
Reviewed by Dan Bernstein.
Instead of trying to have the UI process figure out when to take navigation snapshots by itself,
snapshot whenever the Web process says that the current back-forward item is going to change.
This fixes snapshotting timing with pushState, and lets us bottleneck snapshotting down to
just two places instead of 5.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
We no longer need to special-case taking navigation snapshots
when the UI process changes the back forward item or upon
didStartProvisionalLoadForFrame, because we'll always snapshot
in willChangeCurrentHistoryItem in all of these cases.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItem):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
Add willChangeCurrentHistoryItem message, which comes from the Web process.
When it arrives, take a navigation snapshot.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Take the pre-swipe navigation snapshot before telling WebPageProxy that we're doing a swipe,
so that it doesn't bail from taking the snapshot because we have a snapshot up.
(WebKit::ViewGestureController::endSwipeGesture):
We no longer need to explicitly disable snapshotting while navigating, because
we will avoid taking the snapshot if there's a snapshot being displayed.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::~ViewGestureController):
Remove the snapshot if it's still up when ViewGestureController is destroyed.
The Mac version of ViewGestureController is destroyed on Web process crashes
because it is a message receiver, so it is not guaranteed to have the same
lifetime as the WebPageProxy and friends.
(WebKit::ViewGestureController::trackSwipeGesture):
Make use of recordNavigationSnapshot.
(WebKit::ViewGestureController::endSwipeGesture):
Ditto from the Mac version.
* UIProcess/mac/ViewSnapshotStore.h:
(WebKit::ViewSnapshotStore::disableSnapshotting): Deleted.
(WebKit::ViewSnapshotStore::enableSnapshotting): Deleted.
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::recordSnapshot):
Remove the snapshot disabling mechanism and bail from snapshotting if we're
showing a snapshot, as mentioned above.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItem):
* WebProcess/WebPage/WebPage.h:
Proxy willChangeCurrentHistoryItem from HistoryController to the UI process.
* loader/HistoryController.cpp:
(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::recursiveUpdateForCommit):
(WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
(WebCore::HistoryController::createItem):
Use setCurrentItem instead of duplicating the contents of it inside each of these functions.
(WebCore::HistoryController::setCurrentItem):
(WebCore::HistoryController::replaceCurrentItem):
When setting or replacing the current item, let the FrameLoaderClient know that we're going
to change which history item is "current".
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::willChangeCurrentHistoryItem): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171239
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 19:41:04 +0000 (19:41 +0000)]
run-jsc-stress-tests should be able to run helper-based tests in remote mode
https://bugs.webkit.org/show_bug.cgi?id=135064
Reviewed by Mark Hahnenberg.
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171238
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 19:29:30 +0000 (19:29 +0000)]
run-jsc-stress-tests: rename $copy to $doNotMessWithVMPath
https://bugs.webkit.org/show_bug.cgi?id=135061
Rubber stamped by Mark Hahnenberg.
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171237
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 19:13:09 +0000 (19:13 +0000)]
Refactor run-jsc-stress-tests VM copying code to remove some abstractions
https://bugs.webkit.org/show_bug.cgi?id=135059
Reviewed by Mark Lam.
This is meant to make it easier for me to extend the copying functionality to copy things other than
the framework.
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171233
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 18:41:03 +0000 (18:41 +0000)]
Fix cloop build.
Source/JavaScriptCore:
* jsc.cpp:
(jscmain):
Tools:
* Scripts/jsc-stress-test-helpers/js-exception-fuzz:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171228
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Fri, 18 Jul 2014 18:20:54 +0000 (18:20 +0000)]
Revert r169735 since it broke Timeline, and fix bug 129696 in a more targeted way.
REGRESSION (r169735): Web Inspector: Timeline tree outline missing data until collapse-expand.
https://bugs.webkit.org/show_bug.cgi?id=134845
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange): Use button isteand of assuming
item.listItemElement will be ready to use. The listItemElement node is lazily created.
* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild): Don't attach unless _childrenListNode exists.
(TreeOutline.prototype.insertChild): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171227
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Fri, 18 Jul 2014 18:01:24 +0000 (18:01 +0000)]
Add timeout for transition end. Speculative layout test fix.
* fast/layers/no-clipping-overflow-hidden-added-after-transform.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171226
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jhoneycutt@apple.com [Fri, 18 Jul 2014 17:21:20 +0000 (17:21 +0000)]
REGRESSION: Crash when typing into text field that clears itself on iOS
<https://bugs.webkit.org/show_bug.cgi?id=135044>
<rdar://problem/
17640443>
Reviewed by Darin Adler.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAutocorrectionData):
wordRangeFromPosition() returns null in some cases; null check range
before dereferencing it. Moved some variable declarations around to
better match our style.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171225
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 18 Jul 2014 17:14:38 +0000 (17:14 +0000)]
Unreviewed, rolling out r171207.
https://bugs.webkit.org/show_bug.cgi?id=135056
Broke multiple tests on Yosemite (Requested by ap on #webkit).
Reverted changeset:
"Fixed position elements are misplaced when a WK1 view has
contentInsets set"
https://bugs.webkit.org/show_bug.cgi?id=135031
http://trac.webkit.org/changeset/171207
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171224
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mario@webkit.org [Fri, 18 Jul 2014 17:01:44 +0000 (17:01 +0000)]
[GTK] Unreviewed gardening. Removing failure expectations for tests now passing.
* platform/gtk/TestExpectations: Removed failure expectations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171223
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 18 Jul 2014 16:53:51 +0000 (16:53 +0000)]
Unreviewed, rolling out r171218.
https://bugs.webkit.org/show_bug.cgi?id=135055
Made fast/dom/HTMLObjectElement/beforeload-set-text-
crash.xhtml crash (Requested by ap on #webkit).
Reverted changeset:
"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171218
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171222
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mario@webkit.org [Fri, 18 Jul 2014 15:23:16 +0000 (15:23 +0000)]
[GTK] Unreviewed GTK gardening. Tests passing after SVN r171001
* platform/gtk/TestExpectations: Removed tests that are now passing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171221
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 18 Jul 2014 14:12:26 +0000 (14:12 +0000)]
Fix -v|--verbose option in sort-export-file script.
https://bugs.webkit.org/show_bug.cgi?id=135043
Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-18
Reviewed by Tim Horton.
-v|--verbose option does not work. Option added to getOptionsResult.
* Scripts/sort-export-file:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171220
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Fri, 18 Jul 2014 13:41:06 +0000 (13:41 +0000)]
[WK2] Provide a mechanism to grab the back-forward list for gesture navigation purposes from another WKWebView
https://bugs.webkit.org/show_bug.cgi?id=134999
<rdar://problem/
17238025>
Reviewed by Sam Weinig.
In some cases, clients may need to throw a WKWebView with no back-forward list over
another WKWebView, and want to participate in gesture swipe as if they were actually
the page being overlaid.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alternateWebViewForNavigationGestures]):
(-[WKWebViewConfiguration _setAlternateWebViewForNavigationGestures:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Keep an "alternate" WKWebView "for navigation gestures", which ViewGestureController
will use as the real source of back-forward items, and the destination of the swipe navigation.
All swipe delegate callbacks will also fire from the alternate view, because it owns the items
and will be doing the navigation.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::setAlternateBackForwardListSourceView):
(WebKit::ViewGestureController::beginSwipeGesture):
Send navigationGestureDidBegin via the alternate view's WebPageProxy if it exists.
Record a new snapshot on the current page, but copy it to the alternate view if necessary,
so that when swiping forward from the alternate view, it will have the "right" snapshot.
Get the target back forward item from the alternate view.
Send navigationGestureWillEnd via the alternate view's WebPageProxy if it exists.
(WebKit::ViewGestureController::canSwipeInDirection):
Determine if we can swipe in a direction by looking at the alternate view's back-forward list if necessary.
(WebKit::ViewGestureController::endSwipeGesture):
Send navigationGestureDidEnd via the alternate view's WebPageProxy if it exists.
Perform the navigation on the alternate view if necessary.
(WebKit::ViewGestureController::removeSwipeSnapshot):
Send navigationGestureSnapshotWasRemoved via the alternate view's WebPageProxy if it exists.
* UIProcess/mac/ViewGestureController.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171219
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krit@webkit.org [Fri, 18 Jul 2014 09:50:01 +0000 (09:50 +0000)]
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303
Patch by Radu Stavila <stavila@adobe.com> on 2014-07-18
Reviewed by Ryosuke Niwa.
Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.
To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.
Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
Test: fast/regions/selection/crash-deselect.html
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
* rendering/RenderSelectionInfo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::setSubtreeSelection): Deleted.
* rendering/RenderView.h:
* rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
* rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
LayoutTests:
Added test for the crash that occurred in some cases when selecting.
* fast/regions/selection/crash-deselect-expected.txt: Added.
* fast/regions/selection/crash-deselect.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171218
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 07:13:36 +0000 (07:13 +0000)]
Really remove dependency on ShellQuote.
* Scripts/jsc-stress-test-helpers/js-exception-fuzz:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171217
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 07:11:11 +0000 (07:11 +0000)]
Unreviewed, fix build for platforms that don't have ShellQuote.
* Scripts/jsc-stress-test-helpers/js-exception-fuzz: Take a single argument that has the whole command string.
* Scripts/run-jsc-stress-tests: Do the escaping in Ruby.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171216
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Fri, 18 Jul 2014 06:16:56 +0000 (06:16 +0000)]
[MSE] Re-enqueue after a removeCodedFrames() only if the removed frames overlap what may have possibly been enqueued but undisplayed.
https://bugs.webkit.org/show_bug.cgi?id=135039
Reviewed by Eric Carlson.
When a client calls removeCodedFrames(), we must re-enqueue those ranges if the removed samples overlap with
enqueued but possibly un-displayed samples. Otherwise, replacement samples may lead to decode errors as those
new samples dependencies are not met. But if we re-enqueue too frequently, this may cause subtle but noticible
display timing glitches, so only re-enqueue when removeCodedFrames have a possiblity of removing enqueued, but
not yet displayed samples.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171215
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 18 Jul 2014 04:34:16 +0000 (04:34 +0000)]
Need ability to fuzz exception throwing
https://bugs.webkit.org/show_bug.cgi?id=134945
<rdar://problem/
17722027>
Reviewed by Sam Weinig.
Source/JavaScriptCore:
Adds the ability to instrument exception checks, and to force some random
exception check to artificially throw an exception. Also adds new tests that
are suitable for testing this. Note that this is closely tied to the Tools
directory changes that are also part of this changeset.
This also fixes an activation tear-off bug that arises if we ever throw an
exception from operationOptimize, or if due to some other bug it's only due
to the operationOptimize exception check that we realize that there is an
exception to be thrown.
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::fastExceptionCheck):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::callCheck):
* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitExceptionCheck): Deleted.
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_enter):
* jit/JITOperations.cpp:
(JSC::numberOfExceptionFuzzChecks):
* jit/JITOperations.h:
* jsc.cpp:
(jscmain):
* runtime/Options.h:
* runtime/TestRunnerUtils.h:
* tests/exceptionFuzz.yaml: Added.
* tests/exceptionFuzz: Added.
* tests/exceptionFuzz/3d-cube.js: Added.
* tests/exceptionFuzz/date-format-xparb.js: Added.
* tests/exceptionFuzz/earley-boyer.js: Added.
Tools:
Adds a new script, js-exception-fuzz, which will run some jsc command-line using
exception fuzzing. This means that we will force exceptions to be thrown in random
places to see how the engine reacts. This is now integrated with the various test
drivers, so run-javascriptcore-tests will run some exception fuzzing tests by
default.
* Scripts/jsc-stress-test-helpers/js-exception-fuzz: Added.
(fail):
* Scripts/run-javascriptcore-tests:
* Scripts/run-jsc-stress-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171213
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Fri, 18 Jul 2014 03:59:47 +0000 (03:59 +0000)]
SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
<http://webkit.org/b/135006>
Reviewed by Darin Adler.
Source/JavaScriptCore:
* Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
JavaScriptCore.xcconfig.
* Configurations/CompileRuntimeToLLVMIR.xcconfig: Remove empty
SECTORDER_FLAGS definition.
* Configurations/DebugRelease.xcconfig: Ditto.
* Configurations/JavaScriptCore.xcconfig: Use $(CONFIGURATION)
so SECTORDER_FLAGS is only set on Production builds.
Source/WebCore:
* Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebCore.xcconfig.
* Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
* Configurations/WebCoreTestShim.xcconfig: Ditto.
* Configurations/WebCoreTestSupport.xcconfig: Ditto.
* Configurations/WebCore.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
Source/WebKit:
* WebKit.xcodeproj/project.pbxproj: Remove references to unused
WebKit.xcconfig file.
Source/WebKit/mac:
* Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebKitLegacy.xcconfig.
* Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
* Configurations/WebKit.xcconfig: Removed. Unused.
* Configurations/WebKitLegacy.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
Source/WebKit2:
* Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebKit.xcconfig.
* Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
* Configurations/WebKit.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171212
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Fri, 18 Jul 2014 02:16:00 +0000 (02:16 +0000)]
REGRESSION (r171167): LoaderClient processDidCrash call is made after load state changes
https://bugs.webkit.org/show_bug.cgi?id=135032
<rdar://problem/
17716602>
Reviewed by Dan Bernstein.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash): Create a transaction, so that the nested
transaction in resetStateAfterProcessExited() wouldn't be committed.
(WebKit::WebPageProxy::resetStateAfterProcessExited): Don't use auto - it was hiding
the most important fact that this is a stack object that can't be simply moved to
a different function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171211
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Fri, 18 Jul 2014 01:56:12 +0000 (01:56 +0000)]
Subpixel rendering: Embedded non-compositing rotate transform paints to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=135028
Reviewed by Simon Fraser.
CTM always translates to where the layer's renderer() is going to paint.
It ensures that the pixel snapped renderer() always end up painting to (0, 0) which is
required to be able to position properly on transformed context.
Source/WebCore:
Test: fast/layers/hidpi-transform-on-child-content-is-mispositioned.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
LayoutTests:
* fast/layers/hidpi-transform-on-child-content-is-mispositioned-expected.html: Added.
* fast/layers/hidpi-transform-on-child-content-is-mispositioned.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171210
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Fri, 18 Jul 2014 01:16:40 +0000 (01:16 +0000)]
[iOS][WK2] Fix the updateVisibleContentRects synchronization for load after r171154
https://bugs.webkit.org/show_bug.cgi?id=135036
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-17
Reviewed by Dan Bernstein.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
I forgot to update one of the condition after changing from lastTransaction to next transaction
in r171154.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171209
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 17 Jul 2014 23:59:52 +0000 (23:59 +0000)]
Disable live-out calculation for stackmap intrinsics.
https://bugs.webkit.org/show_bug.cgi?id=134366
The live-out variables are not required for the stackmaps, because we
don't care about preserving the state when we perform destructive
patching.
Patch by Juergen Ributzka <juergen@apple.com> on 2014-07-17
Reviewed by Filip Pizlo.
* llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171208
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Thu, 17 Jul 2014 23:49:21 +0000 (23:49 +0000)]
Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/
17682335>
Reviewed by Tim Horton.
[NSScrollView documentVisibleRect] is not the rect that we are looking for when
this function is called. WebCore is interested in the rect that does not include
content that is within the inset region.
Implement contract() to avoid the awkwardness of calling expand() with negative
values.
* platform/graphics/IntSize.h:
(WebCore::IntSize::contract):
Use _insetBounds instead of documentVisibleRect, and when it’s necessary to use
the frame’s dimensions, extract the inset from that size.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171207
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
joepeck@webkit.org [Thu, 17 Jul 2014 23:30:36 +0000 (23:30 +0000)]
Follow-up fix to r171195 to prevent ASSERT in fast/profiler/profile-with-no-title.html
Rubber-stamped by Alexey Proskuryakov.
Null / empty titles should be fine. Tests pass in release builds
which allowed empty titles, and it looks like the LegacyProfiler
stopProfiling handles empty titles as expected already.
* profiler/LegacyProfiler.cpp:
(JSC::LegacyProfiler::startProfiling):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171204
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enrica@apple.com [Thu, 17 Jul 2014 22:46:20 +0000 (22:46 +0000)]
[REGRESSION WK2]The menu bar does not show up when tapping on the caret.
https://bugs.webkit.org/show_bug.cgi?id=135023
<rdar://problem/
17617282>
../WebCore:
Reviewed by Benjamin Poulain.
Adding some exports.
* WebCore.exp.in:
../WebKit2:
Reviewed by Benjamin Poulain and Ryosuke Niwa.
WKContentView needs to implement hasContent to correctly show
the appropriate menu bar content. The patch adds this information
to the EditorState.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasContent]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171203
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Thu, 17 Jul 2014 22:08:41 +0000 (22:08 +0000)]
[iOS][WK2] Add SPI to do a dynamic viewport update without showing any content
https://bugs.webkit.org/show_bug.cgi?id=135010
Reviewed by Darin Adler.
This patch add a new SPI, [WKWebView _resizeWhileHidingContentWithUpdates:] to perform all the work
of a dynamic viewport size update, but instead of animating the old content, it is hidden.
The patch is built on top of the animated resize mechanism. Instead of having an animation driving
the beginning and end, we let the content do that. The dynamic resize begins, it runs for as long as
the WebProcess needs, and it ends when first layer tree commit with the new content is processed.
The attribute "_isAnimatingResize" is generalized to support two modes of resizing: animated and
hiding content.
The attribute "_hasCommittedLoadForMainFrame" is rather silly. It is only needed because
[WKWebView _resizeWhileHidingContentWithUpdates:] is intended to be called a lot before the page
is initialized, and doing an animated resize would trash the WebProcess state.
I wish I had a better solution, this is not great.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _didCommitLayerTree:]):
This is the key to make this work properly. We want _resizeWhileHidingContentWithUpdates: to behave
exactly like an animated resize to avoid bugs. So we went to the whole update mechanism using
_resizeAnimationTransformAdjustments to accumulate the adjustments, now we need to restore a correct
view state.
Calling [WKWebView _endAnimatedResize] will do exactly that, but we need to make sure we do not hit
the synchronization path or we would be blocked there for a while, which is what we are trying to avoid.
After r171154, WebPageProxy keeps track of what stage of dynamic viewport update we are in. Since we are
executing the layer tree update stage, with the right transaction ID, WebPageProxy already knows we have
everything we need and does not use any synchronous messages.
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _restorePageStateToExposedRect:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _scrollToContentOffset:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171201
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Thu, 17 Jul 2014 21:38:08 +0000 (21:38 +0000)]
Fix failing API tests.
* TestWebKitAPI/mac/PlatformWebViewMac.mm:
(-[ActiveOffscreenWindow isVisible]):
Override isVisible to make the NSWindows pretend they are visible.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171199
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Thu, 17 Jul 2014 21:33:55 +0000 (21:33 +0000)]
fast/repaint/obscured-background-no-repaint.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=131477
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:
Moved the expectation out of WK2, as this also happens with WK1 on some bots.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171198
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Thu, 17 Jul 2014 21:27:56 +0000 (21:27 +0000)]
[Mac] Full screen video not always animating in the correct Space
https://bugs.webkit.org/show_bug.cgi?id=135020
<rdar://problem/
17542310>
Reviewed by Dean Jackson.
The fullscreen window can "remember" the Space it was part of the first time you enter fullscreen
mode. Subsequent fullscreen transitions will always start from this Space, even if you move
the WebKit-hosted application to a different Space.
We can help the display system know when we've moved to a new Space by calling NSWindow's
'orderBack' method on the fullscreen window prior to starting the transition to fullscreen mode.
This method call hooks the window into the current Space so everything works properly.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): Add the
new fullscreen window to the current Space before starting transition to fullscreen.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171197
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Thu, 17 Jul 2014 21:27:00 +0000 (21:27 +0000)]
Remove inspector-protocol/profiler tests from TestExpectations, now that they no
longer exist.
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171196
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Thu, 17 Jul 2014 21:16:46 +0000 (21:16 +0000)]
Make console.profile record to the Timeline.
https://bugs.webkit.org/show_bug.cgi?id=134643
Reviewed by Joseph Pecoraro.
Source/WebCore:
Passes existing profiler tests in fast/profiler.
* bindings/js/ScriptState.cpp:
(WebCore::domWindowFromExecState):
(WebCore::frameFromExecState):
(WebCore::scriptExecutionContextFromExecState):
(WebCore::mainWorldExecState):
(WebCore::execStateFromNode):
* bindings/js/ScriptState.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::profilerEnabled):
(WebCore::InspectorController::setProfilerEnabled):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::startProfilingImpl):
(WebCore::InspectorInstrumentation::stopProfilingImpl):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::startProfiling):
(WebCore::stopProfiling):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::didWriteHTML):
(WebCore::InspectorTimelineAgent::breakpointActionProbe):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::didCompleteRecordEntry):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::sendEvent):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::persistentInspectorTimelineAgent):
(WebCore::InstrumentingAgents::setPersistentInspectorTimelineAgent):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createConsoleProfileData):
* inspector/TimelineRecordFactory.h:
* inspector/protocol/Timeline.json:
* page/PageConsole.cpp:
(WebCore::PageConsole::profileEnd):
Source/WebInspectorUI:
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
* UserInterface/Images/TimelineRecordConsoleProfile.svg: Added.
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.eventRecorded):
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):
* UserInterface/Views/TimelineIcons.css:
(.console-profile-record .icon):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Source/WebKit/mac:
* WebInspector/WebInspector.mm:
(-[WebInspector isProfilingJavaScript]):
(-[WebInspector toggleProfilingJavaScript:]):
(-[WebInspector startProfilingJavaScript:]):
(-[WebInspector stopProfilingJavaScript:]):
(-[WebInspector isJavaScriptProfilingEnabled]):
(-[WebInspector setJavaScriptProfilingEnabled:]):
Source/WebKit2:
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::setJavaScriptProfilingEnabled):
(WebKit::WebInspector::startJavaScriptProfiling):
(WebKit::WebInspector::stopJavaScriptProfiling):
LayoutTests:
* fast/profiler/profile-with-no-title-expected.txt:
* inspector-protocol/profiler/console-profile-expected.txt: Removed.
* inspector-protocol/profiler/console-profile.html: Removed.
* inspector-protocol/profiler/console-profileEnd-parameterless-expected.txt: Removed.
* inspector-protocol/profiler/console-profileEnd-parameterless.html: Removed.
Removed because console.profile does not go through the profiler protocol now.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171195
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 17 Jul 2014 21:04:54 +0000 (21:04 +0000)]
Crash in ServicesOverlayController::~ServicesOverlayController.
<rdar://problem/
17622172> and https://bugs.webkit.org/show_bug.cgi?id=135022
Reviewed by Tim Horton.
* WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::~ServicesOverlayController): Don’t need to uninstall the
PageOverlay as it has already been destroyed by this point in WebPage::~WebPage.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171194
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Thu, 17 Jul 2014 19:31:48 +0000 (19:31 +0000)]
Disable button animations in regression tests
https://bugs.webkit.org/show_bug.cgi?id=133647
<rdar://problem/
16677530>
Reviewed by Dean Jackson.
* DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):
We already did this for WebKit2, let's do it for WebKit1 too.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171193
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
roger_fong@apple.com [Thu, 17 Jul 2014 19:20:31 +0000 (19:20 +0000)]
Add test for r169820.
https://bugs.webkit.org/show_bug.cgi?id=135002.
Reviewed by Dean Jackson.
* platform/mac-wk2/plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view-expected.txt: Added.
* plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171192
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Thu, 17 Jul 2014 19:19:37 +0000 (19:19 +0000)]
Sometimes purgeable (or empty!) tiles are shown on screen when resuming the app
https://bugs.webkit.org/show_bug.cgi?id=135018
<rdar://problem/
17615038>
Reviewed by Simon Fraser.
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::hideContentUntilNextUpdate):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate):
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::detachRootLayer):
Add a mechanism to "hide" drawing area content until the next commit,
by detaching the root layer. RemoteLayerTreeHost will automatically reattach
it at the next commit.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
Add a parameter to viewStateDidChange specifying whether dispatching the change
to the Web process is deferrable or not. We will also automatically use "Immediate" if
the view is coming in-window, like we did before.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationWillEnterForeground:]):
Make use of the aforementioned new mechanisms to ensure that we immediately dispatch
view state changes when coming into the foreground, and will have removed the root layer
if a commit didn't come in while waitForDidUpdateViewState blocks.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171191
268f45cc-cd09-0410-ab3c-
d52691b4dbfc