WebKit-https.git
7 years ago[Win] Unreviewed build fix for VS2013
bfulgham@apple.com [Sat, 14 Dec 2013 02:02:47 +0000 (02:02 +0000)]
[Win] Unreviewed build fix for VS2013

* win/lib32/WebKitSystemInterface.lib: Updated to use VS2013 _MSC_VER symbols
for linking.

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

7 years agoSVG bindings are improperly being generated with "fastGetAttribute"
bfulgham@apple.com [Sat, 14 Dec 2013 01:53:17 +0000 (01:53 +0000)]
SVG bindings are improperly being generated with "fastGetAttribute"
https://bugs.webkit.org/show_bug.cgi?id=125670

Reviewed by Darin Adler.

A bug was introduced in r152845 that improperly called the
IsSVGAnimatedType using the $attribute hash, rather than the
expected $attribute->signature->type.

* bindings/scripts/CodeGenerator.pm:
(GetterExpression): Clean up attribute type confusion.

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

7 years ago[Win] Unreviewed build fix after r160548
bfulgham@apple.com [Sat, 14 Dec 2013 01:43:45 +0000 (01:43 +0000)]
[Win] Unreviewed build fix after r160548

* WebCore.vcxproj/WebCore.vcxproj: Exclude MediaPlayerPrivateQuickTimeVisualContext from
Windows build.
* platform/graphics/MediaPlayer.cpp: Don't use QuickTime as the PlatformMediaEngine.

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

7 years agoUnreviewed build correction after r160548.
bfulgham@apple.com [Sat, 14 Dec 2013 01:23:25 +0000 (01:23 +0000)]
Unreviewed build correction after r160548.

* WebKit.vcxproj/WebKit/WebKitApple.props: Exclude linking with QTMoveWin, which does
not build with VS2013.

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

7 years agoUnreviewed build correction after r160548
bfulgham@apple.com [Sat, 14 Dec 2013 01:16:34 +0000 (01:16 +0000)]
Unreviewed build correction after r160548

* WebKit.vcxproj/WebKit.sln: Revise build order to avoid errors with ANGLE included.

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

7 years ago[Win] Unreviewed build fix after r160548
bfulgham@apple.com [Sat, 14 Dec 2013 01:01:38 +0000 (01:01 +0000)]
[Win] Unreviewed build fix after r160548

Source/ThirdParty/ANGLE:

I missed the ANGLE files, since we aren't building these
on the Apple Windows port at the moment.

* ANGLE.vcxproj/libEGL.vcxproj: Update to VS2013
* ANGLE.vcxproj/libGLESv2.vcxproj: Ditto
* ANGLE.vcxproj/preprocessor.vcxproj: Ditto
* ANGLE.vcxproj/translator_common.vcxproj: Ditto
* ANGLE.vcxproj/translator_glsl.vcxproj: Ditto
* ANGLE.vcxproj/translator_hlsl.vcxproj: Ditto

Source/WebKit:

* WebKit.vcxproj/WebKit.sln: Revised to build under VS2013.

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

7 years ago[WK2] Start removing calls to String::characters()
weinig@apple.com [Fri, 13 Dec 2013 23:59:14 +0000 (23:59 +0000)]
[WK2] Start removing calls to String::characters()
https://bugs.webkit.org/show_bug.cgi?id=125699

Reviewed by Anders Carlsson.

* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::decodePlatformData):
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
(WebKit::PluginInfoStore::findPlugin):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::pluginsDirectories):
(WebKit::PluginInfoStore::pluginPathsInDirectory):
* UIProcess/cf/WebPreferencesCF.cpp:
(WebKit::makeKey):
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::load):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadStringImpl):
(WebKit::WebPage::loadHTMLString):
(WebKit::WebPage::loadAlternateHTMLString):
(WebKit::WebPage::loadPlainTextString):
(WebKit::WebPage::loadWebArchiveData):
* WebProcess/WebPage/WebPage.h:

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

7 years agoLLInt should not conditionally branch to to labels outside of its function
mhahnenberg@apple.com [Fri, 13 Dec 2013 23:57:39 +0000 (23:57 +0000)]
LLInt should not conditionally branch to to labels outside of its function
https://bugs.webkit.org/show_bug.cgi?id=125713

Reviewed by Geoffrey Garen.

Conditional branches are insufficient for jumping to out-of-function labels.
The fix is to use an unconditional jmp to the label combined with a conditional branch around the jmp.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

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

7 years agoUpdate build instructions for Windows following upgrade to VS2013.
roger_fong@apple.com [Fri, 13 Dec 2013 23:56:12 +0000 (23:56 +0000)]
Update build instructions for Windows following upgrade to VS2013.

* building/tools.html:

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

7 years agoUpdate Webkit bots.
lforschler@apple.com [Fri, 13 Dec 2013 23:29:07 +0000 (23:29 +0000)]
Update Webkit bots.

Unreviewed.

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

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

7 years ago[GTK] Remove Warnings in building about duplicate INSPECTOR variables
joepeck@webkit.org [Fri, 13 Dec 2013 23:28:45 +0000 (23:28 +0000)]
[GTK] Remove Warnings in building about duplicate INSPECTOR variables
https://bugs.webkit.org/show_bug.cgi?id=125710

Reviewed by Tim Horton.

* GNUmakefile.am:

Source/JavaScriptCore:

* GNUmakefile.am:

Source/WebCore:

* GNUmakefile.am:

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

7 years ago[WebGL] Check for global variable precision mismatch between vertex and fragment...
roger_fong@apple.com [Fri, 13 Dec 2013 23:04:18 +0000 (23:04 +0000)]
[WebGL] Check for global variable precision mismatch between vertex and fragment shaders.
https://bugs.webkit.org/show_bug.cgi?id=125546.
<rdar://problem/15203364>

Reviewed by Brent Fulgham.

Covered Khronos conformances tests:
webgl/1.0.2/glsl/misc/shader-with-global-variable-precision-mismatch.html

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::linkProgram):
* platform/graphics/GraphicsContext3D.h: Rename areProgramSymbolsValid since it currently only serves one purpose.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::precisionsMatch):
* platform/mac/TestExpectations:
Unskip webgl/1.0.2/glsl/misc/shader-with-global-variable-precision-mismatch.html

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

7 years agoWK2: Add support for inline candidates on iOS.
enrica@apple.com [Fri, 13 Dec 2013 22:09:07 +0000 (22:09 +0000)]
WK2: Add support for inline candidates on iOS.
https://bugs.webkit.org/show_bug.cgi?id=125667

Reviewed by Benjamin Poulain.

The state required to support inline candidates is cached in the UI process.
Asynchronous messages are used to set and confirm the composition.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
* UIProcess/API/ios/WKInteractionView.mm:
(-[WKInteractionView textFirstRect]):
(-[WKInteractionView textLastRect]):
(-[WKInteractionView hasMarkedText]):
(-[WKInteractionView markedText]):
(-[WKInteractionView setMarkedText:selectedRange:]):
(-[WKInteractionView unmarkText]):
(-[WKInteractionView _selectionChanged]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::confirmComposition):
(WebKit::WebPageProxy::notifyRevealedSelection):
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::confirmComposition):

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

7 years agoCleanup CodeGeneratorInspectorStrings a bit
commit-queue@webkit.org [Fri, 13 Dec 2013 21:57:35 +0000 (21:57 +0000)]
Cleanup CodeGeneratorInspectorStrings a bit
https://bugs.webkit.org/show_bug.cgi?id=125705

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

* inspector/scripts/CodeGeneratorInspectorStrings.py:
Use ${foo} variable syntax and add an ASCIILiteral.

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

7 years ago[Win] Unreviewed build fix after r160563
bfulgham@apple.com [Fri, 13 Dec 2013 21:52:33 +0000 (21:52 +0000)]
[Win] Unreviewed build fix after r160563

* JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj: Missed the Debug
target in my last patch.

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

7 years ago[Win] Unreviewed build fix after r160548
bfulgham@apple.com [Fri, 13 Dec 2013 21:49:36 +0000 (21:49 +0000)]
[Win] Unreviewed build fix after r160548

Source/JavaScriptCore:

* JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj: Specify
that we are using the vs12_xp target for Makefile-based projects.
* JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj: Ditto
* JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj: Ditto.

Source/WebCore:

* WebCore.vcxproj/WebCoreGenerated.vcxproj: Specify that we are
using the vs120_xp build target for Makefile-based projects.

Source/WTF:

* WTF.vcxproj/WTFGenerated.vcxproj: Specify that we are using
the vs12_xp target for Makefile-based projects.

Tools:

* win/AssembleBuildLogs/AssembleBuildLogs.vcxproj: Specify
we are using vs12_xp target for Makefile-based projects.

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

7 years agoRequire variadic templates to build WebKit
andersca@apple.com [Fri, 13 Dec 2013 21:36:39 +0000 (21:36 +0000)]
Require variadic templates to build WebKit
https://bugs.webkit.org/show_bug.cgi?id=125701

Reviewed by Andreas Kling.

* wtf/Compiler.h:
Add an #error if variadic templates are disabled.

* wtf/NeverDestroyed.h:
* wtf/PassRef.h:
* wtf/StdLibExtras.h:
Remove a bunch of COMPILER_SUPPORTS(CXX_VARIADIC_TEMPLATES) #ifdefs.

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

7 years agoUpdate Apple Webkit Bots
lforschler@apple.com [Fri, 13 Dec 2013 21:26:07 +0000 (21:26 +0000)]
Update Apple Webkit Bots

Unreviewed.

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

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

7 years agoPost-process exported WebKit headers based on PLATFORM_NAME
aestes@apple.com [Fri, 13 Dec 2013 21:18:46 +0000 (21:18 +0000)]
Post-process exported WebKit headers based on PLATFORM_NAME
https://bugs.webkit.org/show_bug.cgi?id=125682

Reviewed by Dan Bernstein.

Added a build phase that calls unifdef(1) on each of WebKit's Public
and Private headers, defining TARGET_OS_EMBEDDED, TARGET_OS_IPHONE, and
TARGET_IPHONE_SIMULATOR based on the value of PLATFORM_NAME. This has
the effect of stripping out bits not needed by the SDK being built for.

* WebKit.xcodeproj/project.pbxproj:

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

7 years agoMake inspector folder groups smarter in JavaScriptCore.xcodeproj
joepeck@webkit.org [Fri, 13 Dec 2013 21:08:20 +0000 (21:08 +0000)]
Make inspector folder groups smarter in JavaScriptCore.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=125663

Reviewed by Darin Adler.

* JavaScriptCore.xcodeproj/project.pbxproj:

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

7 years agoWeb Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
joepeck@webkit.org [Fri, 13 Dec 2013 21:07:13 +0000 (21:07 +0000)]
Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
https://bugs.webkit.org/show_bug.cgi?id=125595

Reviewed by Timothy Hatcher.

* GNUmakefile.am:

Source/JavaScriptCore:

  - Move CodeGeneration scripts from WebCore into JavaScriptCore/inspector/scripts
  - For ports that build WebKit frameworks separately, export the scripts as PrivateHeaders
  - Update CodeGeneratorInspector.py in a few ways:
    - output dynamic filenames, so JavaScriptCore generates InspectorJSFoo.* and WebCore generates InspectorWebFoo.*
    - take in more then one protocol JSON file. The first contains domains to generate, the others are dependencies
      that are generated elsewhere that we can depend on for Types.
  - Add DerivedSources build step to generate the Inspector Interfaces

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.vcxproj/copy-files.cmd:
* JavaScriptCore.xcodeproj/project.pbxproj:
Add scripts and code generation.

* inspector/protocol/Runtime.json: Renamed from Source/WebCore/inspector/protocol/Runtime.json.
Move protocol file into JavaScriptCore so its types will be generated in JavaScriptCore.

* inspector/scripts/CodeGeneratorInspector.py: Renamed from Source/WebCore/inspector/CodeGeneratorInspector.py.
Updates to the script as listed above.

* inspector/scripts/CodeGeneratorInspectorStrings.py: Renamed from Source/WebCore/inspector/CodeGeneratorInspectorStrings.py.
* inspector/scripts/generate-combined-inspector-json.py: Renamed from Source/WebCore/inspector/Scripts/generate-combined-inspector-json.py.
Moved from WebCore into JavaScriptCore for code generation.

