WebKit-https.git
5 years agoJSDOMWindow should have a WatchpointSet to fire on window close
mhahnenberg@apple.com [Fri, 9 May 2014 20:26:17 +0000 (20:26 +0000)]
JSDOMWindow should have a WatchpointSet to fire on window close
https://bugs.webkit.org/show_bug.cgi?id=132721

Reviewed by Filip Pizlo.

Source/JavaScriptCore:
This patch allows us to reset the inline caches that assumed they could skip
the first part of JSDOMWindow::getOwnPropertySlot that checks if the window has
been closed. This is part of getting rid of HasImpureGetOwnPropertySlot on JSDOMWindow.

PropertySlot now accepts a WatchpointSet which the inline cache code can look for
to see if it should create a new Watchpoint for that particular inline cache site.

* bytecode/Watchpoint.h:
* jit/Repatch.cpp:
(JSC::generateByIdStub):
(JSC::tryBuildGetByIDList):
(JSC::tryCachePutByID):
(JSC::tryBuildPutByIdList):
* runtime/PropertySlot.h:
(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::watchpointSet):
(JSC::PropertySlot::setWatchpointSet):

Source/WebCore:
No new tests.

This patch allows us to reset the inline caches that assumed they could skip
the first part of JSDOMWindow::getOwnPropertySlot that checks if the window has
been closed. This is part of getting rid of HasImpureGetOwnPropertySlot on JSDOMWindow.

JSDOMWindowBase now has a WatchpointSet that the underlying DOMWindow fires when its
frame is cleared. In getOwnPropertySlot, we now pass this WatchpointSet to PropertySlot
which will shepherd it back up to the code that generates the inline cache (and the
Watchpoint for clearing it).

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::frameDestroyed):

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

5 years agocom.apple.iphonesimulator.startSession needs to pass "RuntimeIdentifier"
dfarler@apple.com [Fri, 9 May 2014 20:25:02 +0000 (20:25 +0000)]
com.apple.iphonesimulator.startSession needs to pass "RuntimeIdentifier"
https://bugs.webkit.org/show_bug.cgi?id=132718

Reviewed by David Kilzer.

The simulator may not be able to look up runtimes by SDK paths
and instead will map SDK versions to runtimes instead. In
com.apple.iphonesimulator.startSession notifications,
'runtimeIdentifier' (SDK version string) is preferred over
'sdkRoot' (SDK path) anyway. Include the 'runtimeIdentifier' key
when creating a new DRT or WKTR simulator session.

IPhoneSimulatorNotification.pm filters out keys for this
notification's userInfo with a hard-coded list. There's no harm
in including extra key-value pairs in an NSNotification userInfo
dictionary anyway and the simulator may again change its
userInfo schema for this notification.

* DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/lib/IPhoneSimulatorNotification.pm:
(postStartSessionNotification):
* Scripts/old-run-webkit-tests:
(installAndLaunchDumpToolAppUsingNotification):

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

5 years agoAnother build fix.
andersca@apple.com [Fri, 9 May 2014 20:16:41 +0000 (20:16 +0000)]
Another build fix.

* Scripts/build-webkit:
WebKit2 should always be built for OS X and iOS.

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

5 years agoFollow-up build fix.
andersca@apple.com [Fri, 9 May 2014 19:36:18 +0000 (19:36 +0000)]
Follow-up build fix.

* Scripts/build-webkit:
WebKit2 should no longer be built before WebKit.

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

5 years ago[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
timothy_horton@apple.com [Fri, 9 May 2014 19:31:56 +0000 (19:31 +0000)]
[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
https://bugs.webkit.org/show_bug.cgi?id=132667
<rdar://problem/15349483>

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
Address a missed review comment about a missing std::move.

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

5 years agoASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY()
commit-queue@webkit.org [Fri, 9 May 2014 19:05:33 +0000 (19:05 +0000)]
ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY()
https://bugs.webkit.org/show_bug.cgi?id=121682

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-09
Reviewed by Dirk Schulze.

Source/WebCore:
Add more overflow freedom to the SVG element:
-overflow-x and overflow-y for controlling each scrollbar independently is now supported
-overflow:scroll will display scrollbars regardless of the svg overflowing or not (as required by CSS)
-overflow:hidden will cause overflow to be clipped away and scrollbars to be hidden

Merged from Blink r172126 by <ed@opera.com>

Tests: svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg
       svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg
       svg/animations/animate-viewport-overflow-2.html
       svg/animations/animate-viewport-overflow.html
       svg/in-html/overflow-repaint.html
       svg/in-html/overflow-svg-root-attr.html
       svg/in-html/overflow-svg-root-style.html
       svg/in-html/overflow-svg-root.html
       svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg
       svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg
       svg/overflow/overflow-scroll-on-outermost-svg-element.svg
       svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg
       svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg
       svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg
       svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* page/FrameView.cpp:
(WebCore::FrameView::applyOverflowToViewport):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
(WebCore::RenderSVGRoot::shouldApplyViewportClip):
(WebCore::RenderSVGRoot::paintReplaced):
(WebCore::RenderSVGRoot::computeFloatRectForRepaint):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::isOverflowHidden):

LayoutTests:
Merge Blink r172126 by Erik Dahlström.

* platform/efl/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt:
* platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.png:
* platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt:
* platform/mac/svg/text/non-bmp-positioning-lists-expected.txt: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-05-f-expected.png: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-05-f-expected.txt: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-06-f-expected.png: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-06-f-expected.txt: Added.
* svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg: Added.
* svg/animations/animate-viewport-overflow-2-expected.txt: Added.
* svg/animations/animate-viewport-overflow-2.html: Added.
* svg/animations/animate-viewport-overflow-expected.txt: Added.
* svg/animations/animate-viewport-overflow.html: Added.
* svg/in-html/overflow-repaint-expected.txt: Added.
* svg/in-html/overflow-repaint.html: Added.
* svg/in-html/overflow-svg-root-attr-expected.html: Added.
* svg/in-html/overflow-svg-root-attr.html: Added.
* svg/in-html/overflow-svg-root-expected.html: Added.
* svg/in-html/overflow-svg-root-style-expected.html: Added.
* svg/in-html/overflow-svg-root-style.html: Added.
* svg/in-html/overflow-svg-root.html: Added.
* svg/overflow/overflow-on-outermost-svg-element-horizontal-auto-expected.html: Added.
* svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg: Added.
* svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.txt:
* svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.png:
* svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt: Copied from LayoutTests/platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt.
* svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible.xhtml:
* svg/overflow/overflow-on-outermost-svg-element-vertical-auto-expected.html: Added.
* svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg: Added.
* svg/overflow/overflow-scroll-on-outermost-svg-element-expected.txt: Added.
* svg/overflow/overflow-scroll-on-outermost-svg-element.svg: Added.
* svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg: Added.
* svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg: Added.
* svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg: Added.
* svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg: Added.

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

5 years agoREGRESSION (r168448): fast/multicol/newmulticol/first-letter-create.html is very...
ap@apple.com [Fri, 9 May 2014 18:47:47 +0000 (18:47 +0000)]
REGRESSION (r168448): fast/multicol/newmulticol/first-letter-create.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=132744

* TestExpectations: Marked as such.

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

5 years agoRename WebKit2.framework to WebKit.framework
andersca@apple.com [Fri, 9 May 2014 18:39:39 +0000 (18:39 +0000)]
Rename WebKit2.framework to WebKit.framework
https://bugs.webkit.org/show_bug.cgi?id=132743
<rdar://problem/15920046>

Reviewed by Dan Bernstein.

.:
* Source/Makefile:
Build WebKit.xcodeproj before WebKit2.xcodeproj.

* WebKit.xcworkspace/xcshareddata/xcschemes/:
Ditto.

Source/WebKit:
* WebKit.xcodeproj/project.pbxproj:
Remove the WebKit framework, it lives inside WebKit2 now.

Source/WebKit2:
* Configurations/BaseLegacyProcess.xcconfig:
Change INSTALL_PATH to WebKit.framework.

* Configurations/BaseTarget.xcconfig:
Change WEBKIT2_FRAMEWORKS_DIR to WEBKIT_FRAMEWORKS_DIR and add WEBKIT_LEGACY_PRIVATE_HEADERS_DIR.

* Configurations/BaseXPCService.xcconfig:
Change WebKit2.framework to WebKit.framework.

* Configurations/WebKit.xcconfig: Copied from Source/WebKit2/Configurations/WebKit2.xcconfig.
New configuration file for WebKit.framework. Re-export WebKitLegacy.framework.

* Configurations/WebKit2.xcconfig:
New configuration file for the WebKit2 shim framework. Re-export WebKit.framework.

* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.

* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.

* Shared/API/Cocoa/WKBrowsingContextHandle.h:
* Shared/API/Cocoa/WKRenderingProgressEvents.h:
Update header imports.

* Shared/API/Cocoa/WebKit.h: Renamed from Source/WebKit/mac/WebKitLegacy/WebKit.h.
New umbrella header. Imports the modern WebKit API as well as the legacy API.

* Shared/API/Cocoa/WebKit.m: Renamed from Source/WebKit/mac/WebKitLegacy/WebKit.m.
Export install name symbols on iOS.

* Shared/API/Cocoa/WebKitPrivate.h: Renamed from Source/WebKit/mac/WebKitLegacy/WebKitPrivate.h.
New umbrella SPI header. Imports the modern WebKit SPI.

* Many headers:
Change WebKit2 includes to WebKit includes.

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(WebKit::XPCServiceEventHandler):
Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
Change bundle identifier from com.apple.WebKit2 to com.apple.WebKit.

* UIProcess/API/Cocoa/WKPreferences.h:
Stop including WKPreferencesRef.h, we have a WebKit2 header that handles this workaround for us now.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::addDYLDEnvironmentAdditions):
(WebKit::connectToService):
(WebKit::createProcess):
(WebKit::ProcessLauncher::launchProcess):
Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::createPropertyListFile):
Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultDiskCacheDirectory):
Change bundle identifier from com.apple.WebKit2 to com.apple.WebKit.

* WebKit2.xcodeproj/project.pbxproj:
Copy the python message scripts to the WebKit2 framework.
Rename WebKit2.framework to WebKit.framework everywhere.
Add a new WebKit2 target that builds the shim WebKit2 framework.
Move the build script phase that migrates WebKitLegacy headers to WebKit.
Add a new build script phase that adds forwarding headers from WebKit2 to WebKit.

* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.

* mac/MigrateHeadersFromWebKitLegacy.make: Renamed from Source/WebKit/mac/WebKitLegacy/MigrateHeadersFromWebKitLegacy.make.
Move the makefile that migrates WebKitLegacy headers here. On OS X, it copies the header contents and on iOS it creates forarding headers.

* mac/MigrateHeadersToWebKit2.make:
New makefile that creates forwarding headers for the WebKit2 shim framework.

* mac/WKPreferences.h: Added.
Add WebKit2/WKPreferences.h header that imports WebKit2/WKPreferencesref.h.

* mac/WebKit2.m:
Skeleton for the WebKit2 shim framework.

* mac/Info-WebKit2.plist: Added.
New Info.plist file for the WebKit2 shim framework.

Tools:
* Scripts/check-for-inappropriate-files-in-framework:
Use PRODUCT_NAME instead of PROJECT_NAME when matching frameworks.
Change WebKit2 to WebKit.

* Scripts/check-for-webkit-framework-include-consistency:
Change WebKit to WebKitLegacy.

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

5 years agoFix build warning (uninitialized variable) in DFGFixupPhase.cpp
commit-queue@webkit.org [Fri, 9 May 2014 18:20:39 +0000 (18:20 +0000)]
Fix build warning (uninitialized variable) in DFGFixupPhase.cpp
https://bugs.webkit.org/show_bug.cgi?id=132331

Patch by Tanay C <tanay.c@samsung.com> on 2014-05-09
Reviewed by Darin Adler.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

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

5 years agoRemove GTK+ WK1 EWS from build.webkit.org/dashboard
rego@igalia.com [Fri, 9 May 2014 16:55:16 +0000 (16:55 +0000)]
Remove GTK+ WK1 EWS from build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=132732

Reviewed by Alexey Proskuryakov.

GTK+ WK1 EWS was removed in r166427, so it shouldn't appear in the dashboard.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js:
(EWS): Remove GTK+ WK1 EWS.

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

5 years ago[MSE][Mac] Destroy the AVStreamDataParser when the SourceBuffer is removed from its...
jer.noble@apple.com [Fri, 9 May 2014 16:44:26 +0000 (16:44 +0000)]
[MSE][Mac] Destroy the AVStreamDataParser when the SourceBuffer is removed from its MediaSource.
https://bugs.webkit.org/show_bug.cgi?id=132710

