WebKit-https.git
5 years ago[GTK] [CMake] Build the WebKit2 GObject API tests
mrobinson@webkit.org [Mon, 23 Dec 2013 21:49:43 +0000 (21:49 +0000)]
[GTK] [CMake] Build the WebKit2 GObject API tests
https://bugs.webkit.org/show_bug.cgi?id=125683

Reviewed by Daniel Bates.

.:

* Source/PlatformGTK.cmake: Load the WebKit2 tests file if necessary.
* Source/cmake/FindATSPI.cmake: Added.
* Source/cmake/OptionsGTK.cmake: Look for AT-SPI, but don't fail if it isn't found.

Source/WebKit2:

* UIProcess/API/gtk/tests/CMakeLists.txt: Added.

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

5 years ago[GTK] [CMake] Build the WebKit1 GObject API tests
mrobinson@webkit.org [Mon, 23 Dec 2013 21:48:46 +0000 (21:48 +0000)]
[GTK] [CMake] Build the WebKit1 GObject API tests
https://bugs.webkit.org/show_bug.cgi?id=125684

Reviewed by Daniel Bates.

.:

* Source/PlatformGTK.cmake: Added.

Source/WebKit/gtk:

* tests/CMakeLists.txt: Added.
* tests/testapplicationcache.c: Use the WTF config.h instead of including the autotools configuration directly.
* tests/testatk.c: Ditto.
* tests/testatkroles.c: Ditto.
* tests/testcontextmenu.c: Ditto.
* tests/testcopyandpaste.c: Ditto.
* tests/testdomdocument.c: Ditto.
* tests/testdomdomwindow.c: Ditto.
* tests/testdomnode.c: Ditto.
* tests/testdownload.c: Ditto.
* tests/testfavicondatabase.c: Ditto.
* tests/testglobals.c: Ditto.
* tests/testhittestresult.c: Ditto.
* tests/testhttpbackend.c: Ditto.
* tests/testkeyevents.c: Ditto.
* tests/testloading.c: Ditto.
* tests/testmimehandling.c: Ditto.
* tests/testnetworkrequest.c: Ditto.
* tests/testnetworkresponse.c: Ditto.
* tests/testwebbackforwardlist.c: Ditto.
* tests/testwebdatasource.c: Ditto.
* tests/testwebframe.c: Ditto.
* tests/testwebhistoryitem.c: Ditto.
* tests/testwebinspector.c: Ditto.
* tests/testwebplugindatabase.c: Ditto.
* tests/testwebresource.c: Ditto.
* tests/testwebsettings.c: Ditto.
* tests/testwebview.c: Ditto.
* tests/testwindow.c: Ditto.

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

5 years agoClear ScratchBuffer::m_lastLayerSize when clearing the scratch buffer.
ryumiel@company100.net [Mon, 23 Dec 2013 21:39:23 +0000 (21:39 +0000)]
Clear ScratchBuffer::m_lastLayerSize when clearing the scratch buffer.
https://bugs.webkit.org/show_bug.cgi?id=126150

Reviewed by Simon Fraser.

Since ScratchBuffer::clearScratchBuffer only clears m_lastRadius,
ShadowBlur doesn't draw shadow into the re-created scratch buffer if it
tries to draw shadow without blurRadius.

Clear m_lastLayerSize to empty is enought to ensure that there is no
drawn contents in the scratch buffer.

No new tests due to the flaky nature of reproducing the issue.

* platform/graphics/ShadowBlur.cpp:
(WebCore::ScratchBuffer::clearScratchBuffer):

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

5 years agoREGRESSION (r160672): Random remote layers are getting shadows
timothy_horton@apple.com [Mon, 23 Dec 2013 21:09:44 +0000 (21:09 +0000)]
REGRESSION (r160672): Random remote layers are getting shadows
https://bugs.webkit.org/show_bug.cgi?id=126126

Reviewed by Anders Carlsson.

In http://trac.webkit.org/changeset/160672, we unconditionally
check m_properties.customAppearance without regard for whether it
has ever been initialized. This would result in sending an uninitialized
custom appearance to the UI process, which could end up requesting a shadow.

* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
Initialize LayerProperties to the CoreAnimation defaults.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
Remove wrongly-placed default initialization of contentsScale;
there's no reason to send it across the wire for every new layer
if it's left at the default.

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

5 years agosvg/animations/getCurrentTime-pause-unpause.html is flaky
ap@apple.com [Mon, 23 Dec 2013 20:25:45 +0000 (20:25 +0000)]
svg/animations/getCurrentTime-pause-unpause.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=124933

* platform/mac/TestExpectations: Marking as such.

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

5 years agoAdd id matching to the Selector Code Generator
benjamin@webkit.org [Mon, 23 Dec 2013 20:21:28 +0000 (20:21 +0000)]
Add id matching to the Selector Code Generator
https://bugs.webkit.org/show_bug.cgi?id=126154

Reviewed by Antti Koivisto.

Compile matching for #id selectors. IDs are Atomic String so it is just a matter
of comparing the pointers.

No attempt is made at optimizing for the double #id case because such problem
do not really happen outside tests.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasId):
* dom/Element.h:
(WebCore::Element::elementDataMemoryOffset):
* dom/ElementData.h:
(WebCore::ElementData::idForStyleResolutionMemoryOffset):

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

5 years agoUpdate custom setter implementations to perform type checks
oliver@apple.com [Mon, 23 Dec 2013 19:51:38 +0000 (19:51 +0000)]
Update custom setter implementations to perform type checks
https://bugs.webkit.org/show_bug.cgi?id=126171

Reviewed by Daniel Bates.

Source/JavaScriptCore:

Modify the setter function signature to take encoded values
as we're changing the setter usage everywhere anyway.

* runtime/Lookup.h:
(JSC::putEntry):

Source/WebCore:

Update the bindings code generator for setters so that they perform a real
type check.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeEventListenerCall):
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjCustomAttr):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
* bindings/scripts/test/JS/JSTestTypedefs.h:

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

5 years agoREGRESSION (r160847): fast/dynamic/paused-event-dispatch.html is failing
rniwa@webkit.org [Mon, 23 Dec 2013 19:43:08 +0000 (19:43 +0000)]
REGRESSION (r160847): fast/dynamic/paused-event-dispatch.html is failing
https://bugs.webkit.org/show_bug.cgi?id=126163

Unreviewed. Try increasing the timeouts after r160896.

* fast/dynamic/paused-event-dispatch.html:

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

5 years agoUse std::chrono::milliseconds for message wait timeouts in WebKit2
andersca@apple.com [Mon, 23 Dec 2013 19:34:27 +0000 (19:34 +0000)]
Use std::chrono::milliseconds for message wait timeouts in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=126168

Reviewed by Sam Weinig.

* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::waitForMessage):
* Platform/CoreIPC/Connection.h:
(CoreIPC::Connection::waitForAndDispatchImmediately):
* UIProcess/API/mac/WKView.mm:
(-[WKView forceAsyncDrawingAreaSizeUpdate:]):
(-[WKView waitForAsyncDrawingAreaSizeUpdate]):
* UIProcess/DrawingAreaProxy.cpp:
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::didUpdateBackingStoreStateTimeout):
(WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::waitForDidUpdateViewState):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):

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

5 years agoInclude <condition_variable>, not <thread>.
andersca@apple.com [Mon, 23 Dec 2013 19:04:11 +0000 (19:04 +0000)]
Include <condition_variable>, not <thread>.

* Platform/CoreIPC/Connection.h:
* Shared/BlockingResponseMap.h:
* UIProcess/API/mac/WKPrintingView.h:

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

5 years agoRevert accidental Localizable.string change after r161003.
lforschler@apple.com [Mon, 23 Dec 2013 18:49:50 +0000 (18:49 +0000)]
Revert accidental Localizable.string change after r161003.

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

5 years agoSource/JavaScriptCore: <rdar://problem/15682948> Update copyright strings
lforschler@apple.com [Mon, 23 Dec 2013 18:45:18 +0000 (18:45 +0000)]
Source/JavaScriptCore: <rdar://problem/15682948> Update copyright strings

Reviewed by Dan Bernstein.

* Info.plist:
* JavaScriptCore.vcxproj/JavaScriptCore.resources/Info.plist:

Source/WebCore: <rdar://problem/15682948> Update copyright strings

Reviewed by Dan Bernstein

* Info.plist:

Source/WebKit/mac: <rdar://problem/15682948> Update copyright strings

Reviewed by Dan Bernstein.

* Info.plist:

Source/WebKit2: <rdar://problem/15682948> Update copyright strings

Reviewed by Dan Bernstein

* DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:
* Info.plist:
* NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist:
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:

WebKitLibraries: <rdar://problem/15682948> Update copyright strings

Reviewed by Dan Bernstein.

* win/tools/scripts/COPYRIGHT-END-YEAR:

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

5 years agoConvert ThreadCondition in WebKit2 over to std::condition_variable
andersca@apple.com [Mon, 23 Dec 2013 18:36:54 +0000 (18:36 +0000)]
Convert ThreadCondition in WebKit2 over to std::condition_variable
https://bugs.webkit.org/show_bug.cgi?id=126161

Reviewed by Sam Weinig.

* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::waitForMessage):
(CoreIPC::Connection::processIncomingMessage):
* Platform/CoreIPC/Connection.h:
* Shared/BlockingResponseMap.h:
(BlockingResponseMap::waitForResponse):
(BlockingResponseMap::didReceiveResponse):
(BlockingResponseMap::cancel):
* UIProcess/API/mac/WKPrintingView.h:
* UIProcess/API/mac/WKPrintingView.mm:
(pageDidDrawToPDF):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(prepareDataForPrintingOnSecondaryThread):
(-[WKPrintingView knowsPageRange:]):

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

5 years agoUnreviewed, rolling out r160945.
commit-queue@webkit.org [Mon, 23 Dec 2013 18:27:20 +0000 (18:27 +0000)]
Unreviewed, rolling out r160945.
http://trac.webkit.org/changeset/160945
https://bugs.webkit.org/show_bug.cgi?id=126164

Seems to have broken multiple canvas tests (Requested by ap on
#webkit).

PerformanceTests:

* Canvas/reuse.html: Removed.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::createIOSurface):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):

LayoutTests:

* fast/canvas/canvas-backing-store-reuse-expected.txt: Removed.
* fast/canvas/canvas-backing-store-reuse.html: Removed.

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

5 years agoAudioSessionManager should be MediaSessionManager
eric.carlson@apple.com [Mon, 23 Dec 2013 18:24:06 +0000 (18:24 +0000)]
AudioSessionManager should be MediaSessionManager
https://bugs.webkit.org/show_bug.cgi?id=126087

Reviewed by Jer Noble.

No new tests, no change in functionality.

* WebCore.xcodeproj/project.pbxproj: Change file names.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): MediaSessionManagerToken::create() takes a client
    interface instead of the media type.
* html/HTMLMediaElement.h:

* platform/audio/AudioSessionListener.h: Include <wtf/Noncopyable.h>.

AudioSessionManager.* -> MediaSessionManager.*
* platform/audio/AudioSessionManager.cpp: Removed.
* platform/audio/AudioSessionManager.h: Removed.
* platform/audio/MediaSessionManager.cpp: Copied from Source/WebCore/platform/audio/AudioSessionManager.cpp.
(MediaSessionManagerToken::create):
(MediaSessionManagerToken::MediaSessionManagerToken):
(MediaSessionManagerToken::~MediaSessionManagerToken):
(MediaSessionManager::sharedManager):
(MediaSessionManager::MediaSessionManager):
(MediaSessionManager::has):
(MediaSessionManager::count):
(MediaSessionManager::addToken):
(MediaSessionManager::removeToken):
(MediaSessionManager::updateSessionState):
* platform/audio/MediaSessionManager.h: Copied from Source/WebCore/platform/audio/AudioSessionManager.h.

* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::AudioDestinationMac): MediaSessionManagerToken::create() takes a
    client interface instead of the media type.