Source/WebCore:

  - CodeGeneration changed to output Frontend and Backend dispatchers
    in namespace Inspector. So update all the agent's appropriately.
  - Update Derived Sources code generation to use the Scripts that had
    moved to JavaScriptCore. Some ports just use JSC/inspector/scripts
    directly, but others have to use the Scripts exported by JSC
    in JavaScriptCore's PrivateHeaders.
  - Add ForwardingHeaders for the files generated in JavaScriptCore.
  - Update the names of Inspector DerivedSources files, since they
    were renamed to InspectorWeb*.

No new tests, this only moves code around. There are no functional changes.

* CMakeLists.txt:
* DerivedSources.make:
* ForwardingHeaders/inspector/InspectorJSBackendDispatchers.h: Added.
* ForwardingHeaders/inspector/InspectorJSFrontendDispatchers.h: Added.
* ForwardingHeaders/inspector/InspectorJSTypeBuilders.h: Added.
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/build-generated-files.sh:
* WebCore.xcodeproj/project.pbxproj:
Remove files, rename files, update code generation.

* make-generated-sources.sh:
Update this standalone developer script to fill in the new InspectorScripts variable.

* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
* inspector/InspectorAgent.cpp:
* inspector/InspectorAgent.h:
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseResource.cpp:
* inspector/InspectorDatabaseResource.h:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorFrontendClientLocal.cpp:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorTimelineAgent.cpp:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.h:
* inspector/ScriptCallFrame.cpp:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.h:
Updates header names and class namespace changes.

Source/WebInspectorUI:

* Scripts/copy-user-interface-resources.sh:
Copy all the different backend commands files.

* Scripts/update-InspectorBackendCommands.rb:
Update with respect to new script location and new file names.

* WebInspectorUI.xcodeproj/project.pbxproj:
Remove Inputs and Outputs of build phase, which were wrong.
Now this build phase always runs, and not by accident.

* UserInterface/InspectorJSBackendCommands.js: Added.
* UserInterface/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/InspectorBackendCommands.js.
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/6.0/InspectorBackendCommands.js.
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/7.0/InspectorBackendCommands.js.
* UserInterface/LoadInspectorBackendCommands.js:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.importInspectorScripts):
Update for the new backend commands files.

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

7 years agoUnreviewed build fix after r160548.
bfulgham@apple.com [Fri, 13 Dec 2013 20:54:28 +0000 (20:54 +0000)]
Unreviewed build fix after r160548.

* Scripts/webkitdirs.pm:
(setupCygwinEnv): VCExpress.exe is now called WDExpress.exe.

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

7 years agoFix the build.
andersca@apple.com [Fri, 13 Dec 2013 20:43:48 +0000 (20:43 +0000)]
Fix the build.

Work around a problem in Functional.h by making the DatabaseProcess destructor public.

* DatabaseProcess/DatabaseProcess.h:

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

7 years ago[wk2] Handle pinch-to-zoom gesture
timothy_horton@apple.com [Fri, 13 Dec 2013 20:15:36 +0000 (20:15 +0000)]
[wk2] Handle pinch-to-zoom gesture
https://bugs.webkit.org/show_bug.cgi?id=125604

Reviewed by Sam Weinig.

* UIProcess/API/mac/WKView.mm:
(-[WKView magnifyWithEvent:]):
(-[WKView endGestureWithEvent:]):
Forward the event up the chain if we're not going to handle it.

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

7 years agoAdding RTCPeerConnectionErrorCallback
thiago.lacerda@openbossa.org [Fri, 13 Dec 2013 20:04:40 +0000 (20:04 +0000)]
Adding RTCPeerConnectionErrorCallback
https://bugs.webkit.org/show_bug.cgi?id=125574

Reviewed by Eric Carlson.

According to the spec there should be a RTCPeerConnectionErrorCallback function type for createOffer/Answer,
setLocal/RemoteDescription and updateIce function calls. This callback must handle a DOMError object.

Source/WebCore:

Existing tests were updated.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
* Modules/mediastream/RTCErrorCallback.h: Removed.
* Modules/mediastream/RTCErrorCallback.idl: Removed.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnectionErrorCallback.h: Added.
* Modules/mediastream/RTCPeerConnectionErrorCallback.idl: Added.
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
(WebCore::RTCSessionDescriptionRequestImpl::create):
(WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
(WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
* Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
* Modules/mediastream/RTCVoidRequestImpl.cpp:
(WebCore::RTCVoidRequestImpl::create):
(WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
(WebCore::RTCVoidRequestImpl::requestFailed):
* Modules/mediastream/RTCVoidRequestImpl.h:
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(WebCore::RTCPeerConnectionHandler::incompatibleConstraintsErrorName):
(WebCore::RTCPeerConnectionHandler::invalidSessionDescriptionErrorName):
(WebCore::RTCPeerConnectionHandler::incompatibleSessionDescriptionErrorName):
(WebCore::RTCPeerConnectionHandler::internalErrorName):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCNotifiersMock.cpp:
(WebCore::SessionRequestNotifier::SessionRequestNotifier):
(WebCore::SessionRequestNotifier::fire):
(WebCore::VoidRequestNotifier::VoidRequestNotifier):
(WebCore::VoidRequestNotifier::fire):
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createOffer):
(WebCore::RTCPeerConnectionHandlerMock::createAnswer):

LayoutTests:

* fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
* fast/mediastream/RTCPeerConnection-createAnswer.html:
* fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
* fast/mediastream/RTCPeerConnection-createOffer.html:

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

7 years agoWeb Inspector: provide an abstraction for CodeMirror's TextMarker
graouts@apple.com [Fri, 13 Dec 2013 19:32:49 +0000 (19:32 +0000)]
Web Inspector: provide an abstraction for CodeMirror's TextMarker
https://bugs.webkit.org/show_bug.cgi?id=125695

Reviewed by Timothy Hatcher.

Introduce a new WebInspector.TextMarker class which is used by code with CodeMirror knowledge
to return information related to text markers to objects that should have no direct knowledge
of CodeMirror. Start using this class in TextEditor and SourceCodeTextEditor to remove the
last remaining pieces of CodeMirror knowledge added to SourceCodeTextEditor to fix
https://webkit.org/b/124364.

* UserInterface/CodeMirrorAdditions.js:
Stop using __markedColor to identify a color marker and instead use the type on the matching
WebInspector.TextMarker. Additionally, create a WebInspector.TextMarker with type
WebInspector.TextMarker.Type.Color in createColorMarkers().

* UserInterface/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController):
Use a WebInspector.TextRange to track the edited range and obtain it directly from the
WebInspector.TextMaker used to instantiate the object. We also use the new "text" public
property to create the color.

(WebInspector.CodeMirrorColorEditingController.prototype.set color):
Simply assing the serialized color to the new "text" public property.

(WebInspector.CodeMirrorColorEditingController.prototype.get text):
(WebInspector.CodeMirrorColorEditingController.prototype.set text):
New public property to set get and set the text for the edited range, automatically updating
the range upon setting to a new text.

(WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
Obtain the bounds directly from the WebInspector.TextMarker object.

* UserInterface/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Since we're now tracking the hoveredMarker as a WebInspector.TextMarker, get the CodeMirror
TextMarker from that object to check if it's contained within the text markers at the
hovered position.

* UserInterface/Main.html:
Add the new TextMarker class source.

* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
Use the WebInspector.TextMarker type to identify a given text marker is marking a color.

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
Use the renamed markersAtPosition() method from TextEditor.

(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Use the WebInspector.TextMarker type to identify a given text marker is marking a color.

(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
Since the CodeMirrorColorEditingController is now using a WebInspector.TextRange for its range,
update to use a WebInspector.TextRange API to get the range's start line.

* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.get markers):
Return WebInspector.TextMarker objects instead of CodeMirror TextRange objects.

(WebInspector.TextEditor.prototype.markersAtPosition):
Rename method to a better name instead of using the CodeMirror-influenced name. Also, return
WebInspector.TextMarker objects instead of CodeMirror TextRange objects.

* UserInterface/TextMarker.js: Added.
(WebInspector.TextMarker):
Create a WebInspector.TextMarker with a CodeMirror TextMarker and an optional type.

(WebInspector.TextMarker.textMarkerForCodeMirrorTextMarker):
Static method to either obtain the existing WebInspector.TextMarker for a given CodeMirror
TextMarker, or create a new WebInspector.TextMarker.

(WebInspector.TextMarker.prototype.get codeMirrorTextMarker):
Public property to access the CodeMirror TextMarker objects for classes that have direct
knowledge of CodeMirror.

(WebInspector.TextMarker.prototype.get type):
Public property to access the type used to create this text marker.

(WebInspector.TextMarker.prototype.get range):
(WebInspector.TextMarker.prototype.get bounds):
Public properties allowing easy access to generally useful information related to marked text.

(WebInspector.TextMarker.prototype.clear):
Wrapper for the CodeMirror TextMarker clear() method.

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

7 years agoUpdate Apple bots.
lforschler@apple.com [Fri, 13 Dec 2013 19:27:21 +0000 (19:27 +0000)]
Update Apple bots.

Unreviewed.

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

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

7 years agoDelete INTEL C compiler related code parts.
commit-queue@webkit.org [Fri, 13 Dec 2013 19:24:28 +0000 (19:24 +0000)]
Delete INTEL C compiler related code parts.
https://bugs.webkit.org/show_bug.cgi?id=125625

Patch by Peter Szanka <h868064@stud.u-szeged.hu> on 2013-12-13
Reviewed by Darin Adler.

Source/JavaScriptCore:

* jsc.cpp:
* testRegExp.cpp:

Source/WTF:

* wtf/Assertions.h:
* wtf/Compiler.h:

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

7 years agoPut classes in the IPC directory in the IPC namespace
andersca@apple.com [Fri, 13 Dec 2013 19:21:52 +0000 (19:21 +0000)]
Put classes in the IPC directory in the IPC namespace
https://bugs.webkit.org/show_bug.cgi?id=125665

Reviewed by Sam Weinig.

Also add a hack to config.h that lets us use CoreIPC and IPC interchangeably.

* Platform/IPC/DataReference.cpp:
* Platform/IPC/DataReference.h:
* Platform/IPC/MessageSender.cpp:
* Platform/IPC/MessageSender.h:
* Platform/IPC/StringReference.cpp:
* Platform/IPC/StringReference.h:
* config.h:

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

7 years ago[Win] Switch WebKit solution to Visual Studio 2013
bfulgham@apple.com [Fri, 13 Dec 2013 19:17:57 +0000 (19:17 +0000)]
[Win] Switch WebKit solution to Visual Studio 2013
https://bugs.webkit.org/show_bug.cgi?id=125192

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Update for VS2013
* JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcxproj:
Ditto
* JavaScriptCore.vcxproj/jsc/jsc.vcxproj: Ditto
* JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj: Ditto
* JavaScriptCore.vcxproj/testapi/testapi.vcxproj: Ditto

Source/ThirdParty:

* gtest/msvc/gtest-md.vcxproj: Update for VS2013

Source/WebCore:

* WebCore.vcxproj/WebCore.vcxproj: Update for VS2013
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
* WebCore.vcxproj/WebCoreTestSupport.vcxproj: Ditto

Source/WebInspectorUI:

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Update for VS2013

Source/WebKit:

* WebKit.vcxproj/Interfaces/Interfaces.vcxproj: Update for VS2013
* WebKit.vcxproj/WebKit.sln: Ditto
* WebKit.vcxproj/WebKit/WebKit.vcxproj: Ditto
* WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Ditto
* WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Ditto

Source/WTF:

* WTF.vcxproj/WTF.vcxproj: Update for VS2013
* WTF.vcxproj/WTF.vcxproj.filters: Ditto

Tools:

Project files must reference vs12_xp for 32-bit builds.

* DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj:
Update for VS2013
* DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncher.vcxproj:
Ditto
* DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiff.vcxproj:
Ditto
* DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffLauncher.vcxproj:
Ditto
* DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj:
Ditto
* Scripts/webkitdirs.pm:
(visualStudioInstallDir): Specify VS2013
(visualStudioVersion): Ditto.
(setupAppleWinEnv): Use VS2013 in messages
(setupCygwinEnv): Ditto
* TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
Update for VS2013
* WinLauncher/WinLauncher.vcxproj/WinLauncher.vcxproj:
Ditto
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
Ditto
* win/record-memory/record-memory.vcxproj:
Ditto

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

7 years agoWebCrypto Key.usages should be ordered alphabetically
ap@apple.com [Fri, 13 Dec 2013 19:10:54 +0000 (19:10 +0000)]
WebCrypto Key.usages should be ordered alphabetically
https://bugs.webkit.org/show_bug.cgi?id=125696

Reviewed by Darin Adler.

Source/WebCore:

* crypto/CryptoKey.cpp: (WebCore::CryptoKey::usages): Do it.

LayoutTests:

* crypto/subtle/aes-cbc-192-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-192-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-256-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-256-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html:
* crypto/subtle/aes-cbc-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-generate-key-expected.txt:
* crypto/subtle/aes-cbc-generate-key.html:
* crypto/subtle/aes-cbc-invalid-length-expected.txt:
* crypto/subtle/aes-cbc-invalid-length.html:
* crypto/subtle/aes-kw-wrap-unwrap-aes-expected.txt:
* crypto/subtle/aes-kw-wrap-unwrap-aes.html:
* crypto/subtle/aes-postMessage-expected.txt:
* crypto/subtle/aes-postMessage.html:
* crypto/subtle/hmac-postMessage-expected.txt:
* crypto/subtle/hmac-postMessage.html:
* crypto/subtle/jwk-import-use-values-expected.txt:
* crypto/subtle/jwk-import-use-values.html:
* crypto/subtle/postMessage-worker-expected.txt:
* crypto/subtle/postMessage-worker.html:
* crypto/subtle/resources/postMessage-worker.js:
(onmessage):
* crypto/subtle/rsa-oaep-key-manipulation-expected.txt:
* crypto/subtle/rsa-oaep-key-manipulation.html:
* crypto/subtle/rsa-oaep-wrap-unwrap-aes-expected.txt:
* crypto/subtle/rsa-oaep-wrap-unwrap-aes.html:
* crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes-expected.txt:
* crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html:

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

7 years agoMake some optimizations for DOM bindings involving vectors
darin@apple.com [Fri, 13 Dec 2013 16:27:54 +0000 (16:27 +0000)]
Make some optimizations for DOM bindings involving vectors
https://bugs.webkit.org/show_bug.cgi?id=125680

Reviewed by Andreas Kling.

* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Removed unnecessary copying of vectors when converting them
to JavaScript values.
(WebCore::toRefPtrNativeArray): Use reserveInitialCapacity and uncheckedAppend.
(WebCore::toNativeArray): Ditto.
(WebCore::toNativeArguments): Ditto.

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

7 years agoREGRESSION(r155784): [GTK] Some methods incorrectly removed in r155784 and deprecated...
carlosgc@webkit.org [Fri, 13 Dec 2013 15:41:09 +0000 (15:41 +0000)]
REGRESSION(r155784): [GTK] Some methods incorrectly removed in r155784 and deprecated in r158662
https://bugs.webkit.org/show_bug.cgi?id=125692

Reviewed by Martin Robinson.

In r155784 the build was fixed by skipping Console::profile() and
Console::profileEnd(), but the patch also skipped other methods
containing the profile method name. Those were incorrectly
deprecated in r158662 thinking that the property had been removed
in the idl.

* bindings/gobject/WebKitDOMDeprecated.cpp: Undeprecate
webkit_dom_html_head_element_get_profile and
webkit_dom_html_head_element_set_profile.
* bindings/gobject/WebKitDOMDeprecated.h: Ditto.
* bindings/gobject/WebKitDOMDeprecated.symbols: Ditto.
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction): Skip webkit_dom_console_profile and
webkit_dom_console_profile_end.

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

7 years agoClean up SVGScriptElement
rwlbuis@webkit.org [Fri, 13 Dec 2013 14:13:26 +0000 (14:13 +0000)]
Clean up SVGScriptElement
https://bugs.webkit.org/show_bug.cgi?id=125527

Reviewed by Darin Adler.

Source/WebCore:

From the Blink port of this bug it becomes clear that svg/dom/SVGScriptElement/script-set-href.svg and
svg/dom/svg-element-attribute-js-null.xhtml still hit an assert in Debug because SVGNames::typeAttr can't
be used with fastGetAttribute in all cases, because it can be animatable. However for SVGScriptElement
it is not animatable, so make isAnimatableAttribute virtual (note Debug only method) and allow typeAttr
in the SVGScriptElement case to be useable for fastGetAttribute.

Test: svg/dom/SVGScriptElement/script-type-attribute.svg

* svg/SVGElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::isAnimatableAttribute):
* svg/SVGScriptElement.h:

LayoutTests:

Add test to verify the new type getter/setter behavior on SVScriptElement.
Specifically, the old behavior was setting the JS type property did not reflect in
the actual content attribute being set, the new behavior is to do set the content
attribute when setting the JS type property.

* svg/dom/SVGScriptElement/script-type-attribute-expected.txt: Added.
* svg/dom/SVGScriptElement/script-type-attribute.svg: Added.

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

7 years ago[GTK] Expose also webkit_dom_document_get_url
carlosgc@webkit.org [Fri, 13 Dec 2013 12:40:06 +0000 (12:40 +0000)]
[GTK] Expose also webkit_dom_document_get_url
https://bugs.webkit.org/show_bug.cgi?id=125691

Reviewed by Martin Robinson.

For some reason we expose the URL property, so it can be accessed
with g_object_get(), but we have a special case to not provide a
public getter.

* bindings/gobject/webkitdom.symbols: Add new symbol.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunctions): Remove the special case of URL property.

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