Reviewed by Eric Carlson.

The AVStreamDataParser should be destroyed when the SourceBuffer is removed, so that subsequent
SourceBuffers can utilize resources released by the parser on destruction.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener invalidate]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):  Protect against _parent being invalidated.
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Call destroyParser();.
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::destroyParser): Call -[WebAVStreamDataParserListener invalidate].

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

5 years ago[Win] Crash when enabling DFG JIT.
commit-queue@webkit.org [Fri, 9 May 2014 16:29:41 +0000 (16:29 +0000)]
[Win] Crash when enabling DFG JIT.
https://bugs.webkit.org/show_bug.cgi?id=132683

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-05-09
Reviewed by Geoffrey Garen.

On windows, using register GPRInfo::regT0 as parameter to e.g. JIT::storeDouble(..., GPRInfo::regT0)),
results in a call to JIT::storeDouble(FPRegisterID src, const void* address),
where the address parameter gets the value of GPRInfo::regT0, which is 0 (eax on Windows).
This causes the register to be written to address 0, hence the crash.

* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit): Use address in regT0 as parameter.
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit): Ditto.

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

5 years ago[CSS Regions] 1-2% performance regression in html5-full-render after r168286
abucur@adobe.com [Fri, 9 May 2014 16:15:59 +0000 (16:15 +0000)]
[CSS Regions] 1-2% performance regression in html5-full-render after r168286
https://bugs.webkit.org/show_bug.cgi?id=132672

Reviewed by Mihnea Ovidenie.

The patch optimizes the search of regions when there's a single region in the chain.
There's no need to execute advanced search logic, we can directly return that region.

Tests: No function change, no tests.

* rendering/RenderBlock.cpp:
(WebCore::canComputeRegionRangeForBox):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::regionAtBlockOffset):
(WebCore::RenderFlowThread::hasCachedRegionRangeForBox): Renamed from hasRegionRangeForBox to
better suggest what the function does.
(WebCore::RenderFlowThread::getRegionRangeForBox):
(WebCore::RenderFlowThread::hasRegionRangeForBox): Deleted.
* rendering/RenderFlowThread.h:

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

5 years ago[EME] Call suspendIfNeeded() in the MediaKeySession create() method to avoid an ASSERT.
jer.noble@apple.com [Fri, 9 May 2014 15:54:05 +0000 (15:54 +0000)]
[EME] Call suspendIfNeeded() in the MediaKeySession create() method to avoid an ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=132712

Reviewed by Eric Carlson.

All ActiveDOMObject subclasses must call suspendIfNeeded() immediately after creation.

* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):

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

5 years ago[CSS Blending] Move background-blend-mode tests from fast/repaint to css3/blending...
commit-queue@webkit.org [Fri, 9 May 2014 15:08:22 +0000 (15:08 +0000)]
[CSS Blending] Move background-blend-mode tests from fast/repaint to css3/blending and remove the -webkit- prefix
https://bugs.webkit.org/show_bug.cgi?id=132741

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-09
Reviewed by Mihnea Ovidenie.

Remove the -webkit prefix from comments:
* css3/blending/background-blend-mode-property-expected.txt:
* css3/blending/script-tests/background-blend-mode-property.js:

Move the background-blend-mode test from fast/repaint to css3/blending.
This is not required to be a repaint test. It works well as a regular reftest too.
* css3/blending/background-blend-mode-image-color-dynamic-expected.html: Added.
* css3/blending/background-blend-mode-image-color-dynamic.html: Added.
* fast/repaint/background-blend-mode-image-color-dynamic-expected.html: Removed.
* fast/repaint/background-blend-mode-image-color-dynamic.html: Removed.
* fast/repaint/resources/ducky.png: Removed.

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

5 years agoUnreviewed. Another attempt to fix Windows build after r168528.
zalan@apple.com [Fri, 9 May 2014 14:56:15 +0000 (14:56 +0000)]
Unreviewed. Another attempt to fix Windows build after r168528.

* platform/graphics/win/FontWin.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):

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

5 years agoREGRESSION(r167094): JSC crashes on ARM Traditional
commit-queue@webkit.org [Fri, 9 May 2014 14:42:01 +0000 (14:42 +0000)]
REGRESSION(r167094): JSC crashes on ARM Traditional
https://bugs.webkit.org/show_bug.cgi?id=132738

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-09
Reviewed by Zoltan Herczeg.

PC is two instructions ahead of the current instruction
on ARM Traditional, so the distance is 8 bytes not 2.

* llint/LowLevelInterpreter.asm:

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

5 years agoUnreviewed build fix for Win after r168528.
zalan@apple.com [Fri, 9 May 2014 14:35:51 +0000 (14:35 +0000)]
Unreviewed build fix for Win after r168528.

* platform/graphics/win/FontWin.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):

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

5 years agoREGRESSION (r168095): 1-pixel gap between adjacent selection inlines
zalan@apple.com [Fri, 9 May 2014 14:20:49 +0000 (14:20 +0000)]
REGRESSION (r168095): 1-pixel gap between adjacent selection inlines
https://bugs.webkit.org/show_bug.cgi?id=132474
<rdar://problem/16797394>

Reviewed by David Hyatt.

This patch changes text selection rectangle calculation from integral to device
pixel snapping. It ensures that selection rect painting matches box boundaries for inline elements.
Directional rounding (horizontal only atm) is moved out from Font class and now accessible
to all the painting code. RTL snapping strategy is changed from floor to round to match ltr behavior.
However this patch does not address all the integral snapping across inline elements. There are
a few places where we still calculate enclosing rects where snapping is sufficient.

Source/WebCore:
Test: fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines.html

* platform/LayoutUnit.h:
(WebCore::roundToDevicePixel): added fudge factor to change rounding direction as directed.
* platform/graphics/Font.cpp:
(WebCore::Font::adjustSelectionRectForText):
(WebCore::Font::selectionRectForText): Deleted.
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::adjustSelectionRectForSimpleText): removed directional rounding.
(WebCore::Font::selectionRectForSimpleText): Deleted.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawHighlightForText): Deleted.
* platform/graphics/GraphicsContext.h:
* platform/graphics/LayoutPoint.h:
(WebCore::roundedForPainting):
* platform/graphics/LayoutRect.h:
(WebCore::directionalPixelSnappedForPainting): Snap top right corner for rtl direction.
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::selectionRectForComplexText): Deleted.
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::adjustSelectionRectForComplexText): removed directional rounding.
(WebCore::Font::selectionRectForComplexText): Deleted.
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::selectionRectForComplexText): Deleted.
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::selectionRect):
(WebCore::EllipsisBox::paintSelection):
* rendering/InlineTextBox.cpp:
(WebCore::integralEnclosingRectForSelection): helper to address enclosing empty rect problem.
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
(WebCore::InlineTextBox::positionForOffset):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::selectionRectForTextFragment):

LayoutTests:
* fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines-expected.html: Added.
* fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines.html: Added.
* platform/mac/editing/selection/mixed-editability-10-expected.txt: progression.
* platform/mac/fast/forms/cursor-at-editable-content-boundary-expected.txt: progression.
* platform/mac/platform/mac/editing/input/caret-primary-bidi-expected.txt: Added. change in rounding strategy.
* platform/mac/svg/text/caret-in-svg-text-expected.txt: Added. progression + change in rounding strategy.

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

5 years agoAdd new u-szeged contributors.
ossy@webkit.org [Fri, 9 May 2014 13:34:47 +0000 (13:34 +0000)]
Add new u-szeged contributors.

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-05-09
Reviewed by Csaba Osztrogonác.

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

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

5 years agoREGRESSION(CMAKE): [GTK] run-gtk-tests doesn't set the right injected bundle path
carlosgc@webkit.org [Fri, 9 May 2014 12:49:54 +0000 (12:49 +0000)]
REGRESSION(CMAKE): [GTK] run-gtk-tests doesn't set the right injected bundle path
https://bugs.webkit.org/show_bug.cgi?id=132736

Reviewed by Philippe Normand.

There are two problems, the path returned by common.library_build_path() is wrong when
common.binary_build_path() has previously been called, and the test is still looking for
the .la instead of .so

* TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
(TestWebKitAPI::Util::createInjectedBundlePath): Use .so instead
of .la as extension of the injected bundle library.
* gtk/common.py:
(binary_build_path): Remove unused global variable and add a new
one for binary_build_dir instead of sharing the same global
variable for library_build_path and binary_build_path.

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

5 years ago[WK2] Make generate-forwarding-headers.pl work after WebKit2.framework -> WebKit...
commit-queue@webkit.org [Fri, 9 May 2014 12:49:26 +0000 (12:49 +0000)]
[WK2] Make generate-forwarding-headers.pl work after WebKit2.framework -> WebKit.framework rename
https://bugs.webkit.org/show_bug.cgi?id=132733

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-09
Reviewed by Csaba Osztrogonác.

Rewrite framework's directory name to WebKit2 if the framework is WebKit (former WebKit2)
and then collect headers inside the fixed framework directory and generate forwarding
headers point to the fixed directory.

Leave WebKit2 in @frameworks list during the transition. It can be removed
once <WebKit2/foo.h> style includes were renamed to <WebKit/foo.h> everywhere.

* Scripts/generate-forwarding-headers.pl:
(collectFameworkHeaderPaths):
(createForwardingHeadersForFramework):

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

5 years agoASSERTION FAILED: !m_code || m_code == defaultExceptionCode
commit-queue@webkit.org [Fri, 9 May 2014 10:58:14 +0000 (10:58 +0000)]
ASSERTION FAILED: !m_code || m_code == defaultExceptionCode
in WebCore::constructQualifiedName
https://bugs.webkit.org/show_bug.cgi?id=132343

'Remove bad assertion in SVGSMILElement's constructQualifiedName() by passing
IGNORE_EXCEPTION instead ASSERT_NO_EXCEPTION to Document::parseQualifiedName().
The constructQualifiedName() function handles parseQualifiedName() failures
propertly by returning early so there is no reason to assert on parsing
failures.'

Blink merge: http://src.chromium.org/viewvc/blink?view=revision&revision=173564
Based on the patch made by Christophe Dumez <ch.dumez@samsung.com>.

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-05-09
Reviewed by Dirk Schulze.

Source/WebCore:
Test: svg/custom/bad-attributeName-crash.html

* svg/animation/SVGSMILElement.cpp:
(WebCore::constructQualifiedName):

LayoutTests:
* svg/custom/bad-attributeName-crash-expected.txt: Added.
* svg/custom/bad-attributeName-crash.html: Added.

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

5 years agojsmin.py license header confusing, mentions non-free license
berto@igalia.com [Fri, 9 May 2014 07:10:41 +0000 (07:10 +0000)]
jsmin.py license header confusing, mentions non-free license
https://bugs.webkit.org/show_bug.cgi?id=123665

Reviewed by Darin Adler.

Pull the most recent version from upstream, which has a clear
license.

Source/JavaScriptCore:
* inspector/scripts/jsmin.py:

Source/WebInspectorUI:
* Scripts/jsmin.py:

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

5 years agoREGRESSION (r168518): Multiple tests for workers in blobs assert
ap@apple.com [Fri, 9 May 2014 06:19:38 +0000 (06:19 +0000)]
REGRESSION (r168518): Multiple tests for workers in blobs assert
https://bugs.webkit.org/show_bug.cgi?id=132728

* platform/mac/TestExpectations: Skipped for now.

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

5 years agoDYEBench should use TodoMVC to test FlightJS for consistency
rniwa@webkit.org [Fri, 9 May 2014 06:01:06 +0000 (06:01 +0000)]
DYEBench should use TodoMVC to test FlightJS for consistency
https://bugs.webkit.org/show_bug.cgi?id=132727

Reviewed by Andreas Kling.

Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.

I initially intended to include a wider variety of demo apps in DYEBench
but that's not happening any time soon so let us use TodoMVC for all frameworks for now.

We can add more demo apps in v2.

* DoYouEvenBench/Full.html: Increment the version to 0.10.
* DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
* DoYouEvenBench/resources/tests.js:
* DoYouEvenBench/resources/todomvc/dependency-examples: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
* DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.

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

5 years ago[EFL] Enable MEDIA_STREAM for EFL port
commit-queue@webkit.org [Fri, 9 May 2014 05:32:36 +0000 (05:32 +0000)]
[EFL] Enable MEDIA_STREAM for EFL port
https://bugs.webkit.org/show_bug.cgi?id=132648

Patch by Praveen R Jadhav <praveen.j@samsung.com> on 2014-05-08
Reviewed by Gyuyoung Kim.

Tools:
Script modified to enable MEDIA_STREAM for EFL build.

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:
Updated webaudio test case expectation after enabling MEDIA_STREAM

* platform/efl/TestExpectations:

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