* platform/audio/mac/AudioDestinationMac.h:

* platform/audio/mac/AudioSessionMac.cpp:
* platform/audio/mac/AudioSessionManagerMac.cpp: Removed.
* platform/audio/mac/MediaSessionManagerMac.cpp: Copied from Source/WebCore/platform/audio/mac/AudioSessionManagerMac.cpp.
(MediaSessionManager::updateSessionState):

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

5 years agoLayout tests editing/selection/5057506.html and editing/selection/5057506-2.html
ap@apple.com [Mon, 23 Dec 2013 18:09:02 +0000 (18:09 +0000)]
Layout tests editing/selection/5057506.html and editing/selection/5057506-2.html
frequently time out on Mac WK2
https://bugs.webkit.org/show_bug.cgi?id=124437

* platform/mac-wk2/TestExpectations: Marked the latter test accordingly. It used
to me marked as image failure, but I don't see this happen recently on the dashboard.

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

5 years agowebkit gtk 2.2.3 stable tarball compilation error
zandobersek@gmail.com [Mon, 23 Dec 2013 16:28:48 +0000 (16:28 +0000)]
webkit gtk 2.2.3 stable tarball compilation error
https://bugs.webkit.org/show_bug.cgi?id=125987

Reviewed by Gustavo Noronha Silva.

Only try including <gdk/gdkwayland.h> and using GDK_IS_WAYLAND_DISPLAY if the Wayland support has been
enabled and when not compiling with GTK+ 2 (which occurs when building for libPlatformGtk2).

* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow):

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

5 years ago[GTK] Clean up compiler optimizations flags for libWTF, libJSC
zandobersek@gmail.com [Mon, 23 Dec 2013 15:55:02 +0000 (15:55 +0000)]
[GTK] Clean up compiler optimizations flags for libWTF, libJSC
https://bugs.webkit.org/show_bug.cgi?id=126157

Reviewed by Gustavo Noronha Silva.

Source/JavaScriptCore:

* GNUmakefile.am: Remove the -fstrict-aliasing and -O3 compiler flags for libWTF.la. -O3 gets
overridden by -O2 that's listed in CXXFLAGS (or -O0 in case of debug builds) and -fstrict-aliasing
is enabled when -O2 is used (and shouldn't be enabled in debug builds anyway).

Source/WTF:

* GNUmakefile.am: Remove the -fstrict-aliasing and -O3 compiler flags for libWTF.la. -O3 gets
overridden by -O2 that's listed in CXXFLAGS (or -O0 in case of debug builds) and -fstrict-aliasing
is enabled when -O2 is used (and shouldn't be enabled in debug builds anyway).

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

5 years ago[CMake] Fix typo from r160812
mrobinson@webkit.org [Mon, 23 Dec 2013 14:46:53 +0000 (14:46 +0000)]
[CMake] Fix typo from r160812
https://bugs.webkit.org/show_bug.cgi?id=126145

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Fix typo when detecting the type of library.

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

5 years ago.: https://bugs.webkit.org/show_bug.cgi?id=125511
mrobinson@webkit.org [Mon, 23 Dec 2013 14:45:44 +0000 (14:45 +0000)]
.: https://bugs.webkit.org/show_bug.cgi?id=125511

[GTK][CMake] libtool-compatible soversion calculation
Reviewed by Gustavo Noronha Silva.

* Source/cmake/OptionsGTK.cmake: Specify the appropriate libtool triples and use
the CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE macro to specify the library-specific
version information.
* Source/cmake/WebKitHelpers.cmake: Add some helpful macros.

Source/JavaScriptCore: [GTK][CMake] libtool-compatible soversion calculation
https://bugs.webkit.org/show_bug.cgi?id=125511

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Use the POPULATE_LIBRARY_VERSION macro and the
library-specific version information.

Source/WebKit: [GTK][CMake] libtool-compatible soversion calculation
https://bugs.webkit.org/show_bug.cgi?id=125511

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Use the POPULATE_LIBRARY_VERSION macro and the
library-specific version information.

Source/WebKit2: [GTK][CMake] libtool-compatible soversion calculation
https://bugs.webkit.org/show_bug.cgi?id=125511

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Use the POPULATE_LIBRARY_VERSION macro and the
library-specific version information.

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

5 years ago[GTK] [CMake] Generate pkg-config files
gns@gnome.org [Mon, 23 Dec 2013 13:35:00 +0000 (13:35 +0000)]
[GTK] [CMake] Generate pkg-config files
https://bugs.webkit.org/show_bug.cgi?id=125685

Reviewed by Martin Robinson.

.:

* Source/cmake/OptionsGTK.cmake: set variables used for filling in the values in the
pkg-config files.

Source/JavaScriptCore:

* PlatformGTK.cmake: Added. Generate javascriptcoregtk-3.0.pc.

Source/WebKit:

* PlatformGTK.cmake: generate webkitgtk-3.0.pc.

Source/WebKit2:

* PlatformGTK.cmake: generate webkit2gtk.pc.

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

5 years ago[GStreamer] video/audio seeking is not unified.
commit-queue@webkit.org [Mon, 23 Dec 2013 13:15:07 +0000 (13:15 +0000)]
[GStreamer] video/audio seeking is not unified.
https://bugs.webkit.org/show_bug.cgi?id=125852

Patch by Piotr Grad <p.grad@samsung.com> on 2013-12-23
Reviewed by Philippe Normand.

This bug is fixing regression with seeking audio/video elements and unifies seeking
in MediaPlayerPrivateGStreamer.

Test: media/video-seek-with-negative-playback.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::seekIncludingRate):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

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

5 years ago[GTK][WK2] WebGL is not working with GLES
changseok.oh@collabora.com [Mon, 23 Dec 2013 10:18:51 +0000 (10:18 +0000)]
[GTK][WK2] WebGL is not working with GLES
https://bugs.webkit.org/show_bug.cgi?id=126138

Reviewed by Martin Robinson.

m_texture has been unnecessarily regenerated. It's generated in GraphicsContext3D
constructor for offscreen rendering. And m_compositorTexture is used by only Mac port.
They create it in their GraphicsContext3D constructor so that we don't need to recreate it
in GC3DOpenGLES::reshapeFBOs.

No new tests since no functionality changed.

* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::~GraphicsContext3D):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):

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

5 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Mon, 23 Dec 2013 09:22:08 +0000 (09:22 +0000)]
Unreviewed EFL gardening

Rebaseline tests after 160908.

* platform/efl/TestExpectations:
* platform/efl/editing/inserting/break-blockquote-after-delete-expected.png: Added.
* platform/efl/editing/inserting/break-blockquote-after-delete-expected.txt: Added.
* platform/efl/fast/css-generated-content/table-row-group-to-inline-expected.txt:
* platform/efl/fast/dynamic/011-expected.txt:
* platform/efl/fast/forms/formmove3-expected.txt:
* platform/efl/fast/forms/preserveFormDuringResidualStyle-expected.txt:
* platform/efl/fast/invalid/001-expected.txt:
* platform/efl/fast/invalid/003-expected.txt:
* platform/efl/fast/invalid/004-expected.txt:
* platform/efl/fast/invalid/007-expected.txt:
* platform/efl/fast/invalid/019-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-dynamic-expected.txt:
* platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
* platform/efl/fast/ruby/ruby-base-merge-block-children-crash-expected.txt:
* platform/efl/tables/mozilla/bugs/bug113235-1-expected.txt:
* platform/efl/tables/mozilla/bugs/bug647-expected.txt:
* platform/efl/tables/mozilla/other/wa_table_tr_align-expected.txt:

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

5 years ago[GTK] Build with network process unconditionally
carlosgc@webkit.org [Mon, 23 Dec 2013 09:07:46 +0000 (09:07 +0000)]
[GTK] Build with network process unconditionally
https://bugs.webkit.org/show_bug.cgi?id=126128

Reviewed by Martin Robinson.

.:

* Source/autotools/SetupAutomake.m4: Remove network process
conditional for Makefiles.
* Source/autotools/SetupWebKitFeatures.m4: Remove network process
feature.

Source/WebKit2:

Build always with the network process enabled and decide whether
to use it or not using an environment variable. This makes a lot
easier to work on the network process and also to switch between
using it or not.

* GNUmakefile.am: Make sure we always include the WebKit2Prefix.h.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(createDefaultWebContext): Use the network process when
WEBKIT_USE_NETWORK_PROCESS environment variable is present.
* WebKit2Prefix.h: Always enable network process for GTK port.

Tools:

* Scripts/webkitperl/FeatureList.pm: Remove network-process
feature command line option.

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

5 years ago[WK2] Implement platform specific Resource Response for SOUP
brian.holt@samsung.com [Mon, 23 Dec 2013 08:41:08 +0000 (08:41 +0000)]
[WK2] Implement platform specific Resource Response for SOUP
https://bugs.webkit.org/show_bug.cgi?id=125422

Reviewed by Martin Robinson.

SOUP specific Resource Response implementation for the Network
Process.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):

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

5 years ago[GTK] run-gtk-tests should always run glib tests with -k option
carlosgc@webkit.org [Mon, 23 Dec 2013 08:21:12 +0000 (08:21 +0000)]
[GTK] run-gtk-tests should always run glib tests with -k option
https://bugs.webkit.org/show_bug.cgi?id=126132

Reviewed by Philippe Normand.

With -k command line option, gtester continues running all other
test cases after a failure.

* Scripts/run-gtk-tests:
(TestRunner._run_test_glib): Use -k option when runing glib tests
to not stop on failure.

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

5 years ago[WK2][SOUP] WebContext::allowSpecificHTTPSCertificateForHost does not work correctly...
commit-queue@webkit.org [Mon, 23 Dec 2013 06:20:59 +0000 (06:20 +0000)]
[WK2][SOUP] WebContext::allowSpecificHTTPSCertificateForHost does not work correctly when m_usesNetworkProcess is false
https://bugs.webkit.org/show_bug.cgi?id=125564

Reviewed Carlos Garcia Campos.

WebContext::allowSpecificHTTPSCertificateForHost should send
AllowSpecificHTTPSCertificateForHost to the web process when
m_usesNetworkProcess is false. Also we shouldn't guard
WebProcess::allowSpecificHTTPSCertificateForHost with
!ENABLE(NETWORK_PROCESS) because we need this method when
m_usesNetworkProcess is false.

Patch by Kwang Yul Seo <skyul@company100.net> on 2013-12-22

* UIProcess/WebContext.cpp:
(WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/soup/WebProcessSoup.cpp:

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

5 years ago[GTK][CMake] Integrate GResource for inspector files (and others?)
mrobinson@webkit.org [Mon, 23 Dec 2013 06:08:44 +0000 (06:08 +0000)]
[GTK][CMake] Integrate GResource for inspector files (and others?)
https://bugs.webkit.org/show_bug.cgi?id=125569

Reviewed by Gustavo Noronha Silva.

Source/WebInspectorUI:

* GNUmakefile.am: Use the new generation script instead of generating with
shell scripting in the makefile.

Source/WebKit2:

* GNUmakefile.am: Use the newly added static WebKit2InspectorGResourceBundle.xml
instead of generating the same file each time.
* PlatformGTK.cmake: Add support for building the GResource bundles into WebKit2.
* UIProcess/API/gtk/WebKit2InspectorGResourceBundle.xml: Added.

Tools:

* gtk/generate-inspector-gresource-manifest.py: Added.

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

5 years agoSmall build fix for GTK+ with the CMake build
mrobinson@webkit.org [Mon, 23 Dec 2013 04:40:05 +0000 (04:40 +0000)]
Small build fix for GTK+ with the CMake build

* CMakeLists.txt: Remove duplicate include directory and add missing directories
necessary for GTK+.

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

5 years agoCreate a skeleton for CSS Selector code generation
benjamin@webkit.org [Mon, 23 Dec 2013 00:45:25 +0000 (00:45 +0000)]
Create a skeleton for CSS Selector code generation
https://bugs.webkit.org/show_bug.cgi?id=126044

Source/JavaScriptCore:

Reviewed by Antti Koivisto and Gavin Barraclough.

* assembler/LinkBuffer.h:
Add a new owner UID for code compiled for CSS.
Export the symbols needed to link code from WebCore.

Source/WebCore:

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-12-22
Reviewed by Antti Koivisto and Gavin Barraclough.

Add CSSCompiler, which provides the basic infrastructure to compile
CSS Selectors on x86_64.

Compilation happens in two phases.
1) The various matching and relation of each CSSSelector is aggregated into units
   matching a single element: SelectorFragment.
   SelectorFragment also knows about the relations between different fragments,
   and contains all the information to generate the code for a particular element.