7 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Fri, 13 Dec 2013 12:36:42 +0000 (12:36 +0000)]
Unreviewed EFL gardening

Remove wrong http baselines.

* platform/efl/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Removed.
* platform/efl/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
* platform/efl/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.

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

7 years agoCSSFilterImageValue constructor should require both image and filter.
akling@apple.com [Fri, 13 Dec 2013 10:32:05 +0000 (10:32 +0000)]
CSSFilterImageValue constructor should require both image and filter.
<https://webkit.org/b/125056>

Make the CSSFilterImageValue::create() helper take both the image and
filter CSSValues by PassRef since they should never be null.

Tweaked ComputedStyleExtractor::valueForFilter() to return a PassRef
for this to work.

Reviewed by Anders Carlsson.

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

7 years ago[GTK] Add a unit tests to WebKit2 to test node names
carlosgc@webkit.org [Fri, 13 Dec 2013 10:24:37 +0000 (10:24 +0000)]
[GTK] Add a unit tests to WebKit2 to test node names
https://bugs.webkit.org/show_bug.cgi?id=125686

Reviewed by Gustavo Noronha Silva.

* UIProcess/API/gtk/tests/DOMNodeTest.cpp:
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::runTest):
(registerTests):
* UIProcess/API/gtk/tests/TestDOMNode.cpp:
(testWebKitDOMNodeTagNames):
(beforeAll):

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

7 years agoStyleResolver::adjustRenderStyle() should take RenderStyle references.
akling@apple.com [Fri, 13 Dec 2013 09:56:26 +0000 (09:56 +0000)]
StyleResolver::adjustRenderStyle() should take RenderStyle references.
<https://webkit.org/b/125623>

This function doesn't handle null styles being passed, so prevent
it at compile time.

Reviewed by Anders Carlsson.

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

7 years ago[GTK] Remove the -Wno-c++11-extensions compiler option for Clang builds
zandobersek@gmail.com [Fri, 13 Dec 2013 09:41:16 +0000 (09:41 +0000)]
[GTK] Remove the -Wno-c++11-extensions compiler option for Clang builds
https://bugs.webkit.org/show_bug.cgi?id=125639

Reviewed by Anders Carlsson.

* Source/autotools/SetupCompilerFlags.m4: The -Wno-c++11-extensions compiler option was in use
when building with Clang. It is now removed as the C++11 standard is enabled throughout the project.

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

7 years agoUnreviewed. Further GTK WK2 build fixes after r160504.
zandobersek@gmail.com [Fri, 13 Dec 2013 09:16:21 +0000 (09:16 +0000)]
Unreviewed. Further GTK WK2 build fixes after r160504.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_snapshot):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didInitiateLoadForResource):
(willSendRequestForFrame):
(didReceiveResponseForResource):
(didReceiveContentLengthForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(webkitWebPageDidReceiveMessage):

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

7 years agoEliminate awkward virtualComputedStyle construction
darin@apple.com [Fri, 13 Dec 2013 09:14:30 +0000 (09:14 +0000)]
Eliminate awkward virtualComputedStyle construction
https://bugs.webkit.org/show_bug.cgi?id=125681

Reviewed by Andreas Kling.

* dom/Element.cpp:
(WebCore::Element::computedStyle): Tweak coding style a bit.

* dom/Element.h: Marked computedStyle virtual and got rid of virtualComputedStyle.
This fixes a bug that we would not call SVGElement::computedStyle if we called
it through an Element pointer or reference. Not sure how to get test coverage for this.

* dom/Node.cpp:
(WebCore::Node::computedStyle): Use a loop instead of recursive virtual calls.

* dom/Node.h: Made computedStyle virtual and got rid of virtualComputedStyle.

* svg/SVGElement.cpp:
(WebCore::SVGElement::computedStyle): Tweak coding style a bit.

* svg/SVGElement.h: Made computedStyle virtual (and FINAL) and got rid fo
virtualComputedStyle.

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

7 years agoFix a couple stray uses of RefPtr that should release
darin@apple.com [Fri, 13 Dec 2013 09:10:20 +0000 (09:10 +0000)]
Fix a couple stray uses of RefPtr that should release
https://bugs.webkit.org/show_bug.cgi?id=125679

Reviewed by Andreas Kling.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseFilter): Add calls to release, in
one case rearranging the order of operations slightly so we
don't release the pointer before using it.

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

7 years agoWebCrypto wrapKey operation doesn't check key usage
ap@apple.com [Fri, 13 Dec 2013 08:56:06 +0000 (08:56 +0000)]
WebCrypto wrapKey operation doesn't check key usage
https://bugs.webkit.org/show_bug.cgi?id=125675

Reviewed by Darin Adler.

Source/WebCore:

Tests: crypto/subtle/unwrapKey-check-usage.html
       crypto/subtle/wrapKey-check-usage.html

* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::wrapKey):
Added accidentally omitted code. Other operations are fine.

LayoutTests:

* crypto/subtle/unwrapKey-check-usage-expected.txt: Added.
* crypto/subtle/unwrapKey-check-usage.html: Added.
* crypto/subtle/wrapKey-check-usage-expected.txt: Added.
* crypto/subtle/wrapKey-check-usage.html: Added.

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

7 years agoUnreviewed GTK build fix after r160509.
zandobersek@gmail.com [Fri, 13 Dec 2013 08:35:21 +0000 (08:35 +0000)]
Unreviewed GTK build fix after r160509.

* GNUmakefile.list.am: MessageSender.(cpp|h) files were moved to Platform/IPC.

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

7 years agoGTK buildfix after r160504.
ossy@webkit.org [Fri, 13 Dec 2013 08:24:02 +0000 (08:24 +0000)]
GTK buildfix after r160504.

Patch by Dániel Bátyai <Batyai.Daniel@stud.u-szeged.hu> on 2013-12-13
Reviewed by Csaba Osztrogonác.

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_prefetch_dns):

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

7 years agoAdding a .ycm_extra_conf file for webkitGtk
mrobinson@webkit.org [Fri, 13 Dec 2013 08:16:37 +0000 (08:16 +0000)]
Adding a .ycm_extra_conf file for webkitGtk
https://bugs.webkit.org/show_bug.cgi?id=119618

Patch by Martin Robinson  <mrobinson@igalia.com> and Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2013-12-11
Reviewed by Gustavo Noronha Silva.

Added a YouCompleteMe flag discovery script for Vim and the GTK+ port. The script
read the GTK+ build files to determine dynamically what flags to compile a source
file with. This allows Vim to provide auto-complete for C++/C language. See
https://github.com/Valloric/YouCompleteMe for how to use this file.

.:

* .gitignore: Ignore the YCM symlinks in the tree.

Tools:

* gtk/common.py:
(get_build_path): Added a fatal argument to build_path to avoid crashing YCM on failure.
* gtk/ycm_extra_conf.py: Added.

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

7 years agoNeed ObjC APIs for some InjectedBundle classes.
commit-queue@webkit.org [Fri, 13 Dec 2013 07:22:52 +0000 (07:22 +0000)]
Need ObjC APIs for some InjectedBundle classes.
https://bugs.webkit.org/show_bug.cgi?id=125600

Add ObjC API classes for WebFrame, InjectedBundleScriptWorld, InjectedBundleHitTestResult and InjectedBundleNodeHandle.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2013-12-12
Reviewed by Dan Bernstein.

* Shared/Cocoa/APIObject.mm: creates API wrapper for WebFrame, InjectedBundleScriptWorld, InjectedBundleHitTestResult
     and InjectedBundleNodeHandle.