5 years agoMultiple (stacked) cues when shuttling through video while playing closed captions
bfulgham@apple.com [Fri, 9 May 2014 05:20:59 +0000 (05:20 +0000)]
Multiple (stacked) cues when shuttling through video while playing closed captions
https://bugs.webkit.org/show_bug.cgi?id=132715
<rdar://problem/16795782>

Reviewed by Eric Carlson.

Tests: media/track/track-in-band-cues-added-once.html

* html/track/TextTrack.cpp:
(WebCore::TextTrack::hasCue): Revise to use a relaxed time equality.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::isEqual): Ditto.
(WebCore::TextTrackCue::hasEquivalentStartTime): Added.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::startTimeVariance): Added.
* html/track/TextTrackCueGeneric.h:
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::isEqual): Do not call the VTTCue::isEqual method from
this class, since cueType() will not equal VTTCue, and the equality will fail.

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

5 years agoAutomatically zip document bundles used via File API
ap@apple.com [Fri, 9 May 2014 04:37:25 +0000 (04:37 +0000)]
Automatically zip document bundles used via File API
https://bugs.webkit.org/show_bug.cgi?id=132713
<rdar://problem/13397892>

Reviewed by Anders Carlsson.

Source/WebCore:
Tests: fast/files/filereader-zip-bundle.html
       http/tests/local/fileapi/upload-zip-bundle-as-blob.html

* FileMac.mm: Added.
(WebCore::File::shouldReplaceFile):
(WebCore::File::computeNameAndContentTypeForReplacedFile):
Added code that decides what to do with a bundle. We need this to happen in
WebProcess, because HTML5 dropzone depends on this, it needs to know file type
even before a File object can be created.

* WebCore.exp.in: Export new functions.

* WebCore.xcodeproj/project.pbxproj: Added new files.

* dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for File
interface change.

* fileapi/File.h:
* fileapi/File.cpp:
(WebCore::File::File):
(WebCore::File::computeNameAndContentType):
(WebCore::File::contentTypeForFile):
(WebCore::File::contentTypeFromFilePathOrName): Deleted.
Make it possible for a subclass to affect file name and content type calculation.

* platform/network/BlobDataFileReference.cpp:
(WebCore::BlobDataFileReference::BlobDataFileReference):
(WebCore::BlobDataFileReference::~BlobDataFileReference):
(WebCore::BlobDataFileReference::path):
(WebCore::BlobDataFileReference::size):
(WebCore::BlobDataFileReference::expectedModificationTime):
(WebCore::BlobDataFileReference::startTrackingModifications):
* platform/network/BlobDataFileReference.h:
(WebCore::BlobDataFileReference::path): Deleted.
(WebCore::BlobDataFileReference::BlobDataFileReference): Deleted.
Use original or replaced file, as appropriate.

* platform/network/mac/BlobDataFileReferenceMac.mm: Added.
(WebCore::BlobDataFileReference::generateReplacementFile): Implements generateReplacementFile().

* platform/network/FormData.h: Added a FIXME.

* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Always use Blob code path
for blobs, don't unwrap them into a file path.

Source/WebKit2:
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: NetworkProcess
now uses FileCoordination (WebProcess already had this allowed).

* Shared/BlobDataFileReferenceWithSandboxExtension.h: Added final to the class.

Source/WTF:
* wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac.

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

5 years agoOccasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on...
simon.fraser@apple.com [Fri, 9 May 2014 02:26:22 +0000 (02:26 +0000)]
Occasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on history navigation
https://bugs.webkit.org/show_bug.cgi?id=132723

Reviewed by Sam Weinig.

Crash reports suggest that when we call AsyncScrollingCoordinator::frameViewRootLayerDidChange()
from HistoryController::restoreScrollPositionAndViewState(), the FrameView may not have a
scrolling node ID, which suggests that either the FrameView doesn't have a RenderView,
or compositing hasn't happened yet.

So if we enter AsyncScrollingCoordinator::frameViewRootLayerDidChange()
and the FrameView has no scrollLayerID, just return. We'll fix things up
when compositing kicks in later.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):

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

5 years ago[iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
simon.fraser@apple.com [Fri, 9 May 2014 01:08:30 +0000 (01:08 +0000)]
[iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
https://bugs.webkit.org/show_bug.cgi?id=132719
<rdar://problem/16860837>

Reviewed by Benjamin Poulain.

Source/WebCore:

Add a couple of functions, and sort.

* WebCore.exp.in:

Source/WebKit2:

If we haven't received visible rects from the web process, compute the
fixed position rect, but only after scale has been set.

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

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

5 years ago[Mac, iOS] Add source application accounting to AVURLAsset.
jer.noble@apple.com [Fri, 9 May 2014 01:06:28 +0000 (01:06 +0000)]
[Mac, iOS] Add source application accounting to AVURLAsset.
https://bugs.webkit.org/show_bug.cgi?id=132637

Reviewed by Eric Carlson.

Source/WebCore:
Properly account for the application responisble for data loading by passing the source
application identifier through to AVFoundation through AVURLAsset options.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::sourceApplicationIdentifier):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerSourceApplicationIdentifier):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
* platform/network/NetworkingContext.h:

Source/WebKit/mac:
Add accessor for sourceApplicationIdentifier.

* WebCoreSupport/WebFrameNetworkingContext.h:
* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::sourceApplicationIdentifier):

Source/WebKit2:
Add accessor for sourceApplicationIdentifier.

* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::sourceApplicationIdentifier):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::sourceApplicationIdentifier):

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

5 years agoold-run-webkit-tests: update strings for simulator devices and app name
dfarler@apple.com [Fri, 9 May 2014 00:30:50 +0000 (00:30 +0000)]
old-run-webkit-tests: update strings for simulator devices and app name
https://bugs.webkit.org/show_bug.cgi?id=132687

Reviewed by Darin Adler.

iPhone Retina (4-inch) -> iPhone 5
iPhone Retina (4-inch 64-bit) -> iPhone 5s

* Scripts/old-run-webkit-tests:
(installAndLaunchDumpToolAppUsingNotification):
(openIPhoneSimulator):
(quitIPhoneSimulator):
quit iOS Simulator, not iPhone Simulator.

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

5 years agoBase case for get-by-id inline cache doesn't check for HasImpureGetOwnPropertySlot
mhahnenberg@apple.com [Fri, 9 May 2014 00:22:30 +0000 (00:22 +0000)]
Base case for get-by-id inline cache doesn't check for HasImpureGetOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=132695

Reviewed by Filip Pizlo.

We check in the case where we're accessing something other than the base object (e.g. the prototype),
but we fail to do so for the base object.

* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):
* jsc.cpp: Added some infrastructure to support this test. We don't currently trigger this bug anywhere in WebKit
because all of the values that are returned that could be impure are set to uncacheable anyways.
(WTF::ImpureGetter::ImpureGetter):
(WTF::ImpureGetter::createStructure):
(WTF::ImpureGetter::create):
(WTF::ImpureGetter::finishCreation):
(WTF::ImpureGetter::getOwnPropertySlot):
(WTF::ImpureGetter::visitChildren):
(WTF::ImpureGetter::setDelegate):
(GlobalObject::finishCreation):
(functionCreateImpureGetter):
(functionSetImpureGetterDelegate):
* tests/stress/impure-get-own-property-slot-inline-cache.js: Added.
(foo):

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

5 years ago[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
timothy_horton@apple.com [Fri, 9 May 2014 00:22:05 +0000 (00:22 +0000)]
[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
​https://bugs.webkit.org/show_bug.cgi?id=132667
<rdar://problem/16861454>

Rubber-stamped by Simon Fraser.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Add a null check to fix a crash on layers which lose backing store.

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

5 years ago[MSE][Mac] Move AVStreamDataParser off-main-thread.
jer.noble@apple.com [Fri, 9 May 2014 00:21:00 +0000 (00:21 +0000)]
[MSE][Mac] Move AVStreamDataParser off-main-thread.
https://bugs.webkit.org/show_bug.cgi?id=132698

Reviewed by Eric Carlson.

-[AVStreamDataParser appendStreamData:] can casue the main thread to hang when a
large amount of media data is appended at once. Move the actual parsing of data
to a background (synchronous) dispatch queue, and split SourceBuffer::appendBufferTimerFired
into two functions, the latter of which will be called after the background queue
completes.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired): Split into sourceBufferPrivateAppendComplete.
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Split from appendBufferTimerFired.
* Modules/mediasource/SourceBuffer.h:
* platform/graphics/SourceBufferPrivate.h:
* platform/graphics/SourceBufferPrivateClient.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Re-dispatch to the
        web thread.
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
(WebCore::globalDataParserQueue): Added.
(WebCore::SourceBufferPrivateAVFObjC::append): Dispatch to the globalDataParserQueue.
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Added.
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::append): Adopt sourceBufferPrivateAppendComplete.
* platform/mock/mediasource/MockSourceBufferPrivate.h:

Update SourceBufferPrivateGStreamer to match the new append return value:
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::append):
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:

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

5 years agoUnreviewed, rolling out r168498.
commit-queue@webkit.org [Thu, 8 May 2014 23:38:18 +0000 (23:38 +0000)]
Unreviewed, rolling out r168498.
https://bugs.webkit.org/show_bug.cgi?id=132714

broke Mavericks WK2 (Requested by litherum on #webkit).

Reverted changeset:

"http/tests/security/xss-DENIED-xsl-document-redirect.xml
fails with NetworkProcess"
https://bugs.webkit.org/show_bug.cgi?id=132523
http://trac.webkit.org/changeset/168498

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

5 years agoUse a different install name for WebKitLegacy.framework for staged framework builds
andersca@apple.com [Thu, 8 May 2014 22:42:59 +0000 (22:42 +0000)]
Use a different install name for WebKitLegacy.framework for staged framework builds
https://bugs.webkit.org/show_bug.cgi?id=132711
<rdar://problem/16850620>

Reviewed by Dan Bernstein.

* Configurations/WebKitLegacy.xcconfig:

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

5 years agoREGRESSION (r168053): Phone number detection boxes are wrong when scrolled
bdakin@apple.com [Thu, 8 May 2014 22:29:22 +0000 (22:29 +0000)]
REGRESSION (r168053): Phone number detection boxes are wrong when scrolled
https://bugs.webkit.org/show_bug.cgi?id=132706
-and corresponding-
<rdar://problem/16787957>

Reviewed by Tim Horton.

We need to paint the boxes in Document coordinates. Range::boundingRect() was
giving us a point that took scroll position into account, and that’s not what we
want. Here we use Range::textQuads() instead so that we can get something in
Document coordinates, and then we need to convert that up to the main Document’s
coordinates.
* WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
(WebKit::textQuadsToBoundingRectForRange):
(WebKit::TelephoneNumberOverlayController::drawRect):

The telephone click function wants a point in Window coordinates.
(WebKit::TelephoneNumberOverlayController::mouseEvent):

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

5 years agohttp/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
mmaxfield@apple.com [Thu, 8 May 2014 22:03:33 +0000 (22:03 +0000)]
http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=132523

Reviewed by Alexey Proskuryakov.

Source/WebCore:
We should not manufacture a response in the event of an error during a
synchronous XHR. In addition, this test removes one place that is
sensitive to such a manufactured response.

Updates test expectations.

* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
manufacture a response
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
manufacture a response
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc): Only use the response's URL if no error
occurred.

LayoutTests:
Two tests have been rebaselined, and re-enable test that now passes

* fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: The test describes
that success causes an ErrorHandler to run, but there was no ErrorHandler line in the
expected output. This now gets printed.
* http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt: Expecting logging
output on failed redirection
* platform/mac-wk2/TestExpectations: Re-enable test that now passes.

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

5 years agodeleteAllCompiledCode() shouldn't use the suspension worklist
fpizlo@apple.com [Thu, 8 May 2014 21:51:03 +0000 (21:51 +0000)]
deleteAllCompiledCode() shouldn't use the suspension worklist
https://bugs.webkit.org/show_bug.cgi?id=132708

Reviewed by Mark Hahnenberg.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setOptimizationThresholdBasedOnCompilationResult):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::isStillValid):
* heap/Heap.cpp:
(JSC::Heap::deleteAllCompiledCode):

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

5 years ago[iOS] WebKit should listen to critical memory warnings.
akling@apple.com [Thu, 8 May 2014 21:29:47 +0000 (21:29 +0000)]
[iOS] WebKit should listen to critical memory warnings.
<https://webkit.org/b/132704>
<rdar://problem/16857112>

Listen for DISPATCH_MEMORYSTATUS_PRESSURE_CRITICAL in addition to
DISPATCH_MEMORYSTATUS_PRESSURE_WARN, since we may only get the critical
notification on some systems.

Reviewed by Gavin Barraclough.

* platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::install):

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