2) The compiler then goes over the fragments, and generate code based on the information
   of each fragment.

It the current state, SelectorCompiler only compiles the tag matching selectors and
any of the relation between selectors.

Depending on the relation and position of a fragment, failure on traversal or matching
does not necessarily causes the complete selector. A failure can cause matching to
resume from the parent or the sibling of a previously visisted node.
The implementation of this is done through the BacktrackingAction. In case of failure,
the next starting state is setup and the program counter jumps back to the appropriate
starting point.

When backtracking, the method used to save the starting point depends on the type
of backtracking.
The child/parent relation (">") is very common so it uses an additional register to keep
the next starting point (m_descendantBacktrackingStart).
The indirect sibling relation ("~") is much less common and uses the stack to save
the next starting point.

* WebCore.xcodeproj/project.pbxproj:
* cssjit/SelectorCompiler.cpp: Added.
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::compileSelector):
(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::updateChainStates):
(WebCore::SelectorCompiler::isFirstAncestor):
(WebCore::SelectorCompiler::isFirstAdjacent):
(WebCore::SelectorCompiler::isAfterChildRelation):
(WebCore::SelectorCompiler::solveBacktrackingAction):
(WebCore::SelectorCompiler::requiresAdjacentTail):
(WebCore::SelectorCompiler::requiresDescendantTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
(WebCore::SelectorCompiler::testIsElementFlagOnNode):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
* cssjit/SelectorCompiler.h: Added.
(WebCore::SelectorCompilationStatus::SelectorCompilationStatus):
(WebCore::SelectorCompilationStatus::operator Status):
(WebCore::SelectorCompiler::simpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext):
* dom/Element.cpp:
(WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
* dom/Element.h:
(WebCore::Element::tagQNameMemoryOffset):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
* dom/Node.h:
(WebCore::Node::parentNodeMemoryOffset):
(WebCore::Node::previousSiblingMemoryOffset):
(WebCore::Node::nodeFlagsMemoryOffset):
(WebCore::Node::flagIsElement):
* dom/QualifiedName.h:
(WebCore::QualifiedName::QualifiedNameImpl::localNameMemoryOffset):
(WebCore::QualifiedName::QualifiedNameImpl::namespaceMemoryOffset):
(WebCore::QualifiedName::implMemoryOffset):

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

5 years ago[CSSRegions] Crash when trying to select content from invalid region
mihnea@adobe.com [Sun, 22 Dec 2013 18:15:41 +0000 (18:15 +0000)]
[CSSRegions] Crash when trying to select content from invalid region
https://bugs.webkit.org/show_bug.cgi?id=126113

Reviewed by Antti Koivisto.

Source/WebCore:

After fix for https://bugs.webkit.org/show_bug.cgi?id=120769, positionForPoint for a region attempts to use the associated named flow to perform its task.
However, this should happen only when the region is valid. If the region is invalid, part of a dependency cycle, positionForPoint should behave as usual
for a block instead of a region, otherwise it may run into an infinite loop due to cyclic dependencies and a crash will occur.

This patch ensures that positionForPoint region specifie behaviour is followed only if the region is valid - not part of a dependency cycle.

Test: fast/regions/selection/invalid-region-selection-crash.html

* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::positionForPoint):

LayoutTests:

* fast/regions/selection/invalid-region-selection-crash-expected.txt: Added.
* fast/regions/selection/invalid-region-selection-crash.html: Added.

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

5 years ago[CSSRegions] Clean-up selection tests a bit
mihnea@adobe.com [Sun, 22 Dec 2013 18:03:03 +0000 (18:03 +0000)]
[CSSRegions] Clean-up selection tests a bit
https://bugs.webkit.org/show_bug.cgi?id=126135

Reviewed by Dirk Schulze.

Move function clearSelection in helper.js. Combine checkResult() from position-for-point* and position-for-point-1*
into a single function, checkSelectionResult() and  move it into helper.js too.

* fast/regions/resources/helper.js:
* fast/regions/selection/position-for-point-1-vert-lr.html:
* fast/regions/selection/position-for-point-1-vert-rl.html:
* fast/regions/selection/position-for-point-1.html:
* fast/regions/selection/position-for-point-vert-lr.html:
* fast/regions/selection/position-for-point-vert-rl.html:
* fast/regions/selection/position-for-point.html:
* fast/regions/selection/selecting-text-through-different-region-flows.html:

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

5 years agoURTBF after r160971 to try to make EFL build again.
barraclough@apple.com [Sun, 22 Dec 2013 16:45:31 +0000 (16:45 +0000)]
URTBF after r160971 to try to make EFL build again.

Patch by Csaba Osztrogonác <ossy@webkit.org> on 2013-12-22

* WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
(WebKit::internalError):

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

5 years agoLast URTBF after r160971 to make EFL build happy.
ossy@webkit.org [Sun, 22 Dec 2013 16:33:41 +0000 (16:33 +0000)]
Last URTBF after r160971 to make EFL build happy.

* TestWebKitAPI/efl/PlatformWebView.cpp:
* WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

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

5 years agoURTBF after r160971 to try to make EFL build again.
ossy@webkit.org [Sun, 22 Dec 2013 15:45:57 +0000 (15:45 +0000)]
URTBF after r160971 to try to make EFL build again.

* WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
(WebKit::internalError):

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

5 years agoUnreviewed. Fix GTK+ build after r160971 and r160969.
carlosgc@webkit.org [Sun, 22 Dec 2013 09:09:01 +0000 (09:09 +0000)]
Unreviewed. Fix GTK+ build after r160971 and r160969.

* GNUmakefile.list.am:
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_select_files):
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(didReceiveWebViewMessageFromInjectedBundle):
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestCreate):
* UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
* UIProcess/API/gtk/WebKitWebResource.cpp:
(webkit_web_resource_get_data):
* UIProcess/soup/WebSoupRequestManagerClient.h:
* WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp:
(WebKit::internalError):

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

5 years agoStart refactoring Filter code to reuse CachedSVGDocument for clipPath
krit@webkit.org [Sun, 22 Dec 2013 07:01:57 +0000 (07:01 +0000)]
Start refactoring Filter code to reuse CachedSVGDocument for clipPath
https://bugs.webkit.org/show_bug.cgi?id=126069

Reviewed by Andreas Kling.

Smaller refactoring of the CSS filter style resolver code. Previously the code
requested the FilterOperations list from RenderStyle and compared the content
in this list with an internal map. Then the resource loading was triggered.
With the refactoring we do not request the list from RenderStyle anymore but
rely on the hash map data entirely.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
* platform/graphics/filters/FilterOperation.h:

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

5 years agoUnreviewed build fix attempt on EFL port after r160971 and r160969
ryuan.choi@samsung.com [Sun, 22 Dec 2013 02:45:02 +0000 (02:45 +0000)]
Unreviewed build fix attempt on EFL port after r160971 and r160969

* CMakeLists.txt:
* UIProcess/soup/WebSoupRequestManagerClient.cpp:
(WebKit::WebSoupRequestManagerClient::didReceiveURIRequest):
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
(WebKit::WebSoupRequestManagerProxy::didReceiveURIRequest):

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

5 years ago[WK2] Rename WebError to API::Error
weinig@apple.com [Sun, 22 Dec 2013 02:18:51 +0000 (02:18 +0000)]
[WK2] Rename WebError to API::Error
https://bugs.webkit.org/show_bug.cgi?id=126125

Reviewed by Anders Carlsson.

* Shared/API/c/WKError.cpp:
(WKErrorGetTypeID):
(WKErrorCopyWKErrorDomain):
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
* Shared/API/c/cf/WKErrorCF.cpp:
(WKErrorCreateWithCFError):
* Shared/APIError.cpp: Copied from Source/WebKit2/Shared/WebError.cpp.
(API::Error::webKitErrorDomain):
(API::Error::encode):
(API::Error::decode):
* Shared/APIError.h: Copied from Source/WebKit2/Shared/WebError.h.
(API::Error::create):
(API::Error::domain):
(API::Error::failingURL):
(API::Error::localizedDescription):
(API::Error::Error):
* Shared/Cocoa/WKNSError.h:
(WebKit::wrapper):
* Shared/Cocoa/WKNSError.mm:
(-[WKNSError _web_createTarget]):
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebError.cpp: Removed.
* Shared/WebError.h: Removed.
* UIProcess/AutoCorrectionCallback.h:
(WebKit::AutocorrectionDataCallback::invalidate):
* UIProcess/GenericCallback.h:
(WebKit::VoidCallback::invalidate):
(WebKit::GenericCallback::invalidate):
(WebKit::ComputedPagesCallback::invalidate):
(WebKit::ImageCallback::invalidate):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::printFinishedCallback):
* UIProcess/WebPageProxy.h:
(WebKit::ValidateCommandCallback::invalidate):
(WebKit::GestureCallback::invalidate):
(WebKit::TouchesCallback::invalidate):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
* WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
(WebKit::blockedError):
(WebKit::cannotShowURLError):
(WebKit::interruptedForPolicyChangeError):
(WebKit::cannotShowMIMETypeError):
(WebKit::pluginWillHandleLoadError):
(WebKit::internalError):

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

5 years ago[Mac] Soft-link WebContentAnalysis.framework
aestes@apple.com [Sun, 22 Dec 2013 01:04:16 +0000 (01:04 +0000)]
[Mac] Soft-link WebContentAnalysis.framework
https://bugs.webkit.org/show_bug.cgi?id=126102

Reviewed by Dan Bernstein.

* Configurations/WebCore.xcconfig: There's no need to modify LDFLAGS
now that we don't hard link against WebContentAnalysis.framework.
* WebCore.xcodeproj/project.pbxproj: Removed
WebContentAnalysis.framework from the 'Link Binary with Libraries'
build phase.
* platform/mac/ContentFilterMac.mm: Soft-linked
WebContentAnalysis.framework and the WebFilterEvaluator @class.
(WebCore::ContentFilter::ContentFilter): Called getWebFilterEvaluatorClass().
(WebCore::ContentFilter::isEnabled): Ditto.
* platform/mac/SoftLinking.h: Added an implementation of
SOFT_LINK_PRIVATE_FRAMEWORK().

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

5 years ago[WK2] Rename WebURL to API::URL
weinig@apple.com [Sun, 22 Dec 2013 00:57:06 +0000 (00:57 +0000)]
[WK2] Rename WebURL to API::URL
https://bugs.webkit.org/show_bug.cgi?id=126100

Reviewed by Anders Carlsson.