(API::Object::newObject):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa: Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: Added.
(-[WKWebProcessPlugInFrame dealloc]):
(-[WKWebProcessPlugInFrame jsContextForWorld:]): returns the JSContextRef for a ScriptWorld in frame.
(-[WKWebProcessPlugInFrame hitTest:]): returns hitTestResult (with API type) from a hitTest.
(-[WKWebProcessPlugInFrame jsWrapperForNodeHandle:inWorld:]):
(-[WKWebProcessPlugInFrame API::]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrameInternal.h: Added.
(WebKit::wrapper):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h: Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm: Added.
(-[WKWebProcessPlugInHitTestResult dealloc]):
(-[WKWebProcessPlugInHitTestResult nodeHandle]):
(-[WKWebProcessPlugInHitTestResult API::]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResultInternal.h: Added.
(WebKit::wrapper):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: Added.
(-[WKWebProcessPlugInNodeHandle dealloc]):
(-[WKWebProcessPlugInNodeHandle API::]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h: Added.
(WebKit::wrapper):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h: Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: Added.
(+[WKWebProcessPlugInScriptWorld world]): returns a new isolated world.
(+[WKWebProcessPlugInScriptWorld normalWorld]): returns the mainThread normal world.
(-[WKWebProcessPlugInScriptWorld dealloc]):
(-[WKWebProcessPlugInScriptWorld API::]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorldInternal.h: Added.
(WebKit::wrapper):

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

7 years agoFix unsafe memory load/store from the argument encoder/decoder affecting ARM
benjamin@webkit.org [Fri, 13 Dec 2013 07:04:42 +0000 (07:04 +0000)]
Fix unsafe memory load/store from the argument encoder/decoder affecting ARM
https://bugs.webkit.org/show_bug.cgi?id=125674

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-12-12
Reviewed by Darin Adler.

Depending on the CPU and CPU config, load and store may have to be aligned.
The argument buffer has no particular alignment which can cause problems.

In this case, on ARMv7, strd and ldrd can have alignment restriction on 16 bytes.
The code encoding double and 64 bits integers was causing bugs.

To avoid problems, the encoders/decoders are modified to just use memcpy. The compiler optimizes
it away for the right instructions (clang uses two ldr/str in the case of 64bits values on ARMv7).

* Platform/CoreIPC/ArgumentDecoder.cpp:
(CoreIPC::decodeValueFromBuffer):
(CoreIPC::ArgumentDecoder::decode):
* Platform/CoreIPC/ArgumentEncoder.cpp:
(CoreIPC::copyValueToBuffer):
(CoreIPC::ArgumentEncoder::encode):

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

7 years agoMake some improvements in CSSImageGeneratorValue code
darin@apple.com [Fri, 13 Dec 2013 06:52:57 +0000 (06:52 +0000)]
Make some improvements in CSSImageGeneratorValue code
https://bugs.webkit.org/show_bug.cgi?id=125676

Reviewed by Simon Fraser.

* css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque): Take a reference to the CSSValue, since
it's known not to be null. Used checked cast.
(WebCore::CSSCrossfadeValue::knownToBeOpaque): Updated to pass a reference.

* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::saveCachedImageForSize): Use
make_unique instead of adoptPtr.
(WebCore::CSSImageGeneratorValue::subimageIsPending): Use checked cast.
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto, also
use nullptr.

* css/CSSImageGeneratorValue.h: Removed unneeded includes, added some forward
declarations, used unique_ptr instead of OwnPtr, and used CSS_VALUE_TYPE_CASTS
macro to create cast functions.

* css/CSSValue.cpp: Removed unneeded include of CSSImageGeneratorValue.h.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear): Use nullptr instead of 0.
(WebCore::StyleResolver::applyProperty): Use checked cast and pass references
instead of pointers to StyleGeneratedImage::create.
(WebCore::StyleResolver::styleImage): Use checked cast and pass references
instead of pointers to generatedOrPendingFromValue.
(WebCore::StyleResolver::generatedOrPendingFromValue): Take the value as a
reference instead of a pointer.
(WebCore::StyleResolver::loadPendingImage): Pass a refernece instead of a
pointer to StyleGeneratedImage::create.
(WebCore::StyleResolver::loadPendingImages): Use auto for iteration instead of
a lot type name.

* css/StyleResolver.h: Changed generatedOrPendingFromValue to take the value
as a reference instead of a pointer.

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter): Pass a reference insted of a pointer to
StyleGeneratedImage::create.
(WebCore::crossfadeBlend): Ditto.
(WebCore::blendFunc): Ditto. Also use references for local variables.

* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::StyleGeneratedImage): Use PassRef instead of
PassRefPtr for the argument type.
(WebCore::StyleGeneratedImage::cssValue): Updated since m_imageGeneratorValue
is now a Ref instead of a RefPtr. Sadly this requires a const_cast that we can
come back and get rid of later.
(WebCore::StyleGeneratedImage::imageSize): Ditto.
(WebCore::StyleGeneratedImage::image): Ditto.

* rendering/style/StyleGeneratedImage.h: Changed create function and constructor
to take a PassRef. Made imageValue non-const since it returns a non-const value,
to be consistent with "conceptual const". Changed m_imageGeneratorValue to be a
Ref instead of a RefPtr.

* rendering/style/StyleImage.h: Made WrappedImagePtr be const void*, since it's
a pointer used only for equality checks. Not a great idiom, but fine to use a
const pointer instead of non-const, and avoids the const_cast we'd otherwise
need in StyleGeneratedImage::data.

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

7 years agoImprove the find word boundary performance
commit-queue@webkit.org [Fri, 13 Dec 2013 04:59:44 +0000 (04:59 +0000)]
Improve the find word boundary performance
https://bugs.webkit.org/show_bug.cgi?id=125619

In endWordBoundary case, the textBreakPrevious call in findWordBoundary is unnecessary.
So use separate function for endWordBoundary can improve the performance.

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2013-12-12
Reviewed by Darin Adler.

No tests because no operation changes.

* editing/VisibleUnits.cpp: Use findEndWordBoundary in endWordBoundary
(WebCore::endWordBoundary):
* platform/text/TextBoundaries.cpp: Add findEndWordBoundary function
(WebCore::findEndWordBoundary):
* platform/text/TextBoundaries.h:
* platform/text/mac/TextBoundaries.mm: Add findEndWordBoundary function
(WebCore::findEndWordBoundary):

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

7 years agoFix a silly mistake of r160467
benjamin@webkit.org [Fri, 13 Dec 2013 03:50:46 +0000 (03:50 +0000)]
Fix a silly mistake of r160467
https://bugs.webkit.org/show_bug.cgi?id=125657

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-12-12
Reviewed by Alexey Proskuryakov.

Fix a typo. The validity check was missing the logical not.

* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):

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

7 years agoAdd a few more ASCIILiterals
commit-queue@webkit.org [Fri, 13 Dec 2013 02:19:25 +0000 (02:19 +0000)]
Add a few more ASCIILiterals
https://bugs.webkit.org/show_bug.cgi?id=125662

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-12-12
Reviewed by Darin Adler.

* inspector/InspectorBackendDispatcher.cpp:
(Inspector::InspectorBackendDispatcher::dispatch):

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

7 years agoBuild fix for 32-bit.
timothy_horton@apple.com [Fri, 13 Dec 2013 01:45:45 +0000 (01:45 +0000)]
Build fix for 32-bit.

There was no reason for these to be CGFloat.

* UIProcess/mac/ViewGestureController.cpp:

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

7 years ago[wk2] Handle pinch-to-zoom gesture
timothy_horton@apple.com [Fri, 13 Dec 2013 01:36:15 +0000 (01:36 +0000)]
[wk2] Handle pinch-to-zoom gesture
https://bugs.webkit.org/show_bug.cgi?id=125604

Reviewed by Simon Fraser.

Add the concept of a "transient" zoom to DrawingArea, which is a zoom
that affects the content, but does not cause repaint, as would be used
for a live pinch-zoom gesture.

Add ViewGestureController, which currently only handles magnification
gestures, and keeps track of the current gesture's scale and origin, and
forwards relevant events on to the DrawingArea via the transient zoom mechanism.

* DerivedSources.make:
Add ViewGestureController to the list of message receivers.

* UIProcess/API/Cocoa/WKViewPrivate.h:
Add shouldHandleMagnificationGesture property, which controls whether WKView will
attempt to handle magnifyWithEvent:.

* UIProcess/API/mac/WKView.mm:
(-[WKView waitForAsyncDrawingAreaSizeUpdate]):
Fix a typo.

(-[WKView _ensureGestureController]):
Create our ViewGestureController if it doesn't already exist.

(-[WKView setAllowsMagnification:]):
(-[WKView allowsMagnification]):
SPI to enable/disable handling the magnification gesture.

(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView magnification]):
Adjust or retrieve the current page scale.
The variant of setMagnification that does not take an origin uses the view's center.

(-[WKView magnifyWithEvent:]):

(-[WKView endGestureWithEvent:]):
Forward gesture methods to ViewGestureController.

* UIProcess/mac/ViewGestureController.cpp: Added.
(WebKit::ViewGestureController::create):
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::resistanceForDelta):
Compute a resistance factor, which makes it feel "hard" to zoom out past
scale=1, and accelerates scaling out before you hit scale=1.

(WebKit::ViewGestureController::scaledMagnificationOrigin):
Compute the origin of the magnification gesture with the transient zoom unapplied.

(WebKit::ViewGestureController::handleMagnificationGesture):
The first magnification gesture will send a message to the WebProcess
to retrieve the visible content rect. Subsequent gestures will
hand the new magnification and origin to the DrawingArea to apply.

(WebKit::ViewGestureController::didBeginTransientZoom):
Callback from the WebProcess, with the current visible content rect.
Subsequent magnification gestures will forward the scale and origin to the DrawingArea.

(WebKit::ViewGestureController::endMagnificationGesture):
Commit the current transient scale as the actual page scale, which will cause
a repaint and bring in all the tiles.

(WebKit::ViewGestureController::endActiveGesture):
If we have an active gesture, call its end function.

* UIProcess/mac/ViewGestureController.h: Added.
* UIProcess/mac/ViewGestureController.messages.in: Added.

* WebKit2.xcodeproj/project.pbxproj:
Add new files.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::beginTransientZoom):
Call back to ViewGestureController with the visibleContentRect.

(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
Scale and translate the RenderView's PlatformCALayer.
Reaching into the layer tree like this is scary, we should consider
teaching RenderLayerCompositor about transient zoom.
Hide the content shadow layer for now.

(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
Clear our custom transform on the RenderView's layer, and
change the actual page scale, causing a repaint.
Un-hide the shadow layer.

* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::beginTransientZoom):
(WebKit::DrawingAreaProxy::adjustTransientZoom):
(WebKit::DrawingAreaProxy::commitTransientZoom):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::beginTransientZoom):
(WebKit::TiledCoreAnimationDrawingAreaProxy::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingAreaProxy::commitTransientZoom):
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::beginTransientZoom):
(WebKit::DrawingArea::adjustTransientZoom):
(WebKit::DrawingArea::commitTransientZoom):
* WebProcess/WebPage/DrawingArea.messages.in:
Generic plumbing for {begin, adjust, end}TransientZoom.

* WebCore.exp.in:
Export some TransformationMatrix functions.

* WebCore.xcodeproj/project.pbxproj:
Make some headers private so that RenderLayerCompositor/Backing can be used from WebKit2.

* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::layerForContentShadow):
Add a getter for the content shadow layer.

* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
Enable handling of the magnification gesture in Minibrowser WebKit2 windows.

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

7 years agoUnreviewed. Add myself as a committer.
eunmi15.lee@samsung.com [Fri, 13 Dec 2013 01:13:13 +0000 (01:13 +0000)]
Unreviewed. Add myself as a committer.

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

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

7 years agoDatabaseProcess IndexedDB: Establish a metadata backing store on disk
beidson@apple.com [Fri, 13 Dec 2013 00:42:14 +0000 (00:42 +0000)]
DatabaseProcess IndexedDB: Establish a metadata backing store on disk
https://bugs.webkit.org/show_bug.cgi?id=125258

Reviewed by Alexey Proskuryakov, Anders Carlsson, and Tim Horton.

Source/WebCore:

Teach CrossThreadCopier how to handle IDBDatabaseMetadata.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:

* Modules/indexeddb/IDBDatabaseMetadata.cpp: Added.
(WebCore::IDBDatabaseMetadata::isolatedCopy):
(WebCore::IDBObjectStoreMetadata::isolatedCopy):
(WebCore::IDBIndexMetadata::isolatedCopy):
* Modules/indexeddb/IDBDatabaseMetadata.h:

* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::isolatedCopy):
* Modules/indexeddb/IDBKeyPath.h:

* platform/CrossThreadCopier.cpp:
(WebCore::::copy): Add an IDBDatabaseMetadata specialization.
* platform/CrossThreadCopier.h:

Source/WebKit2:

The DatabaseProcess already has an "Indexed Database path".
Each SecurityOrigin with indexed databases will have a subdirectory under the path.
Each indexed database will have a subdirectory under its SecurityOrigin's path.
Inside that directory will exist (1) metadata database, and 0-N ObjectStore databases.

This patch establishes the directory structure and the (1) metadata database.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::initializeDatabaseProcess): Asynchronously ensure the indexed database directory exists.
(WebKit::DatabaseProcess::ensureIndexedDatabaseRelativePathExists): Allow anyone to make necessary directories relative to
  the indexed database directory.
(WebKit::DatabaseProcess::ensurePathExists):
(WebKit::DatabaseProcess::absoluteIndexedDatabasePathFromDatabaseRelativePath): Instead of exposing the indexed database directory,
  give DatabaseProcess a method to allow others to compute a path relative to the indexed database directory.
(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):
* DatabaseProcess/DatabaseProcess.h:
(WebKit::DatabaseProcess::queue):

* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata):

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
(WebKit::UniqueIDBDatabase::filenameForDatabaseName):
(WebKit::UniqueIDBDatabase::databaseFilenameIdentifier):
(WebKit::UniqueIDBDatabase::canShareDatabases):
(WebKit::UniqueIDBDatabase::shutdown): Method to cleanly shutdown a database, emptying its task and request queues.
(WebKit::UniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata):
(WebKit::UniqueIDBDatabase::openBackingStoreAndReadMetadata): To be run on the database work queue, establishes a backing store
  and extracts metadata from it.
(WebKit::UniqueIDBDatabase::didOpenBackingStoreAndReadMetadata): Callback once metadata from the backing store is ready for use.
(WebKit::UniqueIDBDatabase::absoluteDatabaseDirectory):
(WebKit::UniqueIDBDatabase::postMainThreadTask): Add a main thread task for this database.
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask): Add a database queue task for this database.
(WebKit::UniqueIDBDatabase::performNextDatabaseTask):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

Add a virtual backing store interface:
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
(WebKit::UniqueIDBDatabaseBackingStore::~UniqueIDBDatabaseBackingStore):

Add a SQLite implementation of that interface:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: Added.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::UniqueIDBDatabaseBackingStoreSQLite):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::extractExistingMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::openSQLiteDatabaseAtPath):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

Add a general purpose asynchronous task that does cross thread copying:
* Shared/AsyncTask.h: Added.
(WebKit::AsyncTask::~AsyncTask):
(WebKit::AsyncTask::AsyncTask):
(WebKit::createAsyncTask):

Add more isolated copiers and introduce WebKit CrossThreadCopier specializations:
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp:
(WebKit::UniqueIDBDatabaseIdentifier::isolatedCopy):
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h:

* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::isolatedCopy):
* Shared/SecurityOriginData.h:

* Shared/WebCrossThreadCopier.cpp:
(WebCore::::copy):
* Shared/WebCrossThreadCopier.h:

* WebKit2.xcodeproj/project.pbxproj:

Source/WTF:

* wtf/text/WTFString.h: Export toUInt64Strict().

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

7 years agoAX: HANG: virginamerica.com: Pressing the print button on the boarding pass page...
cfleizach@apple.com [Fri, 13 Dec 2013 00:18:47 +0000 (00:18 +0000)]
AX: HANG: virginamerica.com: Pressing the print button on the boarding pass page locks up VoiceOver and Safari.
https://bugs.webkit.org/show_bug.cgi?id=125603

Reviewed by Anders Carlsson.

Allow the print dialog to spin its run loop while accessibility is enabled so that VoiceOver does not hang on the WebProcess.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):

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

7 years agoUnreviewed CMake build fix after r160509
ljaehun.lim@samsung.com [Fri, 13 Dec 2013 00:10:19 +0000 (00:10 +0000)]
Unreviewed CMake build fix after r160509

* CMakeLists.txt: Apply MessageSender's changes

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

7 years ago[Cocoa] Let the load delegate know when the Web process crashes
mitz@apple.com [Thu, 12 Dec 2013 23:49:22 +0000 (23:49 +0000)]
[Cocoa] Let the load delegate know when the Web process crashes
https://bugs.webkit.org/show_bug.cgi?id=125660

Reviewed by Sam Weinig.

* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(processDidCrash):  Implemented this WKPageLoaderClient callback by calling the load
delegate.
(setUpPageLoaderClient): Set the above callback in the client structure
* UIProcess/API/Cocoa/WKBrowsingContextLoadDelegatePrivate.h: Declare new delegate method.

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

7 years agoUpdate hardware for Apple bots.
lforschler@apple.com [Thu, 12 Dec 2013 23:46:36 +0000 (23:46 +0000)]
Update hardware for Apple bots.

Unreviewed.

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

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

7 years agoRemove unused Apple Bots.
lforschler@apple.com [Thu, 12 Dec 2013 23:41:06 +0000 (23:41 +0000)]
Remove unused Apple Bots.

Unreviewed.

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

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

7 years agoMove MessageSender to Platform/IPC.
andersca@apple.com [Thu, 12 Dec 2013 23:26:10 +0000 (23:26 +0000)]
Move MessageSender to Platform/IPC.

Rubber-stamped by Andreas Kling.

* Platform/IPC/MessageSender.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/MessageSender.cpp.
* Platform/IPC/MessageSender.h: Renamed from Source/WebKit2/Platform/CoreIPC/MessageSender.h.
* WebKit2.xcodeproj/project.pbxproj:

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

7 years agoWebPageProxy should be a MessageSender
andersca@apple.com [Thu, 12 Dec 2013 23:12:38 +0000 (23:12 +0000)]
WebPageProxy should be a MessageSender
https://bugs.webkit.org/show_bug.cgi?id=125654

Reviewed by Sam Weinig.

* Platform/CoreIPC/MessageSender.cpp:
(CoreIPC::MessageSender::sendMessage):
* Platform/CoreIPC/MessageSender.h:
(CoreIPC::MessageSender::send):
* Shared/ChildProcessProxy.h:
* Shared/WebConnection.cpp:
(WebKit::WebConnection::postMessage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::sendMessage):
(WebKit::WebPageProxy::messageSenderConnection):
(WebKit::WebPageProxy::messageSenderDestinationID):
* UIProcess/WebPageProxy.h:

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

7 years agocommitter
thiago.lacerda@openbossa.org [Thu, 12 Dec 2013 22:55:22 +0000 (22:55 +0000)]
committer

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

7 years agoClean up dictionary handling a little
andersca@apple.com [Thu, 12 Dec 2013 20:28:47 +0000 (20:28 +0000)]
Clean up dictionary handling a little
https://bugs.webkit.org/show_bug.cgi?id=125644

Reviewed by Dan Bernstein.

Add a WKDictionaryCreate function as a first step towards eliminating WKMutableDictionaryRef,
(in the same way we've eliminated WKMutableArrayRef). Also, rename adopt to create and make it take a Map by value
so we can use std::move where appropriate.

* Shared/API/c/WKDictionary.cpp:
(WKDictionaryCreate):
* Shared/API/c/WKDictionary.h:
* Shared/Cocoa/WKNSDictionary.mm:
(-[WKNSDictionary copyWithZone:]):
* Shared/ImmutableDictionary.cpp:
(WebKit::ImmutableDictionary::create):
(WebKit::ImmutableDictionary::ImmutableDictionary):
* Shared/ImmutableDictionary.h:
* Shared/MutableDictionary.cpp:
(WebKit::MutableDictionary::MutableDictionary):
* Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::createPluginInformationDictionary):
* Shared/UserData.cpp:
(WebKit::UserData::transform):
(WebKit::UserData::decode):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::willSubmitForm):
* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::createNewPage):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
(WebKit::InjectedBundlePageFormClient::willSubmitForm):

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

7 years agoAdd support for RSAES-PKCS1-v1_5
ap@apple.com [Thu, 12 Dec 2013 20:18:45 +0000 (20:18 +0000)]
Add support for RSAES-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=125647

Build fix.

* crypto/CommonCryptoUtilities.h: Declare a newly used private constant.

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

7 years agoAdd support for RSAES-PKCS1-v1_5
ap@apple.com [Thu, 12 Dec 2013 20:12:10 +0000 (20:12 +0000)]
Add support for RSAES-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=125647

Reviewed by Anders Carlsson.

Source/WebCore:

Tests: crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html
       crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html

* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
Removed meaningless parameters arguments from private functions. The base arguments
class is always empty.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: Added.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::CryptoAlgorithmRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::~CryptoAlgorithmRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::create):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::identifier):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: Added.
* crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp: Added.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Added support for this algorithm.

LayoutTests:

* crypto/subtle/rsaes-pkcs1-v1_5-decrypt-expected.txt: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes-expected.txt: Added.
* crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html: Added.

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

7 years agoWeb Inspector: ES6: JavaScript syntax highlighting and recognition of for..of
commit-queue@webkit.org [Thu, 12 Dec 2013 19:52:46 +0000 (19:52 +0000)]
Web Inspector: ES6: JavaScript syntax highlighting and recognition of for..of
https://bugs.webkit.org/show_bug.cgi?id=122868

Patch by Laszlo Vidacs <lac@inf.u-szeged.hu> on 2013-12-12
Reviewed by Timothy Hatcher.

Update to CodeMirror 3.20 including javascript ES6 updates.

* Tools/PrettyPrinting/codemirror.css:
* Tools/PrettyPrinting/codemirror.js: Minor local change due to error from jsmin.py
* Tools/PrettyPrinting/css.js:
* Tools/PrettyPrinting/javascript.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js: Minor local change due to error from jsmin.py
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/htmlmixed.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/less.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/searchcursor.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/xml.js:

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

7 years ago[Mac] Stop not caching HTTP resources with "Vary" header in response.
akling@apple.com [Thu, 12 Dec 2013 19:22:55 +0000 (19:22 +0000)]
[Mac] Stop not caching HTTP resources with "Vary" header in response.
<https://webkit.org/b/125483>
<rdar://problem/11781097>

Remove the workaround preventing resources with the "Vary" header
from going into cache, as the CFNetwork cache has supported this
for quite a while now.

31.5 MB progression on Membuster3, because we can now mmap those
resources from disk once they are in the cache.

We keep the workaround on PLATFORM(WIN) for now.

Reviewed by Antti Koivisto.

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

7 years agoSource/WebCore: Replace uses of WTF::BitArray with std::bitset
ap@apple.com [Thu, 12 Dec 2013 18:42:53 +0000 (18:42 +0000)]
Source/WebCore: Replace uses of WTF::BitArray with std::bitset
https://bugs.webkit.org/show_bug.cgi?id=125642

Patch by Sam Weinig <sam@webkit.org> on 2013-12-12
Reviewed by Anders Carlsson.

* css/CSSParser.cpp:
(WebCore::filterProperties):
(WebCore::CSSParser::createStyleProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):

LayoutTests: Public key in a generated KeyPair should always be extractable
https://bugs.webkit.org/show_bug.cgi?id=125643

Reviewed by Sam Weinig.

* crypto/subtle/rsa-oaep-generate-non-extractable-key-expected.txt: Added.
* crypto/subtle/rsa-oaep-generate-non-extractable-key.html: Added.

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

7 years ago[Cocoa] Navigation action information for policy decisions is missing the original...
mitz@apple.com [Thu, 12 Dec 2013 18:41:55 +0000 (18:41 +0000)]
[Cocoa] Navigation action information for policy decisions is missing the original request
https://bugs.webkit.org/show_bug.cgi?id=125612

Reviewed by Anders Carlsson.

* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction): Added template with additional message parameter.
* UIProcess/API/C/WKPagePolicyClientInternal.h: Added. Defines a new version of the client
interface with a new version of the policy decision callback.
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(setUpPagePolicyClient): Use the new internal version of the client. Pass the original
request in the action information dictionary under a new key.
* UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h: Declared new action information
key.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction): Added originalRequest parameter,
which is passed to the policy client.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Added originalRequest parameter in
DecidePolicyForNavigationAction.
* UIProcess/WebPolicyClient.cpp:
(WebKit::WebPolicyClient::decidePolicyForNavigationAction): Pass the original request to
the client.
* UIProcess/WebPolicyClient.h:
* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Send the original
request from the navigation action to the UI process.

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