5 years agoWeb Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully...
commit-queue@webkit.org [Thu, 8 May 2014 21:20:11 +0000 (21:20 +0000)]
Web Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully handle bad node
https://bugs.webkit.org/show_bug.cgi?id=132697

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-05-08
Reviewed by Timothy Hatcher.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
Gracefully handle no node.

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

5 years agoWeb Inspector: Console error when launching Web Inspector "Mode htmlmixed failed...
commit-queue@webkit.org [Thu, 8 May 2014 21:07:56 +0000 (21:07 +0000)]
Web Inspector: Console error when launching Web Inspector "Mode htmlmixed failed to advance stream"
https://bugs.webkit.org/show_bug.cgi?id=132703

Patch by Jono Wells <jonowells@apple.com> on 2014-05-08
Reviewed by Timothy Hatcher.

The CodeMirror 4 update brought with it a change in the XML mode that
causes our XML mode extension to fail to consume empty paired quotes
correctly.

* UserInterface/Views/CodeMirrorAdditions.js:
Updated extendedXMLToken() to properly handle empty paired quotes.

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

5 years ago[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
timothy_horton@apple.com [Thu, 8 May 2014 20:56:37 +0000 (20:56 +0000)]
[iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
https://bugs.webkit.org/show_bug.cgi?id=132667
<rdar://problem/15349483>

Reviewed by Darin Adler.

* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::takeFrontContextPendingFlush):
(WebKit::RemoteLayerBackingStore::flush): Deleted.
Add takeFrontContextPendingFlush, which returns the painted-but-not-yet-flushed front context,
and drops our reference to it. This needs to be called on all backing store between paints.

* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::hasFlushed):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::~RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
(WebKit::flushBackingStoreChangesInTransaction): Deleted.
Flush backing store and send the layer tree commit to the UI process from a dispatch queue.
We will only ever have a single commit in flight at a time, and there's a new
RELEASE_ASSERT to ensure that is the case.
We package up the commit on the main thread; the queue calls CGContextFlush
on all of the newly painted contexts and then tosses the commit over to the UI process.
This is a win in many cases because the Web process main thread can go ahead
and do other non-painting tasks while the queue is blocked on painting.

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

5 years ago[wk2] Don't use the XPC-based plugin process for Adobe Reader
timothy_horton@apple.com [Thu, 8 May 2014 20:28:43 +0000 (20:28 +0000)]
[wk2] Don't use the XPC-based plugin process for Adobe Reader
https://bugs.webkit.org/show_bug.cgi?id=132701
<rdar://problem/16792692>

Reviewed by Anders Carlsson.

* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
Rename the debugging default to a more modern and accurate name.
Don't use XPC for Adobe Reader.

(WebKit::PluginProcessProxy::platformGetLaunchOptions):
Move the check for plugins that need an executable heap into shouldUseXPC.

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

5 years agoREGRESSION(r168471): Update the builder names on the scheduler list.
commit-queue@webkit.org [Thu, 8 May 2014 20:20:14 +0000 (20:20 +0000)]
REGRESSION(r168471): Update the builder names on the scheduler list.
https://bugs.webkit.org/show_bug.cgi?id=132699

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-08
Reviewed by Martin Robinson.

On r168471 I missed to update the builder names for the GTK build
bots on the AnyBranchScheduler type scheduler list of bots.

* BuildSlaveSupport/build.webkit.org-config/config.json:

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

5 years ago[iOS][WK2] Remove an incorrect assertion on asynchronous touch dispatch
benjamin@webkit.org [Thu, 8 May 2014 20:10:08 +0000 (20:10 +0000)]
[iOS][WK2] Remove an incorrect assertion on asynchronous touch dispatch
https://bugs.webkit.org/show_bug.cgi?id=132660

Reviewed by Enrica Casucci.

This assertion no longer make sense after r168393. Now the asynchronous behavior is maintained
until the last finger leaves the screen.

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

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

5 years agoWeb Inspector: Selecting frame in debugger sidebar doesn't reveal code
commit-queue@webkit.org [Thu, 8 May 2014 19:40:24 +0000 (19:40 +0000)]
Web Inspector: Selecting frame in debugger sidebar doesn't reveal code
https://bugs.webkit.org/show_bug.cgi?id=132112

Patch by Jono Wells <jonowells@apple.com> on 2014-05-08
Reviewed by Joseph Pecoraro.

WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar was checking
only one of the two content trees in the DebuggerSidebarPanel instance. Added
base getter elementIsSelected to NavigationSidebarPanel and extended it in
DebuggerSidebarPanel.

* UserInterface/Base/Main.js:
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): modified logic to check `selectedSidebarPanel.elementIsSelected`.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.get elementIsSelected): Checks breakpoint and call stack trees.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get elementIsSelected): Base implementation.

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

5 years agoFix the iOS build after r168476.
timothy_horton@apple.com [Thu, 8 May 2014 19:19:50 +0000 (19:19 +0000)]
Fix the iOS build after r168476.

* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing):

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

5 years agoWrap a new class definition with __has_include()
beidson@apple.com [Thu, 8 May 2014 19:15:18 +0000 (19:15 +0000)]
Wrap a new class definition with __has_include()
<rdar://problem/16852395> and https://bugs.webkit.org/show_bug.cgi?id=132694

Reviewed by Tim Horton.

* Misc/WebSharingServicePickerController.mm:

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

5 years ago[CSS Shapes] Shapes do not resolve dimensions specified in viewport units
bjonesbe@adobe.com [Thu, 8 May 2014 19:14:33 +0000 (19:14 +0000)]
[CSS Shapes] Shapes do not resolve dimensions specified in viewport units
https://bugs.webkit.org/show_bug.cgi?id=124052

Reviewed by Dirk Schulze.

Source/WebCore:
Viewport unit resolution doesn't work unless the RenderView is passed
down into the floatValueForLength methods. All this does is plumb down
a RenderView in all of these cases.

Tests: css3/masking/clip-path-polygon-viewport-units.html
       fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html

* css/BasicShapeFunctions.cpp:
(WebCore::floatValueForCenterCoordinate):
* css/BasicShapeFunctions.h:
* css/LengthFunctions.cpp:
(WebCore::floatSizeForLengthSize):
* css/LengthFunctions.h:
* rendering/ClipPathOperation.h:
(WebCore::ShapeClipPathOperation::pathForReferenceRect):
(WebCore::BoxClipPathOperation::pathForReferenceRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::computedShape):
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCircle::floatValueForRadiusInBox):
(WebCore::BasicShapeCircle::path):
(WebCore::BasicShapeEllipse::floatValueForRadiusInBox):
(WebCore::BasicShapeEllipse::path):
(WebCore::BasicShapePolygon::path):
(WebCore::floatSizeForLengthSize):
(WebCore::BasicShapeInset::path):
* rendering/style/BasicShapes.h:
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

LayoutTests:
* css3/masking/clip-path-polygon-viewport-units-expected.html: Added.
* css3/masking/clip-path-polygon-viewport-units.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html: Added.

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

5 years agoSSA conversion should delete PhantomLocals for captured variables
fpizlo@apple.com [Thu, 8 May 2014 19:07:45 +0000 (19:07 +0000)]
SSA conversion should delete PhantomLocals for captured variables
https://bugs.webkit.org/show_bug.cgi?id=132693

Reviewed by Mark Hahnenberg.

* dfg/DFGCommon.cpp:
(JSC::DFG::startCrashing): Parallel JIT and a JIT bug means that we man dump IR in parallel. This is the workaround. This patch uses it in all of the places where we dump IR and crash.
* dfg/DFGCommon.h:
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge): Use the workaround.
* dfg/DFGLivenessAnalysisPhase.cpp:
(JSC::DFG::LivenessAnalysisPhase::run): Use the workaround.
* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run): Fix the bug - it's true that PhantomLocal for captured variables doesn't need anything done to it, but it's wrong that we didn't delete it outright.
* dfg/DFGValidate.cpp: Use the workaround.
* tests/stress/phantom-local-captured-but-not-flushed-to-ssa.js: Added.
(foo):
(bar):

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

5 years agoCue display events may not be registered during page load.
bfulgham@apple.com [Thu, 8 May 2014 19:03:38 +0000 (19:03 +0000)]
Cue display events may not be registered during page load.
https://bugs.webkit.org/show_bug.cgi?id=132696
<rdar://problem/16652874>

Reviewed by Eric Carlson.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleTextTrackAdd): Don't register
for 'cuechange' events anymore.
(Controller.prototype.handleTextTrackRemove): Ditto.
(Controller.prototype.updateCaptionContainer): Reduce CSS
churn by not adding/removing 'Hidden' class every time a
new cue is processed. Only do this when transitioning
track display state.
(Controller.prototype.handleTextTrackCueChange): Deleted.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateTextTrackDisplay): Call
'updateTextTrackContainer' directory when processing cues,
rather than trampolining through the JS layer.

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

5 years agoMake BlobDataFileReference manage its sandbox extension
ap@apple.com [Thu, 8 May 2014 18:33:18 +0000 (18:33 +0000)]
Make BlobDataFileReference manage its sandbox extension
https://bugs.webkit.org/show_bug.cgi?id=132689

Reviewed by Anders Carlsson.

Source/WebCore:
* WebCore.exp.in: Export symbols that are now needed in WebKit2 to subclass BlobDataFileReference.

* fileapi/ThreadableBlobRegistry.cpp: (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
* platform/network/BlobData.cpp: (WebCore::BlobData::appendFile):
* platform/network/BlobData.h: (WebCore::BlobDataItem::BlobDataItem):
* platform/network/BlobRegistry.h:
* platform/network/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::registerFileBlobURL):
* platform/network/BlobRegistryImpl.h:
BlobRegistry now takes a BlobDataFileReference and not a path, so that WebKit2
could pass objects that include sandbox extensions.

* platform/network/BlobDataFileReference.h:
* platform/network/BlobDataFileReference.cpp:
(WebCore::BlobDataFileReference::~BlobDataFileReference): Added a virtual destructor.
(WebCore::BlobDataFileReference::size): We now record the size and modification time right away, no need to lazily calculate them.
(WebCore::BlobDataFileReference::expectedModificationTime): Ditto.
(WebCore::BlobDataFileReference::startTrackingModifications): Record time and size
(since it's a single call). However, size calculation will become complicated again soon.
(WebCore::BlobDataFileReference::prepareForFileAccess): A hook for subclasses.
(WebCore::BlobDataFileReference::revokeFileAccess): Ditto.
(WebCore::BlobDataFileReference::computeFileSystemData): Deleted.

Source/WebKit2:
* CMakeLists.txt:
* PlatformGTK.cmake:
* WebKit2.xcodeproj/project.pbxproj:
Added BlobDataFileReferenceWithSandboxExtension.

* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerFileBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
(WebKit::NetworkBlobRegistry::unregisterBlobURL):
(WebKit::NetworkBlobRegistry::connectionToWebProcessDidClose):
(WebKit::NetworkBlobRegistry::filesInBlob):
(WebKit::NetworkBlobRegistry::sandboxExtensions): Deleted.
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
We no longer track sandbox extensions here. Instead, provide a way to get files
for a blob, which contain extensions and can allow access to themselves.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::consumeSandboxExtensions):
(WebKit::NetworkResourceLoader::invalidateSandboxExtensions):
* NetworkProcess/NetworkResourceLoader.h:
Allow/revoke access to files in blob, just like we do for explicitly passed extensions.

* Shared/BlobDataFileReferenceWithSandboxExtension.cpp: Added.
(WebKit::BlobDataFileReferenceWithSandboxExtension::BlobDataFileReferenceWithSandboxExtension):
(WebKit::BlobDataFileReferenceWithSandboxExtension::~BlobDataFileReferenceWithSandboxExtension):
(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):
* Shared/BlobDataFileReferenceWithSandboxExtension.h: Added.
(WebKit::BlobDataFileReferenceWithSandboxExtension::create):
A subclass of BlobDataFileReference that also contains a sandbox extension. NetworkProcess
always uses it in BlobRegistryImpl.

* WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::registerFileBlobURL):
* WebProcess/FileAPI/BlobRegistryProxy.h:
Updated for BlobRegistry interface changes. BlobRegistryProxy doesn't really need
a BlobDataFileReference here, as it only uses a path, but it needs to implement the same interface
as BlobRegistryImpl.

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

5 years ago"shouldKeepCurrentBackForwardListItemInList" API should pass clientInfo to the callback
beidson@apple.com [Thu, 8 May 2014 18:24:04 +0000 (18:24 +0000)]
"shouldKeepCurrentBackForwardListItemInList" API should pass clientInfo to the callback
<rdar://problem/16855357> and https://bugs.webkit.org/show_bug.cgi?id=132692

Reviewed by Tim Horton.

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