* Shared/API/c/WKSharedAPICast.h:
(WebKit::toURLRef):
(WebKit::toCopiedURLAPI):
* Shared/API/c/WKURL.cpp:
(WKURLGetTypeID):
(WKURLCreateWithUTF8CString):
(WKURLCreateWithBaseURL):
* Shared/API/c/cf/WKURLCF.mm:
(WKURLCreateWithCFURL):
* Shared/APIURL.h: Copied from Source/WebKit2/Shared/WebURL.h.
(API::URL::create):
(API::URL::string):
(API::URL::host):
(API::URL::protocol):
(API::URL::path):
(API::URL::lastPathComponent):
(API::URL::encode):
(API::URL::decode):
(API::URL::URL):
* Shared/Cocoa/WKNSURL.h:
(WebKit::wrapper):
* Shared/Cocoa/WKNSURL.mm:
(-[WKNSURL _web_createTarget]):
* Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::createPluginInformationDictionary):
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebArchiveResource.h:
* Shared/WebURL.h: Removed.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::getResourceData):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::didChangeIconForPageURL):
(WebKit::WebIconDatabase::notifyIconDataReadyForPageURL):
* UIProcess/WebIconDatabaseClient.cpp:
(WebKit::WebIconDatabaseClient::didChangeIconForPageURL):
(WebKit::WebIconDatabaseClient::iconDataReadyForPageURL):
* UIProcess/WebIconDatabaseClient.h:
* UIProcess/WebOpenPanelResultListenerProxy.cpp:
(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getResourceDataFromFrame):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

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

5 years agoUnreviewed, rolling out r160916.
antti@apple.com [Sat, 21 Dec 2013 20:25:58 +0000 (20:25 +0000)]
Unreviewed, rolling out r160916.
http://trac.webkit.org/changeset/160916
https://bugs.webkit.org/show_bug.cgi?id=126073

Roll out a temporary fix. The underlying issue was fixed.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:

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

5 years agoFigure out if node is focusable without requiring renderer
antti@apple.com [Sat, 21 Dec 2013 18:51:04 +0000 (18:51 +0000)]
Figure out if node is focusable without requiring renderer
https://bugs.webkit.org/show_bug.cgi?id=126118

Reviewed by Andreas Kling.

* dom/Element.cpp:
(WebCore::Element::computedStyle):

    Use inDocument() test instead of the attached() test. We can compute style for anything that
    is in document.

* dom/Node.cpp:
(WebCore::Node::isContentEditable):
(WebCore::Node::isContentRichlyEditable):
(WebCore::Node::hasEditableStyle):

    Use computedStyle instead of getting the style from renderer. Computed style gets constructed
    on demand if renderer does not exist. If it does then the existing style is used.

(WebCore::Node::isEditableToAccessibility):
(WebCore::Node::canStartSelection):
(WebCore::Node::isRootEditableElement):
(WebCore::Node::rootEditableElement):
* dom/Node.h:
(WebCore::Node::hasEditableStyle):
(WebCore::Node::hasRichlyEditableStyle):

    Renamed from rendererIsEditable since these no longer require renderer.

(WebCore::HTMLElement::supportsFocus):

    Stop calling updateStyleIfNeeded() and forcing render tree construction.

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

5 years ago[GTK] Test /webkit2/WebKitWebResource/mime-type fails when run after /webkit2/WebKitW...
carlosgc@webkit.org [Sat, 21 Dec 2013 14:40:53 +0000 (14:40 +0000)]
[GTK] Test /webkit2/WebKitWebResource/mime-type fails when run after /webkit2/WebKitWebView/resources
https://bugs.webkit.org/show_bug.cgi?id=126119

Reviewed by Martin Robinson.

The problem is that when the blank.ico resource is loaded from the
disk cache, the mime type is null, because the soup cache doesn't
cache sniffed mime types. This doesn't happen when a resource is
loaded form the memory cache, because the ResourceResponse is
cached, not only the headers. I think the disk cache should also
cache the sniffed content type, but that needs to be done in
soup. For now we can workaround the issue in the unit test by
making sure that resources that can be cached, also include the
Content-Type header, this way the mime type won't be sniffed and
it will be cached as a HTTP header in the disk cache.

* UIProcess/API/gtk/tests/TestResources.cpp:
(serverCallback): Add Content-Type header for resources that can
be cached.

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

5 years agoREGRESSION(r160909): [GTK] Tests /webkit2/WebKitWebView/default-menu and /webkit2...
carlosgc@webkit.org [Sat, 21 Dec 2013 14:36:54 +0000 (14:36 +0000)]
REGRESSION(r160909): [GTK] Tests /webkit2/WebKitWebView/default-menu and /webkit2/WebKitSettings/webkit-settings fail
https://bugs.webkit.org/show_bug.cgi?id=126117

Reviewed by Martin Robinson.

In r160909 the fullscreen setting default value was changed, but
the unit tests relaying on the default value were not updated
accordingly.

* UIProcess/API/gtk/tests/TestContextMenu.cpp:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings):

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

5 years agoUnreviewed. Add myself to some more watch lists.
carlosgc@webkit.org [Sat, 21 Dec 2013 08:59:20 +0000 (08:59 +0000)]
Unreviewed. Add myself to some more watch lists.

* Scripts/webkitpy/common/config/watchlist: Watch also soup, gst
and binding scripts patches.

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

5 years ago[SOUP] ResourceHandleSoup should use async client callbacks when client uses async...
carlosgc@webkit.org [Sat, 21 Dec 2013 08:51:07 +0000 (08:51 +0000)]
[SOUP] ResourceHandleSoup should use async client callbacks when client uses async callbacks
https://bugs.webkit.org/show_bug.cgi?id=126006

Reviewed by Martin Robinson.

This fixes WebKit2 loader client unit tests when using the network
process.

* platform/network/ResourceHandle.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Call willSendRequestAsync on the client
when usesAsyncCallbacks returns true.
(WebCore::nextMultipartResponsePartCallback): Call
didReceiveResponseAsync on the client when usesAsyncCallbacks
returns true.
(WebCore::sendRequestCallback): Ditto.
(WebCore::ResourceHandle::continueWillSendRequest): Empty
implementation for now because the default one asserts.
(WebCore::ResourceHandle::continueDidReceiveResponse): Ditto.
(WebCore::ResourceHandle::continueShouldUseCredentialStorage): Ditto.

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

5 years agoReplace yield() and pauseBriefly() with std::this_thread::yield()
andersca@apple.com [Sat, 21 Dec 2013 05:23:10 +0000 (05:23 +0000)]
Replace yield() and pauseBriefly() with std::this_thread::yield()
https://bugs.webkit.org/show_bug.cgi?id=126105

Reviewed by Sam Weinig.

Source/WebCore:

* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::interrupt):

Source/WTF:

* wtf/ByteSpinLock.h:
(WTF::ByteSpinLock::lock):
* wtf/Threading.h:
* wtf/ThreadingPrimitives.h:
* wtf/ThreadingPthreads.cpp:
* wtf/ThreadingWin.cpp:

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

5 years agoAssert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline...
rniwa@webkit.org [Sat, 21 Dec 2013 03:50:12 +0000 (03:50 +0000)]
Assert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline without line boxes
https://bugs.webkit.org/show_bug.cgi?id=126101

Reviewed by Simon Fraser.

Merge assertions added in https://chromium.googlesource.com/chromium/blink/+/716ac74fd475b581d69c0aa8ec2d806201c3a420

The code change was not merged since we never hit the added assertion on the attached test case in WebKit.

* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::setLineBreakInfo):

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

5 years agoWeb Inspector: Remove the references to Node in InjectedScript
commit-queue@webkit.org [Sat, 21 Dec 2013 02:47:10 +0000 (02:47 +0000)]
Web Inspector: Remove the references to Node in InjectedScript
https://bugs.webkit.org/show_bug.cgi?id=126091

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-12-20
Reviewed by Timothy Hatcher.

Remove the last DOM references from InjectedScript so that
InjectedScript can move down into JavaScriptCore. The only
remaining references were to Nodes, which are all just thin
wrappers around existing functions. Move Node / JSNode (JSValue)
conversion into InspectorDOMAgent, where it was used.

No new tests, no observable change in functionality.

* bindings/js/JSInjectedScriptHostCustom.cpp:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::inspectObject):
(WebCore::InjectedScript::releaseObject):
* inspector/InjectedScript.h:
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptSource.js:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::focusNode):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::requestNode):
(WebCore::InspectorDOMAgent::nodeForObjectId):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::scriptValueAsNode):
(WebCore::InspectorDOMAgent::nodeAsScriptValue):
* inspector/InspectorDOMAgent.h:
* inspector/PageConsoleAgent.cpp:

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

5 years agoSpeed up case folding for 8-bit strings
andersca@apple.com [Sat, 21 Dec 2013 02:25:19 +0000 (02:25 +0000)]
Speed up case folding for 8-bit strings
https://bugs.webkit.org/show_bug.cgi?id=126098

Reviewed by Geoffrey Garen.

Add a case folding lookup table for 8-bit strings and use it instead of calling down to u_foldCase.
On a simple microbenchmark using a lookup table is about 15x faster.

* wtf/text/StringHash.h:
(WTF::CaseFoldingHash::foldCase):
* wtf/text/StringImpl.cpp:
(WTF::equalIgnoringCase):
* wtf/text/StringImpl.h:

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

5 years agoUnreviewed, rolling out r160941.
commit-queue@webkit.org [Sat, 21 Dec 2013 02:15:19 +0000 (02:15 +0000)]
Unreviewed, rolling out r160941.
http://trac.webkit.org/changeset/160941
https://bugs.webkit.org/show_bug.cgi?id=126095

Doesn't handle subpixel layout being disabled (Requested by
smfr on #webkit).

* gdb/webkit.py:
(JSCJSStringPrinter.to_string):
(add_pretty_printers):
* lldb/lldb_webkit.py:
(WTFMediaTime_SummaryProvider):
(WTFStringProvider.to_string):

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

5 years agoUnreviewed build fix after r160939
ljaehun.lim@samsung.com [Sat, 21 Dec 2013 02:11:49 +0000 (02:11 +0000)]
Unreviewed build fix after r160939

Add ENABLE(CUSTOM_PROTOCOLS) guard.

* UIProcess/WebContext.cpp:

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

5 years agoFaster implementation of text-decoration-skip: ink
mmaxfield@apple.com [Sat, 21 Dec 2013 01:55:10 +0000 (01:55 +0000)]
Faster implementation of text-decoration-skip: ink
https://bugs.webkit.org/show_bug.cgi?id=125718

Reviewed by Simon Fraser.

Source/WebCore:

This new implementation of text-decoration-skip: ink extracts
each glyph into a path, then decomposes each path into a series
of contours. It then intersects each contour with the top and
bottom of the underline (by approximating the contour with a line).
It then draws underlines in between these intersection regions.

Tests for text-decoration-skip: ink already exist in
fast/css3-text/css3-text-decoration/text-decoration-skip

* platform/graphics/Font.h: Signature of new function
* platform/graphics/mac/FontMac.mm:
(WebCore::GlyphIterationState::GlyphIterationState): Persistent
between calls to findPathIntersections
(WebCore::findIntersectionPoint): Calculates an intersection point
between two lines
(WebCore::findPathIntersections): Called by CGPathApply to find
intersections of each contour
(WebCore::Font::intersectionPoints): Function to get the places
where an underline would intersect a TextRun.
* rendering/InlineTextBox.cpp:
(WebCore::compareTuples): Used for sorting intersection ranges
(WebCore::translateIntersectionPointsToSkipInkBoundaries): Converts
a sequence of intersection points to the locations where
text-decoration-skip: ink should draw underlines
(WebCore::drawSkipInkUnderline): Draws a sequence of short underlines
(WebCore::InlineTextBox::paintDecoration):
* rendering/TextPainter.cpp:
(WebCore::TextPainter::intersectionPoints): Calls Font::intersectionPoints
* rendering/TextPainter.h:

Source/WTF:

This creates a new preprocessor define, CSS3_TEXT_DECORATION_SKIP_INK,
which enables the use of the text-decoration-skip: ink CSS value.
Creating this new value simplifies the logic about when to enable the
codepath for this CSS value.

* wtf/Platform.h:

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

5 years agoTry to fix the Windows build.
simon.fraser@apple.com [Sat, 21 Dec 2013 00:59:14 +0000 (00:59 +0000)]
Try to fix the Windows build.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

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

5 years agoWeb Inspector: Give the CommandLineAPIModule its own Host object, making InjectedScri...
joepeck@webkit.org [Sat, 21 Dec 2013 00:44:36 +0000 (00:44 +0000)]
Web Inspector: Give the CommandLineAPIModule its own Host object, making InjectedScriptHost viable for a JS Context
https://bugs.webkit.org/show_bug.cgi?id=126082