7 years agoTest new JSContext name APIs
joepeck@webkit.org [Thu, 12 Dec 2013 18:41:35 +0000 (18:41 +0000)]
Test new JSContext name APIs
https://bugs.webkit.org/show_bug.cgi?id=125607

Source/JavaScriptCore:

Reviewed by Darin Adler.

* API/JSContext.h:
* API/JSContextRef.h:
Fix whitespace issues.

* API/tests/testapi.c:
(globalContextNameTest):
(main):
* API/tests/testapi.mm:
Add tests for JSContext set/get name APIs.

Tools:

* Scripts/run-javascriptcore-tests:
Remove trailing whitespace.

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

7 years agoARM64: Hang running pdfjs test, suspect DFG generated code for "in"
fpizlo@apple.com [Thu, 12 Dec 2013 18:38:39 +0000 (18:38 +0000)]
ARM64: Hang running pdfjs test, suspect DFG generated code for "in"
https://bugs.webkit.org/show_bug.cgi?id=124727
<rdar://problem/15566923>

Reviewed by Michael Saboff.

Get rid of In's hackish use of StructureStubInfo. Previously it was using hotPathBegin,
and it was the only IC that used that field, which was wasteful. Moreover, it used it
to store two separate locations: the label for patching the jump and the label right
after the jump. The code was relying on those two being the same label, which is true
on X86 and some other platforms, but it isn't true on ARM64.

This gets rid of hotPathBegin and makes In express those two locations as offsets from
the callReturnLocation, which is analogous to what the other IC's do.

This fixes a bug where any successful In patching would result in a trivially infinite
loop - and hence a hang - on ARM64.

* bytecode/StructureStubInfo.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
* dfg/DFGJITCompiler.h:
(JSC::DFG::InRecord::InRecord):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIn):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::finalize):
* jit/Repatch.cpp:
(JSC::replaceWithJump):
(JSC::patchJumpToGetByIdStub):
(JSC::tryCachePutByID):
(JSC::tryBuildPutByIdList):
(JSC::tryRepatchIn):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::resetIn):

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

7 years agoReplace uses of WTF::BitArray with std::bitset
weinig@apple.com [Thu, 12 Dec 2013 18:31:47 +0000 (18:31 +0000)]
Replace uses of WTF::BitArray with std::bitset
https://bugs.webkit.org/show_bug.cgi?id=125642

Reviewed by Anders Carlsson.

../WebCore:

* css/CSSParser.cpp:
(WebCore::filterProperties):
(WebCore::CSSParser::createStyleProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):

../WTF:

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/BitArray.h: Removed.
* wtf/CMakeLists.txt:

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

7 years agoMake algorithm.name return registered name, not normalized one
ap@apple.com [Thu, 12 Dec 2013 18:21:30 +0000 (18:21 +0000)]
Make algorithm.name return registered name, not normalized one
https://bugs.webkit.org/show_bug.cgi?id=125641

Reviewed by Anders Carlsson.

Source/WebCore:

Currently, WebCrypto editor's draft stipulates that algorithm name is lowercased
as part of normalization.

But it makes little sense to register algorithms as mixed (mostly upper) case, yet
return the name lowercased. Other implementations don't bother respecting this,
and signs are that the spec will change.

I'd like to match other implementations here, because sticking to the spec only
makes us fail 3rd party test suites for no good reason.

Updated many existing tests.

* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/CryptoAlgorithmRegistry.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:

LayoutTests:

* crypto/subtle/aes-cbc-192-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-192-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-256-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-256-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-encrypt-decrypt-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt:
* crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html:
* crypto/subtle/aes-cbc-encrypt-decrypt.html:
* crypto/subtle/aes-cbc-generate-key-expected.txt:
* crypto/subtle/aes-cbc-generate-key.html:
* crypto/subtle/aes-cbc-import-jwk-expected.txt:
* crypto/subtle/aes-cbc-import-jwk.html:
* crypto/subtle/aes-cbc-invalid-length-expected.txt:
* crypto/subtle/aes-cbc-invalid-length.html:
* crypto/subtle/aes-cbc-unwrap-failure-expected.txt:
* crypto/subtle/aes-cbc-unwrap-failure.html:
* crypto/subtle/aes-cbc-unwrap-rsa-expected.txt:
* crypto/subtle/aes-cbc-unwrap-rsa.html:
* crypto/subtle/aes-cbc-wrap-rsa-expected.txt:
* crypto/subtle/aes-cbc-wrap-rsa-non-extractable-expected.txt:
* crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html:
* crypto/subtle/aes-cbc-wrap-rsa.html:
* crypto/subtle/aes-kw-key-manipulation-expected.txt:
* crypto/subtle/aes-kw-key-manipulation.html:
* crypto/subtle/aes-kw-wrap-unwrap-aes-expected.txt:
* crypto/subtle/aes-kw-wrap-unwrap-aes.html:
* crypto/subtle/aes-postMessage-expected.txt:
* crypto/subtle/aes-postMessage.html:
* crypto/subtle/hmac-generate-key-expected.txt:
* crypto/subtle/hmac-generate-key.html:
* crypto/subtle/hmac-import-jwk-expected.txt:
* crypto/subtle/hmac-import-jwk.html:
* crypto/subtle/hmac-postMessage-expected.txt:
* crypto/subtle/hmac-postMessage.html:
* crypto/subtle/hmac-sign-verify-empty-key-expected.txt:
* crypto/subtle/hmac-sign-verify-empty-key.html:
* crypto/subtle/hmac-sign-verify-expected.txt:
* crypto/subtle/hmac-sign-verify.html:
* crypto/subtle/postMessage-worker-expected.txt:
* crypto/subtle/postMessage-worker.html:
* crypto/subtle/resources/postMessage-worker.js:
* crypto/subtle/rsa-oaep-key-manipulation-expected.txt:
* crypto/subtle/rsa-oaep-key-manipulation.html:
* crypto/subtle/rsa-oaep-wrap-unwrap-aes-expected.txt:
* crypto/subtle/rsa-oaep-wrap-unwrap-aes.html:
* crypto/subtle/rsa-postMessage-expected.txt:
* crypto/subtle/rsa-postMessage.html:
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
* crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html:
* crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-expected.txt:
* crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html:

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

7 years ago[Autotools] Prepend the WebCore layer archives' names with 'lib'
zandobersek@gmail.com [Thu, 12 Dec 2013 17:21:34 +0000 (17:21 +0000)]
[Autotools] Prepend the WebCore layer archives' names with 'lib'
https://bugs.webkit.org/show_bug.cgi?id=125627

Reviewed by Martin Robinson.

Source/WebKit2:

* GNUmakefile.am: Libtool can complain about the WebCore layer archives not being prepended with 'lib'
when they are used during linking, so the prefix is now added to avoid such issues.

Tools:

* TestWebKitAPI/GNUmakefile.am: Libtool can complain about the WebCore layer archives not being prepended
with 'lib' when they are used during linking, so the prefix is now added to avoid such issues.

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

7 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Thu, 12 Dec 2013 17:03:13 +0000 (17:03 +0000)]
Unreviewed EFL gardening

Rebaseline fast/table/empty-cells.html after r160410.

* platform/efl/fast/table/empty-cells-expected.png:
* platform/efl/fast/table/empty-cells-expected.txt:

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

7 years agoUnreviewed EFL gardening
m.pakula@samsung.com [Thu, 12 Dec 2013 14:02:48 +0000 (14:02 +0000)]
Unreviewed EFL gardening

Add test expectations for failing compositing tests.

* platform/efl-wk2/TestExpectations:

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

7 years agoMove CertificateInfo to WebCore
ossy@webkit.org [Thu, 12 Dec 2013 12:30:58 +0000 (12:30 +0000)]
Move CertificateInfo to WebCore
https://bugs.webkit.org/show_bug.cgi?id=124720

Reviewed by Darin Adler.

Based on the patch by Kwang Yul Seo <skyul@company100.net>

Source/WebCore:

* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/mac/CertificateInfo.h: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificateChain): Added, because WebCoreArgumentCoders needs it.
* platform/network/mac/CertificateInfoMac.mm: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.mm.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersMac.mm.
* platform/network/soup/CertificateInfo.cpp: Copied from Source/WebKit2/Shared/WebCertificateInfo.h.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersSoup.cpp.
* platform/network/soup/CertificateInfo.h: Renamed from Source/WebKit2/Shared/soup/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificate): Added, because WebCoreArgumentCoders needs it.
(WebCore::CertificateInfo::setTLSErrors): Added, because WebCoreArgumentCoders needs it.

Source/WebKit2:

* GNUmakefile.list.am:
* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/mac/NetworkProcessMac.mm:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/API/c/mac/WKCertificateInfoMac.mm:
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/AuthenticationManager.messages.in:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebCertificateInfo.h:
(WebKit::WebCertificateInfo::create):
(WebKit::WebCertificateInfo::certificateInfo):
* Shared/WebCoreArgumentCoders.cpp:
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::ArgumentCoder<CertificateInfo>::encode):
(CoreIPC::ArgumentCoder<CertificateInfo>::decode):
* Shared/soup/CertificateInfo.cpp: Removed.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::ArgumentCoder<CertificateInfo>::encode):
(CoreIPC::ArgumentCoder<CertificateInfo>::decode):
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_tls_info):
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::useCredential):
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didCommitLoad):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):

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

7 years agoUnreviewed, rolling out r160446.
commit-queue@webkit.org [Thu, 12 Dec 2013 12:21:10 +0000 (12:21 +0000)]
Unreviewed, rolling out r160446.
http://trac.webkit.org/changeset/160446
https://bugs.webkit.org/show_bug.cgi?id=125630