Tools:
* TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp:
(TestWebKitAPI::shouldKeepCurrentBackForwardListItemInList):

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

5 years agoAdd support for drawFocusIfNeeded
cabanier@adobe.com [Thu, 8 May 2014 17:57:09 +0000 (17:57 +0000)]
Add support for drawFocusIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=132584

Reviewed by Dirk Schulze.

Source/WebCore:
The drawFocusIfNeeded API will draw a focus ring if the element that is passed
in is focused and a child element of the canvas.

Test: fast/canvas/draw-focus-if-needed.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:

LayoutTests:
* fast/canvas/draw-focus-if-needed-expected.txt: Added.
* fast/canvas/draw-focus-if-needed.html: Added.

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

5 years agoREGRESSION(r168471): Duplicate builddirs broke the build master.
commit-queue@webkit.org [Thu, 8 May 2014 17:50:42 +0000 (17:50 +0000)]
REGRESSION(r168471): Duplicate builddirs broke the build 
https://bugs.webkit.org/show_bug.cgi?id=132688

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-08
Reviewed by Carlos Garcia Campos.

Rename the builddirs of the new GTK bots introduced on r168471 to
be unique. Otherwise the master will break.

* BuildSlaveSupport/build.webkit.org-config/config.json:

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

5 years ago[GTK] webkitdom script assumes mkdir only fails because the directory already exists
carlosgc@webkit.org [Thu, 8 May 2014 17:32:25 +0000 (17:32 +0000)]
[GTK] webkitdom script assumes mkdir only fails because the directory already exists
https://bugs.webkit.org/show_bug.cgi?id=132674

Reviewed by Philippe Normand.

Only ignore mkdir failure when exception is raised because the
file already exists and it's a directory.

* gtk/webkitdom.py:
(write_doc_files):

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

5 years ago[iOS WebKit2] Can't activate text fields on Facebook
antti@apple.com [Thu, 8 May 2014 16:42:35 +0000 (16:42 +0000)]
[iOS WebKit2] Can't activate text fields on Facebook
https://bugs.webkit.org/show_bug.cgi?id=132682

Reviewed by Enrica Casucci.

Source/WebCore:
* page/DOMTimer.cpp:
(WebCore::DOMTimer::fired):

    The isDocument() test here had reversed in the merge breaking content change observer callback.

Source/WebKit2:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::observedContentChange):

    Implement content change observer callback.

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

    If the event gets canceled by a potential change (a started short-duration timer)
    save the position and node so we can continue later.

(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):

    If it turns out the observed timer changed nothing continue the click event.

(WebKit::WebPage::completeSyntheticClick):

    Factored click event dispatch part of handleSyntheticClick here.

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

5 years ago[CSS Blending] Removing -webkit- prefixes for mix-blend-mode and isolation from layou...
commit-queue@webkit.org [Thu, 8 May 2014 16:19:56 +0000 (16:19 +0000)]
[CSS Blending] Removing -webkit- prefixes for mix-blend-mode and isolation from layout tests.
https://bugs.webkit.org/show_bug.cgi?id=132680

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-08
Reviewed by Mihnea Ovidenie.

* css3/blending/blend-mode-accelerated-parent-overflow-hidden.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.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-overflow.html:
* css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html:
* css3/blending/repaint/blend-mode-turn-off-isolation.html:
* css3/blending/svg-blend-color-burn.html:
* css3/blending/svg-blend-darken.html:
* css3/blending/svg-blend-difference.html:
* css3/blending/svg-blend-exclusion.html:
* css3/blending/svg-blend-layer-mask.html:
* css3/blending/svg-blend-lighten.html:
* css3/blending/svg-blend-normal.html:
* css3/blending/svg-blend-overlay.html:
* css3/blending/svg-isolation-default.html:
* css3/blending/svg-isolation-simple.html:

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

5 years ago[WK2][GTK] Split the 64-bit GTK buildbots in Build and Test.
commit-queue@webkit.org [Thu, 8 May 2014 16:08:43 +0000 (16:08 +0000)]
[WK2][GTK] Split the 64-bit GTK buildbots in Build and Test.
https://bugs.webkit.org/show_bug.cgi?id=131358

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-08
Reviewed by Carlos Garcia Campos.

Current 64-bit GTK build bots (Release and Debug) not only test
the build, but run all tests. Split each one of the bots in
BuildOnly and TestWebKit2.

This will allow us to have a better overview of the status of
the GTK port.

Original patch from Sergio Villar Senin <svillar@igalia.com>

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
* Scripts/webkitpy/port/builders.py:
* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(TestRebaselineTest.test_baseline_directory):
* TestResultServer/static-dashboards/builders.jsonp:
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:
(resetGlobals):
* TestResultServer/static-dashboards/loader_unittests.js:

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

5 years ago[EFL] Rebaseline after enabling new multi-column mode (r168046)
commit-queue@webkit.org [Thu, 8 May 2014 12:26:21 +0000 (12:26 +0000)]
[EFL] Rebaseline after enabling new multi-column mode (r168046)
https://bugs.webkit.org/show_bug.cgi?id=132679

Unreviewed gardening.

Patch by Krzysztof Wolanski <k.wolanski@samsung.com> on 2014-05-08

* platform/efl/css3/unicode-bidi-isolate-basic-expected.png:
* platform/efl/css3/unicode-bidi-isolate-basic-expected.txt:
* platform/efl/fast/block/float/float-not-removed-from-next-sibling4-expected.png:
* platform/efl/fast/block/float/float-not-removed-from-next-sibling4-expected.txt:
* platform/efl/fast/line-grid/line-grid-inside-columns-expected.png:
* platform/efl/fast/line-grid/line-grid-inside-columns-expected.txt:
* platform/efl/fast/line-grid/line-grid-into-columns-expected.txt:
* platform/efl/fast/multicol/block-axis-horizontal-bt-expected.png:
* platform/efl/fast/multicol/block-axis-horizontal-bt-expected.txt:
* platform/efl/fast/multicol/block-axis-horizontal-tb-expected.png:
* platform/efl/fast/multicol/block-axis-horizontal-tb-expected.txt:
* platform/efl/fast/multicol/block-axis-vertical-lr-expected.png:
* platform/efl/fast/multicol/block-axis-vertical-lr-expected.txt:
* platform/efl/fast/multicol/block-axis-vertical-rl-expected.txt:
* platform/efl/fast/multicol/border-padding-pagination-expected.png:
* platform/efl/fast/multicol/border-padding-pagination-expected.txt:
* platform/efl/fast/multicol/client-rects-expected.png:
* platform/efl/fast/multicol/client-rects-expected.txt:
* platform/efl/fast/multicol/client-rects-spanners-complex-expected.txt: Added.
* platform/efl/fast/multicol/client-rects-spanners-expected.txt: Added.
* platform/efl/fast/multicol/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/column-count-with-rules-expected.txt:
* platform/efl/fast/multicol/column-rules-expected.png:
* platform/efl/fast/multicol/column-rules-expected.txt:
* platform/efl/fast/multicol/column-rules-stacking-expected.txt:
* platform/efl/fast/multicol/columns-shorthand-parsing-expected.txt:
* platform/efl/fast/multicol/float-avoidance-expected.txt:
* platform/efl/fast/multicol/float-multicol-expected.txt:
* platform/efl/fast/multicol/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/float-paginate-empty-lines-expected.txt:
* platform/efl/fast/multicol/float-paginate-expected.txt:
* platform/efl/fast/multicol/layers-in-multicol-expected.txt:
* platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
* platform/efl/fast/multicol/margin-collapse-expected.txt:
* platform/efl/fast/multicol/max-height-columns-block-expected.png:
* platform/efl/fast/multicol/max-height-columns-block-expected.txt:
* platform/efl/fast/multicol/nested-columns-expected.png:
* platform/efl/fast/multicol/nested-columns-expected.txt:
* platform/efl/fast/multicol/newmulticol/client-rects-expected.txt: Added.
* platform/efl/fast/multicol/overflow-across-columns-expected.png:
* platform/efl/fast/multicol/overflow-across-columns-expected.txt:
* platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.png:
* platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
* platform/efl/fast/multicol/overflow-unsplittable-expected.png:
* platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
* platform/efl/fast/multicol/paginate-block-replaced-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-bt-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-lr-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-rl-expected.txt:
* platform/efl/fast/multicol/pagination/BottomToTop-tb-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-bt-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-lr-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-rl-expected.txt:
* platform/efl/fast/multicol/pagination/LeftToRight-tb-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-bt-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-lr-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-rl-expected.txt:
* platform/efl/fast/multicol/pagination/RightToLeft-tb-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-bt-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-lr-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-rl-expected.txt:
* platform/efl/fast/multicol/pagination/TopToBottom-tb-expected.txt:
* platform/efl/fast/multicol/positioned-split-expected.txt:
* platform/efl/fast/multicol/positive-leading-expected.png:
* platform/efl/fast/multicol/positive-leading-expected.txt:
* platform/efl/fast/multicol/scrolling-column-rules-expected.txt: Added.
* platform/efl/fast/multicol/scrolling-overflow-expected.png:
* platform/efl/fast/multicol/scrolling-overflow-expected.txt:
* platform/efl/fast/multicol/shrink-to-column-height-for-pagination-expected.txt:
* platform/efl/fast/multicol/single-line-expected.txt:
* platform/efl/fast/multicol/span/anonymous-before-child-parent-crash-expected.png:
* platform/efl/fast/multicol/span/anonymous-before-child-parent-crash-expected.txt:
* platform/efl/fast/multicol/span/anonymous-split-block-crash-expected.png:
* platform/efl/fast/multicol/span/anonymous-split-block-crash-expected.txt:
* platform/efl/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.png:
* platform/efl/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
* platform/efl/fast/multicol/span/clone-flexbox-expected.txt:
* platform/efl/fast/multicol/span/clone-summary-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
* platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-columns-child-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-inline-block-child-expected.txt:
* platform/efl/fast/multicol/span/span-margin-collapsing-expected.txt:
* platform/efl/fast/multicol/table-margin-collapse-expected.txt:
* platform/efl/fast/multicol/table-vertical-align-expected.txt:
* platform/efl/fast/multicol/unsplittable-inline-block-expected.txt:
* platform/efl/fast/multicol/vertical-lr/border-padding-pagination-expected.png:
* platform/efl/fast/multicol/vertical-lr/border-padding-pagination-expected.txt:
* platform/efl/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/vertical-lr/column-count-with-rules-expected.txt:
* platform/efl/fast/multicol/vertical-lr/column-rules-expected.png:
* platform/efl/fast/multicol/vertical-lr/column-rules-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-avoidance-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-multicol-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-paginate-expected.txt:
* platform/efl/fast/multicol/vertical-lr/nested-columns-expected.png:
* platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt:
* platform/efl/fast/multicol/vertical-lr/unsplittable-inline-block-expected.txt:
* platform/efl/fast/multicol/vertical-rl/border-padding-pagination-expected.png:
* platform/efl/fast/multicol/vertical-rl/border-padding-pagination-expected.txt:
* platform/efl/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
* platform/efl/fast/multicol/vertical-rl/column-count-with-rules-expected.txt:
* platform/efl/fast/multicol/vertical-rl/column-rules-expected.png:
* platform/efl/fast/multicol/vertical-rl/column-rules-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-avoidance-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-multicol-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-paginate-expected.txt:
* platform/efl/fast/multicol/vertical-rl/nested-columns-expected.txt:
* platform/efl/fast/multicol/vertical-rl/rule-style-expected.txt:
* platform/efl/fast/multicol/vertical-rl/unsplittable-inline-block-expected.txt:
* platform/efl/fast/overflow/paged-x-div-expected.txt:
* platform/efl/fast/overflow/paged-x-div-with-column-gap-expected.txt:
* platform/efl/fast/overflow/paged-x-on-root-expected.png:
* platform/efl/fast/overflow/paged-x-on-root-expected.txt:
* platform/efl/fast/overflow/paged-x-with-column-gap-expected.png:
* platform/efl/fast/overflow/paged-x-with-column-gap-expected.txt:
* platform/efl/fast/overflow/paged-y-div-expected.txt:
* platform/efl/fast/overflow/paged-y-on-root-expected.png:
* platform/efl/fast/overflow/paged-y-on-root-expected.txt:
* platform/efl/fast/repaint/multicol-repaint-expected.png:
* platform/efl/fast/repaint/multicol-repaint-expected.txt:

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

5 years agoReplace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
svillar@igalia.com [Thu, 8 May 2014 10:59:17 +0000 (10:59 +0000)]
Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
https://bugs.webkit.org/show_bug.cgi?id=132647

Reviewed by Darin Adler.