Reviewed by Timothy Hatcher.

Extract CommandLineAPIHost from InjectedScriptHost. The command line API contained
a bunch of DOM specific JavaScript that would not be suitable for a pure JavaScript
environment. Now that the DOM related code is in this WebCore only module, give this
module a host object that WebCore will provide.

No new tests, no observable change in functionality.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
Add new files.

* bindings/js/JSCommandLineAPIHostCustom.cpp: Added.
(WebCore::JSCommandLineAPIHost::inspectedObject):
(WebCore::getJSListenerFunctions):
(WebCore::JSCommandLineAPIHost::getEventListeners):
(WebCore::JSCommandLineAPIHost::inspect):
(WebCore::JSCommandLineAPIHost::databaseId):
(WebCore::JSCommandLineAPIHost::storageId):
* bindings/js/JSInjectedScriptHostCustom.cpp:
* inspector/CommandLineAPIHost.cpp: Copied from Source/WebCore/inspector/InjectedScriptHost.cpp.
(WebCore::CommandLineAPIHost::create):
(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::~CommandLineAPIHost):
(WebCore::CommandLineAPIHost::disconnect):
(WebCore::CommandLineAPIHost::inspectImpl):
(WebCore::CommandLineAPIHost::getEventListenersImpl):
(WebCore::CommandLineAPIHost::clearConsoleMessages):
(WebCore::CommandLineAPIHost::copyText):
(WebCore::CommandLineAPIHost::InspectableObject::get):
(WebCore::CommandLineAPIHost::addInspectedObject):
(WebCore::CommandLineAPIHost::clearInspectedObjects):
(WebCore::CommandLineAPIHost::inspectedObject):
(WebCore::CommandLineAPIHost::databaseIdImpl):
(WebCore::CommandLineAPIHost::storageIdImpl):
* inspector/CommandLineAPIHost.h: Copied from Source/WebCore/inspector/InjectedScriptHost.h.
(WebCore::CommandLineAPIHost::init):
* inspector/CommandLineAPIHost.idl: Copied from Source/WebCore/inspector/InjectedScriptHost.idl.
* inspector/CommandLineAPIModule.cpp:
These are almost all pure copies from InjectedScriptHost files. Cleaned up a bit.

* inspector/InjectedScriptModule.h:
* inspector/InjectedScriptModule.cpp:
(WebCore::InjectedScriptModule::ensureInjected):
Modules can now define a host object when they are getting injected.

(WebCore::CommandLineAPIModule::host):
* inspector/CommandLineAPIModule.h:
Provide a CommandLineAPIHost, host object.

* inspector/InjectedScriptCanvasModule.h:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::host):
No host object is needed for the CanvasModule.

* inspector/InjectedScriptSource.js:
* inspector/CommandLineAPIModuleSource.js:
When injecting a module, pass on an optional host object to
the module's source. Move a little more code between the
two files. The two files are very tightly coupled right now.

* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::create):
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::~InjectedScriptHost):
(WebCore::InjectedScriptHost::InjectedScriptHost):
* inspector/InjectedScriptHost.idl:
Move any command line specific logic to CommandLineAPIHost classes.

* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::disconnect):
* inspector/InjectedScriptManager.h:
(WebCore::InjectedScriptManager::commandLineAPIHost):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addInspectedHeapObject):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::resetState):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::resetState):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::addInspectedNode):
* inspector/PageInjectedScriptManager.cpp:
(WebCore::PageInjectedScriptManager::PageInjectedScriptManager):
(WebCore::PageInjectedScriptManager::disconnect):
* inspector/PageInjectedScriptManager.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
An InjectedScriptManager may optionally have a commandLineAPIHost object.
If it does, initialize it, and send it messages.

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

5 years agoAllow ImageBuffer to re-use IOSurfaces
mmaxfield@apple.com [Sat, 21 Dec 2013 00:43:27 +0000 (00:43 +0000)]
Allow ImageBuffer to re-use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=125477

Reviewed by Geoff Garen.

PerformanceTests:

This test times creating a variety of different sizes of canvases
once some have already been created. The second creation of the
canvases should re-use the existing IOSurfaces.

* Canvas/reuse.html: Added.

Source/WebCore:

This test adds a static class, ImageBufferBackingStoreCache, that vends
IOSurfaces. It remembers IOSurfaces that have been returned to it until
a configurable timeout.

The storage used by this class is in the form of a HashMap from a
bucketed size to the IOSurface. There are many other data structures
that could be used, but this implementation gives a 80% hit rate on
normal browsing of some example sites with Canvas and
text-decoration-skip: ink. Because the buckets are fairly
small (rounding the width and height up to multiples of 8), traversing the
bucket contents takes on average 2 steps.

Test: fast/canvas/canvas-backing-store-reuse.html

* WebCore.xcodeproj/project.pbxproj: Added new caching class
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
(WebCore::createIOSurface): Moved from ImageBufferCG.cpp
(WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
contents
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
(WebCore::ImageBufferBackingStoreCache::get): Static getter
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
creation function
(WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
deletion function
(WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
IOSurface fit the bill?
(WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
a bucket and walk through its contents
(WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
for clients who want a IOSurface from the cache
(WebCore::ImageBufferBackingStoreCache::deallocate): Public
function for clients to return an IOSurface to the pool
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
* platform/graphics/cg/ImageBufferCG.cpp: Update to use new cache
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):

LayoutTests:

Now that we're re-using the backing store of canvases, this
test makes sure that if we draw to a canvas, then destroy it,
then create a new canvas (which should share the same backing
store) that it doesn't have the stale data in it

* fast/canvas/canvas-backing-store-reuse-expected.txt: Added.
* fast/canvas/canvas-backing-store-reuse.html: Added.

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

5 years agoChange "threaded scrolling" terminology to "asynchronous scrolling"
simon.fraser@apple.com [Sat, 21 Dec 2013 00:35:44 +0000 (00:35 +0000)]
Change "threaded scrolling" terminology to "asynchronous scrolling"
https://bugs.webkit.org/show_bug.cgi?id=126094

Source/WebCore:

Reviewed by Tim Horton.

Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
references to "main thread scrolling" to "synchronous scrolling".

In a few places, functions with names like shouldUpdateScrollLayerPositionOnMainThread()
were actually returning SynchronousScrollingReasons, so rename them appropriately.

* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
(WebCore::FrameView::isRubberBandInProgress):
(WebCore::FrameView::requestScrollPositionUpdate):
(WebCore::FrameView::updatesScrollLayerPositionOnMainThread):
(WebCore::FrameView::wheelEvent):
* page/Page.cpp:
(WebCore::Page::synchronousScrollingReasonsAsText):
* page/Page.h:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinator::ScrollingCoordinator):
(WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
(WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
(WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinator::synchronousScrollingReasons):
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
(WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):
* page/scrolling/ScrollingStateFixedNode.cpp:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h: Awkward "ReasonsForSynchronousScrolling" to avoid
conflict with the enum called SynchronousScrollingReasons.
* page/scrolling/ScrollingStateStickyNode.cpp:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
* page/scrolling/ScrollingStateTree.h:
* page/scrolling/ScrollingThread.cpp:
* page/scrolling/ScrollingThread.h:
* page/scrolling/ScrollingTree.cpp:
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeNode.cpp:
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons):
(WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::setSynchronousScrollingReasons):
(WebCore::ScrollingCoordinatorMac::commitTreeState):
* page/scrolling/mac/ScrollingStateNodeMac.mm:
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
* page/scrolling/mac/ScrollingThreadMac.mm:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::logThreadedScrollingMode):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::updateTileCoverageMap):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupFontSubpixelQuantization):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
* testing/Internals.cpp:
(WebCore::Internals::mainThreadScrollingReasons):
* testing/Internals.idl:

Source/WebKit2:

Reviewed by Tim Horton.

Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
references to "main thread scrolling" to "synchronous scrolling".

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):

Source/WTF:

Reviewed by Tim Horton.

Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING.

* wtf/FeatureDefines.h:

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

5 years agoRevert r160327, r160273, and r160260.
timothy_horton@apple.com [Sat, 21 Dec 2013 00:26:49 +0000 (00:26 +0000)]
Revert r160327, r160273, and r160260.

We'll come up with something less aggressive, as this doesn't quite work.

* loader/cache/CachedImage.h:
* loader/cache/CachedResource.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:

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

5 years agoPostAttachCallbackDisabler should take a Document
andersca@apple.com [Sat, 21 Dec 2013 00:12:39 +0000 (00:12 +0000)]
PostAttachCallbackDisabler should take a Document
https://bugs.webkit.org/show_bug.cgi?id=126090

Reviewed by Andreas Kling.

suspendPostAttachCallbacks and resumePostAttachCallbacks always only get the document from the
container node, so make them static member functions that take a Document&. Also, move PostAttachCallbackDisabler
to Element.h in preparation for moving post attach callback handling to Element.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* dom/ContainerNode.h:
* dom/Element.h:
(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachRenderTree):

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

5 years agoPretty print LayoutUnit, LayoutPoint, and LayoutSize in gdb and lldb
bjonesbe@adobe.com [Sat, 21 Dec 2013 00:05:40 +0000 (00:05 +0000)]
Pretty print LayoutUnit, LayoutPoint, and LayoutSize in gdb and lldb
https://bugs.webkit.org/show_bug.cgi?id=126080

Reviewed by Anders Carlsson.

This changes the output of printing LayoutUnits to be in px, removing
the need to divide by 64 manually.

This will lead to gdb output like:

m_frameRect = {
    m_location = LayoutPoint(0px, 0px),
    m_size = LayoutSize(800px, 585px)
}

And lldb output like:

(const WebCore::LayoutRect) $0 = {
  m_location = { x = 744px, y = 1px }
  m_size = { width = 236px, height = 40px }
}

This patch is based on patch for Blink by cbiesinger@chromium.org.

* gdb/webkit.py:
(WebCoreLayoutUnitPrinter):
(WebCoreLayoutUnitPrinter.__init__):
(WebCoreLayoutUnitPrinter.to_string):
(WebCoreLayoutSizePrinter):
(WebCoreLayoutSizePrinter.__init__):
(WebCoreLayoutSizePrinter.to_string):
(WebCoreLayoutPointPrinter):
(WebCoreLayoutPointPrinter.__init__):
(WebCoreLayoutPointPrinter.to_string):
(add_pretty_printers):
* lldb/lldb_webkit.py:
(__lldb_init_module):
(WebCoreLayoutUnit_SummaryProvider):
(WebCoreLayoutSize_SummaryProvider):
(WebCoreLayoutPoint_SummaryProvider):
(WebCoreLayoutUnitProvider):
(WebCoreLayoutUnitProvider.__init__):
(WebCoreLayoutUnitProvider.to_string):
(WebCoreLayoutSizeProvider):
(WebCoreLayoutSizeProvider.__init__):
(WebCoreLayoutSizeProvider.get_width):
(WebCoreLayoutSizeProvider.get_height):
(WebCoreLayoutPointProvider):
(WebCoreLayoutPointProvider.__init__):
(WebCoreLayoutPointProvider.get_x):
(WebCoreLayoutPointProvider.get_y):

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

5 years agoRename PlugInAutoStartProvider's ...EntriesAddedBeforeTime facility to ...EntriesAdde...
commit-queue@webkit.org [Fri, 20 Dec 2013 23:56:38 +0000 (23:56 +0000)]
Rename PlugInAutoStartProvider's ...EntriesAddedBeforeTime facility to ...EntriesAddedAfterTime
https://bugs.webkit.org/show_bug.cgi?id=126078

Patch by Ricky Mondello <rmondello@apple.com> on 2013-12-20
Reviewed by Anders Carlsson.

r160922 accidentally named a facility for filtering out data added after a certain time,
"...FilteringOutEntriesAddedBeforeTime", which was incorrect. This patch renames those instances
to "...FilteringOutEntriesAddedAfterTime".