The upower-glib-based implementation is using API that was
recently removed (Requested by zdobersek1 on #webkit).

Tools:

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

* platform/gtk/TestExpectations:

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

7 years agoUnreviewed, rolling out r160417.
commit-queue@webkit.org [Thu, 12 Dec 2013 12:04:20 +0000 (12:04 +0000)]
Unreviewed, rolling out r160417.
http://trac.webkit.org/changeset/160417
https://bugs.webkit.org/show_bug.cgi?id=125629

The patch is causing crashes (Requested by zdobersek1 on
#webkit).

Source/WebCore:

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::detachWrapper):

Tools:

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

LayoutTests:

* accessibility/children-changed-sends-notification-expected.txt: Removed.
* accessibility/children-changed-sends-notification.html: Removed.
* accessibility/loading-iframe-sends-notification.html:
* platform/mac/TestExpectations:

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

7 years agoRemove a few more guards mistakenly added in r160367
mrobinson@webkit.org [Thu, 12 Dec 2013 11:54:02 +0000 (11:54 +0000)]
Remove a few more guards mistakenly added in r160367

Reviewed by Carlos Garcia Campos

r160367 was too liberal in hiding APIs from the GObject DOM bindings.
We should expose the BatteryManager and the text and audio tracks.

* Modules/battery/BatteryManager.idl:
* html/HTMLMediaElement.idl:

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

7 years agoWeb Inspector: allow editing of colors in CSS resources
graouts@apple.com [Thu, 12 Dec 2013 10:17:20 +0000 (10:17 +0000)]
Web Inspector: allow editing of colors in CSS resources
https://bugs.webkit.org/show_bug.cgi?id=124364

Reviewed by Timothy Hatcher.

Identify colors in CSS and HTML resources so that hovering these colors shows a HoverMenu
allowing a ColorPicker hosted in a Popover to be shown to edit the hovered color.

* UserInterface/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Remove the code that goes through the lines of the CodeMirror editor to look for
color strings and replace it with a call to the .createColorMarkers() CodeMirror
extension in which the code was refactored. The callback passed to
.createColorMarkers() handles the CSSStyleDeclarationTextEditor-specific creation
of color swatches to show the popover, keeping the existing behavior of the Styles
sidebar panel.

* UserInterface/CodeMirrorAdditions.js:
Refactor existing code into two new CodeMirror extensions: .boundsForRange(), which
was previously defined on the CodeMirrorTokenTrackingController but was also needed
in the new CodeMirrorColorEditingController, and .createColorMarkers(), discussed above.

* UserInterface/CodeMirrorColorEditingController.js: Added.
(WebInspector.CodeMirrorColorEditingController):
New class used by SourceCodeTextEditor to coordinate the editing of a color in a CodeMirror
TextMarker by a ColorPicker hosted in a Popover shown by the activation of a HoverMenu. This
controller automatically gets the color set by the user using the ColorPicker and updates
the CodeMirror text editor with the new value. When the user presses the Esc. key while the
popover is shown, it's automatically dismissed and the original color is reset in the editor.

(WebInspector.CodeMirrorColorEditingController.prototype.get marker):
(WebInspector.CodeMirrorColorEditingController.prototype.get range):
(WebInspector.CodeMirrorColorEditingController.prototype.get delegate):
(WebInspector.CodeMirrorColorEditingController.prototype.set delegate):
Getters and setters for public properties.

(WebInspector.CodeMirrorColorEditingController.prototype.get color):
(WebInspector.CodeMirrorColorEditingController.prototype.set color):
Get and set the color for the edited color marker, replacing the text in the marker's range
upon setting.

(WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
Public API allowing for a HoverMenu to be shown around the bounds of the TextMarker passed
in the constructor. This method is called from SourceCodeTextEditor when the
CodeMirrorTokenTrackingController identifies that a token that is part of a TextMarker is
hovered and that token is a color.

(WebInspector.CodeMirrorColorEditingController.prototype.dismissHoverMenu):
Public API allowing for the HoverMenu to be dismissed. This method is called when the
CodeMirrorTokenTrackingController identifies that its "hoveredMarker" is no longer being
hovered as well as when we identify that editing of the color has completed.

(WebInspector.CodeMirrorColorEditingController.prototype.handleEvent):
Event handler for the "keydown" event that are being listened to when the HoverMenu
is activated such that the Esc. key can be used to dimiss the popover and reset the
original color before any edits.

(WebInspector.CodeMirrorColorEditingController.prototype.hoverMenuButtonWasPressed):
Implementation of the HoverMenu delegation method used to show a Popover containing a
ColorPicker upon clicking on the color wheel attached to the HoverMenu. We also remember
the color set on the marker so that it may be restored when Esc. is pressed and used to
set the original state of the ColorPicker. The delegation method
colorEditingControllerDidStartEditing() is also called at this point, which the
SourceCodeTextEditor implements.

(WebInspector.CodeMirrorColorEditingController.prototype.didDismissPopover):
Implementation of the Popover delegation method used to identify that color editing has
completed. The delegation method colorEditingControllerDidFinishEditing() is called
at this point, which the SourceCodeTextEditor implements.

(WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
Apply the color set in the color picker to the CodeMirror text editor.

* UserInterface/CodeMirrorTokenTrackingController.js:
Add two new modes to CodeMirrorTokenTrackingController. The first mode is "None" and is
the default, incurring no specific token handling behavior. The second mode is "MarkedTokens"
which identifies hover of a token contained in a CodeMirror TextMarker range. The new
"MarkedTokens" mode is used by SourceCodeTextEditor to identify when a marked color is being
hovered to display a HoverMenu.

(WebInspector.CodeMirrorTokenTrackingController):
(WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
Make "None" the new default mode for CodeMirrorTokenTrackingController.

(WebInspector.CodeMirrorTokenTrackingController.prototype.get hoveredMarker):
(WebInspector.CodeMirrorTokenTrackingController.prototype.set hoveredMarker):
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Check, when we have a "hoveredMarker" set on the CodeMirrorTokenTrackingController,
whether the "hoveredMarker" is still being hovered when there is no token at the current
mouse position. We can then determine when we're mousing out of the "hoveredMarker" and
notify the delegate via the new tokenTrackingControllerMouseOutOfHoveredMarker delegate
method. The SourceCodeTextEditor uses this method to dismiss its CodeMirrorColorEditingController.

(WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
Add support for the new "MarkedTokens" mode.

(WebInspector.CodeMirrorTokenTrackingController.prototype._processMarkedToken):
For the moment, use the same behavior as the existing "MarkedTokens" mode.

* UserInterface/Color.js:
(WebInspector.Color):
Add a new "valid" property to identify whether a color has any invalid (NaN) component. This property
is used by SourceCodeTextEditor to establish whether a hovered color marker is indeed set to a
valid color still.

(WebInspector.Color.prototype.copy):
New method to create an exact copy of a Color instance, used by CodeMirrorColorEditingController
to duplicate the edited color in case we need to revert it.

* UserInterface/HoverMenu.js:
(WebInspector.HoverMenu.prototype._handleClickEvent):
Rename hoverMenuWasActivated to hoverMenuButtonWasPressed per review feedback.

* UserInterface/Images/ColorIcon.png: Added.
* UserInterface/Images/ColorIcon@2x.png: Added.
New color wheel icon used to customize the HoverMenu shown by a CodeMirrorColorEditingController.

* UserInterface/Main.html:
Link to the new CodeMirrorColorEditingController.js file.

* UserInterface/SourceCodeTextEditor.css:
(.hover-menu.color):
(.hover-menu.color > img):
Customize the HoverMenu shown by a CodeMirrorColorEditingController to use the new ColorIcon asset.

* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Add a new "_ignoreContentDidChange" ivar that increments and decrements to track when handling
of CodeMirror content changes should be disabled.

(WebInspector.SourceCodeTextEditor.prototype.close):
Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
CodeMirrorTokenTrackingController.

(WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
Override the new TextEditor public API called when content in the CodeMirror text editor is changed.
We use this method to process any newly added line to create any newly added color marker.

(WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._sourceCodeSourceMapAdded):
Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
CodeMirrorTokenTrackingController.

(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
New method acting as the only point where we check the state of the text editor and set the right
mode and settings on the CodeMirrorTokenTrackingController, including setting the new "MarkedTokens"
mode when we have color markers, as determined by ._hasColorMarkers().

(WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
Check whether any of the TextMarkers set on the CodeMirror text editor were created for a color.

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Check the CodeMirrorTokenTrackingController mode rather than the removed "_jumpToSymbolTrackingModeEnabled"
ivar to identify we're in the "NonSymbolTokens" mode.

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
Refactor method to use the CodeMirrorTokenTrackingController mode to branch into mode-specific code
and add a new branch for the new "MarkedTokens" mode where we check if the newly hovered token
is part of a color TextMarker range.

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
Implement this new CodeMirrorTokenTrackingController delegation method to dismiss the
CodeMirrorColorEditingController as we identify we're no longer hovering over the TextMarker
for which the CodeMirrorColorEditingController was created.

(WebInspector.SourceCodeTextEditor.prototype._showPopover):
Adopt the new TextEditor boundsForRange() method.

(WebInspector.SourceCodeTextEditor.prototype._updateColorMarkers):
Harness the new TextEditor createColorMarkers() method to create new TextMarkers for the provided
line, or the entire text editor content if none provided. We then immediately call _updateTokenTrackingControllerState()
so that the new "MarkedTokens" mode is entered in case color TextMarkers were created for the first
time for this text editor.

(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
Called when we've identified the CodeMirrorTokenTrackingController highlighted a TextMarker. We check
if any of the hovered TextMarkers are for a color, and in this case create a CodeMirrorColorEditingController
to coordinate the display of a ColorPicker in a Popover to edit the hovered color token. We also check
whether the hovered marker still contains a valid color, clearing the marker in case it was edited to
no longer contain a color.

(WebInspector.SourceCodeTextEditor.prototype._dismissCodeMirrorColorEditingController):
Used to dismiss the CodeMirrorColorEditingController, if previously presented, and reset some internal state.

(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidStartEditing):
Implement this CodeMirrorColorEditingController delegation method to temporarily disable the
CodeMirrorTokenTrackingController while we edit the color with the ColorPicker, remove
the TextMarker for the edited color and instruct that content changes should be ignored
such that we act on the complete set of color edits upon completion.

(WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
Update color markers for the edited line such that any color edits are correctly updated for
the future and so that, as a side-effect, the CodeMirrorColorEditingController is reset to the
appropriate mode depending on whether color TextMarkers are indeed available, resetting states
that may have been altered by colorEditingControllerDidStartEditing().

* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.contentDidChange):
New public method meant to be overriden by subclasses, added for the use of SourceCodeTextEditor, exposing
the list of TextRanges affected by the content change, both in the context of the old content and new content.

(WebInspector.TextEditor.prototype.boundsForRange):
(WebInspector.TextEditor.prototype.get markers):
(WebInspector.TextEditor.prototype.findMarkersAtPosition):
(WebInspector.TextEditor.prototype.createColorMarkers):
(WebInspector.TextEditor.prototype.colorEditingControllerForMarker):
New public methods calling into the CodeMirror private ivar for the benefit of SourceCodeTextEditor.

(WebInspector.TextEditor.prototype._contentChanged):
Call the new contentDidChange() method.

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

7 years agoUse of ar T option not supported by older binutils
zandobersek@gmail.com [Thu, 12 Dec 2013 10:10:36 +0000 (10:10 +0000)]
Use of ar T option not supported by older binutils
https://bugs.webkit.org/show_bug.cgi?id=118732

Reviewed by Gustavo Noronha Silva.

.:

* Source/autotools/SetupLibtool.m4: Make the AR_FLAGS value usable inside makefiles as an Automake variable.

Source/WebKit2:

* GNUmakefile.am: To support non-thin archives when generating the WebCoreLayerGtk2 archive,
switch to using the AR_FLAGS variable (which can be overridden) for providing the ar flags for the
new archive. Non-thin archives also pose the problem as their members are only noted by the basename
of the member's object file, and not the full path to it. To work around that, all the object files
under the build directory are listed by their relative paths. The members of various archives then have
the basenames of their paths grepped against that list, with the found path correlating to the member
finally added as the new member of the WebCoreLayerGtk2 archive.

Tools:

* TestWebKitAPI/GNUmakefile.am: To support non-thin archives when generating the WebCoreLayer archive,
switch to using the AR_FLAGS variable (which can be overridden) for providing the ar flags for the
new archive. Non-thin archives also pose the problem as their members are only noted by the basename
of the member's object file, and not the full path to it. To work around that, all the object files
under the build directory are listed by their relative paths. The members of various archives then have
the basenames of their paths grepped against that list, with the found path correlating to the member
finally added as the new member of the WebCoreLayer archive.

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

7 years ago[GTK] WebProcess tests are failing with newer glib
carlosgc@webkit.org [Thu, 12 Dec 2013 09:17:23 +0000 (09:17 +0000)]
[GTK] WebProcess tests are failing with newer glib
https://bugs.webkit.org/show_bug.cgi?id=125621

Reviewed by Martin Robinson.

Newer versions of glib unset the DISPLAY env variable in
g_test_dbus_up(). The WebProcess needs the DISPLAY variable to
work, and it's important to keep its value when running the tests
under Xvfb.

* UIProcess/API/gtk/tests/WebProcessTestRunner.cpp:
(WebProcessTestRunner::WebProcessTestRunner): Restore the DISPLAY
env variable after calling g_test_dbus_up().

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

7 years ago[GTK] Make sure unit tests don't use GVFS and dconf
carlosgc@webkit.org [Thu, 12 Dec 2013 09:12:40 +0000 (09:12 +0000)]
[GTK] Make sure unit tests don't use GVFS and dconf
https://bugs.webkit.org/show_bug.cgi?id=125620

Reviewed by Martin Robinson.

They should use the local vfs and the gsettings memory backend.

* UIProcess/API/gtk/tests/TestMain.cpp:
(main):

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

7 years agoStylePendingImage needs to correctly manage the CSSValue pointer lifetime
darin@apple.com [Thu, 12 Dec 2013 08:58:50 +0000 (08:58 +0000)]
StylePendingImage needs to correctly manage the CSSValue pointer lifetime
https://bugs.webkit.org/show_bug.cgi?id=125468

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/css/pending-image-crash.xhtml

Disconnect the reference counted StylePendingImage from the CSSValue that owns
it when it's not needed any more, otherwise we could end up using a pointer
that might no longer be valid.

* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::detachPendingImage): Added. Calls detachFromCSSValue
on the current image if it is a StylePendingImage.
(WebCore::CSSCursorImageValue::~CSSCursorImageValue): Call detachPendingImage.
(WebCore::CSSCursorImageValue::cachedImage): Call detachPendingImage before changing
m_image to a new value.
(WebCore::CSSCursorImageValue::clearCachedImage): Ditto.
* css/CSSCursorImageValue.h: Added detachPendingImage.

* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::detachPendingImage): Added. Calls detachFromCSSValue
on the current image set if it is a StylePendingImage.
(WebCore::CSSImageSetValue::~CSSImageSetValue): Call detachPendingImage.
(WebCore::CSSImageSetValue::cachedImageSet): Call detachPendingImage before changing
m_imageSet to a new value.
* css/CSSImageSetValue.h: Added detachPendingImage.

* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::detachPendingImage): Added. Calls detachFromCSSValue on the
current image if it is a StylePendingImage.
(WebCore::CSSImageValue::~CSSImageValue): Call detachPendingImage.
(WebCore::CSSImageValue::cachedImage): Call detachPendingImage before changing m_image
to a new value.
* css/CSSImageValue.h: Added detachPendingImage.

* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::cssImageValue): Added a null check.
(WebCore::StylePendingImage::cssImageGeneratorValue): Added a null check.
(WebCore::StylePendingImage::cssCursorImageValue): Added a null check.
(WebCore::StylePendingImage::cssImageSetValue): Added a null check.
(WebCore::StylePendingImage::detachFromCSSValue): Added. Sets m_value to null since
the style is no longer using this StylePendingImage.
(WebCore::StylePendingImage::data): Changed to use the "this" pointer since all we
need is some arbitrary pointer uniquely identifying the image. Before loading the image,
we have no suitable weak identifier, so it suffices to use the unique pointer to each
StylePendingImage object. This function is used only in a limited way; it would be nice
to find a way to make the code less strange long term.

LayoutTests:

* fast/css/pending-image-crash-expected.txt: Added.
* fast/css/pending-image-crash.xhtml: Added.

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

7 years agoRemove some unneeded code noticed while looking at StylePendingImage
darin@apple.com [Thu, 12 Dec 2013 08:44:32 +0000 (08:44 +0000)]
Remove some unneeded code noticed while looking at StylePendingImage
https://bugs.webkit.org/show_bug.cgi?id=125618

Reviewed by Andreas Kling.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage): Removed redundant function calls.

* rendering/RenderImageResource.cpp: Removed unneeded nullImage and
usesImageContainerSize member functions.
(WebCore::RenderImageResource::image): Use Image::nullImage directly instead of
through RenderImageResourceImage::nullImage.

* rendering/RenderImageResource.h: Removed unneeded usesImageContainerSize
and nullImage functions. Also removed unneeded includes.

* rendering/RenderImageResourceStyleImage.h: Removed unneeded
usesImageContainerSize override. Nobody was calling it.

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

7 years ago[WK2] Build fix after r160464
gyuyoung.kim@samsung.com [Thu, 12 Dec 2013 04:01:26 +0000 (04:01 +0000)]
[WK2] Build fix after r160464
https://bugs.webkit.org/show_bug.cgi?id=125615

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2013-12-11
Reviewed by Gyuyoung Kim.

Modify the 2nd parameter for calling WebContext::addMessageReceiver from "this" to "*this"
because the parameter type is modified from CoreIPC::MessageReceiver* to CoreIPC::MessageReceiver&

* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
* UIProcess/WebBatteryManagerProxy.cpp:
(WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
* UIProcess/WebNetworkInfoManagerProxy.cpp:
(WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy):
* UIProcess/WebVibrationProxy.cpp:
(WebKit::WebVibrationProxy::WebVibrationProxy):
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
(WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
* WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::WebBatteryManager):
* WebProcess/NetworkInfo/WebNetworkInfoManager.cpp:
(WebKit::WebNetworkInfoManager::WebNetworkInfoManager):
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestManager::WebSoupRequestManager):

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

7 years agoVersioning.
lforschler@apple.com [Thu, 12 Dec 2013 02:47:12 +0000 (02:47 +0000)]
Versioning.

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

7 years agoAdd the CFNetwork implementation of the asynchronous ResourceHandle
benjamin@webkit.org [Thu, 12 Dec 2013 01:56:25 +0000 (01:56 +0000)]
Add the CFNetwork implementation of the asynchronous ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=124440

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-12-11
Reviewed by Alexey Proskuryakov.

Add a second subclass of ResourceHandleCFURLConnectionDelegate: ResourceHandleCFURLConnectionDelegateWithOperationQueue.
The difference is those objects handle the network callback on a different queue.

Some common code has been refactored in ResourceHandleCFURLConnectionDelegate to reduce duplicated code.

The initialization of the request and connection is moved to the subclass to clean up initialization.

* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willCacheResponseAsync):
* platform/network/ResourceHandleClient.h:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: Added.
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::~ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::connectionWasCancelled):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupConnectionScheduling):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueDidReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueShouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h: Copied from Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::continueShouldUseCredentialStorage):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegate::releaseHandle):
(WebCore::ResourceHandleCFURLConnectionDelegate::synthesizeRedirectResponseIfNecessary):
(WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupConnectionScheduling):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillSendRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueDidReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueShouldUseCredentialStorage):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillCacheResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:

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