* svg/SVGAElement.cpp:
(WebCore::SVGAElement::isSupportedAttribute):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::isSupportedAttribute):
* svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::isSupportedAttribute):
* svg/SVGAnimatedLength.cpp:
(WebCore::sharedSVGLength):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isSupportedAttribute):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::isSupportedAttribute):
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::isSupportedAttribute):
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::isSupportedAttribute):
* svg/SVGElement.cpp:
(WebCore::SVGElement::instancesForElement):
(WebCore::SVGElement::childShouldCreateRenderer):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::isSupportedAttribute):
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::isSupportedAttribute):
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::isSupportedAttribute):
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::isSupportedAttribute):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::isSupportedAttribute):
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::isSupportedAttribute):
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::isSupportedAttribute):
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::isSupportedAttribute):
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::isSupportedAttribute):
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::isSupportedAttribute):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::isSupportedAttribute):
(WebCore::SVGFilterElement::childShouldCreateRenderer):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::isSupportedAttribute):
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::isSupportedAttribute):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::isSupportedAttribute):
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::isSupportedAttribute):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::isSupportedAttribute):
* svg/SVGLength.cpp:
(WebCore::SVGLength::lengthModeForAnimatedLengthAttribute):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::isSupportedAttribute):
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::isSupportedAttribute):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::isSupportedAttribute):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::isSupportedAttribute):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::isSupportedAttribute):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::isSupportedAttribute):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::isSupportedAttribute):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::isSupportedAttribute):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::isSupportedAttribute):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::isSupportedAttribute):
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::isSupportedAttribute):
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::isSupportedAttribute):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::isSupportedAttribute):
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::isSupportedAttribute):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::isSupportedAttribute):
* svg/SVGTests.cpp:
(WebCore::SVGTests::attributeToPropertyMap):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthAnimated):
(WebCore::SVGTextContentElement::isSupportedAttribute):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::isSupportedAttribute):
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::isSupportedAttribute):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::isSupportedAttribute):
(WebCore::isDisallowedElement):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::isSupportedAttribute):

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

5 years ago[CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
commit-queue@webkit.org [Thu, 8 May 2014 10:35:54 +0000 (10:35 +0000)]
[CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
https://bugs.webkit.org/show_bug.cgi?id=132677

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-08
Reviewed by Dirk Schulze.

No new tests required.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
(WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
(WebCore::RenderLayer::updateDescendantDependentFlags):
hasUnisolatedBlendingDescendants -> hasNotIsolatedBlendingDescendants
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
* rendering/RenderLayer.h:
m_hasUnisolatedBlendingDescendants -> m_hasNotIsolatedBlendingDescendants
m_hasUnisolatedBlendingDescendantsStatusDirty -> m_hasNotIsolatedBlendingDescendantsStatusDirty
hasUnisolatedBlendingDescendants() -> hasNotIsolatedBlendingDescendants()
hasUnisolatedBlendingDescendantsStatusDirty() -> hasNotIsolatedBlendingDescendantsStatusDirty()
m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
hasUnisolatedCompositedBlendingDescendants() -> hasNotIsolatedCompositedBlendingDescendants()
setHasUnisolatedCompositedBlendingDescendants() -> setHasNotIsolatedCompositedBlendingDescendants
* rendering/RenderLayerCompositor.cpp:
(WebCore::CompositingState::CompositingState):
m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

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

5 years ago[GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
calvaris@igalia.com [Thu, 8 May 2014 10:28:37 +0000 (10:28 +0000)]
[GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
https://bugs.webkit.org/show_bug.cgi?id=132329

Reviewed by Eric Carlson.

Source/WebCore:
GTK port needed to define what happened with live stream media
controls. Now we disable and dim the timeline and tweak the
timers.

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

* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.configureControls): Moved logic from
setControlsType and changed to use an early return.
(ControllerGtk.prototype.reconnectControls): Redefined to just
configure the controls.
(ControllerGtk.prototype.handlePlay): If stream is live we don't
activate the current time just in case.
(ControllerGtk.prototype.updateDuration): Calls the superclass and
sets timeline.max to 0.
(ControllerGtk.prototype.setControlsType): Deleted.
(ControllerGtk.prototype.setIsLive): Configures controls and
disables the timeline if stream is live.
* css/mediaControlsGtk.css:
(audio::-webkit-media-controls-timeline[disabled])
(video::-webkit-media-controls-timeline[disabled]): Dimmed the
timeline by setting opacity to 0.3.

LayoutTests:
Tweaked test, created GTK results, unskipped in GTK and moved the
current general expectations to be mac only.

* http/tests/media/hls/video-controls-live-stream-expected.txt:
Moved.
* http/tests/media/hls/video-controls-live-stream.html: Dump tree
and check status of the timelime.
* media/media-controls.js:
(dumpMediaControlsTree): Added to dump the shadow dom tree.
* platform/gtk/TestExpectations: Unskipped video-controls-live-stream.
* platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt: Added.
* platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
Moved from
LayoutTests/http/tests/media/hls/video-controls-live-stream-expected.txt
and rebaselined.

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

5 years ago[CSS Regions] Content overflowing a fixed positioned region is clipped
mihnea@adobe.com [Thu, 8 May 2014 08:42:44 +0000 (08:42 +0000)]
[CSS Regions] Content overflowing a fixed positioned region is clipped
https://bugs.webkit.org/show_bug.cgi?id=118607

Reviewed by Andrei Bucur.

Fixed by the overflow in regions work, add test to prevent future regressions.

* fast/regions/fixed-pos-region-overflow-content-expected.html: Added.
* fast/regions/fixed-pos-region-overflow-content.html: Added.

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

5 years ago[CSS Blending] Changing isolation CSS property should not trigger repaint in RenderSt...
commit-queue@webkit.org [Thu, 8 May 2014 08:16:31 +0000 (08:16 +0000)]
[CSS Blending] Changing isolation CSS property should not trigger repaint in RenderStyle::changeRequiresLayerRepaint
https://bugs.webkit.org/show_bug.cgi?id=131436

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-08
Reviewed by Dirk Schulze.

Source/WebCore:
The isolation:isolate property will create a stacking context. This is done in
StyleResolver::adjustRenderStyle where z-index is forced to 0.
If the element is already a stacking context for any other reason,
changing the isolation flag should not have any effect.

Tests: css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html
       css3/blending/repaint/blend-mode-turn-off-isolation.html

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayerRepaint):
do not request repaint if isolation has changed.

LayoutTests:
* css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt: Added.
* css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
* css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html: Added.
* css3/blending/repaint/blend-mode-turn-off-isolation.html: Added.

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

5 years agoREGRESSION (r167652): SelectionState is not set properly for non leaf objects in...
rego@igalia.com [Thu, 8 May 2014 08:05:58 +0000 (08:05 +0000)]
REGRESSION (r167652): SelectionState is not set properly for non leaf objects in pages with regions
https://bugs.webkit.org/show_bug.cgi?id=132493

Reviewed by David Hyatt.

Source/WebCore:
Non selection leaf elements were not included in the selection ranges,
that was causing that their selection state was not set properly and
when one of the element was removed as it was marked as SelectionNone
current selection was not removed.

Due to this fix, the regression detected in bug #131982 arose again.
Reverted changes from r167675 and reopened bug as previous fix was not
right. Updated TestExpectations accordingly.

Test: fast/regions/selection/crash-select-all.html

* rendering/RenderView.cpp:
(WebCore::RenderView::splitSelectionBetweenSubtrees): We need to include
non selection leafs in the range, otherwise we won't be marking
selection state of some elements properly.

LayoutTests:
* TestExpectations: Marked
fast/regions/cssom/region-range-for-box-crash.html as crashing on
debug due to regression detected in bug #131982.
* fast/regions/selection/crash-select-all-expected.txt: Added.
* fast/regions/selection/crash-select-all.html: Added.

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

5 years ago[CSS Shapes] Can't select content within the area of the floating box when clip-path...
zoltan@webkit.org [Thu, 8 May 2014 07:57:10 +0000 (07:57 +0000)]
[CSS Shapes] Can't select content within the area of the floating box when clip-path is applied
https://bugs.webkit.org/show_bug.cgi?id=131375

Reviewed by Dirk Schulze.

Source/WebCore:
According to http://www.w3.org/TR/css-masking-1/, the clipped part of the element should
not have pointer event dispatching. So add this logic to RenderBlock::nodeAtPoint. This
fixes the bug as it disallows selection on any clipped parts.

I implemented the proper selection for the various CSS box types and added testing
for them. Also, I made and run performance tests for exposing mouse events over the
clipped/non-clipped area, which results can be seen in bugzilla.

Based on the patch made by Rob Buis <rob.buis@samsung.com>
Blink revision: http://src.chromium.org/viewvc/blink?view=revision&revision=172619

Tests: fast/masking/clip-path-selection.html
       fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html

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

LayoutTests:
* fast/masking/clip-path-selection-expected.txt: Added.
* fast/masking/clip-path-selection.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-clip-path-selection-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html: Added.

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

5 years ago[CSS Blending] Blending doesn't work if the parent stacking context is not a self...
commit-queue@webkit.org [Thu, 8 May 2014 05:42:21 +0000 (05:42 +0000)]
[CSS Blending] Blending doesn't work if the parent stacking context is not a self painting layer
https://bugs.webkit.org/show_bug.cgi?id=130891

Patch by Ion Rosca <rosca@adobe.com> on 2014-05-07
Reviewed by Dean Jackson.

Source/WebCore:
The stacking context layers having unisolated blending descendants should be able
to create transparency layers or to become composited in order to restrict blending
content to accessing the information outside the current stacking context.
Some layers are not self painting layers and these layers cannot crate transparency
layers and cannot be composited, thus they are not able to isolate blending descendants
when it's required.

The solution in this patch is to make a layer isSelfPaintingLayer when
it needs to isolate blending descendants (hasUnisolatedBlendingDescendants).

Tests: css3/blending/blend-mode-isolation-accelerated-overflow-hidden.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

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
When hasUnisolatedBlendingDescendants is set we make sure that isSelfPaintingLayer flag is set too.
(WebCore::RenderLayer::updateDescendantDependentFlags):
The flags might be read or changed while walking the descendants, so we don't want to reset
them before traversing the tree.
(WebCore::RenderLayer::shouldBeSelfPaintingLayer):
Adding isolatesBlending() condition for a layer to be self painting.
* rendering/RenderLayer.h:
Removing ASSERT from hasUnisolatedBlendingDescendants(). It crashes in minibrowser
and in layout tests when painting contents. Similar bugs on other flags: #71044, #71277.
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleDidChange):
Telling ancestors that blend mode property has been removed from CSS when the layer for
this element is going to be removed; styleChanged will not be called anymore.

LayoutTests:
Removed position:relative which forced tests to avoid this bug.
* css3/blending/blend-mode-accelerated-parent-overflow-hidden.html:
* css3/blending/blend-mode-clip-accelerated-blending-canvas.html:
* css3/blending/blend-mode-clip-accelerated-blending-child.html:
* css3/blending/blend-mode-clip-accelerated-blending-with-siblings.html:
* css3/blending/blend-mode-clip-accelerated-transformed-blending.html:

New tests:
* css3/blending/blend-mode-isolation-accelerated-overflow-hidden-expected.txt: Added.
* css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html: Added.
* css3/blending/blend-mode-isolation-overflow-hidden-expected.html: Added.
* css3/blending/blend-mode-isolation-overflow-hidden.html: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer-expected.txt: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer1-expected.txt: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer2-expected.txt: Added.
* css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html: Added.
* css3/blending/blend-mode-isolation-turn-on-self-painting-layer-expected.txt: Added.
* css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html: Added.

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

5 years agoUnreviewed, rolling out r168451.
commit-queue@webkit.org [Thu, 8 May 2014 04:10:21 +0000 (04:10 +0000)]
Unreviewed, rolling out r168451.
https://bugs.webkit.org/show_bug.cgi?id=132670

Not a speed-up, just do what other compilers do. (Requested by
kling on #webkit).

Reverted changeset:

"[X86] Emit BT instruction for single-bit tests."
https://bugs.webkit.org/show_bug.cgi?id=132650
http://trac.webkit.org/changeset/168451

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

5 years agoDragging text from one paragraph to another does not render as expected
mmaxfield@apple.com [Thu, 8 May 2014 02:51:55 +0000 (02:51 +0000)]
Dragging text from one paragraph to another does not render as expected
https://bugs.webkit.org/show_bug.cgi?id=132633

Reviewed by Darin Adler and Ryosuke Niwa.

Source/WebCore:
When we are dragging and dropping into a content editable field, we detect
if we are trying to put a <p> into an existing <p>, and if so, split the
outer <p> and insert the new <p> as its sibling. However, the outer <p>
might not be editable, so we don't want to do any splitting and inserting
at that location.

Test: editing/pasteboard/drag-drop-paragraph-crasher.html

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

LayoutTests:
The problem occurs when dragging text that includes a <p> into an editable
area that has a <p> as a parent.

* editing/pasteboard/drag-drop-paragraph-crasher-expected.txt: Added.
* editing/pasteboard/drag-drop-paragraph-crasher.html: Added.

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

5 years agoSource/JavaScriptCore: Make Executable::clearCode() actually clear all of the entrypo...
fpizlo@apple.com [Thu, 8 May 2014 02:35:22 +0000 (02:35 +0000)]
Source/JavaScriptCore: Make Executable::clearCode() actually clear all of the entrypoints, and
clean up some other FTL-related calling convention stuff.
<rdar://problem/16720172>

Rubber stamped by Mark Hahnenberg.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::Worklist):
(JSC::DFG::Worklist::finishCreation):
(JSC::DFG::Worklist::create):
(JSC::DFG::ensureGlobalDFGWorklist):
(JSC::DFG::ensureGlobalFTLWorklist):
* dfg/DFGWorklist.h:
* heap/CodeBlockSet.cpp:
(JSC::CodeBlockSet::dump):
* heap/CodeBlockSet.h:
* runtime/Executable.cpp:
(JSC::ExecutableBase::clearCode):

Source/WTF: UNREACHABLE_FOR_PLATFORM() is meant to be a release crash.

Rubber stamped by Mark Hahnenberg..

* wtf/Assertions.h:
(UNREACHABLE_FOR_PLATFORM):

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

5 years ago[CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored...
gyuyoung.kim@samsung.com [Thu, 8 May 2014 01:42:17 +0000 (01:42 +0000)]
[CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored properly in a back/forward load
https://bugs.webkit.org/show_bug.cgi?id=126022

Reviewed by Benjamin Poulain.

Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.

Source/WebCore:
When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.

This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation by calling delegatedScrollRequested()
directly when delegatesScrolling() is on.

* page/Page.cpp:
(WebCore::Page::setPageScaleFactor): TILED_BACKING_STORE and delegateScrolling are enabled, we pass new scroll position to WK2 though
delegateScrolling is disabled.
* platform/ScrollView.cpp: delegatedScrollRequested() call is moved from ScrollView::setScrollPosition() to Page::setPageScaleFactor().
(WebCore::ScrollView::setScrollPosition):

Source/WebKit2:
When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.

This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation.

* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::didCommitLoadForMainFrame):

Tools:
Added an unit test case to check if scroll position and scale are restored properly.

* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewRestoreZoomAndScrollBackForward.cpp: Added.
(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::didChangeContentsPosition):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward1.html: Added.
* TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward2.html: Added.

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

5 years agoUsing a fill pattern much larger than actual canvas reliably segfaults browser
dino@apple.com [Thu, 8 May 2014 01:30:21 +0000 (01:30 +0000)]
Using a fill pattern much larger than actual canvas reliably segfaults browser
https://bugs.webkit.org/show_bug.cgi?id=132635

Reviewed by Simon Fraser.

Source/WebCore:
Make sure that createPattern checks that the canvas it is about to use
as a source is valid.

Test: fast/canvas/pattern-too-large-to-create.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern): Check that the source canvas has
an ok ImageBuffer.

LayoutTests:
Test case that makes a huge canvas and tries to create a pattern out of it.

* fast/canvas/pattern-too-large-to-create-expected.html: Added.
* fast/canvas/pattern-too-large-to-create.html: Added.

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

5 years agoPut a better version of the assertion back, and add one when we ensureBackingStore.
simon.fraser@apple.com [Thu, 8 May 2014 01:16:53 +0000 (01:16 +0000)]
Put a better version of the assertion back, and add one when we ensureBackingStore.

Reviewed by Tim Horton.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
(WebKit::PlatformCALayerRemote::ensureBackingStore):

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

5 years agoThis assertion was wrong and fired every time. Remove it.
simon.fraser@apple.com [Thu, 8 May 2014 00:48:34 +0000 (00:48 +0000)]
This assertion was wrong and fired every time. Remove it.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

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

5 years ago[Win] Unreviewed 64-bit build fix.
bfulgham@apple.com [Thu, 8 May 2014 00:20:53 +0000 (00:20 +0000)]
[Win] Unreviewed 64-bit build fix.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
correct 64-bit symbol definitions.

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

5 years agoREGRESSION (r161429?): Frequent crashes on media/track/media-element-enqueue-event...
ggaren@apple.com [Thu, 8 May 2014 00:07:07 +0000 (00:07 +0000)]
REGRESSION (r161429?): Frequent crashes on media/track/media-element-enqueue-event-crash.html
https://bugs.webkit.org/show_bug.cgi?id=117756

Reviewed by Mark Hahnenberg.

Re-enabled this test because it doesn't seem to crash anymore.

* media/track/media-element-enqueue-event-crash.html: Reduced the number
of test runs because otherwise this test often times out.

* platform/mac/TestExpectations: Re-enable this test because I ran it
for about a minute on my Mac Pro without crashing.

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

5 years agoUse system defaults for hardware jpeg decoding
psolanki@apple.com [Wed, 7 May 2014 23:28:50 +0000 (23:28 +0000)]
Use system defaults for hardware jpeg decoding
https://bugs.webkit.org/show_bug.cgi?id=132661
<rdar://problem/11348201>

Reviewed by Tim Horton.

Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.

Source/WebCore:
* WebCore.exp.in:
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::acceleratedImageDecodingEnabled): Deleted.
(WebCore::ImageSource::setAcceleratedImageDecodingEnabled): Deleted.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::imageSourceOptions):