* UIProcess/API/C/WKContext.cpp:
(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
* UIProcess/API/C/WKContext.h:
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
* UIProcess/Plugins/PlugInAutoStartProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
* UIProcess/WebContext.h:

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

5 years ago[WK2] Add SPI for using a custom protocol handler
weinig@apple.com [Fri, 20 Dec 2013 23:55:04 +0000 (23:55 +0000)]
[WK2] Add SPI for using a custom protocol handler
https://bugs.webkit.org/show_bug.cgi?id=126089

Reviewed by Anders Carlsson.

* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextRegisterSchemeForCustomProtocol):
(WKContextUnregisterSchemeForCustomProtocol):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::globalURLSchemesWithCustomProtocolHandlers):
(WebKit::WebContext::registerGlobalURLSchemeAsHavingCustomProtocolHandlers):
(WebKit::WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
* UIProcess/WebContext.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
(WebKit::WebContext::platformInitializeNetworkProcess):
(WebKit::WebContext::registerNotificationObservers):
(WebKit::WebContext::unregisterNotificationObservers):

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

5 years ago[GTK] [CMake] Add support for building ImageDiff
mrobinson@webkit.org [Fri, 20 Dec 2013 23:46:12 +0000 (23:46 +0000)]
[GTK] [CMake] Add support for building ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=125960

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Build ImageDiff for GTK+.
* ImageDiff/PlatformGTK.cmake: Added.

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

5 years ago[GTK] [CMake] Add support for building DumpRenderTree
mrobinson@webkit.org [Fri, 20 Dec 2013 23:44:11 +0000 (23:44 +0000)]
[GTK] [CMake] Add support for building DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=125767

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Load the DumpRenderTree cmake file for GTK+ when WebKit1 is enabled.
* DumpRenderTree/PlatformGTK.cmake: Added.

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

5 years ago[GTK] [CMake] Add support for building WebKitTestRunner
mrobinson@webkit.org [Fri, 20 Dec 2013 23:24:43 +0000 (23:24 +0000)]
[GTK] [CMake] Add support for building WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=125768

Reviewed by Gustavo Noronha Silva.

* CMakeLists.txt: Compile WebKitTestRunner for GTK+ when WebKit2 is enabled.
* WebKitTestRunner/CMakeLists.txt: Remove some EFL specific flags from the common
build file.
* WebKitTestRunner/PlatformEfl.cmake: Move the flags here.
* WebKitTestRunner/PlatformGTK.cmake: Added.

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

5 years agoMove scheduleSetNeedsStyleRecalc to HTMLFrameOwnerElement
andersca@apple.com [Fri, 20 Dec 2013 22:34:31 +0000 (22:34 +0000)]
Move scheduleSetNeedsStyleRecalc to HTMLFrameOwnerElement
https://bugs.webkit.org/show_bug.cgi?id=126083

Reviewed by Antti Koivisto.

scheduleSetNeedsStyleRecalc is only ever called on HTMLFrameOwnerElement, so
move it there, remove the Node implementation and make it non-virtual.

* dom/ContainerNode.cpp:
* dom/ContainerNode.h:
* dom/Node.h:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::needsStyleRecalcCallback):
(WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
* html/HTMLFrameOwnerElement.h:

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

5 years agoRemove an unneeded include of WebCoreSystemInterface.h.
aestes@apple.com [Fri, 20 Dec 2013 22:19:28 +0000 (22:19 +0000)]
Remove an unneeded include of WebCoreSystemInterface.h.

Rubber-stamped by Dan Bernstein.

* platform/mac/ContentFilterMac.mm:

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

5 years agoNode post attach callbacks should use references
andersca@apple.com [Fri, 20 Dec 2013 22:15:13 +0000 (22:15 +0000)]
Node post attach callbacks should use references
https://bugs.webkit.org/show_bug.cgi?id=126081

Reviewed by Antti Koivisto.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::queuePostAttachCallback):
(WebCore::ContainerNode::dispatchPostAttachCallbacks):
(WebCore::needsStyleRecalcCallback):
(WebCore::ContainerNode::scheduleSetNeedsStyleRecalc):
* dom/ContainerNode.h:
* html/HTMLFormControlElement.cpp:
(WebCore::focusPostAttach):
(WebCore::HTMLFormControlElement::didAttachRenderers):
(WebCore::updateFromElementCallback):
(WebCore::HTMLFormControlElement::didRecalcStyle):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAttachRenderers):
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
(WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
* html/HTMLPlugInImageElement.h:

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

5 years agoWeb Inspector: Extract CommandLineAPI into its own InjectedScriptModule
joepeck@webkit.org [Fri, 20 Dec 2013 22:04:31 +0000 (22:04 +0000)]
Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
https://bugs.webkit.org/show_bug.cgi?id=126038

Reviewed by Timothy Hatcher.

Only inject the CommandLineAPIModule once, when the InjectedScript
is first created. This avoids running a small snippet of JavaScript
to check if the module is loaded every time we fetch the InjectedScript.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Add new files to the build.

* inspector/InjectedScriptManager.h:
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createForPage):
(WebCore::InjectedScriptManager::injectedScriptFor):
(WebCore::InjectedScriptManager::didCreateInjectedScript):
Add didCreateInjectedScript hook for a subclass to inject more scripts.

* inspector/PageInjectedScriptManager.h: Added.
* inspector/PageInjectedScriptManager.cpp: Added.
(WebCore::PageInjectedScriptManager::didCreateInjectedScript):
For pages, inject the CommandLineAPIModule.

* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::injectedScriptForEval):
This is replaced by PageInjectedScriptManager, we no longer need
to do extra work every time we fetch the injectedScriptForEval.

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

5 years agoWeb Inspector: Extract CommandLineAPI into its own InjectedScriptModule
joepeck@webkit.org [Fri, 20 Dec 2013 22:04:28 +0000 (22:04 +0000)]
Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
https://bugs.webkit.org/show_bug.cgi?id=126038

Reviewed by Timothy Hatcher.

No tests, no observable change in behavior.

Move the CommandLineAPI source into its own module. Load the module
in InjectedScripts for WebCore::Pages. Not for workers.

Moving CommandLineAPI into it's own module moves it from being inside
the same anonymous function to being evaluated outside the anonymous
function. To connect the two InjectedScript passes itself to the
injected module, and the CommandLineAPI module places its class on the
injectedScript as injectedScript.CommandLineAPI.

This essentially makes the CommandLineAPI module an InjectedScript
extension. InjectedScriptSource checks for the existence of
this.CommandLineAPI to see if the fuller version is available. Otherwise
it falls back to a BasicCommandLineAPI which only exposes "$_",
which is the "last evaluated result". That will be useful for JS Contexts
and Workers.

At the same time, this patch makes InjectedScriptModule more generic,
to support being used in a pure JavaScript environment, meaning one
without "window" as the global object.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Add files. Minify the CommandLineAPIModuleSource in generation.

* inspector/CommandLineAPIModule.h: Added.
* inspector/CommandLineAPIModule.cpp: Added.
(WebCore::CommandLineAPIModule::CommandLineAPIModule):
(WebCore::CommandLineAPIModule::injectIfNeeded):
(WebCore::CommandLineAPIModule::source):
Inject the module that doesn't return an object, its just evaluated code
extending the original InjectedScript.

* inspector/InjectedScriptModule.h:
* inspector/InjectedScriptModule.cpp:
(WebCore::InjectedScriptModule::ensureInjected):
Only ASSERT the result was an object if the Module claims it returns an object.

* inspector/InjectedScriptCanvasModule.h:
(WebCore::InjectedScriptCanvasModule::returnsObject):
Return an object used later to call into the CanvasModule.

* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::injectedScriptForEval):
Ensure the CommandLineAPIModule is loaded in the Page's InjectedScript.

* inspector/CommandLineAPIModuleSource.js: Added.
Create the CommandLineAPI class and place it on injectedScript.

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn):
Inject either the BasicCommandLineAPI or extended CommandLineAPI.
Derive the globalObject dynamically instead of assuming window.
Inject the commandLineAPI on window.console or the globalObject based on context.
Audit and rename uses of "window" to something like globalObject.

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

5 years agoWebKit2 View Gestures: Implement smartMagnifyWithEvent: and make it work
timothy_horton@apple.com [Fri, 20 Dec 2013 22:01:27 +0000 (22:01 +0000)]
WebKit2 View Gestures: Implement smartMagnifyWithEvent: and make it work
https://bugs.webkit.org/show_bug.cgi?id=125752
<rdar://problem/15664245>

Reviewed by Anders Carlsson.

Implement "smart magnify", which is the double-tap-to-zoom gesture on OS X.

* UIProcess/API/mac/WKView.mm:
(-[WKView smartMagnifyWithEvent:]):
Forward smartMagnifyWithEvent to ViewGestureController.

* UIProcess/mac/ViewGestureController.cpp:
(WebKit::ViewGestureController::handleMagnificationGesture):
Drive-by repair a comment.

(WebKit::ViewGestureController::handleSmartMagnificationGesture):
Added. Immediately dispatch a message to the web process to retrieve
the rendered rect of the element under the gesture.

(WebKit::maximumRectangleComponentDelta):
Return the absolute maximum delta between corresponding components of two rects.

(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
Once the WebProcess has replied with the relevant geometry, use it to
determine our target rectangle (the element's rect, with some padding)
and target magnification (attempting to keep replaced elements
fully in-view, and otherwise zooming in as far as possible to fit the
element's width).

If this gesture occurs after the page is already magnified, and targets
a similar region to the previous smart magnification gesture, zoom out
instead of panning across the page.

Begin a transient zoom with the current magnification, and immediately
commit it at our target magnification and offset, so that the drawing
area will animate to the new parameters.

(WebKit::ViewGestureController::endActiveGesture):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureController.messages.in:
* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
Hit-test the document to determine the node under the smart magnification
gesture, and return it to the UI process along with various other bits of data.

* WebProcess/WebPage/ViewGestureGeometryCollector.h:
* WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
Instead of short-circuiting the animation if we didn't have to constrain
the origin, short-circuit if we're already *at* the right origin,
like the comment said. This prevents jarring jumps when double-tap-panning
between elements when zoomed all the way in.

* WebCore.exp.in:
Add some exports.

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

5 years agoAllow partial application of PlugInAutoStart tables based on timestamp
commit-queue@webkit.org [Fri, 20 Dec 2013 21:00:46 +0000 (21:00 +0000)]
Allow partial application of PlugInAutoStart tables based on timestamp
https://bugs.webkit.org/show_bug.cgi?id=125871

Patch by Ricky Mondello <rmondello@apple.com> on 2013-12-20
Reviewed by Anders Carlsson.

* UIProcess/API/C/WKContext.cpp:
(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedBeforeTime): New API.
* UIProcess/API/C/WKContext.h: New API.

* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable): Call setAutoStartOriginsTableWithItemsPassingTest
    with a predicate that lets all policies pass.
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedBeforeTime): Call
    setAutoStartOriginsTableWithItemsPassingTest with a predicate that lets policies created before a certain
    time pass.
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest): Added. Contains most of the
    contents of setAutoStartOriginsTable, with support for applying a predicate.
* UIProcess/Plugins/PlugInAutoStartProvider.h: Add public method,
    `setAutoStartOriginsFilteringOutEntriesAddedBeforeTime`, and private method,
    `setAutoStartOriginsTableWithItemsPassingTest`.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::setPlugInAutoStartOriginsFilteringOutEntriesAddedBeforeTime): Pass through to the
    PlugInAutoStartProvider.
* UIProcess/WebContext.h: Declare `setPlugInAutoStartOriginsFilteringOutEntriesAddedBeforeTime`.

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

5 years agoMyles C. Maxfield is a committer now
mmaxfield@apple.com [Fri, 20 Dec 2013 20:54:03 +0000 (20:54 +0000)]
Myles C. Maxfield is a committer now