7 years agocheck-webkit-style shouldn't check spacing in #if preprocessor lines
commit-queue@webkit.org [Thu, 12 Dec 2013 01:26:03 +0000 (01:26 +0000)]
check-webkit-style shouldn't check spacing in #if preprocessor lines
https://bugs.webkit.org/show_bug.cgi?id=125534

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

Preprocessor lines that start with #if shouldn't have to adhere to
the same spacing requirements that regular code does

* Scripts/webkitpy/style/checkers/cpp.py:
(check_spacing):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_spacing_for_binary_ops):
(WebKitStyleTest.test_line_breaking):

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

7 years ago[Win] Build fix after r159768.
commit-queue@webkit.org [Wed, 11 Dec 2013 23:38:23 +0000 (23:38 +0000)]
[Win] Build fix after r159768.
https://bugs.webkit.org/show_bug.cgi?id=125467

Patch by Alex Christensen <achristensen@webkit.org> on 2013-12-11
Reviewed by Brent Fulgham.

* WebKit.vcxproj/WebKit/WebKitVersion.cmd:
Set PATH environment variable to include cygwin bin directory.

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

7 years agoMessageReceiverMap should take MessageReceiver objects by reference
andersca@apple.com [Wed, 11 Dec 2013 23:36:53 +0000 (23:36 +0000)]
MessageReceiverMap should take MessageReceiver objects by reference
https://bugs.webkit.org/show_bug.cgi?id=125605

Reviewed by Tim Horton.

* Platform/CoreIPC/MessageReceiverMap.cpp:
(CoreIPC::MessageReceiverMap::addMessageReceiver):
* Platform/CoreIPC/MessageReceiverMap.h:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::AuthenticationManager):
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::addMessageReceiver):
* Shared/ChildProcess.h:
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::addMessageReceiver):
* Shared/ChildProcessProxy.h:
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy):
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::addMessageReceiver):
* UIProcess/WebContext.h:
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::WebDatabaseManagerProxy):
* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::WebIconDatabase):
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
* UIProcess/WebMediaCacheManagerProxy.cpp:
(WebKit::WebMediaCacheManagerProxy::WebMediaCacheManagerProxy):
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::WebResourceCacheManagerProxy):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::WebApplicationCacheManager):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::WebCookieManager):
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::WebGeolocationManager):
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::WebIconDatabaseProxy):
* WebProcess/MediaCache/WebMediaCacheManager.cpp:
(WebKit::WebMediaCacheManager::WebMediaCacheManager):
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::WebNotificationManager):
* WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::WebOriginDataManager):
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::WebResourceCacheManager):
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
* WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess):
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::WebDatabaseManager):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):

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

7 years ago[Win] Unreviewed link fix.
alex.christensen@flexsim.com [Wed, 11 Dec 2013 23:17:20 +0000 (23:17 +0000)]
[Win] Unreviewed link fix.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Corrected 64-bit linker symbols.

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

7 years agoDefine m_hasBadParent in InlineBox if defined(ADDRESS_SANITIZER)
ddkilzer@apple.com [Wed, 11 Dec 2013 23:15:45 +0000 (23:15 +0000)]
Define m_hasBadParent in InlineBox if defined(ADDRESS_SANITIZER)
<http://webkit.org/b/125329>

Reviewed by Darin Adler.

Source/WebCore:

No tests since this is a build fix for:

    $ ./Tools/Scripts/build-webkit --release OTHER_CFLAGS="$inherited -DADDRESS_SANITIZER=1"

* rendering/InlineBox.cpp:
* rendering/InlineBox.h:
- Replace ASSERT_DISABLED use with
  ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for m_hasBadParent.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::~InlineFlowBox):
- Use !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED instead of
  #ifndef NDEBUG since this calls setHasBadParent().
(WebCore::InlineFlowBox::checkConsistency):
- Move ASSERT(!m_hasBadChildList) outside of
  #if CHECK_CONSISTENCY and change to
  ASSERT_WITH_SECURITY_IMPLICATION(!m_hasBadChildList).

* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(WebCore::InlineFlowBox::setHasBadChildList):
- Change #ifndef NDEBUG to
  #if !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for code using
  m_hasBadChildList.

Source/WTF:

* wtf/Assertions.h: Define macro
ASSERT_WITH_SECURITY_IMPLICATION_DISABLED based on whether
ASSERT_WITH_SECURITY_IMPLICATION() is enabled.

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

7 years agocheck-webkit-style can't determine if a comma is part of an initialization list
commit-queue@webkit.org [Wed, 11 Dec 2013 23:05:52 +0000 (23:05 +0000)]
check-webkit-style can't determine if a comma is part of an initialization list
https://bugs.webkit.org/show_bug.cgi?id=125537

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-12-11
Reviewed by Darin Adler.

The original check to make sure that initialization list lines start with
a comma didn't distinguish between commas that belong to the initialization
list and commas that are part of function calls. Because we don't want to
match parentheses with regular expressions, we should weaken this check to
only check for commas at the end of initialization list lines.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_member_initialization_list):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_member_initialization_list):

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

7 years agoType punning error in MD5.cpp
commit-queue@webkit.org [Wed, 11 Dec 2013 23:00:08 +0000 (23:00 +0000)]
Type punning error in MD5.cpp
https://bugs.webkit.org/show_bug.cgi?id=125412

Patch by Brendan Long <b.long@cablelabs.com> on 2013-12-11
Reviewed by Darin Adler.

* wtf/MD5.cpp:
(WTF::toLittleEndian): Renamed, and use memcpy instead of casting.
(WTF::MD5::addBytes): Renamed reverseBytes to toLittleEndian.
(WTF::MD5::checksum): Same, and use memcpy instead of casting to prevent type punning error.

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

7 years agoMake it possible to compare layout test results between various configurations of...
timothy_horton@apple.com [Wed, 11 Dec 2013 22:47:07 +0000 (22:47 +0000)]
Make it possible to compare layout test results between various configurations of WebKit
https://bugs.webkit.org/show_bug.cgi?id=125212
<rdar://problem/15199108>

Reviewed by Darin Adler.

* Scripts/compare-webkit-configurations: Added.
Add a script that allows comparison between the "normal" WebKit configuration
used for testing and a different configuration (e.g. with accelerated drawing
turned on, with the remote layer tree enabled, or WebKit1 vs WebKit2), like so:

compare-webkit-configurations -2 --comparison=accelerated-drawing compositing/background-color

This script runs the tests once in the default configuration, ignoring
all test expectations, writing the results out to a temporary directory.

It then runs the tests again in the modified configuration, against the
just-written temporary results.

Ref tests are treated as pixel tests, with their pixel output dumped to disk.

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
(initializeGlobalsFromCommandLineOptions):
Enable accelerated drawing if requested.

* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
Add --accelerated-drawing and --remote-layer-tree feature switches, which
are forwarded on to the test drivers.
Move those two and --complex-text into their own "feature switches" section.
Drive-by change "Mac OS X" to "OS X".
Add --treat-ref-tests-as-pixel-tests option, which treats ref tests
as traditional pixel tests (with PNGs dumped on disk), and
ignores e.g. -expected.html files.

* Scripts/webkitpy/port/base.py:
(Port.reference_files):
Pretend that there are no ref tests.
Since is_reference_html_file is intact, our mechanism to ignore
the expected files will continue working in this case.

* Scripts/webkitpy/port/driver.py:
(Driver.cmd_line):
Forward --accelerated-drawing and --remote-layer-tree to DRT/WKTR.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::TestController):
(WTR::TestController::initialize):
(WTR::TestController::resetPreferencesToConsistentValues):
* WebKitTestRunner/TestController.h:
(WTR::TestController::shouldUseRemoteLayerTree):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::updateThreadedScrollingForCurrentTest):
* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::PlatformWebView):
Parse and implement the three feature switches.

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