From dc6262b587c71c14e30d93e57ed812e36a79a33e Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 24 Sep 2012 13:09:44 +0200 Subject: Imported WebKit commit 6339232fec7f5d9984a33388aecfd2cbc7832053 (http://svn.webkit.org/repository/webkit/trunk@129343) New snapshot with build fixes for latest qtbase --- ChangeLog | 53 + Source/JavaScriptCore/API/JSCallbackObject.h | 2 +- .../JavaScriptCore/API/JSCallbackObjectFunctions.h | 2 +- Source/JavaScriptCore/API/JSValueRef.cpp | 2 +- Source/JavaScriptCore/ChangeLog | 592 +++ .../Configurations/FeatureDefines.xcconfig | 3 +- .../JavaScriptCore/Configurations/Version.xcconfig | 2 +- .../JavaScriptCore/JavaScriptCore.def | 2 +- Source/JavaScriptCore/assembler/LinkBuffer.h | 3 + .../JavaScriptCore/assembler/MacroAssemblerARMv7.h | 6 + .../JavaScriptCore/assembler/MacroAssemblerMIPS.h | 7 + Source/JavaScriptCore/bytecode/CodeBlock.cpp | 16 +- Source/JavaScriptCore/bytecode/CodeBlock.h | 48 +- Source/JavaScriptCore/bytecode/Opcode.h | 4 +- .../bytecompiler/BytecodeGenerator.cpp | 66 +- .../bytecompiler/BytecodeGenerator.h | 4 +- .../JavaScriptCore/bytecompiler/NodesCodegen.cpp | 15 +- Source/JavaScriptCore/dfg/DFGAbstractState.cpp | 12 +- .../dfg/DFGArgumentsSimplificationPhase.cpp | 4 +- Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h | 19 + Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp | 27 +- Source/JavaScriptCore/dfg/DFGCSEPhase.cpp | 165 +- Source/JavaScriptCore/dfg/DFGGraph.h | 6 + Source/JavaScriptCore/dfg/DFGNode.h | 8 +- Source/JavaScriptCore/dfg/DFGNodeType.h | 9 +- .../dfg/DFGPredictionPropagationPhase.cpp | 5 +- Source/JavaScriptCore/dfg/DFGRepatch.cpp | 19 +- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp | 5 +- .../JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp | 112 +- Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp | 96 +- Source/JavaScriptCore/heap/MachineStackMarker.cpp | 2 +- Source/JavaScriptCore/interpreter/Interpreter.cpp | 47 +- Source/JavaScriptCore/jit/JITCall.cpp | 10 +- Source/JavaScriptCore/jit/JITCall32_64.cpp | 10 +- Source/JavaScriptCore/jit/JITInlineMethods.h | 1 + Source/JavaScriptCore/jit/JITOpcodes.cpp | 27 +- Source/JavaScriptCore/jit/JITOpcodes32_64.cpp | 27 +- Source/JavaScriptCore/jit/JITStubRoutine.h | 3 + Source/JavaScriptCore/jit/JITStubs.cpp | 29 +- Source/JavaScriptCore/jit/JITStubs.h | 2 +- Source/JavaScriptCore/llint/LLIntSlowPaths.cpp | 26 +- .../llint/LowLevelInterpreter32_64.asm | 21 +- .../JavaScriptCore/llint/LowLevelInterpreter64.asm | 21 +- Source/JavaScriptCore/offlineasm/armv7.rb | 2 +- Source/JavaScriptCore/offlineasm/cloop.rb | 2 +- Source/JavaScriptCore/runtime/Arguments.cpp | 26 +- Source/JavaScriptCore/runtime/Arguments.h | 25 +- Source/JavaScriptCore/runtime/ArrayConventions.h | 2 - Source/JavaScriptCore/runtime/ArrayPrototype.cpp | 38 +- Source/JavaScriptCore/runtime/ArrayStorage.h | 10 +- Source/JavaScriptCore/runtime/ClassInfo.h | 6 +- Source/JavaScriptCore/runtime/CommonSlowPaths.h | 22 - Source/JavaScriptCore/runtime/DatePrototype.cpp | 2 +- Source/JavaScriptCore/runtime/Executable.cpp | 3 - Source/JavaScriptCore/runtime/Executable.h | 4 +- .../JavaScriptCore/runtime/FunctionPrototype.cpp | 1 - Source/JavaScriptCore/runtime/JSActivation.cpp | 2 +- Source/JavaScriptCore/runtime/JSActivation.h | 83 +- Source/JavaScriptCore/runtime/JSArray.cpp | 23 - Source/JavaScriptCore/runtime/JSArray.h | 11 - Source/JavaScriptCore/runtime/JSBoundFunction.cpp | 9 +- Source/JavaScriptCore/runtime/JSBoundFunction.h | 2 +- Source/JavaScriptCore/runtime/JSCell.cpp | 2 +- Source/JavaScriptCore/runtime/JSCell.h | 2 +- Source/JavaScriptCore/runtime/JSGlobalObject.cpp | 2 +- Source/JavaScriptCore/runtime/JSObject.cpp | 65 +- Source/JavaScriptCore/runtime/JSObject.h | 40 +- Source/JavaScriptCore/runtime/Options.cpp | 3 + Source/JavaScriptCore/runtime/SymbolTable.h | 16 +- Source/JavaScriptCore/tests/mozilla/expected.html | 14 +- .../tests/mozilla/js1_2/function/function-001-n.js | 2 +- .../tests/mozilla/js1_3/Script/function-001-n.js | 2 +- .../tests/mozilla/js1_3/regress/function-001-n.js | 2 +- Source/Platform/ChangeLog | 74 + .../public/WebCompositorSoftwareOutputDevice.h | 2 +- .../chromium/public/WebGraphicsContext3D.h | 6 + Source/Platform/chromium/public/WebLayer.h | 13 + Source/WTF/ChangeLog | 56 + Source/WTF/WTF.pri | 2 - Source/WTF/wtf/Compiler.h | 2 +- Source/WTF/wtf/FastMalloc.cpp | 4 +- Source/WTF/wtf/OSAllocatorPosix.cpp | 1 + Source/WTF/wtf/RetainPtr.h | 8 +- Source/WTF/wtf/text/WTFString.cpp | 16 +- Source/WTF/wtf/text/WTFString.h | 12 +- Source/WebCore/ChangeLog | 1728 ++++++++ .../WebCore/Configurations/FeatureDefines.xcconfig | 3 +- Source/WebCore/Configurations/Version.xcconfig | 2 +- .../Configurations/WebCoreTestSupport.xcconfig | 1 + Source/WebCore/English.lproj/localizedStrings.js | 10 +- Source/WebCore/GNUmakefile.features.am | 1 + Source/WebCore/Modules/vibration/Vibration.h | 2 - .../Modules/webaudio/AudioBufferSourceNode.cpp | 9 +- .../Modules/webaudio/AudioBufferSourceNode.h | 5 +- .../Modules/webaudio/AudioBufferSourceNode.idl | 10 +- .../Modules/webaudio/AudioScheduledSourceNode.cpp | 16 +- .../Modules/webaudio/AudioScheduledSourceNode.h | 5 + .../WebCore/Modules/webaudio/BiquadDSPKernel.cpp | 8 +- .../WebCore/Modules/webaudio/BiquadProcessor.cpp | 28 +- Source/WebCore/Modules/webaudio/BiquadProcessor.h | 4 + Source/WebCore/Modules/webaudio/Oscillator.idl | 6 + .../Modules/websockets/WebSocketChannel.cpp | 81 +- .../WebCore/Modules/websockets/WebSocketChannel.h | 3 +- Source/WebCore/PlatformBlackBerry.cmake | 2 + .../Resources/pagepopups/calendarPicker.css | 5 +- .../WebCore/Resources/pagepopups/calendarPicker.js | 55 +- .../WebCore/Resources/pagepopups/pickerCommon.js | 19 + .../Resources/pagepopups/suggestionPicker.css | 43 + .../Resources/pagepopups/suggestionPicker.js | 311 ++ Source/WebCore/WebCore.gyp/WebCore.gyp | 30 +- Source/WebCore/WebCore.gypi | 208 +- .../accessibility/gtk/AccessibilityObjectAtk.cpp | 13 +- .../gtk/WebKitAccessibleWrapperAtk.cpp | 4 +- .../mac/WebAccessibilityObjectWrapper.mm | 4 + Source/WebCore/css/StyleResolver.cpp | 3 +- Source/WebCore/css/StyleResolver.h | 2 +- Source/WebCore/dom/ChildListMutationScope.cpp | 197 +- Source/WebCore/dom/ChildListMutationScope.h | 80 +- Source/WebCore/dom/ContainerNode.cpp | 4 +- Source/WebCore/dom/ContainerNode.h | 2 +- Source/WebCore/dom/DOMImplementation.cpp | 4 +- Source/WebCore/dom/Document.cpp | 41 +- Source/WebCore/dom/Element.cpp | 7 +- Source/WebCore/dom/ElementAttributeData.h | 21 +- Source/WebCore/dom/Position.cpp | 1 + Source/WebCore/editing/markup.cpp | 2 +- Source/WebCore/html/BaseButtonInputType.cpp | 51 - Source/WebCore/html/BaseButtonInputType.h | 7 +- Source/WebCore/html/FileInputType.cpp | 2 - Source/WebCore/html/HTMLDialogElement.cpp | 9 + Source/WebCore/html/HTMLDialogElement.h | 1 + Source/WebCore/html/HTMLDialogElement.idl | 1 + Source/WebCore/html/HTMLElement.cpp | 1 - Source/WebCore/html/HTMLInputElement.cpp | 1 - Source/WebCore/html/HTMLMediaElement.cpp | 1 + Source/WebCore/html/HTMLViewSourceDocument.cpp | 26 +- Source/WebCore/html/InputType.cpp | 4 - Source/WebCore/html/InputType.h | 1 - Source/WebCore/html/TimeInputType.cpp | 24 +- .../WebCore/html/canvas/WebGLRenderingContext.cpp | 30 +- Source/WebCore/html/canvas/WebGLRenderingContext.h | 1 + .../html/canvas/WebGLVertexArrayObjectOES.cpp | 69 + .../html/canvas/WebGLVertexArrayObjectOES.h | 4 +- .../WebCore/html/parser/HTMLConstructionSite.cpp | 2 +- Source/WebCore/html/parser/HTMLTreeBuilder.cpp | 8 +- .../WebCore/html/shadow/CalendarPickerElement.cpp | 13 +- Source/WebCore/html/shadow/DateTimeEditElement.cpp | 53 +- Source/WebCore/html/shadow/DateTimeEditElement.h | 24 +- Source/WebCore/html/track/WebVTTParser.cpp | 6 +- Source/WebCore/inspector/InspectorOverlayPage.html | 208 +- .../inspector/front-end/DefaultTextEditor.js | 2 + Source/WebCore/inspector/front-end/FileUtils.js | 92 +- Source/WebCore/inspector/front-end/HAREntry.js | 103 +- .../inspector/front-end/HeapSnapshotLoader.js | 20 +- .../inspector/front-end/HeapSnapshotProxy.js | 9 +- .../inspector/front-end/HeapSnapshotView.js | 84 +- Source/WebCore/inspector/front-end/NetworkPanel.js | 42 +- .../WebCore/inspector/front-end/TimelineModel.js | 81 +- Source/WebCore/page/ContentSecurityPolicy.cpp | 8 + Source/WebCore/page/FeatureObserver.h | 5 + Source/WebCore/platform/DateTimeChooser.h | 1 + .../blackberry/AuthenticationChallengeManager.cpp | 253 ++ .../blackberry/AuthenticationChallengeManager.h | 35 + .../platform/blackberry/PageClientBlackBerry.h | 2 +- Source/WebCore/platform/chromium/PlatformSupport.h | 7 - .../platform/chromium/support/CCThreadImpl.cpp | 118 - .../platform/chromium/support/CCThreadImpl.h | 54 - .../chromium/support/Extensions3DChromium.cpp | 12 +- .../chromium/support/WebCompositorImpl.cpp | 119 - .../platform/chromium/support/WebCompositorImpl.h | 62 - Source/WebCore/platform/graphics/FontCache.cpp | 2 +- Source/WebCore/platform/graphics/FontCache.h | 8 + Source/WebCore/platform/graphics/SimpleFontData.h | 6 +- .../graphics/blackberry/FontCacheBlackberry.cpp | 120 + .../blackberry/MediaPlayerPrivateBlackBerry.cpp | 22 +- .../blackberry/MediaPlayerPrivateBlackBerry.h | 1 + .../graphics/blackberry/skia/PlatformSupport.cpp | 82 - .../graphics/blackberry/skia/PlatformSupport.h | 6 - .../platform/graphics/cairo/ImageBufferCairo.cpp | 2 +- .../chromium/BitmapCanvasLayerTextureUpdater.cpp | 110 - .../chromium/BitmapCanvasLayerTextureUpdater.h | 78 - .../BitmapSkPictureCanvasLayerTextureUpdater.cpp | 105 - .../BitmapSkPictureCanvasLayerTextureUpdater.h | 66 - .../graphics/chromium/Canvas2DLayerBridge.cpp | 17 +- .../chromium/CanvasLayerTextureUpdater.cpp | 91 - .../graphics/chromium/CanvasLayerTextureUpdater.h | 60 - .../graphics/chromium/ContentLayerChromium.cpp | 134 - .../graphics/chromium/ContentLayerChromium.h | 93 - .../graphics/chromium/ContentLayerChromiumClient.h | 44 - .../graphics/chromium/FontCacheAndroid.cpp | 11 +- .../graphics/chromium/FontCacheChromiumLinux.cpp | 48 + ...ameBufferSkPictureCanvasLayerTextureUpdater.cpp | 140 - ...FrameBufferSkPictureCanvasLayerTextureUpdater.h | 73 - .../platform/graphics/chromium/GeometryBinding.cpp | 82 - .../platform/graphics/chromium/GeometryBinding.h | 69 - .../graphics/chromium/GraphicsLayerChromium.cpp | 2 +- .../chromium/HeadsUpDisplayLayerChromium.cpp | 91 - .../chromium/HeadsUpDisplayLayerChromium.h | 57 - .../graphics/chromium/IOSurfaceLayerChromium.cpp | 77 - .../graphics/chromium/IOSurfaceLayerChromium.h | 59 - .../graphics/chromium/ImageLayerChromium.cpp | 187 - .../graphics/chromium/ImageLayerChromium.h | 74 - .../platform/graphics/chromium/LayerChromium.cpp | 751 ---- .../platform/graphics/chromium/LayerChromium.h | 403 -- .../graphics/chromium/LayerTextureSubImage.cpp | 130 - .../graphics/chromium/LayerTextureSubImage.h | 67 - .../graphics/chromium/LayerTextureUpdater.h | 84 - .../platform/graphics/chromium/PlatformColor.h | 79 - .../platform/graphics/chromium/ProgramBinding.cpp | 170 - .../platform/graphics/chromium/ProgramBinding.h | 105 - .../platform/graphics/chromium/RateLimiter.cpp | 107 - .../platform/graphics/chromium/RateLimiter.h | 74 - .../graphics/chromium/RenderSurfaceChromium.cpp | 64 - .../graphics/chromium/RenderSurfaceChromium.h | 120 - .../graphics/chromium/ScrollbarLayerChromium.cpp | 281 -- .../graphics/chromium/ScrollbarLayerChromium.h | 86 - .../platform/graphics/chromium/ShaderChromium.cpp | 905 ----- .../platform/graphics/chromium/ShaderChromium.h | 372 -- .../SkPictureCanvasLayerTextureUpdater.cpp | 68 - .../chromium/SkPictureCanvasLayerTextureUpdater.h | 69 - .../graphics/chromium/SolidColorLayerChromium.cpp | 57 - .../graphics/chromium/SolidColorLayerChromium.h | 52 - .../platform/graphics/chromium/TextureCopier.cpp | 121 - .../platform/graphics/chromium/TextureCopier.h | 88 - .../graphics/chromium/TextureLayerChromium.cpp | 155 - .../graphics/chromium/TextureLayerChromium.h | 98 - .../graphics/chromium/TextureLayerChromiumClient.h | 52 - .../graphics/chromium/ThrottledTextureUploader.cpp | 138 - .../graphics/chromium/ThrottledTextureUploader.h | 88 - .../graphics/chromium/TiledLayerChromium.cpp | 812 ---- .../graphics/chromium/TiledLayerChromium.h | 127 - .../graphics/chromium/TreeSynchronizer.cpp | 133 - .../platform/graphics/chromium/TreeSynchronizer.h | 62 - .../graphics/chromium/UnthrottledTextureUploader.h | 53 - .../graphics/chromium/VideoLayerChromium.cpp | 63 - .../graphics/chromium/VideoLayerChromium.h | 66 - .../graphics/chromium/cc/CCActiveAnimation.cpp | 227 -- .../graphics/chromium/cc/CCActiveAnimation.h | 181 - .../graphics/chromium/cc/CCAnimationCurve.cpp | 43 - .../graphics/chromium/cc/CCAnimationCurve.h | 76 - .../graphics/chromium/cc/CCAnimationEvents.h | 58 - .../graphics/chromium/cc/CCAppendQuadsData.h | 45 - .../chromium/cc/CCCheckerboardDrawQuad.cpp | 49 - .../graphics/chromium/cc/CCCheckerboardDrawQuad.h | 49 - .../graphics/chromium/cc/CCCompletionEvent.h | 85 - .../graphics/chromium/cc/CCDamageTracker.cpp | 371 -- .../graphics/chromium/cc/CCDamageTracker.h | 83 - .../graphics/chromium/cc/CCDebugBorderDrawQuad.cpp | 53 - .../graphics/chromium/cc/CCDebugBorderDrawQuad.h | 56 - .../graphics/chromium/cc/CCDebugRectHistory.cpp | 136 - .../graphics/chromium/cc/CCDebugRectHistory.h | 103 - .../chromium/cc/CCDelayBasedTimeSource.cpp | 240 -- .../graphics/chromium/cc/CCDelayBasedTimeSource.h | 98 - .../graphics/chromium/cc/CCDirectRenderer.cpp | 233 -- .../graphics/chromium/cc/CCDirectRenderer.h | 127 - .../platform/graphics/chromium/cc/CCDrawQuad.cpp | 121 - .../platform/graphics/chromium/cc/CCDrawQuad.h | 117 - .../platform/graphics/chromium/cc/CCFontAtlas.cpp | 90 - .../platform/graphics/chromium/cc/CCFontAtlas.h | 85 - .../graphics/chromium/cc/CCFrameRateController.cpp | 182 - .../graphics/chromium/cc/CCFrameRateController.h | 98 - .../graphics/chromium/cc/CCFrameRateCounter.cpp | 150 - .../graphics/chromium/cc/CCFrameRateCounter.h | 91 - .../graphics/chromium/cc/CCGraphicsContext.h | 42 - .../chromium/cc/CCHeadsUpDisplayLayerImpl.cpp | 306 -- .../chromium/cc/CCHeadsUpDisplayLayerImpl.h | 77 - .../graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp | 51 - .../graphics/chromium/cc/CCIOSurfaceDrawQuad.h | 63 - .../graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp | 133 - .../graphics/chromium/cc/CCIOSurfaceLayerImpl.h | 64 - .../platform/graphics/chromium/cc/CCInputHandler.h | 98 - .../chromium/cc/CCKeyframedAnimationCurve.cpp | 241 -- .../chromium/cc/CCKeyframedAnimationCurve.h | 131 - .../chromium/cc/CCLayerAnimationController.cpp | 427 -- .../chromium/cc/CCLayerAnimationController.h | 132 - .../platform/graphics/chromium/cc/CCLayerImpl.cpp | 647 --- .../platform/graphics/chromium/cc/CCLayerImpl.h | 413 -- .../graphics/chromium/cc/CCLayerIterator.cpp | 170 - .../graphics/chromium/cc/CCLayerIterator.h | 230 -- .../platform/graphics/chromium/cc/CCLayerQuad.cpp | 87 - .../platform/graphics/chromium/cc/CCLayerQuad.h | 133 - .../graphics/chromium/cc/CCLayerSorter.cpp | 442 -- .../platform/graphics/chromium/cc/CCLayerSorter.h | 108 - .../graphics/chromium/cc/CCLayerTilingData.cpp | 170 - .../graphics/chromium/cc/CCLayerTilingData.h | 119 - .../graphics/chromium/cc/CCLayerTreeHost.cpp | 823 ---- .../graphics/chromium/cc/CCLayerTreeHost.h | 324 -- .../graphics/chromium/cc/CCLayerTreeHostClient.h | 63 - .../graphics/chromium/cc/CCLayerTreeHostCommon.cpp | 905 ----- .../graphics/chromium/cc/CCLayerTreeHostCommon.h | 105 - .../graphics/chromium/cc/CCLayerTreeHostImpl.cpp | 1299 ------ .../graphics/chromium/cc/CCLayerTreeHostImpl.h | 316 -- .../platform/graphics/chromium/cc/CCMathUtil.cpp | 399 -- .../platform/graphics/chromium/cc/CCMathUtil.h | 129 - .../graphics/chromium/cc/CCOcclusionTracker.cpp | 503 --- .../graphics/chromium/cc/CCOcclusionTracker.h | 124 - .../graphics/chromium/cc/CCOverdrawMetrics.cpp | 210 - .../graphics/chromium/cc/CCOverdrawMetrics.h | 117 - .../graphics/chromium/cc/CCPageScaleAnimation.cpp | 182 - .../graphics/chromium/cc/CCPageScaleAnimation.h | 94 - .../graphics/chromium/cc/CCPrioritizedTexture.cpp | 171 - .../graphics/chromium/cc/CCPrioritizedTexture.h | 149 - .../chromium/cc/CCPrioritizedTextureManager.cpp | 431 -- .../chromium/cc/CCPrioritizedTextureManager.h | 165 - .../graphics/chromium/cc/CCPriorityCalculator.cpp | 92 - .../graphics/chromium/cc/CCPriorityCalculator.h | 53 - .../platform/graphics/chromium/cc/CCProxy.cpp | 126 - .../platform/graphics/chromium/cc/CCProxy.h | 147 - .../platform/graphics/chromium/cc/CCQuadCuller.cpp | 117 - .../platform/graphics/chromium/cc/CCQuadCuller.h | 58 - .../platform/graphics/chromium/cc/CCQuadSink.h | 51 - .../platform/graphics/chromium/cc/CCRenderPass.cpp | 123 - .../platform/graphics/chromium/cc/CCRenderPass.h | 152 - .../graphics/chromium/cc/CCRenderPassDrawQuad.cpp | 71 - .../graphics/chromium/cc/CCRenderPassDrawQuad.h | 70 - .../graphics/chromium/cc/CCRenderPassSink.h | 41 - .../graphics/chromium/cc/CCRenderSurface.cpp | 253 -- .../graphics/chromium/cc/CCRenderSurface.h | 151 - .../chromium/cc/CCRenderSurfaceFilters.cpp | 465 --- .../graphics/chromium/cc/CCRenderSurfaceFilters.h | 55 - .../platform/graphics/chromium/cc/CCRenderer.h | 111 - .../platform/graphics/chromium/cc/CCRendererGL.cpp | 1552 ------- .../platform/graphics/chromium/cc/CCRendererGL.h | 271 -- .../graphics/chromium/cc/CCRenderingStats.h | 50 - .../graphics/chromium/cc/CCResourceProvider.cpp | 564 --- .../graphics/chromium/cc/CCResourceProvider.h | 310 -- .../platform/graphics/chromium/cc/CCScheduler.cpp | 220 - .../platform/graphics/chromium/cc/CCScheduler.h | 127 - .../chromium/cc/CCSchedulerStateMachine.cpp | 364 -- .../graphics/chromium/cc/CCSchedulerStateMachine.h | 186 - .../graphics/chromium/cc/CCScopedTexture.cpp | 72 - .../graphics/chromium/cc/CCScopedTexture.h | 65 - .../graphics/chromium/cc/CCScopedThreadProxy.h | 91 - .../chromium/cc/CCScrollbarAnimationController.cpp | 112 - .../chromium/cc/CCScrollbarAnimationController.h | 84 - .../CCScrollbarAnimationControllerLinearFade.cpp | 98 - .../cc/CCScrollbarAnimationControllerLinearFade.h | 59 - .../chromium/cc/CCScrollbarGeometryFixedThumb.cpp | 115 - .../chromium/cc/CCScrollbarGeometryFixedThumb.h | 60 - .../chromium/cc/CCScrollbarGeometryStub.cpp | 130 - .../graphics/chromium/cc/CCScrollbarGeometryStub.h | 73 - .../graphics/chromium/cc/CCScrollbarLayerImpl.cpp | 227 -- .../graphics/chromium/cc/CCScrollbarLayerImpl.h | 133 - .../platform/graphics/chromium/cc/CCSettings.cpp | 53 - .../platform/graphics/chromium/cc/CCSettings.h | 51 - .../graphics/chromium/cc/CCSharedQuadState.cpp | 56 - .../graphics/chromium/cc/CCSharedQuadState.h | 54 - .../graphics/chromium/cc/CCSingleThreadProxy.cpp | 376 -- .../graphics/chromium/cc/CCSingleThreadProxy.h | 151 - .../graphics/chromium/cc/CCSolidColorDrawQuad.cpp | 53 - .../graphics/chromium/cc/CCSolidColorDrawQuad.h | 54 - .../graphics/chromium/cc/CCSolidColorLayerImpl.cpp | 70 - .../graphics/chromium/cc/CCSolidColorLayerImpl.h | 55 - .../graphics/chromium/cc/CCStreamVideoDrawQuad.cpp | 50 - .../graphics/chromium/cc/CCStreamVideoDrawQuad.h | 57 - .../platform/graphics/chromium/cc/CCTexture.cpp | 57 - .../platform/graphics/chromium/cc/CCTexture.h | 63 - .../graphics/chromium/cc/CCTextureDrawQuad.cpp | 57 - .../graphics/chromium/cc/CCTextureDrawQuad.h | 62 - .../graphics/chromium/cc/CCTextureLayerImpl.cpp | 100 - .../graphics/chromium/cc/CCTextureLayerImpl.h | 69 - .../chromium/cc/CCTextureUpdateController.cpp | 189 - .../chromium/cc/CCTextureUpdateController.h | 80 - .../graphics/chromium/cc/CCTextureUpdateQueue.cpp | 85 - .../graphics/chromium/cc/CCTextureUpdateQueue.h | 66 - .../platform/graphics/chromium/cc/CCThread.h | 61 - .../graphics/chromium/cc/CCThreadProxy.cpp | 953 ----- .../platform/graphics/chromium/cc/CCThreadProxy.h | 201 - .../platform/graphics/chromium/cc/CCThreadTask.h | 325 -- .../graphics/chromium/cc/CCTileDrawQuad.cpp | 60 - .../platform/graphics/chromium/cc/CCTileDrawQuad.h | 75 - .../graphics/chromium/cc/CCTiledLayerImpl.cpp | 241 -- .../graphics/chromium/cc/CCTiledLayerImpl.h | 82 - .../platform/graphics/chromium/cc/CCTimeSource.h | 59 - .../platform/graphics/chromium/cc/CCTimer.cpp | 105 - .../platform/graphics/chromium/cc/CCTimer.h | 68 - .../graphics/chromium/cc/CCTimingFunction.cpp | 96 - .../graphics/chromium/cc/CCTimingFunction.h | 84 - .../graphics/chromium/cc/CCVideoLayerImpl.cpp | 409 -- .../graphics/chromium/cc/CCVideoLayerImpl.h | 110 - .../graphics/chromium/cc/CCYUVVideoDrawQuad.cpp | 51 - .../graphics/chromium/cc/CCYUVVideoDrawQuad.h | 55 - .../graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp | 31 + .../graphics/harfbuzz/FontPlatformDataHarfBuzz.h | 7 + .../graphics/harfbuzz/ng/HarfBuzzShaper.cpp | 68 +- .../platform/graphics/harfbuzz/ng/HarfBuzzShaper.h | 1 - .../graphics/mac/ComplexTextController.cpp | 21 +- .../WebCore/platform/graphics/mac/FontCacheMac.mm | 6 + .../platform/graphics/skia/BitLockerSkia.cpp | 119 - .../WebCore/platform/graphics/skia/BitLockerSkia.h | 54 - .../platform/graphics/skia/FontCacheSkia.cpp | 5 +- .../graphics/skia/GlyphPageTreeNodeSkia.cpp | 55 - .../WebCore/platform/image-decoders/ImageDecoder.h | 4 +- .../platform/network/blackberry/NetworkJob.cpp | 30 +- .../platform/network/blackberry/NetworkJob.h | 5 + Source/WebCore/platform/text/LocaleICU.cpp | 4 + Source/WebCore/platform/text/LocalizedDate.h | 14 - Source/WebCore/platform/text/LocalizedDateICU.cpp | 17 - Source/WebCore/platform/text/LocalizedDateWin.cpp | 17 - Source/WebCore/platform/text/Localizer.h | 10 + Source/WebCore/platform/text/TextStream.cpp | 4 +- .../platform/text/gtk/TextBreakIteratorGtk.cpp | 2 +- .../WebCore/platform/text/mac/LocalizedDateMac.cpp | 17 - Source/WebCore/rendering/FilterEffectRenderer.h | 2 +- Source/WebCore/rendering/InlineBox.h | 2 +- Source/WebCore/rendering/InlineTextBox.cpp | 9 + Source/WebCore/rendering/InlineTextBox.h | 5 +- Source/WebCore/rendering/RenderBlockLineLayout.cpp | 8 +- Source/WebCore/rendering/RenderBox.h | 2 +- Source/WebCore/rendering/RenderButton.cpp | 36 + Source/WebCore/rendering/RenderButton.h | 6 + Source/WebCore/rendering/RenderLayer.cpp | 30 +- Source/WebCore/rendering/RenderLayer.h | 2 + Source/WebCore/rendering/RenderListBox.cpp | 33 +- Source/WebCore/rendering/RenderListBox.h | 2 +- Source/WebCore/rendering/RenderObject.h | 2 +- Source/WebCore/rendering/RenderText.cpp | 1 + Source/WebCore/rendering/TextAutosizer.cpp | 188 +- Source/WebCore/rendering/TextAutosizer.h | 18 +- .../WebCore/rendering/svg/RenderSVGModelObject.cpp | 7 + .../WebCore/rendering/svg/RenderSVGModelObject.h | 1 + Source/WebCore/workers/SharedWorker.cpp | 4 + Source/WebCore/workers/Worker.cpp | 4 + Source/WebCore/xml/XMLErrors.cpp | 28 +- Source/WebCore/xml/parser/XMLDocumentParser.cpp | 4 +- .../xml/parser/XMLDocumentParserLibxml2.cpp | 10 +- Source/WebCore/xml/parser/XMLDocumentParserQt.cpp | 10 +- Source/WebCore/xml/parser/XMLTreeBuilder.cpp | 6 +- Source/WebKit/ChangeLog | 13 + Source/WebKit/PlatformBlackBerry.cmake | 1 - Source/WebKit/blackberry/Api/BackingStore.cpp | 72 - Source/WebKit/blackberry/Api/BackingStore_p.h | 3 - Source/WebKit/blackberry/Api/BlackBerryGlobal.cpp | 3 + Source/WebKit/blackberry/Api/WebPage.cpp | 50 +- Source/WebKit/blackberry/Api/WebPage_p.h | 5 +- Source/WebKit/blackberry/ChangeLog | 81 + .../WebCoreSupport/PagePopupBlackBerry.cpp | 2 +- .../BackingStoreCompositingSurface.cpp | 106 - .../WebKitSupport/BackingStoreCompositingSurface.h | 82 - .../blackberry/WebKitSupport/GLES2Context.cpp | 31 +- .../WebKit/blackberry/WebKitSupport/GLES2Context.h | 2 - .../blackberry/WebKitSupport/SurfacePool.cpp | 34 - .../WebKit/blackberry/WebKitSupport/SurfacePool.h | 11 - Source/WebKit/chromium/ChangeLog | 307 ++ Source/WebKit/chromium/DEPS | 2 +- Source/WebKit/chromium/WebKit.gyp | 36 +- Source/WebKit/chromium/WebKit.gypi | 118 +- Source/WebKit/chromium/WebKitUnitTests.gyp | 30 +- Source/WebKit/chromium/features.gypi | 3 +- Source/WebKit/chromium/src/DateTimeChooserImpl.cpp | 13 + Source/WebKit/chromium/src/PlatformSupport.cpp | 20 - .../chromium/src/WebAnimationCurveCommon.cpp | 53 - .../WebKit/chromium/src/WebAnimationCurveCommon.h | 39 - Source/WebKit/chromium/src/WebAnimationImpl.cpp | 134 - Source/WebKit/chromium/src/WebAnimationImpl.h | 63 - Source/WebKit/chromium/src/WebContentLayerImpl.cpp | 98 - Source/WebKit/chromium/src/WebContentLayerImpl.h | 63 - .../chromium/src/WebExternalTextureLayerImpl.cpp | 132 - .../chromium/src/WebExternalTextureLayerImpl.h | 64 - .../chromium/src/WebFloatAnimationCurveImpl.cpp | 82 - .../chromium/src/WebFloatAnimationCurveImpl.h | 62 - .../WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp | 61 - Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h | 50 - Source/WebKit/chromium/src/WebImageLayerImpl.cpp | 60 - Source/WebKit/chromium/src/WebImageLayerImpl.h | 54 - Source/WebKit/chromium/src/WebLayerImpl.cpp | 414 -- Source/WebKit/chromium/src/WebLayerImpl.h | 115 - .../WebKit/chromium/src/WebLayerTreeViewImpl.cpp | 284 -- Source/WebKit/chromium/src/WebLayerTreeViewImpl.h | 97 - .../WebKit/chromium/src/WebScrollbarLayerImpl.cpp | 64 - Source/WebKit/chromium/src/WebScrollbarLayerImpl.h | 50 - .../WebKit/chromium/src/WebSolidColorLayerImpl.cpp | 62 - .../WebKit/chromium/src/WebSolidColorLayerImpl.h | 51 - .../chromium/src/WebToCCInputHandlerAdapter.cpp | 128 - .../chromium/src/WebToCCInputHandlerAdapter.h | 54 - .../src/WebTransformAnimationCurveImpl.cpp | 81 - .../chromium/src/WebTransformAnimationCurveImpl.h | 62 - Source/WebKit/chromium/src/WebVideoLayerImpl.cpp | 58 - Source/WebKit/chromium/src/WebVideoLayerImpl.h | 50 - .../chromium/tests/CCActiveAnimationTest.cpp | 228 -- .../chromium/tests/CCAnimationTestCommon.cpp | 221 - .../WebKit/chromium/tests/CCAnimationTestCommon.h | 110 - .../WebKit/chromium/tests/CCDamageTrackerTest.cpp | 1158 ------ .../chromium/tests/CCDelayBasedTimeSourceTest.cpp | 405 -- Source/WebKit/chromium/tests/CCDrawQuadTest.cpp | 332 -- .../chromium/tests/CCFrameRateControllerTest.cpp | 189 - .../WebKit/chromium/tests/CCGeometryTestUtils.cpp | 56 - Source/WebKit/chromium/tests/CCGeometryTestUtils.h | 62 - .../WebKit/chromium/tests/CCHeadsUpDisplayTest.cpp | 130 - .../tests/CCKeyframedAnimationCurveTest.cpp | 228 -- .../tests/CCLayerAnimationControllerTest.cpp | 582 --- Source/WebKit/chromium/tests/CCLayerImplTest.cpp | 180 - .../WebKit/chromium/tests/CCLayerIteratorTest.cpp | 275 -- Source/WebKit/chromium/tests/CCLayerQuadTest.cpp | 65 - Source/WebKit/chromium/tests/CCLayerSorterTest.cpp | 287 -- Source/WebKit/chromium/tests/CCLayerTestCommon.cpp | 56 - Source/WebKit/chromium/tests/CCLayerTestCommon.h | 39 - .../chromium/tests/CCLayerTreeHostCommonTest.cpp | 3554 ---------------- .../chromium/tests/CCLayerTreeHostImplTest.cpp | 4221 -------------------- .../WebKit/chromium/tests/CCLayerTreeHostTest.cpp | 3019 -------------- Source/WebKit/chromium/tests/CCMathUtilTest.cpp | 202 - .../chromium/tests/CCOcclusionTrackerTest.cpp | 3035 -------------- .../chromium/tests/CCOcclusionTrackerTestCommon.h | 57 - .../chromium/tests/CCPrioritizedTextureTest.cpp | 556 --- Source/WebKit/chromium/tests/CCQuadCullerTest.cpp | 491 --- Source/WebKit/chromium/tests/CCRenderPassTest.cpp | 107 - .../chromium/tests/CCRenderSurfaceFiltersTest.cpp | 161 - .../WebKit/chromium/tests/CCRenderSurfaceTest.cpp | 184 - Source/WebKit/chromium/tests/CCRendererGLTest.cpp | 447 --- .../chromium/tests/CCResourceProviderTest.cpp | 556 --- .../chromium/tests/CCSchedulerStateMachineTest.cpp | 1126 ------ Source/WebKit/chromium/tests/CCSchedulerTest.cpp | 498 --- .../WebKit/chromium/tests/CCSchedulerTestCommon.h | 153 - .../WebKit/chromium/tests/CCScopedTextureTest.cpp | 128 - ...CScrollbarAnimationControllerLinearFadeTest.cpp | 140 - .../chromium/tests/CCSolidColorLayerImplTest.cpp | 113 - Source/WebKit/chromium/tests/CCTestCommon.h | 42 - .../tests/CCTextureUpdateControllerTest.cpp | 685 ---- Source/WebKit/chromium/tests/CCThreadTaskTest.cpp | 65 - Source/WebKit/chromium/tests/CCThreadedTest.cpp | 649 --- Source/WebKit/chromium/tests/CCThreadedTest.h | 226 -- .../WebKit/chromium/tests/CCTiledLayerImplTest.cpp | 264 -- .../chromium/tests/CCTiledLayerTestCommon.cpp | 170 - .../WebKit/chromium/tests/CCTiledLayerTestCommon.h | 165 - Source/WebKit/chromium/tests/CCTimerTest.cpp | 89 - .../chromium/tests/ContentLayerChromiumTest.cpp | 79 - .../chromium/tests/FakeCCLayerTreeHostClient.h | 62 - .../chromium/tests/FakeGraphicsContext3DTest.cpp | 57 - .../chromium/tests/FakeWebScrollbarThemeGeometry.h | 69 - Source/WebKit/chromium/tests/FloatQuadTest.cpp | 80 - .../chromium/tests/ForwardIOStreamsAndroid.cpp | 125 - .../chromium/tests/ForwardIOStreamsAndroid.h | 40 - .../chromium/tests/GraphicsLayerChromiumTest.cpp | 4 +- .../chromium/tests/IDBDatabaseBackendTest.cpp | 10 +- .../chromium/tests/ImageLayerChromiumTest.cpp | 2 - Source/WebKit/chromium/tests/LayerChromiumTest.cpp | 832 ---- Source/WebKit/chromium/tests/MockCCQuadCuller.h | 78 - Source/WebKit/chromium/tests/RunAllTests.cpp | 7 - .../chromium/tests/ScrollbarLayerChromiumTest.cpp | 153 - .../tests/ScrollingCoordinatorChromiumTest.cpp | 217 + Source/WebKit/chromium/tests/TextureCopierTest.cpp | 79 - .../chromium/tests/TextureLayerChromiumTest.cpp | 141 - .../tests/ThrottledTextureUploaderTest.cpp | 92 - .../chromium/tests/TiledLayerChromiumTest.cpp | 1574 -------- .../WebKit/chromium/tests/TreeSynchronizerTest.cpp | 425 -- Source/WebKit/chromium/tests/WebAnimationTest.cpp | 83 - .../chromium/tests/WebFloatAnimationCurveTest.cpp | 236 -- Source/WebKit/chromium/tests/WebLayerTest.cpp | 211 - .../WebKit/chromium/tests/WebLayerTreeViewTest.cpp | 207 - .../tests/WebTransformAnimationCurveTest.cpp | 297 -- .../chromium/tests/WebTransformOperationsTest.cpp | 637 --- .../chromium/tests/WebTransformationMatrixTest.cpp | 1325 ------ .../WebKit/chromium/tests/data/fixed-position.html | 16 + .../chromium/tests/data/non-fast-scrollable.html | 18 + .../tests/data/touch-overflow-scrolling.html | 23 + .../chromium/tests/data/wheel-event-handler.html | 10 + Source/WebKit/efl/ChangeLog | 30 + .../WebKit/efl/WebCoreSupport/EditorClientEfl.cpp | 3 +- .../efl/WebCoreSupport/FrameLoaderClientEfl.cpp | 2 +- Source/WebKit/efl/ewk/ewk_frame.cpp | 2 +- Source/WebKit/mac/ChangeLog | 9 + .../mac/Configurations/FeatureDefines.xcconfig | 3 +- Source/WebKit/mac/Configurations/Version.xcconfig | 2 +- Source/WebKit2/ChangeLog | 388 ++ .../WebKit2/Configurations/FeatureDefines.xcconfig | 3 +- Source/WebKit2/Configurations/Version.xcconfig | 2 +- .../WebKit2/Configurations/WebKit2Service.xcconfig | 40 - .../Configurations/WebProcessService.xcconfig | 40 + .../WebProcessServiceForWebKitDevelopment.xcconfig | 26 + Source/WebKit2/DerivedSources.make | 2 +- Source/WebKit2/GNUmakefile.list.am | 1 + Source/WebKit2/Platform/CoreIPC/Connection.cpp | 2 +- Source/WebKit2/Platform/mac/WorkQueueMac.cpp | 4 +- Source/WebKit2/PlatformEfl.cmake | 1 + .../WebKit2/PluginProcess/mac/PluginProcessMac.mm | 14 +- Source/WebKit2/Shared/API/c/WKNumber.h | 2 +- .../Plugins/PluginProcessCreationParameters.cpp | 3 + .../Plugins/PluginProcessCreationParameters.h | 1 + Source/WebKit2/Shared/efl/WebEventFactory.cpp | 2 +- Source/WebKit2/UIProcess/API/C/gtk/WKView.cpp | 6 +- Source/WebKit2/UIProcess/API/C/gtk/WKViewPrivate.h | 41 + .../UIProcess/API/cpp/efl/WKEinaSharedString.cpp | 4 +- Source/WebKit2/UIProcess/API/efl/EWebKit2.h | 1 + Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp | 16 + Source/WebKit2/UIProcess/API/efl/ewk_settings.h | 24 + Source/WebKit2/UIProcess/API/efl/ewk_view.cpp | 16 + Source/WebKit2/UIProcess/API/efl/ewk_view.h | 16 + .../UIProcess/API/efl/ewk_view_loader_client.cpp | 2 +- .../UIProcess/API/efl/tests/test_ewk2_settings.cpp | 14 + .../UIProcess/API/efl/tests/test_ewk2_view.cpp | 29 +- .../WebKit2/UIProcess/API/gtk/PageClientImpl.cpp | 12 +- Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp | 108 +- Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h | 3 + .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 200 +- .../UIProcess/API/gtk/WebKitWebViewBasePrivate.h | 6 + .../UIProcess/API/gtk/docs/webkit2gtk-sections.txt | 1 + .../UIProcess/API/gtk/tests/LoadTrackingTest.cpp | 6 + .../UIProcess/API/gtk/tests/TestLoaderClient.cpp | 58 + .../UIProcess/API/gtk/tests/TestWebKitWebView.cpp | 2 +- .../UIProcess/Launcher/mac/ProcessLauncherMac.mm | 364 +- .../UIProcess/Plugins/mac/PluginProcessProxyMac.mm | 8 + .../WebKit2/UIProcess/mac/WebInspectorProxyMac.mm | 2 +- Source/WebKit2/WebKit2.xcodeproj/project.pbxproj | 226 +- Source/WebKit2/WebKit2Service/Info.plist | 39 - Source/WebKit2/WebKit2Service/MainMacService.mm | 44 - .../GeolocationPermissionRequestManager.cpp | 3 +- .../WebProcess/InjectedBundle/API/c/WKBundle.cpp | 5 - .../InjectedBundle/API/c/WKBundlePrivate.h | 1 - .../WebProcess/InjectedBundle/InjectedBundle.cpp | 12 - .../WebProcess/InjectedBundle/InjectedBundle.h | 1 - Source/WebKit2/WebProcess/WebPage/WebPage.cpp | 2 +- Source/WebKit2/WebProcess/mac/WebProcessMac.mm | 6 +- .../WebProcess/mac/WebProcessServiceEntryPoints.h | 52 + .../WebProcess/mac/WebProcessServiceEntryPoints.mm | 92 + .../WebProcess/mac/WebProcessXPCServiceMain.h | 45 - .../WebProcess/mac/WebProcessXPCServiceMain.mm | 80 - Source/WebKit2/WebProcessService/Info.plist | 44 + .../WebProcessService/WebProcessServiceMain.mm | 44 + .../Info.plist | 39 + .../WebProcessServiceForWebKitDevelopmentMain.mm | 159 + Source/WebKit2/win/WebKit2.def | 2 +- Source/WebKit2/win/WebKit2CFLite.def | 2 +- Source/api.pri | 4 + Source/cmake/WebKitFeatures.cmake | 1 + .../build.webkit.org-config/config.json | 11 +- Tools/ChangeLog | 602 ++- Tools/DumpRenderTree/AccessibilityController.cpp | 13 + Tools/DumpRenderTree/AccessibilityController.h | 1 + .../DumpRenderTree.gyp/DumpRenderTree.gyp | 18 +- .../DumpRenderTree.xcodeproj/project.pbxproj | 7 + .../TestRunner/AccessibilityControllerChromium.cpp | 51 +- .../TestRunner/AccessibilityControllerChromium.h | 4 + Tools/DumpRenderTree/chromium/TestShellAndroid.cpp | 4 - Tools/DumpRenderTree/efl/EventSender.cpp | 19 +- .../gtk/AccessibilityControllerGtk.cpp | 6 + .../gtk/AccessibilityUIElementGtk.cpp | 3 +- Tools/DumpRenderTree/mac/AccessibilityCommonMac.h | 47 + Tools/DumpRenderTree/mac/AccessibilityCommonMac.mm | 52 + .../mac/AccessibilityControllerMac.mm | 33 + .../mac/AccessibilityUIElementMac.mm | 30 +- .../win/AccessibilityControllerWin.cpp | 6 + Tools/Scripts/webkitdirs.pm | 7 - Tools/Scripts/webkitperl/FeatureList.pm | 4 + .../layout_tests/controllers/layout_test_runner.py | 6 +- .../controllers/layout_test_runner_unittest.py | 9 +- .../layout_tests/controllers/manager_unittest.py | 2 +- .../layout_tests/controllers/single_test_runner.py | 4 +- .../layout_tests/models/test_expectations.py | 67 +- .../models/test_expectations_unittest.py | 329 +- .../webkitpy/layout_tests/models/test_results.py | 3 +- Tools/Scripts/webkitpy/layout_tests/port/base.py | 17 +- .../webkitpy/layout_tests/port/chromium_android.py | 25 +- .../layout_tests/port/chromium_android_unittest.py | 5 +- Tools/Scripts/webkitpy/layout_tests/port/test.py | 40 +- .../webkitpy/layout_tests/run_webkit_tests.py | 9 +- .../run_webkit_tests_integrationtest.py | 12 +- .../Scripts/webkitpy/performance_tests/perftest.py | 31 +- .../performance_tests/perftest_unittest.py | 10 +- .../webkitpy/performance_tests/perftestsrunner.py | 5 + .../performance_tests/perftestsrunner_unittest.py | 26 +- .../style/checkers/test_expectations_unittest.py | 6 +- .../webkitpy/tool/commands/earlywarningsystem.py | 1 + .../webkitpy/tool/commands/queries_unittest.py | 26 +- Tools/TestWebKitAPI/InjectedBundleController.cpp | 6 +- .../TestWebKitAPI.gyp/TestWebKitAPI.gyp | 1 - Tools/WebKitTestRunner/CMakeLists.txt | 1 + Tools/WebKitTestRunner/GNUmakefile.am | 2 + Tools/WebKitTestRunner/GeolocationProviderMock.cpp | 83 + Tools/WebKitTestRunner/GeolocationProviderMock.h | 51 + .../InjectedBundle/AccessibilityController.cpp | 1 + .../InjectedBundle/AccessibilityController.h | 1 + .../Bindings/AccessibilityController.idl | 1 + .../Bindings/EventSendingController.idl | 1 + .../InjectedBundle/Bindings/TestRunner.idl | 5 +- .../InjectedBundle/EventSendingController.cpp | 68 +- .../InjectedBundle/EventSendingController.h | 1 + .../InjectedBundle/InjectedBundle.cpp | 28 + .../InjectedBundle/InjectedBundle.h | 4 + .../InjectedBundle/InjectedBundlePage.cpp | 5 + .../WebKitTestRunner/InjectedBundle/TestRunner.cpp | 16 +- Tools/WebKitTestRunner/InjectedBundle/TestRunner.h | 5 +- .../InjectedBundle/mac/AccessibilityCommonMac.h | 47 + .../InjectedBundle/mac/AccessibilityCommonMac.mm | 52 + .../mac/AccessibilityControllerMac.mm | 41 + .../mac/AccessibilityUIElementMac.mm | 30 +- Tools/WebKitTestRunner/Target.pri | 2 + Tools/WebKitTestRunner/TestController.cpp | 49 +- Tools/WebKitTestRunner/TestController.h | 9 + Tools/WebKitTestRunner/TestInvocation.cpp | 31 +- .../WebKitTestRunner.xcodeproj/project.pbxproj | 10 + Tools/WebKitTestRunner/efl/EventSenderProxyEfl.cpp | 18 +- Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp | 3 + Tools/WebKitTestRunner/qt/EventSenderProxyQt.cpp | 4 - Tools/WebKitTestRunner/win/WebKitTestRunner.vcproj | 8 + Tools/qmake/mkspecs/features/configure.prf | 3 + Tools/qmake/mkspecs/features/default_pre.prf | 4 +- WebKit.pro | 2 + 697 files changed, 9808 insertions(+), 73170 deletions(-) create mode 100644 Source/WebCore/Resources/pagepopups/suggestionPicker.css create mode 100644 Source/WebCore/Resources/pagepopups/suggestionPicker.js create mode 100644 Source/WebCore/platform/blackberry/AuthenticationChallengeManager.cpp delete mode 100644 Source/WebCore/platform/chromium/support/CCThreadImpl.cpp delete mode 100644 Source/WebCore/platform/chromium/support/CCThreadImpl.h delete mode 100644 Source/WebCore/platform/chromium/support/WebCompositorImpl.cpp delete mode 100644 Source/WebCore/platform/chromium/support/WebCompositorImpl.h create mode 100644 Source/WebCore/platform/graphics/blackberry/FontCacheBlackberry.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ContentLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ContentLayerChromiumClient.h create mode 100644 Source/WebCore/platform/graphics/chromium/FontCacheChromiumLinux.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/GeometryBinding.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/GeometryBinding.h delete mode 100644 Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/HeadsUpDisplayLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/IOSurfaceLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/IOSurfaceLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ImageLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/LayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/LayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/LayerTextureSubImage.h delete mode 100644 Source/WebCore/platform/graphics/chromium/LayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/PlatformColor.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ProgramBinding.h delete mode 100644 Source/WebCore/platform/graphics/chromium/RateLimiter.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/RateLimiter.h delete mode 100644 Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ScrollbarLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ShaderChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h delete mode 100644 Source/WebCore/platform/graphics/chromium/SolidColorLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/SolidColorLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/TextureCopier.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/TextureCopier.h delete mode 100644 Source/WebCore/platform/graphics/chromium/TextureLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/TextureLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/TextureLayerChromiumClient.h delete mode 100644 Source/WebCore/platform/graphics/chromium/ThrottledTextureUploader.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/ThrottledTextureUploader.h delete mode 100644 Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/TiledLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/TreeSynchronizer.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/TreeSynchronizer.h delete mode 100644 Source/WebCore/platform/graphics/chromium/UnthrottledTextureUploader.h delete mode 100644 Source/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/VideoLayerChromium.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCAnimationCurve.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCAnimationCurve.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCAnimationEvents.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCAppendQuadsData.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCCompletionEvent.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDebugRectHistory.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDebugRectHistory.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDelayBasedTimeSource.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDirectRenderer.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDirectRenderer.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCFontAtlas.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCFontAtlas.h delete mode 100755 Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCFrameRateCounter.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCFrameRateCounter.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCInputHandler.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerIterator.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerIterator.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerSorter.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerSorter.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTilingData.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTilingData.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostClient.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCMathUtil.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCMathUtil.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPageScaleAnimation.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPageScaleAnimation.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCProxy.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCProxy.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderPassDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderPassSink.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderSurfaceFilters.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderer.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRendererGL.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCRenderingStats.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCResourceProvider.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScheduler.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScopedTexture.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScopedTexture.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScopedThreadProxy.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarAnimationController.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarGeometryStub.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSettings.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSettings.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSolidColorDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTexture.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTexture.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateController.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateController.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateQueue.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCThread.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCThreadTask.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTileDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTileDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTimeSource.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTimer.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTimer.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTimingFunction.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCTimingFunction.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.h delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp delete mode 100644 Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h delete mode 100644 Source/WebCore/platform/graphics/skia/BitLockerSkia.cpp delete mode 100644 Source/WebCore/platform/graphics/skia/BitLockerSkia.h delete mode 100644 Source/WebKit/blackberry/WebKitSupport/BackingStoreCompositingSurface.cpp delete mode 100644 Source/WebKit/blackberry/WebKitSupport/BackingStoreCompositingSurface.h delete mode 100644 Source/WebKit/chromium/src/WebAnimationCurveCommon.cpp delete mode 100644 Source/WebKit/chromium/src/WebAnimationCurveCommon.h delete mode 100644 Source/WebKit/chromium/src/WebAnimationImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebAnimationImpl.h delete mode 100644 Source/WebKit/chromium/src/WebContentLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebContentLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebExternalTextureLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebExternalTextureLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h delete mode 100644 Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebImageLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebImageLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebLayerTreeViewImpl.h delete mode 100644 Source/WebKit/chromium/src/WebScrollbarLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebScrollbarLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebSolidColorLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebSolidColorLayerImpl.h delete mode 100644 Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.cpp delete mode 100644 Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.h delete mode 100644 Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h delete mode 100644 Source/WebKit/chromium/src/WebVideoLayerImpl.cpp delete mode 100644 Source/WebKit/chromium/src/WebVideoLayerImpl.h delete mode 100644 Source/WebKit/chromium/tests/CCActiveAnimationTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp delete mode 100644 Source/WebKit/chromium/tests/CCAnimationTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCDelayBasedTimeSourceTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCDrawQuadTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCFrameRateControllerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCGeometryTestUtils.cpp delete mode 100644 Source/WebKit/chromium/tests/CCGeometryTestUtils.h delete mode 100644 Source/WebKit/chromium/tests/CCHeadsUpDisplayTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCKeyframedAnimationCurveTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerAnimationControllerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerImplTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerIteratorTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerQuadTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerSorterTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerTestCommon.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCMathUtilTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCOcclusionTrackerTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCQuadCullerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCRenderPassTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCRenderSurfaceFiltersTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCRendererGLTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCResourceProviderTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCSchedulerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCSchedulerTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCScopedTextureTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCScrollbarAnimationControllerLinearFadeTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCTextureUpdateControllerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCThreadTaskTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCThreadedTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCThreadedTest.h delete mode 100644 Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp delete mode 100644 Source/WebKit/chromium/tests/CCTiledLayerTestCommon.cpp delete mode 100644 Source/WebKit/chromium/tests/CCTiledLayerTestCommon.h delete mode 100644 Source/WebKit/chromium/tests/CCTimerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/ContentLayerChromiumTest.cpp delete mode 100755 Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h delete mode 100644 Source/WebKit/chromium/tests/FakeGraphicsContext3DTest.cpp delete mode 100644 Source/WebKit/chromium/tests/FakeWebScrollbarThemeGeometry.h delete mode 100644 Source/WebKit/chromium/tests/FloatQuadTest.cpp delete mode 100644 Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.cpp delete mode 100644 Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.h delete mode 100644 Source/WebKit/chromium/tests/LayerChromiumTest.cpp delete mode 100644 Source/WebKit/chromium/tests/MockCCQuadCuller.h delete mode 100644 Source/WebKit/chromium/tests/ScrollbarLayerChromiumTest.cpp create mode 100644 Source/WebKit/chromium/tests/ScrollingCoordinatorChromiumTest.cpp delete mode 100644 Source/WebKit/chromium/tests/TextureCopierTest.cpp delete mode 100644 Source/WebKit/chromium/tests/TextureLayerChromiumTest.cpp delete mode 100644 Source/WebKit/chromium/tests/ThrottledTextureUploaderTest.cpp delete mode 100644 Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp delete mode 100644 Source/WebKit/chromium/tests/TreeSynchronizerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebAnimationTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebFloatAnimationCurveTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebLayerTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebLayerTreeViewTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebTransformAnimationCurveTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp delete mode 100644 Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp create mode 100644 Source/WebKit/chromium/tests/data/fixed-position.html create mode 100644 Source/WebKit/chromium/tests/data/non-fast-scrollable.html create mode 100644 Source/WebKit/chromium/tests/data/touch-overflow-scrolling.html create mode 100644 Source/WebKit/chromium/tests/data/wheel-event-handler.html delete mode 100644 Source/WebKit2/Configurations/WebKit2Service.xcconfig create mode 100644 Source/WebKit2/Configurations/WebProcessService.xcconfig create mode 100644 Source/WebKit2/Configurations/WebProcessServiceForWebKitDevelopment.xcconfig create mode 100644 Source/WebKit2/UIProcess/API/C/gtk/WKViewPrivate.h delete mode 100644 Source/WebKit2/WebKit2Service/Info.plist delete mode 100644 Source/WebKit2/WebKit2Service/MainMacService.mm create mode 100644 Source/WebKit2/WebProcess/mac/WebProcessServiceEntryPoints.h create mode 100644 Source/WebKit2/WebProcess/mac/WebProcessServiceEntryPoints.mm delete mode 100644 Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.h delete mode 100644 Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.mm create mode 100644 Source/WebKit2/WebProcessService/Info.plist create mode 100644 Source/WebKit2/WebProcessService/WebProcessServiceMain.mm create mode 100644 Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist create mode 100644 Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm create mode 100644 Tools/DumpRenderTree/mac/AccessibilityCommonMac.h create mode 100644 Tools/DumpRenderTree/mac/AccessibilityCommonMac.mm create mode 100644 Tools/WebKitTestRunner/GeolocationProviderMock.cpp create mode 100644 Tools/WebKitTestRunner/GeolocationProviderMock.h create mode 100644 Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h create mode 100644 Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm diff --git a/ChangeLog b/ChangeLog index df74473f0..5f5974607 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,56 @@ +2012-09-24 Simon Hausmann + + [Qt] Fix build with latest Qt 5 + + Reviewed by Tor Arne Vestbø. + + Define MODULE_BASE_DIR before loading qt_module.prf, which now calls syncqt. MODULE_BASE_DIR is + passed as last parameter (source dir) to syncqt now, so set it to the directory that contains + sync.profile. + + * Source/api.pri: + +2012-09-23 Keishi Hattori + + Add suggestionPicker to CalendarPicker + https://bugs.webkit.org/show_bug.cgi?id=97201 + + Reviewed by Kent Tamura. + + * ManualTests/forms/calendar-picker.html: Added tests for SuggestionPicker. + +2012-09-21 Ami Fischman + + HTMLMediaElement isn't garbage collected between document reloads + https://bugs.webkit.org/show_bug.cgi?id=97020 + + Reviewed by Eric Carlson. + + Manual test added: ManualTests/audio-freed-during-reload.html + + * ManualTests/audio-freed-during-reload.html: + +2012-09-21 Chris Rogers + + Add Web Audio support for deprecated/legacy APIs + https://bugs.webkit.org/show_bug.cgi?id=97050 + + Reviewed by Eric Carlson. + + * Source/cmake/WebKitFeatures.cmake: + +2012-09-21 Simon Hausmann + + [Qt] Bail out when trying to build WebKit with Qt != 5 + + Reviewed by Tor Arne Vestbø. + + Moved check for Qt version out of default_pre into top-level WebKit.pro, + because we never reach default_pre.prf due to the lack of .qmake.conf support + in older versions of Qt/QMake. + + * WebKit.pro: + 2012-09-20 Simon Hausmann [Qt] QtWebKit module header includes private dependencies diff --git a/Source/JavaScriptCore/API/JSCallbackObject.h b/Source/JavaScriptCore/API/JSCallbackObject.h index 8d7aedd3e..5022aaf40 100644 --- a/Source/JavaScriptCore/API/JSCallbackObject.h +++ b/Source/JavaScriptCore/API/JSCallbackObject.h @@ -186,7 +186,7 @@ private: static bool deleteProperty(JSCell*, ExecState*, PropertyName); static bool deletePropertyByIndex(JSCell*, ExecState*, unsigned); - static bool hasInstance(JSObject*, ExecState*, JSValue, JSValue proto); + static bool customHasInstance(JSObject*, ExecState*, JSValue); static void getOwnNonIndexPropertyNames(JSObject*, ExecState*, PropertyNameArray&, EnumerationMode); diff --git a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h index 39d078239..688e7b8b9 100644 --- a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h +++ b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h @@ -389,7 +389,7 @@ EncodedJSValue JSCallbackObject::construct(ExecState* exec) } template -bool JSCallbackObject::hasInstance(JSObject* object, ExecState* exec, JSValue value, JSValue) +bool JSCallbackObject::customHasInstance(JSObject* object, ExecState* exec, JSValue value) { JSCallbackObject* thisObject = jsCast(object); JSContextRef execRef = toRef(exec); diff --git a/Source/JavaScriptCore/API/JSValueRef.cpp b/Source/JavaScriptCore/API/JSValueRef.cpp index 4c986c253..bb92454bd 100644 --- a/Source/JavaScriptCore/API/JSValueRef.cpp +++ b/Source/JavaScriptCore/API/JSValueRef.cpp @@ -175,7 +175,7 @@ bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObject JSObject* jsConstructor = toJS(constructor); if (!jsConstructor->structure()->typeInfo().implementsHasInstance()) return false; - bool result = jsConstructor->methodTable()->hasInstance(jsConstructor, exec, jsValue, jsConstructor->get(exec, exec->propertyNames().prototype)); // false if an exception is thrown + bool result = jsConstructor->hasInstance(exec, jsValue); // false if an exception is thrown if (exec->hadException()) { if (exception) *exception = toRef(exec, exec->exception()); diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog index ca7100e21..5d81031ba 100644 --- a/Source/JavaScriptCore/ChangeLog +++ b/Source/JavaScriptCore/ChangeLog @@ -1,3 +1,595 @@ +2012-09-23 Geoffrey Garen + + PutScopedVar should not be marked as clobbering the world + https://bugs.webkit.org/show_bug.cgi?id=97416 + + Reviewed by Filip Pizlo. + + No performance change. + + PutScopedVar doesn't have arbitrary side-effects, so it shouldn't be marked + as such. + + * dfg/DFGNodeType.h: + (DFG): + +2012-09-23 Geoffrey Garen + + I accidentally the whole 32-bit :(. + + Unbreak the DFG in 32-bit with the 32-bit path I forgot in my last patch. + + * dfg/DFGSpeculativeJIT32_64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + +2012-09-23 Byungwoo Lee + + Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized. + https://bugs.webkit.org/show_bug.cgi?id=97306 + + Reviewed by Benjamin Poulain. + + Fix build warning about -Wunused-parameter on MachineStackMarker.cpp, + LLIntSlowPaths.cpp, DatePrototype.cpp, Options.cpp by using + UNUSED_PARAM() macro or remove parameter name. + + * heap/MachineStackMarker.cpp: + (JSC::pthreadSignalHandlerSuspendResume): + * llint/LLIntSlowPaths.cpp: + (JSC::LLInt::entryOSR): + * runtime/DatePrototype.cpp: + (JSC::formatLocaleDate): + * runtime/Options.cpp: + (JSC::computeNumberOfGCMarkers): + +2012-09-23 Gavin Barraclough + + Sorting a non-array creates propreties (spec-violation) + https://bugs.webkit.org/show_bug.cgi?id=25477 + + Reviewed by Oliver Hunt. + + We're just calling get() to get properties, which is converting missing properties to + undefined. Hole values should be retained, and moved to the end of the array. + + * runtime/ArrayPrototype.cpp: + (JSC::getOrHole): + - Helper function, returns JSValue() instead of undefined for missing properties. + (JSC::arrayProtoFuncSort): + - Implemented per 15.4.4.11, see comments above. + +2012-09-23 Geoffrey Garen + + CSE for access to closure variables (get_/put_scoped_var) + https://bugs.webkit.org/show_bug.cgi?id=97414 + + Reviewed by Oliver Hunt. + + I separated loading a scope from loading its storage pointer, so we can + CSE the storage pointer load. Then, I copied the global var CSE and adjusted + it for closure vars. + + * dfg/DFGAbstractState.cpp: + (JSC::DFG::AbstractState::execute): Renamed GetScopeChain => GetScope to + reflect renames from a few weeks ago. + + Added a case for the storage pointer load, similar to object storage pointer load. + + * dfg/DFGByteCodeParser.cpp: + (JSC::DFG::ByteCodeParser::parseBlock): Added an independent node for + the storage pointer. + + * dfg/DFGCSEPhase.cpp: + (JSC::DFG::CSEPhase::scopedVarLoadElimination): + (CSEPhase): + (JSC::DFG::CSEPhase::scopedVarStoreElimination): + (JSC::DFG::CSEPhase::getScopeLoadElimination): + (JSC::DFG::CSEPhase::getScopeRegistersLoadElimination): + (JSC::DFG::CSEPhase::setLocalStoreElimination): + (JSC::DFG::CSEPhase::performNodeCSE): Copied globalVarLoad/StoreElimination + and adapted the same logic to closure vars. + + * dfg/DFGNode.h: + (JSC::DFG::Node::hasScopeChainDepth): + (JSC::DFG::Node::scope): + (Node): + * dfg/DFGNodeType.h: + (DFG): GetScopedVar and GetGlobalVar are no longer MustGenerate. I'm not + sure why they ever were. But these are simple load operations so, if they're + unused, they're truly dead. + + * dfg/DFGPredictionPropagationPhase.cpp: + (JSC::DFG::PredictionPropagationPhase::propagate): + * dfg/DFGSpeculativeJIT32_64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + * dfg/DFGSpeculativeJIT64.cpp: + (JSC::DFG::SpeculativeJIT::compile): Updated for renames and split-out + node for getting the storage pointer. + +2012-09-21 Geoffrey Garen + + Unreviewed, rolled out a line I committed by accident. + + * interpreter/Interpreter.cpp: + (JSC::Interpreter::execute): + +2012-09-21 Geoffrey Garen + + Optimized closures that capture arguments + https://bugs.webkit.org/show_bug.cgi?id=97358 + + Reviewed by Oliver Hunt. + + Previously, the activation object was responsible for capturing all + arguments in a way that was convenient for the arguments object. Now, + we move all captured variables into a contiguous region in the stack, + allocate an activation for exactly that size, and make the arguments + object responsible for knowing all the places to which arguments could + have moved. + + This seems like the right tradeoff because + + (a) Closures are common and long-lived, so we want them to be small. + + (b) Our primary strategy for optimizing the arguments object is to make + it go away. If you're allocating arguments objects, you're already having + a bad time. + + (c) It's common to use either the arguments object or named argument + closure, but not both. + + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::dump): + (JSC::CodeBlock::CodeBlock): + * bytecode/CodeBlock.h: + (JSC::CodeBlock::argumentsRegister): + (JSC::CodeBlock::activationRegister): + (JSC::CodeBlock::isCaptured): + (JSC::CodeBlock::argumentIndexAfterCapture): m_numCapturedVars is gone + now -- we have an explicit range instead. + + * bytecompiler/BytecodeGenerator.cpp: + (JSC::BytecodeGenerator::BytecodeGenerator): Move captured arguments + into the captured region of local variables for space efficiency. Record + precise data about where they moved for the sake of the arguments object. + + Some of this data was previously wrong, but it didn't cause any problems + because the arguments weren't actually moving. + + * dfg/DFGByteCodeParser.cpp: + (JSC::DFG::ByteCodeParser::flushArgumentsAndCapturedVariables): Don't + assume that captured vars are in any particular location -- always ask + the CodeBlock. This is better encapsulation. + + (JSC::DFG::ByteCodeParser::parseCodeBlock): + * dfg/DFGSpeculativeJIT32_64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + * dfg/DFGSpeculativeJIT64.cpp: + (JSC::DFG::SpeculativeJIT::compile): I rename things sometimes. + + * runtime/Arguments.cpp: + (JSC::Arguments::tearOff): Account for a particularly nasty edge case. + + (JSC::Arguments::didTearOffActivation): Don't allocate our slow arguments + data on tear-off. We need to allocate it eagerly instead, since we need + to know about displaced, captured arguments during access before tear-off. + + * runtime/Arguments.h: + (JSC::Arguments::allocateSlowArguments): + (JSC::Arguments::argument): Tell our slow arguments array where all arguments + are, even if they are not captured. This simplifies some things, so we don't + have to account explicitly for the full matrix of (not torn off, torn off) + * (captured, not captured). + + (JSC::Arguments::finishCreation): Allocate our slow arguments array eagerly + because we need to know about displaced, captured arguments during access + before tear-off. + + * runtime/Executable.cpp: + (JSC::FunctionExecutable::FunctionExecutable): + (JSC::FunctionExecutable::compileForCallInternal): + (JSC::FunctionExecutable::compileForConstructInternal): + * runtime/Executable.h: + (JSC::FunctionExecutable::parameterCount): + (FunctionExecutable): + * runtime/JSActivation.cpp: + (JSC::JSActivation::visitChildren): + * runtime/JSActivation.h: + (JSActivation): + (JSC::JSActivation::create): + (JSC::JSActivation::JSActivation): + (JSC::JSActivation::registerOffset): + (JSC::JSActivation::tearOff): + (JSC::JSActivation::allocationSize): + (JSC::JSActivation::isValid): This is really the point of the patch. All + the pointer math in Activations basically boils away, since we always + copy a contiguous region of captured variables now. + + * runtime/SymbolTable.h: + (JSC::SlowArgument::SlowArgument): + (SlowArgument): + (SharedSymbolTable): + (JSC::SharedSymbolTable::captureCount): + (JSC::SharedSymbolTable::SharedSymbolTable): AllOfTheThings capture mode + is gone now -- that's the point of the patch. indexIfCaptured gets renamed + to index because we always have an index, even if not captured. (The only + time when the index is meaningless is when we're Deleted.) + +2012-09-21 Gavin Barraclough + + Eeeep - broke early boyer in bug#97382 + https://bugs.webkit.org/show_bug.cgi?id=97383 + + Rubber stamped by Sam Weinig. + + missed a child3 -> child2! + + * dfg/DFGSpeculativeJIT.cpp: + (JSC::DFG::SpeculativeJIT::compileInstanceOf): + +2012-09-21 Gavin Barraclough + + Unreviewed windows build fix. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + +2012-09-21 Gavin Barraclough + + Pedantic test in Mozilla's JavaScript test suite fails. function-001.js function-001-n.js + https://bugs.webkit.org/show_bug.cgi?id=27219 + + Reviewed by Sam Weinig. + + These tests are just wrong. + See ECMA 262 A.5, FunctionDelcaration does not require a semicolon. + + * tests/mozilla/expected.html: + * tests/mozilla/js1_2/function/function-001-n.js: + * tests/mozilla/js1_3/Script/function-001-n.js: + * tests/mozilla/js1_3/regress/function-001-n.js: + +2012-09-21 Gavin Barraclough + + Remove redundant argument to op_instanceof + https://bugs.webkit.org/show_bug.cgi?id=97382 + + Reviewed by Geoff Garen. + + No longer needed after my last change. + + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::dump): + * bytecode/Opcode.h: + (JSC): + (JSC::padOpcodeName): + * bytecompiler/BytecodeGenerator.cpp: + (JSC::BytecodeGenerator::emitInstanceOf): + * bytecompiler/BytecodeGenerator.h: + (BytecodeGenerator): + * bytecompiler/NodesCodegen.cpp: + (JSC::InstanceOfNode::emitBytecode): + * dfg/DFGAbstractState.cpp: + (JSC::DFG::AbstractState::execute): + * dfg/DFGByteCodeParser.cpp: + (JSC::DFG::ByteCodeParser::parseBlock): + * dfg/DFGSpeculativeJIT.cpp: + (JSC::DFG::SpeculativeJIT::compileInstanceOf): + * interpreter/Interpreter.cpp: + (JSC::Interpreter::privateExecute): + * jit/JITOpcodes.cpp: + (JSC::JIT::emit_op_instanceof): + (JSC::JIT::emitSlow_op_instanceof): + * jit/JITOpcodes32_64.cpp: + (JSC::JIT::emit_op_instanceof): + (JSC::JIT::emitSlow_op_instanceof): + * jit/JITStubs.cpp: + (JSC::DEFINE_STUB_FUNCTION): + * llint/LLIntSlowPaths.cpp: + (JSC::LLInt::LLINT_SLOW_PATH_DECL): + * llint/LowLevelInterpreter32_64.asm: + * llint/LowLevelInterpreter64.asm: + +2012-09-21 Gavin Barraclough + + Unreviewed windows build fix. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + +2012-09-21 Gavin Barraclough + + instanceof should not get the prototype for non-default HasInstance + https://bugs.webkit.org/show_bug.cgi?id=68656 + + Reviewed by Oliver Hunt. + + Instanceof is currently implemented as a sequance of three opcodes: + check_has_instance + get_by_id(prototype) + op_instanceof + There are three interesting types of base value that instanceof can be applied to: + (A) Objects supporting default instanceof behaviour (functions, other than those created with bind) + (B) Objects overriding the default instancecof behaviour with a custom one (API objects, bound functions) + (C) Values that do not respond to the [[HasInstance]] trap. + Currently check_has_instance handles case (C), leaving the op_instanceof opcode to handle (A) & (B). There are + two problems with this apporach. Firstly, this is suboptimal for case (A), since we have to check for + hasInstance support twice (once in check_has_instance, then for default behaviour in op_instanceof). Secondly, + this means that in cases (B) we also perform the get_by_id, which is both suboptimal and an observable spec + violation. + + The fix here is to move handing of non-default instanceof (cases (B)) to the check_has_instance op, leaving + op_instanceof to handle only cases (A). + + * API/JSCallbackObject.h: + (JSCallbackObject): + * API/JSCallbackObjectFunctions.h: + (JSC::::customHasInstance): + * API/JSValueRef.cpp: + (JSValueIsInstanceOfConstructor): + - renamed hasInstance to customHasInstance + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::dump): + - added additional parameters to check_has_instance opcode + * bytecode/Opcode.h: + (JSC): + (JSC::padOpcodeName): + - added additional parameters to check_has_instance opcode + * bytecompiler/BytecodeGenerator.cpp: + (JSC::BytecodeGenerator::emitCheckHasInstance): + - added additional parameters to check_has_instance opcode + * bytecompiler/BytecodeGenerator.h: + (BytecodeGenerator): + - added additional parameters to check_has_instance opcode + * bytecompiler/NodesCodegen.cpp: + (JSC::InstanceOfNode::emitBytecode): + - added additional parameters to check_has_instance opcode + * dfg/DFGByteCodeParser.cpp: + (JSC::DFG::ByteCodeParser::parseBlock): + - added additional parameters to check_has_instance opcode + * interpreter/Interpreter.cpp: + (JSC::isInvalidParamForIn): + (JSC::Interpreter::privateExecute): + - Add handling for non-default instanceof to op_check_has_instance + * jit/JITInlineMethods.h: + (JSC::JIT::emitArrayProfilingSiteForBytecodeIndex): + - Fixed no-LLInt no_DFG build + * jit/JITOpcodes.cpp: + (JSC::JIT::emit_op_check_has_instance): + (JSC::JIT::emitSlow_op_check_has_instance): + - check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance. + (JSC::JIT::emit_op_instanceof): + (JSC::JIT::emitSlow_op_instanceof): + - no need to check for ImplementsDefaultHasInstance. + * jit/JITOpcodes32_64.cpp: + (JSC::JIT::emit_op_check_has_instance): + (JSC::JIT::emitSlow_op_check_has_instance): + - check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance. + (JSC::JIT::emit_op_instanceof): + (JSC::JIT::emitSlow_op_instanceof): + - no need to check for ImplementsDefaultHasInstance. + * jit/JITStubs.cpp: + (JSC::DEFINE_STUB_FUNCTION): + * jit/JITStubs.h: + - Add handling for non-default instanceof to op_check_has_instance + * llint/LLIntSlowPaths.cpp: + (JSC::LLInt::LLINT_SLOW_PATH_DECL): + * llint/LowLevelInterpreter32_64.asm: + * llint/LowLevelInterpreter64.asm: + - move check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance. + * runtime/ClassInfo.h: + (MethodTable): + (JSC): + - renamed hasInstance to customHasInstance + * runtime/CommonSlowPaths.h: + (CommonSlowPaths): + - removed opInstanceOfSlow (this was whittled down to one function call!) + * runtime/JSBoundFunction.cpp: + (JSC::JSBoundFunction::customHasInstance): + * runtime/JSBoundFunction.h: + (JSBoundFunction): + - renamed hasInstance to customHasInstance, reimplemented. + * runtime/JSCell.cpp: + (JSC::JSCell::customHasInstance): + * runtime/JSCell.h: + (JSCell): + * runtime/JSObject.cpp: + (JSC::JSObject::hasInstance): + (JSC): + (JSC::JSObject::defaultHasInstance): + * runtime/JSObject.h: + (JSObject): + +2012-09-21 Filip Pizlo + + Unreviewed, fix ARM build. + + * assembler/MacroAssemblerARMv7.h: + (JSC::MacroAssemblerARMv7::store8): + (MacroAssemblerARMv7): + * offlineasm/armv7.rb: + +2012-09-21 Filip Pizlo + + REGRESSION (r128400): Opening Google Web Fonts page hangs or crashes + https://bugs.webkit.org/show_bug.cgi?id=97328 + + Reviewed by Mark Hahnenberg. + + It's a bad idea to emit stub code that reallocates property storage when we're in indexed + storage mode. DFGRepatch.cpp knew this and had the appropriate check in one of the places, + but it didn't have it in all of the places. + + This change also adds some more handy disassembly support, which I used to find the bug. + + * assembler/LinkBuffer.h: + (JSC): + * dfg/DFGRepatch.cpp: + (JSC::DFG::generateProtoChainAccessStub): + (JSC::DFG::tryCacheGetByID): + (JSC::DFG::tryBuildGetByIDList): + (JSC::DFG::emitPutReplaceStub): + (JSC::DFG::emitPutTransitionStub): + (JSC::DFG::tryCachePutByID): + * jit/JITStubRoutine.h: + (JSC): + +2012-09-21 Filip Pizlo + + DFG CSE assumes that a holy PutByVal does not interfere with GetArrayLength, when it clearly does + https://bugs.webkit.org/show_bug.cgi?id=97373 + + Reviewed by Mark Hahnenberg. + + * dfg/DFGCSEPhase.cpp: + (JSC::DFG::CSEPhase::pureCSE): + (JSC::DFG::CSEPhase::getArrayLengthElimination): + (JSC::DFG::CSEPhase::putStructureStoreElimination): + (JSC::DFG::CSEPhase::performNodeCSE): + * dfg/DFGGraph.h: + (Graph): + +2012-09-21 Chris Rogers + + Add Web Audio support for deprecated/legacy APIs + https://bugs.webkit.org/show_bug.cgi?id=97050 + + Reviewed by Eric Carlson. + + * Configurations/FeatureDefines.xcconfig: + +2012-09-21 Gavin Barraclough + + Global Math object should be configurable but isn't + https://bugs.webkit.org/show_bug.cgi?id=55343 + + Reviewed by Oliver Hunt. + + This has no performance impact. + + * runtime/JSGlobalObject.cpp: + (JSC::JSGlobalObject::reset): + - Make 'Math' a regular property. + +2012-09-21 Chao-ying Fu + + Add MIPS or32 function + https://bugs.webkit.org/show_bug.cgi?id=97157 + + Reviewed by Gavin Barraclough. + + Add a missing or32 function. + + * assembler/MacroAssemblerMIPS.h: + (JSC::MacroAssemblerMIPS::or32): New function. + (MacroAssemblerMIPS): + +2012-09-20 Filip Pizlo + + CHECK_ARRAY_CONSISTENCY isn't being used or tested, so we should remove it + https://bugs.webkit.org/show_bug.cgi?id=97260 + + Rubber stamped by Geoffrey Garen. + + Supporting it will become difficult as we add more indexing types. It makes more + sense to kill, especially since we don't appear to use it or test it, ever. + + * runtime/ArrayConventions.h: + (JSC): + * runtime/ArrayPrototype.cpp: + (JSC::arrayProtoFuncSplice): + * runtime/ArrayStorage.h: + (JSC::ArrayStorage::copyHeaderFromDuringGC): + (ArrayStorage): + * runtime/FunctionPrototype.cpp: + (JSC::functionProtoFuncBind): + * runtime/JSArray.cpp: + (JSC::createArrayButterflyInDictionaryIndexingMode): + (JSC::JSArray::setLength): + (JSC::JSArray::pop): + (JSC::JSArray::push): + (JSC::JSArray::sortNumeric): + (JSC::JSArray::sort): + (JSC::JSArray::compactForSorting): + * runtime/JSArray.h: + (JSArray): + (JSC::createArrayButterfly): + (JSC::JSArray::tryCreateUninitialized): + (JSC::constructArray): + * runtime/JSObject.cpp: + (JSC::JSObject::putByIndex): + (JSC::JSObject::createArrayStorage): + (JSC::JSObject::deletePropertyByIndex): + (JSC): + * runtime/JSObject.h: + (JSC::JSObject::initializeIndex): + (JSObject): + +2012-09-20 Mark Lam + + Fixed a missing semicolon in the C++ llint backend. + https://bugs.webkit.org/show_bug.cgi?id=97252. + + Reviewed by Geoff Garen. + + * offlineasm/cloop.rb: + +2012-09-20 Geoffrey Garen + + Refactored the interpreter and JIT so they don't dictate closure layout + https://bugs.webkit.org/show_bug.cgi?id=97221 + + Reviewed by Oliver Hunt. + + Capture may change the location of an argument for space efficiency. This + patch removes static assumptions about argument location from the interpreter + and JIT. + + * bytecode/CodeBlock.h: + (JSC::CodeBlock::argumentIndexAfterCapture): + (JSC::ExecState::argumentAfterCapture): Factored out a helper function + so the compiler could share this logic. + + * bytecompiler/NodesCodegen.cpp: + (JSC::BracketAccessorNode::emitBytecode): Don't emit optimized bracket + access on arguments if a parameter has been captured by name. This case is + rare and, where I've seen it in the wild, the optimization mostly failed + anyway due to arguments escape, so I didn't feel like writing and testing + five copies of the code that would handle it in the baseline engines. + + The DFG can still synthesize this optimization even if we don't emit the + optimized bytecode for it. + + * dfg/DFGArgumentsSimplificationPhase.cpp: + (JSC::DFG::ArgumentsSimplificationPhase::run): + * dfg/DFGAssemblyHelpers.h: + (JSC::DFG::AssemblyHelpers::symbolTableFor): + (AssemblyHelpers): Use the right helper function to account for the fact + that a parameter may have been captured by name and moved. + + * dfg/DFGByteCodeParser.cpp: + (JSC::DFG::ByteCodeParser::parseBlock): ASSERT that we haven't inlined + a .apply on captured arguments. Once we do start inlining such things, + we'll need to do a little bit of math here to get them right. + + * dfg/DFGSpeculativeJIT32_64.cpp: + (JSC::DFG::SpeculativeJIT::compile): + * dfg/DFGSpeculativeJIT64.cpp: + (JSC::DFG::SpeculativeJIT::compile): Added support for bracket access on + an arguments object where arguments have also been captured by name. We + load the true index of the argument from a side vector. Arguments elision + is very powerful in the DFG, so I wanted to keep it working, even in this + rare case. + + * interpreter/Interpreter.cpp: + (JSC::loadVarargs): Use the right helper function to account for the fact + that a parameter may have been captured by name and moved. + + * jit/JITCall.cpp: + (JSC::JIT::compileLoadVarargs): + * jit/JITCall32_64.cpp: + (JSC::JIT::compileLoadVarargs): Don't use the inline copy loop if some + of our arguments have moved, since it would copy stale values. (We still + optimize the actual call, and elide the arguments object.) + 2012-09-20 Gabor Rapcsanyi [Qt] r129045 broke the ARM build diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig index ec35cf673..1b4a75243 100644 --- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig +++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig @@ -96,6 +96,7 @@ ENABLE_LEGACY_NOTIFICATIONS_macosx_1070 = ; ENABLE_LEGACY_NOTIFICATIONS_macosx_1080 = ENABLE_LEGACY_NOTIFICATIONS; ENABLE_LEGACY_NOTIFICATIONS_macosx_1090 = ENABLE_LEGACY_NOTIFICATIONS; ENABLE_LEGACY_VENDOR_PREFIXES = ENABLE_LEGACY_VENDOR_PREFIXES; +ENABLE_LEGACY_WEB_AUDIO = ENABLE_LEGACY_WEB_AUDIO; ENABLE_LINK_PREFETCH = ; ENABLE_LINK_PRERENDER = ; ENABLE_MATHML = ENABLE_MATHML; @@ -140,4 +141,4 @@ ENABLE_WIDGET_REGION_macosx = ENABLE_WIDGET_REGION; ENABLE_WORKERS = ENABLE_WORKERS; ENABLE_XSLT = ENABLE_XSLT; -FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT); +FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT); diff --git a/Source/JavaScriptCore/Configurations/Version.xcconfig b/Source/JavaScriptCore/Configurations/Version.xcconfig index 83578f9e9..ffba40115 100644 --- a/Source/JavaScriptCore/Configurations/Version.xcconfig +++ b/Source/JavaScriptCore/Configurations/Version.xcconfig @@ -22,7 +22,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MAJOR_VERSION = 537; -MINOR_VERSION = 11; +MINOR_VERSION = 12; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def index 4d54364f0..f7c0457bf 100755 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def @@ -135,6 +135,7 @@ EXPORTS ?cryptographicallyRandomValues@WTF@@YAXPAXI@Z ?currentThread@WTF@@YAIXZ ?currentTime@WTF@@YANXZ + ?customHasInstance@JSCell@JSC@@KA_NPAVJSObject@2@PAVExecState@2@VJSValue@2@@Z ?data@CString@WTF@@QBEPBDXZ ?dataLog@WTF@@YAXPBDZZ ?dateToDaysFrom1970@WTF@@YANHHH@Z @@ -222,7 +223,6 @@ EXPORTS ?globalObjectCount@Heap@JSC@@QAEIXZ ?grow@HandleSet@JSC@@AAEXXZ ?growOutOfLineStorage@JSObject@JSC@@QAEPAVButterfly@2@AAVJSGlobalData@2@II@Z - ?hasInstance@JSObject@JSC@@SA_NPAV12@PAVExecState@2@VJSValue@2@2@Z ?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@I@Z ?hasProperty@JSObject@JSC@@QBE_NPAVExecState@2@VPropertyName@2@@Z ?hashSlowCase@StringImpl@WTF@@ABEIXZ diff --git a/Source/JavaScriptCore/assembler/LinkBuffer.h b/Source/JavaScriptCore/assembler/LinkBuffer.h index 484d3a73f..770144d64 100644 --- a/Source/JavaScriptCore/assembler/LinkBuffer.h +++ b/Source/JavaScriptCore/assembler/LinkBuffer.h @@ -287,6 +287,9 @@ private: #define FINALIZE_CODE(linkBufferReference, dataLogArgumentsForHeading) \ FINALIZE_CODE_IF(Options::showDisassembly(), linkBufferReference, dataLogArgumentsForHeading) +#define FINALIZE_DFG_CODE(linkBufferReference, dataLogArgumentsForHeading) \ + FINALIZE_CODE_IF(Options::showDFGDisassembly(), linkBufferReference, dataLogArgumentsForHeading) + } // namespace JSC #endif // ENABLE(ASSEMBLER) diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h index 09a88fdda..46d7225d0 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h +++ b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h @@ -743,6 +743,12 @@ public: store8(src, ArmAddress(addressTempRegister, 0)); } + void store8(TrustedImm32 imm, void* address) + { + move(imm, dataTempRegister); + store8(dataTempRegister, address); + } + void store16(RegisterID src, BaseIndex address) { store16(src, setupArmAddress(address)); diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h index 8b3ce9f03..b3afae8df 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h +++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h @@ -335,6 +335,13 @@ public: m_assembler.orInsn(dest, dest, dataTempRegister); } + void or32(RegisterID src, AbsoluteAddress dest) + { + load32(dest.m_ptr, dataTempRegister); + m_assembler.orInsn(dataTempRegister, dataTempRegister, src); + store32(dataTempRegister, dest.m_ptr); + } + void rshift32(RegisterID shiftAmount, RegisterID dest) { m_assembler.srav(dest, dest, shiftAmount); diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp index 6b31be221..54dccb9ed 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp @@ -532,8 +532,8 @@ void CodeBlock::dump(ExecState* exec) static_cast(instructions().size() * sizeof(Instruction)), this, codeTypeToString(codeType()), m_numParameters, m_numCalleeRegisters, m_numVars); - if (m_numCapturedVars) - dataLog("; %d captured var(s)", m_numCapturedVars); + if (m_symbolTable->captureCount()) + dataLog("; %d captured var(s)", m_symbolTable->captureCount()); if (usesArguments()) { dataLog( "; uses arguments, in r%d, r%d", @@ -873,8 +873,11 @@ void CodeBlock::dump(ExecState* exec, const Vector::const_iterator& break; } case op_check_has_instance: { - int base = (++it)->u.operand; - dataLog("[%4d] check_has_instance\t\t %s", location, registerName(exec, base).data()); + int r0 = (++it)->u.operand; + int r1 = (++it)->u.operand; + int r2 = (++it)->u.operand; + int offset = (++it)->u.operand; + dataLog("[%4d] check_has_instance\t\t %s, %s, %s, %d(->%d)", location, registerName(exec, r0).data(), registerName(exec, r1).data(), registerName(exec, r2).data(), offset, location + offset); dumpBytecodeCommentAndNewLine(location); break; } @@ -882,8 +885,7 @@ void CodeBlock::dump(ExecState* exec, const Vector::const_iterator& int r0 = (++it)->u.operand; int r1 = (++it)->u.operand; int r2 = (++it)->u.operand; - int r3 = (++it)->u.operand; - dataLog("[%4d] instanceof\t\t %s, %s, %s, %s", location, registerName(exec, r0).data(), registerName(exec, r1).data(), registerName(exec, r2).data(), registerName(exec, r3).data()); + dataLog("[%4d] instanceof\t\t %s, %s, %s", location, registerName(exec, r0).data(), registerName(exec, r1).data(), registerName(exec, r2).data()); dumpBytecodeCommentAndNewLine(location); break; } @@ -1707,7 +1709,6 @@ CodeBlock::CodeBlock(CopyParsedBlockTag, CodeBlock& other) , m_heap(other.m_heap) , m_numCalleeRegisters(other.m_numCalleeRegisters) , m_numVars(other.m_numVars) - , m_numCapturedVars(other.m_numCapturedVars) , m_isConstructor(other.m_isConstructor) , m_ownerExecutable(*other.m_globalData, other.m_ownerExecutable.get(), other.m_ownerExecutable.get()) , m_globalData(other.m_globalData) @@ -1773,7 +1774,6 @@ CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlo , m_heap(&m_globalObject->globalData().heap) , m_numCalleeRegisters(0) , m_numVars(0) - , m_numCapturedVars(0) , m_isConstructor(isConstructor) , m_numParameters(0) , m_ownerExecutable(globalObject->globalData(), ownerExecutable, ownerExecutable) diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h index d0c969c6d..22c48311c 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.h +++ b/Source/JavaScriptCore/bytecode/CodeBlock.h @@ -432,6 +432,8 @@ namespace JSC { unsigned instructionCount() { return m_instructions.size(); } + int argumentIndexAfterCapture(size_t argument); + #if ENABLE(JIT) void setJITCode(const JITCode& code, MacroAssemblerCodePtr codeWithArityCheck) { @@ -514,7 +516,7 @@ namespace JSC { m_argumentsRegister = argumentsRegister; ASSERT(usesArguments()); } - int argumentsRegister() + int argumentsRegister() const { ASSERT(usesArguments()); return m_argumentsRegister; @@ -529,7 +531,7 @@ namespace JSC { { m_activationRegister = activationRegister; } - int activationRegister() + int activationRegister() const { ASSERT(needsFullScopeChain()); return m_activationRegister; @@ -552,11 +554,24 @@ namespace JSC { if (inlineCallFrame && !operandIsArgument(operand)) return inlineCallFrame->capturedVars.get(operand); - // Our estimate of argument capture is conservative. if (operandIsArgument(operand)) - return needsActivation() || usesArguments(); + return usesArguments(); + + // The activation object isn't in the captured region, but it's "captured" + // in the sense that stores to its location can be observed indirectly. + if (needsActivation() && operand == activationRegister()) + return true; + + // Ditto for the arguments object. + if (usesArguments() && operand == argumentsRegister()) + return true; - return operand < m_numCapturedVars; + // Ditto for the arguments object. + if (usesArguments() && operand == unmodifiedArgumentsRegister(argumentsRegister())) + return true; + + return operand >= m_symbolTable->captureStart() + && operand < m_symbolTable->captureEnd(); } CodeType codeType() const { return m_codeType; } @@ -1174,7 +1189,6 @@ namespace JSC { int m_numCalleeRegisters; int m_numVars; - int m_numCapturedVars; bool m_isConstructor; protected: @@ -1520,6 +1534,18 @@ namespace JSC { return baselineCodeBlock; } + inline int CodeBlock::argumentIndexAfterCapture(size_t argument) + { + if (argument >= static_cast(symbolTable()->parameterCount())) + return CallFrame::argumentOffset(argument); + + const SlowArgument* slowArguments = symbolTable()->slowArguments(); + if (!slowArguments || slowArguments[argument].status == SlowArgument::Normal) + return CallFrame::argumentOffset(argument); + + ASSERT(slowArguments[argument].status == SlowArgument::Captured); + return slowArguments[argument].index; + } inline Register& ExecState::r(int index) { @@ -1552,15 +1578,7 @@ namespace JSC { if (!codeBlock()) return this[argumentOffset(argument)].jsValue(); - if (argument >= static_cast(codeBlock()->symbolTable()->parameterCount())) - return this[argumentOffset(argument)].jsValue(); - - const SlowArgument* slowArguments = codeBlock()->symbolTable()->slowArguments(); - if (!slowArguments || slowArguments[argument].status == SlowArgument::Normal) - return this[argumentOffset(argument)].jsValue(); - - ASSERT(slowArguments[argument].status == SlowArgument::Captured); - return this[slowArguments[argument].indexIfCaptured].jsValue(); + return this[codeBlock()->argumentIndexAfterCapture(argument)].jsValue(); } #if ENABLE(DFG_JIT) diff --git a/Source/JavaScriptCore/bytecode/Opcode.h b/Source/JavaScriptCore/bytecode/Opcode.h index 87b100056..a5d466154 100644 --- a/Source/JavaScriptCore/bytecode/Opcode.h +++ b/Source/JavaScriptCore/bytecode/Opcode.h @@ -84,8 +84,8 @@ namespace JSC { macro(op_bitxor, 5) \ macro(op_bitor, 5) \ \ - macro(op_check_has_instance, 2) \ - macro(op_instanceof, 5) \ + macro(op_check_has_instance, 5) \ + macro(op_instanceof, 4) \ macro(op_typeof, 3) \ macro(op_is_undefined, 3) \ macro(op_is_boolean, 3) \ diff --git a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp index e7a80fe2c..13a2defff 100644 --- a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp +++ b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp @@ -304,8 +304,6 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, JSScope* scope, S // FIXME: Move code that modifies the global object to Interpreter::execute. - codeBlock->m_numCapturedVars = codeBlock->m_numVars; - if (compilationKind == OptimizingCompilation) return; @@ -392,6 +390,8 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, JSScope* sc m_codeBlock->setActivationRegister(m_activationRegister->index()); } + symbolTable->setCaptureStart(m_codeBlock->m_numVars); + if (functionBody->usesArguments() || codeBlock->usesEval() || m_shouldEmitDebugHooks) { // May reify arguments object. RegisterID* unmodifiedArgumentsRegister = addVar(); // Anonymous, so it can't be modified by user code. RegisterID* argumentsRegister = addVar(propertyNames().arguments, false); // Can be changed by assigning to 'arguments'. @@ -423,32 +423,33 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, JSScope* sc } } - bool mayReifyArgumentsObject = codeBlock->usesArguments() || codeBlock->usesEval() || m_shouldEmitDebugHooks; + bool shouldCaptureAllTheThings = m_shouldEmitDebugHooks || codeBlock->usesEval(); + bool capturesAnyArgumentByName = false; - if (functionBody->hasCapturedVariables()) { + Vector capturedArguments; + if (functionBody->hasCapturedVariables() || shouldCaptureAllTheThings) { FunctionParameters& parameters = *functionBody->parameters(); + capturedArguments.resize(parameters.size()); for (size_t i = 0; i < parameters.size(); ++i) { - if (!functionBody->captures(parameters[i])) + capturedArguments[i] = 0; + if (!functionBody->captures(parameters[i]) && !shouldCaptureAllTheThings) continue; capturesAnyArgumentByName = true; - break; + capturedArguments[i] = addVar(); } } - if (mayReifyArgumentsObject || capturesAnyArgumentByName) { - symbolTable->setCaptureMode(SharedSymbolTable::AllOfTheThings); - symbolTable->setCaptureStart(-CallFrame::offsetFor(symbolTable->parameterCountIncludingThis())); - } else { - symbolTable->setCaptureMode(SharedSymbolTable::SomeOfTheThings); - symbolTable->setCaptureStart(m_codeBlock->m_numVars); - } - - if (mayReifyArgumentsObject && capturesAnyArgumentByName) { + if (capturesAnyArgumentByName && !codeBlock->isStrictMode()) { size_t parameterCount = symbolTable->parameterCount(); OwnArrayPtr slowArguments = adoptArrayPtr(new SlowArgument[parameterCount]); for (size_t i = 0; i < parameterCount; ++i) { + if (!capturedArguments[i]) { + ASSERT(slowArguments[i].status == SlowArgument::Normal); + slowArguments[i].index = CallFrame::argumentOffset(i); + continue; + } slowArguments[i].status = SlowArgument::Captured; - slowArguments[i].indexIfCaptured = CallFrame::argumentOffset(i); + slowArguments[i].index = capturedArguments[i]->index(); } symbolTable->setSlowArguments(slowArguments.release()); } @@ -491,7 +492,7 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, JSScope* sc instructions().append(m_activationRegister->index()); } - codeBlock->m_numCapturedVars = codeBlock->m_numVars; + symbolTable->setCaptureEnd(codeBlock->m_numVars); m_firstLazyFunction = codeBlock->m_numVars; for (size_t i = 0; i < functionStack.size(); ++i) { @@ -518,10 +519,8 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, JSScope* sc addVar(ident, varStack[i].second & DeclarationStacks::IsConstant); } - if (m_shouldEmitDebugHooks || codeBlock->usesEval()) - codeBlock->m_numCapturedVars = codeBlock->m_numVars; - - symbolTable->setCaptureEnd(codeBlock->m_numCapturedVars); + if (shouldCaptureAllTheThings) + symbolTable->setCaptureEnd(codeBlock->m_numVars); FunctionParameters& parameters = *functionBody->parameters(); m_parameters.grow(parameters.size() + 1); // reserve space for "this" @@ -531,9 +530,16 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, JSScope* sc m_thisRegister.setIndex(nextParameterIndex--); m_codeBlock->addParameter(); - for (size_t i = 0; i < parameters.size(); ++i) - addParameter(parameters[i], nextParameterIndex--); - + for (size_t i = 0; i < parameters.size(); ++i, --nextParameterIndex) { + int index = nextParameterIndex; + if (capturedArguments.size() && capturedArguments[i]) { + ASSERT((functionBody->hasCapturedVariables() && functionBody->captures(parameters[i])) || shouldCaptureAllTheThings); + index = capturedArguments[i]->index(); + RegisterID original(nextParameterIndex); + emitMove(capturedArguments[i], &original); + } + addParameter(parameters[i], index); + } preserveLastVar(); // We declare the callee's name last because it should lose to a var, function, and/or parameter declaration. @@ -603,7 +609,6 @@ BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, JSScope* scope, SharedS for (size_t i = 0; i < numVariables; ++i) variables.append(*varStack[i].first); codeBlock->adoptVariables(variables); - codeBlock->m_numCapturedVars = codeBlock->m_numVars; preserveLastVar(); } @@ -1457,18 +1462,21 @@ ResolveResult BytecodeGenerator::resolveConstDecl(const Identifier& property) return ResolveResult::dynamicResolve(scopeDepth()); } -void BytecodeGenerator::emitCheckHasInstance(RegisterID* base) -{ +void BytecodeGenerator::emitCheckHasInstance(RegisterID* dst, RegisterID* value, RegisterID* base, Label* target) +{ + size_t begin = instructions().size(); emitOpcode(op_check_has_instance); + instructions().append(dst->index()); + instructions().append(value->index()); instructions().append(base->index()); + instructions().append(target->bind(begin, instructions().size())); } -RegisterID* BytecodeGenerator::emitInstanceOf(RegisterID* dst, RegisterID* value, RegisterID* base, RegisterID* basePrototype) +RegisterID* BytecodeGenerator::emitInstanceOf(RegisterID* dst, RegisterID* value, RegisterID* basePrototype) { emitOpcode(op_instanceof); instructions().append(dst->index()); instructions().append(value->index()); - instructions().append(base->index()); instructions().append(basePrototype->index()); return dst; } diff --git a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h index 398719749..1bf1d8f26 100644 --- a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h +++ b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h @@ -455,8 +455,8 @@ namespace JSC { RegisterID* emitPostInc(RegisterID* dst, RegisterID* srcDst); RegisterID* emitPostDec(RegisterID* dst, RegisterID* srcDst); - void emitCheckHasInstance(RegisterID* base); - RegisterID* emitInstanceOf(RegisterID* dst, RegisterID* value, RegisterID* base, RegisterID* basePrototype); + void emitCheckHasInstance(RegisterID* dst, RegisterID* value, RegisterID* base, Label* target); + RegisterID* emitInstanceOf(RegisterID* dst, RegisterID* value, RegisterID* basePrototype); RegisterID* emitTypeOf(RegisterID* dst, RegisterID* src) { return emitUnaryOp(op_typeof, dst, src); } RegisterID* emitIn(RegisterID* dst, RegisterID* property, RegisterID* base) { return emitBinaryOp(op_in, dst, property, base, OperandTypes()); } diff --git a/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp b/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp index e4d35471f..823dadf14 100644 --- a/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp +++ b/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp @@ -320,7 +320,9 @@ RegisterID* PropertyListNode::emitBytecode(BytecodeGenerator& generator, Registe RegisterID* BracketAccessorNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) { - if (m_base->isResolveNode() && generator.willResolveToArguments(static_cast(m_base)->identifier())) { + if (m_base->isResolveNode() + && generator.willResolveToArguments(static_cast(m_base)->identifier()) + && !generator.symbolTable().slowArguments()) { RegisterID* property = generator.emitNode(m_subscript); generator.emitExpressionInfo(divot(), startOffset(), endOffset()); return generator.emitGetArgumentByVal(generator.finalDestination(dst), generator.uncheckedRegisterForArguments(), property); @@ -1086,15 +1088,20 @@ RegisterID* InstanceOfNode::emitBytecode(BytecodeGenerator& generator, RegisterI { RefPtr src1 = generator.emitNodeForLeftHandSide(m_expr1, m_rightHasAssignments, m_expr2->isPure(generator)); RefPtr src2 = generator.emitNode(m_expr2); + RefPtr prototype = generator.newTemporary(); + RefPtr dstReg = generator.finalDestination(dst, src1.get()); + RefPtr