Unreviewed.

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

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

5 years agohttp/tests/misc/object-image-error.html asserts
antti@apple.com [Fri, 20 Dec 2013 20:49:23 +0000 (20:49 +0000)]
http/tests/misc/object-image-error.html asserts
https://bugs.webkit.org/show_bug.cgi?id=126074

Reviewed by Andreas Kling.

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAttachRenderers):
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
(WebCore::HTMLPlugInImageElement::startLoadingImage):
(WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
* html/HTMLPlugInImageElement.h:

    Start image load from post-attach so we don't re-enter attach when image load fails synchronously.

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

5 years agoClean up DFG write barriers
mhahnenberg@apple.com [Fri, 20 Dec 2013 20:19:59 +0000 (20:19 +0000)]
Clean up DFG write barriers
https://bugs.webkit.org/show_bug.cgi?id=126047

Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::storeToWriteBarrierBuffer): Use the register allocator to
determine which registers need saving instead of saving every single one of them.
(JSC::DFG::SpeculativeJIT::osrWriteBarrier): We don't need to save live register state
because the write barriers during OSR execute when there are no live registers. Also we
don't need to use pushes to pad the stack pointer for pokes on x86; we can just use an add.
(JSC::DFG::SpeculativeJIT::writeBarrier):
* dfg/DFGSpeculativeJIT.h:
* jit/Repatch.cpp:
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
* runtime/VM.h: Get rid of writeBarrierRegisterBuffer since it's no longer used.

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

5 years ago[GTK] WebKitWebViewBase's ClickCounter should be reset
commit-queue@webkit.org [Fri, 20 Dec 2013 19:45:21 +0000 (19:45 +0000)]
[GTK] WebKitWebViewBase's ClickCounter should be reset
https://bugs.webkit.org/show_bug.cgi?id=122551

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2013-12-20
Reviewed by Martin Robinson.

* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseResetClickCounter):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

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

5 years agoCrashes in AccessibilityRenderObject::computeAccessibilityIsIgnored()
antti@apple.com [Fri, 20 Dec 2013 19:05:34 +0000 (19:05 +0000)]
Crashes in AccessibilityRenderObject::computeAccessibilityIsIgnored()
https://bugs.webkit.org/show_bug.cgi?id=126073

Reviewed by Ryosuke Niwa.

Prevent the crash and try to catch in debug why it is happening.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:

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

5 years ago[Win] Unreviewed build fix after r160908.
bfulgham@apple.com [Fri, 20 Dec 2013 17:27:19 +0000 (17:27 +0000)]
[Win] Unreviewed build fix after r160908.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add
missing export.

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

5 years agoFix asserting accesibility tests.
antti@apple.com [Fri, 20 Dec 2013 16:50:53 +0000 (16:50 +0000)]
Fix asserting accesibility tests.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::supportsFocus): Accessibility code checks focus status during painting.

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

5 years ago[MIPS] Missing MacroAssemblerMIPS::branchTest8(ResultCondition, BaseIndex, TrustedImm32)
commit-queue@webkit.org [Fri, 20 Dec 2013 15:51:00 +0000 (15:51 +0000)]
[MIPS] Missing MacroAssemblerMIPS::branchTest8(ResultCondition, BaseIndex, TrustedImm32)
https://bugs.webkit.org/show_bug.cgi?id=126062

Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-12-20
Reviewed by Mark Hahnenberg.

* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::branchTest8):

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

5 years ago[sh4] Add missing implementation in MacroAssembler to fix build.
commit-queue@webkit.org [Fri, 20 Dec 2013 15:48:46 +0000 (15:48 +0000)]
[sh4] Add missing implementation in MacroAssembler to fix build.
https://bugs.webkit.org/show_bug.cgi?id=126063

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-12-20
Reviewed by Mark Hahnenberg.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::branchTest8):

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

5 years ago[arm] Add missing implementation in MacroAssembler to fix CPU(ARM_TRADITIONAL) build.
commit-queue@webkit.org [Fri, 20 Dec 2013 15:46:34 +0000 (15:46 +0000)]
[arm] Add missing implementation in MacroAssembler to fix CPU(ARM_TRADITIONAL) build.
https://bugs.webkit.org/show_bug.cgi?id=126064

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-12-20
Reviewed by Mark Hahnenberg.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::branchTest8):

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

5 years agoUnreviewed GTK build fix after r160909.
zandobersek@gmail.com [Fri, 20 Dec 2013 15:36:56 +0000 (15:36 +0000)]
Unreviewed GTK build fix after r160909.
Remove remaining uses of AttachLazily in code specific to the GTK port.

* html/shadow/MediaControlsGtk.cpp:
(WebCore::MediaControlsGtk::initializeControls):
(WebCore::MediaControlsGtk::createTextTrackDisplay):

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

5 years ago[GTK] The fullscreen API should be enabled by default
commit-queue@webkit.org [Fri, 20 Dec 2013 14:58:40 +0000 (14:58 +0000)]
[GTK] The fullscreen API should be enabled by default
https://bugs.webkit.org/show_bug.cgi?id=125993

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2013-12-20
Reviewed by Gustavo Noronha Silva.

Set the WebSettings property to TRUE

Source/WebKit/gtk:

* webkit/webkitwebsettings.cpp:
(webkit_web_settings_class_init):

Source/WebKit2:

* UIProcess/API/gtk/WebKitSettings.cpp:
(webkit_settings_class_init):

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

5 years agoCreate render tree lazily
antti@apple.com [Fri, 20 Dec 2013 14:44:23 +0000 (14:44 +0000)]
Create render tree lazily
https://bugs.webkit.org/show_bug.cgi?id=120685

Source/WebCore:

Reviewed by Andreas Kling.

We currently recompute style and construct renderer for each DOM node immediately after they are added to
the tree. This is often inefficient as the style may change immediately afterwards and the work needs to be
redone.

With this patch we always compute style and construct render tree lazily, either on style recalc timer or
synchronously when they are needed. It also removes the 'attached' bit. If document has render tree then
all nodes are conceptually "attached" even if this happens lazily.

The patch slightly changes behavior of implicit CSS transitions. A synchronous style change during parsing
may not trigger the animation anymore as laziness means we don't see anything changing. This matches Firefox
and Chrome in our test cases.

* WebCore.exp.in:
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::appendChild):

    All attaching is now lazy, remove AttachLazily.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):

    SVG renderers with !isValid() have empty display property value for some reason. Keep the behavior.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::updateTreeAfterInsertion):
* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::createRenderTree):
(WebCore::Document::destroyRenderTree):

    Remove attach bit maintenance.

(WebCore::Document::webkitDidExitFullScreenForElement):

    Do lazy render tree reconstruction after returning from full screen. That is the only reliable way
    to get the render tree back to decent shape.

* dom/Element.cpp:
(WebCore::Element::isFocusable):

    Remove pointless !renderer()->needsLayout() assert.

(WebCore::Element::addShadowRoot):
(WebCore::Element::childShouldCreateRenderer):
(WebCore::Element::resetComputedStyle):

    Take care to reset computed style in all descendants. attachRenderTree no longer does this.

* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::appendChild):
(WebCore::Node::setNeedsStyleRecalc):

    Propagate ReconstructRenderTree.

(WebCore::Node::attached):

    Emulate the behavior of old attached bit for now so existing code calling this mostly stays working.

* dom/Node.h:

    Add new ReconstructRenderTree value for StyleChangeType.

* dom/Range.cpp:
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareNode):
(WebCore::Range::intersectsNode):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::canRebalance):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::activeElement):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):

    TextControlInnerTextElement always preserves newline even if it doesn't have style yet.

(WebCore::HTMLElement::supportsFocus):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute):
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):

    Don't autofocus until we have renderer.

* html/HTMLFormControlElementWithState.cpp:
(WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):

    Lazy render tree construction.

(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::executeTask):

    Don't attach renderer after construction.

* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::invalidateDistribution):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::willAttachRenderers):
(WebCore::InsertionPoint::willDetachRenderers):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::createControls):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::getDisplayTree):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::preload):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachTextRenderer):
(WebCore::Style::detachTextRenderer):

    Remove attached bit maintenance.

(WebCore::Style::attachChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachShadowRoot):
(WebCore::Style::detachRenderTree):
(WebCore::Style::resolveLocal):
* svg/SVGTests.cpp:
(WebCore::SVGTests::handleAttributeChange):

    Make lazy.

* testing/Internals.cpp:
(WebCore::Internals::attached):
(WebCore::Internals::elementRenderTreeAsText):
(WebCore::Internals::markerAt):
(WebCore::Internals::nodesFromRect):

LayoutTests:

Reviewed by Andreas Kling.

Most of these are non-visible render tree dump changes (they become simpler).

* editing/selection/click-on-head-margin-expected.txt:
* fast/css-generated-content/before-content-continuation-chain-expected.txt:
* fast/css/transition-color-unspecified.html:
* fast/dom/adopt-node-crash-2-expected.txt:
* fast/dom/modify-node-and-while-in-the-callback-too-crash-expected.txt:
* fast/forms/radio/radio_checked_dynamic-expected.txt:
* fast/frames/lots-of-iframes-expected.txt:
* fast/frames/sandboxed-iframe-autofocus-denied-expected.txt:
* fast/table/table-row-style-not-updated-with-after-content-expected.txt:
* fullscreen/full-screen-render-inline-expected.txt:
* fullscreen/parent-flow-inline-with-block-child-expected.txt:
* platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt:
* platform/mac/fast/css-generated-content/table-row-group-to-inline-expected.txt:
* platform/mac/fast/dynamic/011-expected.txt:
* platform/mac/fast/forms/formmove3-expected.txt:
* platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt:
* platform/mac/fast/invalid/001-expected.txt:
* platform/mac/fast/invalid/003-expected.txt:
* platform/mac/fast/invalid/004-expected.txt:
* platform/mac/fast/invalid/007-expected.txt:
* platform/mac/fast/invalid/019-expected.txt:
* platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
* platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
* platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
* platform/mac/fast/ruby/ruby-base-merge-block-children-crash-expected.txt:
* platform/mac/tables/mozilla/bugs/bug113235-1-expected.txt:
* platform/mac/tables/mozilla/bugs/bug647-expected.txt:
* platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
* plugins/plugin-remove-readystatechange-expected.txt:
* svg/custom/system-language-crash-expected.txt:
* transitions/equivalent-background-image-no-transition.html:
* transitions/repeated-firing-background-color.html:
* transitions/transition-duration-cleared-in-transitionend-crash.html:

    Adopt a few transition test cases to new behavior.

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