Source/WebKit/mac:
* WebView/WebView.mm:
(+[WebView _setAcceleratedImageDecoding:]):
(+[WebView _acceleratedImageDecoding]): Deleted.
* WebView/WebViewPrivate.h:

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

5 years ago[X86] Emit BT instruction for single-bit tests.
akling@apple.com [Wed, 7 May 2014 23:22:07 +0000 (23:22 +0000)]
[X86] Emit BT instruction for single-bit tests.
<https://webkit.org/b/132650>

Implement test-bit-and-branch slightly more efficiently by using
BT + JC/JNC instead of TEST + JZ/JNZ when we're only testing for
a single bit.

Reviewed by Michael Saboff.

* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::singleBitIndex):
(JSC::MacroAssemblerX86Common::branchTest32):
* assembler/X86Assembler.h:
(JSC::X86Assembler::bt_i8r):
(JSC::X86Assembler::bt_i8m):

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

5 years agoUse after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject...
stavila@adobe.com [Wed, 7 May 2014 22:48:31 +0000 (22:48 +0000)]
Use after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject::moveChildrenTo
https://bugs.webkit.org/show_bug.cgi?id=132625

Reviewed by David Hyatt.

Source/WebCore:
Fixed problem with dynamically inserting first letter elements.

Test: fast/multicol/newmulticol/first-letter-create.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::getFirstLetter):
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderBlock.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildrenTo):

LayoutTests:
Added test for special case which might cause use after free.

* fast/multicol/newmulticol/first-letter-create-expected.html: Added.
* fast/multicol/newmulticol/first-letter-create.html: Added.

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

5 years agoWK2: Programatic scroll requests during scroll or zoom animation to reveal focused...
enrica@apple.com [Wed, 7 May 2014 22:42:46 +0000 (22:42 +0000)]
WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
https://bugs.webkit.org/show_bug.cgi?id=132657
<rdar://problem/16468462>

Reviewed by Benjamin Poulain.

With the scrolling model we use on iOS, a programatic scroll
request can be received while we are still animating to reveal

Source/WebCore:
the focused input element. The WebProcess is unaware that the
scroll position is being changed in the UIProcess, and does not
honor the scroll request from JavaScript.
This is patch changes the behavior for clients using scroll delegates
to always send the scroll request to the UIProcess without checking
the current scroll position.

* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollPosition):
* platform/ScrollView.h:
(WebCore::ScrollView::inProgrammaticScroll):

Source/WebKit2:
the focused input element. Changing the scroll offset while animating
leads to unpredictable results. We now cancel the animation if
a programatic scroll request is received.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:WebCore::]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):

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

5 years ago[iOS WK2] Speculative fix for crash in PlatformCALayerRemote::recursiveBuildTransaction
simon.fraser@apple.com [Wed, 7 May 2014 22:15:08 +0000 (22:15 +0000)]
[iOS WK2] Speculative fix for crash in PlatformCALayerRemote::recursiveBuildTransaction
https://bugs.webkit.org/show_bug.cgi?id=132666

Reviewed by Tim Horton.

Crash reports suggest that owner() can be null. Assert and protect
against this.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

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

5 years agoREGRESSION(r166678): Dromaeo/cssquery-dojo.html crashes regularly.
mark.lam@apple.com [Wed, 7 May 2014 22:00:10 +0000 (22:00 +0000)]
REGRESSION(r166678): Dromaeo/cssquery-dojo.html crashes regularly.
<https://webkit.org/b/131356>

Reviewed by Geoffrey Garen.

The issue is that GC needs to be made aware of writes to m_inferredValue
in the VariableWatchpointSet, but was not.  As a result, if a JSCell*
is written to a VariableWatchpointSet m_inferredValue, and that JSCell
does not survive an eden GC shortly after, we will end up with a stale
JSCell pointer left in the m_inferredValue.

This issue can be detected more easily by running Dromaeo/cssquery-dojo.html
using DumpRenderTree with the VM heap in zombie mode.

The fix is to change VariableWatchpointSet m_inferredValue to type
WriteBarrier<Unknown> and ensure that VariableWatchpointSet::notifyWrite()
is executed by all the execution engines so that the WriteBarrier semantics
are honored.

We still check if the value to be written is the same as the one in the
inferredValue.  We'll by-pass calling the slow path notifyWrite() if the
values are the same.

* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
- need to pass the symbolTable to prepareToWatch() because it will be needed
  for instantiating the VariableWatchpointSet in prepareToWatch().

* bytecode/VariableWatchpointSet.h:
(JSC::VariableWatchpointSet::VariableWatchpointSet):
- VariableWatchpointSet now tracks its owner symbol table for its m_inferredValue
  write barrier, and yes, m_inferredValue is now of type WriteBarrier<Unknown>.
(JSC::VariableWatchpointSet::inferredValue):
(JSC::VariableWatchpointSet::invalidate):
(JSC::VariableWatchpointSet::finalizeUnconditionally):
(JSC::VariableWatchpointSet::addressOfInferredValue):
(JSC::VariableWatchpointSet::notifyWrite): Deleted.
* bytecode/VariableWatchpointSetInlines.h: Added.
(JSC::VariableWatchpointSet::notifyWrite):

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::cellConstant):
- Added an assert in case we try to make constants of zombified JSCells again.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- We now let the slow path handle the cases when the VariableWatchpointSet is
  in state ClearWatchpoint and IsWatched, and the slow path will ensure that
  we handle the needed write barrier semantics correctly.
  We will by-pass the slow path if the value being written is the same as the
  inferred value.

* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNotifyWrite):
- Let the slow path handle the cases when the VariableWatchpointSet is
  in state ClearWatchpoint and IsWatched.
  We will by-pass the slow path if the value being written is the same as the
  inferred value.

* heap/Heap.cpp:
(JSC::Zombify::operator()):
- Use a different value for the zombified bits (to distinguish it from 0xbbadbeef
  which is used everywhere else).
* heap/Heap.h:
(JSC::Heap::isZombified):
- Provide a convenience test function to check if JSCells are zombified.  This is
  currently only used in an assertion in the DFG bytecode parser, but the intent
  it that we'll apply this test in other strategic places later to help with early
  detection of usage of GC'ed objects when we run in zombie mode.

* jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_captured_mov):
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitNotifyWrite):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitNotifyWrite):
(JSC::JIT::emitSlow_op_put_to_scope):
- Let the slow path for notifyWrite handle the cases when the VariableWatchpointSet
  is in state ClearWatchpoint and IsWatched.
  We will by-pass the slow path if the value being written is the same as the
  inferred value.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
- Let the slow path for notifyWrite handle the cases when the VariableWatchpointSet
  is in state ClearWatchpoint and IsWatched.
  We will by-pass the slow path if the value being written is the same as the
  inferred value.

* runtime/CommonSlowPaths.cpp:

* runtime/JSCJSValue.h: Fixed some typos in the comments.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):
* runtime/SymbolTable.cpp:
(JSC::SymbolTableEntry::prepareToWatch):
(JSC::SymbolTableEntry::notifyWriteSlow):
* runtime/SymbolTable.h:
(JSC::SymbolTableEntry::notifyWrite):

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