5 years ago[ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
mario.prada@samsung.com [Fri, 20 Dec 2013 14:12:04 +0000 (14:12 +0000)]
[ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
https://bugs.webkit.org/show_bug.cgi?id=125854

Reviewed by Chris Fleizach.

Tools:

Ensure we don't ever create instances of AccessibilityUIElement
wrapping invalid platform-specific accessibility objects in DRT,
both for consistency with what WKTR does (so we avoid situations
where some tests fail in WK2 and not in WK1) and also to avoid
overlooking tests that might not be checking the right thing.

* DumpRenderTree/AccessibilityUIElement.cpp:
(AccessibilityUIElement::makeJSAccessibilityUIElement): Return a
nullPtr if the platformUIElement() is not a valid one.
* DumpRenderTree/AccessibilityUIElement.h:
(AccessibilityUIElement::platformUIElement): Added const modifier.

LayoutTests:

Updated tests and expectations to keep them passing after the
change done in DRT, without changing their actual purpose.

* platform/gtk/accessibility/roles-exposed.html: Make sure we
print "AXRole: (no element)" when accessibilityElementByID() does
not return a valid object, not to confuse it with cases where the
returned string for the role is an empty string.
* platform/gtk/accessibility/roles-exposed-expected.txt: Update
test expectations to reflect the "AXRole: (no element)" string
that is now being exposed. Also, replace the (wrongly added) PASS
expectations with FAIL for rowgroups, which are currently not
being exposed for ATK either.

* accessibility/deleting-iframe-destroys-axcache.html: Just
consider the first and third sons of the accessibility object for
the body (instead of the grandsons), so the test can run both in
Mac, where sons and grandsons are exposed, and ATK, where only
sons are exposed (no StaticText objects exposed there).

* accessibility/non-data-table-cell-title-ui-element.html: Use
accessibilityElementById() to get the accessibility object for the
"skip" table header instead of navigating with childAtIndex(),
since the hierarchy is not the same for Mac and ATK based ports.

* platform/mac/accessibility/search-predicate.html: Do not rely on
shouldBe() together with the string "AXRole: " when asking for the
role of objects that should no longer be in the accessibility
tree, and use shouldBeUndefined() instead.
* platform/mac/accessibility/search-when-element-starts-in-table.html: Ditto.

* platform/mac/accessibility/search-predicate-expected.txt: Update
expectations according to the usage of shouldBeUndefined().
* platform/mac/accessibility/search-when-element-starts-in-table-expected.txt: Ditto.

* platform/mac/TestExpectations: Add loading-iframe-updates-axtree.html
here, since it seems not to be returning the expected values for
either the scrollarea and the webarea in the iframe (see bug 126066).

* platform/mac-wk2/TestExpectations: Add search-when-element-starts-in-table.html
here, since it does not return an undefined object in WebKit2 when
the search query should return no results (see bug 125996).

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

5 years agoDevirtualize RenderElement::setStyle().
akling@apple.com [Fri, 20 Dec 2013 13:47:42 +0000 (13:47 +0000)]
Devirtualize RenderElement::setStyle().
<https://webkit.org/b/126065>

setStyle() was only virtual in order to let RenderSVGBlock override
the display type in some cases. Devirtualized it and moved the fixup
logic to StyleResolver::adjustRenderStyle().

This hack had an evil twin in RenderElement::initializeStyle() that
also goes away. FIXME--!

Based on a Blink change by Elliott Sprehn.

Reviewed by Antti Koivisto.

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

5 years ago[CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the...
stavila@adobe.com [Fri, 20 Dec 2013 13:44:45 +0000 (13:44 +0000)]
[CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the region are not correctly repainted
https://bugs.webkit.org/show_bug.cgi?id=117259

Reviewed by Antti Koivisto.

Source/WebCore:

When computing the repaint rect for a region, the existing visual overflow must be taken into consideration.
For this purpose, I overridden the visualOverflowRect method in RenderNamedFlowFragment, which ends up being
called from RenderBox::clippedOverflowRectForRepaint.

Test: fast/regions/hover-single-flow-from-none-overflow.html
      fast/regions/hover-single-flow-from-none-overflow-top.html

* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::visualOverflowRect):
* rendering/RenderNamedFlowFragment.h:

LayoutTests:

Added new tests and rebased existing test.

* fast/regions/hover-single-flow-from-none-overflow-expected.html: Added.
* fast/regions/hover-single-flow-from-none-overflow.html: Added.
* fast/regions/hover-single-flow-from-none-overflow-top-expected.html: Added.
* fast/regions/hover-single-flow-from-none-overflow-top.html: Added.
* fast/regions/repaint/repaint-regions-overflow-expected.txt: Rebased.

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

5 years ago[GTK] Some unit tests using web extensions fail when run alone
carlosgc@webkit.org [Fri, 20 Dec 2013 12:11:45 +0000 (12:11 +0000)]
[GTK] Some unit tests using web extensions fail when run alone
https://bugs.webkit.org/show_bug.cgi?id=126002

Reviewed by Gustavo Noronha Silva.

The problem is that the page is created before the dbus connection
has been established, and we are connecting to web-page-created
signal once we have a valid dbus connection. We should connect to
the signal before connecting to dbus and queue any request to emit
a dbus signal until the connection is set. This also fixes the
WebExtensions tests when using the network process because a new
web process is launched for every test case.

* UIProcess/API/gtk/tests/WebExtensionTest.cpp:
(DelayedSignal::DelayedSignal): Helper struct to queue signal
emissions requested before the dbus connection has been
established.
(emitDocumentLoaded): Emit the dbus DocumentLoaded signal.
(documentLoadedCallback): Queue the signal emission if we still
don't have a connection or call emitDocumentLoaded otherwise.
(emitURIChanged): Emit the dbus URIChanged signal.
(uriChangedCallback): Queue the signal emission if we still don't
have a connection or call emitURIChanged otherwise.
(pageCreatedCallback): Pass the web extension as user data to
document-loaded and uri-changed callbacks.
(busAcquiredCallback): Set the connection as user data of the web
extension and process any delayed signal emission pending.
(webkit_web_extension_initialize): Connect to web-page-create
signal before connecting to dbus.

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

5 years agoProgrammatically-inserted children lack accessibility events
mario.prada@samsung.com [Fri, 20 Dec 2013 11:52:17 +0000 (11:52 +0000)]
Programmatically-inserted children lack accessibility events
https://bugs.webkit.org/show_bug.cgi?id=100275

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/children-changed-sends-notification.html

Emit children-changed::add and children-changed::remove whenever
an object has been added/removed to the accessibility hierarchy,
that is, when a new AtkObject is being attached/detached.

* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::detachWrapper): Added a new parameter and
updated all the prototypes in different ports.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache): Call detachWrapper()
specifying that we do it because the cache is being destroyed.
(WebCore::AXObjectCache::remove): Call detachWrapper() specifying
that we do it because an accessible element is being destroyed.

* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::detachWrapper): Emit the children-changed
signal when needed. We rely on the cached reference to the parent
AtkObject (using the implementation of atk_object_get_parent from
the AtkObject class) to find the right object to emit the signal
from here, since the accessibility hierarchy from WebCore will no
longer be accessible at this point.
(WebCore::AXObjectCache::attachWrapper): Emit the children-change
signal from here unless we are in the middle of a layout update,
trying to provide as much information (e.g. the offset) as possible.
(WebCore::AXObjectCache::postPlatformNotification): Make sure we
update (touch) the subtree under an accessibility object whenever
we receive AXChildrenChanded from WebCore, to ensure that those
objects will also be visible rightaway to ATs, and that those get
properly notified of the event at that very same moment.

* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper): Updated function signature.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper): Ditto.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::detachWrapper): Ditto.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::children): Add the option ot
request the AccessibilityChildrenVector without updating it if
needed, to avoid maybe recreating the child subtree when trying to
get the offset of a newly attached element from attachWrapper.
* accessibility/AccessibilityObject.h:

Tools:

Update DRT and WebKitTestRunner to handle the children-changed
signal properly, considering the detail and optional parameters.

* DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp: Updated.
(axObjectEventListener):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: Updated.

LayoutTests:

Add new test to chack that children-changed signals are properly
emitted when adding/removing elements in the accessibility hierarchy.

* accessibility/children-changed-sends-notification-expected.txt: Added.
* accessibility/children-changed-sends-notification.html: Added.

Update test to filter out unrelated non-loading events.
* accessibility/loading-iframe-sends-notification.html: Updated.

Skip the test on the Mac as it does not expose these kind of
notifications when children are being added or removed.
* platform/mac/TestExpectations: Skip newly added test.

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

5 years agoRemoved unused BUILDER_BASE_URL.
ossy@webkit.org [Fri, 20 Dec 2013 11:28:40 +0000 (11:28 +0000)]
Removed unused BUILDER_BASE_URL.
https://bugs.webkit.org/show_bug.cgi?id=125442

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-12-20
Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:
(JSONGeneratorTest._test_json_generation): Trivial test fix after r160900.

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

5 years agoMove function calls outside loop in dom
commit-queue@webkit.org [Fri, 20 Dec 2013 11:02:18 +0000 (11:02 +0000)]
Move function calls outside loop in dom
https://bugs.webkit.org/show_bug.cgi?id=125916

Patch by Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com> on 2013-12-20
Reviewed by Csaba Osztrogonác.

Do not call length() in each iteration.

* dom/Element.cpp:
(WebCore::Element::cloneAttributesFromElement):
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):

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

5 years agoRemoved unused BUILDER_BASE_URL.
commit-queue@webkit.org [Fri, 20 Dec 2013 11:00:51 +0000 (11:00 +0000)]
Removed unused BUILDER_BASE_URL.
https://bugs.webkit.org/show_bug.cgi?id=125442

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2013-12-20
Reviewed by Csaba Osztrogonác.

The string constant BUILDER_BASE_URL is passed around several times,
but we don't use it anywhere. It is a leftover from Chromium, cleaned it up.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._upload_json_files):
* Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
(JSONLayoutResultsGenerator.__init__):
* Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
(JSONResultsGenerator.__init__):

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

5 years agoBuild fails in debug mode after r160834.
commit-queue@webkit.org [Fri, 20 Dec 2013 10:52:32 +0000 (10:52 +0000)]
Build fails in debug mode after r160834.
https://bugs.webkit.org/show_bug.cgi?id=126059

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2013-12-20
Reviewed by Csaba Osztrogonác.

Debug mode build failed due to comparing signed and unsigned in
ASSERT(). Now both values are unsigned.

* wtf/dtoa/double-conversion.cc:

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

5 years agoREGRESSION: cnn.com will continue to reveal 1 px of overhang after rubber-banding
bdakin@apple.com [Fri, 20 Dec 2013 07:20:20 +0000 (07:20 +0000)]
REGRESSION: cnn.com will continue to reveal 1 px of overhang after rubber-banding
at the top
https://bugs.webkit.org/show_bug.cgi?id=126054

Reviewed by Simon Fraser.

This regression was caused by http://trac.webkit.org/changeset/160791 It turns out
that the line of code I removed was not always a no-op. In some instances, like on
cnn.com, it would ensure that our final scroll position after a rubber-band was
not something within the overhang area. It was still wrong in its assumption that
rubber-band is always bouncing back the spot it originated from. So this patch
continues to ignore the rubber-bands origin, and instead finds the nearest point
that is not in the overhang area, and scrolls to that point instead of the origin.

* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::adjustScrollPositionToBoundsIfNecessary):
* platform/mac/ScrollElasticityController.h:
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::snapRubberBandTimerFired):

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

5 years agoWeb Inspector: Frontend Error when selecting Database folder in Resources Sidebar
commit-queue@webkit.org [Fri, 20 Dec 2013 05:52:56 +0000 (05:52 +0000)]
Web Inspector: Frontend Error when selecting Database folder in Resources Sidebar
https://bugs.webkit.org/show_bug.cgi?id=126029

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-12-19
Reviewed by Timothy Hatcher.

Treat the DatabaseHostTreeElement tree element like a folder. It pretty much
is a folder, but inherits from StorageTreeElement to share some code there.

* UserInterface/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):

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

5 years agoREGRESSION(r160847): fast/events/overflowchanged-inside-selection-collapse-crash...
rniwa@webkit.org [Fri, 20 Dec 2013 04:01:34 +0000 (04:01 +0000)]
REGRESSION(r160847): fast/events/overflowchanged-inside-selection-collapse-crash.html fails
https://bugs.webkit.org/show_bug.cgi?id=126037

Reviewed by Anders Carlsson.

Since overflowchanged event is now asynchronous, make the call to testRunner.notifyDone() also asynchronous.

* TestExpectations:
* fast/dynamic/paused-event-dispatch.html:

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

5 years agocheck-webkit-style mistakenly flags assigning to a dereferenced pointer
commit-queue@webkit.org [Fri, 20 Dec 2013 03:49:53 +0000 (03:49 +0000)]
check-webkit-style mistakenly flags assigning to a dereferenced pointer
https://bugs.webkit.org/show_bug.cgi?id=126041

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-12-19
Reviewed by Ryosuke Niwa.

When checking for lines like "Foo *bar;", check-webkit-style doesn't make
sure that there is a declaration. This patch makes sure that there is a
declaration in order to flag spacing around asterisks.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_spacing):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_pointer_reference_marker_location):

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