5 years ago[Mac, iOS] REGRESSION: WK2 YouTube support
bfulgham@apple.com [Wed, 7 May 2014 21:59:51 +0000 (21:59 +0000)]
[Mac, iOS] REGRESSION: WK2 YouTube support
https://bugs.webkit.org/show_bug.cgi?id=132568
<rdar://problem/11464344>

Reviewed by Darin Adler.

Source/WebCore:
Move the custom YouTube loader code out of the WebFrameLoaderClient into a
PluginReplacement-based class.

* Modules/plugins/PluginReplacement.h:
(WebCore::PluginReplacement::supportsURL): New predicate so we can restrict
use of a plugin to a particular category of URLs.
* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement): Updated for new registrar signature.
* Modules/plugins/YouTubePluginReplacement.h: Added.
(WebCore::YouTubePluginReplacement::parentElement):
* Modules/plugins/YouTubePluginReplacement.cpp: Added.
(WebCore::YouTubePluginReplacement::registerPluginReplacement):
(WebCore::YouTubePluginReplacement::create):
(WebCore::YouTubePluginReplacement::supportsMimeType):
(WebCore::YouTubePluginReplacement::supportsFileExtension):
(WebCore::kit):
(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::createElementRenderer):
(WebCore::objectForKey):
(WebCore::YouTubePluginReplacement::installReplacement):
(WebCore::createYouTubeURL):
(WebCore::processAndCreateYouTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURL):
* WebCore.exp.in: Add new export from WebCore.
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLPlugInElement.cpp:
(WebCore::pluginReplacementForType): Update to also check that the URL is supported
by the plugin.
(WebCore::registeredPluginReplacements): Add new YouTubePluginReplacement to registry.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createElementRenderer): Remove custom YouTube code
now that this logic is handled in the plugin replacement class.
(WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Deleted.
* html/HTMLPlugInImageElement.h:
* html/shadow/YouTubeEmbedShadowElement.cpp:
(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
(WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Use correct pseudoID for the
plugin replacement architecture.
* html/shadow/YouTubeEmbedShadowElement.h:
* platform/mac/WebCoreNSURLExtras.h:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::unescapedQueryValue): Moved from WebKit/Misc/WebNSURLExtras.
(WebCore::queryKeysAndValues): Ditto.

Source/WebKit/mac:
* Misc/WebNSURLExtras.h:
* Misc/WebNSURLExtras.mm: Remove code that has been converted to C++
and added to YouTubePluginReplacement.cpp.
(-[NSURL _webkit_youTubeURL]):
(-[NSString _webkit_queryKeysAndValues]):
(createYouTubeURL): Deleted.
(-[NSString _webkit_unescapedQueryValue]): Deleted.

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

5 years ago<rdar://problem/16831276> [iOS] Unparenting a WKWebView that’s loading pauses it
mitz@apple.com [Wed, 7 May 2014 21:57:06 +0000 (21:57 +0000)]
<rdar://problem/16831276> [iOS] Unparenting a WKWebView that’s loading pauses it
https://bugs.webkit.org/show_bug.cgi?id=132659

Reviewed by Tim Horton.

* UIProcess/Cocoa/NavigationState.h: Added a member variable.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading): When transitioning into loading state,
acquire a background activity token. When transitioning out of loading state, dispose of
the token.

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

5 years ago[iOS] Acclerated overflow-scrolling broken in WK1
simon.fraser@apple.com [Wed, 7 May 2014 21:49:10 +0000 (21:49 +0000)]
[iOS] Acclerated overflow-scrolling broken in WK1
https://bugs.webkit.org/show_bug.cgi?id=132665
<rdar://problem/16842909>

Reviewed by Tim Horton.

r168301 added a CALayer delegate to disable implicit animations,
but for some layers we wrap them in UIViews (which are themselves
layer delegates), so bad things happened.

Fix by falling back to setting the null actions dictionary for
layers with custom scrolling behavior.

* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::updateCustomBehavior):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateScrollingLayers):

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

5 years agoHTMLMediaElement should exitFullscreen when view is removed from the window.
commit-queue@webkit.org [Wed, 7 May 2014 21:19:03 +0000 (21:19 +0000)]
HTMLMediaElement should exitFullscreen when view is removed from the window.
https://bugs.webkit.org/show_bug.cgi?id=132506

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-05-07
Reviewed by Tim Horton.

Source/WebCore:
* platform/ios/WebVideoFullscreenControllerAVKit.h:
Add -requestExitFullscreen.

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController requestExitFullscreen]):
Forward request onto WebVideoFullscreenModelMediaElement.

* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::requestExitFullscreen):
Add some protection here since this may be called when not in fullscreen.

Source/WebKit/mac:
* WebView/WebView.mm:
(-[WebView viewDidMoveToWindow]):
Request WebVideoFullscreenController to exitFullscreen when view is removed from the window.

Source/WebKit2:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
Request WebVideoFUllscreenManagerProxy to exitFullscreen when removed from the window.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Make requestExitFullscreen() public instead of private.

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

5 years agoImage menu is offset by the amount the view is scrolled
beidson@apple.com [Wed, 7 May 2014 21:17:53 +0000 (21:17 +0000)]
Image menu is offset by the amount the view is scrolled
<rdar://problem/16818966> and https://bugs.webkit.org/show_bug.cgi?id=132663

Reviewed by Tim Horton.

* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::showContextMenu): Use FrameView::contentsToWindow instead of contentsToRoot,
  and skip the [NSView convertPoint:toView:] step.

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

5 years agoClean up the difference between painting focus rings and adding PDF annotations
dino@apple.com [Wed, 7 May 2014 20:03:13 +0000 (20:03 +0000)]
Clean up the difference between painting focus rings and adding PDF annotations
https://bugs.webkit.org/show_bug.cgi?id=132638

Follow-up comments from Darin Adler.

* rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline): Move "else if" to a separate "if" for clarity.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintFocusRing): Don't guard against outlineIsAuto(). ASSERT instead.
(WebCore::RenderObject::addPDFURLRect): Give "rect" variable a better name.
(WebCore::RenderObject::paintOutline): Move "else if" to a separate "if" for clarity.

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

5 years agoMake blob size computation lazy
ap@apple.com [Wed, 7 May 2014 18:57:35 +0000 (18:57 +0000)]
Make blob size computation lazy
https://bugs.webkit.org/show_bug.cgi?id=132653

Reviewed by Anders Carlsson.

Source/WebCore:
* fileapi/Blob.cpp:
(WebCore::Blob::Blob):
(WebCore::Blob::size):
* fileapi/Blob.h:
(WebCore::Blob::size): Deleted.
* fileapi/File.cpp:
(WebCore::File::size): Deleted.
* fileapi/File.h:
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::blobSize):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::unregisterBlobURLTask): Deleted.
* fileapi/ThreadableBlobRegistry.h:
* platform/network/BlobData.cpp:
(WebCore::BlobData::appendData):
* platform/network/BlobRegistry.h:
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
* platform/network/BlobRegistryImpl.h:

Source/WebKit2:
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
(WebKit::NetworkBlobRegistry::blobSize):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
(WebKit::NetworkConnectionToWebProcess::blobSize):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):
* WebProcess/FileAPI/BlobRegistryProxy.h:

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

5 years agoWebKit1 is flashy when compositing layers come and go
simon.fraser@apple.com [Wed, 7 May 2014 18:49:26 +0000 (18:49 +0000)]
WebKit1 is flashy when compositing layers come and go
https://bugs.webkit.org/show_bug.cgi?id=132655

Source/WebKit/mac:

Reviewed by Sam Weinig.

In r166117 I removed code to flush compositing layers in FrameView::paintContents(),
which caused problems when painting iframes. However, this removed a flush
that WebKit1 relied on to flush compositing layers when painting, which caused
flashing when compositing layers come and go, and broke WebView snapshotting
in some cases.

Fix by adding back compositing layer flushing, but this time in WebKit1's
-viewWillDraw code path. This allows removal of some flushing in DumpRenderTree.

* WebView/WebHTMLView.mm:
(-[WebHTMLView viewWillDraw]):
* WebView/WebView.mm:
(-[WebView _flushCompositingChanges]):
* WebView/WebViewInternal.h:
* WebView/WebViewPrivate.h:

Tools:
<rdar://problem/16830981&16788846>

Reviewed by Sam Weinig.

Revert the change from r166117.

* DumpRenderTree/mac/DumpRenderTree.mm:
(updateDisplay):

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

5 years agoAdd scrolling tree logging to RemoteLayerTree output
simon.fraser@apple.com [Wed, 7 May 2014 18:42:53 +0000 (18:42 +0000)]
Add scrolling tree logging to RemoteLayerTree output
https://bugs.webkit.org/show_bug.cgi?id=132640

Reviewed by Beth Dakin.

Source/WebCore:

Support scrolling tree logging in the RemoteLayerTree log channel
output.

ScrollingStateTree::commit() unconditionally set treeStateClone->m_hasChangedProperties
to true, but we should set it based on original scrolling state tree's
m_hasChangedProperties.

We have to encode all of the scrolling state nodes anyway (they only encode
changed properties), but we can use this for future optimizations, and to
avoid spurious logging.

* WebCore.exp.in: Export a couple of things we need.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::commit):

Source/WebKit2:

Support scrolling tree logging in the RemoteLayerTree log channel
output.

Encode/decode ScrollingStateTree::hasChangedProperties() so we can use
it to avoid logging. Log all the things.

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingCoordinatorTransaction::encode):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
(WebKit::RemoteScrollingTreeTextStream::RemoteScrollingTreeTextStream):
(WebKit::RemoteScrollingTreeTextStream::increaseIndent):
(WebKit::RemoteScrollingTreeTextStream::decreaseIndent):
(WebKit::RemoteScrollingTreeTextStream::writeIndent):
(WebKit::dumpProperty):
(WebKit::RemoteScrollingTreeTextStream::operator<<):
(WebKit::RemoteScrollingTreeTextStream::dump):
(WebKit::RemoteScrollingTreeTextStream::recursiveDumpNodes):
(WebKit::RemoteScrollingCoordinatorTransaction::description):
(WebKit::RemoteScrollingCoordinatorTransaction::dump):
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

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

5 years agoAX: aria-expanded changes are not communicated to clients
cfleizach@apple.com [Wed, 7 May 2014 18:32:06 +0000 (18:32 +0000)]
AX: aria-expanded changes are not communicated to clients
https://bugs.webkit.org/show_bug.cgi?id=132642

Reviewed by Mario Sanchez Prada.

Source/WebCore:
When aria-expanded changes on non list/tree items, send out a generic
AXExpandedChange notification.

Test: platform/mac/accessibility/expanded-notification.html

* accessibility/AXObjectCache.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests:
* platform/mac/accessibility/expanded-notification-expected.txt: Added.
* platform/mac/accessibility/expanded-notification.html: Added.

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

5 years agoRelease build fix.
ap@apple.com [Wed, 7 May 2014 18:24:21 +0000 (18:24 +0000)]
Release build fix.

* platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes):
Removed unused globals.

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

5 years agoEliminate "well known MIME type" support
ap@apple.com [Wed, 7 May 2014 18:19:21 +0000 (18:19 +0000)]
Eliminate "well known MIME type" support
https://bugs.webkit.org/show_bug.cgi?id=132654

Reviewed by Anders Carlsson.

Vestiges of FileSystem API.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::files):
(WebCore::DataTransfer::hasFileOfType):
* fileapi/File.cpp:
(WebCore::File::File):
(WebCore::File::contentTypeFromFilePathOrName):
* fileapi/File.h:
* html/FileInputType.cpp:
(WebCore::FileInputType::createFileList):
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::findMimeType): Deleted.
(WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Deleted.
* platform/MIMETypeRegistry.h:

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

5 years agoFix windows build.
oliver@apple.com [Wed, 7 May 2014 18:13:04 +0000 (18:13 +0000)]
Fix windows build.

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

5 years ago[HTML] Default argument to HTMLTableElement.insertRow() should be -1
ch.dumez@samsung.com [Wed, 7 May 2014 17:29:33 +0000 (17:29 +0000)]
[HTML] Default argument to HTMLTableElement.insertRow() should be -1
https://bugs.webkit.org/show_bug.cgi?id=132651

Reviewed by Alexey Proskuryakov.

Source/WebCore:
HTMLTableElement.insertRow()'s argument default value should be -1, not 0,
as per the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#htmltableelement

The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
https://codereview.chromium.org/270213007/

Test: fast/dom/HTMLTableElement/insertRow-default-argument.html

* html/HTMLTableElement.h:
* html/HTMLTableElement.idl:

LayoutTests:
Add layout test to test that the default argument to HTMLTableElement.insertRow()
is -1.

* fast/dom/HTMLTableElement/insertRow-default-argument-expected.txt: Added.
* fast/dom/HTMLTableElement/insertRow-default-argument.html: Added.

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